Bug #19897
openFUSE should return a different error when attempting to create a file in a project
0%
Description
You cannot create a bare file in a Project in the FUSE mount (only in Collections). If you try, you will get I/O error. This is disorienting because I/O error usually means something very bad happened. This should be something else like:
EPERM "Operation not permitted"
ENOSYS "Function not implemented"
Internally it is actually throwing NoImplementedError so catching that exception generally and turning it into ENOSYS would make sense. However the particular function that tries to create a file in a project could throw EPERM since it is more precise semantics.
From discussion: let's go with ENOTSUP "Operation not supported (POSIX.1-2001)."
Updated by Peter Amstutz almost 2 years ago
- Status changed from New to In Progress
Updated by Peter Amstutz almost 2 years ago
- Status changed from In Progress to New
Updated by Peter Amstutz almost 2 years ago
- Target version changed from 2023-02-01 sprint to To be groomed
Updated by Peter Amstutz almost 2 years ago
- Assigned To deleted (
Peter Amstutz) - Target version deleted (
To be groomed) - Release set to 59
Updated by Peter Amstutz almost 2 years ago
- Target version set to To be scheduled
Updated by Brett Smith almost 2 years ago
Before we put this on a sprint I feel like we should really pick which error we're going with.
Personally I would vote for ENOSYS
since I think "the system doesn't support this" more accurately describes the problem than "you don't have permission to do this."
Updated by Peter Amstutz almost 2 years ago
- Target version changed from To be scheduled to To be groomed
Updated by Peter Amstutz almost 2 years ago
- Target version changed from To be groomed to To be scheduled
Updated by Peter Amstutz almost 2 years ago
- Target version changed from To be scheduled to 2023-02-01 sprint
Updated by Peter Amstutz almost 2 years ago
ENOTSUP Operation not supported (POSIX.1-2001). EOPNOTSUPP Operation not supported on socket (POSIX.1-2001). (ENOTSUP and EOPNOTSUPP have the same value on Linux, but according to POSIX.1 these error values should be distinct.)
The thing that actually matters is what error message is printed by other programs, e.g. the shell, when you try to do something. Which probably comes from strerror(3)