src: workaround AIX libc++ std::filesystem bug#62788
src: workaround AIX libc++ std::filesystem bug#62788nodejs-github-bot merged 1 commit intonodejs:mainfrom
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
|
Fighting linters 😢 |
On AIX libc++ is returning `EEXIST` instead of `EACCES` when using `std::filesystem::remove_all()` without appropriate permissions to recursively remove the directory. Co-authored-by: Abdirahim Musse <abdirahim.musse@ibm.com> Signed-off-by: Richard Lau <richard.lau@ibm.com>
This passed so should unblock switching AIX over to build with clang. |
sxa
left a comment
There was a problem hiding this comment.
Slightly odd behaviour but this sounds like a reasonable workaround.
Would be "interesting" (but not required for this to land) to see if the OS-provided libc on other AIX levels are affected including AIX 7.3 to understand if it may be worth reverting in the future sometime.
|
Fast-track has been requested by @richardlau. Please 👍 to approve. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #62788 +/- ##
==========================================
- Coverage 89.69% 89.69% -0.01%
==========================================
Files 706 706
Lines 218247 218247
Branches 41777 41773 -4
==========================================
- Hits 195760 195752 -8
- Misses 14401 14407 +6
- Partials 8086 8088 +2
🚀 New features to boost your workflow:
|
|
Landed in 5f02bdb |
On AIX libc++ is returning
EEXISTinstead ofEACCESwhen usingstd::filesystem::remove_all()without appropriate permissions to recursively remove the directory.Refs: nodejs/build#4286 (comment)
Refs: #62790
When built on AIX with clang, we consistently hit this test failure in
parallel/test-fs-rm:@abmusse has done investigation that indicates this might be a libc++ on AIX bug (or at least difference). We'll try and pursue that as a longer term solution, but to unblock switching the AIX builds to clang this PR works around the difference.