The BSON Timestamp type, documented here https://www.mongodb.com/docs/manual/reference/bson-types/, includes a 32-bit time_t field. Does anyone know whether this field is signed or unsigned? If signed, it will roll over on January 19, 2038 (the Y2038 issue). If unsigned, it will not roll over until 2106.
The specific text in question is: "the most significant 32 bits are a time_t value (seconds since the Unix epoch)"
I understand that BSON Timestamp is intended for internal use only, as noted in the documentation. However, a signed time_t in this field could cause internal rollover issues in MongoDB itself or impact any applications that happen to use this type directly.
ObjectId also has undefined signedness, as per this text: "A 4-byte timestamp, representing the ObjectId's creation, measured in seconds since the Unix epoch."