Skip to content
  • Denis V. Lunev's avatar
    5c56dd27
    qemu-nbd: fix regression with qemu-nbd --fork run over ssh · 5c56dd27
    Denis V. Lunev authored
    
    
    Commit e6df58a5
        Author: Hanna Reitz <hreitz@redhat.com>
        Date:   Wed May 8 23:18:18 2019 +0200
        qemu-nbd: Do not close stderr
    
    has introduced an interesting regression. Original behavior of
        ssh somehost qemu-nbd /home/den/tmp/file -f raw --fork
    was the following:
     * qemu-nbd was started as a daemon
     * the command execution is done and ssh exited with success
    
    The patch has changed this behavior and 'ssh' command now hangs forever.
    
    According to the normal specification of the daemon() call, we should
    endup with STDERR pointing to /dev/null. That should be done at the
    very end of the successful startup sequence when the pipe to the
    bootstrap process (used for diagnostics) is no longer needed.
    
    This could be achived in the same way as done for 'qemu-nbd -c' case.
    That was commit 0eaf453e, also fixing up e6df58a5. STDOUT copying to
    STDERR does the trick.
    
    This also leads to proper 'ssh' connection closing which fixes my
    original problem.
    
    Signed-off-by: default avatarDenis V. Lunev <den@openvz.org>
    CC: Eric Blake <eblake@redhat.com>
    CC: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    CC: Hanna Reitz <hreitz@redhat.com>
    CC: <qemu-stable@nongnu.org>
    Message-ID: <20230717145544.194786-3-den@openvz.org>
    Reviewed-by: default avatarEric Blake <eblake@redhat.com>
    Signed-off-by: default avatarEric Blake <eblake@redhat.com>
    5c56dd27
    qemu-nbd: fix regression with qemu-nbd --fork run over ssh
    Denis V. Lunev authored
    
    
    Commit e6df58a5
        Author: Hanna Reitz <hreitz@redhat.com>
        Date:   Wed May 8 23:18:18 2019 +0200
        qemu-nbd: Do not close stderr
    
    has introduced an interesting regression. Original behavior of
        ssh somehost qemu-nbd /home/den/tmp/file -f raw --fork
    was the following:
     * qemu-nbd was started as a daemon
     * the command execution is done and ssh exited with success
    
    The patch has changed this behavior and 'ssh' command now hangs forever.
    
    According to the normal specification of the daemon() call, we should
    endup with STDERR pointing to /dev/null. That should be done at the
    very end of the successful startup sequence when the pipe to the
    bootstrap process (used for diagnostics) is no longer needed.
    
    This could be achived in the same way as done for 'qemu-nbd -c' case.
    That was commit 0eaf453e, also fixing up e6df58a5. STDOUT copying to
    STDERR does the trick.
    
    This also leads to proper 'ssh' connection closing which fixes my
    original problem.
    
    Signed-off-by: default avatarDenis V. Lunev <den@openvz.org>
    CC: Eric Blake <eblake@redhat.com>
    CC: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    CC: Hanna Reitz <hreitz@redhat.com>
    CC: <qemu-stable@nongnu.org>
    Message-ID: <20230717145544.194786-3-den@openvz.org>
    Reviewed-by: default avatarEric Blake <eblake@redhat.com>
    Signed-off-by: default avatarEric Blake <eblake@redhat.com>
Loading