- 
    Type:Bug 
- 
    Resolution: Duplicate
- 
    Priority:Major - P3 
- 
    None
- 
    Affects Version/s: None
- 
    Component/s: None
- 
        Query Integration
- 
        ALL
- 
        None
- 
        None
- 
        None
- 
        None
- 
        None
- 
        None
- 
        None
Timeseries collections can include time and/or metadata in the shard key. A key assumption mongos makes is that whenever an insert creates a bucket, the 'control.min.time' is initialized by rounding the even time.
However, inserting events before 1970 results in a non-rounded 'control.min.time' value:
> db.createCollection('ts', {timeseries:{timeField:'t',metaField:'m'}}) { "ok" : 1 } > db.ts.insert({t: ISODate('1969-01-01T00:00:12.345')}) WriteResult({ "nInserted" : 1 }) > db.system.buckets.ts.find().pretty() { "_id" : ObjectId("fe1eccbc6f22cc96f1dd557f"), "control" : { "min" : { // Tight lower bound, not rounded. "t" : ISODate("1969-01-01T00:00:12.345Z") }, "max" : { // Rounded upper bound, not tight. "t" : ISODate("1969-01-01T00:01:00Z") } }, "data" : ... }
If a shard owns the rounded value, but not the actual non-rounded 'control.min.time' value, then this bucket is now an orphan. Shard-filtering queries exclude it, and presumably the balancer could delete it at some point.
Note that this is unrelated to time-series filter pushdown rewrites. The problem is that the insert path creates orphan buckets; queries will exclude those orphans regardless of optimization.
- duplicates
- 
                    SERVER-67816 Time-series bucket rounding for pre-1970 dates behaves unexpectedly -         
- Closed
 
-         
- is related to
- 
                    SERVER-67816 Time-series bucket rounding for pre-1970 dates behaves unexpectedly -         
- Closed
 
-         
- related to
- 
                    SERVER-77888 Timeseries last-point query is incorrect for pre-1970 dates -         
- Backlog
 
-         
- 
                    SERVER-84049 Deprecate support for sharding time-series collections on time field -         
- Backlog
 
-         
- 
                    SERVER-67825 Investigate where time-series functionality relies on control summary timestamps -         
- Closed
 
-