simon-git: bob (main): Simon Tatham

Commits to Tartarus hosted VCS tartarus-commits at lists.tartarus.org
Thu Oct 20 20:02:46 BST 2022


TL;DR:
  3749073 Work around a bug with Podman containers.

Repository:     https://git.tartarus.org/simon/bob.git
On the web:     https://git.tartarus.org/?p=simon/bob.git
Branch updated: main
Committer:      Simon Tatham <anakin at pobox.com>
Date:           2022-10-20 20:02:46

commit 3749073d9ab4afa7dd579fa641063b7df04f02c5
web diff https://git.tartarus.org/?p=simon/bob.git;a=commitdiff;h=3749073d9ab4afa7dd579fa641063b7df04f02c5;hp=c4e6836339c0e6f22cdd47cbe313b1487ca621f6
Author: Simon Tatham <anakin at pobox.com>
Date:   Thu Oct 20 18:22:37 2022 +0100

    Work around a bug with Podman containers.
    
    I've been finding recently that my Puzzles builds fail while trying to
    return data from the Emscripten build (which is delegated into a
    Podman container). Investigating, this appears to be because the
    'conmon' process associated with the container is segfaulting.
    
    I found https://github.com/containers/conmon/issues/315 which seems to
    be describing very similar symptoms, and in particular, everyone
    involved agrees that transferring a lot of data out of the container
    via its standard output is the trigger for the segfault - which is
    indeed exactly what's happening in my case when bob-delegate-server
    returns files.
    
    Workaround: use a different channel to get data in and out of the
    container. In this commit I add command-line options to
    bob-delegate-server that allows it to open a pair of named pipes to
    speak the delegate protocol over, and in the Podman case of delegate
    startup, I make a pair of fifos, share them into the container via a
    spare temp directory, and use them in place of the subprocess.PIPE
    file objects. This seems to make the data transfer work reliably.

 bob-delegate-server | 151 ++++++++++++++++++++++++++++++----------------------
 execute.py          |  59 +++++++++++++++-----
 2 files changed, 133 insertions(+), 77 deletions(-)



More information about the tartarus-commits mailing list