Skip to content
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

FASSERT, flux_assfail(), flux_panic() need review #110

Closed
garlick opened this issue Nov 12, 2014 · 2 comments
Closed

FASSERT, flux_assfail(), flux_panic() need review #110

garlick opened this issue Nov 12, 2014 · 2 comments
Labels

Comments

@garlick
Copy link
Member

garlick commented Nov 12, 2014

Current FASSERT macro calls flux_assfail(), which logs its assertion failure as a LOG_CRIT, sleeps 5 seconds, then rasises sigabort. A lot can happen in 5s that may obscure the original error. The session could even initiate normal shutdown (and be successful due to the way modules are not unloaded gracefully during shutdown)

flux_panic() uses a separate mechanism that causes the local broker to print a message on stderr and exit.

There should be a way to panic a comms session that is abrupt, final, and reliably reports the first cause.

@garlick
Copy link
Member Author

garlick commented Jun 4, 2015

As noted in PR #215, we need a way to panic an application when a handle error, ENOMEM, or other fatal error occurs, that does not depend on a healthy channel to the broker as flux_panic() currently does. Errors of this sort in thread-based comms modules could be redirected to stderr and thus captured by the enclosing instance. Maybe flux_panic() needs some additional hints either via some state in the handle, or a flag passed in, to determine the best course of action. Or maybe flux_log() errors of a certain severity should be Cc'ed to stderr to ensure they get out?

@garlick
Copy link
Member Author

garlick commented Dec 28, 2016

#321 is a slightly more modern issue that discusses making a pass through these functions. Closing this one.

@garlick garlick closed this as completed Dec 28, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant