From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15414 invoked by alias); 30 Aug 2016 17:23:33 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 39128 Received: (qmail 6501 invoked from network); 30 Aug 2016 17:23:33 -0000 X-Qmail-Scanner-Diagnostics: from out4-smtp.messagingengine.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(66.111.4.28):SA:0(0.0/5.0):. Processed in 0.365505 secs); 30 Aug 2016 17:23:33 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.1 X-Envelope-From: d.s@daniel.shahaf.name X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: none (ns1.primenet.com.au: domain at daniel.shahaf.name does not designate permitted sender hosts) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= daniel.shahaf.name; h=content-type:date:from:message-id :mime-version:subject:to:x-sasl-enc:x-sasl-enc; s=mesmtp; bh=4iw WW8a1qWnAR4/6x7k+zOHwg1c=; b=0TLtA2rlWpvIsxr8l4LnqZafG36BOiTWGJA 8vuPFGVsuwdTOt0nwo7VbX7Et3sXYJ4grJ+LuvXmdlnrysFgIZVRDvoW+qh5cwAy 7LQgkKuXxYM3KDtDu7Xlcqglwu/kli8jzZ1gjTZmXZm3RoNiqSBfazIYC3ABwt85 WdNKQCFg= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-sasl-enc:x-sasl-enc; s=smtpout; bh=4i wWW8a1qWnAR4/6x7k+zOHwg1c=; b=oWu4uOUrJtZrgCaW+lKcX8XIh2dYrAbZ19 4oRAxINvWSq+USxMKlsDybjDSchTkDz0F0Bl91wH5w/GPjng+XPFPR054vHfm6J/ n7Fiko7uvShK0YV/uOgNMNVueJYWxpTiHVCa5tP/+Y7ZhpgOlrxbwX4kKKw1wECZ utftOQI6c= X-Sasl-enc: r4YyfReG5DUEkT1wdtDWYk6j8W2K0kh6qudiiUwwxBj4 1472577806 Date: Tue, 30 Aug 2016 17:23:02 +0000 From: Daniel Shahaf To: zsh-workers@zsh.org Subject: add-zle-hook-widget: infinite recursion ("job table full or recursion limit exceeded") Message-ID: <20160830172302.GA16145@fujitsu.shahaf.local2> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline User-Agent: Mutt/1.5.23 (2014-03-12) It's trivial to trigger: % Src/zsh -fc 'autoload add-zle-hook-widget; f() {}; add-zle-hook-widget zle-line-pre-redraw f' add-zle-hook-widget:182: job table full or recursion limit exceeded zsh: exit 1 $prefix/zsh/bin/zsh -fc Here's the trace: % Src/zsh -x -fc 'autoload add-zle-hook-widget; f() {}; add-zle-hook-widget zle-line-pre-redraw f' 2>&1 | head -30 +zsh:1> autoload add-zle-hook-widget +zsh:1> add-zle-hook-widget zle-line-pre-redraw f +add-zle-hook-widget:21> '(anon)' zle-line-pre-redraw f +(anon):2> emulate -L zsh +(anon):5> zmodload -e zsh/zle +(anon):5> return 1 +add-zle-hook-widget:178> case cmdarg shfunc loadautofunc (*file) +add-zle-hook-widget:178> case cmdarg shfunc loadautofunc (*evalautofunc) +add-zle-hook-widget:178> case cmdarg shfunc loadautofunc (*loadautofunc) +add-zle-hook-widget:181> add-zle-hook-widget zle-line-pre-redraw f +add-zle-hook-widget:21> '(anon)' zle-line-pre-redraw f +(anon):2> emulate -L zsh +(anon):5> zmodload -e zsh/zle +(anon):5> return 1 +add-zle-hook-widget:178> case cmdarg shfunc loadautofunc shfunc (*file) +add-zle-hook-widget:178> case cmdarg shfunc loadautofunc shfunc (*evalautofunc) +add-zle-hook-widget:178> case cmdarg shfunc loadautofunc shfunc (*loadautofunc) +add-zle-hook-widget:178> case cmdarg shfunc loadautofunc shfunc (*) +add-zle-hook-widget:182> [[ -o kshautoload ]] +add-zle-hook-widget:182> add-zle-hook-widget zle-line-pre-redraw f +add-zle-hook-widget:21> '(anon)' zle-line-pre-redraw f +(anon):2> emulate -L zsh +(anon):5> zmodload -e zsh/zle +(anon):5> return 1 +add-zle-hook-widget:178> case cmdarg shfunc loadautofunc shfunc shfunc (*file) +add-zle-hook-widget:178> case cmdarg shfunc loadautofunc shfunc shfunc (*evalautofunc) +add-zle-hook-widget:178> case cmdarg shfunc loadautofunc shfunc shfunc (*loadautofunc) +add-zle-hook-widget:178> case cmdarg shfunc loadautofunc shfunc shfunc (*) +add-zle-hook-widget:182> [[ -o kshautoload ]] +add-zle-hook-widget:182> add-zle-hook-widget zle-line-pre-redraw f zsh: broken pipe $prefix/zsh/bin/zsh -x -fc 2>&1 | zsh: done head -30 Running 'zmodload zsh/zle' before the call appears to prevent hte problem. I can do that in my callsite (z-sy-h's "make check"), but I assume zsh shouldn't enter an infinite loop, either. Cheers, Daniel