[SERVER-7511] update code does not properly determine if a positional mod is indexed, fix Mod::isIndexed() Created: 30/Oct/12 Updated: 11/Jul/16 Resolved: 15/Jan/13 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Write Ops |
| Affects Version/s: | 2.2.2, 2.3.1 |
| Fix Version/s: | 2.2.3, 2.3.2 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Aaron Staple | Assignee: | Eliot Horowitz (Inactive) |
| Resolution: | Done | Votes: | 1 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||||||
| Operating System: | ALL | ||||||||||||||||||||||||
| Participants: | |||||||||||||||||||||||||
| Description |
|
Certain mods are considered not to affect index entries that they actually do affect, in particular when the positional operator is used. This can result in index corruption when a document becomes out of sync with its index entries. Test
Output:
See Mod::isIndexed(). We should also:
|
| Comments |
| Comment by auto [ 09/Jan/13 ] | |||||
|
Author: {u'date': u'2013-01-09T19:47:34Z', u'email': u'eliot@10gen.com', u'name': u'Eliot Horowitz'}Message: | |||||
| Comment by auto [ 09/Jan/13 ] | |||||
|
Author: {u'date': u'2013-01-09T17:12:05Z', u'email': u'eliot@10gen.com', u'name': u'Eliot Horowitz'}Message: | |||||
| Comment by auto [ 09/Jan/13 ] | |||||
|
Author: {u'date': u'2013-01-09T17:12:05Z', u'email': u'eliot@10gen.com', u'name': u'Eliot Horowitz'}Message: | |||||
| Comment by Thomas Rueckstiess [ 07/Jan/13 ] | |||||
|
The same bug occurs when using the "array index" syntax in the update, for example:
Possible work-arounds for either syntax:
For the second alternative, several fields can still be updated in a single update. |