Subject: | [Patch] t/62.timeout.t failure: object is in use |
t/62timeout.t fails test no. 12, wherein $dbh1 attempts to DROP its
testing table, because another dbh, $dbh2, is still "using" that table:
How to reproduce:
[DBD-InterBase-0.48]$ perl -Mblib t/62timeout.t | grep not\ ok
# 2nd tx issues update (Thu Jan 21 23:37:36 2010)
DBD::InterBase::db do failed: This operation is not defined for
system tables.
-unsuccessful metadata update
-object TESTAU is in use
# Failed test 'DROP TABLE TESTAU'
# at t/62timeout.t line 96.
not ok 12 - DROP TABLE TESTAU
# Looks like you failed 1 test of 14.
Expected output:
ok 12
Environment:
- perl v5.10.1 (i686-linux)
- Firebird 2.1.3.18185
- DBI 1.609, DBD::InterBase 0.48
Remarks:
This behavior may have been different in previous versions of Firebird
or InterBase, I'm unsure. However, the attached patch simply closes
$dbh2 before attempting the DROP TABLE, which resolves the issue for me.
Subject: | dbd-interbase-0.48.obj_in_use.patch |
--- DBD-InterBase-0.48/t/62timeout.t.orig 2007-05-20 08:43:31.000000000 -0500
+++ DBD-InterBase-0.48/t/62timeout.t 2010-01-21 23:13:03.000000000 -0600
@@ -93,9 +93,9 @@
ok($dbh1->commit, "1st tx committed");
}
+ ok($dbh2->disconnect);
+
ok($dbh1->do("DROP TABLE $table"), "DROP TABLE $table");
ok($dbh1->disconnect);
-}
-
-ok($dbh2->disconnect);
+} # - SKIP {}