[#118346] [Ruby master Bug#20586] Some filesystem calls in dir.c are missing error handling and can return incorrect results if interrupted — "ivoanjo (Ivo Anjo) via ruby-core" <ruby-core@...>
Issue #20586 has been reported by ivoanjo (Ivo Anjo).
13 messages
2024/06/19
[ruby-core:118328] [Ruby master Bug#20582] Directory not empty
From:
"wzh4464 (Zihan Wu) via ruby-core" <ruby-core@...>
Date:
2024-06-16 03:06:46 UTC
List:
ruby-core #118328
Issue #20582 has been reported by wzh4464 (Zihan Wu).
----------------------------------------
Bug #20582: Directory not empty
https://bugs.ruby-lang.org/issues/20582
* Author: wzh4464 (Zihan Wu)
* Status: Open
* ruby -v: ruby 3.3.3 (2024-06-12 revision f1c7b6f435) [arm64-darwin23]
* Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN
----------------------------------------
#### Summary
When running `brew upgrade ruby`, several directories encountered the error: `Error: Directory not empty @ dir_s_rmdir /private/tmp/xxx`. After inspection, it was found that these directories contained `.DS_Store` files.
#### Reproduce Process
1. **System Details:**
- **OS Version:** macOS 14.5 (23F79)
- **Chip:** Apple Silicon M1
2. **Steps to Reproduce:**
1. Ensure Homebrew is installed and up to date.
2. Run the following command to upgrade Ruby:
```sh
brew upgrade ruby
```
3. Observe the error during the upgrade process.
#### Result of Reproduce Process
During the upgrade process, several directories failed to be removed due to the presence of `.DS_Store` files. The specific error encountered was:
```
Error: Directory not empty @ dir_s_rmdir /private/tmp/homebrew-unpack20240616-1699-7vglx8/ruby/3.3.3/lib/ruby/gems/3.3.0
```
#### Expected Result
The expected result is a successful upgrade of Ruby without encountering any errors related to directory removal. The upgrade process should handle the presence of hidden files like `.DS_Store` and proceed without interruptions.
#### Additional Information
- **Ruby Version:** 3.3.3
- **Homebrew Version:** Homebrew 4.3.5-118-g766b9b8
- **Logs and Output:**
The error logs indicating the presence of `.DS_Store` files in the temporary directories.
#### Steps Taken to Resolve
- Manually checked and confirmed the presence of `.DS_Store` files in the directories mentioned in the error logs.
- Removed `.DS_Store` files manually and retried the upgrade process.
#### Suggested Fix
To prevent such errors in the future, the upgrade script should handle the presence of hidden files like `.DS_Store` and ensure they do not block the directory removal process. Adding a step to ignore or remove these files during cleanup would be beneficial.
#### Maintainer Assignment
Since this issue is encountered on macOS, it may be relevant to assign it to the current maintainer for macOS-related issues.
#### Thank you!
Thank you for your attention to this issue. Looking forward to a resolution.
--
https://bugs.ruby-lang.org/
______________________________________________
ruby-core mailing list -- ruby-core@ml.ruby-lang.org
To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/