Production CrashLoopBackOff: yabeda-puma-plugin requires control app #67

Closed
opened 2026-06-04 00:54:49 +00:00 by ldraney · 0 comments
Owner

Type

Bug

Lineage

Regression from ldraney/landscaping-assistant #19 — the observability PR (#47) added plugin :yabeda but gated activate_control_app to development only.

Repo

ldraney/landscaping-assistant

What Broke

Pod landscaping-assistant-669d7ffbb6-wjdvf is in CrashLoopBackOff (148 restarts over 12h). Error on startup:

yabeda-puma-plugin-0.9.0/lib/puma/plugin/yabeda.rb:8:in 'start': Puma control app is not activated (StandardError)

activate_control_app is gated to RAILS_ENV == "development" in config/puma.rb:38, but plugin :yabeda loads unconditionally on line 39 and requires it.

Repro Steps

  1. Build image with current config/puma.rb
  2. Deploy to production (RAILS_ENV=production)
  3. Observe: Puma fails to start, pod enters CrashLoopBackOff

Expected Behavior

Puma starts successfully in production with yabeda metrics collection active.

Environment

  • Cluster/namespace: prod / landscaping-assistant
  • Service version/commit: SHA 4d56d5d
  • Old pod (pre-observability) still serving traffic due to rollout strategy

Acceptance Criteria

  • Pod starts without crash in production
  • /up health check returns 200
  • /metrics endpoint returns Puma thread/worker gauges
  • No CrashLoopBackOff pods in namespace
  • landscaping-assistant — project
  • ldraney/landscaping-assistant #19 — original observability issue
### Type Bug ### Lineage Regression from `ldraney/landscaping-assistant #19` — the observability PR (#47) added `plugin :yabeda` but gated `activate_control_app` to development only. ### Repo `ldraney/landscaping-assistant` ### What Broke Pod `landscaping-assistant-669d7ffbb6-wjdvf` is in CrashLoopBackOff (148 restarts over 12h). Error on startup: ``` yabeda-puma-plugin-0.9.0/lib/puma/plugin/yabeda.rb:8:in 'start': Puma control app is not activated (StandardError) ``` `activate_control_app` is gated to `RAILS_ENV == "development"` in `config/puma.rb:38`, but `plugin :yabeda` loads unconditionally on line 39 and requires it. ### Repro Steps 1. Build image with current `config/puma.rb` 2. Deploy to production (`RAILS_ENV=production`) 3. Observe: Puma fails to start, pod enters CrashLoopBackOff ### Expected Behavior Puma starts successfully in production with yabeda metrics collection active. ### Environment - Cluster/namespace: prod / landscaping-assistant - Service version/commit: SHA `4d56d5d` - Old pod (pre-observability) still serving traffic due to rollout strategy ### Acceptance Criteria - [ ] Pod starts without crash in production - [ ] `/up` health check returns 200 - [ ] `/metrics` endpoint returns Puma thread/worker gauges - [ ] No CrashLoopBackOff pods in namespace ### Related - `landscaping-assistant` — project - `ldraney/landscaping-assistant #19` — original observability issue
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ldraney/landscaping-assistant#67
No description provided.