Container Station 3.1.2.1742 のバグ

ログに頻繁に発生するエラーがあり、以下のスタックトレースが記録されています。Claude.aiによれば、これはgoスクリプトのバグのようです。IPv4アドレスを持たないインターフェース(私の場合は eth2eth3 、切断された物理NIC)でクラッシュします。モデル名:TS-673 ファームウェアバージョン:5.1.9.2954 build 20241120。

Stack trace:

Wed, 03 Jun 2026 13:48:59 EDT   INFO    analytics/analytics.go:22       started analytics worker
Wed, 03 Jun 2026 13:48:59 EDT   INFO    images/update_images.go:57      started update image checker
Wed, 03 Jun 2026 13:49:21 EDT   ERROR   container-station/main.go:120   worker panic: runtime error: index out of range \[0\] with length 0
Wed, 03 Jun 2026 13:49:21 EDT   ERROR   container-station/main.go:121   worker panic: goroutine 63 \[running\]:
runtime/debug.Stack()
/usr/local/go/src/runtime/debug/stack.go:26 +0x5e
main.PreSetup.func2({0x77afc0?, 0xc000b852d0?})
/src/cmd/container-station/main.go:121 +0x8a

/go/pkg/mod/sauron.qnap.com/core-tech/cs-team/lib/qlib@v0.2.66/pkg/routine/routine.go:52 +0x83
panic({0x4b2460?, 0xc00045f428?})
/usr/local/go/src/runtime/panic.go:792 +0x132

/src/internal/worker/network-cache/networkconflict.go:129 +0xa94 sauron.qnapcom/core-tech/cs-team/container-station/container-station-api-server/internal/worker/network-cache.(\*NetworkConflictMonitor).Run.func2({0x0?, 0x12251f3?})
/src/internal/worker/network-cache/networkconflict.go:87 +0x1c
reflect.Value.call({0x307000?, 0xc0005156c0?, 0xc0002abbe0?}, {0x563308, 0x4}, {0xc000051648, 0x1, 0x1?})
/usr/local/go/src/reflect/value.go:584 +0xca6
reflect.Value.Call({0x307000?, 0xc0005156c0?, 0x0?}, {0xc000051648?, 0xc0000515e0?, 0x12c4650?})
/usr/local/go/src/reflect/value.go:368 +0xb9
sauron.qnapcom/core-tech/cs-team/lib/qlib/worker.(\*worker).exec(0xc0001ade00, {0x788b50, 0xc0005129b0}, {0x307000?, 0xc0005156c0?}, 0x0, 0x0)
/go/pkg/mod/sauron.qnap.com/core-tech/cs-team/lib/qlib@v0.2.66/worker/worker.go:197 +0x245
sauron.qnapcom/core-tech/cs-team/lib/qlib/worker.(\*worker).run(0xc0001ade00, {0xc0001f6620, 0x2, 0x2})
/go/pkg/mod/sauron.qnap.com/core-tech/cs-team/lib/qlib@v0.2.66/worker/worker.go:238 +0x297

/go/pkg/mod/sauron.qnap.com/core-tech/cs-team/lib/qlib@v0.2.66/worker/worker.go:163 +0x7b3
sauron.qnapcom/core-tech/cs-team/container-station/container-station-api-server/internal/worker/network-cache.(\*NetworkConflictMonitor).Run(0xc0002c8b40, {0x788b50, 0xc000512960})
/src/internal/worker/network-cache/networkconflict.go:96 +0x1d5
reflect.Value.call({0x2effc0?, 0xc0005155f0?, 0x13?}, {0x563308, 0x4}, {0xc0002c8b58, 0x1, 0x1?})
/usr/local/go/src/reflect/value.go:584 +0xca6
reflect.Value.Call({0x2effc0?, 0xc0005155f0?, 0x0?}, {0xc0002c8b58?, 0x0?, 0x0?})
/usr/local/go/src/reflect/value.go:368 +0xb9

/go/pkg/mod/sauron.qnap.com/core-tech/cs-team/lib/qlib@v0.2.66/pkg/routine/routine.go:62 +0x5c
created by sauron.qnapcom/core-tech/cs-team/lib/qlib/pkg/routine.execGo in goroutine 58
/go/pkg/mod/sauron.qnap.com/core-tech/cs-team/lib/qlib@v0.2.66/pkg/routine/routine.go:48 +0x2dd

ふむ。このパス名、QNAPが全てを支配したいという欲望の表れなのかな?あの呪われたマイアはモルドールから追放された後、ここにたどり着いたのか?

:nerd:

私にはさっぱり分かりません。Claude による分析は以下の通りです:

  1. 製品: Container Station 3.1.2.1742
  2. バグ: いずれかのネットワークインターフェースに IPv4 アドレスが割り当てられていない場合(切断されたNICやダミーインターフェースなど)に、NetworkConflictMonitor.checkNetwork()index out of range [0] with length 0 というパニックを起こす
  3. ファイル/行番号: networkconflict.go:129
  4. 必要な修正: インデックス参照前に if len(addresses) == 0 { continue } というバウンズチェックを追加
  5. 影響: サービスが約60秒ごとにクラッシュ&再起動し、QTS通知ログが大量に埋まる

少なくとも、みんなを見張っていたいのかもね。:wink:

現時点のファームウェアは5.2.9なので、少なくともまずは18ヶ月前の古いファームウェアをアップデートした方がいいでしょう。
その後、ContainerのYAMLコードも確認してみると役立つかもしれません。

ファームウェアは完全にアップデートされたと思っていましたが、確認してみると、まだいくつかパッチを適用する必要がありました。それらのアップデートと必要なソフトウェアアップデートを適用しましたが、問題は解決しませんでした。現在ファームウェアは5.2.9.3499、ContainerStationは3.1.2.1742です。これで「石を取りに行ってこい」みたいな作業は全部終わってくれているといいのですが。

ここでお願いされなくても、QNAPのサポートチケットを通じてこの問題を報告するときに同じことが求められるはずです。

それがバグ報告の正しい方法ですよ。:wink:

それについて言及するなんて面白いですね。チケットシステムではオンラインでもヘルプセンターのアプリからでも送信できませんでしたし、チャットで実際の担当者につなごうとしても誰も対応してくれませんでした。

QNAPサポートサイトでチケットを作成しようとしたとき、何が起こりましたか?

「チケットを送信できませんでした。もう一度お試しください。」というメッセージが表示されただけです。何度か試しました。ヘルプデスクアプリで作成された詳細が書かれたテキストファイルと、同じくヘルプデスクアプリで作成されたログが入った小さなzipファイルを添付していました。

もう一度チケットを作成してみてください。ただし、サポートから求められるまではログを添付しないでください。もしくは、チケットの作成が無事に完了するまでは添付しないでください。:slightly_smiling_face:

添付ファイルなしでうまくいきました。ありがとう!

この問題の解決には、ContainerStation の再インストールが必要でした。