By default, the log.path configuration string is an empty string, which is passed to __wt_open as the "name" of the object being opened.
The filesystem layer only caches the name (that is, it doesn't cache the full path of the object being opened), so an empty string name is cached in the filesystem layer, which doesn't make much sense.
(gdb) where #0 __wt_open (session=0x80345a000, name=0x8034190c8 "", file_type=4, flags=0, fhp=0x8034ae028) at src/os_posix/os_open.c:164 #1 0x0000000000442b91 in __wt_log_open (session=0x80345a000) at src/log/log.c:1086 #2 0x0000000000423cf6 in __wt_logmgr_create (session=0x80345a000, cfg=0x7fffffffe030) at src/conn/conn_log.c:892 #3 0x0000000000426ebd in __wt_connection_workers (session=0x80345a000, cfg=0x7fffffffe030) at src/conn/conn_open.c:228 #4 0x0000000000416902 in wiredtiger_open (home=0x803419058 "RUNDIR", event_handler=0x7d62c8, config=0x7d75a0 "create,checkpoint_sync=false,cache_size=500MB,error_prefix=\"t\",eviction=(threads_max=4),log=(enabled=true,archive=0,prealloc=0,compressor=\"none\"),encryption=(name=none),buffer_alignment=512,mmap=0,sta"..., wt_connp=0x7fffffffe7d8) at src/conn/conn_api.c:2239 #5 0x00000000004105f4 in wts_open (home=0x803419058 "RUNDIR", set_api=1, connp=0x7d95b0) at wts.c:239 #6 0x000000000040dec9 in main (argc=1, argv=0x7fffffffe960) at t.c:201 (gdb) frame 1 #1 0x0000000000442b91 in __wt_log_open (session=0x80345a000) at src/log/log.c:1086 1086 WT_RET(__wt_open(session, conn->log_path, (gdb) p conn->log_path $1 = 0x8034190c8 ""
A solution might be to default log.path to "." instead of the empty string. That wouldn't work in the Windows layer, but it's not unreasonable for non-POSIX filesystem layers to map a trailing "." to something appropriate for the platform.
Any changes for this ticket should wait on WT-2330 being merged.