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

log path name is an empty string.

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: WT2.9.0, 3.3.9
    • Component/s: None
    • Labels:
      None

      Description

      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.

        Attachments

          Activity

            People

            Assignee:
            sue.loverso Susan LoVerso
            Reporter:
            keith.bostic Keith Bostic
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: