[Pkg-zsh-devel] Bug#732726: zsh function freeze

Vincent Lefevre vincent at vinc17.net
Fri Dec 20 18:14:36 UTC 2013


Package: zsh
Version: 5.0.3-1
Severity: important

This is an important regression (no problems after downgrading to
5.0.2-6), always reproducible.

With a private SVN repository, "svncdiff -c65935 ~/wd | head" freezes, where
svncdiff is the following zsh function (I have "autoload -U svncdiff"):

------------------------------------------------------------------------
#!/usr/bin/env zsh

# Wrapper to "svn diff", written by Vincent Lefevre <vincent at vinc17.org>

# Needs my tdiff utility to process the diff output; otherwise you need
# to remove the "| tdiff" at the end.

# Example of svncdiff usage:
#   svncdiff -5 -x -p file
# for 5 lines of unified context and function information.

emulate -LR zsh
local -a args xopt
setopt EXTENDED_GLOB

while [[ $# -ge 1 ]]
do
  if [[ "x$1" == x-[0-9]# ]] then
    args=($args --diff-cmd diff)
    xopt=($xopt -U${1[2,-1]})
  elif [[ $# -ge 2 && "x$1" == x-x ]] then
    shift
    xopt=($xopt $1)
  else
    args=($args $1)
  fi
  shift
done

[[ $#xopt -ge 1 ]] && args=(-x "$xopt" $args)
svnwrapper diff "$args[@]" | tdiff

# $Id: svncdiff 38442 2010-08-05 11:41:16Z vinc17/ypig $
------------------------------------------------------------------------

The dependencies can be found on <https://www.vinc17.net/unix/>.

When svncdiff is called as a script, this is no such problem.

With my tps utility, I can observe:

10987  sshd: vlefevre at pts/2
└─> 10988  -zsh
  └─> 11262  -zsh
    ├─> 11264  zsh -f -- /home/vlefevre/bin/svnwrapper diff -c65935 /home/vlefevre/wd
    │ └─> 11269  svn diff -c65935 /home/vlefevre/wd
    │   ├─> 11273  zsh /home/vlefevre/scripts/ssh mysvn svnserve -t
    │   │ ├─> 11295  cat
    │   │ └─> 11298  ssh -F /home/vlefevre/.ssh/config -C mysvn svnserve -t
    │   └─> 11299  zsh /home/vlefevre/scripts/ssh mysvn svnserve -t
    │     ├─> 11317  cat
    │     └─> 11320  ssh -F /home/vlefevre/.ssh/config -C mysvn svnserve -t
    └─> 11265  perl /home/vlefevre/bin/tdiff

I think that this occurs on big changesets.

$ svncdiff -c65935 ~/wd | wc
   2166   14746  212680

I'll try to investigate, but any idea about which zsh change could
trigger the problem?

-- System Information:
Debian Release: jessie/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.11-2-amd64 (SMP w/8 CPU cores)
Locale: LANG=POSIX, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages zsh depends on:
ii  libc6       2.17-97
ii  libcap2     1:2.22-1.2
ii  libtinfo5   5.9+20130608-1
ii  zsh-common  5.0.3-1

Versions of packages zsh recommends:
ii  libncursesw5  5.9+20130608-1
ii  libpcre3      1:8.31-2

Versions of packages zsh suggests:
ii  zsh-doc  5.0.3-1

-- no debconf information



More information about the Pkg-zsh-devel mailing list