nschlia / ffmpegfs

FUSE-based transcoding filesystem with video support from many formats to FLAC, MP4, TS, WebM, OGG, MP3, HLS, and others.
https://nschlia.github.io/ffmpegfs/
GNU General Public License v3.0
198 stars 14 forks source link

Sqlite 3 could not step (execute) insert stmt: 5, database is locked #7

Closed nschlia closed 6 years ago

nschlia commented 6 years ago

When multiple instances of ffmpegfs run sometimes sqlite lock errors occur.

These errors are not passed to the accessing process (transcoding reported as success) but the files sometimes are garbled (e.g. "make check" fails).

pr 11 07:12:42 MOBILMOPS ffmpegfs[4403]: [2018-04-11 07:12:42] DEBUG: Starting decoder thread for '/home/norbert/test/in/checks/obama.FLAC.flac'. Apr 11 07:12:42 MOBILMOPS ffmpegfs[4403]: [2018-04-11 07:12:42] INFO: Transcoding '/home/norbert/test/in/checks/obama.FLAC.flac' to mp4. Apr 11 07:12:42 MOBILMOPS ffmpegfs[4403]: [2018-04-11 07:12:42] DEBUG: Successfully opened Motion JPEG input codec. Apr 11 07:12:42 MOBILMOPS ffmpegfs[4403]: [2018-04-11 07:12:42] DEBUG: Successfully opened FLAC (Free Lossless Audio Codec) input codec. Apr 11 07:12:42 MOBILMOPS ffmpegfs[4403]: [2018-04-11 07:12:42] DEBUG: Opening format type 'mp4' for '/home/norbert/test/in/checks/obama.FLAC.flac'. Apr 11 07:12:42 MOBILMOPS ffmpegfs[4403]: [2018-04-11 07:12:42] INFO: Limiting audio bit rate to 128.0 kbps for '/home/norbert/test/in/checks/obama.FLAC.flac'. Apr 11 07:12:42 MOBILMOPS ffmpegfs[4403]: [2018-04-11 07:12:42] DEBUG: Successfully opened audio output codec AAC (Advanced Audio Coding) for '/home/norbert/test/in/checks/obama.FLAC.flac'. Apr 11 07:12:43 MOBILMOPS ffmpegfs[4403]: [2018-04-11 07:12:43] DEBUG: Finishing file. Predicted size: 98399, final size: 100191, diff: 1792 (102.3%). Apr 11 07:12:43 MOBILMOPS ffmpegfs[4394]: [2018-04-11 07:12:43] ERROR: Sqlite 3 could not step (execute) insert stmt: 5, database is locked Apr 11 07:12:43 MOBILMOPS ffmpegfs[4394]: [2018-04-11 07:12:43] ERROR: Sqlite 3 could not step (execute) select statement: 5, database is locked Apr 11 07:12:43 MOBILMOPS ffmpegfs[4394]: [2018-04-11 07:12:43] DEBUG: Reading file from cache: '/home/norbert/test/in/checks/raven.OGG.ogg'. Apr 11 07:12:43 MOBILMOPS ffmpegfs[4394]: [2018-04-11 07:12:43] ERROR: Sqlite 3 could not step (execute) select statement: 5, database is locked Apr 11 07:12:43 MOBILMOPS ffmpegfs[4403]: [2018-04-11 07:12:43] DEBUG: Reading file from cache: '/home/norbert/test/in/checks/raven.OGG.ogg'. Apr 11 07:12:43 MOBILMOPS ffmpegfs[4403]: [2018-04-11 07:12:43] DEBUG: Reading file from cache: '/home/norbert/test/in/checks/obama.FLAC.flac'. Apr 11 07:12:43 MOBILMOPS ffmpegfs[4394]: [2018-04-11 07:12:43] ERROR: Sqlite 3 could not step (execute) insert stmt: 5, database is locked Apr 11 07:12:43 MOBILMOPS ffmpegfs[4394]: [2018-04-11 07:12:43] ERROR: Sqlite 3 could not step (execute) select statement: 5, database is locked Apr 11 07:12:43 MOBILMOPS ffmpegfs[4394]: [2018-04-11 07:12:43] DEBUG: Reading file from cache: '/home/norbert/test/in/checks/raven.OGG.ogg'. Apr 11 07:12:43 MOBILMOPS ffmpegfs[4394]: [2018-04-11 07:12:43] ERROR: Sqlite 3 could not step (execute) select statement: 5, database is locked Apr 11 07:12:43 MOBILMOPS ffmpegfs[4403]: [2018-04-11 07:12:43] DEBUG: Reading file from cache: '/home/norbert/test/in/checks/raven.OGG.ogg'. Apr 11 07:12:43 MOBILMOPS ffmpegfs[4403]: [2018-04-11 07:12:43] DEBUG: [aac @ 0x7f961c009440] Qavg: 1025.348 Apr 11 07:12:44 MOBILMOPS ffmpegfs[4403]: [2018-04-11 07:12:43] DEBUG: FFmpeg trancoder: closed. Apr 11 07:12:44 MOBILMOPS ffmpegfs[4403]: [2018-04-11 07:12:43] INFO: Transcoding complete for '/home/norbert/test/in/checks/obama.FLAC.flac'. Result SUCCESS

nschlia commented 6 years ago

Fixed by changing database locking strategie to WAL and reducing write accesses.