[Dbd-firebird-devel] RT#72946: ->do() segfaults when executing DDL while another statement is open

Damyan Ivanov dmn at debian.org
Thu Dec 8 19:38:57 UTC 2011


The crash happens in AutoCommit mode, when the ib_commit_transaction 
routine tries to free all statement handles. This is done only after 
executing DDL. Why? I can't tell.

I tried to remove all special handling of DDL statements and the test 
works, at the expense of breaking 17 other tests :)

The 17 tests are broken since Firebird can't create table, do 
something with it and drop it, all in the same transaction.

Should we introduce a new driver attribute, AutoCommitDDL, true by 
default? Something like what ISQL does -- execute DDL in a separate 
transaction and commit it after each DDL statement.

Alternatively we could just fix the tests by calling $dbh->commit 
explicitly after each DDL statement.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/dbd-firebird-devel/attachments/20111208/5070952c/attachment.pgp>


More information about the Dbd-firebird-devel mailing list