過去に何度かKnot resolverを取り上げていますが、実は殆どのテスト環境はarm64(aarch64)上で行っていました。
で、最近、knot resolverが1.3.3になった際に、一部の環境でSegmentation faultが発生するようになってしまいました。
追記アリ:
で、公式のGithubにissueを上げたところ、
「関連ライブラリのLuaJITはarm64(aarch64)には対応していないから、そうなるね」
とご連絡頂きました。
マジかよ~と思って確認したところ、過去にThe LuaJIT Projectから発表された資料の中にLuaJITの開発ロードマップがありまして、そちらによると当初は2016年末までにVer2.1で対応を進めるということになっていたようですが、いま確認できる資料だと2017年中、2.1正式版での対応を予定しているそうです。現在は2.1.0 beta 3なので、もう少しという状況なのでしょうか。Githubを確認してみましたが、対応状況についてはよく分かりませんでした。
で、ソースからのbuildも試してみたのですが、これでも状況は改善せずでした。
ただ、knot resolverの開発陣からはarm64(aarch64)環境でも、LuaJITは32bit?に切り替わって動作する、みたいなコメントを頂いたので、別のARMボード(やはりarm64)で試したところ確かに動作する場合もありました(少なくとも起動時からSegmentation faultは発生しませんでした)。
どちらもKernelは4.4だったのですが、詳細については不明です。なんとなくstraceとgdbも使用したのですが、原因を追求できずでした。
追記:
さすがにARMのアーキテクチャ周りは勉強したことがないので、よく分かりません。