On Mon, Jul 18, 2005 at 10:47:29AM +0100, Peter Stephenson wrote: > Alexey Tourbin wrote: > > [test@solemn test]$ zsh -cx 'HOSTNAME=3D`/bin/hostname`' > > +/etc/zshenv:9> [ -f /etc/profile.d/tmpdir.sh ']' > > +/etc/zshenv:9> . /etc/profile.d/tmpdir.sh > > +/etc/profile.d/tmpdir.sh:3> [ -z /home/test/tmp ']' > > +/etc/profile.d/tmpdir.sh:3> [ ! -d /home/test/tmp ']' > > +/etc/zshenv:10> TMPPREFIX=3D/home/test/tmp/zsh > > +zsh:1> HOSTNAME=3D+zsh:1> /bin/hostname > > [... zsh hangs ...] > > So it looks like it's independent of startup files: are you able to > confirm this? Does it still happen after a rebuild from scratch? I do build from scratch (but I have ccache). Here is strace log for HOSTNAME=`/bin/hostname`: [pid 3629] uname({sys="Linux", node="solemn.turbinal.org", ...}) = 0 [pid 3629] fstat64(1, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 [pid 3629] mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4002a000 [pid 3629] write(1, "solemn.turbinal.org\n", 20) = 20 [pid 3629] munmap(0x4002a000, 4096) = 0 [pid 3629] exit_group(0) = ? fcntl64(12, F_GETFL) = 0 (flags O_RDONLY) fstat64(12, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x401ca000 _llseek(12, 0, 0xbffff324, SEEK_CUR) = -1 ESPIPE (Illegal seek) read(12, "solemn.turbinal.org\n", 4096) = 20 read(12, "", 4096) = 0 close(12) = 0 munmap(0x401ca000, 4096) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD], 8) = 0 kill(3629, SIG_0) = 0 rt_sigprocmask(SIG_SETMASK, ~[HUP INT CHLD], [CHLD], 8) = 0 --- SIGCHLD (Child exited) @ 0 (0) --- rt_sigprocmask(SIG_BLOCK, ~[], ~[HUP INT KILL STOP], 8) = 0 rt_sigprocmask(SIG_SETMASK, ~[HUP INT KILL STOP], ~[KILL STOP], 8) = 0 wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG|WSTOPPED, {ru_utime={0, 10000}, ru_stime={0, 0}, ...}) = 3629 getrusage(RUSAGE_CHILDREN, {ru_utime={0, 10000}, ru_stime={0, 0}, ...}) = 0 wait4(-1, 0xbfffece0, WNOHANG|WSTOPPED, 0xbfffece4) = -1 ECHILD (No child processes) sigreturn() = ? (mask now ~[HUP INT KILL CHLD STOP]) pause(