错误:找不到具有Mongo gridFS的文件的块

时间:2015-03-29 22:26:15

标签: mongodb meteor gridfs modulus modulus.io

错误导致我的应用程序服务器崩溃,我似乎无法弄清楚导致问题的原因。我的应用程序是使用Meteor构建的,并托管在modulus.io上。这是我的应用程序日志:

Error: no chunks found for file, possibly corrupt
    at /mnt/data/2/node_modules/mongodb/lib/mongodb/gridfs/gridstore.js:817:20
    at /mnt/data/2/node_modules/mongodb/lib/mongodb/gridfs/gridstore.js:594:7
    at /mnt/data/2/node_modules/mongodb/lib/mongodb/cursor.js:758:35
    at Cursor.close (/mnt/data/2/node_modules/mongodb/lib/mongodb/cursor.js:989:5)
    at Cursor.nextObject (/mnt/data/2/node_modules/mongodb/lib/mongodb/cursor.js:758:17)
    at commandHandler (/mnt/data/2/node_modules/mongodb/lib/mongodb/cursor.js:727:14)
    at /mnt/data/2/node_modules/mongodb/lib/mongodb/db.js:1916:9
    at Server.Base._callHandler (/mnt/data/2/node_modules/mongodb/lib/mongodb/connection/base.js:448:41)
    at /mnt/data/2/node_modules/mongodb/lib/mongodb/connection/server.js:481:18
    at [object Object].MongoReply.parseBody (/mnt/data/2/node_modules/mongodb/lib/mongodb/responses/mongo_reply.js:68:5)
[2015-03-29T22:05:57.573Z] Application CRASH detected. Exit code 8.

2 个答案:

答案 0 :(得分:0)

最有可能是mongo bug with gridfs(已修复)

  

从不同节点同时写入两个或多个不同的文件   使用GridStore.writeFile命令的进程会生成一些文件   没有正确写入(最终有许多损坏的文件   在gridstore中)。即使全部都使用损坏的文件结束   writeFile调用是成功的,没有错误的指示。   writeFile偶尔失败,错误“块乱序”,但是   这种情况很少发生(例如1个写入失败的writeFile为100   损坏的文件或更多)。

根据讨论中的评论,如果您要更新mongo(将删除gridfs文件,因为它们已损坏),问题将得到解决。

答案 1 :(得分:0)

Error: no chunks found for file, possibly corrupt
at /home/developer/rundir/node_modules/mongoose/node_modules/mongodb/lib/mongodb/gridfs/gridstore.js:808:20
at /home/developer/rundir/node_modules/mongoose/node_modules/mongodb/lib/mongodb/gridfs/gridstore.js:586:5
at /home/developer/rundir/node_modules/mongoose/node_modules/mongodb/lib/mongodb/collection/query.js:164:5
at /home/developer/rundir/node_modules/mongoose/node_modules/mongodb/lib/mongodb/cursor.js:778:35

我有类似的情况,但它最终在GFS读取流中寻找的文件实际上已被删除 - 所以在我的情况下,它没有被破坏,但已经消失了!以上是发生这种情况的日志。