Hi Experts,
I am developing a Multi threaded solution using sqlite3 DB. I know there are 
some issues
With SQlite3 and python multithreads.

1. I compiled libsqlite3 with SQLITE_THREADSAFE=2 so that multiple threads can 
use it.
 2. I used the APIs threading.Lock(), and lock.acquire(), lock.release() to 
serialize the DB read/update operations.

After this, I am always getting following segmentation fault. Can you please 
let me know what is going wrong and
Potential fix to this.

<snip>

*** Error in `python': double free or corruption (!prev): 0x00007f5c30b20d30 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x814e9)[0x7f5c44ed04e9]
/usr/local/lib/libsqlite3.so.0(sqlite3_free+0x4f)[0x7f5c43165baf]
/usr/local/lib/libsqlite3.so.0(+0x2c1f1)[0x7f5c431711f1]
/usr/local/lib/libsqlite3.so.0(+0x2c287)[0x7f5c43171287]
/usr/local/lib/libsqlite3.so.0(+0x78dc6)[0x7f5c431bddc6]
/usr/local/lib/libsqlite3.so.0(sqlite3_finalize+0x3c)[0x7f5c431bde1c]
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/_sqlite3.so(pysqlite_statement_finalize+0x21)[0x7f5c4345e7e1]
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/_sqlite3.so(pysqlite_do_all_statements+0x45)[0x7f5c43459205]
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/_sqlite3.so(pysqlite_connection_close+0x2e)[0x7f5c43459d3e]
python(PyEval_EvalFrameEx+0x5cab)[0x4b63ab]
python(PyEval_EvalFrameEx+0x6334)[0x4b6a34]
python(PyEval_EvalCodeEx+0x7f8)[0x4b9d78]
python[0x52dec0]
python(PyObject_Call+0x3a)[0x422daa]
python[0x42728d]
python(PyObject_Call+0x3a)[0x422daa]
python[0x48136f]
python[0x47ea9a]
python(PyObject_Call+0x3a)[0x422daa]
python(PyEval_EvalFrameEx+0x179a)[0x4b1e9a]
python(PyEval_EvalFrameEx+0x6334)[0x4b6a34]
python(PyEval_EvalFrameEx+0x6334)[0x4b6a34]
python(PyEval_EvalFrameEx+0x6334)[0x4b6a34]
python(PyEval_EvalFrameEx+0x6334)[0x4b6a34]
python(PyEval_EvalFrameEx+0x6334)[0x4b6a34]
python(PyEval_EvalFrameEx+0x6334)[0x4b6a34]
python(PyEval_EvalFrameEx+0x6334)[0x4b6a34]
python(PyEval_EvalFrameEx+0x6334)[0x4b6a34]
python(PyEval_EvalCodeEx+0x7f8)[0x4b9d78]
python[0x52df8f]
python(PyObject_Call+0x3a)[0x422daa]
python(PyEval_EvalFrameEx+0x1e33)[0x4b2533]
python(PyEval_EvalFrameEx+0x6334)[0x4b6a34]
python(PyEval_EvalFrameEx+0x6334)[0x4b6a34]
python(PyEval_EvalCodeEx+0x7f8)[0x4b9d78]
python[0x52dec0]
python(PyObject_Call+0x3a)[0x422daa]
python[0x42728d]
python(PyObject_Call+0x3a)[0x422daa]
python(PyEval_CallObjectWithKeywords+0x47)[0x4b0657]
python[0x4fed42]
/lib64/libpthread.so.0(+0x7dd5)[0x7f5c4592cdd5]
/lib64/libc.so.6(clone+0x6d)[0x7f5c44f4dbfd]
======= Memory map: ========
00400000-005a6000 r-xp 00000000 08:01 668539                             
/root/.pyenv/versions/2.7.12/bin/python2.7
007a5000-007a6000 r--p 001a5000 08:01 668539                             
/root/.pyenv/versions/2.7.12/bin/python2.7
007a6000-007e2000 rw-p 001a6000 08:01 668539                             
/root/.pyenv/versions/2.7.12/bin/python2.7
007e2000-00804000 rw-p 00000000 00:00 0 
021d4000-0285f000 rw-p 00000000 00:00 0                                  [heap]
7f5c28000000-7f5c29112000 rw-p 00000000 00:00 0 
7f5c29112000-7f5c2c000000 ---p 00000000 00:00 0 
7f5c2c000000-7f5c2c021000 rw-p 00000000 00:00 0 
7f5c2c021000-7f5c30000000 ---p 00000000 00:00 0 
7f5c30000000-7f5c310fd000 rw-p 00000000 00:00 0 
7f5c310fd000-7f5c34000000 ---p 00000000 00:00 0 
7f5c34000000-7f5c350f9000 rw-p 00000000 00:00 0 
7f5c350f9000-7f5c38000000 ---p 00000000 00:00 0 
7f5c38000000-7f5c39104000 rw-p 00000000 00:00 0 
7f5c39104000-7f5c3c000000 ---p 00000000 00:00 0 
7f5c3c216000-7f5c3c22b000 r-xp 00000000 08:01 133728                     
/usr/lib64/libgcc_s-4.8.5-20150702.so.1
7f5c3c22b000-7f5c3c42a000 ---p 00015000 08:01 133728                     
/usr/lib64/libgcc_s-4.8.5-20150702.so.1
7f5c3c42a000-7f5c3c42b000 r--p 00014000 08:01 133728                     
/usr/lib64/libgcc_s-4.8.5-20150702.so.1
7f5c3c42b000-7f5c3c42c000 rw-p 00015000 08:01 133728                     
/usr/lib64/libgcc_s-4.8.5-20150702.so.1
7f5c3c42c000-7f5c3c52c000 rw-p 00000000 00:00 0 
7f5c3c52c000-7f5c3c52d000 ---p 00000000 00:00 0 
7f5c3c52d000-7f5c3cd2d000 rw-p 00000000 00:00 0 
7f5c3cd2d000-7f5c3cd2e000 ---p 00000000 00:00 0 
7f5c3cd2e000-7f5c3d52e000 rw-p 00000000 00:00 0 
7f5c3d52e000-7f5c3d52f000 ---p 00000000 00:00 0 
7f5c3d52f000-7f5c3dd2f000 rw-p 00000000 00:00 0 
7f5c3dd2f000-7f5c3dd30000 ---p 00000000 00:00 0 
7f5c3dd30000-7f5c3e630000 rw-p 00000000 00:00 0 
7f5c3e630000-7f5c3e644000 r-xp 00000000 08:01 671144                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/_ssl.so
7f5c3e644000-7f5c3e843000 ---p 00014000 08:01 671144                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/_ssl.so
7f5c3e843000-7f5c3e844000 r--p 00013000 08:01 671144                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/_ssl.so
7f5c3e844000-7f5c3e848000 rw-p 00014000 08:01 671144                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/_ssl.so
7f5c3e848000-7f5c3e858000 r-xp 00000000 08:01 671142                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/_socket.so
7f5c3e858000-7f5c3ea57000 ---p 00010000 08:01 671142                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/_socket.so
7f5c3ea57000-7f5c3ea58000 r--p 0000f000 08:01 671142                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/_socket.so
7f5c3ea58000-7f5c3ea5d000 rw-p 00010000 08:01 671142                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/_socket.so
7f5c3ea5d000-7f5c3eb5d000 rw-p 00000000 00:00 0 
7f5c3eb5d000-7f5c3eb62000 r-xp 00000000 08:01 671168                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/select.so
7f5c3eb62000-7f5c3ed61000 ---p 00005000 08:01 671168                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/select.so
7f5c3ed61000-7f5c3ed62000 r--p 00004000 08:01 671168                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/select.so
7f5c3ed62000-7f5c3ed64000 rw-p 00005000 08:01 671168                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/select.so
7f5c3ed64000-7f5c3ed68000 r-xp 00000000 08:01 671172                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/termios.so
7f5c3ed68000-7f5c3ef67000 ---p 00004000 08:01 671172                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/termios.so
7f5c3ef67000-7f5c3ef68000 r--p 00003000 08:01 671172                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/termios.so
7f5c3ef68000-7f5c3ef6a000 rw-p 00004000 08:01 671172                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/termios.so
7f5c3ef6a000-7f5c3efea000 rw-p 00000000 00:00 0 
7f5c3efea000-7f5c3efef000 r-xp 00000000 08:01 671175                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/zlib.so
7f5c3efef000-7f5c3f1ee000 ---p 00005000 08:01 671175                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/zlib.so
7f5c3f1ee000-7f5c3f1ef000 r--p 00004000 08:01 671175                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/zlib.so
7f5c3f1ef000-7f5c3f1f1000 rw-p 00005000 08:01 671175                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/zlib.so
7f5c3f1f1000-7f5c3f1f6000 r-xp 00000000 08:01 671161                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/mmap.so
7f5c3f1f6000-7f5c3f3f5000 ---p 00005000 08:01 671161                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/mmap.so
7f5c3f3f5000-7f5c3f3f6000 r--p 00004000 08:01 671161                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/mmap.so
7f5c3f3f6000-7f5c3f3f7000 rw-p 00005000 08:01 671161                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/mmap.so
7f5c3f3f7000-7f5c3f437000 rw-p 00000000 00:00 0 
7f5c3f437000-7f5c3f439000 r-xp 00000000 08:01 671157                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/grp.so
7f5c3f439000-7f5c3f638000 ---p 00002000 08:01 671157                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/grp.so
7f5c3f638000-7f5c3f639000 r--p 00001000 08:01 671157                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/grp.so
7f5c3f639000-7f5c3f63a000 rw-p 00002000 08:01 671157                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/grp.so
7f5c3f63a000-7f5c3f6fa000 rw-p 00000000 00:00 0 
7f5c3f6fa000-7f5c3f705000 r-xp 00000000 08:01 1320878                    
/root/.pyenv/versions/2.7.12/lib/python2.7/site-packages/ujson.so
7f5c3f705000-7f5c3f904000 ---p 0000b000 08:01 1320878                    
/root/.pyenv/versions/2.7.12/lib/python2.7/site-packages/ujson.so
7f5c3f904000-7f5c3f905000 r--p 0000a000 08:01 1320878                    
/root/.pyenv/versions/2.7.12/lib/python2.7/site-packages/ujson.so
7f5c3f905000-7f5c3f906000 rw-p 0000b000 08:01 1320878                    
/root/.pyenv/versions/2.7.12/lib/python2.7/site-packages/ujson.so
7f5c3f906000-7f5c3f99c000 r-xp 00000000 08:01 671174                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/unicodedata.so
7f5c3f99c000-7f5c3fb9c000 ---p 00096000 08:01 671174                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/unicodedata.so
7f5c3fb9c000-7f5c3fb9d000 r--p 00096000 08:01 671174                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/unicodedata.so
7f5c3fb9d000-7f5c3fbb0000 rw-p 00097000 08:01 671174                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/unicodedata.so
7f5c3fbb0000-7f5c3fc30000 rw-p 00000000 00:00 0 
7f5c3fc64000-7f5c3fc6d000 r-xp 00000000 08:01 671136                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/_json.so
7f5c3fc6d000-7f5c3fe6c000 ---p 00009000 08:01 671136                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/_json.so
7f5c3fe6c000-7f5c3fe6d000 r--p 00008000 08:01 671136                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/_json.so
7f5c3fe6d000-7f5c3fe6e000 rw-p 00009000 08:01 671136                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/_json.so
7f5c3fe6e000-7f5c3fe78000 r-xp 00000000 08:01 671147                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/array.so
7f5c3fe78000-7f5c40077000 ---p 0000a000 08:01 671147                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/array.so
7f5c40077000-7f5c40078000 r--p 00009000 08:01 671147                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/array.so
7f5c40078000-7f5c4007a000 rw-p 0000a000 08:01 671147                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/array.so
7f5c4007a000-7f5c40085000 r-xp 00000000 08:01 803494                     
/root/.pyenv/versions/2.7.12/lib/python2.7/site-packages/simplejson/_speedups.so
7f5c40085000-7f5c40284000 ---p 0000b000 08:01 803494                     
/root/.pyenv/versions/2.7.12/lib/python2.7/site-packages/simplejson/_speedups.so
7f5c40284000-7f5c40285000 r--p 0000a000 08:01 803494                     
/root/.pyenv/versions/2.7.12/lib/python2.7/site-packages/simplejson/_speedups.so
7f5c40285000-7f5c40286000 rw-p 0000b000 08:01 803494                     
/root/.pyenv/versions/2.7.12/lib/python2.7/site-packages/simplejson/_speedups.so
7f5c40286000-7f5c402c6000 rw-p 00000000 00:00 0 
7f5c402c6000-7f5c402ca000 r-xp 00000000 08:01 133970                     
/usr/lib64/libuuid.so.1.3.0
7f5c402ca000-7f5c404c9000 ---p 00004000 08:01 133970                     
/usr/lib64/libuuid.so.1.3.0
7f5c404c9000-7f5c404ca000 r--p 00003000 08:01 133970                     
/usr/lib64/libuuid.so.1.3.0
7f5c404ca000-7f5c404cb000 rw-p 00004000 08:01 133970                     
/usr/lib64/libuuid.so.1.3.0
7f5c404cb000-7f5c404ce000 r-xp 00000000 08:01 671155                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/fcntl.so
7f5c404ce000-7f5c406cd000 ---p 00003000 08:01 671155                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/fcntl.so
7f5c406cd000-7f5c406ce000 r--p 00002000 08:01 671155                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/fcntl.so
7f5c406ce000-7f5c406cf000 rw-p 00003000 08:01 671155                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/fcntl.so
7f5c406cf000-7f5c406d2000 r-xp 00000000 08:01 671141                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/_random.so
7f5c406d2000-7f5c408d1000 ---p 00003000 08:01 671141                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/_random.so
7f5c408d1000-7f5c408d2000 r--p 00002000 08:01 671141                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/_random.so
7f5c408d2000-7f5c408d3000 rw-p 00003000 08:01 671141                     
/root/.pyenv/versions/2.7.12/lib/python2.7/lib-dynload/_random.so
7f5c408d3000-7f5c40933000 r-xp 00000000 08:01 133875                     
/usr/lib64/libpcre.so.1.2.0
7f5c40933000-7f5c40b33000 ---p 00060000 08:01 133875                     
/usr/lib64/libpcre.so.1.2.0
7f5c40b33000-7f5c40b34000 r--p 00060000 08:01 133875                     
/usr/lib64/libpcre.so.1.2.0
7f5c40b34000-7f5c40b35000 rw-p 00061000 08:01 133875                     
/usr/lib64/libpcre.so.1.2.0
7f5c40b35000-7f5c40b59000 r-xp 00000000 08:01 133918                     
/usr/lib64/libselinux.so.1
7f5c40b59000-7f5c40d58000 ---p 00024000 08:01 133918                     
/usr/lib64/libselinux.so.1
7f5c40d58000-7f5c40d59000 r--p 00023000 08:01 133918                     
/usr/lib64/libselinux.so.1
7f5c40d59000-7f5c40d5a000 rw-p 00024000 08:01 133918                     
/usr/lib64/libselinux.so.1
7f5c40d5a000-7f5c40d5c000 rw-p 00000000 00:00 0 
7f5c40d5c000-7f5c40d72000 r-xp 00000000 08:01 1444948                    
/usr/lib64/libresolv-2.17.so
7f5c40d72000-7f5c40f71000 ---p 00016000 08:01 1444948                    
/usr/lib64/libresolv-2.17.so
7f5c40f71000-7f5c40f72000 r--p 00015000 08:01 1444948                    
/usr/lib64/libresolv-2.17.so
7f5c40f72000-7f5c40f73000 rw-p 00016000 08:01 1444948                    
/usr/lib64/libresolv-2.17.so.

</snip>

Best Regards,
Rishi
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to