-
Notifications
You must be signed in to change notification settings - Fork 14
Cling: prevent double release of Transactions #152
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
Conversation
new of a char array might not have the correct alignment to hold a Transaction. Allocate a Transaction itself directly, instead of in-place constructing it in the character array. Each Transaction in the pool is thus constructed through `new Transaction(S)` and destructed through `delete T`, which is nicely symmetrical. The use of `::operator new` and `::operator delete` isn't actually necessary. While I'm at it, improve the assert message's wording.
|
please test with cms-sw/cmsdist#6778 |
|
A new Pull Request was created by @smuzaffar (Malik Shahzad Muzaffar) for branch cms/master/f078957. @smuzaffar, @mrodozov can you please review it and eventually sign? Thanks. |
|
-1 Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-56e843/13892/summary.html External BuildI found compilation error when building: make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory `/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/BUILD/slc7_amd64_gcc900/external/dd4hep/v01-16x-789ded0f3abbae7c552fa6d7a7d9bd76/build' make[1]: *** [DDCore/CMakeFiles/DDCore.dir/all] Error 2 make[1]: Leaving directory `/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/BUILD/slc7_amd64_gcc900/external/dd4hep/v01-16x-789ded0f3abbae7c552fa6d7a7d9bd76/build' make: *** [all] Error 2 error: Bad exit status from /data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/tmp/rpm-tmp.E0wJ12 (%build) RPM build errors: Macro %rpmbuild_libdir defined but not used within scope Bad exit status from /data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/tmp/rpm-tmp.E0wJ12 (%build) |
|
please test with cms-sw/cmsdist#6778 |
This will allow Transaction remembering its RAII to not depend on Interpreter.
This will allow the Intrepreter to prevent unload() on Transactions held by RAIIs.
When a Transaction is unloaded for which *also* a ScopedTransactionRAII is waiting, the latter will potentially access a deleted Transaction. It can be deleted due to the Pool being full. Even if it is not deleted (as is the case in root-project#7657 ) it will get pushed into the Pool once by unload() and a second time by the RAII! The two options to track this case were full-blown ref counting or noting that a Transaction is attached to an RAII scope. If that is the case, freeing the Transaction must be skipped, as the RAII will take care of it.
a cheap way to notice what went wrong in root-project#7657.
734f63c to
b9fa1a4
Compare
|
Pull request #152 was updated. |
|
please test with cms-sw/cmsdist#6778 |
|
+1 Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-56e843/13901/summary.html Comparison SummarySummary:
|
|
please test with cms-sw/cmsdist#6778 |
|
test parameters:
|
|
please test with cms-sw/cmsdist#6778 |
|
+1 Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-56e843/13916/summary.html Comparison SummarySummary:
|
No description provided.