Bauble / bauble.classic

this is how Bauble and Ghini both started
GNU General Public License v2.0
10 stars 34 forks source link

SQLite database is locked #239

Closed RoDuth closed 8 years ago

RoDuth commented 8 years ago

Hope this is just something simple, using master I guess I have to expect the odd issue :smile:

I cant save anything as Bauble reports that the database is locked.

screenshot from 2015-12-27 12 19 46

mfrasca commented 8 years ago

Hope this is just something simple

I'm afraid not. it looks related to my decision to remove pooling. thanks for reporting, I already got stuck on it while processing #229 .

using master I guess I have to expect the odd issue

yes

mfrasca commented 8 years ago

I do not understand this, and I see things which do not help me. like using SingletonThreadPool which is marked in the docs as not ready for production. and almost all tests failing if I use NullPool.

I think this is going to take time and will have as result a radical review of the code and I hope also a better understanding of SQLAlchemy from my side.

my guess is that I should first make tests succeed with NullPool.

mfrasca commented 8 years ago

this is the error by which 338/376 tests fail if I use NullPool as poolclass. OperationalError: (sqlite3.OperationalError) no such table: plugin [SQL: u'SELECT plugin.name AS plugin_name, plugin.version AS plugin_version, plugin.id AS plugin_id, plugin._created AS plugin__created, plugin._last_updated AS plugin__last_updated \nFROM plugin \nWHERE plugin.name = ?'] [parameters: (u'MakoFormatterPlugin',)]

mfrasca commented 8 years ago

@RoDuth : in the meanwhile, I've created a branch named testing, in case you want to stay close to master but not just so much too close that it will make Bauble unusable to you. git checkout testing

mfrasca commented 8 years ago

solved without a much deeper understanding. when we are in the SearchView results, these objects belong to a session. you can only start the Batch Taxonomy Check when there is a selection, meaning when there is a session. so the BTC should not "own" it. so it should not "close" it. and that was it.

mfrasca commented 8 years ago

closed in testing branch.