Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

completions tests hang on s390 linux



Hello,

The zsh completion tests (I mean "Test/Y0*.ztst") seem to
hang consistently on s390 and s390x Linux for me.  The
problem doesn't occur on other platforms (i386, alpha, ia64,
ppc and x86_64).  Any ideas what the problem might be?

Inserting a "set -x" into the beginning of the prep of
"Y01completion.ztst" I see in "Test/":

% ../Src/zsh -f ./ztst.zsh ./Y01completion.ztst
:
+ZTST_execchunk:2> eval   comptestinit -z $ZTST_testdir/../Src/zsh
  {
    mkdir dir1
    mkdir dir2
    touch file1
    touch file2
  }
+ZTST_execchunk:2> comptestinit -z /usr/src/redhat/BUILD/zsh-4.0.6/Test/../Src/zsh
+comptestinit:1> setopt extendedglob
+comptestinit:2> [[ -d /usr/src/redhat/BUILD/zsh-4.0.6/Test/Modules/zsh ]]
+comptestinit:2> module_path=( /usr/src/redhat/BUILD/zsh-4.0.6/Test/Modules )
+comptestinit:3> fpath=( /usr/src/redhat/BUILD/zsh-4.0.6/Test/./../Functions/Compctl /usr/src/redhat/BUILD/zsh-4.0.6/Test/./../Functions/Example /usr/src/redhat/BUILD/zsh-4.0.6/Test/./../Functions/Misc /usr/src/redhat/BUILD/zsh-4.0.6/Test/./../Functions/Prompts /usr/src/redhat/BUILD/zsh-4.0.6/Test/./../Functions/Zftp /usr/src/redhat/BUILD/zsh-4.0.6/Test/./../Functions/Zle /usr/src/redhat/BUILD/zsh-4.0.6/Test/./../Completion /usr/src/redhat/BUILD/zsh-4.0.6/Test/./../Completion/AIX/Command /usr/src/redhat/BUILD/zsh-4.0.6/Test/./../Completion/AIX/Type /usr/src/redhat/BUILD/zsh-4.0.6/Test/./../Completion/BSD/Command /usr/src/redhat/BUILD/zsh-4.0.6/Test/./../Completion/Base/Completer /usr/src/redhat/BUILD/zsh-4.0.6/Test/./../Completion/Base/Core /usr/src/redhat/BUILD/zsh-4.0.6/Test/./../Completion/Base/Utility /usr/src/redhat/BUILD/zsh-4.0.6/Test/./../Completion/Base/Widget /usr/src/redhat/BUILD/zsh-4.0.6/Test/./../Completion/Debian/Command /usr/src/redhat/BUILD/zsh-4.0.6/Test/./.
 ./Completion/Debian/Type /usr/src/redhat/BUILD/zsh-4.0.6/Test/./../Completion/Linux/Command /usr/src/redhat/BUILD/zsh-4.0.6/Test/./../Completion/Mandrake/Command /usr/src/redhat/BUILD/zsh-4.0.6/Test/./../Completion/Redhat/Command /usr/src/redhat/BUILD/zsh-4.0.6/Test/./../Completion/Unix/Command /usr/src/redhat/BUILD/zsh-4.0.6/Test/./../Completion/Unix/Type /usr/src/redhat/BUILD/zsh-4.0.6/Test/./../Completion/X/Command /usr/src/redhat/BUILD/zsh-4.0.6/Test/./../Completion/X/Type /usr/src/redhat/BUILD/zsh-4.0.6/Test/./../Completion/X/Utility /usr/src/redhat/BUILD/zsh-4.0.6/Test/./../Completion/Zsh/Command
/usr/src/redhat/BUILD/zsh-4.0.6/Test/./../Completion/Zsh/Context /usr/src/redhat/BUILD/zsh-4.0.6/Test/./../Completion/Zsh/Type )
+comptestinit:7> zmodload -i zsh/zpty
+comptestinit:9> comptest_zsh=zsh
+comptestinit:11> getopts z: opt
+comptestinit:12> case z (z)
+comptestinit:13> comptest_zsh=/usr/src/redhat/BUILD/zsh-4.0.6/Test/../Src/zsh
+comptestinit:11> getopts z: opt
+comptestinit:16> ((  OPTIND > 1  ))
+comptestinit:16> shift 2
+comptestinit:18> export PS1=<PROMPT>
+comptestinit:19> zpty zsh /usr/src/redhat/BUILD/zsh-4.0.6/Test/../Src/zsh -f +Z
+comptestinit:21> zpty -r zsh log1 *<PROMPT>*


at which point it appears to hang.  The strace shows it
waiting in read:

:
lstat("/usr/src/redhat/BUILD/zsh-4.0.6/Test/./../Completion/Zsh/Type", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
getdents64(3, /* 0 entries */, 4096)    = 0
close(3)                                = 0
open("/usr/src/redhat/BUILD/zsh-4.0.6/Test/./../Completion/Linux/", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
getdents64(3, /* 3 entries */, 4096)    = 80
lstat("/usr/src/redhat/BUILD/zsh-4.0.6/Test/./../Completion/Linux/Command", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
getdents64(3, /* 0 entries */, 4096)    = 0
close(3)                                = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
open("/usr/src/redhat/BUILD/zsh-4.0.6/Test/Modules/zsh/zpty.so", O_RDONLY) = 3
read(3, "\177ELF\2\2\1\0\0\0\0\0\0\0\0\0\0\3\0\26\0\0\0\1\0\0\0"..., 1024) = 1024
fstat(3, {st_mode=S_IFREG|0755, st_size=69309, ...}) = 0
mmap(NULL, 21104, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x10001f1f000
mprotect(0x10001f23000, 4720, PROT_NONE) = 0
mmap(0x10001f23000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x3000) = 0x10001f23000
close(3)                                = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD], 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [CHLD], [CHLD], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD], 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [CHLD], [CHLD], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD], 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [CHLD], [CHLD], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [CHLD], [CHLD], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD], 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [CHLD], [CHLD], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD], 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [CHLD], [CHLD], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
open("/dev/ptya0", O_RDWR|O_NOCTTY)     = 3
fork()                                  = 18854
fcntl(3, F_DUPFD, 10)                   = 13
close(3)                                = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD], 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [CHLD], [CHLD], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD], 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [CHLD], [CHLD], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
read(13,  <unfinished ...>


The gdb backtrace shows the call is from zpty.c:443
apparently

(gdb) run
Starting program: /usr/src/redhat/BUILD/zsh-4.0.6/Src/zsh +Z -f ./ztst.zsh ./Y01completion.ztst
./Y01completion.ztst: starting.
 
Program received signal SIGINT, Interrupt.
0x00000100001b1604 in pseudo_check () from /lib64/libc.so.6
(gdb) bt
#0  0x00000100001b1604 in pseudo_check () from /lib64/libc.so.6
#1  0x0000010001f21e72 in checkptycmd (cmd=0x800b0f70) at zpty.c:443


I can't think of anything else to mention, except this is with
gcc-3.2.1-7 and glibc-2.3.1-41.  Let me know if there is any
other information I can give.

Jens Petersen



Messages sorted by: Reverse Date, Date, Thread, Author