[SERVER-7096] Failure to journal setting 0xEEEEEEEE in NamespaceDetails::addDeletedRec Created: 21/Sep/12 Updated: 15/Feb/13 Resolved: 23/Sep/12 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Internal Code, Storage |
| Affects Version/s: | 2.0.7, 2.2.0 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Tad Marshall | Assignee: | Tad Marshall |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Operating System: | ALL |
| Participants: |
| Description |
|
In NamespaceDetails::addDeletedRec() at line 222 in mongo/db/namespace_details.cpp in today's master branch, the write of "0xeeeeeeee" is not added to the journal list with getDur()->writingPtr(). This is defensive code where we do not expect this value to ever be seen because deleted records are not supposed to be read as data, but we have seen cases where the log shows "Assertion: 10334:Invalid BSONObj size: -286331154 (0xEEEEEEEE)" so we know that this can happen. It is not clear that this bug is the cause of this error, but the code is wrong; all writes to memory mapped files should be journaled. |
| Comments |
| Comment by Tad Marshall [ 23/Sep/12 ] |
|
Not a bug. I misread the 'sizeof(Record)' as referencing the record header only, but Record includes the first 4 bytes of the data, so this write of 0xeeeeeeee is journaled. Sorry for the false alarm. |