[SERVER-4316] Assertion db/query.cpp 727 Created: 18/Nov/11 Updated: 11/Jul/16 Resolved: 18/Nov/11 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Querying |
| Affects Version/s: | 1.8.0-rc0 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Nguyen Minh Hai | Assignee: | Unassigned |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
Linux version 2.6.18-194.11.1.el5xen (mockbuild@builder10.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) processor : 0,1,2 MemTotal: 3145728 kB |
||
| Operating System: | Linux |
| Participants: |
| Description |
|
[Status] db.queue.findOne() "status" value can be 0, 1, 2 db.queue.stats() , [Issues] When executing the find() command with 2 conditions like belowing db.queue.find({"_id":{$gt:ObjectId("000000000000000000000000")}, "status":{$gt:2}}) The following error message has occurred, >> error: { "$err" : "assertion db/query.cpp:727" }However, when the filtering value for the second condition is in the range of "status" [0,1,2], Notice that, "status" is not indexed and has only three integer value of 0, 1 or 2. [Detail] For your information, I think the problem lies in shared pointer _c in db/query.cpp. OK >> error: { "$err" : "assertion db/query.cpp:727" }db.queue.find({"_id":{$gt:ObjectId("000000000000000000000000")}, "status":{$gt:2}}) OK >> error: { "$err" : "assertion db/query.cpp:727" }db.queue.find({"_id":{$gt:ObjectId("000000000000000000000000")}, "status":{$lt:0}}) |
| Comments |
| Comment by Nguyen Minh Hai [ 18/Nov/11 ] |
|
Thanks Eliot! We will upgrade to 2.0.1 as soon as possible. |
| Comment by Eliot Horowitz (Inactive) [ 18/Nov/11 ] |
|
this was fixed quite a while ago. you should definitely not be using 1.8.0-rc0 as it was a pre release of 1.8.0. You should upgrade to 1.8.4 or 2.0.1 |