Bug 589039 - guestfish read-file cmd will cause daemon hang when read large files
guestfish read-file cmd will cause daemon hang when read large files
Status: CLOSED UPSTREAM
Product: Virtualization Tools
Classification: Community
Component: libguestfs (Show other bugs)
unspecified
All Linux
medium Severity medium
: ---
: ---
Assigned To: Richard W.M. Jones
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2010-05-05 04:09 EDT by Pengzhen Cao
Modified: 2010-05-21 07:33 EDT (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2010-05-12 08:29:22 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Pengzhen Cao 2010-05-05 04:09:27 EDT
Description of problem:
guestfsd will hang when using read-file to read a file large than 4MB

Version-Release number of selected component (if applicable):
libguestfs-1.2.3-1.fc12.6.x86_64, 
latest git version 1.3.9

How reproducible:
100%

Steps to Reproduce:
1. run guestfish, add an image, run and mount the filesystem
2. run read-file /path_to_large_file

  
Actual results:
guestfsd saying "file too large error" and hang, return "check_for_daemon_cancellation_or_eof" error to all following commands

Expected results:
guestfsd should not hang

Additional info:
There is no such issue with cat/more cmds, they will give file too large error only.

logs:
[pcao@pcao-test libguestfs-test]$ guestfish -a file_dir.ext3.raw.old 

Welcome to guestfish, the libguestfs filesystem interactive shell for
editing virtual machine filesystems.

Type: 'help' for help with commands
      'quit' to quit the shell

><fs> run
><fs> set-trace 1
><fs> set-verbose 1
set_verbose true
><fs> mount-options noatime /dev/vol_test/vol_file /
mount_options "noatime" "/dev/vol_test/vol_file" "/"
send_to_daemon: 0x1b138f0 g->state = 3, n = 76
recv_from_daemon: 0x1b138f0 g->state = 3, size_rtn = 0x7fff80eb475c, buf_rtn = 0x7fff80eb4750
[   47.850642] kjournald starting.  Commit interval 5 seconds
[   47.853288] EXT3 FS on dm-1, internal journal
[   47.855138] EXT3-fs: recovery complete.
[   47.856600] EXT3-fs: mounted filesystem with ordered data mode.
><fs> ping-daemon 
ping_daemon
send_to_daemon: 0x1b138f0 g->state = 3, n = 28
recv_from_daemon: 0x1b138f0 g->state = 3, size_rtn = 0x7fff80eb477c, buf_rtn = 0x7fff80eb4770
><fs> read-file /file_ops/file_ascii_long
read_file "/file_ops/file_ascii_long"
send_to_daemon: 0x1b138f0 g->state = 3, n = 60
recv_from_daemon: 0x1b138f0 g->state = 3, size_rtn = 0x7fff80eb472c, buf_rtn = 0x7fff80eb4720
guestfsd: error: /file_ops/file_ascii_long: file is too large for the protocol, use guestfs_download instead
guestfsd: error: guestfsd: failed to encode reply body
(mlibguestfs: error: read_file: /file_ops/file_ascii_long: file is too large for the protocol, use guestfs_download instead
><fs> ping-daemon 
ping_daemon
send_to_daemon: 0x1b138f0 g->state = 3, n = 28
aybe the reply exceeds the maximum message size in the protocol?)
check_for_daemon_cancellation_or_eof: 0x1b138f0 g->state = 3, fd = 4
libguestfs: error: check_for_daemon_cancellation_or_eof: read 0x88 from daemon, expected 0xffffeeee

><fs> ll /
ll "/"
send_to_daemon: 0x1b138f0 g->state = 3, n = 36
check_for_daemon_cancellation_or_eof: 0x1b138f0 g->state = 3, fd = 4
libguestfs: error: check_for_daemon_cancellation_or_eof: read 0x2000f5f5 from daemon, expected 0xffffeeee


><fs> q

closing guestfs handle 0x1b138f0 (state 2)
umount_all
send_to_daemon: 0x1b138f0 g->state = 3, n = 28
check_for_daemon_cancellation_or_eof: 0x1b138f0 g->state = 3, fd = 4
libguestfs: error: check_for_daemon_cancellation_or_eof: read 0x96 from daemon, expected 0xffffeeee

sync
send_to_daemon: 0x1b138f0 g->state = 3, n = 28
check_for_daemon_cancellation_or_eof: 0x1b138f0 g->state = 3, fd = 4
libguestfs: error: check_for_daemon_cancellation_or_eof: read 0x1 from daemon, expected 0xffffeeee

kill_subprocess
sending SIGTERM to process 24740
Comment 1 Richard W.M. Jones 2010-05-07 08:35:42 EDT
Patch posted upstream:
https://www.redhat.com/archives/libguestfs/2010-May/msg00030.html
Comment 3 Fedora Update System 2010-05-14 15:12:56 EDT
libguestfs-1.2.6-1.fc13 has been submitted as an update for Fedora 13.
http://admin.fedoraproject.org/updates/libguestfs-1.2.6-1.fc13
Comment 4 Fedora Update System 2010-05-17 08:28:11 EDT
libguestfs-1.2.7-1.fc12 has been submitted as an update for Fedora 12.
http://admin.fedoraproject.org/updates/libguestfs-1.2.7-1.fc12
Comment 5 Fedora Update System 2010-05-17 08:47:58 EDT
libguestfs-1.2.7-1.el5 has been submitted as an update for Fedora EPEL 5.
http://admin.fedoraproject.org/updates/libguestfs-1.2.7-1.el5
Comment 6 Fedora Update System 2010-05-17 09:00:07 EDT
libguestfs-1.2.7-2.fc13 has been submitted as an update for Fedora 13.
http://admin.fedoraproject.org/updates/libguestfs-1.2.7-2.fc13
Comment 7 Fedora Update System 2010-05-21 07:33:18 EDT
libguestfs-1.2.7-2.fc13.1 has been submitted as an update for Fedora 13.
http://admin.fedoraproject.org/updates/libguestfs-1.2.7-2.fc13.1

Note You need to log in before you can comment on or make changes to this bug.