Segfault when linking against libsqlite3

Originator:patrick.gombert
Number:rdar://28172838 Date Originated:06-Sep-2016
Status:Open Resolved:
Product:Other Product Version:
Classification: Reproducible:Yes
 
Summary:
When using the python sqlite driver and linking against the dylib provided with OSX (/usr/lib/libqlite3.dylib) we can reproducibly cause a segfault. The attached file has the back trace when the segfault occurs. When using the dylib from the homebrew installed version of sqlite it works as expected.

Steps to Reproduce:
Unfortunately, the test suite is proprietary and can't be shared.

Expected Results:
No seg fault.

Actual Results:
Segfault.

Version:
sqlite3, OSX El Capitan 10.11.6 (although it has happened on other OSX versions)

Notes:

Configuration:
Out of the box sqlite3

Attached File:
(lldb) bt
* thread #1: tid = 0x91e34, 0x00007fff977b1fd6 libsystem_platform.dylib`_platform_memmove$VARIANT$Haswell + 182, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x8)
  * frame #0: 0x00007fff977b1fd6 libsystem_platform.dylib`_platform_memmove$VARIANT$Haswell + 182
    frame #1: 0x00007fff979f8ff8 libsqlite3.dylib`memjrnlRead + 200
    frame #2: 0x00007fff979f93c1 libsqlite3.dylib`pager_playback_one_page + 81
    frame #3: 0x00007fff97a10215 libsqlite3.dylib`sqlite3PagerSavepoint + 565
    frame #4: 0x00007fff979b43fb libsqlite3.dylib`sqlite3VdbeExec + 26203
    frame #5: 0x00007fff979aca8f libsqlite3.dylib`sqlite3_step + 591
    frame #6: 0x0000000105febd93 _sqlite3.so`pysqlite_step + 31
    frame #7: 0x0000000105fe9867 _sqlite3.so`_pysqlite_query_execute + 1603
    frame #8: 0x000000010000d202 Python`PyObject_Call + 99
    frame #9: 0x000000010008be83 Python`PyEval_CallObjectWithKeywords + 165
    frame #10: 0x000000010001e25d Python`___lldb_unnamed_function328$$Python + 134
    frame #11: 0x000000010000d202 Python`PyObject_Call + 99
    frame #12: 0x0000000100088e37 Python`PyEval_EvalFrameEx + 10372
    frame #13: 0x00000001000863c1 Python`PyEval_EvalCodeEx + 1583
    frame #14: 0x000000010008c4ae Python`___lldb_unnamed_function1476$$Python + 117
    frame #15: 0x000000010008930c Python`PyEval_EvalFrameEx + 11609
    frame #16: 0x00000001000863c1 Python`PyEval_EvalCodeEx + 1583
    frame #17: 0x000000010008c4ae Python`___lldb_unnamed_function1476$$Python + 117
    frame #18: 0x000000010008930c Python`PyEval_EvalFrameEx + 11609
    frame #19: 0x000000010008c541 Python`___lldb_unnamed_function1476$$Python + 264
    frame #20: 0x000000010008930c Python`PyEval_EvalFrameEx + 11609
    frame #21: 0x000000010008c541 Python`___lldb_unnamed_function1476$$Python + 264
    frame #22: 0x000000010008930c Python`PyEval_EvalFrameEx + 11609
    frame #23: 0x000000010008c541 Python`___lldb_unnamed_function1476$$Python + 264
    frame #24: 0x000000010008930c Python`PyEval_EvalFrameEx + 11609
    frame #25: 0x00000001000863c1 Python`PyEval_EvalCodeEx + 1583
    frame #26: 0x000000010008c4ae Python`___lldb_unnamed_function1476$$Python + 117
    frame #27: 0x000000010008930c Python`PyEval_EvalFrameEx + 11609
    frame #28: 0x00000001000863c1 Python`PyEval_EvalCodeEx + 1583
    frame #29: 0x000000010008c4ae Python`___lldb_unnamed_function1476$$Python + 117
    frame #30: 0x000000010008930c Python`PyEval_EvalFrameEx + 11609
    frame #31: 0x00000001000863c1 Python`PyEval_EvalCodeEx + 1583
    frame #32: 0x000000010008c4ae Python`___lldb_unnamed_function1476$$Python + 117
    frame #33: 0x000000010008930c Python`PyEval_EvalFrameEx + 11609
    frame #34: 0x00000001000863c1 Python`PyEval_EvalCodeEx + 1583
    frame #35: 0x000000010002b2e5 Python`___lldb_unnamed_function510$$Python + 352
    frame #36: 0x000000010000d202 Python`PyObject_Call + 99
    frame #37: 0x0000000100017ff5 Python`___lldb_unnamed_function192$$Python + 173
    frame #38: 0x000000010000d202 Python`PyObject_Call + 99
    frame #39: 0x0000000100053a33 Python`___lldb_unnamed_function1032$$Python + 61
    frame #40: 0x000000010000d202 Python`PyObject_Call + 99
    frame #41: 0x0000000100088e37 Python`PyEval_EvalFrameEx + 10372
    frame #42: 0x00000001000863c1 Python`PyEval_EvalCodeEx + 1583
    frame #43: 0x000000010002b2e5 Python`___lldb_unnamed_function510$$Python + 352
    frame #44: 0x000000010000d202 Python`PyObject_Call + 99
    frame #45: 0x00000001000894ac Python`PyEval_EvalFrameEx + 12025
    frame #46: 0x00000001000863c1 Python`PyEval_EvalCodeEx + 1583
    frame #47: 0x000000010002b2e5 Python`___lldb_unnamed_function510$$Python + 352
    frame #48: 0x000000010000d202 Python`PyObject_Call + 99
    frame #49: 0x0000000100017ff5 Python`___lldb_unnamed_function192$$Python + 173
    frame #50: 0x000000010000d202 Python`PyObject_Call + 99
    frame #51: 0x0000000100053a33 Python`___lldb_unnamed_function1032$$Python + 61
    frame #52: 0x000000010000d202 Python`PyObject_Call + 99
    frame #53: 0x0000000100088e37 Python`PyEval_EvalFrameEx + 10372
    frame #54: 0x000000010008c541 Python`___lldb_unnamed_function1476$$Python + 264
    frame #55: 0x000000010008930c Python`PyEval_EvalFrameEx + 11609
    frame #56: 0x00000001000863c1 Python`PyEval_EvalCodeEx + 1583
    frame #57: 0x000000010008c4ae Python`___lldb_unnamed_function1476$$Python + 117
    frame #58: 0x000000010008930c Python`PyEval_EvalFrameEx + 11609
    frame #59: 0x00000001000863c1 Python`PyEval_EvalCodeEx + 1583
    frame #60: 0x000000010008c4ae Python`___lldb_unnamed_function1476$$Python + 117
    frame #61: 0x000000010008930c Python`PyEval_EvalFrameEx + 11609
    frame #62: 0x00000001000863c1 Python`PyEval_EvalCodeEx + 1583
    frame #63: 0x000000010002b2e5 Python`___lldb_unnamed_function510$$Python + 352
    frame #64: 0x000000010000d202 Python`PyObject_Call + 99
    frame #65: 0x00000001000894ac Python`PyEval_EvalFrameEx + 12025
    frame #66: 0x00000001000863c1 Python`PyEval_EvalCodeEx + 1583
    frame #67: 0x000000010002b2e5 Python`___lldb_unnamed_function510$$Python + 352
    frame #68: 0x000000010000d202 Python`PyObject_Call + 99
    frame #69: 0x00000001000894ac Python`PyEval_EvalFrameEx + 12025
    frame #70: 0x00000001000863c1 Python`PyEval_EvalCodeEx + 1583
    frame #71: 0x000000010002b2e5 Python`___lldb_unnamed_function510$$Python + 352
    frame #72: 0x000000010000d202 Python`PyObject_Call + 99
    frame #73: 0x00000001000894ac Python`PyEval_EvalFrameEx + 12025
    frame #74: 0x00000001000863c1 Python`PyEval_EvalCodeEx + 1583
    frame #75: 0x000000010008c4ae Python`___lldb_unnamed_function1476$$Python + 117
    frame #76: 0x000000010008930c Python`PyEval_EvalFrameEx + 11609
    frame #77: 0x000000010008c541 Python`___lldb_unnamed_function1476$$Python + 264
    frame #78: 0x000000010008930c Python`PyEval_EvalFrameEx + 11609
    frame #79: 0x00000001000863c1 Python`PyEval_EvalCodeEx + 1583
    frame #80: 0x000000010008c4ae Python`___lldb_unnamed_function1476$$Python + 117
    frame #81: 0x000000010008930c Python`PyEval_EvalFrameEx + 11609
    frame #82: 0x00000001000863c1 Python`PyEval_EvalCodeEx + 1583
    frame #83: 0x000000010008c4ae Python`___lldb_unnamed_function1476$$Python + 117
    frame #84: 0x000000010008930c Python`PyEval_EvalFrameEx + 11609
    frame #85: 0x00000001000863c1 Python`PyEval_EvalCodeEx + 1583
    frame #86: 0x0000000100085d8c Python`PyEval_EvalCode + 54
    frame #87: 0x00000001000a5a42 Python`___lldb_unnamed_function1599$$Python + 53
    frame #88: 0x00000001000a5ae5 Python`PyRun_FileExFlags + 133
    frame #89: 0x00000001000a5634 Python`PyRun_SimpleFileExFlags + 698
    frame #90: 0x00000001000b7011 Python`Py_Main + 3137
    frame #91: 0x00007fff93b705ad libdyld.dylib`start + 1
    frame #92: 0x00007fff93b705ad libdyld.dylib`start + 1

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!