The query passed to "$cmd.sys.inprog" doesn't like the $query wrapped query.
This is a regression in 2.5.x.
old description
Via the Java driver MongoClient, there's a method exposed `isLocked()` that checks if the given node is fsync locked (i.e., it's a 'read' operation - is does not attempt an fsync lock).
This operation was successful via a 2.4.9 mongoS. But when this is performed against 2.5.5 mongoS, the driver operation fails with the following exception:
com.mongodb.MongoException: DBClientBase::findN: transport error: mms-db1:50000 ns: admin.$cmd.sys.inprog query: { $query: {} } at com.mongodb.QueryResultIterator.throwOnQueryFailure(QueryResultIterator.java:213) at com.mongodb.QueryResultIterator.init(QueryResultIterator.java:197) at com.mongodb.QueryResultIterator.initFromQueryResponse(QueryResultIterator.java:175) at com.mongodb.QueryResultIterator.<init>(QueryResultIterator.java:64) at com.mongodb.DBCollectionImpl.find(DBCollectionImpl.java:78) at com.mongodb.DBCollectionImpl.find(DBCollectionImpl.java:59) at com.mongodb.DBCollection.findOne(DBCollection.java:869) at com.mongodb.DBCollection.findOne(DBCollection.java:843) at com.mongodb.DBCollection.findOne(DBCollection.java:789) at com.mongodb.DBCollection.findOne(DBCollection.java:778) at com.mongodb.Mongo.isLocked(Mongo.java:734)
The mms-db1:50000 from the trace is the primary of the first shard.
In the mms-db1:50000's mongod.log, the following message is logged:
[conn551] AssertionException handling request, closing client connection: 16810 bad query: BadValue unknown top level operator: $query
It appears to be dependent on going through the mongoS, but unclear if auth-enabled is a contributing factor.
- duplicates
-
SERVER-7775 Make special commands (inprog, killop, unlock) go through the standard command codepath
- Closed
- related to
-
JAVA-1111 isLocked is incompatible with MongoDB 2.5.5
- Closed