Javascriptの設定を有効にしてください。お使いのブラウザはJavaScriptをサポートしていないか、JavaScriptの設定が無効になっています。このサイトでは、JavaScriptを使用しています。すべての機能をご利用希望の方は、JavaScriptを有効にしてください。 無限ループをやらかした話、2選 - COLOR CHIPS Webシステム・ITサービス コラム

L O A D I N G

無限ループをやらかした話、2選

  • Webシステム
  • Today I Learned

2026.02.10

執筆者

M.N.

① Vueのupdatedフックでやらかした

Vue.jsのupdatedフックは、
雑に言うとVueコンポーネント内でDOMの更新があった際に自動的に発火するフックです。

本来はDOMの状態変化で何か処理をやりたいときに使うべきですが、この中でデバッグ目的で値の更新をしてしまい、無限ループに陥ってしまいました。

何かの値が更新される
→updatedが発火する
→updated内で値を更新する
→updatedが発火する……というように、
updated自体がさらにupdatedを呼ぶ、という状態でした。

さらに悪いことに、別の処理でupdated内で更新した値を監視しており、値が更新された際にメール送信処理が動くようになっていました。
つまり、
updatedが発火するたびにメール送信されてしまっていました。

➤幸いローカル環境から自分のアドレス宛にメールが来るだけで、その処理を記載したページを閉じればすぐに収まりましたが、数秒で50件以上のメールが送信されてしまっていました。

 

➁Sendgrid Webhookでやらかした

保守を担当しているとあるサービスではメール配信ドライバーとしてSendgridを使用しています。

SendgridにはSendgrid Webhookという仕組みがあり、メールの配信、開封、クリックなどのイベントを検知し、事前に指定したエンドポイントにリクエストを送ることが可能です。

この仕組みを利用して、イベントごとにWebサーバーでイベント詳細のパラメータを受け取り、開封数の取得やログの取得などの機能を実現しています。

この処理の中でも、無限ループをやらかしてしまいました。
前提として、システム全体の共通処理として、システムエラーが発生した場合にはエラー検知用のメールを管理者・開発者向けに配信しています。

このエラーメールも当然、Webhookのイベント検知の対象となっていました。


無限ループが起きた原因
01 Webhookに指定したエンドポイント内でエラーが発生
02 エラー検知メール配信
03 エラー検知メールでWebhookが発火
04 エンドポイントでエラー発生


事態の深刻化
通常時はエラーが発生するような処理ではなかったのですが、挙動の調査のためにデバッグのログをサーバー内に直接記載しようとしていました。

そのログ出力処理に構文ミスがあり、エラーが発生したことでこの事態になってしまいました。

この時は前述のupdatedフックの時と違い管理者・開発者全員にメールが配信されてしまい、他のメンバーやクライアントに3時間以上メールが届き続けるという事態にまでなってしまいました。

 

反省点と対策

上記の2ケースで、共通している点は下記と考えています。

反省点①

自動的に発火する仕組み内にその仕組みが呼ばれる処理を入れてしまったこと
➤自動的に発火するということは、意図しないタイミングで処理が発火する可能性が高いことを理解していませんでした。

便利な機能ではありますが、どういう場合に発火するかについてよく精査してから処理を入れるべきだったと思います。


反省点②

デバッグ目的で、深く精査せずに処理を書いてしまったこと
➤デバッグで本番のリリースには影響が無いからと、軽い気持ちで処理を書いてしまったことです。

調査時にログを大量に入れたりすることは良くありますが、特にローカル以外の環境に影響がある場合は構文ミスが無いかなどの最低限の確認は実施してから処理を入れるべきでした。

こちらの現象が発生した環境は、どちらもメール配信数に制限などは無い環境だったので処理が止まった後は影響はありませんでしたが、メール配信数に制限がある環境の場合は開発などに支障が出ていたと思います。

無限ループは一瞬で多くの処理が走り、場合によってはリソースを食いつぶしてしまうなどの危険性があると思います。
自動発火するイベント内の処理の扱いには気を付けていこうと思いました。

 

この記事に関連するColorChipsのサービス

BUSINESS

システム開発

業務効率化の答えはここに。
下町が誇る業務システムソリューション

COLOR CHIPS のWebシステム開発部では、業務効率化やDX推進を支援するシステムの受託開発を行っています。業務フローの見える化やシステム導入支援、運用まで一貫して対応し、企業ごとの課題に合わせた最適なソリューションを提供しています。

VIEW MORE

ITサービス

お客様のシステム運用をサポートし、
長期安定稼動のお手伝いをします

COLOR CHIPS の技術者がお客様の社内に常駐し、お客様システムの監視や運用などの各種サポート業務を行います。
お客様の社内で密接な関係を築きながら業務を行うことでより迅速に、かつご要望に添ったサービスをご提供しています。

技術開発

COLOR CHIPS 先端技術開発ラボ
先端技術で業務をより効率的に!

COLOR CHIPS の研究開発部門は、AI解析、クラウド/スマホアプリ開発、IoT・ウェアラブル機器など、多岐にわたる先端技術に挑戦するラボです。知識と好奇心を武器に、新たなソリューション創出を目指し、未来を切り拓く技術革新に取り組んでいます。

VIEW MORE

オリジナルデザイン時計

NEW COLORS
オリジナル腕時計製作について

NEW COLORSは、20年以上の実績を持つオリジナル腕時計製作の専門ブランドです。卒業記念品や周年記念、ノベルティ、OEMまで目的に応じたデザイン・仕様で対応。初心者でも安心の制作サポートや、ペットの写真から作る「うちの仔オリジナルクロック」など、心に残る記念品づくりをお手伝いします。

VIEW MORE

お問い合わせ
CONTACT

記事にある技術に関するお問い合わせなどは
こちらのフォームからおねがいいたします。

TOP