I recently upgraded my docker instance of discourse running in an ubuntu ec2. I used launcher rebuild for the upgrade. I previously had version 2.4.0 and I upgraded to 2.6.0.beta1 (I also upgraded again to 2.6.0.beta2). I am using elasticache instead of redis and it had been working without a problem before the upgrade. Immediately after upgrade I noticed that sidekiq was not sending out emails. I restarted the app and cleared the cache and it seemed to be working, but that was a false positive.
Observed indications of malfunction
- Sidekiq is scheduling and enqueuing jobs at a reasonably steady pace (as indicated in the sidekiq dashboard), but it is not running any
- The admin page is complaining about sidekiq not running
- The logs show several instances of
Sidekiq heartbeat test failed, restarting
- Of course: emails are not going out to users
Things I have tried (after reading posts here and SO)
- Successfully sent a test email with discourse-doctor to verify that part of the flow is working
- Verified at the sidekiq dashboard that the footer shows the correct elasticache instance
- Verified that the docker logs are not indicating an error (
ok: run: redis: (pid XX) 0s
) - Cleared the cache and restarted discourse (./launcher restart app)
- Stopped the app, cleared the cache, started the app
- Rebuilt the app again
Steps I haven’t tried
- Creating a new elasticache instance
- Mothballing this installation and creating a clean one
Has anybody experienced this and have any suggestions?
Are there any logs I have missed?
Is there a way I can coerce sidekiq to process its jobs?