[rt-users] [fwd] Bug#383700: Bug #384047: mysql-server-5.0: "Transactions not supported by database" error when used with perl DBI/DBD (from: ntyni at iki.fi)
Jesse Vincent
jesse at bestpractical.com
Fri Aug 25 05:47:38 EDT 2006
----- Forwarded message from Niko Tyni <ntyni at iki.fi> -----
X-Spam-Checker-Version: SpamAssassin 3.1.4 (2006-07-25) on
diesel.bestpractical.com
X-Spam-Level:
X-Spam-Status: No, score=-2.5 required=7.0 tests=BAYES_00,FORGED_RCVD_HELO,
UNPARSEABLE_RELAY autolearn=ham version=3.1.4
Subject: Bug#383700: Bug #384047: mysql-server-5.0: "Transactions not
supported by database" error when used with perl DBI/DBD
Reply-To: Niko Tyni <ntyni at iki.fi>, 383700 at bugs.debian.org
Date: Fri, 25 Aug 2006 11:33:02 +0300
From: Niko Tyni <ntyni at iki.fi>
To: 384047 at bugs.debian.org
CC: 384221 at bugs.debian.org, 383700 at bugs.debian.org
On Thu, Aug 24, 2006 at 02:02:43AM +0200, Christian Hammers wrote:
> Some users of the Debian packages I create recently reported that after the
> upgrade from MySQL 5.0.22 to 5.0.24 Perl scripts that try to explicitly set
> $dbh->{AutoCommit} = 0;
> die with the error message:
> "Transactions not supported by database"
Hi,
this bug (#384047) is also at least #384221 (libdbd-mysql-perl) and
#383700 (request-tracker3.4).
I believe the problem is an incompatible ABI change in
libmysqlclient.15.so with version 5.0.24.
This addition in struct st_mysql_options:
--- mysql-dfsg-5.0-5.0.22/include/mysql.h 2006-05-25 11:56:42.000000000 +0300
+++ mysql-dfsg-5.0-5.0.24/include/mysql.h 2006-07-27 21:52:03.000000000 +0300
@@ -164,6 +164,7 @@
char *ssl_ca; /* PEM CA file */
char *ssl_capath; /* PEM directory of CA-s? */
char *ssl_cipher; /* cipher to use */
+ my_bool ssl_verify_server_cert; /* if to verify server cert */
char *shared_memory_base_name;
unsigned long max_allowed_packet;
my_bool use_ssl; /* if to use SSL or not */
causes the size of st_mysql_options to grow. This also affects the MYSQL
struct, since it contains st_mysql_options.
Now, libdbd-mysql-perl has this in dbdimp.h:
struct imp_dbh_st {
dbih_dbc_t com; /* MUST be first element in structure */
MYSQL mysql;
int has_transactions; /* boolean indicating support for
* transactions, currently always
* TRUE for MySQL and always FALSE
* for mSQL.
*/
[...]
so the grown MYSQL struct overlaps with has_transactions.
This hits libdbd-mysql-perl 3.006-1, which is currently compiled
against libmysqlclient15off-dev 5.0.22-x (with x depending on
the architecture). When run with libmysqlclient15off 5.0.24-1,
has_transactions gets reset to 0 and the result is 'Transactions not
supported by database'. Recompiling libdbd-mysql-perl helps, as the API
has not changed in an incompatible way.
In my understanding, the right fix is to bump the soname or to revert
the struct st_mysql_options change.
Cheers,
--
Niko Tyni ntyni at iki.fi
----- End forwarded message -----
--
More information about the rt-users
mailing list