Comments (4)
Sounds reasonable to me. If the errors are from Gromacs directly, then I think there are other ways we can catch them if needed. But if they're being triggered by MPI calls, then having an MPI error handler seems like the best solution.
from gmxapi.
I think that in some places GMX_RELEASE_ASSERT should be replaced with exceptions or other more helpful, better logged approaches. The possibility of an unhandled MPI_Error causing exit() during assertion error handling seems like a GROMACS bug. But for our purposes we can currently just keep in mind that these hard-to-catch errors exist, avoid the initialization error situations, and add an MPI error handler for good measure. It is worth double-checking whether GROMACS already adds its own MPI error handler under other circumstances.
from gmxapi.
I'm pretty sure we've done other projects where we intercept exit(), but that's a bit more invasive and probably not optimal.
from gmxapi.
Yeah, I would tend to consider it a bug if exit() is reachable.
It will take time to make GROMACS error handling more API-friendly and in the mean time I think we just have to be careful and vigilant. I had originally intended that this issue could be a place-holder to accumulate a list of all of the places where we need to preempt GMX_RELEASE_ASSERT and similar uncatchable logic, but maybe I should just consider this issue resolved when the MPI initialization is determined to be sufficiently robust.
from gmxapi.
Related Issues (20)
- Inconsistent type for WorkElement.namespace and WorkElement.operation
- docker images for 0.0.7 HOT 2
- Avoid race conditions from unsynchronized ensembles HOT 3
- Invalid attempt to use Context.rank in Context.work setter.
- Logic error when checking for operation implementations
- Specifications for referencing external data sources in serialized work
- Enable readthedocs build for 0.1.0.1
- Enable readthedocs build for >= 0.2a
- Provide long description for gmxapi package
- reposority reorganization makes gmxapi 0.0.7 install docs confusing
- commandline_operation should be able to read from STDIN HOT 10
- Validity checks for WorkSpec updates are not applied consistently.
- Accesing commandline output. HOT 5
- TypeError when importing gmxapi 0.0.8 HOT 9
- How to implement trjcat? HOT 3
- Neural Net potential and py interface HOT 1
- Using interactive gmx commands such as trjconv within gmxapi HOT 1
- How to replace coordinates in the simulation input HOT 1
- How to control the operation of MD by output conformation HOT 1
- `gmxapi.commandline_operation` seems to have memory leaks HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gmxapi.