Skip to content
This repository has been archived by the owner on Mar 22, 2023. It is now read-only.

preload: reentrancy issue #263

Open
marcinslusarz opened this issue Jul 19, 2017 · 1 comment
Open

preload: reentrancy issue #263

marcinslusarz opened this issue Jul 19, 2017 · 1 comment
Labels

Comments

@marcinslusarz
Copy link
Contributor

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.

@marcinslusarz
Copy link
Contributor Author

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.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

1 participant