fly-apps / fly-apps/cron-manager
Failed Machine provisions can lead to nil pointer panic.
- Dominant language
- Go
- Stars
- 73
- Forks
- 17
- PR merge metrics
- No merged PRs in 30d
Description
```
// 2024-05-08T00:32:15Z app[4d896d4b592258] ord [info]api | INFO[382714] Preparing job... app-name=shaun-pg-flex job-id=15516 schedule=uptime-check
// 2024-05-08T00:32:15Z app[4d896d4b592258] ord [info]monitor | panic: runtime error: invalid memory address or nil pointer dereference
// 2024-05-08T00:32:15Z app[4d896d4b592258] ord [info]monitor | [signal SIGSEGV: segmentation violation code=0x1 addr=0xe8 pc=0x7734bc]
// 2024-05-08T00:32:15Z app[4d896d4b592258] ord [info]monitor |
// 2024-05-08T00:32:15Z app[4d896d4b592258] ord [info]monitor | goroutine 9 [running]:
// 2024-05-08T00:32:15Z app[4d896d4b592258] ord [info]monitor | github.com/fly-apps/cron-manager/internal/cron.findEvent(...)
// 2024-05-08T00:32:15Z app[4d896d4b592258] ord [info]monitor | /app/internal/cron/monitor.go:172
// 2024-05-08T00:32:15Z app[4d896d4b592258] ord [info]monitor | github.com/fly-apps/cron-manager/internal/cron.evaluateJob({0xaadf90, 0xde9e40}, 0xc0000ac300?, 0xc000032158, {0x1ede, 0x4, {0xc000014c78, 0x7}, {{0x0, 0x0}, ...}, ...})
// 2024-05-08T00:32:15Z app[4d896d4b592258] ord [info]monitor | /app/internal/cron/monitor.go:91 +0x9fc
// 2024-05-08T00:32:15Z app[4d896d4b592258] ord [info]monitor | github.com/fly-apps/cron-manager/internal/cron.MonitorActiveJobs.func1({0x1ede, 0x4, {0xc000014c78, 0x7}, {{0x0, 0x0}, 0x0}, {{0x0, 0x0}, 0x0}, ...})
// 2024-05-08T00:32:15Z app[4d896d4b592258] ord [info]monitor | /app/internal/cron/monitor.go:40 +0xbb
// 2024-05-08T00:32:15Z app[4d896d4b592258] ord [info]monitor | panic: runtime error: invalid memory address or nil pointer dereference
// 2024-05-08T00:32:15Z app[4d896d4b592258] ord [info]monitor | [signal SIGSEGV: segmentation violation code=0x1 addr=0xe8 pc=0x7734bc]
// 2024-05-08T00:32:15Z app[4d896d4b592258] ord [info]monitor |
// 2024-05-08T00:32:15Z app[4d896d4b592258] ord [info]monitor | goroutine 8 [running]:
// 2024-05-08T00:32:15Z app[4d896d4b592258] ord [info]monitor | github.com/fly-apps/cron-manager/internal/cron.findEvent(...)
// 2024-05-08T00:32:15Z app[4d896d4b592258] ord [info]monitor | /app/internal/cron/monitor.go:172
// 2024-05-08T00:32:15Z app[4d896d4b592258] ord [info]monitor | github.com/fly-apps/cron-manager/internal/cron.evaluateJob({0xaadf90, 0xde9e40}, 0xc0000ac300?, 0xc000032158, {0x1edd, 0x4, {0xc000014ba8, 0x7}, {{0x0, 0x0}, ...}, ...})
// 2024-05-08T00:32:15Z app[4d896d4b592258] ord [info]monitor | /app/internal/cron/monitor.go:91 +0x9fc
// 2024-05-08T00:32:15Z app[4d896d4b592258] ord [info]monitor | github.com/fly-apps/cron-manager/internal/cron.MonitorActiveJobs.func1({0x1edd, 0x4, {0xc000014ba8, 0x7}, {{0x0, 0x0}, 0x0}, {{0x0, 0x0}, 0x0}, ...})
// 2024-05-08T00:32:15Z app[4d896d4b592258] ord [info]monitor | /app/internal/cron/monitor.go:40 +0xbb
// 2024-05-08T00:32:15Z app[4d896d4b592258] ord [info]monitor | created by github.com/fly-apps/cron-manager/internal/cron.MonitorActiveJobs in goroutine 1
// 2024-05-08T00:32:15Z app[4d896d4b592258] ord [info]monitor | /app/internal/cron/monitor.go:38 +0x230
// 2024-05-08T00:32:15Z app[4d896d4b592258] ord [info]monitor | exit status 2
// 2024-05-08T00:32:15Z app[4d896d4b592258] ord [info]monitor | restarting in 5s [attempt 14]
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Start at internal/cron/monitor.go:172 in findEvent, then trace its callers at lines 91 and 40 while examining the failed-machine provisioning path described by the logs. Reproduce or add coverage for that failure case and confirm monitoring no longer exits with a nil-pointer panic.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100