Failing assertion when accessing indexes (corruption?)

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Cannot Reproduce
    • Priority: Major - P3
    • None
    • Affects Version/s: 2.5.3
    • Component/s: Index Maintenance, Storage
    • None
    • ALL
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      I've broken a collection often enough and seen this failing assertion come up enough times in different contexts where I have to file this ticket despite not being able to reliably reproduce getting a collection into this bad state. At first I thought it had to do with bringing a `mongod` up and down (cleanly) while running an application against it. Now I've run into this while running (and re-running) tests. I have the bad data files saved on the side. Going to see if re-running the same tests over and over can reproduce the problem (with -vv).

      Any ideas on things to look out for are welcome.

      2013-10-23T11:36:42.921-0400 [conn1] Assertion: 10334:BSONObj size: -286331154 (0xEEEEEEEE) is invalid. Size must be between 0 and 16793600(16MB) First element: _id: ObjectId('5267eceae4b0820066d7c32c')
      2013-10-23T11:36:42.927-0400 [conn1] mmsdbconfig.config.confirmedContacts 0x10e1411 0x108cf69 0x10731b6 0x10736ac 0x74b1b5 0xa52633 0xa5a984 0xd2000e 0xd21870 0xd22387 0xd2bacf 0xc23826 0xb6fdee 0xb72fd2 0x74edcd 0x10a029b 0x7fc5cde4ce9a 0x7fc5cd15fccd 
       /home/dgottlieb/Downloads/mongodb-linux-x86_64-2.5.3/bin/mongod(_ZN5mongo15printStackTraceERSo+0x21) [0x10e1411]
       /home/dgottlieb/Downloads/mongodb-linux-x86_64-2.5.3/bin/mongod(_ZN5mongo10logContextEPKc+0x159) [0x108cf69]
       /home/dgottlieb/Downloads/mongodb-linux-x86_64-2.5.3/bin/mongod(_ZN5mongo11msgassertedEiPKc+0xe6) [0x10731b6]
       /home/dgottlieb/Downloads/mongodb-linux-x86_64-2.5.3/bin/mongod() [0x10736ac]
       /home/dgottlieb/Downloads/mongodb-linux-x86_64-2.5.3/bin/mongod(_ZNK5mongo7BSONObj14_assertInvalidEv+0x405) [0x74b1b5]
       /home/dgottlieb/Downloads/mongodb-linux-x86_64-2.5.3/bin/mongod(_ZN5mongo10FetchStage4workEPl+0x343) [0xa52633]
       /home/dgottlieb/Downloads/mongodb-linux-x86_64-2.5.3/bin/mongod(_ZN5mongo10LimitStage4workEPl+0x34) [0xa5a984]
       /home/dgottlieb/Downloads/mongodb-linux-x86_64-2.5.3/bin/mongod(_ZN5mongo15MultiPlanRunner12workAllPlansEv+0x9e) [0xd2000e]
       /home/dgottlieb/Downloads/mongodb-linux-x86_64-2.5.3/bin/mongod(_ZN5mongo15MultiPlanRunner12pickBestPlanEPm+0x30) [0xd21870]
       /home/dgottlieb/Downloads/mongodb-linux-x86_64-2.5.3/bin/mongod(_ZN5mongo15MultiPlanRunner7getNextEPNS_7BSONObjEPNS_7DiskLocE+0x1b7) [0xd22387]
       /home/dgottlieb/Downloads/mongodb-linux-x86_64-2.5.3/bin/mongod(_ZN5mongo11newRunQueryEPNS_14CanonicalQueryERNS_5CurOpERNS_7MessageE+0x37f) [0xd2bacf]
       /home/dgottlieb/Downloads/mongodb-linux-x86_64-2.5.3/bin/mongod(_ZN5mongo8runQueryERNS_7MessageERNS_12QueryMessageERNS_5CurOpES1_+0x19f6) [0xc23826]
       /home/dgottlieb/Downloads/mongodb-linux-x86_64-2.5.3/bin/mongod() [0xb6fdee]
       /home/dgottlieb/Downloads/mongodb-linux-x86_64-2.5.3/bin/mongod(_ZN5mongo16assembleResponseERNS_7MessageERNS_10DbResponseERKNS_11HostAndPortE+0x3d2) [0xb72fd2]
       /home/dgottlieb/Downloads/mongodb-linux-x86_64-2.5.3/bin/mongod(_ZN5mongo16MyMessageHandler7processERNS_7MessageEPNS_21AbstractMessagingPortEPNS_9LastErrorE+0x9d) [0x74edcd]
       /home/dgottlieb/Downloads/mongodb-linux-x86_64-2.5.3/bin/mongod(_ZN5mongo17PortMessageServer17handleIncomingMsgEPv+0x4fb) [0x10a029b]
       /lib/x86_64-linux-gnu/libpthread.so.0(+0x7e9a) [0x7fc5cde4ce9a]
       /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7fc5cd15fccd]
      

      I believe I've always observed a warning log of the following form on the collection in question before seeing a collection/index get into this bad state:

      2013-10-23T11:36:10.525-0400 [conn65] unindex failed (key too big?) mmsdbconfig.config.confirmedContacts.$addrTypeConfirmedIdx key: { : "nobody@mongodb.com", : 1, : true } _id: ObjectId('5267eceae4b0820066d7c32c')
      

      And some more information on the colletion (after being in a bad state)

      mmsdbconfig> db.config.confirmedContacts.find()
      mmsdbconfig> db.config.confirmedContacts.find({ address: "nobody@mongodb.com", typeId: 1 })
      error: {
      	"$err" : "BSONObj size: -286331154 (0xEEEEEEEE) is invalid. Size must be between 0 and 16793600(16MB) First element: _id: ObjectId('5267eceae4b0820066d7c32c')",
      	"code" : 10334
      }
      mmsdbconfig> db.config.confirmedContacts.getIndexes()
      [
      	{
      		"v" : 1,
      		"key" : {
      			"_id" : 1
      		},
      		"ns" : "mmsdbconfig.config.confirmedContacts",
      		"name" : "_id_"
      	},
      	{
      		"v" : 1,
      		"key" : {
      			"address" : 1,
      			"typeId" : 1
      		},
      		"unique" : true,
      		"ns" : "mmsdbconfig.config.confirmedContacts",
      		"name" : "addrTypeIdx"
      	},
      	{
      		"v" : 1,
      		"key" : {
      			"address" : 1,
      			"typeId" : 1,
      			"confirmed" : 1
      		},
      		"unique" : true,
      		"ns" : "mmsdbconfig.config.confirmedContacts",
      		"name" : "addrTypeConfirmedIdx"
      	}
      ]
      mmsdbconfig> db.config.confirmedContacts.stats()
      {
      	"ns" : "mmsdbconfig.config.confirmedContacts",
      	"count" : 0,
      	"size" : 0,
      	"storageSize" : 8192,
      	"numExtents" : 1,
      	"nindexes" : 3,
      	"lastExtentSize" : 8192,
      	"paddingFactor" : 1,
      	"systemFlags" : 1,
      	"userFlags" : 0,
      	"totalIndexSize" : 24528,
      	"indexSizes" : {
      		"_id_" : 8176,
      		"addrTypeIdx" : 8176,
      		"addrTypeConfirmedIdx" : 8176
      	},
      	"ok" : 1
      }
      

        1. corrupted_db.tgz
          1.39 MB
          Daniel Gottlieb

            Assignee:
            Bruce Lucas (Inactive)
            Reporter:
            Daniel Gottlieb (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: