[#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:118329] [Ruby master Bug#20582] Directory not empty
From:
"jeremyevans0 (Jeremy Evans) via ruby-core" <ruby-core@...>
Date:
2024-06-16 03:17:31 UTC
List:
ruby-core #118329
Issue #20582 has been updated by jeremyevans0 (Jeremy Evans).
Status changed from Open to Feedback
Can you explain why you think this is an issue with Ruby and not an issue with Homebrew, considering your are running `brew upgrade ruby` when it happens?
----------------------------------------
Bug #20582: Directory not empty
https://bugs.ruby-lang.org/issues/20582#change-108835
* Author: wzh4464 (Zihan Wu)
* Status: Feedback
* 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/