Red Hat Bugzilla – Bug 789960
guestfsd crash when try to mount non-exist disk
Last modified: 2012-06-20 03:00:31 EDT
Description of problem: When user try to mount a non-exist disk, the daemon will crash and everything can't work any more. Version-Release number of selected component (if applicable): Can reproduce with RHEL6.2 release version and libguestfs-1.16.4-1.el6.x86_64. How reproducible: 100% Steps to Reproduce: 1. # guestfish -N disk -- mount /dev/vdb / : ping-daemon libguestfs: error: mount: mount_stub: /dev/vdb: device not found libguestfs: error: unexpected procedure number (1/282) Actual results: guestfs daemon crashed. Expected results: just report error message and libguestfs should keep working after that. Additional info: # guestfish -a /dev/null -x -v [...] ><fs> mount /dev/vdb / libguestfs: trace: mount "/dev/vdb" "/" libguestfs: send_to_daemon: 64 bytes: 00 00 00 3c | 20 00 f5 f5 | 00 00 00 04 | 00 00 00 01 | 00 00 00 00 | ... guestfsd: main_loop: new request, len 0x3c guestfsd: error: mount_stub: /dev/vdb: device not found mount -o /dev/vdb /sysroot/ libguestfs: recv_from_daemon: 88 bytes: 20 00 f5 f5 | 00 00 00 04 | 00 00 00 01 | 00 00 00 01 | 00 12 34 00 | ... libguestfs: trace: mount = -1 (error) libguestfs: error: mount: mount_stub: /dev/vdb: device not found ><fs> ping-daemon libguestfs: trace: ping_daemon libguestfs: send_to_daemon: 44 bytes: 00 00 00 28 | 20 00 f5 f5 | 00 00 00 04 | 00 00 00 5c | 00 00 00 00 | ... guestfsd: main_loop: proc 1 (mount) took 0.00 seconds libguestfs: check_for_daemon_cancellation_or_eof: 00 00 00 28 | libguestfs: error: check_for_daemon_cancellation_or_eof: read 0x28 from daemon, expected 0xffffeeee libguestfs: trace: ping_daemon = -1 (error) ><fs>
Confirmed on 1.17.5. A simple reproducer is: guestfish -a /dev/null -v run : mount /dev/vdb /
Upstream fixes: https://github.com/libguestfs/libguestfs/commit/07081591cf9928454148db84828da8a7f39b6c6f https://github.com/libguestfs/libguestfs/commit/cd06ddf4422a31528f4a268dad813938947e1a0d
The fix is included in upstream stable branch version 1.16.5, and in RHEL 6.3 build (same version).
Technical note added. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. New Contents: Cause: The libguestfs daemon would crash when asked to mount a non-existent disk. Consequence: Programs that accidentally tried to mount a non-existent disk would get an unexpected error from libguestfs, and all further operations on the handle would fail. Fix: This crash has been fixed. Result:
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHSA-2012-0774.html