Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-5628

Insertions in one collection eventually lead to corruption of unrelated collections

    • Type: Icon: Bug Bug
    • Resolution: Cannot Reproduce
    • Priority: Icon: Critical - P2 Critical - P2
    • None
    • Affects Version/s: 2.0.4
    • Component/s: Internal Code
    • Labels:
      None
    • Environment:
      Centos 6.2 x86_64, 3G RAM
    • ALL

      In an configuration with multiple databases, if records are inserted into collections of one database, records from unrelated collections may be "inserted"* into yet other unrelated collections. There may also be rearrangements in collections in the original database, but I can not determine this as readily as all records in the same database have an id of the same name so I have been using {id_name: {$exists:false}} to find the errors.

      The logs frequently show errors indicating a bad BSON object type and extremely long strings. Further, validate does not always find the errors and returns 'ok' when errors are still present.

      Other than inserting a couple hundred thousand records into a couple collections at the same time with the Java driver, I have not found a specific way to reproduce this error, but I can provide a valgrind log

      *The bad records do not seem to be inserted with any client insert calls and the journal file does not repair the collections

        1. bson_repair.txt
          3 kB
          Steven Cooke
        2. merr.txt
          31 kB
          Steven Cooke
        3. pom.xml
          2 kB
          Steven Cooke
        4. QuickTour_J_2DB_6T1.groovy
          3 kB
          Steven Cooke
        5. valgrind.txt
          30 kB
          Steven Cooke

            Assignee:
            aaron Aaron Staple
            Reporter:
            steven.m.cooke@gmail.com Steven Cooke
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved: