Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-16765

WiredTiger accepts fewer characters in database names when using directoryperdb

    • Type: Icon: Bug Bug
    • Resolution: Duplicate
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Storage, WiredTiger
    • Fully Compatible
    • ALL
    • Hide

      Start a database with directoryperdb and wiredTiger.

      > use ,
      switched to db ,
      > db.col.insert({})
      WriteResult({
              "nInserted" : 0,
              "writeError" : {
                      "code" : 2,
                      "errmsg" : "22: Invalid argument"
              }
      })
      
      2015-01-07T15:11:09.603-0500 E STORAGE  [conn1] WiredTiger (22) [1420661469:603375][9030:0x7f1117d29700], session.create: ,/collection-0--875367581904899163: WiredTiger objects should not include grouping characters in their names: Invalid argument
      2015-01-07T15:11:09.603-0500 I -        [conn1] Assertion: 2:22: Invalid argument
      

      Alternatively,

      > use :
      switched to db :
      > db.col.insert({})
      WriteResult({
              "nInserted" : 0,
              "writeError" : {
                      "code" : 8,
                      "errmsg" : "2: No such file or directory"
              }
      })
      
      2015-01-07T15:13:20.314-0500 E STORAGE  [conn1] WiredTiger (2) [1420661600:314591][9030:0x7f1117d29700], session.create: Can't create 'colgroup::/collection-1--875367581904899163' for non-existent table '': No such file or directory
      2015-01-07T15:13:20.314-0500 I -        [conn1] Assertion: 8:2: No such file or directory
      
      Show
      Start a database with directoryperdb and wiredTiger. > use , switched to db , > db.col.insert({}) WriteResult({ "nInserted" : 0, "writeError" : { "code" : 2, "errmsg" : "22: Invalid argument" } }) 2015-01-07T15:11:09.603-0500 E STORAGE [conn1] WiredTiger (22) [1420661469:603375][9030:0x7f1117d29700], session.create: ,/collection-0--875367581904899163: WiredTiger objects should not include grouping characters in their names: Invalid argument 2015-01-07T15:11:09.603-0500 I - [conn1] Assertion: 2:22: Invalid argument Alternatively, > use : switched to db : > db.col.insert({}) WriteResult({ "nInserted" : 0, "writeError" : { "code" : 8, "errmsg" : "2: No such file or directory" } }) 2015-01-07T15:13:20.314-0500 E STORAGE [conn1] WiredTiger (2) [1420661600:314591][9030:0x7f1117d29700], session.create: Can't create 'colgroup::/collection-1--875367581904899163' for non-existent table '': No such file or directory 2015-01-07T15:13:20.314-0500 I - [conn1] Assertion: 8:2: No such file or directory

      When a mongod is starting using wiredTiger and --directoryperdb, characters in the database name are exposed to WiredTiger and interperated as a part of the Data Source URI described at http://source.wiredtiger.com/1.6.5/data_sources.html. This means that, for example, the colon character : is seen as a separator between a table name and a column group name. Additionally WiredTiger will filter out the following characters from the name: {},:[]\\\"'
      This will occur in the function __wt_str_name_check

            Assignee:
            david.hows David Hows
            Reporter:
            spencer.jackson@mongodb.com Spencer Jackson
            Votes:
            0 Vote for this issue
            Watchers:
            11 Start watching this issue

              Created:
              Updated:
              Resolved: