[SERVER-30930] Collections are not registered in UUIDCatalog when repairDatabase command fails with MMAPv1 storage engine Created: 01/Sep/17  Updated: 06/Dec/22  Resolved: 14/Sep/18

Status: Closed
Project: Core Server
Component/s: MMAPv1, Storage
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Major - P3
Reporter: Max Hirschhorn Assignee: Backlog - Storage Execution Team
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
Duplicate
is duplicated by SERVER-35088 MMAP repairDatabase should re-registe... Closed
Assigned Teams:
Storage Execution
Operating System: ALL
Steps To Reproduce:

python buildscripts/resmoke.py repro_server30930.js --storageEngine=mmapv1

repro_server30930.js

(function() {
    "use strict";
 
    assert.commandWorked(db.runCommand({dropDatabase: 1}));
    assert.writeOK(db.NaN.insert({_id: 3, a: []}));
 
    assert.commandWorked(db.adminCommand({setParameter: 1, failIndexKeyTooLong: false}));
    assert.writeOK(db.jstests_json_schema.insert({_id: "x".repeat(1012)}));
    assert.commandWorked(db.adminCommand({setParameter: 1, failIndexKeyTooLong: true}));
 
    // The "repairDatabase" command is expected to fail because the document in the
    // 'jstests_json_schema' collection generates an index key for the _id field that's 1024 bytes.
    assert.commandFailed(db.runCommand({repairDatabase: 1}));
 
    assert.commandWorked(db.runCommand({collMod: "NaN", usePowerOf2Sizes: true}));
})();

Participants:
Linked BF Score: 23

 Description   

This issue does not affect the WiredTiger or InMemory storage engines.

[MongoDFixture:job0] 2017-09-01T18:40:04.993-0400 I INDEX    [conn5] Btree::insert: key too large to index, failing test.jstests_json_schema.$_id_ 1025 { : "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx..." }
[MongoDFixture:job0] 2017-09-01T18:40:04.993-0400 D STORAGE  [conn5]    ***** NOT ROLLING BACK 0 disk writes
[MongoDFixture:job0] 2017-09-01T18:40:04.993-0400 D STORAGE  [conn5]    ***** ROLLING BACK 0 custom changes
[MongoDFixture:job0] 2017-09-01T18:40:04.993-0400 D STORAGE  [conn5] test.jstests_json_schema: clearing plan cache - collection info cache reset
[MongoDFixture:job0] 2017-09-01T18:40:04.996-0400 I JOURNAL  [conn5] journalCleanup...
[MongoDFixture:job0] 2017-09-01T18:40:04.996-0400 I JOURNAL  [conn5] removeJournalFiles
[MongoDFixture:job0] 2017-09-01T18:40:04.996-0400 I JOURNAL  [conn5] old journal file will be removed: /data/db/job0/resmoke/journal/j._1
[MongoDFixture:job0] 2017-09-01T18:40:04.996-0400 D STORAGE  [conn5] flushing directory /data/db/job0/resmoke/journal
[MongoDFixture:job0] 2017-09-01T18:40:04.997-0400 D JOURNAL  [conn5] removeJournalFiles end
[MongoDFixture:job0] 2017-09-01T18:40:04.997-0400 D STORAGE  [conn5] unregistering collection test.jstests_json_schema with UUID d5ce4ae9-f2a4-4a77-84f7-ccb3289971fa
[MongoDFixture:job0] 2017-09-01T18:40:04.997-0400 D STORAGE  [conn5] unregistering collection test.NaN with UUID 25d7ed66-c5fd-4cdf-8714-98c3d23d96ab
[MongoDFixture:job0] 2017-09-01T18:40:04.998-0400 D STORAGE  [conn5] NamespaceUUIDCache: evicted namespace test.jstests_json_schema
[MongoDFixture:job0] 2017-09-01T18:40:04.998-0400 D STORAGE  [conn5] destructed collection test.jstests_json_schema with UUID d5ce4ae9-f2a4-4a77-84f7-ccb3289971fa
[MongoDFixture:job0] 2017-09-01T18:40:04.998-0400 D STORAGE  [conn5] NamespaceUUIDCache: evicted namespace test.NaN
[MongoDFixture:job0] 2017-09-01T18:40:04.998-0400 D STORAGE  [conn5] destructed collection test.NaN with UUID 25d7ed66-c5fd-4cdf-8714-98c3d23d96ab
[MongoDFixture:job0] 2017-09-01T18:40:04.998-0400 I STORAGE  [conn5] cleaning up failed repair db: test path: /data/db/job0/resmoke/_tmp_repairDatabase_0
[MongoDFixture:job0] 2017-09-01T18:40:04.999-0400 I JOURNAL  [conn5] journalCleanup...
[MongoDFixture:job0] 2017-09-01T18:40:04.999-0400 I JOURNAL  [conn5] removeJournalFiles
[MongoDFixture:job0] 2017-09-01T18:40:04.999-0400 D STORAGE  [conn5] flushing directory /data/db/job0/resmoke/journal
[MongoDFixture:job0] 2017-09-01T18:40:04.999-0400 D JOURNAL  [conn5] removeJournalFiles end
[MongoDFixture:job0] 2017-09-01T18:40:05.003-0400 I COMMAND  [conn5] command test.jstests_json_schema appName: "MongoDB Shell" command: repairDatabase { repairDatabase: 1.0, $db: "test" } numYields:0 reslen:314 locks:{ Global: { acquireCount: { r: 1, W: 1 } }, MMAPV1Journal: { acquireCount: { w: 20 }, acquireWaitCount: { w: 1 }, timeAcquiringMicros: { w: 7375 } }, Metadata: { acquireCount: { W: 7 } }, Mutex: { acquireCount: { r: 6, W: 6 } } } protocol:op_msg 108ms
[MongoDFixture:job0] 2017-09-01T18:40:05.003-0400 D STORAGE  [conn5] NamespaceUUIDCache: registered namespace test.NaN with UUID 25d7ed66-c5fd-4cdf-8714-98c3d23d96ab
[MongoDFixture:job0] 2017-09-01T18:40:05.004-0400 F -        [conn5] Invariant failure catalogColl && catalogColl->uuid() == uuid src/mongo/db/op_observer_impl.cpp 334
[MongoDFixture:job0] 2017-09-01T18:40:05.004-0400 F -        [conn5]
[MongoDFixture:job0]
[MongoDFixture:job0] ***aborting after invariant() failure



 Comments   
Comment by Ian Whalen (Inactive) [ 05/Sep/17 ]

Putting in 3.5 Required for now, but might bump to lower priority based on investigation.

Generated at Thu Feb 08 04:25:28 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.