HELP-11142 reported a tarball that would cause mongorestore to hang. We've been provided with the tarball via confidential means. This is a tracking ticket for that work.
From that ticket, my thoughts on analyses:
My off-the-cuff thoughts on analysis if we had the tarball:
- Verify restoring (to a local DB) hangs with 4.2 tools and that it works with 4.0 tools
- Repeat, but compile 4.2 tools with the same Go version as 4.0 to rule out Go scheduler or library changes/bugs
- Repeat, but compile with the race detector turned on
- Repeat, but with maximum debug output and/or added diagnostics to pinpoint differences between 4.0 and 4.2
- Based on the information above, attempt to construct a minimal (synthetic) reproduction
If necessary/indicated, write custom tools to inspect the archive format framing for correctness
- If necessary/indicated, inspect archive file bytes around the hang point to identify BSON documents with possible corruption
So I think looking at actual customer data in a human-readable way is a last resort – most of the work can treat the archive as a black box – and we could certainly discuss it with them before proceeding to that step.
We are required to notify the customer before the final bullet point.