#2005: SQLAlchemy Operational errors with SQLite: Database is locked
---------------------+-------------------------
Reporter:  abompard  |       Owner:
    Type:  defect    |      Status:  closed
Priority:  critical  |   Milestone:  0.8.5
 Version:  0.8.4p1   |  Resolution:  worksforme
Keywords:  database  |
---------------------+-------------------------
Changes (by dustin):

 * version:  0.8.4 => 0.8.4p1


Comment:

 I tried reproducing by writing to a table that's open in a read cursor, in
 the same thread:
 {{{
 #!python
     def test_busy(self):
         meta = sa.MetaData()
         tbl = sa.Table("tbl", meta, sa.Column("a", sa.INTEGER))
         def add(conn):
             meta.bind = conn
             tbl.create()
             conn.execute(tbl.insert(), [ dict(a=i) for i in xrange(1000)
 ])
             for r in conn.execute(tbl.select()):
                 if r.a == 0:
                     conn.execute(tbl.insert(), a=9999)
         d = self.pool.do(add)
         return d
 }}}
 but this works fine (I'm on 3.7.6.3).

 However, this fails:
 {{{
 #!python
     def test_busy(self):
         meta = sa.MetaData()
         tbl = sa.Table("tbl", meta, sa.Column("a", sa.INTEGER))
         def add(conn):
             print "add"
             meta.bind = conn
             tbl.create()
             conn.execute(tbl.insert(), [ dict(a=i) for i in xrange(100) ])
             for r in conn.execute(tbl.select()):
                 time.sleep(0.1)
         def foo(conn):
             print "foo"
             time.sleep(1)
             meta.bind = conn
             conn.execute(tbl.insert(), [ dict(a=i) for i in xrange(100) ])
         d = defer.gatherResults([self.pool.do(add), self.pool.do(foo)])
         return d
 }}}
 In particular, the insert in {{{foo}}} fails 5 seconds after it begins.  I
 think we *are* dealing with SQLITE_BUSY here, and it's being reported as
 "database is locked".  5 seconds is the default wait timeout for locking
 in sqlite3.

-- 
Ticket URL: <http://trac.buildbot.net/ticket/2005#comment:14>
Buildbot <http://buildbot.net/>
Buildbot: build/test automation
------------------------------------------------------------------------------
AppSumo Presents a FREE Video for the SourceForge Community by Eric 
Ries, the creator of the Lean Startup Methodology on "Lean Startup 
Secrets Revealed." This video shows you how to validate your ideas, 
optimize your ideas and identify your business strategy.
http://p.sf.net/sfu/appsumosfdev2dev
_______________________________________________
Buildbot-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/buildbot-commits

Reply via email to