tramp-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Emacs unexpectedly stalls on remote image


From: Michael Albinus
Subject: Re: Emacs unexpectedly stalls on remote image
Date: Thu, 10 Dec 2020 13:09:46 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

Mikhail P <mikpom@fastmail.com> writes:

> Greetings,

Hi Mikhail,

> After that, on resizing the window with image or the whole frame Emacs
> stalls. The hang occurred from 10:29 till 10:35 (as seen from
> timestamps in attached file) when I interrupted it with C-g.

Thanks for the debug info. It explains what happens, best seen in the
backtrace.

> 10:35:15.924058 tramp-accept-process-output (10) #
>   backtrace()
>   tramp-signal-hook-function(quit nil)
>   accept-process-output(#<process *tramp/ssh horsehop*> nil nil t)
>   tramp-accept-process-output(#<process *tramp/ssh horsehop*>)

[...]

>   file-readable-p("/ssh:horsehop:/storage1/mikpom/wizard_devel/CNV/fi...")
>   image-toggle-display-image()
>   image-fit-to-window(#<window 3 on TCGA-02-2485.png>)
>   apply(image-fit-to-window #<window 3 on TCGA-02-2485.png>)
>   timer-event-handler([t 0 1 0 nil image-fit-to-window (#<window 3 on 
> TCGA-02-2485.png>) idle 0])
>   accept-process-output(#<process *tramp/ssh horsehop*> nil nil t)
>   tramp-accept-process-output(#<process *tramp/ssh horsehop*>)

[...]

>   file-readable-p("/ssh:horsehop:/storage1/mikpom/wizard_devel/CNV/fi...")
>   image-toggle-display-image()
>   image-fit-to-window(#<window 3 on TCGA-02-2485.png>)
>   apply(image-fit-to-window #<window 3 on TCGA-02-2485.png>)
>   timer-event-handler([t 0 1 0 nil image-fit-to-window (#<window 3 on 
> TCGA-02-2485.png>) idle 0])
>   accept-process-output(#<process *tramp/ssh horsehop*> nil nil t)
>   tramp-accept-process-output(#<process *tramp/ssh horsehop*>)

[...]

>   file-readable-p("/ssh:horsehop:/storage1/mikpom/wizard_devel/CNV/fi...")
>   image-toggle-display-image()
>   image-fit-to-window(#<window 3 on TCGA-02-2485.png>)
>   apply(image-fit-to-window #<window 3 on TCGA-02-2485.png>)
>   timer-event-handler([t 0 1 0 nil image-fit-to-window (#<window 3 on 
> TCGA-02-2485.png>) idle 0])
>   accept-process-output(#<process *tramp/ssh horsehop*> nil nil t)
>   tramp-accept-process-output(#<process *tramp/ssh horsehop*>)

and so on. Obviously, the idle timer image-fit-to-window is called, and
it doesn't finish within the image-auto-resize-on-window-resize time
frame (1 second). So the next idle timer is called on top, which also
doesn't finish in time, etc pp. This confuses Tramp.

I have prepared a patch for tramp-sh.el (appended), which shall prevent
this scenario. Could you pls try, whether this patch fixes your problem?

> -Thanks,
>
> Mikhail

Best regards, Michael.

Attachment: txtTwKPaDcnLa.txt
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]