Details
-
Bug
-
Status: Closed
-
Major - P3
-
Resolution: Duplicate
-
2.6.0-rc2
-
None
-
None
-
None
-
ALL
Description
If a user has an index {loc:"2d"} and {loc:"2dsphere"} on the same collection, then $near queries will trip the "!indexIs2d" verify() assertion failure.
Note that the documentation specifies "MongoDB allows only one geospatial index per collection. You can create either a 2dsphere or a 2d per collection", so to reproduce this the user technically had to break the rules.
> db.version()
|
2.6.0-rc2
|
> db.foo.ensureIndex({loc:"2d"})
|
WriteResult({ "nInserted" : 1 })
|
> db.foo.ensureIndex({loc:"2dsphere"})
|
WriteResult({ "nInserted" : 1 })
|
> db.foo.find({loc:{$near:{$geometry:{type: "Point", coordinates:[10,10]}}}})
|
error: { "$err" : "assertion src/mongo/db/query/planner_access.cpp:116" }
|
In 2.4.9, the query succeeds:
> db.version()
|
2.4.9
|
> db.foo.find({loc:{$near:{$geometry:{type: "Point", coordinates:[10,10]}}}})
|
{ "_id" : ObjectId("5338bc829a4bea067ac904fa"), "loc" : [ 10, 10 ] }
|
Log output for the assertion failure:
2014-03-30T20:57:06.700-0400 [conn1] test.foo Assertion failure !indexIs2D src/mongo/db/query/planner_access.cpp 116
|
2014-03-30T20:57:06.705-0400 [conn1] test.foo 0x100698b8b 0x100651542 0x100641fc2 0x1003de934 0x1003e03e2 0x1003ef6b4 0x1003a7f47 0x1003a9d9e 0x1003aa8ce 0x1003c4427 0x100298c40 0x1000069e4 0x10065ecf1 0x1006ccf95 0x101ce8782 0x101cd51c1
|
0 mongod260rc2 0x0000000100698b8b _ZN5mongo15printStackTraceERSo + 43
|
1 mongod260rc2 0x0000000100651542 _ZN5mongo10logContextEPKc + 114
|
2 mongod260rc2 0x0000000100641fc2 _ZN5mongo12verifyFailedEPKcS1_j + 274
|
3 mongod260rc2 0x00000001003de934 _ZN5mongo18QueryPlannerAccess12makeLeafNodeERKNS_14CanonicalQueryERKNS_10IndexEntryEmPNS_15MatchExpressionEPNS_18IndexBoundsBuilder15BoundsTightnessE + 188
|
4 mongod260rc2 0x00000001003e03e2 _ZN5mongo18QueryPlannerAccess22buildIndexedDataAccessERKNS_14CanonicalQueryEPNS_15MatchExpressionEbRKSt6vectorINS_10IndexEntryESaIS7_EE + 342
|
5 mongod260rc2 0x00000001003ef6b4 _ZN5mongo12QueryPlanner4planERKNS_14CanonicalQueryERKNS_18QueryPlannerParamsEPSt6vectorIPNS_13QuerySolutionESaIS9_EE + 10762
|
6 mongod260rc2 0x00000001003a7f47 _ZN5mongo19getRunnerAlwaysPlanEPNS_10CollectionEPNS_14CanonicalQueryERKNS_18QueryPlannerParamsEPPNS_6RunnerE + 119
|
7 mongod260rc2 0x00000001003a9d9e _ZN5mongo9getRunnerEPNS_10CollectionEPNS_14CanonicalQueryEPPNS_6RunnerEm + 1790
|
8 mongod260rc2 0x00000001003aa8ce _ZN5mongo9getRunnerEPNS_14CanonicalQueryEPPNS_6RunnerEm + 158
|
9 mongod260rc2 0x00000001003c4427 _ZN5mongo11newRunQueryERNS_7MessageERNS_12QueryMessageERNS_5CurOpES1_ + 3847
|
10 mongod260rc2 0x0000000100298c40 _ZN5mongo16assembleResponseERNS_7MessageERNS_10DbResponseERKNS_11HostAndPortE + 1968
|
11 mongod260rc2 0x00000001000069e4 _ZN5mongo16MyMessageHandler7processERNS_7MessageEPNS_21AbstractMessagingPortEPNS_9LastErrorE + 308
|
12 mongod260rc2 0x000000010065ecf1 _ZN5mongo17PortMessageServer17handleIncomingMsgEPv + 1681
|
13 mongod260rc2 0x00000001006ccf95 thread_proxy + 229
|
14 libsystem_c.dylib 0x0000000101ce8782 _pthread_start + 327
|
15 libsystem_c.dylib 0x0000000101cd51c1 thread_start + 13
|
2014-03-30T20:57:06.708-0400 [conn1] assertion 0 assertion src/mongo/db/query/planner_access.cpp:116 ns:test.foo query:{ loc: { $near: { $geometry: { type: "Point", coordinates: [ 10.0, 10.0 ] } } } }
|
Attachments
Issue Links
- duplicates
-
SERVER-13356 Geospatial index intersection errors when used with a compound index
-
- Closed
-