-
Notifications
You must be signed in to change notification settings - Fork 77
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
Crash resulting from malloc error #20
Comments
Well that's fun... 🥹 I suspect this is from either crossbeam or pdf crate since those are the more complex ones used in this project that might use pointers internally. Very likely crossbeam, having 128 workers would give it plenty of opportunities for weird racy behavior which i suspect caused this. Pdf crate is sorta exempt as the only operations we use from it with data shared between threads are non-mutable. I'll give the crate a read to see if there is anything suspect as well as try to reproduce this somehow. For now it might be useful to know how many cores/threads your machine has. |
The machine this was running on has 24 cores. Specs are as follows:
|
So i've set my server to run this command for now together with some more debug information and I'll come back to it in a day or two and hope to see a similar crash. I strongly suspect this is crossbeam at this point since it has historically seen similar issues such as CVE-2021-32810 and CVE-2022-23639. I do believe we are right above the patch version for the former however since it was supposedly fixed in 0.8.1, and pdfrip is on 0.8.2. We are affected by the latter, which might be the cause of this although double free is not mentioned among the consequences (but it might just be included in "Data race"). A solution for this is probably to either A: Update the crossbeam dependency or B. Use channels from some other library that are less racy. |
@Pommaq, have you tried https://github.com/zesterer/flume? Appears to be faster than |
Never heard of it, but a quick 10 second look indicates it's similar enough to basically just be a drop-in replacement, I do like how it doesn't use |
The text was updated successfully, but these errors were encountered: