Originally reported in WT-3135, as it seems to be related to fixes made for that report.
Dmitri Shubin reports:
Attaching test that shows the problem I see when duplicating index cursor.
When running on current master (13d9445) I get:
$ ./index_cursor_dup adding new record positioning index cursor index_compare: ikey1 = 17, pkey1 = <empty>, ikey2 = 17, pkey2 = 13 index_compare: ikey1 = 17, pkey1 = <empty>, ikey2 = 17, pkey2 = 13 index_compare: ikey1 = 17, pkey1 = <empty>, ikey2 = 17, pkey2 = 13 index_compare: ikey1 = 17, pkey1 = <empty>, ikey2 = 17, pkey2 = <empty> duplicating cursor index_compare: ikey1 = 17, pkey1 = 13, ikey2 = 17, pkey2 = 13 index_compare: ikey1 = 17, pkey1 = 13, ikey2 = 17, pkey2 = 13
But on develop (a8fe040):
$ ./index_cursor_dup adding new record positioning index cursor index_compare: ikey1 = 17, pkey1 = <empty>, ikey2 = 17, pkey2 = 13 index_compare: ikey1 = 17, pkey1 = <empty>, ikey2 = 17, pkey2 = 13 index_compare: ikey1 = 17, pkey1 = <empty>, ikey2 = 17, pkey2 = 13 index_compare: ikey1 = 17, pkey1 = <empty>, ikey2 = 17, pkey2 = <empty> duplicating cursor index_compare: ikey1 = 17, pkey1 = 13, ikey2 = 17, pkey2 = 13 index_compare: ikey1 = 17, pkey1 = 13, ikey2 = 17, pkey2 = <empty> session->open_cursor(session, NULL, cursor, NULL, &cursor1) at (index_cursor_dup.c:110) failed: No such file or directory [2]
Probably the reason is that collator should handle absence of primary keys a bit differently.
Please advise.