Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: segfault via completion menu
- X-seq: zsh-workers 44348
- From: Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx>
- To: Daniel Shahaf <d.s@xxxxxxxxxxxxxxxxxx>
- Subject: Re: segfault via completion menu
- Date: Tue, 21 May 2019 15:19:23 -0700
- Cc: Oliver Kiddle <okiddle@xxxxxxxxxxx>, Wesley Schwengle <wesley@xxxxxxxxxx>, "zsh-workers@xxxxxxx" <zsh-workers@xxxxxxx>
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=obk8WPVxMH+EcwAsAy9lh8h3rnhtZq2IENxVacUKJO8=; b=jQwUrVik2RNE+tMXa+MjwZtL1z2AV2mcAl8v4ylNWj7j2hLzTE+q6AbIkNhjnQwpjk QPaxb4dRNjcvPixvzRAKHh+RoPXXmXJbi+c6R1nSLwgpcK7+DWp5zg9wmmGzEr8U1sbP kYeMZOepPKri0Ii+BThoFg6J0KfjD9Mg6icpS0cTllTBALunsVmteI08EOHUY+Rt+ZTu qNffmoAcBMDCCW9ZxHIgvQ5d+mkXBXXvZykeCRjtN/fFhNuc4ggLiPHoXPdOmZ17fEEw f14po6gqPwjZ51Bwo9r4iEyPdcmYLbWVTwRIVmFTfcLXht2Ty0nMBSor4b+tlCpIviHj dSCA==
- In-reply-to: <90e15b90-14bb-4ef0-9aef-cc15c0fa0935@www.fastmail.com>
- List-help: <mailto:zsh-workers-help@zsh.org>
- List-id: Zsh Workers List <zsh-workers.zsh.org>
- List-post: <mailto:zsh-workers@zsh.org>
- List-unsubscribe: <mailto:zsh-workers-unsubscribe@zsh.org>
- Mailing-list: contact zsh-workers-help@xxxxxxx; run by ezmlm
- References: <CAEpdsiaGRHHZMnV1Aq7+9wwZpE3qH9dV4c-jVfTxMRO810TyHg@mail.gmail.com> <92606-1558385755.382793@sll5.5oha.0as1> <90e15b90-14bb-4ef0-9aef-cc15c0fa0935@www.fastmail.com>
On Tue, May 21, 2019 at 2:59 PM Daniel Shahaf <d.s@xxxxxxxxxxxxxxxxxx> wrote:
>
> Oliver Kiddle wrote on Mon, 20 May 2019 20:57 +00:00:
> > Backing that out on top of master appears to fix the issue. As it was an
> > optimisation, that might be an option. From reading comments in mem.c,
> > it's not especially clear to me what newheaps/oldheaps do. There's only
> > the one other use.
>
> It's not too clear to me either.
Operationally, the difference between pushheap() and NEWHEAPS() is
that pushing scans the entire list of existing heap blocks and moves
them out of the way in favor of new empty blocks. This is
time-consuming and eats a lot of memory if you're in a tightly
recursive function (read back through the articles leading up to the
change). In contrast, NEWHEAPS() just starts an entirely new chain of
heap blocks without reference to the existing chain.
If an error occurs as a result of NEWHEAPS()/OLDHEAPS() in the context
of workers/36853, it ought to be traceable to something leaking
heap-allocated storage across boundaries, and probably means there was
a memory leak when interrupting a pattern match before, which this has
turned into an error by freeing the previously leaked space.
Messages sorted by:
Reverse Date,
Date,
Thread,
Author