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

Fixed bug that cause Service exceptions to cause aborts #1526

Conversation

Dr15Jones
Copy link
Contributor

If a Service threw an exception during the ending of a processing transition (e.g. end of Event), the exception would cause an abort rather than being propagated as expected.
The problem was the Service signal was generated during the destructor of a 'guard' class instance. In C++11 those destructors are now implicitly noexcept(true) which caused the abort.
The destructor were changed to noexcept(false) and a new method 'allowThrow()' was added which is used to avoid throwing an exception while an exception is being propagated out
of the function which uses the guard.

This fix was already introduced to CMSSW_7_0_X but given the large changes between the two releases this had to be reimplemented by hand.

If a Service threw an exception during the ending of a processing transition (e.g. end of Event), the exception would cause an abort rather than being propagated as expected.
The problem was the Service signal was generated during the destructor of a 'guard' class instance. In C++11 those destructors are now implicitly noexcept(true) which caused the abort.
The destructor were changed to noexcept(false) and a new method 'allowThrow()' was added which is used to avoid throwing an exception while an exception is being propagated out
of the function which uses the guard.

This fix was already introduced to CMSSW_7_0_X but given the large changes between the two releases this had to be reimplemented by hand.
@Dr15Jones
Copy link
Contributor Author

+1
This is needed to make production jobs end properly in the cases where they exceed their resources (e.g. memory limits).

@cmsbuild
Copy link
Contributor

This pull request is fully signed and it will be integrated in one of the next IBs unless changes or unless it breaks tests. @davidlt can you please take care of it?

@fabiocos
Copy link
Contributor

+1

@ghost ghost assigned davidlt Nov 24, 2013
davidlt added a commit that referenced this pull request Nov 24, 2013
…EndEventFor6_2_X

Fixed bug that cause Service exceptions to cause aborts
@davidlt davidlt merged commit 2a8e8d5 into cms-sw:CMSSW_6_2_X Nov 24, 2013
@Dr15Jones Dr15Jones deleted the fixServiceThrowingExceptionAtEndEventFor6_2_X branch December 19, 2013 17:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants