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

'wt dump' crashes when given table with unknown collator

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Minor - P4 Minor - P4
    • WT2.9.2, 3.2.13, 3.4.4, 3.5.6
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None

      Hi!

      Got core of wt utility when trying to dump table with custom collator:

      $ ./wt -h db/persistence/sor_se/si_db/wt dump custom_audit
      [1488971242:417885][7144:0x7fd1b71a8740], file:custom_audit.wt, WT_SESSION.open_cursor: unknown compressor 'snappy': Invalid argument
      lt-wt: cursor open(table:custom_audit) failed: Invalid argument
      Segmentation fault (core dumped)
      

      When running under valgrind it complains about double-free:

      $ LD_LIBRARY_PATH=.libs valgrind --tool=memcheck --leak-check=full --show-reachable=yes --track-fds=yes --time-stamp=yes --num-callers=20 .libs/wt -h db/persistence/sor_se/si_db/wt dump custom_audit
      ==00:00:00:00.000 6837== Memcheck, a memory error detector
      ==00:00:00:00.000 6837== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
      ==00:00:00:00.000 6837== Using Valgrind-3.10.0 and LibVEX; rerun with -h for copyright info
      ==00:00:00:00.000 6837== Command: .libs/wt -h db/persistence/sor_se/si_db/wt dump custom_audit
      ==00:00:00:00.000 6837== 
      [1488971071:63672][6837:0x40338c0], file:custom_audit.wt, WT_SESSION.open_cursor: unknown compressor 'snappy': Invalid argument
      wt: cursor open(table:custom_audit) failed: Invalid argument
      ==00:00:00:01.243 6837== Invalid free() / delete / delete[] / realloc()
      ==00:00:00:01.244 6837==    at 0x4C28D17: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==00:00:00:01.244 6837==    by 0x4F1535F: __wt_schema_destroy_table (schema_list.c:201)
      ==00:00:00:01.244 6837==    by 0x4F15A32: __wt_schema_remove_table (schema_list.c:235)
      ==00:00:00:01.244 6837==    by 0x4F15A32: __wt_schema_close_tables (schema_list.c:249)
      ==00:00:00:01.244 6837==    by 0x4F27F19: __session_close (session_api.c:223)
      ==00:00:00:01.244 6837==    by 0x4E9B3E0: __conn_close (conn_api.c:1086)
      ==00:00:00:01.244 6837==    by 0x4019E2: main (util_main.c:238)
      ==00:00:00:01.244 6837==  Address 0x5c509c0 is 0 bytes inside a block of size 19 free'd
      ==00:00:00:01.244 6837==    at 0x4C28D17: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==00:00:00:01.244 6837==    by 0x4EC6506: __wt_cursor_close (cur_std.c:557)
      ==00:00:00:01.244 6837==    by 0x4EC9FAB: __wt_curtable_open (cur_table.c:993)
      ==00:00:00:01.244 6837==    by 0x4F23CB0: __session_open_cursor_int (session_api.c:348)
      ==00:00:00:01.244 6837==    by 0x4F242B9: __session_open_cursor (session_api.c:483)
      ==00:00:00:01.244 6837==    by 0x402F02: util_dump (util_dump.c:115)
      ==00:00:00:01.244 6837==    by 0x4019CE: main (util_main.c:235)
      

      Checked in latest develop branch (62f0543765deaf2f11b3c2e78d82940e500f004b)

            Assignee:
            donald.anderson@mongodb.com Donald Anderson
            Reporter:
            Dmitri Shubin Dmitri Shubin
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: