Feature #73986
openModernise cls interface with compile time safety
0%
Description
This is a preparation PR for EC direct reads, but is also provides protection for balanced reads.
This PR does the following:
Adds a new C++ interface, with compile time safety, which prevents any code from attempting to call an exec which may do a write without marking the OP as write.
Deprecates any C++ interface which can be used unsafely.
Refactors all clients within Ceph to use the new interface.
Deprecates any C interface providing execs within read ops, since they cannot be checked.
Note: This interface was not in use within the ceph code base.
Refactors "IOCTX" interface to flag all execs as writes. This is safe, since reads are always permitted as part of writes.
Note: Python uses these interface and so is now safe.
Classifies any attempt to perform an exec with a "write" without a WRITE flag as a misdirected op and fails it.
Deletes cls_acl, cls_crypto and key_value_store. These were unmaintained consumers of the old API. Each has not been properly maintained for many years.
Updated by Radoslaw Zarzynski 4 months ago
- Status changed from In Progress to Fix Under Review
- Assignee set to Alex Ainscow
Updated by Radoslaw Zarzynski 3 months ago
Discussed in CDM. Alex addresses comments.
Updated by Laura Flores 3 months ago ยท Edited
YouTube link for CDM discussion: https://youtu.be/S8xNtdiNqKA?si=I3hSUMnkZo1KjVV6
Updated by Radoslaw Zarzynski 3 months ago
scrub note: will do a 2nd round of review.
Updated by Radoslaw Zarzynski about 2 months ago
Needs a second round of review. Bump up.