Skip to content

PyREPL raises exception while trying to write to the history file on a read-only file system #128066

Closed
@vladimir-poghosyan

Description

@vladimir-poghosyan

Bug report

Bug description:

When using new Python 3.13 pyrepl on a read-only file system, attempting to exit the REPL raises the following exception: OSError: [Errno 30] Read-only file system: '/root/.python_history'. The same setup works with Python 3.12.

dev:/home/dev$ docker run -it --read-only python:3.12-slim-bookworm python3
Python 3.12.7 (main, Nov 12 2024, 02:26:49) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print('hello')
hello
>>> exit()
dev:/home/dev$ docker run -it --read-only python:3.13-slim-bookworm python3
Python 3.13.1 (main, Dec  4 2024, 20:40:24) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print('hello')
hello
>>> exit()
Exception ignored in atexit callback <function register_readline.<locals>.write_history at 0x7f56689a3600>:
Traceback (most recent call last):
  File "<frozen site>", line 574, in write_history
  File "/usr/local/lib/python3.13/_pyrepl/readline.py", line 453, in write_history_file
    f = open(os.path.expanduser(filename), "w",
OSError: [Errno 30] Read-only file system: '/root/.python_history'

CPython versions tested on:

3.12, 3.13

Operating systems tested on:

Linux

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    3.13bugs and security fixes3.14bugs and security fixestopic-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