Subject: bug#23609: 25.0.92; Python eldoc freeze

From: Andreas Röhler <[email-masked]>
Date: Wed, 25 May 2016 08:11:13 +0200

On 24.05.2016 17:34, Jules Tamagnan wrote:
> This is an issue in relation to python and the interpetter shell. If
> the python shell is running something and it is not done then when the
> user goes back the the document that was being editted emacs will
> freeze. If the user hits C-g then a keyboard interupt is sent to the
> interpeter and the action that was being run is canceled. If the user
> has the misfortune of using the mouse to click into another window then
> emacs will not be able to be recovered (haven't tested that last part
> entirely but the easiest way is to get back to working is to 'sudo
> killall emacs')
>
> The issue seems to be with eldoc mode. If eldoc mode (or
> global-eldoc-mode) is on then python.el tries to send something to the
> interepter to get the definition of the symbol at the point and then
> since something is running in the interpetter emacs will hang while
> waiting for the interpetter to repond. This issue is most obvious in
> emacs 25 because global-eldoc-mode is on by default. This causes loss of
> data.
>
> This bug is easily reproducable from emacs -Q.
>   - run emacs -Q
>   - Open a file /tmp/test.py (or any other python file)
>   - C-c C-p to start the interpetter (it does not matter if the interpetter
>     is dedicated or not)
>   - in the interpetter write an expression that will not terminate
>     e.g. while True: 2+2
>     e.g. (anything that plots in matplotlib)
>   - go back to /tmp/test.py and type anything.
>   - you will now be frozen
>   - type C-g to send a keyboard interupt to the interpetter
>
> repeating these steps without global-eldoc-mode does not cause any
> issues
>
> The most obvious fix that I have found and use is to set
> global-eldoc-mode to -1 on init.
>
>

May reproduce this with current pretest

GNU Emacs 25.0.94.1 (i686-pc-linux-gnu, GTK+ Version 2.24.25) of 2016-05-18