Skip to content
Snippets Groups Projects
  • Denis Smirnov's avatar
    5a5a1919
    fix: parent-child ipc communication · 5a5a1919
    Denis Smirnov authored
    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.
    Verified
    5a5a1919
    History
    fix: parent-child ipc communication
    Denis Smirnov authored
    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.