-
Notifications
You must be signed in to change notification settings - Fork 112
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
Not return response body under certain conditions. #229
Comments
ご報告ありがとうございます。不思議な挙動ですね。調査します。 |
Raspberry Pi 1 Model Bを使って再現を試みたところ、 @littlekbt さんと同じ環境を再現できました。 # curl localhost/mruby_hello で何も出力されない
location /mruby_hello { mruby_content_handler_code "Nginx.echo 'hello'"; }
# curl localhost/mruby_ello で ello が出力される
location /mruby_ello { mruby_content_handler_code "Nginx.echo 'ello'"; } 64bit版のRaspberry Piで同じ現象が起きるのかわかりませんが、ARMv6およびARMv7では起きるということですえね。困ったな 😕 debugログに気になる差は見られず。
|
また、ハッシュっぽい文字列の出力で落ちる現象も再現済み。こっちは # SEGVするコードの再現
location /hash { mruby_content_handler_code "Nginx.echo '{\"hello\": \"world\"}'"; }
location /hash { mruby_content_handler_code "Nginx.echo '{'"; } |
mrubyのビルドの仕方を、mrbconf.hを弄って変えることで解決しないかなぁ https://github.com/mruby/mruby/blob/master/include/mrbconf.h |
@hfm ハッシュでsegvした時のバックトレースってとれないんでしょうか? |
@littlekbt @hfm 以下の変更を試してみてもらえませんか。 i386(32ビット)のlinuxでも再現して、僕の手元では上の変更で直りました。 includeの順番が原因でoff_tが32ビットでコンパイルされる.oと64ビットでコンパイルされる.oが混在しており、そのせいでメモリを壊していました。潜在的な問題がある可能性もあるので、他の.cファイルも見直したほうが良いと思います。僕はちょっと時間が取れません。 |
うおーあざます帰宅したら試します! |
すごい! |
@yyamano さん 僕の環境でも直りました! |
同じく直りました! |
ありがとうございます。どなたかPR頂けると幸いです。 |
@matsumotory 僕の修正だけで良いならプルリクエストしますけど。 |
一旦それで大丈夫です。随時対応していく形で。 |
初めまして、普段よりngx_mrubyを使わせていただいております。
こういったOSSにissueを立てさせていただくのは初めてなので、至らない点があったら申し訳ありません。
Raspberry Pi Model B Revision 2.0にngx_mrubyを入れて動かしたところ、以下の2つの条件で予期しない挙動を致しました。
ビルドは
で行いました。
まず、以下の条件では、Nginx.echoをしたところ、文字列が出力されませんでした。
このように、echoで出力する文字列のはじめを
h
とすると何も出力されず以下のようにすると、出力されます。
値が出力されます。
エラーログなどには何も出力されておりません。
また、以下の条件では、SIGSEGVが発生しました。
どちらの条件も、MacOS sierra で動かした場合は値が出力されています。
僕の技術不足で原因もわかりません。よろしくお願いいたします。
The text was updated successfully, but these errors were encountered: