2009-02-11, 04:27 AM
I don't use the whole CDK schedule infrastructure but I do make good use of the rectracker mechanism to purge repeats from my scheduled recordings. This has worked great until the last couple releases of GBPVR where I started getting this error when I invoke the command:
rectracker -purge -useOid
It will churn for a while, outputing the expected results and purging the first couple duplicates and then it will hang for about 30 seconds and issue an error:
Error System.Data.SQLite.SQLiteException: The database file is locked
database is locked
at System.Data.SQLite.SQLite3.Reset(SQLiteStatement stmt)
at System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt)
at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery()
at GBPVR.Backend.Common.x396614b3dae3b1da.x5e29b479fd4eab70(ScheduledRecording xe41d2b9d98dc1269, Boolean x29a0b54a36a7fcdf)
at GBPVR.Backend.Common.ScheduleHelper.CancelScheduledRecording(ScheduledRecording scheduledRecording)
at RecTracker.RecordingTracker.purgeWatchedShowsFromSchedule(Boolean bZap)
at RecTracker.RecordingTracker.Main(String[] args)
Stack at System.Data.SQLite.SQLite3.Reset(SQLiteStatement stmt)
at System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt)
at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery()
at GBPVR.Backend.Common.x396614b3dae3b1da.x5e29b479fd4eab70(ScheduledRecording xe41d2b9d98dc1269, Boolean x29a0b54a36a7fcdf)
at GBPVR.Backend.Common.ScheduleHelper.CancelScheduledRecording(ScheduledRecording scheduledRecording)
at RecTracker.RecordingTracker.purgeWatchedShowsFromSchedule(Boolean bZap)
at RecTracker.RecordingTracker.Main(String[] args)
There are two issues here.
1) The database shouldn't be locked.
2) When the error happens, rectracker still issues a 0 return code/error level so I can't detect the issue in my PostEPGUpdate batch file. This prevented my from working around the database locking issue by putting the call in a loop until the program terminated successfully.
I've got a reasonably large rectracker.mdb file and a good sized gbpvr.db3 database as well, although I have no specific data relating the size of the database to the issue.
I have seen some comments regarding some bugs in the SQLite providers used by GBPVR so I suspect that that might be the issue. I am hoping someone might have a fix to avoid triggering those issues. If it is a bug in the SQLite interface, I was thinking slowing down the query rate might help alleviate the problem.
rectracker -purge -useOid
It will churn for a while, outputing the expected results and purging the first couple duplicates and then it will hang for about 30 seconds and issue an error:
Error System.Data.SQLite.SQLiteException: The database file is locked
database is locked
at System.Data.SQLite.SQLite3.Reset(SQLiteStatement stmt)
at System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt)
at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery()
at GBPVR.Backend.Common.x396614b3dae3b1da.x5e29b479fd4eab70(ScheduledRecording xe41d2b9d98dc1269, Boolean x29a0b54a36a7fcdf)
at GBPVR.Backend.Common.ScheduleHelper.CancelScheduledRecording(ScheduledRecording scheduledRecording)
at RecTracker.RecordingTracker.purgeWatchedShowsFromSchedule(Boolean bZap)
at RecTracker.RecordingTracker.Main(String[] args)
Stack at System.Data.SQLite.SQLite3.Reset(SQLiteStatement stmt)
at System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt)
at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery()
at GBPVR.Backend.Common.x396614b3dae3b1da.x5e29b479fd4eab70(ScheduledRecording xe41d2b9d98dc1269, Boolean x29a0b54a36a7fcdf)
at GBPVR.Backend.Common.ScheduleHelper.CancelScheduledRecording(ScheduledRecording scheduledRecording)
at RecTracker.RecordingTracker.purgeWatchedShowsFromSchedule(Boolean bZap)
at RecTracker.RecordingTracker.Main(String[] args)
There are two issues here.
1) The database shouldn't be locked.
2) When the error happens, rectracker still issues a 0 return code/error level so I can't detect the issue in my PostEPGUpdate batch file. This prevented my from working around the database locking issue by putting the call in a loop until the program terminated successfully.
I've got a reasonably large rectracker.mdb file and a good sized gbpvr.db3 database as well, although I have no specific data relating the size of the database to the issue.
I have seen some comments regarding some bugs in the SQLite providers used by GBPVR so I suspect that that might be the issue. I am hoping someone might have a fix to avoid triggering those issues. If it is a bug in the SQLite interface, I was thinking slowing down the query rate might help alleviate the problem.