Subject: bug#40323: 28.0.50; error in process filter: Invalid search bound (wrong side of point)

From: Jacob Lagares Pozo <[email-masked]>
Date: Fri, 17 Apr 2020 13:43:52 +0200

Also, I should mention that I tried reinstalling Emacs and a few 
packages, just in case something was corrupted. Doesn't seem like the 
case, it seems like a legitimate bug.

On 2020-04-17 13:39, Jacob Lagares Pozo wrote:
> Hello Noam,
>
> I'm sorry for the late response.
>
> It looks like your patch does indeed work and logs a bunch of stuff to 
> the *trace-output* buffer every time a program running on the async 
> buffer outputs something.
>
> For brevity, I'll just post just a single one of them, because the 
> whole buffer is 172k characters and growing. I hope it's enough; if it 
> is not, please let me know and I'll post the whole thing.
>
> Jacob
>
> On 2020-04-15 04:25, Noam Postavsky wrote:
>>> The patch you provided does indeed seem to fix the issue, or at least
>>> it hasn't happened for the time I tested it (I can verify various
>>> processes were running and outputting things to the async buffer).
>>>
>>> I do not have any idea as to why did those markers get swapped
>>> around. Is there any specific place that deals with them that I could
>>> check? Could this be a bug with comint mode, maybe clashing with
>>> another package?
>> Try reproducing the issue after evaluating the code below, perhaps
>> *trace-output* will have some useful clues.
>>
>>      (load-library "comint.el") ;; Can only trace set-marker from 
>> Lisp source.
>>
>>      (defun bug-40323-get-comint-output-marker ()
>>        (list :comint-pmark
>>              (and (markerp comint-last-output-start)
>>                   (eq (marker-buffer comint-last-output-start)
>>                       (current-buffer))
>>                   (process-mark (get-buffer-process 
>> (current-buffer))))))
>>
>>      (dolist (fun '(set-marker
>>                     comint-send-input
>>                     comint-output-filter
>>                     comint-adjust-window-point
>>                     comint-adjust-point
>>                     ansi-color-process-output))
>>        (trace-function fun nil #'bug-40323-get-comint-output-marker))