Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

入れ子になったbashの子シェルからexitした際に大量のログが出る #15

Closed
Kiikurage opened this issue Oct 5, 2018 · 10 comments

Comments

@Kiikurage
Copy link

ble.sh環境下で bash を更に立ち上げexitした際に、以下のように大量のログが出ます

[1]    Running                 '/bin/stty' "$@"
[2]   Stopped                 '/bin/stty' "$@"
[3]   Stopped                 '/bin/stty' "$@"
(以下、無限に続く)

ble.sh.bashrc 内で読み込んでおり、入れ子になったシェルの両方にロードされています。

@akinomyoga
Copy link
Owner

ご報告ありがとうございます! こちらでいろいろ試したところ Bash 3.2 で C-d で抜けようとした時に類似の現象が再現するようでした。調べてみます。

@akinomyoga
Copy link
Owner

対応に時間がかかっていて申し訳ありません。別の簡単そうに思った Issue #16 の方を先に片付けようと思ったのですが、そちらで泥沼に陥ってしまったのでまだ対応に時間がかかりそうです。

先にこちらで再現している問題とそちらで発生している問題が同じかどうか確認させていただきたく思います。こちらの手元では Bash 3.0-3.2 の中で Bash 3.1-3.2 を起動した時に問題が発生しています。Bash 3.0-3.2, 4.0-4.4, 5.0β の中で Bash 3.0, 4.0-4.4, 5.0β を起動した時には再現していません。そちらでお使いの Bash のバージョンは 3.1 または 3.2 という事で問題ないでしょうか。

@Kiikurage
Copy link
Author

Kiikurage commented Oct 9, 2018 via email

@Kiikurage
Copy link
Author

バージョンを確認しました

GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin18)

です

@Kiikurage
Copy link
Author

また、bashのバージョンを上げたところとりあえず問題は発生しなくなりました。

@akinomyoga
Copy link
Owner

akinomyoga commented Oct 9, 2018

確かめていただきありがとうございます! ということはこちらで再現しているのと同じ問題ですね。わざわざ新しい Bash まで試していただいてありがとうございます (実の所、Bash 3.2 以前は機能が少ないので ble.sh は結構無理をした実装になっており動作が遅いのです。従って本当は Bash 4.0 以降が推奨なのでした)。

この問題に関しては #16 が終わってから Bash の動作を調べて対策いたしますね。

@akinomyoga
Copy link
Owner

  • d4b39b3 問題の特定に時間がかかりましたが直しました (結局この1行の修正でした)。

Bash の振る舞いが解せないので調べてみると Bash 4.0 の修正で挙げられていた以下のバグを踏んでいました。リダイレクトを作る前に明示的にファイルディスクリプタを閉じるように対策しました。

------------------------------------------------------------------------------
This document details the changes between this version, bash-4.0-alpha,
and the previous version, bash-3.2-release.

1.  Changes to Bash

(中略)

ee. Fixed a bug that caused bash to close file descriptors greater than 10
    when they were used in redirections.

@akinomyoga
Copy link
Owner

@Kiikurage さま、こちら修正に時間がかかってしまいましたが、問題が発生しなくなっているか確認をお願いしてもよろしいでしょうか。お手数をおかけしますがよろしくおねがいいたします。

@Kiikurage
Copy link
Author

ご対応くださりありがとうございます。
d4b39b3 をビルドして使ってみたところ、GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin18) で問題が発生しなくなっていることを確認しました。
ありがとうございます。

@akinomyoga
Copy link
Owner

早速ご確認いただきありがとうございます! こちらの Issue は閉じさせていただきますね

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants