Looking through the update code, as of 3.1.8 (
SERVER-19551), WT will fail any update that grows a document in the oplog, but this check does not extend to capped collections as a whole.
To me, Asya's suggestion around blocking all updates to capped collections seems the best direction to pursue as she is spot on about potential replication issues for any update to a capped collection and it would seem unwise to insist that each storage engine should perform this check at insert time.
Does anyone know of cases where we currently need to update a capped collection internally? I couldn't think of any, can anyone else? Does MMS rely on doing updates (including non-growth updates) internally?
The only suggested reason in
SERVER-19551 for why we would allow non-growth updates to capped collections is to allow recovery in tricky situations where updating the oplog to turn an existing operation into a noop is required.