[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