• D
    Avoid async signal safety problem in glibc's setxid · 3563c51d
    Daniel P. Berrange 提交于
    The glibc setxid is supposed to be async signal safe, but
    libc developers confirm that it is not. This causes a problem
    when libvirt_lxc starts the FUSE thread and then runs clone()
    to start the container. If the clone() was done before the
    FUSE thread has completely started up, then the container
    will hang in setxid after clone().
    
    The fix is to avoid creating any threads until after the
    container has been clone()'d. By avoiding any threads in
    the parent, the child is no longer required to run in an
    async signal safe context, and we thus avoid the glibc
    bug.
    Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
    3563c51d
lxc_fuse.c 11.0 KB