From: Jingsong F. <jf...@ma...> - 2006-10-23 17:33:50
|
Attached is the strace output file, from=20 "strace -f -o /var/strace hello /mnt/fuse &" Thanks, Jingsong -----Original Message----- From: Miklos Szeredi [mailto:mi...@sz...]=20 Sent: Sunday, October 22, 2006 1:31 PM To: Jingsong Fu Cc: fus...@li... Subject: Re: fuse-2.6.0-rc3 on arm, ls /mnt/fuse hangs the console Importance: Low > I have tried fuse-2.6.0-rc3, and still have one issue. > =20 > hello /mnt/fuse=20 > ls /mnt/fuse > the console hangs. >=20 > However with "hello /mnt/fuse -s" or "hello /mnt/fuse -d", then "ls > /mnt/fuse" works. I have no idea what this could be. Do you have a working 'strace'? Can you try strace -f -o /tmp/strace hello /mnt/fuse Thanks, Miklos |
From: Jingsong F. <jf...@ma...> - 2006-10-23 18:19:08
|
No behavior change(still hangs) after I commented out //#define HAVE_FORK 1 in include/config.h, make clean/make, and reloaded hello and fusermount. Thanks, Jingsong -----Original Message----- From: Miklos Szeredi [mailto:mi...@sz...]=20 Sent: Monday, October 23, 2006 10:44 AM To: Jingsong Fu Cc: fus...@li... Subject: Re: [fuse-devel] fuse-2.6.0-rc3 on arm,ls /mnt/fuse hangs the console > Attached is the strace output file, from=20 > "strace -f -o /var/strace hello /mnt/fuse &" [...] > 214 readlink("/mnt", 0xbe9bfc24, 4095) =3D -1 EINVAL (Invalid argument) > 214 readlink("/mnt/fuse", 0xbe9bfc24, 4095) =3D -1 EINVAL (Invalid argument) > 214 socketpair(PF_FILE, SOCK_STREAM, 0, [4, 5]) =3D 0 > 214 fork() =3D 215 > 214 close(4) =3D 0 > 214 recvmsg(5, {msg_name(0)=3DNULL, msg_iov(1)=3D[{"\0", 1}], msg_controllen=3D16, {cmsg_len=3D16, cmsg_level=3DSOL_SOCKET, cmsg_type=3DSCM_RIGHTS, {4}}, msg_flags=3D0}, 0) =3D 1 > 214 close(5) =3D 0 > 214 wait4(215, Looks like strace doesn't follow the fork, even though the fork (and it seems fusermount as well) suceeds. I still don't know why this is, one thing you could try is commenting out the following line in include/config.h: /* Define to 1 if you have the `fork' function. */ #define HAVE_FORK 1 Thanks, Miklos |
From: Miklos S. <mi...@sz...> - 2006-10-23 20:05:51
|
> No behavior change(still hangs) after I commented out //#define > HAVE_FORK 1 in include/config.h, make clean/make, and reloaded hello and > fusermount. How about libfuse? The code in question is in the fuse library. Can you repeat the strace with the new code? Thanks, Miklos |
From: Jingsong F. <jf...@ma...> - 2006-10-23 20:36:25
|
I am using --enable-shared=3Dno, so libfuse is statically linked.=20 It seems fusermount was not finished this time, see the ps as follows, >ps=20 ...... 206 root 316 S /sbin/klogd -n 223 root 396 S strace -f -o /var/strace.log10 hello /mnt/fuse 224 root 296 T hello /mnt/fuse 225 root Z [fusermount] Starce output file attached. Thanks, Jingsong -----Original Message----- From: Miklos Szeredi [mailto:mi...@sz...]=20 Sent: Monday, October 23, 2006 1:05 PM To: Jingsong Fu Cc: fus...@li... Subject: Re: [fuse-devel] fuse-2.6.0-rc3 on arm,ls /mnt/fuse hangs the console Importance: Low > No behavior change(still hangs) after I commented out //#define > HAVE_FORK 1 in include/config.h, make clean/make, and reloaded hello and > fusermount. How about libfuse? The code in question is in the fuse library. Can you repeat the strace with the new code? Thanks, Miklos |
From: Miklos S. <mi...@sz...> - 2006-10-24 08:31:54
|
> I am using --enable-shared=no, so libfuse is statically linked. Ah, OK. > It seems fusermount was not finished this time, see the ps as follows, > >ps > ...... > 206 root 316 S /sbin/klogd -n > 223 root 396 S strace -f -o /var/strace.log10 hello /mnt/fuse > 224 root 296 T hello /mnt/fuse > 225 root Z [fusermount] > > Starce output file attached. Fusermount _has_ exited, it's in a Z (zombie) state, which means that it's parent hasn't yet called wait/wait3/wait4 on it. But according to the strace it does call wait4() and is sleeping in there. This is a contradiction, wait4() may only sleep if the child hasn't exited, which is not the case here. So there's something wrong. The other strange thing is, that undifining HAVE_FORK should have replaced the fork() call with vfork(), and strace doesn't show that either. My guess is that you have something wrong with the build environment. Can you try compiling some other program (which does fork/exec) for this platform and try that out? Thanks, Miklos |
From: Jingsong F. <jf...@ma...> - 2006-10-23 20:55:52
|
More info:=20 when "ls /mnt/fuse &" was issued,=20 # ls /mnt/fuse &gotls /mnt/fuse & unknown 21: /0x40/0x70/0x73/0x08/0x08/0x08/0x08/0x6c/0x73/0x20/0x2f/0x6d/0x6e/0x74/0 x2f/0x66 # got unknown 0: /0x00/0x70/0x73/0x08/0x08/0x08/0x08/0x6c/0x73/0x20/0x2f/0x6d/0x6e/0x74/0 x2f/0x66 ------------ I tried to dump the kernel stack, the following is the ls's stack trace, it seemed ls was trying to get a request, and got stalled. ----> ls S C0204848 0 242 204 (NOTLB) stack:[<c0204300>] (schedule+0x0/0x66c) from [<bf000240>] (fuse_get_req+0xd0/0x160 [fuse]) [<bf000170>] (fuse_get_req+0x0/0x160 [fuse]) from [<bf0031c4>] (fuse_do_getattr+0x24/0xd8 [fuse]) [<bf0031a0>] (fuse_do_getattr+0x0/0xd8 [fuse]) from [<bf003bc8>] (fuse_getattr+0x80/0x9c [fuse]) r9 =3D C0E3E000 r8 =3D BF003B48 r7 =3D C0E3FF4C r6 =3D C0E3FF4C r5 =3D C0F78E60 r4 =3D C0F78E60 [<bf003b48>] (fuse_getattr+0x0/0x9c [fuse]) from [<c007fbf4>] (vfs_getattr+0x2c/0x94) r6 =3D BEAA6EC3 r5 =3D C0F78E60 r4 =3D 00000000 [<c007fbc8>] (vfs_getattr+0x0/0x94) from [<c007fd0c>] (vfs_lstat_fd+0x3c/0x54) r8 =3D C0021164 r7 =3D 000000C4 r6 =3D BEAA6EC3 r5 =3D C0E3FEE0 r4 =3D 00000000 [<c007fcd0>] (vfs_lstat_fd+0x0/0x54) from [<c007fd40>] (vfs_lstat+0x1c/0x20) r5 =3D C0E3FF4C r4 =3D BEAA6C3C [<c007fd24>] (vfs_lstat+0x0/0x20) from [<c0080318>] (sys_lstat64+0x20/0x44) [<c00802f8>] (sys_lstat64+0x0/0x44) from [<c0020fc0>] (ret_fast_syscall+0x0/0x2c) r5 =3D BEAA6EC3 r4 =3D 00000000 -----Original Message----- From: Jingsong Fu=20 Sent: Monday, October 23, 2006 1:35 PM To: 'Miklos Szeredi' Cc: fus...@li... Subject: RE: [fuse-devel] fuse-2.6.0-rc3 on arm,ls /mnt/fuse hangs the console I am using --enable-shared=3Dno, so libfuse is statically linked.=20 It seems fusermount was not finished this time, see the ps as follows, >ps=20 ...... 206 root 316 S /sbin/klogd -n 223 root 396 S strace -f -o /var/strace.log10 hello /mnt/fuse 224 root 296 T hello /mnt/fuse 225 root Z [fusermount] Starce output file attached. Thanks, Jingsong -----Original Message----- From: Miklos Szeredi [mailto:mi...@sz...]=20 Sent: Monday, October 23, 2006 1:05 PM To: Jingsong Fu Cc: fus...@li... Subject: Re: [fuse-devel] fuse-2.6.0-rc3 on arm,ls /mnt/fuse hangs the console Importance: Low > No behavior change(still hangs) after I commented out //#define > HAVE_FORK 1 in include/config.h, make clean/make, and reloaded hello and > fusermount. How about libfuse? The code in question is in the fuse library. Can you repeat the strace with the new code? Thanks, Miklos |
From: Jingsong F. <jf...@ma...> - 2006-10-24 17:40:37
|
Miklos, There seems an issue on fork/exec when I ran the attached program fork_exec.c, and I am investigating the issue. It outputs as follows, # fork_test Parent Process: Global variable: 3 Stack variable: 21 # l: applet not found My final goal is to run djmount, can I use fuse -s option for djmount? It seems djmount does not pass -s to fuse. Another question, why fuse -d is working on my system, does it bypass the fork? Thanks, Jingsong -----Original Message----- From: Miklos Szeredi [mailto:mi...@sz...]=20 Sent: Tuesday, October 24, 2006 1:32 AM To: Jingsong Fu Cc: fus...@li... Subject: Re: [fuse-devel] fuse-2.6.0-rc3 on arm,ls /mnt/fuse hangs the console Importance: Low > I am using --enable-shared=3Dno, so libfuse is statically linked.=20 Ah, OK. > It seems fusermount was not finished this time, see the ps as follows, > >ps=20 > ...... > 206 root 316 S /sbin/klogd -n > 223 root 396 S strace -f -o /var/strace.log10 hello /mnt/fuse > 224 root 296 T hello /mnt/fuse > 225 root Z [fusermount] >=20 > Starce output file attached. Fusermount _has_ exited, it's in a Z (zombie) state, which means that it's parent hasn't yet called wait/wait3/wait4 on it. But according to the strace it does call wait4() and is sleeping in there. This is a contradiction, wait4() may only sleep if the child hasn't exited, which is not the case here. So there's something wrong. The other strange thing is, that undifining HAVE_FORK should have replaced the fork() call with vfork(), and strace doesn't show that either. My guess is that you have something wrong with the build environment. Can you try compiling some other program (which does fork/exec) for this platform and try that out? Thanks, Miklos |
From: Jingsong F. <jf...@ma...> - 2006-10-24 18:48:15
|
> There seems an issue on fork/exec when I ran the attached program=20 > fork_exec.c, and I am investigating the issue. The issue was my busybox does not handle execl() correctly. After I changed the program to use execvp(), the same call used in fuse_mount(), the fork_exec ran normally.=20 # fork_test Child Process: : call execvp() Parent Process: Global variable: 2 Stack variable: 20 # drwxrwxrwx 2 root 500 4096 Oct 24 2006 . drwxrwxrwx 16 default default 4096 Oct 23 2006 .. -rwxrwxrwx 1 root 500 0 Sep 18 2006 .bash_history -rwxrwxrwx 1 root 500 175 Sep 18 2006 .bash_logout -rwxrwxrwx 1 root 500 161 Sep 18 2006 .bash_profile -rwxrwxrwx 1 root 500 1711 Sep 18 2006 .bashrc -rw-r--r-- 1 root root 19 Oct 24 2006 out The new fork_exec.c is attached. Jingsong -----Original Message----- From: Jingsong Fu=20 Sent: Tuesday, October 24, 2006 10:40 AM To: 'Miklos Szeredi' Cc: fus...@li... Subject: RE: [fuse-devel] fuse-2.6.0-rc3 on arm,ls /mnt/fuse hangs the console Miklos, There seems an issue on fork/exec when I ran the attached program fork_exec.c, and I am investigating the issue. It outputs as follows, # fork_test Parent Process: Global variable: 3 Stack variable: 21 # l: applet not found My final goal is to run djmount, can I use fuse -s option for djmount? It seems djmount does not pass -s to fuse. Another question, why fuse -d is working on my system, does it bypass the fork? Thanks, Jingsong -----Original Message----- From: Miklos Szeredi [mailto:mi...@sz...]=20 Sent: Tuesday, October 24, 2006 1:32 AM To: Jingsong Fu Cc: fus...@li... Subject: Re: [fuse-devel] fuse-2.6.0-rc3 on arm,ls /mnt/fuse hangs the console Importance: Low > I am using --enable-shared=3Dno, so libfuse is statically linked.=20 Ah, OK. > It seems fusermount was not finished this time, see the ps as follows, > >ps=20 > ...... > 206 root 316 S /sbin/klogd -n > 223 root 396 S strace -f -o /var/strace.log10 hello /mnt/fuse > 224 root 296 T hello /mnt/fuse > 225 root Z [fusermount] >=20 > Starce output file attached. Fusermount _has_ exited, it's in a Z (zombie) state, which means that it's parent hasn't yet called wait/wait3/wait4 on it. But according to the strace it does call wait4() and is sleeping in there. This is a contradiction, wait4() may only sleep if the child hasn't exited, which is not the case here. So there's something wrong. The other strange thing is, that undifining HAVE_FORK should have replaced the fork() call with vfork(), and strace doesn't show that either. My guess is that you have something wrong with the build environment. Can you try compiling some other program (which does fork/exec) for this platform and try that out? Thanks, Miklos |
From: Miklos S. <mi...@sz...> - 2006-10-24 19:05:55
|
> The issue was my busybox does not handle execl() correctly. I think the problem is rather that you didn't invoke execl() correctly. It should have been like this: execReturn = execl("/bin/ls", "/bin/ls", NULL); > After I changed the program to use execvp(), the same call used in > fuse_mount(), the fork_exec ran normally. Please also add waitpid(pID, NULL, 0); to the parent branch, and check if that works correctly. Thanks, Miklos |
From: Jingsong F. <jf...@ma...> - 2006-10-24 22:05:23
|
Both execl("/bin/ls", "/bin/ls", "-l", NULL) and execvp() are fine with waitpid() added in parent branch.=20 # fork_test Child Process: : call execl(): drwxr-xr-x 2 root root 4096 Oct 12 2006 fuse -rw-r--r-- 1 root root 4251 Oct 23 2006 hello.log Parent Process: Global variable: 2 Stack variable: 20 However when using strace with -f option, console hangs (without -f, it runs to the end). The ps showed the similar result as that of strace -f hello /mnt/fuse. So this might be a bug in strace. # strace -f -o /var/log.s fork_test Child Process: : call execl(): drwxr-xr-x 2 root root 4096 Oct 12 2006 fuse -rw-r--r-- 1 root root 4251 Oct 23 2006 hello.log Ps: 313 root 376 S strace -f -o /var/log.s fork_test 314 root 160 T fork_test 315 root Z [ls] -----Original Message----- From: Miklos Szeredi [mailto:mi...@sz...]=20 Sent: Tuesday, October 24, 2006 12:05 PM To: Jingsong Fu Cc: fus...@li... Subject: Re: [fuse-devel] fuse-2.6.0-rc3 on arm,ls /mnt/fuse hangs the console > The issue was my busybox does not handle execl() correctly. I think the problem is rather that you didn't invoke execl() correctly. It should have been like this: execReturn =3D execl("/bin/ls", "/bin/ls", NULL); > After I changed the program to use execvp(), the same call used in > fuse_mount(), the fork_exec ran normally. Please also add=20 waitpid(pID, NULL, 0); to the parent branch, and check if that works correctly. Thanks, Miklos |
From: Miklos S. <mi...@sz...> - 2006-10-25 08:43:30
|
> However when using strace with -f option, console hangs (without -f, it > runs to the end). The ps showed the similar result as that of strace -f > hello /mnt/fuse. So this might be a bug in strace. Yes, and it's rather unfortunate, since without strace it's much harder to debug the original problem. My next guess is that it's related to threading support in uClibc. There have been some changes to the threading in fuse-2.6.0, so you might try the hello example from the 2.5.3 release, but using the kernel module from the 2.6.0 release. Thanks, Miklos |
From: zhanglinbao2000 <zha...@16...> - 2006-10-25 12:16:49
|
aGVsbG8gLCBqaW5nc29uZyAsIA0KDQpIb3cgY2FuIHlvdSBjb21waWxlIHN0cmFjZSBzb3VyY2Ug Y29kZSBvbiBBUk0gPyAgDQpEbyB5b3UgdXNlIGFybS1saW51eC1nY2MgPyANCg0KVGhhbmtzIGZv ciB5b3VyIHJlcGx5IC4gIHBsZWFzZSBtYWlsIHRvIG1lIDogYm9iX3poYW5nMjAwNEAxNjMuY29t ICANCg0KDQoNCi0tLS0tIE9yaWdpbmFsIE1lc3NhZ2UgLS0tLS0gDQpGcm9tOiAiSmluZ3Nvbmcg RnUiIDxqZnVAbWFydmVsbC5jb20+DQpUbzogIk1pa2xvcyBTemVyZWRpIiA8bWlrbG9zQHN6ZXJl ZGkuaHU+DQpDYzogPGZ1c2UtZGV2ZWxAbGlzdHMuc291cmNlZm9yZ2UubmV0Pg0KU2VudDogV2Vk bmVzZGF5LCBPY3RvYmVyIDI1LCAyMDA2IDY6MDQgQU0NClN1YmplY3Q6IFJlOiBbZnVzZS1kZXZl bF0gZnVzZS0yLjYuMC1yYzMgb24gYXJtLGxzIC9tbnQvZnVzZSBoYW5ncyB0aGUgY29uc29sZQ0K DQoNCj4gQm90aCBleGVjbCgiL2Jpbi9scyIsICIvYmluL2xzIiwgIi1sIiwgTlVMTCkgYW5kIGV4 ZWN2cCgpIGFyZSBmaW5lIHdpdGgNCj4gd2FpdHBpZCgpIGFkZGVkIGluIHBhcmVudCBicmFuY2gu IA0KPiANCj4gIyBmb3JrX3Rlc3QNCj4gQ2hpbGQgUHJvY2VzczogOiBjYWxsIGV4ZWNsKCk6DQo+ IGRyd3hyLXhyLXggICAgMiByb290ICAgICByb290ICAgICAgICAgNDA5NiBPY3QgMTIgIDIwMDYg ZnVzZQ0KPiAtcnctci0tci0tICAgIDEgcm9vdCAgICAgcm9vdCAgICAgICAgIDQyNTEgT2N0IDIz ICAyMDA2IGhlbGxvLmxvZw0KPiBQYXJlbnQgUHJvY2VzczogR2xvYmFsIHZhcmlhYmxlOiAyIFN0 YWNrIHZhcmlhYmxlOiAyMA0KPiANCj4gSG93ZXZlciB3aGVuIHVzaW5nIHN0cmFjZSB3aXRoIC1m IG9wdGlvbiwgY29uc29sZSBoYW5ncyAod2l0aG91dCAtZiwgaXQNCj4gcnVucyB0byB0aGUgZW5k KS4gVGhlIHBzIHNob3dlZCB0aGUgc2ltaWxhciByZXN1bHQgYXMgdGhhdCBvZiBzdHJhY2UgLWYN Cj4gaGVsbG8gL21udC9mdXNlLiBTbyB0aGlzIG1pZ2h0IGJlIGEgYnVnIGluIHN0cmFjZS4NCj4g DQo+ICMgc3RyYWNlIC1mIC1vIC92YXIvbG9nLnMgZm9ya190ZXN0DQo+IENoaWxkIFByb2Nlc3M6 IDogY2FsbCBleGVjbCgpOg0KPiBkcnd4ci14ci14ICAgIDIgcm9vdCAgICAgcm9vdCAgICAgICAg IDQwOTYgT2N0IDEyICAyMDA2IGZ1c2UNCj4gLXJ3LXItLXItLSAgICAxIHJvb3QgICAgIHJvb3Qg ICAgICAgICA0MjUxIE9jdCAyMyAgMjAwNiBoZWxsby5sb2cNCj4gDQo+IFBzOg0KPiAgIDMxMyBy b290ICAgICAgICAzNzYgUyAgIHN0cmFjZSAtZiAtbyAvdmFyL2xvZy5zIGZvcmtfdGVzdA0KPiAg IDMxNCByb290ICAgICAgICAxNjAgVCAgIGZvcmtfdGVzdA0KPiAgIDMxNSByb290ICAgICAgICAg ICAgWiAgIFtsc10NCj4gDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE1p a2xvcyBTemVyZWRpIFttYWlsdG86bWlrbG9zQHN6ZXJlZGkuaHVdIA0KPiBTZW50OiBUdWVzZGF5 LCBPY3RvYmVyIDI0LCAyMDA2IDEyOjA1IFBNDQo+IFRvOiBKaW5nc29uZyBGdQ0KPiBDYzogZnVz ZS1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQNCj4gU3ViamVjdDogUmU6IFtmdXNlLWRldmVs XSBmdXNlLTIuNi4wLXJjMyBvbiBhcm0sbHMgL21udC9mdXNlIGhhbmdzIHRoZQ0KPiBjb25zb2xl DQo+IA0KPiA+IFRoZSBpc3N1ZSB3YXMgbXkgYnVzeWJveCBkb2VzIG5vdCBoYW5kbGUgZXhlY2wo KSBjb3JyZWN0bHkuDQo+IA0KPiBJIHRoaW5rIHRoZSBwcm9ibGVtIGlzIHJhdGhlciB0aGF0IHlv dSBkaWRuJ3QgaW52b2tlIGV4ZWNsKCkNCj4gY29ycmVjdGx5LiAgSXQgc2hvdWxkIGhhdmUgYmVl biBsaWtlIHRoaXM6DQo+IA0KPiAgICAgICBleGVjUmV0dXJuID0gZXhlY2woIi9iaW4vbHMiLCAi L2Jpbi9scyIsIE5VTEwpOw0KPiANCj4gPiBBZnRlciBJIGNoYW5nZWQgdGhlIHByb2dyYW0gdG8g dXNlIGV4ZWN2cCgpLCB0aGUgc2FtZSBjYWxsIHVzZWQgaW4NCj4gPiBmdXNlX21vdW50KCksIHRo ZSBmb3JrX2V4ZWMgcmFuIG5vcm1hbGx5Lg0KPiANCj4gUGxlYXNlIGFsc28gYWRkIA0KPiANCj4g ICAgICAgd2FpdHBpZChwSUQsIE5VTEwsIDApOw0KPiANCj4gdG8gdGhlIHBhcmVudCBicmFuY2gs IGFuZCBjaGVjayBpZiB0aGF0IHdvcmtzIGNvcnJlY3RseS4NCj4gDQo+IFRoYW5rcywNCj4gTWlr bG9zDQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gVXNpbmcgVG9tY2F0IGJ1dCBuZWVkIHRvIGRvIG1v cmU/IE5lZWQgdG8gc3VwcG9ydCB3ZWIgc2VydmljZXMsIHNlY3VyaXR5Pw0KPiBHZXQgc3R1ZmYg ZG9uZSBxdWlja2x5IHdpdGggcHJlLWludGVncmF0ZWQgdGVjaG5vbG9neSB0byBtYWtlIHlvdXIg am9iIGVhc2llcg0KPiBEb3dubG9hZCBJQk0gV2ViU3BoZXJlIEFwcGxpY2F0aW9uIFNlcnZlciB2 LjEuMC4xIGJhc2VkIG9uIEFwYWNoZSBHZXJvbmltbw0KPiBodHRwOi8vc2VsLmFzLXVzLmZhbGth Zy5uZXQvc2VsP2NtZD1sbmsma2lkPTEyMDcwOSZiaWQ9MjYzMDU3JmRhdD0xMjE2NDINCj4gX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gZnVzZS1kZXZl bCBtYWlsaW5nIGxpc3QNCj4gZnVzZS1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQNCj4gaHR0 cHM6Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vZnVzZS1kZXZlbA0KPiAN Cj4gDQo+IF9fX19fX19fX18gTk9EMzIgMS4xODIzICgyMDA2MTAyMikgSW5mb3JtYXRpb24gX19f X19fX19fXw0KPiANCj4gVGhpcyBtZXNzYWdlIHdhcyBjaGVja2VkIGJ5IE5PRDMyIGFudGl2aXJ1 cyBzeXN0ZW0uDQo+IGh0dHA6Ly93d3cubm9kMzJjbi5jb20NCj4gDQo+IA== |
From: Jingsong F. <jf...@ma...> - 2006-10-25 16:28:33
|
Tried 2.6.0-rc3 fuse.ko with 2.5.3 hello/fusermount, and it did not help. How could "hello /mnt/fuse -d" work, it uses multithread too? Jingsong -----Original Message----- From: Miklos Szeredi [mailto:mi...@sz...]=20 Sent: Wednesday, October 25, 2006 1:43 AM To: Jingsong Fu Cc: fus...@li... Subject: Re: [fuse-devel] fuse-2.6.0-rc3 on arm,ls /mnt/fuse hangs the console Importance: Low > However when using strace with -f option, console hangs (without -f, it > runs to the end). The ps showed the similar result as that of strace -f > hello /mnt/fuse. So this might be a bug in strace. Yes, and it's rather unfortunate, since without strace it's much harder to debug the original problem. My next guess is that it's related to threading support in uClibc. There have been some changes to the threading in fuse-2.6.0, so you might try the hello example from the 2.5.3 release, but using the kernel module from the 2.6.0 release. Thanks, Miklos |
From: Miklos S. <mi...@sz...> - 2006-10-25 18:35:53
|
> Tried 2.6.0-rc3 fuse.ko with 2.5.3 hello/fusermount, and it did not > help. OK, thanks. > How could "hello /mnt/fuse -d" work, it uses multithread too? That's right. I have no clue about this. Miklos |
From: Miklos S. <mi...@sz...> - 2006-10-23 17:44:40
|
> Attached is the strace output file, from > "strace -f -o /var/strace hello /mnt/fuse &" [...] > 214 readlink("/mnt", 0xbe9bfc24, 4095) = -1 EINVAL (Invalid argument) > 214 readlink("/mnt/fuse", 0xbe9bfc24, 4095) = -1 EINVAL (Invalid argument) > 214 socketpair(PF_FILE, SOCK_STREAM, 0, [4, 5]) = 0 > 214 fork() = 215 > 214 close(4) = 0 > 214 recvmsg(5, {msg_name(0)=NULL, msg_iov(1)=[{"\0", 1}], msg_controllen=16, {cmsg_len=16, cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, {4}}, msg_flags=0}, 0) = 1 > 214 close(5) = 0 > 214 wait4(215, Looks like strace doesn't follow the fork, even though the fork (and it seems fusermount as well) suceeds. I still don't know why this is, one thing you could try is commenting out the following line in include/config.h: /* Define to 1 if you have the `fork' function. */ #define HAVE_FORK 1 Thanks, Miklos |