GNU bug report logs - #29170
Emacs freezes when doing a gui-get-selection on OpenBSD

Previous Next

Package: emacs;

Reported by: daimrod <at> omecha.info (Grégoire Jadi)

Date: Mon, 6 Nov 2017 14:22:02 UTC

Severity: normal

Tags: confirmed

Merged with 45544

Found in versions 26.0.90, 27.1.90

Fixed in version 28.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


Message #50 received at 29170 <at> debbugs.gnu.org (full text, mbox):

From: daimrod <at> omecha.info
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: Lars Ingebrigtsen <larsi <at> gnus.org>, 29170 <at> debbugs.gnu.org
Subject: Re: bug#29170: 26.0.90; Emacs freezes when capturing an org-template
Date: Fri, 02 Oct 2020 19:55:29 +0200
[Message part 1 (text/plain, inline)]
Eli Zaretskii <eliz <at> gnu.org> writes:

>> From: Lars Ingebrigtsen <larsi <at> gnus.org>
>> Cc: daimrod <at> omecha.info,  29170 <at> debbugs.gnu.org
>> 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
[signature.asc (application/pgp-signature, inline)]

This bug report was last modified 3 years and 338 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.