DriteStudio
DRITESTUDIOクラウドインフラ
ホーム
記事会社情報お問い合わせステータス
0%
Cloudflare ล่ม 12 ก.ย. 2025: React useEffect Bug → Tenant Service 5xx Kubernetes
記事一覧へ戻る

Cloudflare ล่ม 12 ก.ย. 2025: React useEffect Bug → Tenant Service 5xx Kubernetes

Cloudflare outage 12/9/2025 React useEffect infinite API calls → Tenant Service overload Timeline, Kubernetes metrics, rate limiting, Argo Rollouts fix, code examples

cloudflare-September 18, 2025-更新: February 24, 2026

Cloudflare ล่ม 12 ก.ย. 2025: React useEffect Bug → Tenant Service API 5xx ทั่วโลก Cloudflare outage จาก React useEffect hook bug ใน Dashboard เรียก Tenant Service API ซ้ำ → Kubernetes pods overload Global rate limit + Argo Rollouts fix

Root Cause: React useEffect Bug

🐛 Dashboard component:
useEffect(() => {
  fetchTenantAPI();  // ❌ Runs on EVERY render
}, []);  // Dependency array ignored
✅ Fixed version:
useEffect(() => {
  let mounted = true;
  fetchTenantAPI().then(data => {
    if (mounted) setTenant(data);
  });
  return () => { mounted = false; };
}, []);

Thundering Herd: 10K+ users hit API simultaneously

Timeline Cloudflare Outage

09:15 UTC: Dashboard deploy (buggy useEffect)
09:22 UTC: Tenant Service CPU 1200%
09:28 UTC: API 5xx errors spike
09:45 UTC: Global rate limit (100 req/min)
10:15 UTC: Scale pods 2x → Still failing
10:30 UTC: Rollback dashboard → Secondary outage
11:12 UTC: Staggered API calls (random delay)
12:05 UTC: Full recovery

Duration: 2 ชม. 50 นาที

Impact: Services & Metrics

ServiceError RateUsers Affected
Tenant Service API99% 5xx500K+
Cloudflare Dashboard95%1M+
Workers KV45%100K
Access Policies78%200K
DownDetector: 850K reports peak

Technical Deep Dive: Kubernetes Overload

Kubernetes Metrics:
- Pods: 50 → 200 (auto-scaling failed)
- CPU: 1200% sustained
- Memory: 95% cluster capacity
- API calls/sec: 50K → 500K spike

Rate Limiting Fix:

// Global rate limiter
const rateLimit = new RateLimiter({
  points: 100,  // requests
  duration: 60, // seconds
});

Cloudflare Response & Mitigation

🔧 09:45: Global rate limit 100/min
⚙️ 10:15: Horizontal Pod Autoscaler 2x
🔄 10:30: Argo Rollout rollback
⏱️ 11:12: Random jitter (100-500ms delay)
📊 11:45: Custom metrics (new vs retry)

Argo Rollouts Config:

strategy:
  canary:
    steps:
    - setWeight: 20
    - pause: {duration: 300}

Lessons Learned: Production Best Practices

✅ useEffect cleanup + abort controller
✅ Rate limiting ALL public APIs
✅ Staggered deploys (Argo CD)
✅ Circuit breakers (Istio)
✅ Thundering herd protection

Post-Mortem Action Items

IssueFixTimeline
useEffect bugESLint rules + review✅ Done
No rate limitsGlobal API limits✅ Done
AutoscalingHPA tuning + VPAQ4 2025
MonitoringCustom retry metrics✅ Live
RollbackArgo Rollouts PA✅ Live

Code: The Bug + Production Fix

Buggy Dashboard (React 18):

useEffect(() => {
  fetch('/api/tenant').then(setData);  // Runs infinitely
}, [userId]);  // Missing deps

Fixed Production:

const abortController = useRef();
useEffect(() => {
  abortController.current = new AbortController();
  fetch('/api/tenant', { signal: abortController.current.signal })
    .then(setData)
    .catch(err => err.name === 'AbortError' || handleError(err));
  return () => abortController.current?.abort();
}, []);
共有:
さらに記事を見る
D

DriteStudio

タイの Cloud・VPS・Hosting・Colocation プロバイダー

Craft Intertech (Thailand) Co., Ltd. が運営

DRITESTUDIOクラウドインフラ

タイ サムットサーコーン県 パンタイノラシン バンクンティアン-チャイタレー Delight Village ソイ17 100/280 74000

サービス

  • VPSホスティング
  • 専用サーバー
  • Webホスティング
  • セキュリティソリューション

会社

  • 会社情報
  • お問い合わせ
  • システムステータス

サポート

  • サポートチケット
  • ドキュメント
  • ヘルプセンター

© 2026 Craft Intertech (Thailand) Co., Ltd. 無断転載を禁じます。

プライバシーポリシー利用規約返金ポリシー

Cookieを使用しています

当サイトでは、ブラウジング体験の向上、サイトトラフィックの分析、コンテンツのパーソナライズのためにCookieを使用しています。「すべて受け入れる」をクリックすると、Cookieの使用に同意したことになります。 プライバシーポリシー