[SERVER-30800] 'invalidate' changeStream entries should always have a null _id Created: 23/Aug/17 Updated: 24/Aug/17 Resolved: 24/Aug/17 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Replication |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Spencer Brody (Inactive) | Assignee: | Siyuan Zhou |
| Resolution: | Won't Fix | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Sprint: | Repl 2017-09-11 |
| Participants: |
| Description |
|
Since it's not valid to resume after an 'invalidate' change stream entry, those entries shouldn't return a ResumeToken at all. Instead their _id should always be an explicit null so it's clear that it's not safe to resume after them. |
| Comments |
| Comment by Spencer Brody (Inactive) [ 24/Aug/17 ] |
|
We need the resumeToken to come back from shards to mongos so mongos can merge the invalidate entry into the proper place in the changestream. We could keep it there for shard mongod->mongos but have mongos and unsharded mongods strip it out, but that's probably more work than is worthwhile for this. We will leave the _id for invalidate as it is for now and trust drivers to never try to resume after an invalidate. |