Subject: bug#74894: 29.4; Emacs not responding when calling python-fix-imports

From: kobarity <[email-masked]>
Date: Sat, 04 Jan 2025 23:17:29 +0900

Eli Zaretskii wrote:
> 
> [Please use Reply All, to have everyone CC'ed.]
> 
> > Date: Sun, 22 Dec 2024 14:35:51 +0000
> > From: Keglo Stephane <[email-masked]>
> > 
> > This is a simple recipe to reproduce the bug:
> > 1- open an empty python buffer
> > 2- start an inferior python shell C-c C-p
> > 3- Enter the following code:  print(string.digits) 
> > 4- Evaluation of this code should throw an exception since the string module is not imported
> > 5- Trying to use python-add-import ( C-c TAB a) or python-fix-imports ( C-c TAB fix) to add the missing
> > import, Emacs freeze a moment.
> > you have to press Ctrl-G to make Emacs respond again.
> 
> kobarity, any suggestions?

Sorry, I did not realize that email was a DM.  Here is my reply:

> Thank you, but I cannot reproduce the problem.
> 
> Import management depends on the contents of the directory (or more
> precisely, the project).  If you try the above procedure with an empty
> directory (outside of a project, such as a Git repository), you may
> not have problems.  Therefore, it may be a little difficult to
> establish a reproducible recipe.
> 
> Just to add, import management works without inferior python.

So, my expectation is that Keglo will do the research I previously
mailed:

> While Emacs is not responding, run "top" to see if there is a process
> with high CPU utilization.  It is likely Python or Emacs is using CPU.
> If the CPU utilization of Python is high, please tell us the arguments
> of the Python process.  If the CPU utilization of Emacs is high,
> please check if you can abort with Ctrl-G or sending SIGUSR2 signal.
> If you can abort, please send the backtrace:
> 
> 1. emacs -Q
> 2. M-x load-fie
>    Specify the location of python.el (or python.el.gz, not
>    python.elc).  You can use M-x locate-library and enter "python" to
>    locate the file.
> 3. M-x toggle-debug-on-quit
> 4. Reproduce the issue.
> 5. Abort with Ctrl-G or SIGUSR2.

Other useful information includes:

- Whether you are working on "project"
- Whether or not the "freeze" last for a few minutes or so