You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When a user opens a file with no write permission and closes the modification, the user chooses to save the file with the same name as the file. An error message is displayed, Permission denied. After modifying the file permission, open the file again, edit the file, and save the file. The error message is still displayed, Permission denied.
Reproduce
Create a file and set the permission to 500.
-r-x------ 1 naie naie 0 Feb 11 11:54 test.txt
Open the file in Jupyterlab, modify it, and close it.
The system prompts you to save the file. Select save as and use the same name as the file name.
A message is displayed, indicating that the saving fails and Permission is denied. Check the background file list. It is found that a temporary file with no write permission is generated.
-r-x------ 1 naie naie 0 Feb 11 15:28 .~test.txt
-r-x------ 1 naie naie 0 Feb 11 11:54 test.txt
Change the file permission to 700 in Terminal.
Open, edit, and save the file. The error message "Permission denied" is still displayed.
The log is as follows:
[2025-02-11 15:39:03] [WARNING] [ServerApp] [handlers.py:752] wrote error: 'Permission denied: test.txt'
Traceback (most recent call last):
File "/home/naie/.local/lib/python3.11/site-packages/jupyter_server/services/contents/fileio.py", line 229, in perm_to_403
yield
File "/home/naie/.local/lib/python3.11/site-packages/jupyter_server/services/contents/fileio.py", line 218, in atomic_writing
with atomic_writing(os_path, *args, **kwargs) as f:
File "/usr1/build/lib/python3.11/contextlib.py", line 137, in enter
File "/home/naie/.local/lib/python3.11/site-packages/jupyter_server/services/contents/fileio.py", line 104, in atomic_writing
copy2_safe(path, tmp_path, log=log)
File "/home/naie/.local/lib/python3.11/site-packages/jupyter_server/services/contents/fileio.py", line 38, in copy2_safe
shutil.copyfile(src, dst)
File "/usr1/build/lib/python3.11/shutil.py", line 258, in copyfile
PermissionError: [Errno 13] Permission denied: '/home/naie/work/.~test.txt'
Check the jupyter_server source code services/contents/fileio.py. Before saving the file, it run the shutil.copyfile command to copy the file as a temporary file. In this case, the permission of the temporary file is the same as that of the source file. When an OS error occurs, jupyter_server does not clear the generated temporary files. As a result, jupyter_server does not have the permission to save the files forever.
Expected behavior
Context
Operating System and version: Linux 3e82a28714e8 5.10.0-136.12.0.86.h2367
Browser and version: Chrome
JupyterLab version: 3.6.7
jupyter_server version: 2.10.0
Troubleshoot Output
Paste the output from running `jupyter troubleshoot` from the command line here.
You may want to sanitize the paths in the output.
Command Line Output
Paste the output from your command line running `jupyter lab` here, use `--debug` if possible.
Browser Output
Paste the output from your browser Javascript console here, if applicable.
The text was updated successfully, but these errors were encountered:
Originally posted by @WangChangsongGit in the JupyterLab repository: jupyterlab/jupyterlab#17280
Description
When a user opens a file with no write permission and closes the modification, the user chooses to save the file with the same name as the file. An error message is displayed, Permission denied. After modifying the file permission, open the file again, edit the file, and save the file. The error message is still displayed, Permission denied.
Reproduce
-r-x------ 1 naie naie 0 Feb 11 11:54 test.txt
-r-x------ 1 naie naie 0 Feb 11 15:28 .~test.txt
-r-x------ 1 naie naie 0 Feb 11 11:54 test.txt
The log is as follows:
[2025-02-11 15:39:03] [WARNING] [ServerApp] [handlers.py:752] wrote error: 'Permission denied: test.txt'
Traceback (most recent call last):
File "/home/naie/.local/lib/python3.11/site-packages/jupyter_server/services/contents/fileio.py", line 229, in perm_to_403
yield
File "/home/naie/.local/lib/python3.11/site-packages/jupyter_server/services/contents/fileio.py", line 218, in atomic_writing
with atomic_writing(os_path, *args, **kwargs) as f:
File "/usr1/build/lib/python3.11/contextlib.py", line 137, in enter
File "/home/naie/.local/lib/python3.11/site-packages/jupyter_server/services/contents/fileio.py", line 104, in atomic_writing
copy2_safe(path, tmp_path, log=log)
File "/home/naie/.local/lib/python3.11/site-packages/jupyter_server/services/contents/fileio.py", line 38, in copy2_safe
shutil.copyfile(src, dst)
File "/usr1/build/lib/python3.11/shutil.py", line 258, in copyfile
PermissionError: [Errno 13] Permission denied: '/home/naie/work/.~test.txt'
Check the jupyter_server source code services/contents/fileio.py. Before saving the file, it run the shutil.copyfile command to copy the file as a temporary file. In this case, the permission of the temporary file is the same as that of the source file. When an OS error occurs, jupyter_server does not clear the generated temporary files. As a result, jupyter_server does not have the permission to save the files forever.
Expected behavior
Context
Troubleshoot Output
Command Line Output
Browser Output
The text was updated successfully, but these errors were encountered: