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

Fix test_dupc with tiered storage hook

    • Type: Icon: Bug Bug
    • Resolution: Won't Do
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Test Python

      Running python3 ../test/suite/run.py --hook tiered -v 3 test_dupc -s 4, we get:

      ======================================================================
      ERROR: test_dupc.test_duplicate_cursor.test_duplicate_cursor -s 4 (table-r)
      ----------------------------------------------------------------------
      Traceback (most recent call last):
        File "/home/ubuntu/wt/git/wt-9741-hook-tiered-evergreen/test/suite/wttest.py", line 365, in _callTestMethod
          method()
        File "/home/ubuntu/wt/git/wt-9741-hook-tiered-evergreen/test/suite/test_dupc.py", line 85, in test_duplicate_cursor
          ds.populate()
        File "/home/ubuntu/wt/git/wt-9741-hook-tiered-evergreen/test/suite/wtdataset.py", line 78, in populate
          self.create()
        File "/home/ubuntu/wt/git/wt-9741-hook-tiered-evergreen/test/suite/wtdataset.py", line 260, in create
          session.create('colgroup:' + tablepart + cg[0],
        File "/home/ubuntu/wt/git/wt-9741-hook-tiered-evergreen/test/suite/wthooks.py", line 192, in <lambda>
          f = lambda self, *args: hooked_function(self, orig_func, hook_info_name, *args)
        File "/home/ubuntu/wt/git/wt-9741-hook-tiered-evergreen/test/suite/wthooks.py", line 119, in hooked_function
          ret = call_func(self, *args)
        File "/home/ubuntu/wt/git/wt-9741-hook-tiered-evergreen/test/suite/hook_tiered.py", line 340, in <lambda>
          session_create_replace(orig_session_create, s, uri, config))
        File "/home/ubuntu/wt/git/wt-9741-hook-tiered-evergreen/test/suite/hook_tiered.py", line 177, in session_create_replace
          ret = orig_session_create(session_self, uri, new_config)
      _wiredtiger.WiredTigerError: Invalid argument 

      and we get output:

      test_dupc.test_duplicate_cursor.test_duplicate_cursor(table-r), WT_SESSION.create: [WT_VERB_DEFAULT][ERROR]: __create_colgroup, 481: Column group 'cgroup1' not found in table 'test_dupc': Invalid argument
      

      Some things to note:

      • this test uses ComplexDataSet (so column groups), however, column groups work in tiered storage. Test_tiered02 uses them, albeit with a key_format of "S".
      • this test scenario sets the key format to "r" (column store). The hook for "Session.create" specifically disables tiered storage in this case. So the parent table, and its column groups "should" be non-tiered.
      • this test case creates a SimpleDataSet using self.uri, and drops it. Then it creates a ComplexDataSet using self.uri (which is where the error occurs). If the first part of the test is removed, or if a different uri is used, we don't get the error. Give that, one hypothesis is that some residual metadata is hanging around.

            Assignee:
            backlog-server-storage-engines [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            donald.anderson@mongodb.com Donald Anderson
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: