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

dbKillCursors op asserts on mongos when at log level 3

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • 2.6.12, 3.0.7, 3.1.8
    • Affects Version/s: 2.4.11, 2.6.8, 3.0.1
    • Component/s: Sharding
    • Labels:
      None
    • Fully Compatible
    • ALL
    • Hide
      1. Start a 2.6.8 sharded cluster
      2. Raise the mongos log level to 3
      3. Execute the following Python script against mongos
        from pymongo import MongoClient
        
        
        client = MongoClient("localhost:27017" )
        db = client.test
        
        for x in range(0, 20):
            db.test.save({'x': x})
        
        cursor = db.test.find({'x': {'$gte': 1}}).batch_size(5)
        
        for item in cursor:
            break
        
        cursor.close()
        
      Show
      Start a 2.6.8 sharded cluster Raise the mongos log level to 3 Execute the following Python script against mongos from pymongo import MongoClient client = MongoClient( "localhost:27017" ) db = client.test for x in range(0, 20): db.test.save({ 'x' : x}) cursor = db.test.find({ 'x' : { '$gte' : 1}}).batch_size(5) for item in cursor: break cursor.close()
    • Quint Iteration 7, QuInt 8 08/28/15

      With mongos running at log level 3, a dbKillCursors request will assert due to a missing namespace.

      The log statement calling getNs() (which then asserts) is here:
      https://github.com/mongodb/mongo/blob/r2.6.8/src/mongo/s/request.cpp#L93

      The assertion is generated by a "verify" statement here:
      https://github.com/mongodb/mongo/blob/r2.6.8/src/mongo/db/dbmessage.cpp#L82

            Assignee:
            rassi J Rassi
            Reporter:
            james.wahlin@mongodb.com James Wahlin
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved: