Skip to content

pty.spawn deadlock #96522

Closed
Closed
@zhangyoufu

Description

@zhangyoufu

Bug report

% yes | python3 -c "import pty; pty.spawn(['cat'])"
y
...
y^CTraceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python3.10/pty.py", line 181, in spawn
    _copy(master_fd, master_read, stdin_read)
  File "/usr/lib/python3.10/pty.py", line 161, in _copy
    _writen(master_fd, data)
  File "/usr/lib/python3.10/pty.py", line 127, in _writen
    n = os.write(fd, data)
KeyboardInterrupt

You will see 2048 lines of y due to tty echo, then the output stops and hangs forever.
Both python and cat block on write, waiting each other consume something from pty buffer.

Your environment

Tested on Linux/macOS with CPython 3.10.

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    type-bugAn unexpected behavior, bug, or error

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions