test_ovfl01 TypeError: in method 'Cursor__freecb', argument 1 of type 'struct __wt_cursor *'

XMLWordPrintableJSON

    unit-test-zstd on ubuntu2004

    Host: i-02497d44734f7da6e
    Project: wiredtiger
    Commit: ed82fb5a
    Please refer to BF(G) Playbook for instructions on handling BF and BFG tickets as well as Auto-Resolution Rules

    Task Logs:

    unit-test-zstd task_log

    Logs:

    [pid:3258]: test_layered47.test_layered47.test_checkpoint_order_mismatch -s 0 (palite): starting
    [pid:3258]: test_layered47.test_layered47.test_checkpoint_order_mismatch -s 0 (palite): 0.79 seconds
    [pid:3088/3258]: test_layered47.test_layered47.test_checkpoint_order_mismatch(palite) ... ok
    

    logs

    unit-test-zstd task_log

    Logs:

    [pid:3088]: ERROR: test_ovfl01.test_ovfl01.test_ovfl01
    ----------------------------------------------------------------------
    [pid:3088]: testtools.testresult.real._StringException: Traceback (most recent call last):
      File "/data/mci/eacb3f5d6f9c4b50367e9c1ad3fca749/wiredtiger/test/suite/wttest.py", line 283, in _callTestMethod
        method()
      File "/data/mci/eacb3f5d6f9c4b50367e9c1ad3fca749/wiredtiger/test/suite/test_ovfl01.py", line 76, in test_ovfl01
        self.populate(self.uri)
      File "/data/mci/eacb3f5d6f9c4b50367e9c1ad3fca749/wiredtiger/test/suite/test_ovfl01.py", line 67, in populate
        c.close()
      File "/data/mci/eacb3f5d6f9c4b50367e9c1ad3fca749/wiredtiger/cmake_build/lang/python/wiredtiger/swig_wiredtiger.py", line 179, in close
        self._freecb()
    TypeError: in method 'Cursor__freecb', argument 1 of type 'struct __wt_cursor *'
    ----------------------------------------------------------------------
    Ran 14404 tests in 9160.065s
    

    logs

    unit-test-zstd task_log

    Logs:

    AssertionError: unexpected standard output, contains: "[1761180530:992401][3258:0x7ff7d5109cc0], test_ovfl01.test_ovfl01.test_ovfl01, file:test_ovfl01.wt, WT_CURSOR.insert: [WT_VERB_SPLIT][WARNING]: bulk insert failed during page split
    

    logs

    Probable root cause:

    • Currently, SWIG layer establishes connection between WT native objects (session, cursor) and associated Python objects via internal pointer at the C side. This pointer holds address of the corresponding Python object.
    • When parent object is closed, for example, a connection, then all child objects are closed implicitly. This is when the associated Python object is set to None to prevent hard crashes in the Python code, in case the dangling pointer is accessed.
    • When an object is closed explicitly from Python code, then the internal pointer it set to NULL, to keep Python object reference count correct.
    • The problem arrises, when close method of a cursor (or a session) returns EBUSY, which is technically an error, but must leave the object in a valid state. When the caller attempts calling the close again, then the object must not be freed or closed.

          Assignee:
          Alex Blekhman
          Reporter:
          xgen-buildbaron-user
          Votes:
          0 Vote for this issue
          Watchers:
          6 Start watching this issue

            Created:
            Updated:
            Resolved: