なんか急にシェル芸botでtextimgが動かなくなったというお便りが寄せられた
シェル芸bot、textimgが動かなくなっちゃったっぽい? https://t.co/z1AeskfYki
— まーた (@ma_tw) May 4, 2022
心当たりはあって、最近シェル芸botで使っているDocker Imageのベースイメージをubuntu 22.04にアップグレードした。タイミングをみるとこれが疑わしい。なんかシェル芸botを実行するときはコンテナランタイムとしてgVisorを使っていた気がするからそのあたりの噛み合わせかな、と思った。
TLのシェル芸人の皆様方が調査してくださる
runtime/cgo: pthread_create failed: Operation not permitted
— シェル芸bot (@minyoruminyon) May 4, 2022
SIGABRT: abort
PC=0x7faf529eea7c m=0 sigcode=18446744073709551610
goroutine 0 [idle]:
runtime: unknown pc 0x7faf529eea7c
stack: frame={sp:0x7ffcf035cf40, fp:0x0} stack=[0x7ffcefb5e498,0x7ffcf035d4d0)
0x00007ffcf035ce40: https://t.co/w8FAb9ZgPy
#シェル芸
— *1 (@Sheeeeepla) May 4, 2022
: webshでも同じエラーが出ているみたいhttps://t.co/JAO4iqsff8 pic.twitter.com/aEi6fSve8p
webshというのは@jiro_saburomaruさん作のシェル芸botのWebインタフェースで、これはシェル芸botと同じDocker Imageを使ってるけど、実行しているホストとかは別物なので、やっぱりDocker Imageが悪いっぽい。webshのリポジトリはよくできていて、同バックエンドが構築されているかとかも書いてあるので見に行くとgVisorとかはつかってなさそう。じゃあgVisorは関係ないか
一方ローカル環境にdocker pull theoldmoon0602/shellgeibot
して実験してみるとこちらは問題なく成功する。なるほど……。
エラーメッセージでぐぐってみると どうもOSの対応していないシステムコールを呼ぼうとしたっぽい? ということがわかる。
ホストOSの更新が必要かな〜と思いながら、一応gVisor外してみるかとシェル芸botの実行環境に潜ったら、記憶とは裏腹にgVisor入ってなかった。そうなんだ……
なんとなくgVisorいれて、コンテナランタイムを指定して実行したらtextimg動いた。やった〜 じゃあこれでいっかということで、シェル芸botの設定ファイルをちょっといじって再起動したら動いた
なんか知らないけどちゃんと設定ファイルからコンテナランタイムを指定できるようになっていて偉い
https://t.co/vtqKzp1kUX pic.twitter.com/CiNmsscPZw
— シェル芸bot (@minyoruminyon) May 4, 2022
gVisor、一回入れた記憶はあるんだけど、なんで外したんだっけ……? ということを思い出せません。 次は思い出せないまでも記録には残しておこうと思ってこのエントリを書いてる
どうもこういう感じなのかな……。なんとなく問題は解消したので深堀していないけど、なにがおきていたのかは知れたら楽しいので教えてください
シェル芸botのtextimgの問題、どうもglibc2.34が怪しい(Ubuntu 22.04のglibcは2.35)
— くおん (@qwertanus) May 4, 2022
*1:🐑++