[Trac-tickets] Re: [The Trac Project] #2170: Crash while doing a
login/logout in the Timeline
The Trac Project
noreply at edgewall.com
Tue Oct 4 11:13:25 CDT 2005
#2170: Crash while doing a login/logout in the Timeline
----------------------+-----------------------------------------------------
Reporter: cboos | Owner: jonas
Type: defect | Status: new
Priority: high | Milestone: 0.9
Component: general | Version: devel
Severity: critical | Resolution:
Keywords: |
----------------------+-----------------------------------------------------
Comment (by cboos):
Ok, now I manage to reproduce the crash systematically:
* in Thunderbird, I refresh the Timeline feed
* half a second later, in Firefox, I reload the page which
does a logout
Now, looking more closely to the pysqlite2 code within gdb,
I located the cause of the crash itself:
{{{
#!diff
--- util.c.orig 2005-10-04 17:48:27.000000000 +0200
+++ util.c 2005-10-04 18:19:11.000000000 +0200
@@ -80,9 +80,10 @@
}
how_long = 0.01* (1 << counter);
- if (how_long > 1.0) {
+ if (how_long > 1.0 || counter > 30) {
how_long = 1.0;
}
pysqlite_sleep(how_long);
counter++;
}}}
... now I'm back with my database locks :)
Ok, it looks like a commit is not "atomic" at all,
and with our database pool, we reuse database connections
which are in a commit in progress, hence the deadlock.
--
Ticket URL: <http://projects.edgewall.com/trac/ticket/2170>
The Trac Project <http://trac.edgewall.com/>
More information about the Trac-Tickets
mailing list