起動に失敗したタスクの管理コンソールに下記のエラーが表示されます。
Task stopped at: 2023-10-04T00:41:25.283Z
CannotPullContainerError: containerd: pull command failed: panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x40 pc=0x8919d0] goroutine 1 [running]: main.(*puller).pullWithClient(0x40007b5bb8, {0xd844b8, 0x400073e480}, {0xd7f180, 0x4000358000}, 0x40002f4f70, {0xd7f130, 0x40003fd5c0}) /root/go/src/github.com/aws/two/puller/pull.go:198 +0x3b0 main.(*puller).Pull(0x40007b5bb8, {0xd844b8, 0x40002fdb60}, 0x40002f4f70, {0xd7f130, 0x40003fd5c0}) /root/go/src/github.com/aws/two/puller/pull.go:147 +0x1f0 main.(*puller).pullImage(0xd844b8?, {0xd844b8, 0x40002fdb60}, 0x40002f4f70, {0xd7f130?, 0x40003fd5c0?}) /root/go/src/github.com/aws/two/puller/pull.go:350 +0x34 main.main() /root/go/src/github.com/aws/two/puller/main.go:75 +0x4b4 : exit status 2
このエラーの解消の解消のために試せることはありますか?
使用しているイメージのArchitectureはarm64です。
タスク定義に設定しているCpuArchitectureをARM64からX86_64に変えてみたりしましたが、エラーの内容は変わりませんでした。
回答ありがとうございます。
このエラーの前に、
RequestError: send request failed caused by: Post "https://api.ecr.ap-northeast-1.amazonaws.com/": dial tcp 3.112.65.177:443: i/o timeout. Please check your task network configuration.
というエラーが出ていたので、ECR接続用のVPCエンドポイントを作って当該ECSからの443リクエストを許可するセキュリティグループを追加したところ、主題のエラーに変化したので、ネットワーク関係の問題は解消されたのかなと思っていました。エラーメッセージを英語で検索したところ、
containerd
の問題(バグ?)のようですね。こちらの GitHub Issue にも同じようなエラーが時々起こることが報告されていました。
一応バージョン 1.6 で対応予定のようですが、直ってないかもしれないですね。
ありがとうございます。 そうなると、こちらでどうにかできるものではなさそうですね。 ただ、気掛かりなのは、私の場合は sometimes ではなく毎回crashするので、何か別の原因がありそうな気がしています。 もう少し基本的な構成から試して原因を切り分けてみたいと思います。