matsumotory / ngx_mruby

ngx_mruby - A Fast and Memory-Efficient Web Server Extension Mechanism Using Scripting Language mruby for nginx
https://ngx.mruby.org/
988 stars 112 forks source link

Support Mruby 3.2 #511

Closed pyama86 closed 1 year ago

pyama86 commented 1 year ago

Pull-Request Check List

pyama86 commented 1 year ago

ひとまずmruby 3.2で動くようにはなりました。ただ下記の問題があります。

~GCでngx request系の変数がfreeされる~

~https://github.com/matsumotory/ngx_mruby/blob/master/src/http/ngx_http_mruby_request.c#L21 上記の様なNginx::Request.new.uriのように、nginxの構造体の値をRubyでWrapしているような変数がGCでfreeされる挙動があります。一旦Fiber実行時にGCを殺すことで対処しましたが、mrubyのほうで直してほしいなぁ。Matzさんが最近GC周り触ってる気配があるので様子を見ます。~

追記: tag 3.2.0ではなくmasterを利用したところ、問題なく動作するようになりました。よってこの問題はクリアしました。

FiberのCとRubyコンテキストの往来ができなくなった

PRずみ https://github.com/mruby/mruby/pull/6063

たぶん、これh2oもaffectedなはずなので、取り込んでほしい〜。

~ビルドが壊れる~

~https://github.com/mruby/mruby/issues/6064 mruby単体のビルドだけを想定して、ビルド周りが改善されているっぽくて、それ、利用者壊れるよ〜てのフィードバックした。~

追記 https://github.com/mruby/mruby/issues/6064#issuecomment-1733687080 上記にて対応してもらえました。

~一旦、Ready for reviewにしますけど、上記のような状態なので、急いでマージする必要はなさそうす。~

FiberとCのRubyのコンテキストの往来は、とりあえず手元のコードは修正してpushしてあるので、マージReadyです。

pyama86 commented 1 year ago

@matsumotory CI通ってますん^_^

matsumotory commented 1 year ago

Great works! Thanks!