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

WiredTiger allows capped collection objects to grow

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • 3.2.0-rc0
    • Affects Version/s: 3.0.2
    • Component/s: Storage, WiredTiger
    • Labels:
      None
    • Minor Change
    • ALL
    • QuInt A (10/12/15)

      In MMAP items in a capped collection cannot grow - as per the documentation and an error is raised if they do.

      > db.createCollection("cap",{capped:true,size:128000})
      { "ok" : 1 }
      >  db.cap.update({_id:1},{$set:{test:"hello",vals:["one"]}},true,true)
      WriteResult({ "nMatched" : 0, "nUpserted" : 1, "nModified" : 0, "_id" : 1 })
      >  db.cap.update({_id:1},{$set:{test:"hello"},$push:{vals:"two"}},true,true)
      WriteResult({
      	"nMatched" : 0,
      	"nUpserted" : 0,
      	"nModified" : 0,
      	"writeError" : {
      		"code" : 10003,
      		"errmsg" : "failing update: objects in a capped ns cannot grow"
      	}
      })
      

      In WiredTiger they are allowed to grow - is this deliberate?

      > db.createCollection("cap",{capped:true,size:128000})
      { "ok" : 1 }
      > db.cap.update({_id:1},{$set:{test:"hello",vals:["one"]}},true,true)
      WriteResult({ "nMatched" : 0, "nUpserted" : 1, "nModified" : 0, "_id" : 1 })
      > db.cap.findOne()
      { "_id" : 1, "test" : "hello", "vals" : [ "one" ] }
      > db.cap.update({_id:1},{$set:{test:"hello"},$push:{vals:"two"}},true,true)
      WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
      > db.cap.findOne()
      { "_id" : 1, "test" : "hello", "vals" : [ "one", "two" ] }
      

            Assignee:
            geert.bosch@mongodb.com Geert Bosch
            Reporter:
            john.page@mongodb.com John Page
            Votes:
            0 Vote for this issue
            Watchers:
            17 Start watching this issue

              Created:
              Updated:
              Resolved: