diff options
author | Spencer Jackson <spencer.jackson@mongodb.com> | 2014-12-22 14:57:24 -0500 |
---|---|---|
committer | Spencer Jackson <spencer.jackson@mongodb.com> | 2014-12-29 13:28:26 -0500 |
commit | d9ac3cfb459c5304f155effa0dc3b14f87868e7b (patch) | |
tree | c53298cc5fa04fbef8f1b13e93a93a61a97391f9 /jstests/disk | |
parent | 6bc9cbce1147197d16bc049f3825091e465e389a (diff) | |
download | mongo-d9ac3cfb459c5304f155effa0dc3b14f87868e7b.tar.gz |
SERVER-16615: Fix mmapv1 repairDatabase for long db paths
Diffstat (limited to 'jstests/disk')
-rw-r--r-- | jstests/disk/repair2.js | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/jstests/disk/repair2.js b/jstests/disk/repair2.js index e4fefadf3d7..b97087bd9c6 100644 --- a/jstests/disk/repair2.js +++ b/jstests/disk/repair2.js @@ -4,7 +4,9 @@ var baseName = "jstests_disk_repair2"; port = allocatePorts( 1 )[ 0 ]; dbpath = MongoRunner.dataPath + baseName + "/"; -repairpath = dbpath + "repairDir/" +repairpath = dbpath + "repairDir/"; +longDBName = Array(61).join('a'); +longRepairPath = dbpath + Array(61).join('b') + '/'; resetDbpath( dbpath ); resetDbpath( repairpath ); @@ -16,7 +18,8 @@ assert.commandWorked( db.runCommand( {repairDatabase:1, backupOriginalFiles:true function check() { files = listFiles( dbpath ); for( f in files ) { - assert( ! new RegExp( "^" + dbpath + "backup_" ).test( files[ f ].name ), "backup dir in dbpath" ); + assert( ! new RegExp( "^" + dbpath + "backup_" ).test( files[ f ].name ), + "backup dir " + files[ f ].name + " in dbpath" ); } assert.eq.automsg( "1", "db[ baseName ].count()" ); @@ -31,6 +34,30 @@ assert.commandWorked( db.runCommand( {repairDatabase:1} ) ); check(); stopMongod( port ); +//Test long database names +resetDbpath( repairpath ); +m = startMongoProgram( "mongod", "--directoryperdb", "--port", port, "--dbpath", dbpath, "--nohttpinterface", "--bind_ip", "127.0.0.1" ); +db = m.getDB( longDBName ); +assert.writeOK(db[ baseName ].save( {} )); +assert.commandWorked( db.runCommand( {repairDatabase:1} ) ); +stopMongod( port ); + +//Test long repairPath +resetDbpath( longRepairPath ) +m = startMongoProgram( "mongod", "--directoryperdb", "--port", port, "--dbpath", dbpath, "--repairpath", longRepairPath, "--nohttpinterface", "--bind_ip", "127.0.0.1" ); +db = m.getDB( longDBName ); +assert.commandWorked( db.runCommand( {repairDatabase:1, backupOriginalFiles: true} ) ); +check(); +stopMongod( port ); + +//Test database name and repairPath with --repair +resetDbpath( longRepairPath ) +m = startMongoProgram( "mongod", "--repair", "--directoryperdb", "--port", port, "--dbpath", dbpath, "--repairpath", longRepairPath, "--nohttpinterface", "--bind_ip", "127.0.0.1" ); +m = startMongoProgram( "mongod", "--directoryperdb", "--port", port, "--dbpath", dbpath, "--nohttpinterface", "--bind_ip", "127.0.0.1" ); +db = m.getDB( longDBName ); +check(); +stopMongod( port ); + resetDbpath( repairpath ); runMongoProgram( "mongod", "--repair", "--directoryperdb", "--port", port, "--dbpath", dbpath, "--repairpath", repairpath, "--nohttpinterface", "--bind_ip", "127.0.0.1" ); m = startMongoProgram( "mongod", "--directoryperdb", "--port", port, "--dbpath", dbpath, "--repairpath", repairpath, "--nohttpinterface", "--bind_ip", "127.0.0.1" ); |