-
Type:
Improvement
-
Resolution: Done
-
Priority:
Minor - P4
-
Affects Version/s: 1.7.4
-
Component/s: Geo, Index Maintenance
-
None
-
Environment:Linux 2.6.35-24-generic #42-Ubuntu SMP Thu Dec 2 02:41:37 UTC 2010 x86_64 GNU/Linux
-
None
-
3
-
None
-
None
-
None
-
None
-
None
-
None
General messiness with slightly weird $within queries for boxes.
Within queries for boxes whose size is equal to the bounds of the indexed region fails, with the following assertation error:
Fri Jan 21 11:15:44 [conn3] test.borders Assertion failure in > 0 db/geo/2d.cpp 199
0x508113 0x513521 0x6e028a 0x6e2110 0x6e3695 0x6de6b3 0x6afad3 0x5c05ec 0x6b10cd 0x6b592e 0x6b8a2b 0x6b9319 0x6b9ee7 0x5b15f8 0x685410 0x7693ef 0x7f9572e03230 0x7f957351e971 0x7f9571b0092d
/opt/mongo/bin/mongod(_ZN5mongo12sayDbContextEPKc+0xb3) [0x508113]
/opt/mongo/bin/mongod(_ZN5mongo8assertedEPKcS1_j+0xc1) [0x513521]
/opt/mongo/bin/mongod(_ZNK5mongo9Geo2dType4hashEdd+0x7a) [0x6e028a]
/opt/mongo/bin/mongod(_ZNK5mongo9Geo2dType5_hashERKNS_7BSONObjE+0x1a0) [0x6e2110]
/opt/mongo/bin/mongod(_ZNK5mongo9Geo2dType7_tohashERKNS_11BSONElementE+0x75) [0x6e3695]
/opt/mongo/bin/mongod(_ZNK5mongo9Geo2dType9newCursorERKNS_7BSONObjES3_i+0x11e3) [0x6de6b3]
/opt/mongo/bin/mongod(_ZNK5mongo9QueryPlan9newCursorERKNS_7DiskLocEi+0x43) [0x6afad3]
/opt/mongo/bin/mongod(_ZN5mongo11UserQueryOp5_initEv+0x37c) [0x5c05ec]
/opt/mongo/bin/mongod(_ZN5mongo12QueryPlanSet6Runner6initOpERNS_7QueryOpE+0x12d) [0x6b10cd]
/opt/mongo/bin/mongod(_ZN5mongo12QueryPlanSet6Runner3runEv+0x47e) [0x6b592e]
/opt/mongo/bin/mongod(_ZN5mongo12QueryPlanSet5runOpERNS_7QueryOpE+0x5b) [0x6b8a2b]
/opt/mongo/bin/mongod(_ZN5mongo16MultiPlanScanner9runOpOnceERNS_7QueryOpE+0x2e9) [0x6b9319]
/opt/mongo/bin/mongod(_ZN5mongo16MultiPlanScanner5runOpERNS_7QueryOpE+0x27) [0x6b9ee7]
/opt/mongo/bin/mongod(ZN5mongo8runQueryERNS_7MessageERNS_12QueryMessageERNS_5CurOpES1+0xa78) [0x5b15f8]
/opt/mongo/bin/mongod(_ZN5mongo16assembleResponseERNS_7MessageERNS_10DbResponseERKNS_8SockAddrE+0x1040) [0x685410]
/opt/mongo/bin/mongod(_ZN5mongo10connThreadEPNS_13MessagingPortE+0x2cf) [0x7693ef]
/usr/lib/libboost_thread.so.1.42.0(thread_proxy+0x60) [0x7f9572e03230]
/lib/libpthread.so.0(+0x7971) [0x7f957351e971]
/lib/libc.so.6(clone+0x6d) [0x7f9571b0092d]
Fri Jan 21 11:15:44 [conn3] test.borders Assertion failure in > 0 db/geo/2d.cpp 199
0x508113 0x513521 0x6e028a 0x6e2110 0x6e3695 0x6de6b3 0x6afad3 0x5c05ec 0x6b10cd 0x6b592e 0x6b8b62 0x6b9319 0x6b9ee7 0x5b15f8 0x685410 0x7693ef 0x7f9572e03230 0x7f957351e971 0x7f9571b0092d
/opt/mongo/bin/mongod(_ZN5mongo12sayDbContextEPKc+0xb3) [0x508113]
/opt/mongo/bin/mongod(_ZN5mongo8assertedEPKcS1_j+0xc1) [0x513521]
/opt/mongo/bin/mongod(_ZNK5mongo9Geo2dType4hashEdd+0x7a) [0x6e028a]
/opt/mongo/bin/mongod(_ZNK5mongo9Geo2dType5_hashERKNS_7BSONObjE+0x1a0) [0x6e2110]
/opt/mongo/bin/mongod(_ZNK5mongo9Geo2dType7_tohashERKNS_11BSONElementE+0x75) [0x6e3695]
/opt/mongo/bin/mongod(_ZNK5mongo9Geo2dType9newCursorERKNS_7BSONObjES3_i+0x11e3) [0x6de6b3]
/opt/mongo/bin/mongod(_ZNK5mongo9QueryPlan9newCursorERKNS_7DiskLocEi+0x43) [0x6afad3]
/opt/mongo/bin/mongod(_ZN5mongo11UserQueryOp5_initEv+0x37c) [0x5c05ec]
/opt/mongo/bin/mongod(_ZN5mongo12QueryPlanSet6Runner6initOpERNS_7QueryOpE+0x12d) [0x6b10cd]
/opt/mongo/bin/mongod(_ZN5mongo12QueryPlanSet6Runner3runEv+0x47e) [0x6b592e]
/opt/mongo/bin/mongod(_ZN5mongo12QueryPlanSet5runOpERNS_7QueryOpE+0x192) [0x6b8b62]
/opt/mongo/bin/mongod(_ZN5mongo16MultiPlanScanner9runOpOnceERNS_7QueryOpE+0x2e9) [0x6b9319]
/opt/mongo/bin/mongod(_ZN5mongo16MultiPlanScanner5runOpERNS_7QueryOpE+0x27) [0x6b9ee7]
/opt/mongo/bin/mongod(ZN5mongo8runQueryERNS_7MessageERNS_12QueryMessageERNS_5CurOpES1+0xa78) [0x5b15f8]
/opt/mongo/bin/mongod(_ZN5mongo16assembleResponseERNS_7MessageERNS_10DbResponseERKNS_8SockAddrE+0x1040) [0x685410]
/opt/mongo/bin/mongod(_ZN5mongo10connThreadEPNS_13MessagingPortE+0x2cf) [0x7693ef]
/usr/lib/libboost_thread.so.1.42.0(thread_proxy+0x60) [0x7f9572e03230]
/lib/libpthread.so.0(+0x7971) [0x7f957351e971]
/lib/libc.so.6(clone+0x6d) [0x7f9571b0092d]
Fri Jan 21 11:15:44 [conn3] assertion 0 assertion db/geo/2d.cpp:199 ns:test.borders query:{ loc: { $within:
} }
error:
There are better ways to get all the points in the full range, but ideally this should be a nicer error.
Also, if our box mins and maxes are inverted (such that we define a box backwards), we get the following non-nice error:
Fri Jan 21 11:19:27 [conn4] test.borders Assertion failure amin <= amax db/geo/2d.cpp 310
0x508113 0x513521 0x6e5380 0x6df539 0x6de904 0x6afad3 0x5c05ec 0x6b10cd 0x6b592e 0x6b8a2b 0x6b9319 0x6b9ee7 0x5b15f8 0x685410 0x7693ef 0x7f9572e03230 0x7f957351e971 0x7f9571b0092d
/opt/mongo/bin/mongod(_ZN5mongo12sayDbContextEPKc+0xb3) [0x508113]
/opt/mongo/bin/mongod(_ZN5mongo8assertedEPKcS1_j+0xc1) [0x513521]
/opt/mongo/bin/mongod(_ZN5mongo12GeoBoxBrowse9fillStackEv+0xa60) [0x6e5380]
/opt/mongo/bin/mongod(_ZN5mongo9GeoBrowse2okEv+0x79) [0x6df539]
/opt/mongo/bin/mongod(_ZNK5mongo9Geo2dType9newCursorERKNS_7BSONObjES3_i+0x1434) [0x6de904]
/opt/mongo/bin/mongod(_ZNK5mongo9QueryPlan9newCursorERKNS_7DiskLocEi+0x43) [0x6afad3]
/opt/mongo/bin/mongod(_ZN5mongo11UserQueryOp5_initEv+0x37c) [0x5c05ec]
/opt/mongo/bin/mongod(_ZN5mongo12QueryPlanSet6Runner6initOpERNS_7QueryOpE+0x12d) [0x6b10cd]
/opt/mongo/bin/mongod(_ZN5mongo12QueryPlanSet6Runner3runEv+0x47e) [0x6b592e]
/opt/mongo/bin/mongod(_ZN5mongo12QueryPlanSet5runOpERNS_7QueryOpE+0x5b) [0x6b8a2b]
/opt/mongo/bin/mongod(_ZN5mongo16MultiPlanScanner9runOpOnceERNS_7QueryOpE+0x2e9) [0x6b9319]
/opt/mongo/bin/mongod(_ZN5mongo16MultiPlanScanner5runOpERNS_7QueryOpE+0x27) [0x6b9ee7]
/opt/mongo/bin/mongod(ZN5mongo8runQueryERNS_7MessageERNS_12QueryMessageERNS_5CurOpES1+0xa78) [0x5b15f8]
/opt/mongo/bin/mongod(_ZN5mongo16assembleResponseERNS_7MessageERNS_10DbResponseERKNS_8SockAddrE+0x1040) [0x685410]
/opt/mongo/bin/mongod(_ZN5mongo10connThreadEPNS_13MessagingPortE+0x2cf) [0x7693ef]
/usr/lib/libboost_thread.so.1.42.0(thread_proxy+0x60) [0x7f9572e03230]
/lib/libpthread.so.0(+0x7971) [0x7f957351e971]
/lib/libc.so.6(clone+0x6d) [0x7f9571b0092d]
Fri Jan 21 11:19:27 [conn4] test.borders Assertion failure amin <= amax db/geo/2d.cpp 310
0x508113 0x513521 0x6e5380 0x6df539 0x6de904 0x6afad3 0x5c05ec 0x6b10cd 0x6b592e 0x6b8b62 0x6b9319 0x6b9ee7 0x5b15f8 0x685410 0x7693ef 0x7f9572e03230 0x7f957351e971 0x7f9571b0092d
/opt/mongo/bin/mongod(_ZN5mongo12sayDbContextEPKc+0xb3) [0x508113]
/opt/mongo/bin/mongod(_ZN5mongo8assertedEPKcS1_j+0xc1) [0x513521]
/opt/mongo/bin/mongod(_ZN5mongo12GeoBoxBrowse9fillStackEv+0xa60) [0x6e5380]
/opt/mongo/bin/mongod(_ZN5mongo9GeoBrowse2okEv+0x79) [0x6df539]
/opt/mongo/bin/mongod(_ZNK5mongo9Geo2dType9newCursorERKNS_7BSONObjES3_i+0x1434) [0x6de904]
/opt/mongo/bin/mongod(_ZNK5mongo9QueryPlan9newCursorERKNS_7DiskLocEi+0x43) [0x6afad3]
/opt/mongo/bin/mongod(_ZN5mongo11UserQueryOp5_initEv+0x37c) [0x5c05ec]
/opt/mongo/bin/mongod(_ZN5mongo12QueryPlanSet6Runner6initOpERNS_7QueryOpE+0x12d) [0x6b10cd]
/opt/mongo/bin/mongod(_ZN5mongo12QueryPlanSet6Runner3runEv+0x47e) [0x6b592e]
/opt/mongo/bin/mongod(_ZN5mongo12QueryPlanSet5runOpERNS_7QueryOpE+0x192) [0x6b8b62]
/opt/mongo/bin/mongod(_ZN5mongo16MultiPlanScanner9runOpOnceERNS_7QueryOpE+0x2e9) [0x6b9319]
/opt/mongo/bin/mongod(_ZN5mongo16MultiPlanScanner5runOpERNS_7QueryOpE+0x27) [0x6b9ee7]
/opt/mongo/bin/mongod(ZN5mongo8runQueryERNS_7MessageERNS_12QueryMessageERNS_5CurOpES1+0xa78) [0x5b15f8]
/opt/mongo/bin/mongod(_ZN5mongo16assembleResponseERNS_7MessageERNS_10DbResponseERKNS_8SockAddrE+0x1040) [0x685410]
/opt/mongo/bin/mongod(_ZN5mongo10connThreadEPNS_13MessagingPortE+0x2cf) [0x7693ef]
/usr/lib/libboost_thread.so.1.42.0(thread_proxy+0x60) [0x7f9572e03230]
/lib/libpthread.so.0(+0x7971) [0x7f957351e971]
/lib/libc.so.6(clone+0x6d) [0x7f9571b0092d]
Fri Jan 21 11:19:27 [conn4] assertion 0 assertion db/geo/2d.cpp:310 ns:test.borders query:{ loc: { $within:
} }
error:
Should probably have a nicer version of this.