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

WT command line tool dump command with -j sometimes appends last character of key twice

    • Type: Icon: Bug Bug
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Storage Engines
    • StorEng - Defined Pipeline

      Using the dump command of the WT command line tool with -j option outputs the contents of the table in JSON format. However, in some cases it appears to append the last character of the key name twice, along with an extra quotation mark. For example:

      ❯ build/install/bin/wt -h /data/db -r dump -j sizeStorer
      {
          "WiredTiger Dump Version" : "1 (11.2.0)",
          "table:sizeStorer" : [
              {
                  "config" : "access_pattern_hint=none,allocation_size=4KB,app_metadata=,assert=(commit_timestamp=none,durable_timestamp=none,read_timestamp=none,write_timestamp=off),block_allocation=best,block_compressor=,cache_resident=false,checksum=on,colgroups=,collator=,columns=,dictionary=0,encryption=(keyid=,name=),exclusive=false,extractor=,format=btree,huffman_key=,huffman_value=,ignore_in_memory_cache_size=false,immutable=false,import=(compare_timestamp=oldest_timestamp,enabled=false,file_metadata=,metadata_file=,repair=false),internal_item_max=0,internal_key_max=0,internal_key_truncate=true,internal_page_max=4KB,key_format=u,key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=32KB,leaf_value_max=0,log=(enabled=true),lsm=(auto_throttle=true,bloom=true,bloom_bit_count=16,bloom_config=,bloom_hash_count=8,bloom_oldest=false,chunk_count_limit=0,chunk_max=5GB,chunk_size=10MB,merge_custom=(prefix=,start_generation=0,suffix=),merge_max=15,merge_min=0),memory_page_image_max=0,memory_page_max=5MB,os_cache_dirty_max=0,os_cache_max=0,prefix_compression=false,prefix_compression_min=4,source=\"file:sizeStorer.wt\",split_deepen_min_child=0,split_deepen_per_child=0,split_pct=90,tiered_storage=(auth_token=,bucket=,bucket_prefix=,cache_directory=,local_retention=300,name=,object_target_size=0),type=file,value_format=u,verbose=[],write_timestamp_usage=none",
                  "colgroups" : [],
                  "indices" : []
              },
              {
                  "data" : [
      ...,
      {
      "key0" : "\u0074\u0061\u0062\u006c\u0065\u003a\u0063\u006f\u006c\u006c\u0065\u0063\u0074\u0069\u006f\u006e\u002d\u0033\u0038\u002d\u0031\u0036\u0032\u0035\u0033\u0039\u0039\u0037\u0036\u0039\u0036\u0034\u0037\u0031\u0032\u0031\u0033\u0035\u0036\u0036",
      "value0" : "\u002b\u0000\u0000\u0000\u0012\u006e\u0075\u006d\u0052\u0065\u0063\u006f\u0072\u0064\u0073\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0012\u0064\u0061\u0074\u0061\u0053\u0069\u007a\u0065\u0000\u001d\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"
      },
      {
      "key0" : "\u0074\u0061\u0062\u006c\u0065\u003a\u0063\u006f\u006c\u006c\u0065\u0063\u0074\u0069\u006f\u006e\u002d\u0034\u002d\u0031\u0036\u0032\u0035\u0033\u0039\u0039\u0037\u0036\u0039\u0036\u0034\u0037\u0031\u0032\u0031\u0033\u0035\u0036\u0036"u0036",
      "value0" : "\u002b\u0000\u0000\u0000\u0012\u006e\u0075\u006d\u0052\u0065\u0063\u006f\u0072\u0064\u0073\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0012\u0064\u0061\u0074\u0061\u0053\u0069\u007a\u0065\u0000\u002d\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"
      },
      ...
                  ]
              }
          ]
      }
      

      Notice how for the value of key0, one entry contains an extra u0036" at the end. The extra quotation mark is especially problematic because it means that the output is not valid JSON and thus cannot be parsed as such.

            Assignee:
            backlog-server-storage-engines [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            gregory.noma@mongodb.com Gregory Noma
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated: