https://github.com/watson1978/rmagick-issue483
https://github.com/watson1978/rmagick-issue483
Last synced: 8 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/watson1978/rmagick-issue483
- Owner: Watson1978
- Created: 2019-11-11T15:29:42.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-11-11T15:55:57.000Z (over 6 years ago)
- Last Synced: 2024-12-28T12:47:53.678Z (over 1 year ago)
- Language: C
- Size: 1000 Bytes
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## 使い方
```
$ ./setup.sh
$ ruby sample.rb
```
## 再現環境
* Ruby 2.6.0 以降
* macOS 10.15 (試した環境)
## 問題の説明
macOS 上で Ruby 2.6.0 以降を使用した際に、拡張ライブラリ内で `fork()/exec()` で外部コマンドを実行したあと `waitpid()` をコールすると失敗するようになりました。
私がメンテナンスしている RMagick 利用している ImageMagick が PDF を処理する際にこのような処理を行っており、macOS + Ruby 2.6.0 以降で処理に失敗するようになり困っております。
https://github.com/Watson1978/rmagick-issue483 に再現コードを用意しており、以下の様に実行していただくと Ruby 2.6.0 以降でエラー終了します。
```
$ ./setup.sh
$ ruby sample.rb
$ ruby sample.rb
Ruby v2.6.0
Error waitpid(): Interrupted system call
```
```
$ ./setup.sh
$ ruby ./sample.rb
Ruby v2.6.5
Error waitpid(): Interrupted system call
```
Ruby 2.5.x 以下ですと期待通りに `WIFEXITED` のパスを通り正常に終了します。
```
$ ./setup.sh
$ ruby sample.rb
Ruby v2.5.7
(1) WIFEXITED : status = 0
```
```
$ ./setup.sh
$ ruby sample.rb
Ruby v2.3.8
(1) WIFEXITED : status = 0
```
確認した限り、macOS 上だけでこの現象が発生します。