Uploaded image for project: 'C# Driver'
  1. C# Driver
  2. CSHARP-326

Creating files with Upload() in Parallel threads causes md5 and chunk errors.

    XMLWordPrintableJSON

Details

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Blocker - P1 Blocker - P1
    • 1.3
    • 1.2
    • None
    • OS: Windows 7
      Framework: .NET 4.0 and Mono 2.10.x

    Description

      This unit tests fails with MongoDB.Driver.MongoCommandException : Command 'filemd5' failed: exception: chunks out of order (response:

      { "errmsg" : "exception: chunks out of order", "code" : 10040, "ok" : 0.0 }

      ).

      The server complains that:

      Fri Sep 16 11:50:28 [conn518] should have chunk: 1 have:0
      c->nextSafe():

      { _id: ObjectId('4e737044ef94a52e101deef8'), files_id: ObjectId(' 4e737044ef94a52e101deee4'), n: 0, data: BinData }

      c->nextSafe():

      { _id: ObjectId('4e737044ef94a52e101deef1'), files_id: ObjectId(' 4e737044ef94a52e101deee4'), n: 0, data: BinData }

      Fri Sep 16 11:50:29 [conn513] should have chunk: 1 have:0
      c->nextSafe():

      { _id: ObjectId('4e737044ef94a52e101deef4'), files_id: ObjectId(' 4e737044ef94a52e101deee1'), n: 0, data: BinData }

      c->nextSafe():

      { _id: ObjectId('4e737044ef94a52e101deeed'), files_id: ObjectId(' 4e737044ef94a52e101deee1'), n: 0, data: BinData }

      Fri Sep 16 11:50:29 [conn509] should have chunk: 1 have:0
      c->nextSafe():

      { _id: ObjectId('4e737044ef94a52e101def05'), files_id: ObjectId(' 4e737044ef94a52e101deefb'), n: 0, data: BinData }

      c->nextSafe():

      { _id: ObjectId('4e737044ef94a52e101def00'), files_id: ObjectId(' 4e737044ef94a52e101deefb'), n: 0, data: BinData }

      NOTE: I I changed MaxConnectionPoolSize in MongoDbServerSettings to 1, meaning only a single connection can be alive at once, this error does not occur.

      I'd also like to point out that using ThreadPool in the C# Connection Manager seems like a bad idea seeing as this ThreadPool is static and shared with everything else in the system allowing any code in the system to essentially "lock out" the WaitCallback's.

      Attachments

        1. GridTest.cs
          3 kB
        2. GridTest.cs
          3 kB
        3. Program.cs
          3 kB

        Activity

          People

            robert@mongodb.com Robert Stam
            afinnell Andrew Finnell
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: