2

我有一个长时间运行的操作,每次使用下面的代码插入一组条目时都会插入数千组条目。这段代码运行一段时间后,collection.Update() 方法冻结(不返回),整个过程停止。

在任何地方都找不到任何合理的解释。

我查看了 mongod 日志,没有什么异常,它只是停止接收来自该进程的请求。

Mongo版本:2.4.1,C#驱动版本:1.8.0

using (_mongoServer.RequestStart(_database))    
{
    var collection = GetCollection<BsonDocument>(collectionName);

    // Iterate over all records
    foreach (var recordToInsert in recordsDescriptorsToInsert)
    {
        var query = new QueryDocument();
        var update = new UpdateBuilder();

        foreach (var property in recordToInsert)
        {
            var field = property.Item1;
            var value = BsonValue.Create(property.Item2);

            if (keys.Contains(field))
                query.Add(field, value);

            update.Set(field, value);
        }

        collection.Update(query, update, UpdateFlags.Upsert); // ** NEVER RETURNS **
    }
}
4

1 回答 1

1

这可能与此有关:CSHARP-717

已为驱动程序 1.8.1 修复

于 2013-04-08T16:08:12.403 回答