Hi,

It is strange because it seems that the WAL journal mode was enabled:

Trace 1: before setting WAL mode

=================
Filename:      /mnt/share/testApp/myDB.db
State:         WRITER_CACHEMOD errCode=0
Lock:          EXCLUSIVE
Locking mode:  locking_mode=exclusive
Journal mode:  journal_mode=delete
Backing store: tempFile=0 memDb=0 useJournal=1
Journal:       journalOff=66056 journalHdr=0
Size:          dbsize=35 dbOrigSize=35 dbFileSize=35

Trace 2: after setting WAL mode

=================
Filename:      /mnt/share/testApp/myDB.db
State:         WRITER_CACHEMOD errCode=0
Lock:          EXCLUSIVE
Locking mode:  locking_mode=exclusive
Journal mode:  journal_mode=wal
Backing store: tempFile=0 memDb=0 useJournal=1
Journal:       journalOff=66056 journalHdr=0
Size:          dbsize=35 dbOrigSize=35 dbFileSize=35

So why do we have EXCLUSIVE LOCK requests on the database file?

Regards,
Sandu


On Mon, Nov 11, 2013 at 6:33 PM, Sandu Buraga <sandu.bur...@gmail.com>wrote:

> Hi,
>
> I took your advice and now I am setting only once the journal_mode=WAL,
> also locking_mode=EXCLUSIVE and temp_store=MEMORY. But still it doesn't
> work, and I get DB locks immediately. I enabled SQLite traces, and I also
> added some supplementary traces when the WAL is set. Even if the
> journal_mode=WAL pragma seems to be successful, I don't think that the WAL
> works because I see no wal file on the disk, also I should have some WAL
> related traces, which are not present.
>
> Below are the SQLite traces, and it can be seen that 3.x locking model it
> is used, instead of WAL. Somewhere a thread tries to get a READ SHARED
> lock, but on the database there is already an EXCLUSIVE lock. Normally this
> should not occur, because the reader should be able to use the database and
> WAL file. The auto-checkpoint for the WAL failed is 1000 pages, so it
> should not be immediately.
>
>
> OPENX   11  /mnt/share/testApp/myDB.db 0402
> fcntl unknown pid=233565 tid=20 11 1 0
> fcntl unknown pid=233565 tid=20 11 2 0
> OPEN    11  /mnt/share/testApp/myDB.db
> OPEN 139631224 /mnt/share/testApp/myDB.db
> OPEN 139631856 /mnt/share/testApp/myDB.db
> OPENX   12  /mnt/share/testApp/myDB.db 02
> fcntl unknown pid=233565 tid=20 12 1 0
> fcntl unknown pid=233565 tid=20 12 2 0
> OPEN    12  /mnt/share/testApp/myDB.db
> OPEN 139746432 /mnt/share/testApp/myDB.db
> OPEN 139627904 /mnt/share/testApp/myDB.db
> OPENX   13  /mnt/share/testApp/myDB.db 02
> fcntl unknown pid=233565 tid=20 13 1 0
> fcntl unknown pid=233565 tid=20 13 2 0
> OPEN    13  /mnt/share/testApp/myDB.db
> OPEN 139547936 /mnt/share/testApp/myDB.db
> OPEN 139811888 /mnt/share/testApp/myDB.db
> OPENX   14  /mnt/share/testApp/myDB.db 02
> fcntl unknown pid=233565 tid=20 14 1 0
> fcntl unknown pid=233565 tid=20 14 2 0
> OPEN    14  /mnt/share/testApp/myDB.db
> OPEN 139943040 /mnt/share/testApp/myDB.db
> OPEN 139544616 /mnt/share/testApp/myDB.db
> OPENX   15  /mnt/share/testApp/myDB.db 02
> fcntl unknown pid=233565 tid=20 15 1 0
> fcntl unknown pid=233565 tid=20 15 2 0
> OPEN    15  /mnt/share/testApp/myDB.db
> OPEN 139585952 /mnt/share/testApp/myDB.db
> OPEN 139586584 /mnt/share/testApp/myDB.db
> LOCK    11 SHARED was NONE(NONE,0) pid=233565 tid=20 (unix)
> fcntl pid=233565 tid=20 11 SETLK RDLCK 1073741824 1 125195948 0
> fcntl pid=233565 tid=20 11 SETLK RDLCK 1073741826 510 125195948 0
> fcntl pid=233565 tid=20 11 SETLK UNLCK 1073741824 1 125195948 0
> LOCK    11 SHARED ok (unix)
> UNLOCK  11 0 was 1(1,1) pid=233565 tid=20 (unix)
> fcntl pid=233565 tid=20 11 SETLK UNLCK 0 0 138882344 0
> CLOSE 139631224
> UNLOCK  11 0 was 0(0,0) pid=233565 tid=20 (unix)
> CLOSE   -1
> OPENX   11  /mnt/share/testApp/myDB.db 0402
> fcntl unknown pid=233565 tid=20 11 1 0
> fcntl unknown pid=233565 tid=20 11 2 0
> OPEN    11  /mnt/share/testApp/myDB.db
> LOCK    11 SHARED was NONE(NONE,0) pid=233565 tid=20 (unix)
> fcntl pid=233565 tid=20 11 SETLK RDLCK 1073741824 1 138848960 0
> fcntl pid=233565 tid=20 11 SETLK RDLCK 1073741826 510 138848960 0
> fcntl pid=233565 tid=20 11 SETLK UNLCK 1073741824 1 138848960 0
> LOCK    11 SHARED ok (unix)
> UNLOCK  11 0 was 1(1,1) pid=233565 tid=20 (unix)
> fcntl pid=233565 tid=20 11 SETLK UNLCK 0 0 1 0
> LOCK    11 SHARED was NONE(NONE,0) pid=233565 tid=20 (unix)
> fcntl pid=233565 tid=20 11 SETLK RDLCK 1073741824 1 125196700 0
> fcntl pid=233565 tid=20 11 SETLK RDLCK 1073741826 510 125196700 0
> fcntl pid=233565 tid=20 11 SETLK UNLCK 1073741824 1 125196700 0
> LOCK    11 SHARED ok (unix)
> UNLOCK  11 0 was 1(1,1) pid=233565 tid=20 (unix)
> fcntl pid=233565 tid=20 11 SETLK UNLCK 0 0 2 0
> LOCK    11 SHARED was NONE(NONE,0) pid=233565 tid=20 (unix)
> fcntl pid=233565 tid=20 11 SETLK RDLCK 1073741824 1 125196428 0
> fcntl pid=233565 tid=20 11 SETLK RDLCK 1073741826 510 125196428 0
> fcntl pid=233565 tid=20 11 SETLK UNLCK 1073741824 1 125196428 0
> LOCK    11 SHARED ok (unix)
> UNLOCK  11 0 was 1(1,1) pid=233565 tid=20 (unix)
> fcntl pid=233565 tid=20 11 SETLK UNLCK 0 0 2 0
> LOCK    11 SHARED was NONE(NONE,0) pid=233565 tid=20 (unix)
> fcntl pid=233565 tid=20 11 SETLK RDLCK 1073741824 1 125195612 0
> fcntl pid=233565 tid=20 11 SETLK RDLCK 1073741826 510 125195612 0
> fcntl pid=233565 tid=20 11 SETLK UNLCK 1073741824 1 125195612 0
> LOCK    11 SHARED ok (unix)
> LOCK    11 RESERVED was SHARED(SHARED,1) pid=233565 tid=20 (unix)
> fcntl pid=233565 tid=20 11 SETLK WRLCK 1073741825 1 125195676 0
> LOCK    11 RESERVED ok (unix)
> TRANSACTION 139631856
> OPENX   16  /mnt/share/testApp/myDB.nal 0402
> fcntl unknown pid=233565 tid=20 16 1 0
> fcntl unknown pid=233565 tid=20 16 2 0
> OPEN    16  /mnt/share/testApp/myDB.nal
> WRITE   16    512       0 0
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 2 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 3 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 3 needSync=1
> APPEND 139631856 page 2 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 4 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 5 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 6 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 7 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 8 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 9 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 10 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 11 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 12 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 13 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 14 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 15 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 16 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 17 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 18 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 19 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 20 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 21 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 22 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 23 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 24 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 25 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 26 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 27 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 28 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 29 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 30 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 31 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 32 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 33 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 25 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 34 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 35 needSync=1
> APPEND 139631856 page 1 needSync=1
> APPEND 139631856 page 1 needSync=1
> LOCK    11 EXCLUSIVE was RESERVED(RESERVED,1) pid=233565 tid=20 (unix)
> fcntl pid=233565 tid=20 11 SETLK WRLCK 1073741824 1 125195660 0
> fcntl pid=233565 tid=20 11 SETLK WRLCK 1073741826 510 125195660 0
> LOCK    11 EXCLUSIVE ok (unix)
> DATABASE SYNC: File=/mnt/share/testApp/myDB.db zMaster= nSize=35
> APPEND 139631856 page 1 needSync=1
> READ    16      0     512 0
> SYNC journal of 139631856
> SYNC    16
> DIRSYNC /mnt/share/testApp/myDB.nal (have_fullfsync=0 fullsync=0)
> fcntl unknown pid=233565 tid=20 17 1 0
> fcntl unknown pid=233565 tid=20 17 2 0
> OPENDIR 17  /mnt/share/testApp
> WRITE   16     12       0 0
> SYNC journal of 139631856
> SYNC    16
> READ    11      0      24 0
> WRITE   11  65536       0 0
> STORE 139631856 page 1 hash(00000000)
> WRITE   11  65536   65536 0
> STORE 139631856 page 2 hash(00000000)
> WRITE   11  65536  131072 0
> STORE 139631856 page 3 hash(00000000)
> WRITE   11  65536  196608 0
> STORE 139631856 page 4 hash(00000000)
> WRITE   11  65536  262144 0
> STORE 139631856 page 5 hash(00000000)
> WRITE   11  65536  327680 0
> STORE 139631856 page 6 hash(00000000)
> WRITE   11  65536  393216 0
> STORE 139631856 page 7 hash(00000000)
> WRITE   11  65536  458752 0
> STORE 139631856 page 8 hash(00000000)
> WRITE   11  65536  524288 0
> STORE 139631856 page 9 hash(00000000)
> WRITE   11  65536  589824 0
> STORE 139631856 page 10 hash(00000000)
> WRITE   11  65536  655360 0
> STORE 139631856 page 11 hash(00000000)
> WRITE   11  65536  720896 0
> STORE 139631856 page 12 hash(00000000)
> WRITE   11  65536  786432 0
> STORE 139631856 page 13 hash(00000000)
> WRITE   11  65536  851968 0
> STORE 139631856 page 14 hash(00000000)
> WRITE   11  65536  917504 0
> STORE 139631856 page 15 hash(00000000)
> WRITE   11  65536  983040 0
> STORE 139631856 page 16 hash(00000000)
> WRITE   11  65536 1048576 0
> STORE 139631856 page 17 hash(00000000)
> WRITE   11  65536 1114112 0
> STORE 139631856 page 18 hash(00000000)
> WRITE   11  65536 1179648 0
> STORE 139631856 page 19 hash(00000000)
> WRITE   11  65536 1245184 0
> STORE 139631856 page 20 hash(00000000)
> WRITE   11  65536 1310720 0
> STORE 139631856 page 21 hash(00000000)
> WRITE   11  65536 1376256 0
> STORE 139631856 page 22 hash(00000000)
> WRITE   11  65536 1441792 0
> STORE 139631856 page 23 hash(00000000)
> WRITE   11  65536 1507328 0
> STORE 139631856 page 24 hash(00000000)
> WRITE   11  65536 1572864 0
> STORE 139631856 page 25 hash(00000000)
> WRITE   11  65536 1638400 0
> STORE 139631856 page 26 hash(00000000)
> WRITE   11  65536 1703936 0
> STORE 139631856 page 27 hash(00000000)
> WRITE   11  65536 1769472 0
> STORE 139631856 page 28 hash(00000000)
> WRITE   11  65536 1835008 0
> STORE 139631856 page 29 hash(00000000)
> WRITE   11  65536 1900544 0
> STORE 139631856 page 30 hash(00000000)
> WRITE   11  65536 1966080 0
> STORE 139631856 page 31 hash(00000000)
> WRITE   11  65536 2031616 0
> STORE 139631856 page 32 hash(00000000)
> WRITE   11  65536 2097152 0
> STORE 139631856 page 33 hash(00000000)
> WRITE   11  65536 2162688 0
> STORE 139631856 page 34 hash(00000000)
> WRITE   11  65536 2228224 0
> STORE 139631856 page 35 hash(00000000)
> SYNC    11
> COMMIT 139631856
> CLOSE   -1
> UNLOCK  11 1 was 4(4,1) pid=233565 tid=20 (unix)
> fcntl pid=233565 tid=20 11 SETLK RDLCK 1073741826 510 125195724 0
> fcntl pid=233565 tid=20 11 SETLK UNLCK 1073741824 2 125195724 0
> UNLOCK  11 0 was 1(1,1) pid=233565 tid=20 (unix)
> fcntl pid=233565 tid=20 11 SETLK UNLCK 0 0 125195676 0
> LOCK    11 SHARED was NONE(NONE,0) pid=233565 tid=20 (unix)
> fcntl pid=233565 tid=20 11 SETLK RDLCK 1073741824 1 125195868 0
> fcntl pid=233565 tid=20 11 SETLK RDLCK 1073741826 510 125195868 0
> fcntl pid=233565 tid=20 11 SETLK UNLCK 1073741824 1 125195868 0
> LOCK    11 SHARED ok (unix)
> READ    11     16      24 0
> UNLOCK  11 0 was 1(1,1) pid=233565 tid=20 (unix)
> fcntl pid=233565 tid=20 11 SETLK UNLCK 0 0 125195980 0
> OPEN 139523248
> TRANSACTION 139523248
> APPEND 139523248 page 1 needSync=1
> APPEND 139523248 page 1 needSync=1
> APPEND 139523248 page 1 needSync=1
> APPEND 139523248 page 1 needSync=1
> APPEND 139523248 page 2 needSync=1
> APPEND 139523248 page 1 needSync=1
> APPEND 139523248 page 1 needSync=1
> APPEND 139523248 page 1 needSync=1
> APPEND 139523248 page 1 needSync=1
> DATABASE SYNC: File= zMaster= nSize=2
> COMMIT 139523248
> JOURNALMODE new : 5, old : 0
> JOURNALMODE_WAL will be enabled
> 27 1 0
> Temp file /mnt/share/testApp/myDB.db Shared memory support 1
> LOCK    11 SHARED was NONE(NONE,0) pid=233565 tid=20 (unix)
> fcntl pid=233565 tid=20 11 SETLK RDLCK 1073741824 1 125195932 0
> fcntl pid=233565 tid=20 11 SETLK RDLCK 1073741826 510 125195932 0
> fcntl pid=233565 tid=20 11 SETLK UNLCK 1073741824 1 125195932 0
> LOCK    11 SHARED ok (unix)
> READ    11     16      24 0
> LOCK    11 RESERVED was SHARED(SHARED,1) pid=233565 tid=20 (unix)
> fcntl pid=233565 tid=20 11 SETLK WRLCK 1073741825 1 125195996 0
> LOCK    11 RESERVED ok (unix)
> LOCK    11 EXCLUSIVE was RESERVED(RESERVED,1) pid=233565 tid=20 (unix)
> fcntl pid=233565 tid=20 11 SETLK WRLCK 1073741824 1 125195964 0
> fcntl pid=233565 tid=20 11 SETLK WRLCK 1073741826 510 125195964 0
> LOCK    11 EXCLUSIVE ok (unix)
> TRANSACTION 139631856
> OPENX   16  /mnt/share/testApp/myDB.nal 0402
> fcntl unknown pid=233565 tid=20 16 1 0
> fcntl unknown pid=233565 tid=20 16 2 0
> OPEN    16  /mnt/share/testApp/myDB.nal
> WRITE   16    512       0 0
> WRITE   16      4     512 0
> WRITE   16  65536     516 0
> WRITE   16      4   66052 0
> JOURNAL 139631856 page 1 needSync=1 hash(00000000)
> DATABASE SYNC: File=/mnt/share/testApp/myDB.db zMaster= nSize=35
> READ    16      0   66560 0
> SYNC journal of 139631856
> SYNC    16
> DIRSYNC /mnt/share/testApp/myDB.nal (have_fullfsync=0 fullsync=0)
> fcntl unknown pid=233565 tid=20 17 1 0
> fcntl unknown pid=233565 tid=20 17 2 0
> OPENDIR 17  /mnt/share/testApp
> WRITE   16     12       0 0
> SYNC journal of 139631856
> SYNC    16
> READ    11      4      24 0
> WRITE   11  65536       0 0
> STORE 139631856 page 1 hash(00000000)
> SYNC    11
> COMMIT 139631856
> CLOSE   -1
> LOCK    13 SHARED was NONE(EXCLUSIVE,1) pid=233565 tid=16 (unix)
> LOCK    13 SHARED failed (unix)
> UNLOCK  13 0 was 0(4,1) pid=233565 tid=16 (unix)
> ROLLBACK 139547936
> LOCK    13 SHARED was NONE(EXCLUSIVE,1) pid=233565 tid=20 (unix)
> LOCK    13 SHARED failed (unix)
> UNLOCK  13 0 was 0(4,1) pid=233565 tid=20 (unix)
> ROLLBACK 139547936
> LOCK    13 SHARED was NONE(EXCLUSIVE,1) pid=233565 tid=20 (unix)
> LOCK    13 SHARED failed (unix)
> UNLOCK  13 0 was 0(4,1) pid=233565 tid=20 (unix)
> ROLLBACK 139547936
> LOCK    13 SHARED was NONE(EXCLUSIVE,1) pid=233565 tid=20 (unix)
> LOCK    13 SHARED failed (unix)
> UNLOCK  13 0 was 0(4,1) pid=233565 tid=20 (unix)
> ROLLBACK 139547936
> LOCK    13 SHARED was NONE(EXCLUSIVE,1) pid=233565 tid=20 (unix)
> LOCK    13 SHARED failed (unix)
> UNLOCK  13 0 was 0(4,1) pid=233565 tid=20 (unix)
> ROLLBACK 139547936
>
>
> Regards,
> Sandu Buraga
>
>
>
> Date: Thu, 31 Oct 2013 14:05:17 -0400
> From: Richard Hipp <d...@sqlite.org>
> To: General Discussion of SQLite Database <sqlite-users@sqlite.org>
> Subject: Re: [sqlite] Enable WAL on a QNX system
> Message-ID:
>         <CALwJ=
> mxoxoqd7jyd68l3o7ajpqsil40mrrxm4saiv9rpdkc...@mail.gmail.com>
> Content-Type: text/plain; charset=ISO-8859-1
>
> On Thu, Oct 31, 2013 at 9:56 AM, Sandu Buraga <sandu.bur...@gmail.com
> >wrote:
>
> > Hi,
> >
> > I am using SQLite 3.7.9, and QNX 6.5.0 running on Intel x86 machine. I
> am
> > having a use-case with multiple readers threads and one writer thread,
> all
> > running in the same process. No other process is using the SQLite
> database
> > file.
> >
> > I tried to enable WAL feature, but with no success so far. Each thread
> has
> > it's own handle:
> >
> > res = sqlite3_open_v2( m_FilePath.getBuffer(), &dbHandle,
> >
> > SQLITE_OPEN_READWRITE|SQLITE_
> OPEN_WAL|SQLITE_OPEN_FULLMUTEX|SQLITE_OPEN_PRIVATECACHE,
> > NULL );
> >
> > immediately after I am making these PRAGMA statements for the new opened
> > handle
> >
> > "PRAGMA main.journal_mode=WAL;"
> > "PRAGMA temp_store=MEMORY;"
> >
> > So if I have 5 threads, I am calling the above sequence 5 times for each
> > distinct handle
> >
>
> (1) WAL mode is a persistent property of the database file.  Set it once
> from a single-threaded connection and it will stay set forever.  You should
> not try to set WAL mode on each connection separately.
>
> (2) WAL mode uses mmap() to get access to a small piece of memory that is
> shared between all connections.  But the mmap() is unreliable on many
> version so QNX.  If you must use WAL mode, first run "PRAGMA
> locking_mode=EXCLUSIVE".  That will prevent all processes but the first
> from connecting to the database (though many threads from within that one
> process can have their own individual connections).  And since only a
> single process is accessing the database, heap memory instead of mmap()
> memory is used for the shared memory region.  This trick enables WAL mode
> to work reliably on QNX.
>
>
>
> >
> > When the code is executed I am getting frequently "databed locked"
> > messages. I tried to diagnose the issue, by enabling also the WAL traces
> in
> > the SQLite amalgamation, but I noticed no message, so for me it looks
> like
> > the WAL feature was not enabled. By analyzing the existed traces it looks
> > like thread 2 - reader is getting a SHARED lock, while later process 3 -
> > writer is trying to get an EXCLUSIVE lock.
> >
> > Any suggestion would be appreciated.
> >
> > Regards,
> > Sandu
> > _______________________________________________
> > sqlite-users mailing list
> > sqlite-users@sqlite.org
> > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
> >
>
>
>
> --
> D. Richard Hipp
> d...@sqlite.org
>
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to