New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cog doesn't stop or restart emqttd cleanly #897
Milestone
Comments
Further debugging by @christophermaier and myself has uncovered the following:
|
kevsmith
pushed a commit
that referenced
this issue
Aug 3, 2016
- `Cog.BusDriver` now traps exits if it successfully starts `emqttd`. This allows Cog to keep the message bus state in sync with Cog's overall state. If Cog is up, the message bus is up. If Cog is down, the message bus is down. - Removed the `mnesia` data file deletion logic from `Cog.BusDriver. Wound up causing more problems than it solved. We can tell users to delete the data dir in the release notes. - Moved all of Cog core, modulo `Cog.Repo` and `Cog.BusDriver`, to a separate supervisor named `Cog.CoreSup` with a restart strategy of one-for-one. The top level supervisor is now responsible for `Cog.Repo`, `Cog.BusDriver`, and `Cog.CoreSup` and uses the one-for-all restart strategy. This should stabilize Cog as all processes will be restarted if the database or message bus goes down. Fixes #897
kevsmith
pushed a commit
that referenced
this issue
Aug 3, 2016
Fix emqttd mgmt;Refine process tree structure Fixes #897
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Cog.BusDriver
is a GenServer process responsible for configuring, starting, and stoppingemqttd
as an included application. Logic for configuring and startingemqttd
is implemented inCog.BusDriver.init/1
. Logic for stopping the message bus is implemented inCog.BusDriver.terminate/2.
We've recently found two issues which point to implementation bugs inBusDriver
:The text was updated successfully, but these errors were encountered: