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
It's unsafe to open same H5 file with libsonata after forking.
In the best case, it can end up with errors like that one:
#005: H5C.c line 3574 in H5C_protect(): can't load entry
major: Symbol table
major: Object cache
minor: Protected metadata error
minor: Unable to load metadata into cache
In the worst case, it can lead to undefined behavior.
This nice trait is inherited from libhdf5; if possible we need to find a way to protect library users from this, or at least make the error more self-explanatory.
The text was updated successfully, but these errors were encountered:
Sadly we don't have a lot of control on how calling process' handle themselves.
However, it would be neat to be able to at least issue a warning if a fork() happens without an exec.
The only (gross) way I can think of this is to save the PID when libsonata is initialized, and periodically check that it hasn't changed; an exec() would clear this, iirc (to be checked).
This doesn't seem like an elegant solution, though.
It's unsafe to open same H5 file with
libsonata
after forking.In the best case, it can end up with errors like that one:
In the worst case, it can lead to undefined behavior.
This nice trait is inherited from
libhdf5
; if possible we need to find a way to protect library users from this, or at least make the error more self-explanatory.The text was updated successfully, but these errors were encountered: