使用SQLite的CGI程序不一致的“无法打开数据库文件”错误

我一直在使用lighttpd 1.4.28和Ubuntu 12.04在我的虚拟私人服务器上运行一个心理学实验的任务程序 。 这个实验是一个用Perl编写的,用我写的Perl模块编写的CGI程序,在Mechanical Turk上提供了一个Web界面。 数据使用WAL模式存储在SQLite数据库中,DBD :: SQLite提供底层的Perl接口。

对于在土耳其Turk上完成它的大多数工人来说,这个实验似乎工作正常 然而偶尔,用户得到错误DBD::SQLite::db prepare failed: unable to open database file 。 它发生在看似任意点的任务中,包括点击CGI程序生成的100个HTML页面,每个页面都会触发数据库。 当用户刷新页面(我认为 )时,似乎不会消失。 我不知道如何自行复制它,但是我知道它至less有15个用户中的2个。 当发生这种情况时,CPU和内存似乎没有受到重视。 磁盘空间也不是问题,(我只使用1.4 gig的3-gig分区)。 目前该数据库大约是280 kb。 PRAGMA integrity_check; 回来了。

任何想法如何debugging呢? 谷歌告诉我,“无法打开数据库文件”通常是一个权限错误或类似的东西,但所有设置正确; 任务通常起作用。