[SERVER-13766] Dropping index or collection while $or query is yielding triggers fatal assertion Created: 28/Apr/14 Updated: 11/Jul/16 Resolved: 30/Apr/14 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Querying |
| Affects Version/s: | 2.6.0, 2.6.1-rc0 |
| Fix Version/s: | 2.6.1, 2.7.0 |
| Type: | Bug | Priority: | Critical - P2 |
| Reporter: | J Rassi | Assignee: | J Rassi |
| Resolution: | Done | Votes: | 0 |
| Labels: | cap-ticket-needed | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||
| Operating System: | ALL | ||||||||||||||||
| Backport Completed: | |||||||||||||||||
| Participants: | |||||||||||||||||
| Description |
|
Issue Status as of April 30, 2014 ISSUE SUMMARY USER IMPACT WORKAROUNDS
There is no workaround for the case of dropping an index, therefore users should hold off dropping an index while they might be running $or queries. RESOLUTION AFFECTED VERSIONS PATCHES Original descriptionA fatal assertion is triggered during cursor cache invalidation when the following occurs:
As a workaround, empty the collection with remove() before dropping it. The following illustrates how to employ the workaround in order to drop the collection named coll:
This workaround will significantly reduce (but not eliminate) the chance of encountering the issue. Reproduce with the following shell script:
Output from the mongod log from the above:
Originally reported in mongodb-user thread: <https://groups.google.com/forum/#!topic/mongodb-user/Z-gDnxhTGio>. |
| Comments |
| Comment by Githook User [ 30/Apr/14 ] |
|
Author: {u'username': u'jrassi', u'name': u'Jason Rassi', u'email': u'rassi@10gen.com'}Message: For all child classes of Runner, implementations of Runner::kill() (cherry picked from commit 1d98478d9d529e886143415cbb5b507362ab45eb) |
| Comment by Githook User [ 28/Apr/14 ] |
|
Author: {u'username': u'jrassi', u'name': u'Jason Rassi', u'email': u'rassi@10gen.com'}Message: For all child classes of Runner, implementations of Runner::kill() |