-
Notifications
You must be signed in to change notification settings - Fork 4k
ARROW-3226: [Plasma] Fix small memory crash #2550
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
Conversation
|
@guoyuhong Thanks a lot for the patch! Do you currently understand why the crash is happening? How can dlmalloc promise more memory than it has room in the memory mapped file? Also if you have a small script to reproduce it that would be helpful to see if that's the right fix or if something else is going wrong here (it seems to me that this fix should not be needed). |
|
@pcmoritz You can use the test case in client_test of this PR to repro it or use the following script: ray.init(object_store_memory=10000)
message = "This is a message"
for i in range(10000):
ray.put(message) |
|
@pcmoritz Have you tried the script or the test case? |
|
@pcmoritz Maybe here is the problem. In |
|
@guoyuhong I'm currently working on replacing dlmalloc with jemalloc to fix this issue and a bunch of others (memory fragmentation, file descriptor sending problems), let's wait until I have the patch ready which should be in the next couple of days and then we can see which solution is better. How do you feel about that? |
|
@pcmoritz Thanks for the information. Yes, let's wait for the new allocation function and then see whether there is still this bug. |
|
I put my current progress up here: #2593 It is currently blocked on jemalloc/jemalloc#1329, let me know if you have any ideas here :) |
|
In #4189 it is proposed to update to jemalloc 5.2.0. Does that resolve the issue? |
|
@guoyuhong do you know if jemalloc 5.2.0 resolves this issue? |
|
@wesm Sorry for the late response. I use the |
Plasma Store will do the eviction when the memory allocation fails. When specified a smaller store limit, the memory allocation will succeed but Plasma Store will crash when limit memory reached.
Call stack: