FAQ
Hi Yuriy,

Thank you for the patches. This issue seems to have deeper roots,
so please give me some time before I apply them.

Best,

Kenichi

2011/10/6 Yuriy Kaminskiy <yumkam@mail.ru>:
Yuriy Kaminskiy wrote:
Yuriy Kaminskiy wrote:
Yuriy Kaminskiy wrote:
Hello!
I noticed strange problem on error path handling.

Not sure if this sqlite error, DBD::SQLite error, or some misunderstanding on my
part.

Verified on DBD::SQLite-1.33 and 1.34_1 (with bundled sqlite.c) and DBI-1.616.

my $sth=$dbh->prepare("SELECT * FROM t");
$sth->execute; # success - 0E0
my $row1 = $sth->fetch; # returns [1]
$sth->finish;
sleep 5;
# ^^ here another instance issued BEGIN EXCLUSIVE ...
$sth->execute; # ... so this returns "database is locked";
# it's legitimate/expected behavior
#
$sth->finish; # just in case (clears error)
#
sleep 5;
# ^^ here another instance already COMMIT'ed, DB is not locked anymore
#
$sth->execute; # success - 0E0
my $row2 = $sth->fetch; # returns undef
#
# WTF?
#
# If I prepare another statement (cloned from first!),
# it returns row as expected:
#
my $sth2 = $dbh->prepare($sth->{Statement});
$sth2->execute; # success
my $row3 = $sth2->fetch; # returns [1]
With attached patch it works as expected. Seems passes regression test, even
under valgrind (but maybe regression test should be improved, so that it won't
pass it *before* this patch).

This bug was introduced (or, maybe, "incompletely fixed") by svn revision 5944
(author: adamk/subject: "Changed finalize to reset per RT #32100 et al"/date:
2009-04-04 07:01:40), that replaced sqlite3_finalize with sqlite3_reset, but
have not removed stmt NULLification.
v2: remove tabs, split unrelated changes to separate patch
Most code adopted from from t/08_busy.t

_______________________________________________
DBD-SQLite mailing list
DBD-SQLite@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbd-sqlite

Search Discussions

Discussion Posts

Previous

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 5 of 5 | next ›
Discussion Overview
groupdbd-sqlite @
postedOct 4, '11 at 7:29p
activeOct 6, '11 at 5:25a
posts5
users2
websiteshadowcat.co.uk

People

Translate

site design / logo © 2021 Grokbase