Skip to content

high CPU usage and freezing in Python REPL with half space character (U+200C) #124927

Closed
@houshmand-2005

Description

@houshmand-2005

Bug report

Bug description:

When entering comments in Python's REPL that contain a Half Space character (U+200C) the REPL experiences 100% CPU usage and becomes unresponsive (freezes) when using the up arrow to retrieve previous code line

Steps to Reproduce:

  1. Go to Python REPL
  2. Paste the following lines (for Windows, use F3 to activate paste mode):
# Half space ‌text
# Up arrow key
  1. Press the up arrow key to navigate back to the previous line (# Half space ‌text)

(If it doesn't work for you, go to the end of the line # Up arrow key and press the up button. It should freeze now. You can use Ctrl+C to interrupt the program, which resolves the freeze.)


in terminal this looks like this:

>>> # Half space \u200ctext
... # Up arrow key

This problem also exists in Windows when using F3 (to active the paste mode):
image

In Linux no need to active paste mode:
image

image

I can't check if this problem exists on previous python version because they break each line so i cant use up arrow to go to the previous line.

Half Space character is often used in Persian and I think in other languages that utilize right-to-left . It helps in adjusting the spacing between characters for better readability


Also a small note: when I use the half space at the end and no text after it, there is no problem:

# Half space ‌
# Up arrow key

in terminal:

>>> # Half space \u200c
... # Up arrow key

System Information:

  • Linux: Python 3.13.0rc2 | Fedora 40
  • Windows Python 3.13.0rc3 | Windows 11

CPython versions tested on:

3.13

Operating systems tested on:

Linux, Windows

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    performancePerformance or resource usagetopic-replRelated to the interactive shelltype-bugAn unexpected behavior, bug, or error

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions