Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-2359

WiredTiger with Python will hang if a calloc failure occurs during __wt_connection_close

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None

      More work with Fault Injection and the python suite.

      Test running in python was test_backup02.test_backup02.test_backup02

      Fault was injected at this point:

      test_backup02.test_backup02.test_backup02 ... /home/david/work/lfi/intercept.stub.so(_Z9Backtracev+0x1f) [0x7f6edf23452f]
      /home/david/work/lfi/intercept.stub.so(_ZN16CallCountTrigger4EvalEPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEz+0xee) [0x7f6edf234450]
      /home/david/work/lfi/intercept.stub.so(_Z16determine_actionP8fninfov2PKcPvS3_S3_S3_S3_S3_PiS4_S4_S4_+0x392) [0x7f6edf231201]
      /home/david/work/lfi/intercept.stub.so(__wt_calloc+0x118) [0x7f6edf230c88]
      /home/david/work/wiredtiger/build_posix/.libs/libwiredtiger-2.7.1.so(__wt_update_alloc+0x2d) [0x7f6edef3b6bd]
      /home/david/work/wiredtiger/build_posix/.libs/libwiredtiger-2.7.1.so(__wt_row_modify+0x9a7) [0x7f6edef3c4e7]
      /home/david/work/wiredtiger/build_posix/.libs/libwiredtiger-2.7.1.so(__wt_btcur_update+0x2e7) [0x7f6edef0b3e7]
      /home/david/work/wiredtiger/build_posix/.libs/libwiredtiger-2.7.1.so(+0x912fc) [0x7f6edef5b2fc]
      /mnt/work/work/wiredtiger/build_posix/lang/python/_wiredtiger.so(+0x16f50) [0x7f6ed956cf50]
      /usr/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x7265) [0x7f6edebe0ec5]
      /usr/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x735d) [0x7f6edebe0fbd]
      /usr/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x735d) [0x7f6edebe0fbd]
      /usr/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x853) [0x7f6edebe4393]
      /usr/lib/libpython2.7.so.1.0(+0x746f8) [0x7f6edeb656f8]
      /usr/lib/libpython2.7.so.1.0(PyObject_Call+0x57) [0x7f6edeb3dfe7]
      /usr/lib/libpython2.7.so.1.0(+0x5d36f) [0x7f6edeb4e36f]
      /usr/lib/libpython2.7.so.1.0(PyObject_Call+0x57) [0x7f6edeb3dfe7]
      /usr/lib/libpython2.7.so.1.0(PyEval_CallObjectWithKeywords+0x5b) [0x7f6edebd961b]
      /usr/lib/libpython2.7.so.1.0(+0x125b26) [0x7f6edec16b26]
      /usr/lib/libpthread.so.0(+0x7424) [0x7f6ede8db424]
      /usr/lib/libc.so.6(clone+0x6d) [0x7f6ede61acbd]
      

      When running backtrace, it appears that python is hung in a wait state:

      #0  0x00007f2dfe2702d7 in do_futex_wait.constprop () from /usr/lib/libpthread.so.0
      #1  0x00007f2dfe270384 in __new_sem_wait_slow.constprop.0 () from /usr/lib/libpthread.so.0
      #2  0x00007f2dfe59f45d in PyThread_acquire_lock () from /usr/lib/libpython2.7.so.1.0
      #3  0x00007f2dfe5a3682 in lock_PyThread_acquire_lock () from /usr/lib/libpython2.7.so.1.0
      #4  0x00007f2dfe56e2be in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0
      #5  0x00007f2dfe571393 in PyEval_EvalCodeEx () from /usr/lib/libpython2.7.so.1.0
      #6  0x00007f2dfe56dde3 in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0
      #7  0x00007f2dfe56dfbd in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0
      #8  0x00007f2dfe56dfbd in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0
      #9  0x00007f2dfe571393 in PyEval_EvalCodeEx () from /usr/lib/libpython2.7.so.1.0
      #10 0x00007f2dfe4f27d0 in function_call () from /usr/lib/libpython2.7.so.1.0
      #11 0x00007f2dfe4cafe7 in PyObject_Call () from /usr/lib/libpython2.7.so.1.0
      #12 0x00007f2dfe56b1fe in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0
      #13 0x00007f2dfe571393 in PyEval_EvalCodeEx () from /usr/lib/libpython2.7.so.1.0
      #14 0x00007f2dfe4f26f8 in function_call () from /usr/lib/libpython2.7.so.1.0
      #15 0x00007f2dfe4cafe7 in PyObject_Call () from /usr/lib/libpython2.7.so.1.0
      #16 0x00007f2dfe4db36f in instancemethod_call () from /usr/lib/libpython2.7.so.1.0
      #17 0x00007f2dfe4cafe7 in PyObject_Call () from /usr/lib/libpython2.7.so.1.0
      #18 0x00007f2dfe5284db in slot_tp_call () from /usr/lib/libpython2.7.so.1.0
      #19 0x00007f2dfe4cafe7 in PyObject_Call () from /usr/lib/libpython2.7.so.1.0
      #20 0x00007f2dfe56cd2c in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0
      #21 0x00007f2dfe571393 in PyEval_EvalCodeEx () from /usr/lib/libpython2.7.so.1.0
      #22 0x00007f2dfe4f27d0 in function_call () from /usr/lib/libpython2.7.so.1.0
      #23 0x00007f2dfe4cafe7 in PyObject_Call () from /usr/lib/libpython2.7.so.1.0
      #24 0x00007f2dfe56b1fe in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0
      #25 0x00007f2dfe571393 in PyEval_EvalCodeEx () from /usr/lib/libpython2.7.so.1.0
      #26 0x00007f2dfe4f26f8 in function_call () from /usr/lib/libpython2.7.so.1.0
      #27 0x00007f2dfe4cafe7 in PyObject_Call () from /usr/lib/libpython2.7.so.1.0
      #28 0x00007f2dfe4db36f in instancemethod_call () from /usr/lib/libpython2.7.so.1.0
      #29 0x00007f2dfe4cafe7 in PyObject_Call () from /usr/lib/libpython2.7.so.1.0
      #30 0x00007f2dfe5284db in slot_tp_call () from /usr/lib/libpython2.7.so.1.0
      #31 0x00007f2dfe4cafe7 in PyObject_Call () from /usr/lib/libpython2.7.so.1.0
      #32 0x00007f2dfe56cd2c in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0
      ---Type <return> to continue, or q <return> to quit---
      #33 0x00007f2dfe56dfbd in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0
      #34 0x00007f2dfe56dfbd in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0
      #35 0x00007f2dfe571393 in PyEval_EvalCodeEx () from /usr/lib/libpython2.7.so.1.0
      #36 0x00007f2dfe5714cc in PyEval_EvalCode () from /usr/lib/libpython2.7.so.1.0
      #37 0x00007f2dfe58c4f3 in run_mod () from /usr/lib/libpython2.7.so.1.0
      #38 0x00007f2dfe58d7a2 in PyRun_FileExFlags () from /usr/lib/libpython2.7.so.1.0
      #39 0x00007f2dfe58ead9 in PyRun_SimpleFileExFlags () from /usr/lib/libpython2.7.so.1.0
      #40 0x00007f2dfe5a1b05 in Py_Main () from /usr/lib/libpython2.7.so.1.0
      #41 0x00007f2dfdedd610 in __libc_start_main () from /usr/lib/libc.so.6
      #42 0x0000562f8b3e6859 in _start ()
      

            Assignee:
            backlog-server-execution [DO NOT USE] Backlog - Storage Execution Team
            Reporter:
            david.hows David Hows
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: