Segfault when importing a table

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Schema Management
    • None
    • Storage Engines, Storage Engines - Foundations
    • SE Foundations - Q4+ Backlog
    • None

      I was investigating WT-16021 and got a segfault when importing a table.
      Here is the reproucer:

      commit 6dbefe35245c4c25f46b00edc14a2bf0076dd3f1 (HEAD -> develop, origin/develop, origin/HEAD)
      
      import shutil
      from helper import copy_wiredtiger_home
      import os
      import wttest
      from wiredtiger import stat
      
      class test_import13(wttest.WiredTigerTestCase):
          tablename = 'test_import13'
          params = 'key_format=S,value_format=S'
          uri = 'table:' + tablename
          dir = 'backup.dir'
      
          def test_import(self):
              self.session.create(self.uri, self.params)
      
              export_cursor = self.session.open_cursor('backup:export', None, None)
              os.mkdir(self.dir)
              copy_wiredtiger_home(self, '.', self.dir)
              self.assertTrue(os.path.isfile("WiredTiger.export"))
              export_cursor.close()
      
      
              self.session.drop(self.uri)
      
              self.session.checkpoint()
              import_config = 'import=(enabled,repair=true,metadata_file="WiredTiger.export")'
              shutil.copyfile('backup.dir/WiredTiger.export', 'WiredTiger.export')
              self.session.create(self.uri, import_config)
              files_imported_prev = self.get_stat(stat.conn.session_table_create_import_success)
              self.assertTrue(files_imported_prev == 1)
      

      Stack trace:

      #1  0x0000ffff8339cf80 in __create_table (session=session@entry=0xffff82a71c90, uri=uri@entry=0x2e296d90 "table:test_import13", exclusive=false, config=config@entry=0x2e5686a0 "import=(enabled,repair=true,metadata_file=\"WiredTiger.export\")") at wiredtiger/src/schema/schema_create.c:972
      #2  0x0000ffff833991a4 in __schema_create (session=0xffff82a71c90, uri=0x2e296d90 "table:test_import13", config=0x2e5686a0 "import=(enabled,repair=true,metadata_file=\"WiredTiger.export\")") at wiredtiger/src/schema/schema_create.c:1542
      #3  __wt_schema_create (session=session@entry=0xffff82a71c90, uri=uri@entry=0x2e296d90 "table:test_import13", config=config@entry=0x2e5686a0 "import=(enabled,repair=true,metadata_file=\"WiredTiger.export\")") at wiredtiger/src/schema/schema_create.c:1594
      #4  0x0000ffff833af648 in __wt_session_create (session=session@entry=0xffff82a71c90, uri=uri@entry=0x2e296d90 "table:test_import13", config=config@entry=0x2e5686a0 "import=(enabled,repair=true,metadata_file=\"WiredTiger.export\")") at wiredtiger/src/session/session_api.c:1105
      #5  0x0000ffff833b3f6c in __session_create (wt_session=0xffff82a71c90, uri=0x2e296d90 "table:test_import13", config=0x2e5686a0 "import=(enabled,repair=true,metadata_file=\"WiredTiger.export\")") at wiredtiger/src/session/session_api.c:1147
      

      Looks like we are dealing with a NULL config:

      (gdb) f 1
      #1  0x0000ffff8339cf80 in __create_table (session=session@entry=0xffff82a71c90, uri=uri@entry=0x2e296d90 "table:test_import13", exclusive=false, config=config@entry=0x2e5686a0 "import=(enabled,repair=true,metadata_file=\"WiredTiger.export\")") at /home/ubuntu/wiredtiger/src/schema/schema_create.c:972
      972                   strlen(tablecfg) + strlen(",import=(enabled,file_metadata=())") + strlen(filecfg) + 1;
      (gdb) p filecfg
      $1 = 0x0
      

            Assignee:
            [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            Etienne Petrel
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: