Subject: Re: bug#76473: 31.0.50; gnutls_pproc leak
From: Pip Cet <[email-masked]>
To: Eli Zaretskii <[email-masked]>
Cc: [email-masked], [email-masked]
Date: Sat, 22 Feb 2025 14:34:27 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

"Eli Zaretskii" <[email-masked]> writes:

>> Date: Fri, 21 Feb 2025 19:58:19 +0000
>> From: Pip Cet <[email-masked]>
>> Cc: [email-masked], [email-masked]
>>
>> "Eli Zaretskii" <[email-masked]> writes:
>>
>> >> Date: Fri, 21 Feb 2025 18:44:17 +0000
>> >> From: Pip Cet <[email-masked]>
>> >> Cc: [email-masked], [email-masked]
>> >>
>> >> "Eli Zaretskii" <[email-masked]> writes:
>> >>
>> >> >> Cc: [email-masked]
>> >> >> Date: Fri, 21 Feb 2025 18:02:34 +0000
>> >> >> From:  Pip Cet via "Bug reports for GNU Emacs,
>> >> >>  the Swiss army knife of text editors" <[email-masked]>
>> >> >>
>> >> >> > This patch would fix that:
>> >> >>
>> >> >> I believe it would!  Is anyone testing the w32/w64 + gnutls combination?
>> >> >
>> >> > In general, or on the igc branch?
>> >>
>> >> The latter.  This bug is specific to feature/igc, I think, since that's
>> >> the only branch that has gnutls_pproc.
>> >
>> > If you or Helmut tell me what to try and what to notice, I can do
>> > that.
>>
>> Can you watch the PVEC_PROCESS line (in M-x igc-stats) or the
>> xzalloc-ambig line (in M-x igc-roots-stats) while creating and
>> destroying a number of gnutls processes?
>>
>> Without the patch, the numbers should go up but never down.  With the
>> patch, all should be fine :-)
>
> I indeed see that with the patch, igc-collect and/or deleting the
> processes (in the list-processes display) makes the number of
> PVEC_PROCESS objects go down, whereas without the patch it stays at
> the same value it had before (and goes up when I invoke eww for
> another HTTPS connection).  However, even with the patch, the number
> never goes back to zero, only to 1.  Don't know if it's important or
> not.

Thanks!  Since there is no process in M-x list-processes (such as a
server process), I think it's most likely that an "ambiguous" reference
to a destroyed process survives on the bytecode stack or the C stack.
So my guess it's that's a harmless side-effect of conservative garbage
collection.

> Anyway, the patch seems to be TRT, thanks.

Thanks, Helmut!  I've changed the subject line to reference the bug
number, but otherwise what I just pushed should be identical to what you
sent!

Closing this bug.

Pip