Eli Zaretskii writes: >> From: Lars Ingebrigtsen >> Cc: daimrod@omecha.info, 29170@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