Dear SQLite developers,
Sqlite version: 3.8.8.3
Linux version: 3.10.31-ltsi
Problem:
When update database and power off immediately, it cannnot actually make
changes to database file in the disk.
Although the HAVE_FDATASYNC comile-time option is true.
If manually called sync() after executing a SQL statement, it does flush
the database file to disk.
I think the OSTRACE log can be helpful, so I toke it.
Could you help to analyse it and tell me why fdatasync() doesn't work?
LOCK154 SHARED was NONE(NONE,0) pid=2289 (unix)
LOCK154 SHARED ok (unix)
READ15416 24 0
LOCK154 RESERVED was SHARED(SHARED,1) pid=2289 (unix)
LOCK154 RESERVED ok (unix)
OPENX 168 /var/user/aaa/bbb.db-journal 0400102
OPEN168 /var/user/aaa/bbb.db-journal
WRITE 168 512 0 0
WRITE 168 4 512 0
WRITE 168 1024 516 0
WRITE 168 41540 0
LOCK154 EXCLUSIVE was RESERVED(RESERVED,1) pid=2289 (unix)
LOCK154 EXCLUSIVE ok (unix)
WRITE 168 41544 0
WRITE 168 10241548 0
WRITE 168 42572 0
READ168 03072 0
SYNC168
DIRSYNC /var/user/aaa/bbb.db-journal (have_fullfsync=0 fullsync=0)
OPENDIR 169 /var/user/aaa
WRITE 16812 0 0
SYNC168
READ154 4 24 0
WRITE 154 1024 0 0
WRITE 154 1024 20480 0
SYNC154
CLOSE -1
UNLOCK 154 1 was 4(4,1) pid=2289 (unix)
UNLOCK 154 0 was 1(1,1) pid=2289 (unix)
Cordially yours
LiuXiang
___
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users