gh-128066: Properly handle history file writes for RO fs on PyREPL (gh-134380)

Co-authored-by: Łukasz Langa <lukasz@langa.pl>
This commit is contained in:
Chris Patti 2025-05-20 15:47:57 -04:00 committed by GitHub
parent c7f8e706e1
commit c91ad5da9d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 12 additions and 1 deletions

View file

@ -75,6 +75,7 @@ import builtins
import _sitebuiltins
import _io as io
import stat
import errno
# Prefixes for site-packages; add additional prefixes like /usr/local here
PREFIXES = [sys.prefix, sys.exec_prefix]
@ -578,10 +579,15 @@ def register_readline():
def write_history():
try:
readline_module.write_history_file(history)
except (FileNotFoundError, PermissionError):
except FileNotFoundError, PermissionError:
# home directory does not exist or is not writable
# https://bugs.python.org/issue19891
pass
except OSError:
if errno.EROFS:
pass # gh-128066: read-only file system
else:
raise
atexit.register(write_history)