Subject: Re: bug#29170: 26.0.90; Emacs freezes when capturing an org-template

From: [email-masked]
Date: Fri, 02 Oct 2020 19:55:29 +0200

Eli Zaretskii <[email-masked]> writes:

>> From: Lars Ingebrigtsen <[email-masked]>
>> Cc: [email-masked],  [email-masked]
>> Date: Fri, 02 Oct 2020 16:30:45 +0200
>> 
>> On OpenBSD, most of the time, the function
>> "xselect.c/x_get_foreign_selection" won't get a SelectNotify with
>> (SECONDARY, TEXT) as arguments (that I did not understand and it might
>> never happen on other oses).
>> 
>> But then, while waiting at most 'x-selection-timeout' into
>> "process.c/wait_reading_process_output" the 'now' variable won't have a
>> chance of being invalidated or updated and that is what cause the
>> infinite loop.
>> 
>> Someone more knowledgeable of "process.c/wait_reading_process_output"
>> might have a better solution to this problem.
>
> If this is an OpenBSD-only problem, maybe we should install that
> change #ifdef'ed by OpenBSD?

I'll have to test it, but I've been told that the issue doesn't occur
when the "junk" is disabled in the memory allocator (j = 0).

See MALLOC OPTIONS in malloc(3) https://man.openbsd.org/malloc

j       “Less junking”.  Decrease the junk level by one if it is larger
        than 0.  Junking writes some junk bytes into the area allocated.
        Junk is bytes of 0xdb when allocating; freed chunks are filled
        with 0xdf.  By default the junk level is 1: after free, small
        chunks are completely junked; for pages the first part is junked.
        After a delay, the filling pattern is validated and the process
        is aborted if the pattern was modified.  For junk level 2,
        junking is done on allocation as well and without size
        restrictions.  If the junk level is zero, no junking is
        performed.

-- 
gjadi
PGP : AF26 E9C2 A1C8 8D32 A868  4386 1373 5477 2B65 1894