updateOne without a shard-key might return an internal transaction error on stale routers

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Cluster Scalability
    • ALL
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      It has been discovered a case where a stale router running an updateOne without a shard-key can return internal transient errors (related to the internal transaction used) instead of automatically retrying

      [js_test:repro]   "errmsg" : "Write results unavailable from failing to target a host in the shard repro-rs0 :: caused by :: Command error committing internal transaction :: caused by :: The collection was dropped", 

      I left attached a repro, but the overall flow can be summarized as:

      • 1) On mongos0 create and shard collection
      • 2) On mongos1 drop collection.
      • 3) On mongos1 recreate the collection as unsharded and insert one document.
      • 4) On mongos0 (stale, still thinks collection is sharded) run updateOne without shard key.

      The updateOne returns the error above

            Assignee:
            Unassigned
            Reporter:
            Enrico Golfieri
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: