запрос mongo вызывает BSONElement: неверный тип 65

Мы сталкиваемся с ситуацией, когда документы, существующие в нашей MongoDB, нельзя запросить, не приведя к следующему:

db.collection.find({"_id":ObjectId("50d393be70a580280b117ea5")})
Wed Jan  2 12:30:44 Assertion: 10320:BSONElement: bad type 65
0x6073f1 0x5d1aa9 0x4b0d98 0x5c17a6 0x6b3f35 0x6b6a2c 0x69be0a 0x6aa13f 0x668e46 0x668ec2 0x66a2ce 0x5cbcc4 0x4a4a14 0x4a67e6 0x7f2223434c4d 0x49f669 
 mongo(_ZN5mongo15printStackTraceERSo+0x21) [0x6073f1]
 mongo(_ZN5mongo11msgassertedEiPKc+0x99) [0x5d1aa9]
 mongo(_ZNK5mongo11BSONElement4sizeEv+0x1d8) [0x4b0d98]
 mongo(_ZN5mongo16resolveBSONFieldEP9JSContextP8JSObjectljPS3_+0x146) [0x5c17a6]
 mongo(js_LookupPropertyWithFlags+0x3f5) [0x6b3f35]
 mongo(js_GetProperty+0x7c) [0x6b6a2c]
 mongo(js_Interpret+0x10ea) [0x69be0a]
 mongo(js_Execute+0x36f) [0x6aa13f]
 mongo(JS_EvaluateUCScriptForPrincipals+0x66) [0x668e46]
 mongo(JS_EvaluateUCScript+0x22) [0x668ec2]
 mongo(JS_EvaluateScript+0x6e) [0x66a2ce]
 mongo(_ZN5mongo7SMScope4execERKNS_10StringDataERKSsbbbi+0x144) [0x5cbcc4]
 mongo(_Z5_mainiPPc+0x26c4) [0x4a4a14]
 mongo(main+0x26) [0x4a67e6]
 /lib/libc.so.6(__libc_start_main+0xfd) [0x7f2223434c4d]
 mongo(__gxx_personality_v0+0x2a1) [0x49f669]

Я могу запустить mongodump этой конкретной записи, а затем, когда я конвертирую bson в json, я получаю:

$ bsondump server1_collection.bson > server1_collection.json
terminate called after throwing an instance of 'std::length_error'
  what():  basic_string::_S_create
Aborted

Похоже, что может возникнуть проблема с символами UTF-8 и/или строками в кодировке base64, вызывающая сохранение недопустимого BSON: - https://jira.mongodb.org/browse/SERVER-7769

Звучит как движение вперед. Я могу запустить mongod с параметром --objcheck, чтобы убедиться, что недопустимые данные не могут быть вставлены (не уверены в штрафах за производительность).

Не уверен, как я могу легко очистить свои старые данные и удалить эти недействительные записи.


person Dougnukem    schedule 02.01.2013    source источник
comment
можете уточнить, в чем именно заключается ваш вопрос?   -  person Asya Kamsky    schedule 04.01.2013
comment
Я столкнулся с той же проблемой. Вы нашли решение?   -  person Moonwalker    schedule 08.06.2013


Ответы (1)