Operational Defect Database

BugZero found this defect 2350 days ago.

MongoDB | 428614

[SERVER-31117] Invariant failure ccPin == ErrorCodes::QueryPlanKilled

Last update date:


Affected products:

MongoDB Server

Affected releases:

No affected releases provided.

Fixed releases:




Running PyMongo's test suite, on the branch where I'm implementing sessions, I crashed a standalone mongod running with auth. 2017-09-17T10:44:54.724-0400 F - [conn384] Invariant failure ccPin == ErrorCodes::QueryPlanKilled src/mongo/db/query/find.cpp 330   mongod(_ZN5mongo15invariantFailedEPKcS1_j+0x2E6) [0x10f4c1666] mongod(_ZN5mongo7getMoreEPNS_16OperationContextEPKcixPbS4_+0x18E2) [0x10e49fd52] mongod(_ZN5mongo23ServiceEntryPointMongod13handleRequestEPNS_16OperationContextERKNS_7MessageE+0x1528) [0x10e179378] mongod(_ZN5mongo19ServiceStateMachine15_processMessageERNS0_11ThreadGuardE+0x18A) [0x10e186a8a] mongod(_ZN5mongo19ServiceStateMachine15_runNextInGuardERNS0_11ThreadGuardE+0x175) [0x10e185f45] mongod(_ZN5mongo19ServiceStateMachine7runNextEv+0x38) [0x10e1868b8] mongod(_ZNSt3__110__function6__funcIZN5mongo21ServiceEntryPointImpl12startSessionENS_10shared_ptrINS2_9transport7SessionEEEE3$_1NS_9allocatorIS8 Log attached. I think that PyMongo was executing some part of this test: def test_aggregate_raw(self): c = self.db.test c.drop() docs = [{'_id': i, 'x': 3.0 * i} for i in range(10)] c.insert_many(docs) batches = list(c.aggregate_raw_batches([{'$sort': {'_id': 1}}])) self.assertEqual(1, len(batches)) self.assertEqual(docs, decode_all(batches[0])) PyMongo's aggregate_raw_batches method sets the initial batch size to 0 with the "aggregate" command, then issues a "getMore".

Top User Comments

xgen-internal-githook commented on Wed, 20 Sep 2017 16:27:57 +0000: Author: {'email': 'jcarey@argv.me', 'name': 'Jason Carey', 'username': 'hanumantmk'} Message: SERVER-31117 pin can return unauthorized Being too specific about pinCursor error code returns causes an unauthorized legacy getMore to invariant. Branch: master https://github.com/mongodb/mongo/commit/dc84bdb8db1446d21fde5e59cf7b0df1149871ac jesse commented on Tue, 19 Sep 2017 15:06:34 +0000: Based on jason.carey's diagnosis in SERVER-31120, my PyMongo code was probably sending a different lsid with getMore than with aggregate. jesse commented on Sun, 17 Sep 2017 16:15:01 +0000: Reproduced here too with a patch build of PyMongo: https://evergreen.mongodb.com/task/mongo_python_driver_tests_windows_vs2015_python_version__auth_ssl~auth_ssl_windows_vs2015_python_version~3.6_test_latest_standalone_patch_200b699ba553979afa543e33eefc44276a532477_59be8ccf2fbabe322000001f_17_09_17_14_55_12

Additional Resources / Links


BugZero Risk Score

Coming soon



Have you been affected by this bug?


Do you know how much operational outages are costing you?

Understand the cost to your business and how BugZero can help you reduce those costs.


Login to read and write comments.

Have you ever...

had your data corrupted from a