Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: [BUG] queueing_enabled grows infinitely when in .recursive-edit
- X-seq: zsh-workers 39549
- From: Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx>
- To: Zsh hackers list <zsh-workers@xxxxxxx>
- Subject: Re: [BUG] queueing_enabled grows infinitely when in .recursive-edit
- Date: Mon, 3 Oct 2016 08:20:29 -0700
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20150623.gappssmtp.com; s=20150623; h=from:message-id:date:in-reply-to:comments:references:to:subject :mime-version; bh=N8BuErEq5U88qnLpG/M0Hd8UZWGO3F2z8wzr7HXVVwk=; b=kWoF97I4poP9a8HdICF+b6+zF6XxUXdxgKAOH8DikY6ibiMtPZp2qbs1s1fQiSpLOZ JLgPP5bINLzK8d0AU4hrb5FumuiFupN0Mx/JZ4FPcaLJshrnchx57Di10qzgx3QXgMpQ 87tIesB+M6e7ZSaPTjtHIg0fq3RNh0+Ws6M4Cbhx7PZD1oCL3a5yzlAGKFySb2oB6sTw HAjpp/3MZB9+u+affqRH8+jgr+3oAnmp3f8oLacmP7g8AdJyJxv6+ZslbUPi2XA/vrgV xM7iNc93lqP07ZJzhmYLYNdOM2Lj/d8QkLMNzreZhjQPqV1TZxcJRi2CBVCPBEjusx89 fqxA==
- In-reply-to: <20161003111840.3e5081f0@pwslap01u.europe.root.pri>
- List-help: <mailto:zsh-workers-help@zsh.org>
- List-id: Zsh Workers List <zsh-workers.zsh.org>
- List-post: <mailto:zsh-workers@zsh.org>
- Mailing-list: contact zsh-workers-help@xxxxxxx; run by ezmlm
- References: <CAKc7PVAoLMj+dwEugbvggrmcjQbLP3GutxiNHPbpwvLw-a9F=w@mail.gmail.com> <CGME20161002233734eucas1p1136e84f7a57eaf467c44d8d7446856df@eucas1p1.samsung.com> <161002162145.ZM22574@torch.brasslantern.com> <20161003111840.3e5081f0@pwslap01u.europe.root.pri>
On Oct 3, 11:18am, Peter Stephenson wrote:
}
} Here are some missing unqueue_signals() (this was quite boring, by the
} way, just in case you were thinking "wow, wish I'd done that").
Actually I was thinking "Thank you, I expected to need to do that."
} Most of these look minor but the one in execpline() looks like it could
} be hairy because most things in execpline() are hairy.
Fixing all of these is valuable/necessary, of course; but or purposes of
this specific bug report we can discount any that had an error message
nearby, because no such errors were displayed. It also doesn't have
anything to do with history, sourcing files, or prompts, and I wasn't
using heap validation. That narrows it down to these:
} diff --git a/Src/exec.c b/Src/exec.c
} index a429428..9890286 100644
} --- a/Src/exec.c
} +++ b/Src/exec.c
} @@ -1795,6 +1795,8 @@ execpline(Estate state, wordcode slcode, int how, int last1)
} deletejob(jn, 0);
} thisjob = pj;
} }
} + else
} + unqueue_signals();
} if ((slflags & WC_SUBLIST_NOT) && !errflag)
} lastval = !lastval;
} }
} @@ -5556,6 +5558,7 @@ runshfunc(Eprog prog, FuncWrap wrap, char *name)
} if (!cont) {
} if (ou)
} zfree(ou, ouu);
} + unqueue_signals();
} return;
} }
} wrap = wrap->next;
It's quite possible that both of these were in play, because the
restore_queue_signals() debugging that I tried reported queueing_enabled
to be 2 when it was expected to be 0 even in cases where it did not then
continue growing.
I will clean up that additional debugging for signals.h to make it
suitable for commit, so that we have a better chance of catching these
problems in new code.
Messages sorted by:
Reverse Date,
Date,
Thread,
Author