Skip to content

fix: parent-child ipc communication

Denis Smirnov requested to merge 312-issue into master

fix: parent-child ipc communication

When picodata process forks, the parent and child are connected by two unix pipes:

  • the fuse (used by the child to detect parent's death);
  • the ipc channel (used by the parent to get on-exit messages from the child to change its state in the finite-state machine);

The problem was that the parent tried to read the message from the pipe right after the fork (and before the child's exit). Usually the pipe was empty at that moment and the parent collected serde's "failed to fill whole buffer" error instead the real message provided by the child.

Closes #312 (closed)

See also pipe(2), pipe(7).

Edited by Yaroslav Dynnikov

Merge request reports