-
Notifications
You must be signed in to change notification settings - Fork 158
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
test_negative_positive_uniform failure #462
Comments
Can be reproduced with the following change: in metrics/metrics-util/src/summary.rs Line 279 in e2c37f4
Replace |
Interesting. Thanks for the reproduction. Hopefully I can dig into this at some point soon. |
As a small update, I did follow your instructions and was also able to reproduce this locally. Haven't started digging into why it breaks, but good to know the reproduction is solid. 👍🏻 |
I looked into the failure and I think the cause is the interpolation: it seems to me that the implementation of DDSketch rounds the 'rank' towards zero. The line where truncation happens is https://github.com/mheffner/rust-sketches-ddsketch/blob/d6069cba291ed81924139b34c7ba92647b634a42/src/ddsketch.rs#L111 Truncating 'rank' is equivalent to 'Lower' interpolation mode in Additionally: with |
Interesting; nice find! This makes sense to me from reading your comment, but I want to spend a little time trying to check the official DDSketch libraries to make sure that what |
By the way, I haven't forgotten about this. Work has been busy, and I've been working with one of the DDSketch authors (I work at Datadog) on another internal Rust project that also needs DDSketch... so I'm hoping to figure out both the answer to my above thoughts, and see if that inevitably means we should use the current crate, another crate, or write something entirely new. |
Test "test_negative_positive_uniform" occasionally fails on my machine (linux x86_64, rust 1.65.0):
To reproduce, run the test repeatedly until it fails (a few hundred repetitions may be required):
The text was updated successfully, but these errors were encountered: