Package: libmysqlclient10 Version: 3.23.56-2 Severity: normal
I found this problem while using the python bindings which set autocommit off by default. When not in autocommit mode (SET AUTOCOMMIT=0) the client will fail on reconnect and the nature of the error is not reported to the user. In the program below the final mysql_real_query() correctly returns -1 but mysql_error() incorrectly returns an empty string. ---- #include <unistd.h> #include <stdio.h> #include <mysql.h> #include <string.h> int main() { int rtn; char * query = "show tables"; char * autocommit = "SET AUTOCOMMIT=0"; MYSQL conn; MYSQL* r = mysql_init(&conn); printf("init done %p\n", r); r = mysql_real_connect(&conn, "localhost", "airplay", "airplay", "Airplay", 0, NULL, 0); printf("connect done %p\n", r); rtn = mysql_real_query(&conn, autocommit, strlen(autocommit)); printf("query returned %d '%s'\n", rtn, mysql_error(&conn)); rtn = mysql_real_query(&conn, query, strlen(query)); printf("query returned %d '%s'\n", rtn, mysql_error(&conn)); MYSQL_RES *res = mysql_use_result(&conn); mysql_free_result(res); sleep(7); rtn = mysql_real_query(&conn, query, strlen(query)); printf("query returned %d '%s'\n", rtn, mysql_error(&conn)); res = mysql_use_result(&conn); mysql_free_result(res); return 0; } ---- The following patch seemed to fix this for me: --- libmysql.c 2003-04-13 18:41:40.000000000 +0100 +++ libmysql.new 2005-03-02 15:45:54.000000000 +0000 @@ -470,7 +470,11 @@ } end_server(mysql); if (mysql_reconnect(mysql)) + { + net->last_errno=CR_SERVER_GONE_ERROR; + strmov(net->last_error,ER(net->last_errno)); goto end; + } if (net_write_command(net,(uchar) command,arg, length ? length : (ulong) strlen(arg))) { -- System Information: Debian Release: 3.1 APT prefers unstable APT policy: (990, 'unstable'), (1, 'experimental') Architecture: i386 (i686) Kernel: Linux 2.6.11-rc5 Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) Versions of packages libmysqlclient10 depends on: ii libc6 2.3.2.ds1-20 GNU C Library: Shared libraries an ii mysql-common 4.0.23-7 mysql database common files (e.g. ii zlib1g 1:1.2.2-4 compression library - runtime -- no debconf information -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]