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

WiredTiger accepts fewer characters in database names when using directoryperdb

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Duplicate
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Storage, WiredTiger
    • Labels:
    • Backwards Compatibility:
      Fully Compatible
    • Operating System:
      ALL
    • Steps To Reproduce:
      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

      Description

      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

        Attachments

          Issue Links

            Activity

              People

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

                Dates

                Created:
                Updated:
                Resolved: