我開始看到這在我的MongoDB生產數據庫日誌MongoDB的斷言錯誤
ns:my_app_production.artists query:{ $query: {}, $orderby: { semester: 1, name: 1 } }
Wed Jul 25 19:20:59 [conn199] Assertion: 10334:Invalid BSONObj spec size: -286331154 (EEEEEEEE) first element:_id: "agelio-batle"
Wed Jul 25 19:20:59 [conn199] assertion 10334 Invalid BSONObj spec size: -286331154 (EEEEEEEE) first element:_id: "agelio-batle"
開始我嘗試運行修復
mongo --repair
...
Wed Jul 25 22:20:39 [initandlisten] Assertion: 10334:Invalid BSONObj spec size: -286331154 (EEEEEEEE) first element:_id: "agelio-batle"
0x467eaa 0x4183ca 0x62dd82 0x643478 0x532b22 0x64d196 0x6578b7 0x65ac31 0x65cd75 0x65d6d9 0x51a419 0x6195f5 0x61b0c5 0x61bd3d 0x4914c8 0x47ad9a 0x5e2e7c 0x5e60b9 0x5e78ad 0x6346a2
[0x467eaa]
# several more what i assume memory addresses omitted
[0x6346a2]
Wed Jul 25 22:20:39 [initandlisten] assertion 10334 Invalid BSONObj spec size: -286331154 (EEEEEEEE) first element:_id: "agelio-batle" ns:my_app_production.artists query:{}
Wed Jul 25 22:20:39 [initandlisten] exception in initAndListen std::exception: nextSafe(): { $err: "Invalid BSONObj spec size: -286331154 (EEEEEEEE) first element:_id: "a...", code: 10334 }, terminating
Wed Jul 25 22:20:39 dbexit:
...
我也嘗試從相同的結果蒙戈shell中運行db.repairDatabase();
。
我從來沒有見過這個。通常用mongodb修復可以修復大多數問題,所以我不知道如何繼續或解決這個問題。有任何想法嗎?
每當文檔被刪除時,大小將被設置爲0xEEEEEEEE。查詢使用的索引可能無法正確更新,並且指向此已刪除的記錄。修復應該已經解決了這個問題,但是你可以嘗試重建索引嗎?如果這仍然沒有幫助,你會介意創建服務器票證(https://jira.mongodb.org/secure/CreateIssue!default.jspa)嗎?如果您可以提供相關的數據文件,它也將非常有幫助。 – Ren 2012-07-26 15:19:19
所以在轉儲/恢復和幾次修復嘗試後,我仍然有同樣的問題。我對提交票據感到相當恐懼,所以我把它留下來,但我上傳了涉及該問題所需的所有文件(我希望)https://jira.mongodb.org/browse/SERVER-6617 – brewster 2012-07-27 04:54:15