-
Type: Bug
-
Resolution: Done
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
Hi!
We have a DB that was created using WT 2.6.1
Usually it was used with txn logging, but the last time was opened without it to speed-up some bulk operation.
When I tried to open it with WT2.8.0 (w/ logging enabled) I got WT_NOTFOUND error from wiredtiger_open().
I'll attach small demo program:
$ gcc -I /home/sbn/src/wiredtiger-2.6.1 -L /home/sbn/src/wiredtiger-2.6.1/.libs -lwiredtiger notfound-on-open.c -o notfound-on-open $ LD_LIBRARY_PATH=/home/sbn/src/wiredtiger-2.6.1/.libs ./notfound-on-open $ /home/sbn/src/wiredtiger-2.6.1/wt -h notfound-on-open.db/ list -v metadata: allocation_size=4KB,app_metadata=,block_allocation=best,block_compressor=,cache_resident=0,checkpoint=(WiredTigerCheckpoint.1=(addr="",order=1,time=1460027377,size=0,write_gen=0)),checkpoint_lsn=(4294967295,9223372036854775807),checksum=uncompressed,collator=,columns=,dictionary=0,encryption=(keyid=,name=),format=btree,huffman_key=,huffman_value=,id=0,internal_item_max=0,internal_key_max=0,internal_key_truncate=,internal_page_max=4KB,key_format=S,key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=32KB,leaf_value_max=0,log=(enabled=),memory_page_max=5MB,os_cache_dirty_max=0,os_cache_max=0,prefix_compression=0,prefix_compression_min=4,split_deepen_min_child=0,split_deepen_per_child=0,split_pct=75,value_format=S,version=(major=1,minor=1) $ /home/sbn/src/wiredtiger-2.8.0/wt -h notfound-on-open.db/ -C 'log=(enabled)' list -v [1460027438:435026][4746:0x7f4dcecc5700], txn-recover: Recovery failed: WT_NOTFOUND: item not found lt-wt: WT_NOTFOUND: item not found
AFAIU from WT code problem is in checkpoint_lsn=(4294967295,9223372036854775807) which was set by WT2.6.1 after checkpoint w/o txn logs.
But in 2.8.0 WT_LSN was changed to have 32-bit offset so this value isn't recognized as MAX_LSN anymore.
Seems the workaround is to just open DB w/ wt utility from 2.8.0 with log disabled.
Thanks!