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

From: <[email-masked]>
Date: Thu, 08 Oct 2020 23:43:28 +0200

Lars Ingebrigtsen <[email-masked]> writes:

> [email-masked] writes:
>
>>> If this is an OpenBSD-only problem, maybe we should install that
>>> change #ifdef'ed by OpenBSD?
>
> Yes, but as noted by others in the thread, the patch leads to other
> issues on OpenBSD, too, so it's not a complete solution.
>
>> 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.
>
> Huh.  How odd that this would have an affect on this infloop?

So, I tested it on emacs-27.1 with junk disabled and it still freezes.

$ MALLOC_OPTIONS=jj emacs -q

(let ((value 'SECONDARY)
      (x-selection-timeout 2000))
  ;;; from org-get-x-clipboard in lisp/org-compat.el
  (gui-get-selection value 'UTF8_STRING)
  (gui-get-selection value 'COMPOUND_TEXT)
  (gui-get-selection value 'STRING)
  (gui-get-selection value 'TEXT))

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