Compound index on hashmap field results in inconsistent count

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Done
    • Priority: Major - P3
    • None
    • Affects Version/s: 2.2.1, 2.4.5
    • Component/s: Index Maintenance
    • None
    • Environment:
      Windows 7, CentOS, Mac OS
    • ALL
    • Hide

      The repro steps are as per the above description

      Show
      The repro steps are as per the above description
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None

      I have a document with a field "ia", it's a HashMap (with key value pair) in my java entity.

      The mongo document PlayerAttribute looks like this:

      {
          "_id" : ObjectId("51f8c4cbcd757bd40da8a0c6"),
          "gameId" : "XYZ",
          "ia" : {
              "CrashesCount" : "0",
              "HardCurrencyOwned" : "7898",
              "LastNotificationsId" : "12",
              "Level" : "11",
              "PvpRacesPlayed" : "0",
              "PvpRaiting_FreeStyle" : "1200",
              "PvpRaiting_Motocross" : "1200",
              "PvpRaiting_SpeedAndStyle" : "1200",
              "PvpRaiting_StepUp" : "1200",
              "PvpRank" : "0"
          },
          "lastSessionExpireTime" : ISODate("2013-07-31T12:31:33.966Z"),
          "lastSessionStartTime" : ISODate("2013-07-31T12:31:27.975Z"),
          "name" : "abc123",
          type : null
      }
      

      This is the index definition for the collection,

      [
          {
                  "v" : 1,
                  "key" : {
                          "_id" : 1
                  },
                  "ns" : "player.PlayerAttribute",
                  "name" : "_id_"
          },
          {
                  "v" : 1,
                  "key" : {
                          "effectiveDate" : 1
                  },
                  "ns" : "player.PlayerAttribute",
                  "name" : "effectiveDate",
                  "dropDups" : false,
                  "sparse" : false
          },
          {
                  "v" : 1,
                  "key" : {
                          "endDate" : 1
                  },
                  "ns" : "player.PlayerAttribute",
                  "name" : "endDate",
                  "dropDups" : false,
                  "sparse" : false
          },
          {
                  "v" : 1,
                  "key" : {
                          "gameId" : 1,
                          "name" : 1
                  },
                  "unique" : true,
                  "ns" : "player.PlayerAttribute",
                  "name" : "pa_gid_n_unique_idx"
          },
          {
                  "v" : 1,
                  "key" : {
                          "gameId" : 1,
                          "ia" : 1,
                          "name" : 1
                  },
                  "ns" : "player.PlayerAttribute",
                  "name" : "pa_gid_iattr_n_idx"
          },
          {
                  "v" : 1,
                  "key" : {
                          "gameId" : 1,
                          "lastSessionExpireTime" : 1
                  },
                  "ns" : "player.PlayerAttribute",
                  "name" : "pa_gid_lset_idx"
          }
      ]
      

      This is the query I used from mongo shell,

      db.PlayerAttribute.find({"gameId":"XYZ", "attributes.CrashesCount" : "0"}).count();
      

      First time it gives me the result greater than zero (but that is incorrect. For eg., if there are 7 docs match the query, it would say 6) and the next subsequent times it gives 0 and this happens for 5 to 10 minutes.

      After about 5 to 10 minutes, it gives the non zero number again (one time) and next few times it is zero.

      When I deleted this index ("name" : "pa_gid_iattr_n_idx"), it gives correct count all the time.

      Any idea why this index on hashmap field ("name" : "pa_gid_iattr_n_idx") makes mongo to produce incorrect and inconsistent result?

      Thanks in advance for the response.

            Assignee:
            David Hows (Inactive)
            Reporter:
            arun j
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: