zsh-workers
 help / color / mirror / code / Atom feed
* fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" then resume hangs
@ 2001-06-11 15:11 Timothy Miller
  2001-06-12  8:15 ` Sven Wischnowsky
  0 siblings, 1 reply; 25+ messages in thread
From: Timothy Miller @ 2001-06-11 15:11 UTC (permalink / raw)
  To: zsh-workers

[-- Attachment #1: Type: text/plain, Size: 595 bytes --]

I continue to not be a subscriber to this list :-)

If I invoke zsh as "zsh-4.0.1 -f" and then run "ls -l|less" on irix 6.3
or 6.5, control-z to suspend, and then "fg" to resume, the shell prints out

[1]  + done       ls -l | 
       continued  less

and then hangs, unresponsive to all input (ctrl-c, ctrl-z, ctrl-\, other keys,
etc). I include the results of Util/reporter at the end of this email. This
bug does not happen on Solaris 2.7, AIX 4.3.2, or redhat 7.0 linux 2.2.16.
The version of less I'm using is 290 on irix 6.3 and 332 on irix 6.5,
solaris, and ix, and 358 on linux.
   Tim


[-- Attachment #2: . ./Util/reporter --]
[-- Type: application/octet-stream, Size: 16661 bytes --]

# START zsh saveset
# uname:  IRIX water 6.3 12161207 IP32

# Aliases.

alias run-help=man
alias which-command=whence

# Key bindings.

bindkey -N emacs
bindkey -N main
bindkey -N vicmd
bindkey -N viins

bindkey -M emacs "^@" set-mark-command
bindkey -M emacs "^A" beginning-of-line
bindkey -M emacs "^B" backward-char
bindkey -M emacs "^D" delete-char-or-list
bindkey -M emacs "^E" end-of-line
bindkey -M emacs "^F" forward-char
bindkey -M emacs "^G" send-break
bindkey -M emacs "^H" backward-delete-char
bindkey -M emacs "^I" expand-or-complete
bindkey -M emacs "^J" accept-line
bindkey -M emacs "^K" kill-line
bindkey -M emacs "^L" clear-screen
bindkey -M emacs "^M" accept-line
bindkey -M emacs "^N" down-line-or-history
bindkey -M emacs "^O" accept-line-and-down-history
bindkey -M emacs "^P" up-line-or-history
bindkey -M emacs "^Q" push-line
bindkey -M emacs "^R" history-incremental-search-backward
bindkey -M emacs "^S" history-incremental-search-forward
bindkey -M emacs "^T" transpose-chars
bindkey -M emacs "^U" kill-whole-line
bindkey -M emacs "^V" quoted-insert
bindkey -M emacs "^W" backward-kill-word
bindkey -M emacs "^X^B" vi-match-bracket
bindkey -M emacs "^X^F" vi-find-next-char
bindkey -M emacs "^X^J" vi-join
bindkey -M emacs "^X^K" kill-buffer
bindkey -M emacs "^X^N" infer-next-history
bindkey -M emacs "^X^O" overwrite-mode
bindkey -M emacs "^X^U" undo
bindkey -M emacs "^X^V" vi-cmd-mode
bindkey -M emacs "^X^X" exchange-point-and-mark
bindkey -M emacs "^X*" expand-word
bindkey -M emacs "^X=" what-cursor-position
bindkey -M emacs "^XG" list-expand
bindkey -M emacs "^Xg" list-expand
bindkey -M emacs "^Xr" history-incremental-search-backward
bindkey -M emacs "^Xs" history-incremental-search-forward
bindkey -M emacs "^Xu" undo
bindkey -M emacs "^Y" yank
bindkey -M emacs "^[^D" list-choices
bindkey -M emacs "^[^G" send-break
bindkey -M emacs "^[^H" backward-kill-word
bindkey -M emacs "^[^I" self-insert-unmeta
bindkey -M emacs "^[^J" self-insert-unmeta
bindkey -M emacs "^[^L" clear-screen
bindkey -M emacs "^[^M" self-insert-unmeta
bindkey -M emacs "^[^_" copy-prev-word
bindkey -M emacs "^[ " expand-history
bindkey -M emacs "^[!" expand-history
bindkey -M emacs "^[\"" quote-region
bindkey -M emacs "^[\$" spell-word
bindkey -M emacs "^['" quote-line
bindkey -M emacs "^[-" neg-argument
bindkey -M emacs "^[." insert-last-word
bindkey -M emacs "^[0" digit-argument
bindkey -M emacs "^[1" digit-argument
bindkey -M emacs "^[2" digit-argument
bindkey -M emacs "^[3" digit-argument
bindkey -M emacs "^[4" digit-argument
bindkey -M emacs "^[5" digit-argument
bindkey -M emacs "^[6" digit-argument
bindkey -M emacs "^[7" digit-argument
bindkey -M emacs "^[8" digit-argument
bindkey -M emacs "^[9" digit-argument
bindkey -M emacs "^[<" beginning-of-buffer-or-history
bindkey -M emacs "^[>" end-of-buffer-or-history
bindkey -M emacs "^[?" which-command
bindkey -M emacs "^[A" accept-and-hold
bindkey -M emacs "^[B" backward-word
bindkey -M emacs "^[C" capitalize-word
bindkey -M emacs "^[D" kill-word
bindkey -M emacs "^[F" forward-word
bindkey -M emacs "^[G" get-line
bindkey -M emacs "^[H" run-help
bindkey -M emacs "^[L" down-case-word
bindkey -M emacs "^[N" history-search-forward
bindkey -M emacs "^[OA" up-line-or-history
bindkey -M emacs "^[OB" down-line-or-history
bindkey -M emacs "^[OC" forward-char
bindkey -M emacs "^[OD" backward-char
bindkey -M emacs "^[P" history-search-backward
bindkey -M emacs "^[Q" push-line
bindkey -M emacs "^[S" spell-word
bindkey -M emacs "^[T" transpose-words
bindkey -M emacs "^[U" up-case-word
bindkey -M emacs "^[W" copy-region-as-kill
bindkey -M emacs "^[[A" up-line-or-history
bindkey -M emacs "^[[B" down-line-or-history
bindkey -M emacs "^[[C" forward-char
bindkey -M emacs "^[[D" backward-char
bindkey -M emacs "^[_" insert-last-word
bindkey -M emacs "^[a" accept-and-hold
bindkey -M emacs "^[b" backward-word
bindkey -M emacs "^[c" capitalize-word
bindkey -M emacs "^[d" kill-word
bindkey -M emacs "^[f" forward-word
bindkey -M emacs "^[g" get-line
bindkey -M emacs "^[h" run-help
bindkey -M emacs "^[l" down-case-word
bindkey -M emacs "^[n" history-search-forward
bindkey -M emacs "^[p" history-search-backward
bindkey -M emacs "^[q" push-line
bindkey -M emacs "^[s" spell-word
bindkey -M emacs "^[t" transpose-words
bindkey -M emacs "^[u" up-case-word
bindkey -M emacs "^[w" copy-region-as-kill
bindkey -M emacs "^[x" execute-named-cmd
bindkey -M emacs "^[y" yank-pop
bindkey -M emacs "^[z" execute-last-named-cmd
bindkey -M emacs "^[|" vi-goto-column
bindkey -M emacs "^[^?" backward-kill-word
bindkey -M emacs "^_" undo
bindkey -R -M emacs " "-"~" self-insert
bindkey -M emacs "^?" backward-delete-char
bindkey -R -M emacs "\M-^@"-"\M-^?" self-insert

bindkey "^@" set-mark-command
bindkey "^A" beginning-of-line
bindkey "^B" backward-char
bindkey "^D" delete-char-or-list
bindkey "^E" end-of-line
bindkey "^F" forward-char
bindkey "^G" send-break
bindkey "^H" backward-delete-char
bindkey "^I" expand-or-complete
bindkey "^J" accept-line
bindkey "^K" kill-line
bindkey "^L" clear-screen
bindkey "^M" accept-line
bindkey "^N" down-line-or-history
bindkey "^O" accept-line-and-down-history
bindkey "^P" up-line-or-history
bindkey "^Q" push-line
bindkey "^R" history-incremental-search-backward
bindkey "^S" history-incremental-search-forward
bindkey "^T" transpose-chars
bindkey "^U" kill-whole-line
bindkey "^V" quoted-insert
bindkey "^W" backward-kill-word
bindkey "^X^B" vi-match-bracket
bindkey "^X^F" vi-find-next-char
bindkey "^X^J" vi-join
bindkey "^X^K" kill-buffer
bindkey "^X^N" infer-next-history
bindkey "^X^O" overwrite-mode
bindkey "^X^U" undo
bindkey "^X^V" vi-cmd-mode
bindkey "^X^X" exchange-point-and-mark
bindkey "^X*" expand-word
bindkey "^X=" what-cursor-position
bindkey "^XG" list-expand
bindkey "^Xg" list-expand
bindkey "^Xr" history-incremental-search-backward
bindkey "^Xs" history-incremental-search-forward
bindkey "^Xu" undo
bindkey "^Y" yank
bindkey "^[^D" list-choices
bindkey "^[^G" send-break
bindkey "^[^H" backward-kill-word
bindkey "^[^I" self-insert-unmeta
bindkey "^[^J" self-insert-unmeta
bindkey "^[^L" clear-screen
bindkey "^[^M" self-insert-unmeta
bindkey "^[^_" copy-prev-word
bindkey "^[ " expand-history
bindkey "^[!" expand-history
bindkey "^[\"" quote-region
bindkey "^[\$" spell-word
bindkey "^['" quote-line
bindkey "^[-" neg-argument
bindkey "^[." insert-last-word
bindkey "^[0" digit-argument
bindkey "^[1" digit-argument
bindkey "^[2" digit-argument
bindkey "^[3" digit-argument
bindkey "^[4" digit-argument
bindkey "^[5" digit-argument
bindkey "^[6" digit-argument
bindkey "^[7" digit-argument
bindkey "^[8" digit-argument
bindkey "^[9" digit-argument
bindkey "^[<" beginning-of-buffer-or-history
bindkey "^[>" end-of-buffer-or-history
bindkey "^[?" which-command
bindkey "^[A" accept-and-hold
bindkey "^[B" backward-word
bindkey "^[C" capitalize-word
bindkey "^[D" kill-word
bindkey "^[F" forward-word
bindkey "^[G" get-line
bindkey "^[H" run-help
bindkey "^[L" down-case-word
bindkey "^[N" history-search-forward
bindkey "^[OA" up-line-or-history
bindkey "^[OB" down-line-or-history
bindkey "^[OC" forward-char
bindkey "^[OD" backward-char
bindkey "^[P" history-search-backward
bindkey "^[Q" push-line
bindkey "^[S" spell-word
bindkey "^[T" transpose-words
bindkey "^[U" up-case-word
bindkey "^[W" copy-region-as-kill
bindkey "^[[A" up-line-or-history
bindkey "^[[B" down-line-or-history
bindkey "^[[C" forward-char
bindkey "^[[D" backward-char
bindkey "^[_" insert-last-word
bindkey "^[a" accept-and-hold
bindkey "^[b" backward-word
bindkey "^[c" capitalize-word
bindkey "^[d" kill-word
bindkey "^[f" forward-word
bindkey "^[g" get-line
bindkey "^[h" run-help
bindkey "^[l" down-case-word
bindkey "^[n" history-search-forward
bindkey "^[p" history-search-backward
bindkey "^[q" push-line
bindkey "^[s" spell-word
bindkey "^[t" transpose-words
bindkey "^[u" up-case-word
bindkey "^[w" copy-region-as-kill
bindkey "^[x" execute-named-cmd
bindkey "^[y" yank-pop
bindkey "^[z" execute-last-named-cmd
bindkey "^[|" vi-goto-column
bindkey "^[^?" backward-kill-word
bindkey "^_" undo
bindkey -R " "-"~" self-insert
bindkey "^?" backward-delete-char
bindkey -R "\M-^@"-"\M-^?" self-insert

bindkey -a "^D" list-choices
bindkey -a "^G" list-expand
bindkey -a "^H" vi-backward-char
bindkey -a "^J" accept-line
bindkey -a "^L" clear-screen
bindkey -a "^M" accept-line
bindkey -a "^N" down-history
bindkey -a "^P" up-history
bindkey -a "^R" redisplay
bindkey -a "^[OA" up-line-or-history
bindkey -a "^[OB" down-line-or-history
bindkey -a "^[OC" vi-forward-char
bindkey -a "^[OD" vi-backward-char
bindkey -a "^[[A" up-line-or-history
bindkey -a "^[[B" down-line-or-history
bindkey -a "^[[C" vi-forward-char
bindkey -a "^[[D" vi-backward-char
bindkey -a " " vi-forward-char
bindkey -a "\"" vi-set-buffer
bindkey -a "#" pound-insert
bindkey -a "\$" vi-end-of-line
bindkey -a "%" vi-match-bracket
bindkey -a "'" vi-goto-mark-line
bindkey -a "+" vi-down-line-or-history
bindkey -a "," vi-rev-repeat-find
bindkey -a -- "-" vi-up-line-or-history
bindkey -a "." vi-repeat-change
bindkey -a "/" vi-history-search-backward
bindkey -a "0" vi-digit-or-beginning-of-line
bindkey -R -a "1"-"9" digit-argument
bindkey -a ";" vi-repeat-find
bindkey -a "<" vi-unindent
bindkey -a "=" list-choices
bindkey -a ">" vi-indent
bindkey -a "?" vi-history-search-forward
bindkey -a "A" vi-add-eol
bindkey -a "B" vi-backward-blank-word
bindkey -a "C" vi-change-eol
bindkey -a "D" vi-kill-eol
bindkey -a "E" vi-forward-blank-word-end
bindkey -a "F" vi-find-prev-char
bindkey -a "G" vi-fetch-history
bindkey -a "I" vi-insert-bol
bindkey -a "J" vi-join
bindkey -a "N" vi-rev-repeat-search
bindkey -a "O" vi-open-line-above
bindkey -a "P" vi-put-before
bindkey -a "R" vi-replace
bindkey -a "S" vi-change-whole-line
bindkey -a "T" vi-find-prev-char-skip
bindkey -a "W" vi-forward-blank-word
bindkey -a "X" vi-backward-delete-char
bindkey -a "Y" vi-yank-whole-line
bindkey -a "\^" vi-first-non-blank
bindkey -a "\`" vi-goto-mark
bindkey -a "a" vi-add-next
bindkey -a "b" vi-backward-word
bindkey -a "c" vi-change
bindkey -a "d" vi-delete
bindkey -a "e" vi-forward-word-end
bindkey -a "f" vi-find-next-char
bindkey -a "h" vi-backward-char
bindkey -a "i" vi-insert
bindkey -a "j" down-line-or-history
bindkey -a "k" up-line-or-history
bindkey -a "l" vi-forward-char
bindkey -a "m" vi-set-mark
bindkey -a "n" vi-repeat-search
bindkey -a "o" vi-open-line-below
bindkey -a "p" vi-put-after
bindkey -a "r" vi-replace-chars
bindkey -a "s" vi-substitute
bindkey -a "t" vi-find-next-char-skip
bindkey -a "u" vi-undo-change
bindkey -a "w" vi-forward-word
bindkey -a "x" vi-delete-char
bindkey -a "y" vi-yank
bindkey -a "|" vi-goto-column
bindkey -a "~" vi-swap-case
bindkey -a "^?" vi-backward-char

bindkey -R -M viins "^A"-"^C" self-insert
bindkey -M viins "^D" list-choices
bindkey -R -M viins "^E"-"^F" self-insert
bindkey -M viins "^G" list-expand
bindkey -M viins "^H" vi-backward-delete-char
bindkey -M viins "^I" expand-or-complete
bindkey -M viins "^J" accept-line
bindkey -M viins "^K" self-insert
bindkey -M viins "^L" clear-screen
bindkey -M viins "^M" accept-line
bindkey -R -M viins "^N"-"^P" self-insert
bindkey -M viins "^Q" vi-quoted-insert
bindkey -M viins "^R" redisplay
bindkey -R -M viins "^S"-"^T" self-insert
bindkey -M viins "^U" vi-kill-line
bindkey -M viins "^V" vi-quoted-insert
bindkey -M viins "^W" vi-backward-kill-word
bindkey -R -M viins "^X"-"^Z" self-insert
bindkey -M viins "^[" vi-cmd-mode
bindkey -M viins "^[OA" up-line-or-history
bindkey -M viins "^[OB" down-line-or-history
bindkey -M viins "^[OC" vi-forward-char
bindkey -M viins "^[OD" vi-backward-char
bindkey -M viins "^[[A" up-line-or-history
bindkey -M viins "^[[B" down-line-or-history
bindkey -M viins "^[[C" vi-forward-char
bindkey -M viins "^[[D" vi-backward-char
bindkey -R -M viins "^\\\\"-"~" self-insert
bindkey -M viins "^?" vi-backward-delete-char
bindkey -R -M viins "\M-^@"-"\M-^?" self-insert

# Completions.

compctl -C -c -tn
compctl -D -f -tn
compctl -T

# Undefined functions.


# Defined functions.


# Limits.

limit datasize        2048MB
limit stacksize       64MB
limit coredumpsize    0kB
limit descriptors     200
limit vmemorysize     2048MB
limit resident        115MB

# Modules.

zmodload -d zsh/zutil zsh/complete
zmodload -d zsh/compctl zsh/complete zsh/zle
zmodload -d zsh/complete zsh/zle
zmodload -d zsh/complist zsh/complete zsh/zle
zmodload -d zsh/computil zsh/complete zsh/zle
zmodload -d zsh/zleparameter zsh/zle

zmodload -ab zsh/computil compfiles
zmodload -ab zsh/sched sched
zmodload -ab zsh/zutil zparseopts
zmodload -ab zsh/computil comptags
zmodload -ab zsh/computil compdescribe
zmodload -ab zsh/zutil zregexparse
zmodload -ab zsh/computil comparguments
zmodload -ab zsh/zutil zstyle
zmodload -ab zsh/computil comptry
zmodload -ab zsh/computil compvalues
zmodload -ab zsh/computil compgroups
zmodload -ab zsh/termcap echotc
zmodload -ab zsh/terminfo echoti
zmodload -ab zsh/computil compquote
zmodload -ab zsh/zutil zformat


zmodload -ap zsh/parameter aliases
zmodload -ap zsh/parameter builtins
zmodload -ap zsh/parameter commands
zmodload -ap zsh/parameter dirstack
zmodload -ap zsh/parameter dis_aliases
zmodload -ap zsh/parameter dis_builtins
zmodload -ap zsh/parameter dis_functions
zmodload -ap zsh/parameter dis_galiases
zmodload -ap zsh/parameter dis_reswords
zmodload -ap zsh/parameter funcstack
zmodload -ap zsh/parameter functions
zmodload -ap zsh/parameter galiases
zmodload -ap zsh/parameter history
zmodload -ap zsh/parameter historywords
zmodload -ap zsh/parameter jobdirs
zmodload -ap zsh/parameter jobstates
zmodload -ap zsh/parameter jobtexts
zmodload -ap zsh/zleparameter keymaps
zmodload -ap zsh/parameter modules
zmodload -ap zsh/parameter nameddirs
zmodload -ap zsh/parameter options
zmodload -ap zsh/parameter parameters
zmodload -ap zsh/parameter reswords
zmodload -ap zsh/termcap termcap
zmodload -ap zsh/terminfo terminfo
zmodload -ap zsh/parameter userdirs
zmodload -ap zsh/zleparameter widgets

zmodload zsh/compctl
zmodload zsh/complete
zmodload zsh/main
zmodload zsh/zle
zmodload zsh/rlimits

# Non-array variables.

ARGC=0
Illegal option -- w
Usage: grep -hblcnsvi pattern file ...
prompt='test%'

# Array variables.

argv=()
cdpath=('.' '/pro/uga/script' '/map/gfx0/users/tsm/cmucl/local' '/map/gfx0/common/cmucl/src/alpha' '/map/gfx0/common/cmucl/build' '/map/gfx0/common/cmucl' '/pro/uga/megalib' '/pro/uga/pkg' '/pro/uga/cmd')
fignore=('')
fpath=('/cs/share/zsh/site-functions' '/cs/share/zsh/4.0.1/functions')
mailpath=('')
manpath=('/cs/man' '/usr/kerberos/man' '/map/gfx0/users/tsm/sgistuff/man' '/usr/man' '/usr/share/man' '/pro/uga/man' '/cs/src/tex/man' '/pro/man' '/usr/freeware/catman' '/usr/catman' '/usr/share/catman' '/usr/local/man' '/cs/data/openinventor/man')
module_path=('/cs/lib/zsh/4.0.1')
path=('/u/tsm/bin/sgi' '/u/tsm/bin' '/usr/java/bin' '/map/gfx0/users/tsm/sgistuff/bin' '/system/bin' '/cs/bin' '/usr/sbin' '/pro/uga/bin/sgi/O' '/usr/bsd' '/bin' '/cs/bin/gnu' '/usr/local/bin' '/etc' '/pro/uga/admin/bin' '/com/avs/bin' '/usr/bin' '/usr/freeware/bin' '/map/gfx0/common/cmucl/sgi/beta/bin' '/usr/ucb' '/usr/etc' '/usr/bin/X11' '/cs/bin/krb' '/sbin' '/usr/kerberos/bin' '/system/bin/gnu/bin')
pipestatus=('0')
psvar=('')
signals=('EXIT' 'HUP' 'INT' 'QUIT' 'ILL' 'TRAP' 'IOT' 'EMT' 'FPE' 'KILL' 'BUS' 'SEGV' 'SYS' 'PIPE' 'ALRM' 'TERM' 'USR1' 'USR2' 'CLD' 'PWR' 'WINCH' 'URG' 'POLL' 'STOP' 'TSTP' 'CONT' 'TTIN' 'TTOU' 'VTALRM' 'PROF' 'XCPU' 'XFSZ' '32' 'CKPT' '34' '35' '36' '37' '38' '39' '40' '41' '42' '43' '44' '45' '46' 'PTINTR' 'PTRESCHED' 'RTMIN' 'ZERR' 'DEBUG')
watch=('')

# Exported variables.

export ARCH
export AVS_PATH
export BOOKVIEWER
export CDPATH
export CMUCLLIB
export COLUMNS
export DISPLAY
export FNORD_PATH
export HOME
export IMGVIEWER
export INDEXPATH
export INFOPATH
export LANG
export LASTLOGIN
export LESS
export LINES
export LOGNAME
export LS_COLORS
export MAIL
export MAILBOXPROG
export MANPATH
export MAP3270
export MSGVERB
export NOMSGLABEL
export NOMSGSEVERITY
export NPX_PLUGIN_PATH
export OLDPWD
export PAGER
export PATH
export PKFONTS
export PRINTER
export PSVIEWER
export PWD
export REAL_UGA_ROOT
export RMANCONFIG
export SHELL
export SHLVL
export STARTUPSDIR
export S_CLEDITOR
export TERM
export TERMINFO
export TEXPKS
export TFMFONTS
export TZ
export UGA_ARCH
export UGA_ROOT
export USER
export USE_VIDEO
export WEBBROWSER
export WEBEDITOR
export WINDOWID
export WINEDITOR
export XRDBCOMMAND
export XUSERFILESEARCHPATH
export latex209_inputs
export latex2e_inputs
export plaintex_inputs

# Setopt.

setopt norcs

# Styles.


# END zsh saveset

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" then resume hangs
  2001-06-11 15:11 fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" then resume hangs Timothy Miller
@ 2001-06-12  8:15 ` Sven Wischnowsky
  2001-06-12 15:00   ` Timothy Miller
  0 siblings, 1 reply; 25+ messages in thread
From: Sven Wischnowsky @ 2001-06-12  8:15 UTC (permalink / raw)
  To: zsh-workers; +Cc: Timothy Miller

Timothy Miller wrote:

> I continue to not be a subscriber to this list :-)
> 
> If I invoke zsh as "zsh-4.0.1 -f" and then run "ls -l|less" on irix 6.3
> or 6.5, control-z to suspend, and then "fg" to resume, the shell prints out
> 
> [1]  + done       ls -l | 
>        continued  less
> 
> and then hangs, unresponsive to all input (ctrl-c, ctrl-z, ctrl-\, other keys,
> etc). I include the results of Util/reporter at the end of this email. This
> bug does not happen on Solaris 2.7, AIX 4.3.2, or redhat 7.0 linux 2.2.16.
> The version of less I'm using is 290 on irix 6.3 and 332 on irix 6.5,
> solaris, and ix, and 358 on linux.

Hm, that's weird -- it's not even one of the complicated cases. The
reporter output isn't of much help here. Hence some questions:

- What does the output of `ps j' (or equivalent, showing pids and parent
  pids) show when the job hangs? (ps output with signal masks might
  help, too.)
- Have you tried it with earlier versions of zsh? Does it work there?
- Does it work if you replace `less' with another program that doesn't
  program the terminal (so much), e.g. `more' and `cat'?

And of course it works under Tru64 Unix, too, so I can't reproduce it...
sigh.


Bye
  Sven


-- 
Sven Wischnowsky                         wischnow@informatik.hu-berlin.de


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" then resume hangs
  2001-06-12  8:15 ` Sven Wischnowsky
@ 2001-06-12 15:00   ` Timothy Miller
       [not found]     ` <1010612154026.ZM24394@candle.brasslantern.com>
  2001-06-14  7:32     ` Sven Wischnowsky
  0 siblings, 2 replies; 25+ messages in thread
From: Timothy Miller @ 2001-06-12 15:00 UTC (permalink / raw)
  To: Sven Wischnowsky; +Cc: zsh-workers

On Tue, 12 Jun 2001 10:15:59 +0200 (MET DST), Sven Wischnowsky <wischnow@informatik.hu-berlin.de> wrote:
> Timothy Miller wrote:
> 
> > I continue to not be a subscriber to this list :-)
> > 
> > If I invoke zsh as "zsh-4.0.1 -f" and then run "ls -l|less" on irix 6.3
> > or 6.5, control-z to suspend, and then "fg" to resume, the shell prints out
> > 
> > [1]  + done       ls -l | 
> >        continued  less
> > 
> > and then hangs, unresponsive to all input (ctrl-c, ctrl-z, ctrl-\, other keys,
> > etc). I include the results of Util/reporter at the end of this email. This
> > bug does not happen on Solaris 2.7, AIX 4.3.2, or redhat 7.0 linux 2.2.16.
> > The version of less I'm using is 290 on irix 6.3 and 332 on irix 6.5,
> > solaris, and ix, and 358 on linux.
> 
> Hm, that's weird -- it's not even one of the complicated cases. The
> reporter output isn't of much help here. Hence some questions:
> 
> - What does the output of `ps j' (or equivalent, showing pids and parent
>   pids) show when the job hangs? (ps output with signal masks might
>   help, too.)

On irix 6.3 (where there doesn't seem to be any way to get ps to report
signal masks):
Running zsh 3.1.6 with -f, then ls -l | less with both procs left running,
ps -fjl:

  F S      UID   PID  PPID  PGID   SID  C PRI NI  P    SZ:RSS      WCHAN    STIME TTY     TIME CMD
 b0 S      tsm 13041 12927 13041 12927  0  39 20  *   666:227   8039d510 09:58:18 ttyq10  0:00 zsh-beta -f 
 b0 S      tsm 13043 13041 13042 12927  0  28 20  *   450:124   8039dc80 09:58:46 ttyq10  0:00 less 

after suspend:

 b0 S      tsm 13041 12927 13041 12927  0  28 20  *   666:227   8039dc80 09:58:18 ttyq10  0:00 zsh-beta -f 
 b0 T      tsm 13043 13041 13042 12927  0  60 20  *   450:124          - 09:58:46 ttyq10  0:00 less 

after resume:

 b0 S      tsm 13041 12927 13041 12927  0  39 20  *   666:239   8039d510 09:58:18 ttyq10  0:00 zsh-beta -f 
 b0 S      tsm 13043 13041 13042 12927  0  28 20  *   451:125   8039dc80 09:58:46 ttyq10  0:00 less 

Running zsh 4.0.1 with -f, both procs still running:
 b0 S      tsm 13097 12927 13097 12927  4  39 20  *   722:285   8039d510 10:07:57 ttyq10  0:00 zsh-4.0.1 -f 
 b0 S      tsm 13100 13097 13100 12927  0  28 20  *   450:124   8039dc80 10:08:00 ttyq10  0:00 less 

after suspend:

 b0 S      tsm 13097 12927 13097 12927  0  28 20  *   722:286   8039dc80 10:07:57 ttyq10  0:00 zsh-4.0.1 -f 
 b0 T      tsm 13100 13097 13100 12927  0  60 20  *   450:124          - 10:08:00 ttyq10  0:00 less 

after resume:

 b0 S      tsm 13097 12927 13097 12927  0  39 20  *   722:288   8039d510 10:07:57 ttyq10  0:00 zsh-4.0.1 -f 
 b0 T      tsm 13100 13097 13100 12927  0  60 20  *   450:124          - 10:08:00 ttyq10  0:00 less 

On irix 6.5, zsh 3.1.6, both running:

  F S      UID        PID       PPID       PGID        SID  C PRI NI  P    SZ:RSS      WCHAN    STIME TTY     TIME CMD
  0 S      tsm      35634      35740      35634      35740  0  20 20  *   186:131   23f900b8 10:20:30 ttyq4   0:00 zsh-beta -f
  0 S      tsm      31635      35634      36065      35740  0  20 20  *   130:84    203fe018 10:20:32 ttyq4   0:00 less

after suspend:
  0 S      tsm      35634      35740      35634      35740  0  20 20  *   186:131   203fe018 10:20:30 ttyq4   0:00 zsh-beta -f
 40 T      tsm      31635      35634      36065      35740  0  20 20  *   131:85           - 10:20:32 ttyq4   0:00 less

after resume:
  0 S      tsm      35634      35740      35634      35740  0  20 20  *   186:134   23f900b8 10:20:30 ttyq4   0:00 zsh-beta -f
  0 S      tsm      31635      35634      36065      35740  0  20 20  *   131:85    203fe018 10:20:32 ttyq4   0:00 less

zsh 4.0.1 both running:
  0 S      tsm      35817      35740      35817      35740  0  20 20  *   220:145   23f900b8 10:22:06 ttyq4   0:00 zsh-4.0.1 -f
  0 S      tsm      36183      35817      36183      35740  0  20 20  *   130:84    203fe018 10:22:09 ttyq4   0:00 less

after suspend:
  0 S      tsm      35817      35740      35817      35740  0  20 20  *   220:145   203fe018 10:22:06 ttyq4   0:00 zsh-4.0.1 -f
 40 T      tsm      36183      35817      36183      35740  0  20 20  *   131:85           - 10:22:09 ttyq4   0:00 less

after resume:
  0 S      tsm      35817      35740      35817      35740  0  20 20  *   220:145   23f900b8 10:22:06 ttyq4   0:00 zsh-4.0.1 -f
 40 T      tsm      36183      35817      36183      35740  0  20 20  *   131:85           - 10:22:09 ttyq4   0:00 less

The odd thing here is the difference in flags and flags behavior between the 
two machines. The documented meaning for the flags is the same on both machines:
     F     (l)      Flags (hexadecimal and additive) associated with the
                    process:

                    001   Process is a system (resident) process.
                    002   Process is being traced.
                    004   Stopped process has been given to parent via
                          wait(2).
                    008   Process is sleeping at a non-interruptible priority.
                    010   Process is in core.
                    020   Process user area is in core.
                    040   Process has enabled atomic operator emulation.
                    080   Process in stream poll or select.
                    100   Process is a kernel thread.

>From the evidence, though, I suspect that this is an error for 6.5.

On both systems, zsh 4.0.1 was run as a subshell under zsh 3.1.6, hence the
different session id.

I wrote a small program to get the pending and held signal masks as well as
a bit of other information:

For irix 6.3, zsh 3.1.6 with -f, at prompt:
zsh: no signals held or pending, asleep on syscall 4

while ls -l|less running:
zsh: asleep on syscall 166, all signals from 1 to 64 held EXCEPT 1, 9, 18,
23.
less: asleep on syscall 4, no signals held or pending

after suspend:
zsh asleep no syscall 4, no sigs held or pending
less: stopped, no sigs

after resume:
zsh back to while running
less back to while running

zsh 4.0.1 with -f, at prompt:
zsh: asleep on syscall 4

after ls -l|less:
zsh: asleep on syscall 166, all sigs from 1 to 64 held except 1, 9, 18, 23.
less asleep on syscall 4

after suspend:
zsh: asleep on syscall 4 no sigs held or pending
less: stopped

after resume:
zsh: asleep on syscall 166, all sigs 1-64 held except 1, 9, 18, 23.
less: stopped

The only info I can find on syscall numbers seems to say that they start
with 1000, which doesn't seem to be the case, but if I subtract 1000 from
them it claims syscall 4 is write() and 166 is poll(). Signal 1 is hup, 9 is 
kill, 18 is chld, 23 is stop.

> - Have you tried it with earlier versions of zsh? Does it work there?

Yes, works with 3.1.6, 3.0.6 and all the earlier versions of zsh I've
installed on irix (unfortunately I can't recall exactly which).

> - Does it work if you replace `less' with another program that doesn't
>   program the terminal (so much), e.g. `more' and `cat'?

more fails as well. I can't type fast enough to suspend cat before it exits!
   Tim


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" then resume hangs
       [not found]     ` <1010612154026.ZM24394@candle.brasslantern.com>
@ 2001-06-12 16:13       ` Timothy Miller
  2001-06-13  3:55         ` Bart Schaefer
  0 siblings, 1 reply; 25+ messages in thread
From: Timothy Miller @ 2001-06-12 16:13 UTC (permalink / raw)
  To: Bart Schaefer; +Cc: zsh-workers

On Tue, 12 Jun 2001 15:40:26 +0000, "Bart Schaefer" <schaefer@candle.brasslantern.com> wrote:
> On Jun 12, 11:00am, Timothy Miller wrote:
> }
> } I can't type fast enough to suspend cat before it exits!
> 
> Use "ls -lR / | cat" and I bet you'll have time.

Yes, I thought of something like that shortly after I sent the email...what
comes of sending too rapidly...anyway, if I do that, it hangs on the first
suspend.

irix 6.3, zsh 4.0.1 -f,  ls -lR /|cat, then suspend:

  F S      UID   PID  PPID  PGID   SID  C PRI NI  P    SZ:RSS      WCHAN    STIME TTY     TIME CMD
 b0 S      tsm 13962 13961 13962 13905  0  60 20  *   394:114   c06afbc0 11:55:29 ttyq13  0:01 ls -lR / 
 b0 T      tsm 13963 13961 13963 13905  0  60 20  *    45:25           - 11:55:29 ttyq13  0:00 cat 
 b0 S      tsm 13961 13905 13961 13905  0  39 20  *   732:297   8039d510 11:55:26 ttyq13  0:00 zsh-4.0.1 -f 

zsh asleep syscall 166, all sigs held but 1, 9, 18, 23
ls asleep on syscall 5, no sigs held/pending
cat stopped, no sigs held/pending

just found more authoritative info on syscall numbers; syscall 4 is read(),
syscall 5 is write(), syscall 166 is sigsuspend(), which makes much more
sense.
   Tim


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" then resume hangs
  2001-06-12 16:13       ` Timothy Miller
@ 2001-06-13  3:55         ` Bart Schaefer
  2001-07-06 22:40           ` Timothy Miller
  0 siblings, 1 reply; 25+ messages in thread
From: Bart Schaefer @ 2001-06-13  3:55 UTC (permalink / raw)
  To: Timothy Miller; +Cc: zsh-workers

On Jun 12, 12:13pm, Timothy Miller wrote:
} Subject: Re: fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" 
}
} just found more authoritative info on syscall numbers; syscall 4 is read(),
} syscall 5 is write(), syscall 166 is sigsuspend(), which makes much more
} sense.

What output do you get from `egrep 'BROKEN|SIG' config.h` ?

-- 
Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com

Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net   


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" then resume hangs
  2001-06-12 15:00   ` Timothy Miller
       [not found]     ` <1010612154026.ZM24394@candle.brasslantern.com>
@ 2001-06-14  7:32     ` Sven Wischnowsky
  2001-07-06 22:52       ` Timothy Miller
  2001-07-10 15:22       ` Timothy Miller
  1 sibling, 2 replies; 25+ messages in thread
From: Sven Wischnowsky @ 2001-06-14  7:32 UTC (permalink / raw)
  To: zsh-workers; +Cc: Timothy Miller


[Debugging the execution code is already hard enough on the machine one
sits on front of...]


Anyway, thanks for your help in trying to find the problem!


Timothy Miller wrote:

> ...
> 
>   F S      UID   PID  PPID  PGID   SID  C PRI NI  P    SZ:RSS      WCHAN    STIME TTY     TIME CMD
>  b0 S      tsm 13097 12927 13097 12927  4  39 20  *   722:285   8039d510 10:07:57 ttyq10  0:00 zsh-4.0.1 -f 
>  b0 S      tsm 13100 13097 13100 12927  0  28 20  *   450:124   8039dc80 10:08:00 ttyq10  0:00 less 

Ok, here's the reason why the thing can't be put in the foreground. 
`less' is in its own process group, but should be in the one of the now
deceased `ls'.

First I though this was some race condition, with the `ls' exiting too
fast, but in 14865:

>   F S      UID   PID  PPID  PGID   SID  C PRI NI  P    SZ:RSS      WCHAN    STIME TTY     TIME CMD
>  b0 S      tsm 13962 13961 13962 13905  0  60 20  *   394:114   c06afbc0 11:55:29 ttyq13  0:01 ls -lR / 
>  b0 T      tsm 13963 13961 13963 13905  0  60 20  *    45:25           - 11:55:29 ttyq13  0:00 cat 
>  b0 S      tsm 13961 13905 13961 13905  0  39 20  *   732:297   8039d510 11:55:26 ttyq13  0:00 zsh-4.0.1 -f 

So the question is why pipeline-tails get their own process group
instead of using that of the pipeline leader.

We can't easily look at a diff between 3.1.6 and 4.0.1 to find out which
change might be causing this because there were so many changes.

I can suspect two things: it might be a problem with list_pipe_job or a
similar problem to the one on FreeBSD that was fixed by 11247 (which
*was* a problem showing the same results).

So as a somewhat wild guess, I've build the two patches below -- which
are not to be applied by anyone whose zsh is working.  If you find the
time to try them, I'd like to hear if one of them fixes the problem. 
The first one reverses 11247 (it's the first one because the problem
looks so suspicously similar) and the second one reverses both 14327 and
14503 -- the last changes I made to list_pipe_job.  Please try them
separately (or one after another and then both of them together).


Bye
  Sven

First patch:

diff -u -u -r ../ooz/Src/exec.c ./Src/exec.c
--- ../ooz/Src/exec.c	Thu Jun 14 05:10:12 2001
+++ ./Src/exec.c	Thu Jun 14 05:11:14 2001
@@ -2502,8 +2502,8 @@
 	}
     } else if (thisjob != -1 && cl) {
 	if (jobtab[list_pipe_job].gleader && (list_pipe || list_pipe_child)) {
-	    if (setpgrp(0L, jobtab[list_pipe_job].gleader) == -1 ||
-		killpg(jobtab[list_pipe_job].gleader, 0) == -1) {
+	    if (killpg(jobtab[list_pipe_job].gleader, 0) == -1 ||
+		setpgrp(0L, jobtab[list_pipe_job].gleader) == -1) {
 		jobtab[list_pipe_job].gleader =
 		    jobtab[thisjob].gleader = (list_pipe_child ? mypgrp : getpid());
 		setpgrp(0L, jobtab[list_pipe_job].gleader);


Second patch:

diff -u -u -r ../ooz/Src/exec.c ./Src/exec.c
--- ../ooz/Src/exec.c	Thu Jun 14 05:10:12 2001
+++ ./Src/exec.c	Thu Jun 14 05:15:22 2001
@@ -973,19 +973,16 @@
      * stopped, the top-level execpline() didn't get the pid for the
      * sub-shell because it was overwritten. */
     if (!pline_level++) {
+	list_pipe_job = newjob;
         list_pipe_pid = 0;
 	nowait = 0;
 	simple_pline = (WC_PIPE_TYPE(code) == WC_PIPE_END);
-	list_pipe_job = newjob;
     }
     lastwj = lpforked = 0;
     execpline2(state, code, how, opipe[0], ipipe[1], last1);
     pline_level--;
     if (how & Z_ASYNC) {
 	lastwj = newjob;
-
-        if (thisjob == list_pipe_job)
-            list_pipe_job = 0;
 	jobtab[thisjob].stat |= STAT_NOSTTY;
 	if (slflags & WC_SUBLIST_COPROC) {
 	    zclose(ipipe[1]);

-- 
Sven Wischnowsky                         wischnow@informatik.hu-berlin.de


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" then resume hangs
  2001-06-13  3:55         ` Bart Schaefer
@ 2001-07-06 22:40           ` Timothy Miller
  0 siblings, 0 replies; 25+ messages in thread
From: Timothy Miller @ 2001-07-06 22:40 UTC (permalink / raw)
  To: Bart Schaefer; +Cc: zsh-workers

On Wed, 13 Jun 2001 03:55:22 +0000, "Bart Schaefer" <schaefer@candle.brasslantern.com> wrote:
> On Jun 12, 12:13pm, Timothy Miller wrote:
> } Subject: Re: fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" 
> }
> } just found more authoritative info on syscall numbers; syscall 4 is read(),
> } syscall 5 is write(), syscall 166 is sigsuspend(), which makes much more
> } sense.
> 
> What output do you get from `egrep 'BROKEN|SIG' config.h` ?

I've now switched to zsh-4.0.2 for the irix debugging process, since it came
out before I had a chance to look at it again and since I get the same
problem with suspending. This is the output I get:

#define RETSIGTYPE void
/* #undef STAT_MACROS_BROKEN */
/* #undef BROKEN_SIGNED_TO_UNSIGNED_CASTING */
#define POSIX_SIGNALS 1
/* #undef BSD_SIGNALS */
/* #undef SYSV_SIGNALS */
/* #undef NO_SIGNAL_BLOCKING */
/* #undef RLIM_T_IS_UNSIGNED */
/* #undef BROKEN_KILL_ESRCH */
/* #undef BROKEN_POSIX_SIGSUSPEND */
/* #undef BROKEN_TCSETPGRP */
#define HAVE_SIGACTION 1
#define HAVE_SIGBLOCK 1
#define HAVE_SIGHOLD 1
#define HAVE_SIGNGAM 1
#define HAVE_SIGPROCMASK 1
#define HAVE_SIGRELSE 1
#define HAVE_SIGSETMASK 1


   Tim


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" then resume hangs
  2001-06-14  7:32     ` Sven Wischnowsky
@ 2001-07-06 22:52       ` Timothy Miller
  2001-07-10 15:22       ` Timothy Miller
  1 sibling, 0 replies; 25+ messages in thread
From: Timothy Miller @ 2001-07-06 22:52 UTC (permalink / raw)
  To: Sven Wischnowsky; +Cc: zsh-workers

On Thu, 14 Jun 2001 09:32:12 +0200 (MET DST), Sven Wischnowsky <wischnow@informatik.hu-berlin.de> wrote:
> So as a somewhat wild guess, I've build the two patches below -- which
> are not to be applied by anyone whose zsh is working.  If you find the
> time to try them, I'd like to hear if one of them fixes the problem. 
> The first one reverses 11247 (it's the first one because the problem
> looks so suspicously similar) and the second one reverses both 14327 and
> 14503 -- the last changes I made to list_pipe_job.  Please try them
> separately (or one after another and then both of them together).

After a little hiatus I have a little time to look at this again. I've
switched to zsh 4.0.2 for debugging the irix problem since the same problem
appears there. However, separately or together, the patches don't affect the 
problem.
   Tim


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" then resume hangs
  2001-06-14  7:32     ` Sven Wischnowsky
  2001-07-06 22:52       ` Timothy Miller
@ 2001-07-10 15:22       ` Timothy Miller
  2001-07-10 16:25         ` Bart Schaefer
  1 sibling, 1 reply; 25+ messages in thread
From: Timothy Miller @ 2001-07-10 15:22 UTC (permalink / raw)
  To: Sven Wischnowsky; +Cc: zsh-workers

On Thu, 14 Jun 2001 09:32:12 +0200 (MET DST), Sven Wischnowsky <wischnow@informatik.hu-berlin.de> wrote:
> We can't easily look at a diff between 3.1.6 and 4.0.1 to find out which
> change might be causing this because there were so many changes.

However, I just went and checked out of the CVS repository version 3.1.9,
discovered it had the problem, and eventually narrowed it down to a change
between 3.1.6 and 3.1.7. The cvs copy of 3.1.6 works; 3.1.7 doesn't. Does
that suggest anything? I think I would be able to automate testing this and
write a script to do a binary search between two dates in the cvs
repository, except that the two versions seem to be on different branches in
many cases so a pure date search wouldn't be correct, and the branching is
different in different files so I can't just manually make a sequence of
dates and branches to try. Any suggestions as to something else on those
lines I might do?
   Tim


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" then resume hangs
  2001-07-10 15:22       ` Timothy Miller
@ 2001-07-10 16:25         ` Bart Schaefer
  2001-07-10 21:26           ` Timothy Miller
  0 siblings, 1 reply; 25+ messages in thread
From: Bart Schaefer @ 2001-07-10 16:25 UTC (permalink / raw)
  To: Timothy Miller; +Cc: zsh-workers

On Jul 10, 11:22am, Timothy Miller wrote:
}
} However, I just went and checked out of the CVS repository version 3.1.9,
} discovered it had the problem, and eventually narrowed it down to a change
} between 3.1.6 and 3.1.7.

Unfortunately, there were a very large number of changes between 3.1.6 and
3.1.7, so that doesn't help very much.

} Any suggestions as to something else on those lines I might do?

Use the symbolic tags for each of the -dev- releases between 3.1.6 and
3.1.7.  In particular (based on scanning ChangeLog for modifications to
jobs.c):

Does 3.1.6-dev-20 have the bug?  (cvs co -rzsh-3-1-6-dev-20)

3.1.6-dev-19?

3.1.6-dev-18?

3.1.6-dev-15?

3.1.6-pws-2?

Note that prior to -dev-14, the release have -pws- or -bart- instead of
-dev-.  Here's the complete list of tags you can try:

        zsh-3_1_6-dev-22
        zsh-3_1_6-dev-21
        zsh-3_1_6-dev-20
        zsh-3_1_6-dev-19
        zsh-3_1_6-dev-18
        zsh-3_1_6-dev-17
        zsh-3_1_6-dev-16
        zsh-3_1_6-dev-15
        zsh-3_1_6-dev-14
        zsh-3_1_6-pws-13
        zsh-3_1_6-pws-12
        zsh-3_1_6-pws-11
        zsh-3_1_6-pws-10
        zsh-3_1_6-pws-9
        zsh-3_1_6-bart-8
        zsh-3_1_6-bart-7-2
        zsh-3_1_6-bart-7
        zsh-3_1_6-pws-6
        zsh-3_1_6-pws-5
        zsh-3_1_6-pws-4
        zsh-3_1_6-pws-3
        zsh-3_1_6-pws-2
        zsh-3_1_6-pws-1


-- 
Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com

Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net   


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" then resume hangs
  2001-07-10 16:25         ` Bart Schaefer
@ 2001-07-10 21:26           ` Timothy Miller
  2001-07-10 23:27             ` Bart Schaefer
  0 siblings, 1 reply; 25+ messages in thread
From: Timothy Miller @ 2001-07-10 21:26 UTC (permalink / raw)
  To: Bart Schaefer; +Cc: zsh-workers

On Tue, 10 Jul 2001 16:25:47 +0000, "Bart Schaefer" <schaefer@candle.brasslantern.com> wrote:
> Use the symbolic tags for each of the -dev- releases between 3.1.6 and
> 3.1.7.  In particular (based on scanning ChangeLog for modifications to
> jobs.c):

Ok: zsh-3_1_6-pws-2 works; zsh-3_1_6-pws-3 fails.
   Tim


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" then resume hangs
  2001-07-10 21:26           ` Timothy Miller
@ 2001-07-10 23:27             ` Bart Schaefer
  2001-07-11  8:33               ` Sven Wischnowsky
  2001-07-11 18:59               ` Timothy Miller
  0 siblings, 2 replies; 25+ messages in thread
From: Bart Schaefer @ 2001-07-10 23:27 UTC (permalink / raw)
  To: Timothy Miller; +Cc: zsh-workers

On Jul 10,  5:26pm, Timothy Miller wrote:
> 
> Ok: zsh-3_1_6-pws-2 works; zsh-3_1_6-pws-3 fails.

One of these must be the culprit, then:

	* Sven: 7605: Src/exec.c, Src/jobs.c: use killpg instead of
	  altering process group when leader exits, fix fg test to use
	  killpg.

	* Sven: 7573: Src/signals.c, Src/exec.c, Src/utils.c: fix return
	  value of killjb(); pipelines which lose their leader get a new
	  one.

Can you send us some output of `ps' that shows the process groups of the
processes involved, from both -pws-2 and anything after that?


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" then resume hangs
  2001-07-10 23:27             ` Bart Schaefer
@ 2001-07-11  8:33               ` Sven Wischnowsky
  2001-07-11  9:51                 ` Sven Wischnowsky
  2001-07-11 18:59               ` Timothy Miller
  1 sibling, 1 reply; 25+ messages in thread
From: Sven Wischnowsky @ 2001-07-11  8:33 UTC (permalink / raw)
  To: zsh-workers

Bart Schaefer wrote:

> On Jul 10,  5:26pm, Timothy Miller wrote:
> > 
> > Ok: zsh-3_1_6-pws-2 works; zsh-3_1_6-pws-3 fails.
> 
> One of these must be the culprit, then:
> 
> 	* Sven: 7605: Src/exec.c, Src/jobs.c: use killpg instead of
> 	  altering process group when leader exits, fix fg test to use
> 	  killpg.
> 
> 	* Sven: 7573: Src/signals.c, Src/exec.c, Src/utils.c: fix return
> 	  value of killjb(); pipelines which lose their leader get a new
> 	  one.
> 
> Can you send us some output of `ps' that shows the process groups of the
> processes involved, from both -pws-2 and anything after that?

You may also try the patch below (each hunk separately or both together).

If this turns out to be the problem, then Irix seems to behave
differently from other Unices w.r.t. calling kill() on a process group
with `signal' 0.  Urgh.


Bye
  Sven

--- Src/exec.c.old	Wed Jul 11 10:27:51 2001
+++ Src/exec.c	Wed Jul 11 10:28:19 2001
@@ -2512,7 +2512,7 @@
     } else if (thisjob != -1 && cl) {
 	if (jobtab[list_pipe_job].gleader && (list_pipe || list_pipe_child)) {
 	    if (setpgrp(0L, jobtab[list_pipe_job].gleader) == -1 ||
-		killpg(jobtab[list_pipe_job].gleader, 0) == -1) {
+		kill(jobtab[list_pipe_job].gleader, 0) == -1) {
 		jobtab[list_pipe_job].gleader =
 		    jobtab[thisjob].gleader = (list_pipe_child ? mypgrp : getpid());
 		setpgrp(0L, jobtab[list_pipe_job].gleader);
--- Src/utils.c.old	Wed Jul 11 10:33:09 2001
+++ Src/utils.c	Wed Jul 11 10:33:16 2001
@@ -2404,7 +2404,7 @@
 # endif
 #endif
 	{
-	    if (pgrp != mypgrp && kill(-pgrp, 0) == -1)
+	    if (pgrp != mypgrp && kill(pgrp, 0) == -1)
 		attachtty(mypgrp);
 	    else {
 		if (errno != ENOTTY)

-- 
Sven Wischnowsky                         wischnow@informatik.hu-berlin.de


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" then resume hangs
  2001-07-11  8:33               ` Sven Wischnowsky
@ 2001-07-11  9:51                 ` Sven Wischnowsky
  0 siblings, 0 replies; 25+ messages in thread
From: Sven Wischnowsky @ 2001-07-11  9:51 UTC (permalink / raw)
  To: zsh-workers

I wrote:

> ...
> 
> You may also try the patch below (each hunk separately or both together).

I forgot to say that they only undo parts of the patches Bart mentioned.

Thanks for looking that up, Bart!


Bye
  Sven


-- 
Sven Wischnowsky                         wischnow@informatik.hu-berlin.de


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" then resume hangs
  2001-07-10 23:27             ` Bart Schaefer
  2001-07-11  8:33               ` Sven Wischnowsky
@ 2001-07-11 18:59               ` Timothy Miller
  2001-07-12  3:39                 ` Bart Schaefer
  1 sibling, 1 reply; 25+ messages in thread
From: Timothy Miller @ 2001-07-11 18:59 UTC (permalink / raw)
  Cc: zsh-workers

On Tue, 10 Jul 2001 16:27:00 -0700, "Bart Schaefer" <schaefer@candle.brasslantern.com> wrote:
> On Jul 10,  5:26pm, Timothy Miller wrote:
> > 
> > Ok: zsh-3_1_6-pws-2 works; zsh-3_1_6-pws-3 fails.
> 
> One of these must be the culprit, then:
> 
> 	* Sven: 7605: Src/exec.c, Src/jobs.c: use killpg instead of
> 	  altering process group when leader exits, fix fg test to use
> 	  killpg.
> 
> 	* Sven: 7573: Src/signals.c, Src/exec.c, Src/utils.c: fix return
> 	  value of killjb(); pipelines which lose their leader get a new
> 	  one.
> 
> Can you send us some output of `ps' that shows the process groups of the
> processes involved, from both -pws-2 and anything after that?

Output is that of "ps -fljt ttyq4" with irrelevant (preexisting) processes
on that tty removed; zsh started as "./Src/zsh +Z -f".

-pws-2:
Initial prompt:
  F S      UID   PID  PPID  PGID   SID  C PRI NI  P    SZ:RSS      WCHAN    STIME TTY     TIME CMD
 b0 S      tsm  9487  1092  9487  1092  0  28 20  *   564:164   8039df60 14:46:22 ttyq4   0:00 ./Src/zsh +Z -f 

while "ls -lR /|cat" is running:
  F S      UID   PID  PPID  PGID   SID  C PRI NI  P    SZ:RSS      WCHAN    STIME TTY     TIME CMD
 b0 R      tsm  9489  9487  9489  1092 15  67 20  *   394:94           - 14:47:03 ttyq4   0:00 ls -lR / 
 b0 S      tsm  9487  1092  9487  1092  0  39 20  *   582:193   8039d510 14:46:22 ttyq4   0:00 ./Src/zsh +Z -f 
 b0 S      tsm  9490  9487  9489  1092  0  60 20  *    45:25    c04cd91c 14:47:03 ttyq4   0:00 cat 

after ^Z:
  F S      UID   PID  PPID  PGID   SID  C PRI NI  P    SZ:RSS      WCHAN    STIME TTY     TIME CMD
 b0 T      tsm  9489  9487  9489  1092  0  60 20  *   394:94           - 14:47:03 ttyq4   0:01 ls -lR / 
 b0 S      tsm  9487  1092  9487  1092  0  28 20  *   582:196   8039df60 14:46:22 ttyq4   0:00 ./Src/zsh +Z -f 
 b0 S      tsm  9490  9487  9489  1092  0  60 20  *    45:25    c04cd91c 14:47:03 ttyq4   0:00 cat 

after fg:
  F S      UID   PID  PPID  PGID   SID  C PRI NI  P    SZ:RSS      WCHAN    STIME TTY     TIME CMD
 b0 S      tsm  9489  9487  9489  1092  7  63 20  *   394:94    c27ae1d8 14:47:03 ttyq4   0:01 ls -lR / 
 b0 S      tsm  9487  1092  9487  1092  0  39 20  *   582:211   8039d510 14:46:22 ttyq4   0:00 ./Src/zsh +Z -f 
 b0 S      tsm  9490  9487  9489  1092  0  60 20  *    45:25    c04cd91c 14:47:03 ttyq4   0:00 cat 

********

-pws-3:
initial prompt:
  F S      UID   PID  PPID  PGID   SID  C PRI NI  P    SZ:RSS      WCHAN    STIME TTY     TIME CMD
 b0 S      tsm 13718  1092 13718  1092  0  28 20  *   563:163   8039df60 14:55:38 ttyq4   0:00 ./Src/zsh +Z -f 

while "ls -lR /|cat" is running:
  F S      UID   PID  PPID  PGID   SID  C PRI NI  P    SZ:RSS      WCHAN    STIME TTY     TIME CMD
 b0 R      tsm 13720 13718 13720  1092 29  74 20  *   394:94           - 14:56:08 ttyq4   0:00 ls -lR / 
 b0 S      tsm 13721 13718 13721  1092  0  60 20  *    45:25    c0c5131c 14:56:08 ttyq4   0:00 cat 
 b0 S      tsm 13718  1092 13718  1092  0  39 20  *   581:191   8039d510 14:55:38 ttyq4   0:00 ./Src/zsh +Z -f 

after ^Z:
  F S      UID   PID  PPID  PGID   SID  C PRI NI  P    SZ:RSS      WCHAN    STIME TTY     TIME CMD
 b0 S      tsm 13720 13718 13720  1092  0  60 20  *   394:94    c0c51320 14:56:08 ttyq4   0:01 ls -lR / 
 b0 T      tsm 13721 13718 13721  1092  0  60 20  *    45:25           - 14:56:08 ttyq4   0:00 cat 
 b0 S      tsm 13718  1092 13718  1092  0  39 20  *   581:192   8039d510 14:55:38 ttyq4   0:00 ./Src/zsh +Z -f 

This version of zsh has different behavior than the current one, it turns
out now I see it interactively: it just hangs uninterruptibly (except by
SIGKILL) after the ^Z, with no prompt and no additional printout of any
kind. My expect script was supposed to have caught that and flagged it as a
problem; I'm not sure what happened there.
   Tim


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" then resume hangs
  2001-07-11 18:59               ` Timothy Miller
@ 2001-07-12  3:39                 ` Bart Schaefer
  2001-07-30 20:18                   ` Timothy Miller
  0 siblings, 1 reply; 25+ messages in thread
From: Bart Schaefer @ 2001-07-12  3:39 UTC (permalink / raw)
  To: Timothy Miller, zsh-workers

On Jul 11,  2:59pm, Timothy Miller wrote:
} Subject: Re: fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" 
}
} -pws-2:
} after ^Z:
}   F S      UID   PID  PPID  PGID   SID  CMD
}  b0 T      tsm  9489  9487  9489  1092  ls -lR / 
}  b0 S      tsm  9487  1092  9487  1092  ./Src/zsh +Z -f 
}  b0 S      tsm  9490  9487  9489  1092  cat 
} 
} -pws-3:
} after ^Z:
}   F S      UID   PID  PPID  PGID   SID  CMD
}  b0 S      tsm 13720 13718 13720  1092  ls -lR / 
}  b0 T      tsm 13721 13718 13721  1092  cat 
}  b0 S      tsm 13718  1092 13718  1092  ./Src/zsh +Z -f 
} 
} This version of zsh has different behavior than the current one

Yes, there was at least one other bug fix after -pws-3:

        * Sven: 9345: Src/exec.c, Src/jobs.c, Src/zsh.h:
        bug with job control when group leader exits; other problems
        with subshells.

So it would be more helpful to see the `ps' output for 4.0.2 (say) than
for 3.1.6-pws-3.

However, I note that in -pws-2, both `cat' and `ls' are in the same pgrp
but it is `ls' that is stopped.  Did you try either of the patches that
Sven sent?

-- 
Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com

Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net   


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" then resume hangs
  2001-07-12  3:39                 ` Bart Schaefer
@ 2001-07-30 20:18                   ` Timothy Miller
  2001-07-30 21:24                     ` Bart Schaefer
  0 siblings, 1 reply; 25+ messages in thread
From: Timothy Miller @ 2001-07-30 20:18 UTC (permalink / raw)
  To: Bart Schaefer; +Cc: zsh-workers

On Thu, 12 Jul 2001 03:39:07 +0000, "Bart Schaefer" <schaefer@candle.brasslantern.com> wrote:
> Yes, there was at least one other bug fix after -pws-3:
> 
>         * Sven: 9345: Src/exec.c, Src/jobs.c, Src/zsh.h:
>         bug with job control when group leader exits; other problems
>         with subshells.
> 
> So it would be more helpful to see the `ps' output for 4.0.2 (say) than
> for 3.1.6-pws-3.

4.0.2 zsh +Z -f, ps -fljt ttyq4 with irrelevant procs removed:

initial prompt
  F S      UID   PID  PPID  PGID   SID  C PRI NI  P    SZ:RSS      WCHAN    STIME TTY     TIME CMD
 b0 S      tsm  8561   915  8561   915  5  28 20  *   593:218   8039e0b0 16:02:16 ttyq4   0:00 ./Src/zsh +Z -f 

ls -lR /|cat running
 b0 S      tsm  8564  8561  8564   915  3  61 20  *    45:25    c0d1261c 16:02:54 ttyq4   0:00 cat 
 b0 S      tsm  8561   915  8561   915  0  39 20  *   609:232   8039d510 16:02:16 ttyq4   0:00 ./Src/zsh +Z -f 
 b8 S      tsm  8563  8561  8563   915 24  20 20  *   394:114   803fe164 16:02:54 ttyq4   0:00 ls -lR / 

after ^Z
 b0 T      tsm  8564  8561  8564   915  0  60 20  *    45:25           - 16:02:54 ttyq4   0:00 cat 
 b0 S      tsm  8561   915  8561   915  0  39 20  *   609:233   8039d510 16:02:16 ttyq4   0:00 ./Src/zsh +Z -f 
 b0 S      tsm  8563  8561  8563   915  0  60 20  *   394:114   c0d12620 16:02:54 ttyq4   0:01 ls -lR / 

At this point it's hung. Actually, on examining the mail I sent when I first 
tried the |cat (Jun 12) it had the same hang-on-first-suspend, which I had
forgotten, so it's not different behavior after all.

> However, I note that in -pws-2, both `cat' and `ls' are in the same pgrp
> but it is `ls' that is stopped.  Did you try either of the patches that
> Sven sent?

Yes, and even sent out a reply (Jul 6): separately or together, they didn't
affect the problem. ps outputs (which I didn't include originally) follow. I 
am assuming, by the way, that the only thing I need to do after applying the 
patch is type "make".

first patch only:
initial prompt
 b0 S      tsm  8684   915  8684   915  0  28 20  *   593:218   8039e0b0 16:09:37 ttyq4   0:00 ./Src/zsh +Z -f 

ls -lR /|cat running
 b8 R      tsm  8686  8684  8686   915 29  20 20  *   394:114          - 16:09:51 ttyq4   0:00 ls -lR / 
 b0 S      tsm  8687  8684  8687   915  1  60 20  *    45:25    c0d1261c 16:09:51 ttyq4   0:00 cat 
 b0 S      tsm  8684   915  8684   915  0  39 20  *   609:232   8039d510 16:09:37 ttyq4   0:00 ./Src/zsh +Z -f 

after ^Z
 b0 S      tsm  8686  8684  8686   915  0  60 20  *   394:114   c0d12620 16:09:51 ttyq4   0:01 ls -lR / 
 b0 T      tsm  8687  8684  8687   915  0  60 20  *    45:25           - 16:09:51 ttyq4   0:00 cat 
 b0 S      tsm  8684   915  8684   915  0  39 20  *   609:233   8039d510 16:09:37 ttyq4   0:00 ./Src/zsh +Z -f 

It's now hung.

-----

both first and second patches:
initial prompt
 b0 S      tsm  8752   915  8752   915  0  28 20  *   593:219   8039e0b0 16:12:10 ttyq4   0:00 ./Src/zsh +Z -f 

running
 b0 S      tsm  8752   915  8752   915  0  39 20  *   609:233   8039d510 16:12:10 ttyq4   0:00 ./Src/zsh +Z -f 
 b0 R      tsm  8754  8752  8754   915 30  75 20  *   394:114          - 16:12:31 ttyq4   0:01 ls -lR / 
 b0 S      tsm  8755  8752  8755   915  2  61 20  *    45:25    c0d1261c 16:12:31 ttyq4   0:00 cat 

^Z
 b0 S      tsm  8752   915  8752   915  0  39 20  *   609:234   8039d510 16:12:10 ttyq4   0:00 ./Src/zsh +Z -f 
 b0 S      tsm  8754  8752  8754   915  0  60 20  *   394:114   c0d12620 16:12:31 ttyq4   0:01 ls -lR / 
 b0 T      tsm  8755  8752  8755   915  0  60 20  *    45:25           - 16:12:31 ttyq4   0:00 cat 

hung

-----

second patch only:
initial prompt
 b0 S      tsm  8819   915  8819   915  0  28 20  *   593:219   8039e0b0 16:14:23 ttyq4   0:00 ./Src/zsh +Z -f 

running
 b0 S      tsm  8822  8819  8822   915  1  60 20  *    45:25    c0d1261c 16:14:35 ttyq4   0:00 cat 
 b0 S      tsm  8819   915  8819   915  0  39 20  *   609:233   8039d510 16:14:23 ttyq4   0:00 ./Src/zsh +Z -f 
 b0 R      tsm  8821  8819  8821   915 39  79 20  *   394:114          - 16:14:35 ttyq4   0:00 ls -lR / 

^Z
 b0 T      tsm  8822  8819  8822   915  0  60 20  *    45:25           - 16:14:35 ttyq4   0:00 cat 
 b0 S      tsm  8819   915  8819   915  0  39 20  *   609:234   8039d510 16:14:23 ttyq4   0:00 ./Src/zsh +Z -f 
 b0 S      tsm  8821  8819  8821   915  0  60 20  *   394:114   c0d12620 16:14:35 ttyq4   0:01 ls -lR / 

hung

   Tim


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" then resume hangs
  2001-07-30 20:18                   ` Timothy Miller
@ 2001-07-30 21:24                     ` Bart Schaefer
  2001-07-30 22:08                       ` Timothy Miller
  0 siblings, 1 reply; 25+ messages in thread
From: Bart Schaefer @ 2001-07-30 21:24 UTC (permalink / raw)
  To: Timothy Miller; +Cc: zsh-workers

On Jul 30,  4:18pm, Timothy Miller wrote:
> 
> 4.0.2 zsh +Z -f, ps -fljt ttyq4 with irrelevant procs removed:
> 
> ls -lR /|cat running
>  b0 S      tsm  8564  8561  8564   915  3  61 20  *    45:25    c0d1261c 16:02:54 ttyq4   0:00 cat 
>  b0 S      tsm  8561   915  8561   915  0  39 20  *   609:232   8039d510 16:02:16 ttyq4   0:00 ./Src/zsh +Z -f 
>  b8 S      tsm  8563  8561  8563   915 24  20 20  *   394:114   803fe164 16:02:54 ttyq4   0:00 ls -lR / 

OK, notice that each of ls and cat is in its own process group.  That's not
supposed to happen.

> > However, I note that in -pws-2, both `cat' and `ls' are in the same pgrp
> > but it is `ls' that is stopped.  Did you try either of the patches that
> > Sven sent?
> 
> Yes, and even sent out a reply (Jul 6)

No, Sven sent two *more* patches *after* that.  July 11 -- see

	http://www.zsh.org/mla/workers/2001/msg02043.html

Those are the ones that I was asking about.


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" then resume hangs
  2001-07-30 21:24                     ` Bart Schaefer
@ 2001-07-30 22:08                       ` Timothy Miller
  2001-07-31  8:20                         ` Sven Wischnowsky
  0 siblings, 1 reply; 25+ messages in thread
From: Timothy Miller @ 2001-07-30 22:08 UTC (permalink / raw)
  To: Bart Schaefer; +Cc: zsh-workers

On Mon, 30 Jul 2001 14:24:25 -0700, Bart Schaefer <schaefer@brasslantern.com> wrote:
> > > However, I note that in -pws-2, both `cat' and `ls' are in the same pgrp
> > > but it is `ls' that is stopped.  Did you try either of the patches that
> > > Sven sent?
> > 
> > Yes, and even sent out a reply (Jul 6)
> 
> No, Sven sent two *more* patches *after* that.  July 11 -- see
> 
> 	http://www.zsh.org/mla/workers/2001/msg02043.html
> 
> Those are the ones that I was asking about.

Ah. He didn't send them to me (just the list, from examining the headers),
so of course I didn't get or try them.

exec.c patch:

The line number given in this patch is 9 more than the corresponding line in 
the zsh-4.0.2 source file I have, just as a note.

Incidentally, according to the irix man page for killpg, you're supposed to
#define _BSD_SIGNALS or _BSD_COMPAT before signal.h to use it; zsh appears
to use BSD_SIGNALS (not _BSD_SIGNALS) in configure. However, it still uses
BSD_SIGNALS in -pws-2. Further, if I take the cc command line for exec.c,
change cc to gcc, -c to -E, remove -o exec.o, and add -dD to get the macro
definitions in place, then it looks like none of these *BSD* symbols are
defined anywhere. The man page also says using BSD and SYSV facilities in
the same program is strongly discouraged and will result in unpredictable
behavior, in case you weren't aware (I don't know if zsh does that).

At any rate, here's the result:

initial
  F S      UID   PID  PPID  PGID   SID  C PRI NI  P    SZ:RSS      WCHAN    STIME TTY     TIME CMD
 b0 S      tsm 19496   915 19496   915  5  28 20  *   593:218   8039e0b0 17:58:33 ttyq4   0:00 ./Src/zsh +Z -f 

running
 b8 R      tsm 19498 19496 19498   915 30  20 20  *   394:114          - 17:58:54 ttyq4   0:00 ls -lR / 
 b0 S      tsm 19496   915 19496   915  0  39 20  *   609:232   8039d510 17:58:33 ttyq4   0:00 ./Src/zsh +Z -f 
 b0 S      tsm 19499 19496 19498   915  3  61 20  *    45:25    c252c13c 17:58:54 ttyq4   0:00 cat 

^Z
 b0 T      tsm 19498 19496 19498   915  0  60 20  *   394:114          - 17:58:54 ttyq4   0:01 ls -lR / 
 b0 S      tsm 19496   915 19496   915  0  28 20  *   609:235   8039e0b0 17:58:33 ttyq4   0:00 ./Src/zsh +Z -f 
 b0 S      tsm 19499 19496 19498   915  0  60 20  *    45:25    c252c13c 17:58:54 ttyq4   0:00 cat 

I actually get back to a live prompt this time. Typing fg:
 b0 R      tsm 19498 19496 19498   915 20  70 20  *   394:114          - 17:58:54 ttyq4   0:01 ls -lR / 
 b0 S      tsm 19496   915 19496   915  0  39 20  *   609:238   8039d510 17:58:33 ttyq4   0:00 ./Src/zsh +Z -f 
 b0 S      tsm 19499 19496 19498   915  2  61 20  *    45:25    c252c13c 17:58:54 ttyq4   0:00 cat 

So it looks like this patch fixes the hanging problem, except that cat still 
isn't stopped (it is when I do the same test under solaris with 4.0.1).

-----
For completeness, I also looked at the results of the other two patch
combinations.
-----
both patches applied:
initial
 b0 S      tsm 19575   915 19575   915  1  28 20  *   593:218   8039e0b0 18:02:00 ttyq4   0:00 ./Src/zsh +Z -f 

running
 b0 R      tsm 19577 19575 19577   915 41  80 20  *   394:114          - 18:02:10 ttyq4   0:01 ls -lR / 
 b0 S      tsm 19575   915 19575   915  6  39 20  *   609:232   8039d510 18:02:00 ttyq4   0:00 ./Src/zsh +Z -f 
 b0 S      tsm 19578 19575 19577   915  2  61 20  *    45:25    c252c13c 18:02:10 ttyq4   0:00 cat 

^Z
 b0 T      tsm 19577 19575 19577   915  0  60 20  *   449:171          - 18:02:10 ttyq4   0:02 ls -lR / 
 b0 S      tsm 19575   915 19575   915  0  28 20  *   609:235   8039e0b0 18:02:00 ttyq4   0:00 ./Src/zsh +Z -f 
 b0 S      tsm 19578 19575 19577   915  0  60 20  *    45:25    c252c13c 18:02:10 ttyq4   0:00 cat 

still get a prompt, typing fg
 b0 R      tsm 19577 19575 19577   915 46  83 20  *   457:177          - 18:02:10 ttyq4   0:02 ls -lR / 
 b0 S      tsm 19575   915 19575   915  0  39 20  *   609:238   8039d510 18:02:00 ttyq4   0:00 ./Src/zsh +Z -f 
 b0 S      tsm 19578 19575 19577   915  3  61 20  *    45:25    c252c13c 18:02:10 ttyq4   0:00 cat 

etc, continues to work.

----
second patch without first:
initial
 b0 S      tsm 19649   915 19649   915  0  28 20  *   593:218   8039e0b0 18:04:02 ttyq4   0:00 ./Src/zsh +Z -f 

running
 b0 R      tsm 19651 19649 19651   915 33  76 20  *   394:114          - 18:04:14 ttyq4   0:00 ls -lR / 
 b0 S      tsm 19649   915 19649   915  0  39 20  *   609:232   8039d510 18:04:02 ttyq4   0:00 ./Src/zsh +Z -f 
 b0 S      tsm 19652 19649 19652   915  1  60 20  *    45:25    c252c13c 18:04:14 ttyq4   0:00 cat 

^Z
 b0 S      tsm 19651 19649 19651   915  0  60 20  *   447:169   c252c140 18:04:14 ttyq4   0:01 ls -lR / 
 b0 S      tsm 19649   915 19649   915  0  39 20  *   609:233   8039d510 18:04:02 ttyq4   0:00 ./Src/zsh +Z -f 
 b0 T      tsm 19652 19649 19652   915  0  60 20  *    45:25           - 18:04:14 ttyq4   0:00 cat 

and with this patch configuration, it hangs here.

   Tim


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" then resume hangs
  2001-07-30 22:08                       ` Timothy Miller
@ 2001-07-31  8:20                         ` Sven Wischnowsky
  2001-07-31  8:30                           ` Borsenkow Andrej
                                             ` (2 more replies)
  0 siblings, 3 replies; 25+ messages in thread
From: Sven Wischnowsky @ 2001-07-31  8:20 UTC (permalink / raw)
  To: zsh-workers; +Cc: Timothy Miller

Timothy Miller wrote:

> ...
> 
> Ah. He didn't send them to me (just the list, from examining the headers),
> so of course I didn't get or try them.

Sorry.

> exec.c patch:
> 
> The line number given in this patch is 9 more than the corresponding line in 
> the zsh-4.0.2 source file I have, just as a note.
> 
> Incidentally, according to the irix man page for killpg, you're supposed to
> #define _BSD_SIGNALS or _BSD_COMPAT before signal.h to use it; zsh appears
> to use BSD_SIGNALS (not _BSD_SIGNALS) in configure. However, it still uses
> BSD_SIGNALS in -pws-2. Further, if I take the cc command line for exec.c,
> change cc to gcc, -c to -E, remove -o exec.o, and add -dD to get the macro
> definitions in place, then it looks like none of these *BSD* symbols are
> defined anywhere. The man page also says using BSD and SYSV facilities in
> the same program is strongly discouraged and will result in unpredictable
> behavior, in case you weren't aware (I don't know if zsh does that).

Aha.  Hm, well, is there any Unix where killpg(p, s) does something
different than kill(-p, s)?  If not, we could either change all places
where we use killpg() or just add a killpg macro to zsh.h or signals.h.

> ...
> 
> So it looks like this patch fixes the hanging problem, except that cat still 
> isn't stopped (it is when I do the same test under solaris with 4.0.1).

Yes, it's a lot better already.  You could test if modifying the line I
changed to use kill() instead of killpg() to:

	kill(-jobtab[list_pipe_job].gleader, 0) == -1) {

fixes the problem with cat not being stopped.  (I've only inserted a `-'
before the `jobtab[...]' here.)


Bye
  Sven


-- 
Sven Wischnowsky                         wischnow@informatik.hu-berlin.de


^ permalink raw reply	[flat|nested] 25+ messages in thread

* RE: fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" then resume hangs
  2001-07-31  8:20                         ` Sven Wischnowsky
@ 2001-07-31  8:30                           ` Borsenkow Andrej
  2001-07-31 14:35                           ` Timothy Miller
  2001-07-31 20:50                           ` Timothy Miller
  2 siblings, 0 replies; 25+ messages in thread
From: Borsenkow Andrej @ 2001-07-31  8:30 UTC (permalink / raw)
  To: Sven Wischnowsky, zsh-workers; +Cc: Timothy Miller

> 
> Aha.  Hm, well, is there any Unix where killpg(p, s) does something
> different than kill(-p, s)?

It should be the same by definition:

     If pgrp is greater than 1, killpg(pgrp, sig) is equivalent to
     kill(-pgrp, sig). If pgrp is less than or equal to 1, the behavior of
     killpg() is undefined.

-andrej


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" then resume hangs
  2001-07-31  8:20                         ` Sven Wischnowsky
  2001-07-31  8:30                           ` Borsenkow Andrej
@ 2001-07-31 14:35                           ` Timothy Miller
  2001-07-31 20:50                           ` Timothy Miller
  2 siblings, 0 replies; 25+ messages in thread
From: Timothy Miller @ 2001-07-31 14:35 UTC (permalink / raw)
  To: Sven Wischnowsky; +Cc: zsh-workers

On Tue, 31 Jul 2001 10:20:57 +0200 (MET DST), Sven Wischnowsky <wischnow@informatik.hu-berlin.de> wrote:
> > So it looks like this patch fixes the hanging problem, except that cat still 
> > isn't stopped (it is when I do the same test under solaris with 4.0.1).
> 
> Yes, it's a lot better already.  You could test if modifying the line I
> changed to use kill() instead of killpg() to:
> 
> 	kill(-jobtab[list_pipe_job].gleader, 0) == -1) {
> 
> fixes the problem with cat not being stopped.  (I've only inserted a `-'
> before the `jobtab[...]' here.)

Unfortunately, no such luck. However, it turns out that zsh 3.1.6 results in
the same behavior, and in fact if I manually send a TSTP to the right
process group, cat is still not suspended. For a larger set of processes,
from "man makemovie", all but one process is stopped (in 3.1.6):

running
  F S      UID   PID  PPID  PGID   SID  C PRI NI  P    SZ:RSS      WCHAN    STIME TTY     TIME CMD
 b0 S      tsm   915   914   915   915  0  39 20  *   774:436   8039d510 12:04:34 ttyq4   0:06 -zsh-beta 
 b0 S      tsm 21359   915 21359   915  0  60 20  *   431:105   804219ac 10:22:24 ttyq4   0:00 man makemovie 
 b0 S      tsm 21361 21360 21359   915  0  60 20  *    71:29    804221dc 10:22:24 ttyq4   0:00 sh -c pcat /usr/share/catman/u_man/
 b0 S      tsm 21362 21361 21359   915  0  28 20  *   478:183   8039e0b0 10:22:24 ttyq4   0:00 less 
 b0 S      tsm 21364 21362 21359   915  0  60 20  *   368:130   c0674a40 10:22:24 ttyq4   0:00 col 
 b0 S      tsm 21360 21359 21359   915  0  60 20  *   427:101   80424acc 10:22:24 ttyq4   0:00 man makemovie 

^Z
  F S      UID   PID  PPID  PGID   SID  C PRI NI  P    SZ:RSS      WCHAN    STIME TTY     TIME CMD
 b0 S      tsm   915   914   915   915  0  28 20  *   774:436   8039e0b0 12:04:34 ttyq4   0:06 -zsh-beta 
 b0 T      tsm 21359   915 21359   915  0  60 20  *   431:105          - 10:22:24 ttyq4   0:00 man makemovie 
 b0 T      tsm 21361 21360 21359   915  0  60 20  *    71:29           - 10:22:24 ttyq4   0:00 sh -c pcat /usr/share/catman/u_man/
 b0 T      tsm 21362 21361 21359   915  0  60 20  *   478:185          - 10:22:24 ttyq4   0:00 less 
 b0 S      tsm 21364 21362 21359   915  0  60 20  *   368:130   c0674a40 10:22:24 ttyq4   0:00 col 
 b0 T      tsm 21360 21359 21359   915  0  60 20  *   427:101          - 10:22:24 ttyq4   0:00 man makemovie 

But with "man killpg", all four processes (not including a col in this case)
are stopped. I've been using this version of zsh for years now with no
problems, so if this is an IRIX bug, it doesn't seem to affect anything I've
noticed. (Well, there is one minor problem I've had, but it happens on other
OSs too (I think--now I'm going to have to check): occasionally and
nondeterministically zsh will fail to return immediately to a prompt after a
suspended less, but hitting return does bring back the prompt.)
   Tim


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" then resume hangs
  2001-07-31  8:20                         ` Sven Wischnowsky
  2001-07-31  8:30                           ` Borsenkow Andrej
  2001-07-31 14:35                           ` Timothy Miller
@ 2001-07-31 20:50                           ` Timothy Miller
  2001-08-01  8:35                             ` Sven Wischnowsky
  2 siblings, 1 reply; 25+ messages in thread
From: Timothy Miller @ 2001-07-31 20:50 UTC (permalink / raw)
  To: Sven Wischnowsky; +Cc: zsh-workers

On Tue, 31 Jul 2001 10:20:57 +0200 (MET DST), Sven Wischnowsky <wischnow@informatik.hu-berlin.de> wrote:
> > exec.c patch:
> > 
> > The line number given in this patch is 9 more than the corresponding line in 
> > the zsh-4.0.2 source file I have, just as a note.
> > 
> > Incidentally, according to the irix man page for killpg, you're supposed to
> > #define _BSD_SIGNALS or _BSD_COMPAT before signal.h to use it; zsh appears
> > to use BSD_SIGNALS (not _BSD_SIGNALS) in configure. However, it still uses
> > BSD_SIGNALS in -pws-2. Further, if I take the cc command line for exec.c,
> > change cc to gcc, -c to -E, remove -o exec.o, and add -dD to get the macro
> > definitions in place, then it looks like none of these *BSD* symbols are
> > defined anywhere. The man page also says using BSD and SYSV facilities in
> > the same program is strongly discouraged and will result in unpredictable
> > behavior, in case you weren't aware (I don't know if zsh does that).
> 
> Aha.  Hm, well, is there any Unix where killpg(p, s) does something
> different than kill(-p, s)?  If not, we could either change all places
> where we use killpg() or just add a killpg macro to zsh.h or signals.h.

I just manually changed config.h to not define HAVE_KILLPG, cleaned and
recompiled everything, and it all seems to work, except for make check C02
and Y* which were expected not to work anyway.

Oops, actually, that was only on the irix 6.3 machine...on irix 6.5 it turns
out if I compile zsh with the system cc, with or without HAVE_KILLPG, it
fails make check in a big way (segfaults at the drop of a hat on every test,
happens with 4.0.1 too) which I will report in a separate email, as it's a
separate bug. If I allow it to compile with gcc, it completes the checks
that it's supposed to complete, and if I manually turn HAVE_KILLPG off, it
even handles suspension correctly. I'm going to regard this bug as
essentially fixed (modulo incorporating something reflecting this change
into the source) as a result, but will post the other bug shortly.
   Tim


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" then resume hangs
  2001-07-31 20:50                           ` Timothy Miller
@ 2001-08-01  8:35                             ` Sven Wischnowsky
  2002-02-25  9:31                               ` Sven Wischnowsky
  0 siblings, 1 reply; 25+ messages in thread
From: Sven Wischnowsky @ 2001-08-01  8:35 UTC (permalink / raw)
  To: zsh-workers

Timothy Miller wrote:

> ...
> 
> I just manually changed config.h to not define HAVE_KILLPG, cleaned and
> recompiled everything, and it all seems to work, except for make check C02
> and Y* which were expected not to work anyway.

So, which solution do you all prefer?  1) adding a killpg() macro in some
header file, 2) changing all killpg()s to kill(-...) or 3) changing configure
to not use killpg() on Irix?

I'd prefer 1) or 3) -- with 2) someone could sometime use killpg()
because he doesn't know about this.


Bye
  Sven


-- 
Sven Wischnowsky                         wischnow@informatik.hu-berlin.de


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" then resume hangs
  2001-08-01  8:35                             ` Sven Wischnowsky
@ 2002-02-25  9:31                               ` Sven Wischnowsky
  0 siblings, 0 replies; 25+ messages in thread
From: Sven Wischnowsky @ 2002-02-25  9:31 UTC (permalink / raw)
  To: zsh-workers



Since that old while-loop patch came up again, I want to remember
everyone that I think we haven't done anything about that Irix-bug yet
(unless I've missed something?).

The last message in the thread was 15557:

> Timothy Miller wrote:
> 
> > ...
> > 
> > I just manually changed config.h to not define HAVE_KILLPG, cleaned and
> > recompiled everything, and it all seems to work, except for make check C02
> > and Y* which were expected not to work anyway.
> 
> So, which solution do you all prefer?  1) adding a killpg() macro in some
> header file, 2) changing all killpg()s to kill(-...) or 3) changing configure
> to not use killpg() on Irix?
> 
> I'd prefer 1) or 3) -- with 2) someone could sometime use killpg()
> because he doesn't know about this.

It seems that the bug could be fixed by using kill(-...) instead of
killpg().


Bye
  Sven

-- 
Sven Wischnowsky                          wischnow@berkom.de


^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2002-02-25  9:32 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-06-11 15:11 fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" then resume hangs Timothy Miller
2001-06-12  8:15 ` Sven Wischnowsky
2001-06-12 15:00   ` Timothy Miller
     [not found]     ` <1010612154026.ZM24394@candle.brasslantern.com>
2001-06-12 16:13       ` Timothy Miller
2001-06-13  3:55         ` Bart Schaefer
2001-07-06 22:40           ` Timothy Miller
2001-06-14  7:32     ` Sven Wischnowsky
2001-07-06 22:52       ` Timothy Miller
2001-07-10 15:22       ` Timothy Miller
2001-07-10 16:25         ` Bart Schaefer
2001-07-10 21:26           ` Timothy Miller
2001-07-10 23:27             ` Bart Schaefer
2001-07-11  8:33               ` Sven Wischnowsky
2001-07-11  9:51                 ` Sven Wischnowsky
2001-07-11 18:59               ` Timothy Miller
2001-07-12  3:39                 ` Bart Schaefer
2001-07-30 20:18                   ` Timothy Miller
2001-07-30 21:24                     ` Bart Schaefer
2001-07-30 22:08                       ` Timothy Miller
2001-07-31  8:20                         ` Sven Wischnowsky
2001-07-31  8:30                           ` Borsenkow Andrej
2001-07-31 14:35                           ` Timothy Miller
2001-07-31 20:50                           ` Timothy Miller
2001-08-01  8:35                             ` Sven Wischnowsky
2002-02-25  9:31                               ` Sven Wischnowsky

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).