You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Mar 22, 2023. It is now read-only.
When libc, while holding a global lock, invokes some syscall and in response to this syscall we are calling back into the same function in libc, libc tries to take the same lock, which leads to deadlock.
This can happen when pmemobj wants to format an error message (strerror, which requires opening translation file) while we service opening any translation file.
The text was updated successfully, but these errors were encountered:
One possible solution to this problem is substituting libc functions we use in pmemfile and pmemobj by simpler variant that do not call file related syscalls when called FROM pmemfile or pmemobj.
We are careful to not call libc functions in libpmemfile.so, so probably we can use some of this code.
We can make it a separate library (libpmemfile-c.so?), which libpmemfile.so can depend on.
When libc, while holding a global lock, invokes some syscall and in response to this syscall we are calling back into the same function in libc, libc tries to take the same lock, which leads to deadlock.
This can happen when pmemobj wants to format an error message (strerror, which requires opening translation file) while we service opening any translation file.
The text was updated successfully, but these errors were encountered: