-
Notifications
You must be signed in to change notification settings - Fork 78
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
[BUG] Cascaded Illegal Memory Access with High Compression Ratio #96
Comments
Unfortunately, it seems like I can't access the nvcomp-reproducer.cpp.txt file you linked to anymore. I think I looked at it briefly a week or so ago, so it was probably there at one point. Could you post it again? I think I might have found something, though I don't know whether it would cause this or not, without the repro code. |
Below is the code.
|
It looks like this isn't fixed in the latest nvcomp, and it might just be a coincidence that it happens to no longer crash for you. The bug seems to occur when there's a chunk that consists entirely of 1 repeated value and there's at least 1 RLE pass and 2 delta passes. The RLE is run first, reducing it to a single value and a run length, and outputting the run length. The first delta just outputs the one value, because it has no following value to subtract it from. On the second delta pass, there are no values left, and there's a chance that it may crash. I'll try to fix the handling of the case where it runs out of values to process. |
Ok,thanks for looking into this. |
This issue has been labeled |
@ndickson-nvidia I am attaching a reproducer here. Expected behaviour.nvcomp-reproducer-cascaded.cpp.txt
The same error occur with the following cascaded options:
Environment details:Bare-metal |
This issue has been labeled |
As far as I know, I've fixed this bug for the next release. Thanks for reporting it! |
Great! |
This issue has been labeled |
This issue has been labeled |
Describe the bug
nvcomp cascaded manager runs into an illegal memory access when reading the compressed output size after compressing highly compressible data.
Steps/Code to reproduce bug
Reproducer: nvcomp-reproducer.cpp.txt
Compile with:
Expected behavior
The reproducer I attached compresses two buffers of the same size with the same cascaded manager.
One buffer is filled with random data and works fine.
The other buffer is filled with a sequence of
{0,1,0,1,...}
and triggers the error.In the reproducer, I took care of making sure that buffer sizes are appropriate:
Environment details:
The text was updated successfully, but these errors were encountered: