Valgrind turns up a use after free:
==85928== Conditional jump or move depends on uninitialised value(s) ==85928== at 0x7FFF2022D303: ??? (in /dev/ttys012) ==85928== by 0x7FFF2022D0C8: ??? (in /dev/ttys012) ==85928== by 0x10565DD60: __wt_free_int (os_alloc.c:303) ==85928== by 0x1055E32DD: __config_parser_close (config_api.c:22) ==85928== by 0x1074C7C93: csv_customize (csv_extractor.c:168) ==85928== by 0x1055E632D: __wt_extractor_config (conn_api.c:628) ==85928== by 0x105681E05: __open_index (schema_open.c:145) ==85928== by 0x105681348: __schema_open_index (schema_open.c:318) ==85928== by 0x105680E00: __wt_schema_open_index (schema_open.c:375) ==85928== by 0x10567E616: __create_index (schema_create.c:669) ==85928== by 0x10567D1EB: __schema_create (schema_create.c:957) ==85928== by 0x10567CEB5: __wt_schema_create (schema_create.c:990)
The config parser is closed before the items found by it are used.