bigpresh/Dancer-Plugin-SimpleCRUD

Locking issue in the testsuite

eserte opened this issue · 1 comments

On my FreeBSD smokers tests fail like this:

DBD::SQLite::db do failed: database is locked at t/lib/TestApp.pm line 29.
DBD::SQLite::db do failed: database is locked at t/lib/TestApp.pm line 29.
DBD::SQLite::db do failed: database is locked at t/lib/TestApp.pm line 29.
DBD::SQLite::db do failed: database is locked at t/lib/TestApp.pm line 29.
DBD::SQLite::db do failed: database is locked at t/lib/TestApp.pm line 29.
DBD::SQLite::db do failed: database is locked at t/lib/TestApp.pm line 29.
DBD::SQLite::db do failed: database is locked at t/lib/TestApp.pm line 29.
DBD::SQLite::db do failed: database is locked at t/lib/TestApp.pm line 29.
DBD::SQLite::db column_info failed: database is locked at /usr/home/eserte/.cpan/build/2016091500/Dancer-Plugin-SimpleCRUD-1.00_01-UBT3m_/blib/lib/Dancer/Plugin/SimpleCRUD.pm line 1488.

Usually this is an indication that both SQLite and File::Temp are trying to lock a temporary file. This can be fixed by using EXLOCK => 0 when creating a temporary file. On systems without EXLOCK support (most notably Linux) this is a no-op.

This fixes t/01-basic-dpsc.t on OSX for me, which in 6a9d2c had been hanging.