[SERVER-66418] Bad projection created during dependency analysis due to string order assumption Created: 11/May/22 Updated: 29/Oct/23 Resolved: 17/Jun/22 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | 5.0.7, 6.0.0-rc6, 6.1.0-rc0 |
| Fix Version/s: | 5.0.10, 4.4.16, 4.2.22, 6.0.0-rc11, 6.1.0-rc0 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Matt Boros | Assignee: | Steve Tarzia |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||||||
| Operating System: | ALL | ||||||||||||||||||||
| Backport Requested: |
v6.0, v5.0, v4.4, v4.2
|
||||||||||||||||||||
| Sprint: | QO 2022-06-13, QE 2022-06-27 | ||||||||||||||||||||
| Participants: | |||||||||||||||||||||
| Description |
|
If there’s not a projection at the front of a pipeline during planning, we'll try to create one to push down by doing dependency analysis on the pipeline, then constructing a projection from the results. The logic for converting the dependency analysis results to a projection spec relies on set iterators going in lexicographic order so that a string is always directly before all of the fields it prefixes. That is true in some cases. If the pipeline has dependencies on “a.b” and “a.b.c”, then we process the strings in that order and we create a projection indicating that “a.b” should be included. However, if the pipeline has dependencies on “a.b”, “a.b.c”, and “a.b-d”, then the order we process the fields in is “a.b”, “a.b-d”, “a.b.c”. As a result, we try to create a projection indicating that all three fields should be included. This fails with a path collision error. |
| Comments |
| Comment by Githook User [ 24/Jun/22 ] |
|
Author: {'name': 'Steve Tarzia', 'email': 'steve.tarzia@mongodb.com', 'username': 'starzia'}Message: |
| Comment by Githook User [ 23/Jun/22 ] |
|
Author: {'name': 'Steve Tarzia', 'email': 'steve.tarzia@mongodb.com', 'username': 'starzia'}Message: |
| Comment by Githook User [ 23/Jun/22 ] |
|
Author: {'name': 'Steve Tarzia', 'email': 'steve.tarzia@mongodb.com', 'username': 'starzia'}Message: |
| Comment by Githook User [ 17/Jun/22 ] |
|
Author: {'name': 'Steve Tarzia', 'email': 'steve.tarzia@mongodb.com', 'username': 'starzia'}Message: |
| Comment by Githook User [ 17/Jun/22 ] |
|
Author: {'name': 'Steve Tarzia', 'email': 'steve.tarzia@mongodb.com', 'username': 'starzia'}Message: |
| Comment by Ana Meza [ 19/May/22 ] |
|
james.wahlin@mongodb.com jacob.evans@mongodb.com would someone on your team have capacity to work on this one? |