Bug 584243

Summary: tgz-in/tar-in command hang when run with a vfat img
Product: [Fedora] Fedora Reporter: Pengzhen Cao <pcao>
Component: libguestfsAssignee: Richard W.M. Jones <rjones>
Status: CLOSED DUPLICATE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: high    
Version: 12CC: mbooth, rjones, virt-maint
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 584228 Environment:
Last Closed: 2010-05-12 16:35:15 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 584228    
Bug Blocks:    

Description Pengzhen Cao 2010-04-21 05:37:06 UTC
+++ This bug was initially created as a clone of Bug #584228 +++

Description of problem:
tgz-in/tar-in command will hang when run with a vfat img

Version-Release number of selected component (if applicable):
libguestfs-1.0.85-1.fc12.3.x86_64

How reproducible:
100%

Steps to Reproduce:
1. mount a blank vfat img and run
2. run tgz-in/tar-in xxx.tgz/xxx.tar /
3. guestfish will hang there
  
Actual results:
guestfish hang there

Expected results:
there should not be error message or guestfish hang

Additional info:

I have tried with latest git version 1.3.4, behaviour is different. 
guestfish will not hang but give error message "libguestfs: error: tgz_in: tar subcommand failed on directory: /"
It seems this issue is caused by the chmod cmd

logs for guestfish v1.0.85
><fs> run
><fs> set-verbos 1
set-verbos: unknown command
><fs> set-verbose 1
><fs> set-trace 1
><fs> mount /dev/vda1 /
mount "/dev/vda1" "/"
send_to_daemon: 0x28549e0 g->state = 3, n = 52
recv_from_daemon: 0x28549e0 g->state = 3, size_rtn = 0x7fff3960507c, buf_rtn = 0x7fff39605070
><fs> ll /
ll "/"
send_to_daemon: 0x28549e0 g->state = 3, n = 36
recv_from_daemon: 0x28549e0 g->state = 3, size_rtn = 0x7fff3960507c, buf_rtn = 0x7fff39605070
total 8
drwxr-xr-x  2 root root 8192 Dec 31  1969 .
dr-xr-xr-x 20 root root    0 Mar 12 10:39 ..

><fs> tgz-in file_ops_simple2.tgz /
tgz_in "file_ops_simple2.tgz" "/"
send_to_daemon: 0x28549e0 g->state = 3, n = 36
send_to_daemon: 0x28549e0 g->state = 3, n = 276
send_to_daemon: 0x28549e0 g->state = 3, n = 12
recv_from_daemon: 0x28549e0 g->state = 3, size_rtn = 0x7fff3960507c, buf_rtn = 0x7fff39605070
tar: file_ops/file_ascii: Cannot change ownership to uid 500, gid 500: Operation not permitted
tar: Exiting with failure status due to previous errors
recv_from_daemon: 0x28549e0 g->state = 3, size_rtn = 0x7fff3960507c, buf_rtn = 0x7fff39605070
^C

--- Additional comment from pcao on 2010-04-21 01:35:39 EDT ---

I noticed there are two git commits on Apr.8th that changed the tar-in behavior:
07f4b20ae959069fca41756b0dc103ec5fa99754
de7ef2a0fdcbcddfd35ecb8ee2804e1ca0968454
one comment is:
"(b) Use write instead of fwrite to write out the tar file.  This is
     just because the error handling of write seems to be better
     specified and easier to use."
Is this changeset that fix the hang issue?

But do we need to throw out error message like"
libguestfsd: error:  tgz-in: tar subcommand failed on directory: /" when run with vfat images? I think we should not do chown on vfat images.

Comment 1 Richard W.M. Jones 2010-05-12 16:35:15 UTC
I'm not clear why this was cloned for F-12?

*** This bug has been marked as a duplicate of bug 584228 ***

Comment 2 Pengzhen Cao 2010-05-13 01:40:47 UTC
hmm. I cloned because the behavior of the guestfish in latest git repo and fedora-12 release were different.
on fc12, it will just hang there when tar-in with vfat image, while on latest git version it will not hang but give error msg "chown failed" or so.
Since the root cause is the same, it is ok to close one.