`ecschedule dump` コマンドでエラーが表示される
Closed this issue · 2 comments
ponkio-o commented
はじめまして。ecschedule dump
コマンドにてエラーに遭遇しましたので報告いたします。
解決方法などありましたらご教授いただけると幸いです。
環境
ecschedule: v0.3.1 (rev:13906aa)
OS: macOS Catalina Version 10.15.6
エラー内容
ECS クラスタに対して設定しているスケジュールタスクをインポートするために dump
コマンドを実行した所下記のようなエラーに遭遇しました。
$ ecschedule dump --cluster my-services-development --region ap-northeast-1
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x150e4d6]
goroutine 1 [running]:
github.com/Songmu/ecschedule.(*ruleGetter).getRule(0xc000271a18, 0x17154e0, 0xc0002d3800, 0xc00043d310, 0x0, 0x0, 0x0)
/home/runner/work/ecschedule/ecschedule/rule_getter.go:98 +0xfd6
github.com/Songmu/ecschedule.glob..func3(0x17154e0, 0xc0002d3800, 0xc00001e200, 0x4, 0x4, 0x170e520, 0xc00000e018, 0x170e520, 0xc00000e020, 0x0, ...)
/home/runner/work/ecschedule/ecschedule/cmd_dump.go:101 +0xc1f
github.com/Songmu/ecschedule.(*runnerImpl).Run(0x19a2540, 0x17154e0, 0xc0002d3800, 0xc00001e200, 0x4, 0x4, 0x170e520, 0xc00000e018, 0x170e520, 0xc00000e020, ...)
/home/runner/work/ecschedule/ecschedule/commands.go:72 +0x9d
github.com/Songmu/ecschedule.Run(0xc00001e1f0, 0x5, 0x5, 0x170e520, 0xc00000e018, 0x170e520, 0xc00000e020, 0x0, 0x0)
/home/runner/work/ecschedule/ecschedule/ecsched.go:75 +0x7b2
main.main()
/home/runner/work/ecschedule/ecschedule/cmd/ecschedule/main.go:13 +0xad
名前付きプロファイルで default を用意していないため、事前に下記環境変数にてプロファイルを指定しています。
$ export AWS_PROFILE=myservice-production
その他
dump は実行できませんでしたが、手動で yml ファイルを作成し diff
や run
や apply
を実行したところ正常に動作致しました。
他に必要な情報がありましたらお申し付けください。
ponkio-o commented
本件解決致しました。
とある EventBridge ルールの取得でエラーが発生しており、該当のルールを削除することで無事 ecschedule dump
コマンドが使用できるようになりました。
ちなみに該当のルールは、以前存在していた ECS クラスタに対するもので、現在はその ECS クラスタは存在しないものの、ルールのみ(ターゲットも設定なし)残っていたというものでした。
Songmu commented
なるほど、丁寧なレポートありがとうございます。ひとまず解決してよかったです。
panicが起きてしまうのはよくないので、対応を入れたほうが良さそうですね。