rust-lang / rust

Empowering everyone to build reliable and efficient software.
https://www.rust-lang.org
Other
98.38k stars 12.72k forks source link

[discussion] `ErrorKind::FilesystemQuotaExceeded` from `io_error_more` #130190

Open GrigorenkoPV opened 2 months ago

GrigorenkoPV commented 2 months ago

@rustbot label C-discussion

Main tracking issue: #86442

Background

The io_error_more feature introduced 21 new variants into ErrorKind. They were FCP'd back in December 2022, but there appeared to be quite a lot of disagreement about 4 of the added variants, so the stabilization (#106375) got stalled for over twenty months. Thankfully, the 17 uncontroversial variants got stabilized in #128316, so now we just need to iron out a satisfactory design for the remaining 4 variants, and then they can be stabilized too.

In order to not block any of the remaining variants on each other and to not intertwine the discussions, I've created 4 separate issues, which summarize the concerns & suggestions voiced up until this point and can serve as a place for further discussion.

FilesystemQuotaExceeded

Currently corresponds to EDQUOT on Unix and ERROR_DISK_QUOTA_EXCEEDED on Windows. (https://github.com/rust-lang/rust/issues/86442#issuecomment-1235763183). As well as WSAEDQUOT on Windows (#130206).

Current docs description:

Filesystem quota was exceeded.

Drop "Filesystem" from the name

Can FilesystemQuotaExceeded be renamed QuotaExceeded? AFAIK Linux has no other quota error and EDQUOT is also used generically (not only for filesystem quotas). A few other uses are visible here: https://elixir.bootlin.com/linux/v4.5/ident/EDQUOT. The comment in errno.h simply describes it as "Quota exceeded".

Originally posted by kalcutter in https://github.com/rust-lang/rust/issues/86442#issuecomment-1367072434

With my libs-api hat on: :+1: for renaming FilesystemQuotaExceeded to QuotaExceeded, as OSes may use it for other kinds of quotas.

Originally posted by Josh Triplett in https://github.com/rust-lang/rust/issues/106375#issuecomment-1371870620

I am not quite so sure about [keeping "Filesystem" in the name of] FilesystemQuotaExceeded but again I think APIs in std won't produce this error other than for filesystem operations.

Originally posted by Ian Jackson in https://github.com/rust-lang/rust/issues/106375#issuecomment-1372131054

Seemingly a consensus.

~Also map WSAEDQUOT on Windows~

Done in #130206.

Old description > There is also the winsock error `WSAEDQUOT`. Shouldn't that be mapped [...] to `QuotaExceeded`? _Originally posted by kalcutter in https://github.com/rust-lang/rust/issues/106375#issuecomment-1372413484_ > Yes, I think so. I'm not sure why we overlooked that. Generally I would expect that a `WSAE` error should be mapped the same way as the correspondingly named `E` error on Unix. I think I tired to do that. Are there other omissions? _Originally posted by Ian Jackson in https://github.com/rust-lang/rust/issues/106375#issuecomment-1372422167_ A consensus.
dtolnay commented 2 months ago

@rfcbot fcp merge

Stabilizing with a rename from FilesystemQuotaExceeded to just QuotaExceeded, as implemented by https://github.com/rust-lang/rust/pull/130254.

rfcbot commented 2 months ago

Team member @dtolnay has proposed to merge this. The next step is review by the rest of the tagged team members:

No concerns currently listed.

Once a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!

See this document for info about what commands tagged team members can give me.

joshtriplett commented 3 days ago

Ping @Amanieu @BurntSushi @m-ou-se