athena merge requestshttps://gitlab.cern.ch/atlas/athena/-/merge_requests2021-08-27T03:06:03+02:00https://gitlab.cern.ch/atlas/athena/-/merge_requests/46042IOVTime: avoid implicit conversion and fix reference taking2021-08-27T03:06:03+02:00Adam Edward BartonIOVTime: avoid implicit conversion and fix reference takingATEAM-774 is reporting some strange behaviour regarding recent changes to `IOVTime` I add explicit conversion requirements to see if this flags anything.
I fix some calculations that were bugged due to changes to the referenced values c...ATEAM-774 is reporting some strange behaviour regarding recent changes to `IOVTime` I add explicit conversion requirements to see if this flags anything.
I fix some calculations that were bugged due to changes to the referenced values causing incorrect order of evaluation.https://gitlab.cern.ch/atlas/athena/-/merge_requests/24132IOVSvc: Use DummyRCUSvc for unit tests.2019-06-13T03:03:15+02:00Scott SnyderIOVSvc: Use DummyRCUSvc for unit tests.Use the DummyRCUSvc class from AthenaKernel in unit tests rather than copying
the code here.Use the DummyRCUSvc class from AthenaKernel in unit tests rather than copying
the code here.https://gitlab.cern.ch/atlas/athena/-/merge_requests/22927IOVSvc: Try to fix potential deadlock between StoreGate and IOVSvc.2019-04-27T03:02:21+02:00Scott SnyderIOVSvc: Try to fix potential deadlock between StoreGate and IOVSvc.IOVSvc::createCondObj locks IOVSvc and calls SGImplSvc::proxy, which
locks the store.
SGImplSvc::regFcn and friends lock the store and then call IOVSvc,
which tries to acquire its own lock.
Thus we have a potential deadlock.
Change IO...IOVSvc::createCondObj locks IOVSvc and calls SGImplSvc::proxy, which
locks the store.
SGImplSvc::regFcn and friends lock the store and then call IOVSvc,
which tries to acquire its own lock.
Thus we have a potential deadlock.
Change IOVSvc::createCondObj so that it's not holding the IOVSvc lock
when it calls proxy().https://gitlab.cern.ch/atlas/athena/-/merge_requests/22534IOVSvcTool: Refine error message on callbacks in MT after the first event2019-04-17T03:02:38+02:00Walter LamplIOVSvcTool: Refine error message on callbacks in MT after the first eventWith this change, IOVSvcTool will list the proxies it is about to reset when callbacks get fired after the first event in MT.With this change, IOVSvcTool will list the proxies it is about to reset when callbacks get fired after the first event in MT.https://gitlab.cern.ch/atlas/athena/-/merge_requests/48677IOVSvc: Thread-safety annotation cleanup.2021-12-01T09:43:23+01:00Scott SnyderIOVSvc: Thread-safety annotation cleanup.Remove some redundant thread-safety annotations.Remove some redundant thread-safety annotations.https://gitlab.cern.ch/atlas/athena/-/merge_requests/45097IOVSvc: Revert !45010 to bring the CondInputLoader memory usage back down2021-07-14T03:05:46+02:00Alaettin Serhan MeteIOVSvc: Revert !45010 to bring the CondInputLoader memory usage back downThis reverts merge request !45010 and closes ATLASRECTS-6468
cc: @ssnyderThis reverts merge request !45010 and closes ATLASRECTS-6468
cc: @ssnyderhttps://gitlab.cern.ch/atlas/athena/-/merge_requests/38117IOVSvc: Remove locking from CondSvc::isValidID.2020-11-12T03:03:14+01:00Scott SnyderIOVSvc: Remove locking from CondSvc::isValidID.The locking within CondSvc::isValidID is heavily contended in jobs with
many threads (32-64). Rework so that we don't need to use locking.
Rather than doing a SG lookup each time isValidID is called, we instead
build a map from SG key ...The locking within CondSvc::isValidID is heavily contended in jobs with
many threads (32-64). Rework so that we don't need to use locking.
Rather than doing a SG lookup each time isValidID is called, we instead
build a map from SG key to CondCont instances at the end of initialization.
(This is called from CondInputLoader::start). We can then look up the
key directly in this map rather then querying SG. Since this map
is modified only during START, we don't need any locking.https://gitlab.cern.ch/atlas/athena/-/merge_requests/21188IOVSvc: Remove a dependency on old EventInfo.2019-02-18T03:02:25+01:00Scott SnyderIOVSvc: Remove a dependency on old EventInfo.IOVSvcTool::handle was doing a SG retrieve of old EventInfo to find
eventID data. Change to using the EventContext delivered via the incident.
(Relies on the event loop setting up the context properly.)IOVSvcTool::handle was doing a SG retrieve of old EventInfo to find
eventID data. Change to using the EventContext delivered via the incident.
(Relies on the event loop setting up the context properly.)https://gitlab.cern.ch/atlas/athena/-/merge_requests/21278IOVSvc: Print CB nodes in sorted order.2019-02-21T03:02:04+01:00Scott SnyderIOVSvc: Print CB nodes in sorted order.Presently, when we print callback trees, they're sorted based on CBNode pointers,
which means that the output can change from run to run. Change so that
the printouts are sorted based on the node contents, so that the ordering
of iterat...Presently, when we print callback trees, they're sorted based on CBNode pointers,
which means that the output can change from run to run. Change so that
the printouts are sorted based on the node contents, so that the ordering
of iteration over CBNodes is well-defined.https://gitlab.cern.ch/atlas/athena/-/merge_requests/24098IOVSvc: Package cleanup2019-06-13T03:02:02+02:00Frank WinklmeierIOVSvc: Package cleanupPackage cleanup of IOVSvc:
* Move private headers to the `src` directory
* Remove duplicate include guards
* Delete unused `IOVSvc.icc`
* Cleanup library dependencies in `CMakeLists.txt`
This is the same as !24010 but without making Con...Package cleanup of IOVSvc:
* Move private headers to the `src` directory
* Remove duplicate include guards
* Delete unused `IOVSvc.icc`
* Cleanup library dependencies in `CMakeLists.txt`
This is the same as !24010 but without making CondInputLoader reentrant until the problems with that change are understood.https://gitlab.cern.ch/atlas/athena/-/merge_requests/48205IOVSvc: More dictionary loading fixes.2021-11-15T20:58:54+01:00Scott SnyderIOVSvc: More dictionary loading fixes.We want CondInputLoader to load dictionaries for persistent
conditions classes during initialization, as there can be
problems with ROOT dictionary loading when multiple threads
are running.
Add a special case to handle LArConditionsSub...We want CondInputLoader to load dictionaries for persistent
conditions classes during initialization, as there can be
problems with ROOT dictionary loading when multiple threads
are running.
Add a special case to handle LArConditionsSubset classes,
as the existing T->P class mapping code doesn't recognize
them properly.
May help with LArShape32MCCnv::createTransient crashes seen
in reprocessing.https://gitlab.cern.ch/atlas/athena/-/merge_requests/45010IOVSvc: Load more dictionaries during initialization.2021-07-13T08:39:40+02:00Scott SnyderIOVSvc: Load more dictionaries during initialization.In CondInputLoader, be more aggressive at loading dictionaries
during initialization. Recursively load dictionaries,
and load StreamerInfo.
(See ATEAM-749.)In CondInputLoader, be more aggressive at loading dictionaries
during initialization. Recursively load dictionaries,
and load StreamerInfo.
(See ATEAM-749.)https://gitlab.cern.ch/atlas/athena/-/merge_requests/43606IOVSvc: Load conditions dictionaries during initialize().2021-05-19T03:02:45+02:00Scott SnyderIOVSvc: Load conditions dictionaries during initialize().Make sure that root dictionaries for the objects we manage are loaded
during initialize(). Leaving them to be loaded until after event processing
starts is unreliable, as root sometimes has problems loading dictionaries
when multiple th...Make sure that root dictionaries for the objects we manage are loaded
during initialize(). Leaving them to be loaded until after event processing
starts is unreliable, as root sometimes has problems loading dictionaries
when multiple threads are running.
See ATLASRECTS-6347.https://gitlab.cern.ch/atlas/athena/-/merge_requests/69300IOVSvc+IOVDbSvc: delete legacy job options2024-02-29T07:27:17+01:00Frank WinklmeierIOVSvc+IOVDbSvc: delete legacy job optionsDelete include-style legacy job options and empty text options.Delete include-style legacy job options and empty text options.https://gitlab.cern.ch/atlas/athena/-/merge_requests/31507IOVSvc+IOVDbSvc+AthenaKernel: Fixing some IOVSvc memory leaks.2020-03-27T03:02:34+01:00Scott SnyderIOVSvc+IOVDbSvc+AthenaKernel: Fixing some IOVSvc memory leaks.Fix a couple memory leaks in IOVSvc::createCondObj.
The address returned from getRangeFromDB was leaked.
Fixed by changing this method to return the address via a unique_ptr.
An object is read via StoreGateSvc::createObj. This returns...Fix a couple memory leaks in IOVSvc::createCondObj.
The address returned from getRangeFromDB was leaked.
Fixed by changing this method to return the address via a unique_ptr.
An object is read via StoreGateSvc::createObj. This returns a DataObject*,
which is a DataBucket holding the actual payload object.
The payload object is added to the conditions container, but the
DataBucket is leaked. Fixed to make sure the DataBucket is freed.
See ATEAM-601.https://gitlab.cern.ch/atlas/athena/-/merge_requests/65030IOVSvc+ForwardIdCnv+InDetIdCnv: Deprecated SG methods.2023-08-15T08:50:18+02:00Scott SnyderIOVSvc+ForwardIdCnv+InDetIdCnv: Deprecated SG methods.Use SG::asStorable, not the deprecated StoreGateSvc::asStorable.Use SG::asStorable, not the deprecated StoreGateSvc::asStorable.https://gitlab.cern.ch/atlas/athena/-/merge_requests/57002IOVSvc: Fix thread-safety checker warnings.2022-09-27T21:49:24+02:00Scott SnyderIOVSvc: Fix thread-safety checker warnings.Fix some new thread-safety checker warnings.Fix some new thread-safety checker warnings.https://gitlab.cern.ch/atlas/athena/-/merge_requests/24494IOVSvc: Fix test failure in debug build.2019-06-29T03:02:46+02:00Scott SnyderIOVSvc: Fix test failure in debug build.Remove NDEBUG ifdefs, so that logging has the same behavior
in debug vs opt builds. Update reference file.Remove NDEBUG ifdefs, so that logging has the same behavior
in debug vs opt builds. Update reference file.https://gitlab.cern.ch/atlas/athena/-/merge_requests/33975IOVSvc: Fix refcounting bug in createCondObj2020-06-23T03:04:17+02:00Scott SnyderIOVSvc: Fix refcounting bug in createCondObjCondAttrListCollection is a DataObject with a reference count.
CondAttrListCollAddress holds an instance of CondAttrListCollection
and manages its reference count.
However, what createCondObj does is to take the address, get the
DataBuc...CondAttrListCollection is a DataObject with a reference count.
CondAttrListCollAddress holds an instance of CondAttrListCollection
and manages its reference count.
However, what createCondObj does is to take the address, get the
DataBucket from the address, take control of the underlying
object via relinquish, and then store the underlying object
in the CondCont. CondCont then takes ownership of the object,
and it doesn't know about refcounting. Then finally the address
is deleted. Normally this works ok even for CondAttrListCollection,
since when we get the object from the address the refcount
is incremented. Deleting the address will then just decrement
the reference count again, and the CondCont is left as the
only owner of the object.
But the range being inserted entirely overlaps with an existing range,
then CondCont will delete the object rather than inserting it.
In that case, when we try to delete the object, it tries to
decrement the object's refcount using a dangling reference
to the deleted object, which can crash.
Fix this by making sure that the address is deleted before
we try to add the object to the CondCont.https://gitlab.cern.ch/atlas/athena/-/merge_requests/39264IOVSvc: Fix memory leak.2020-12-19T03:03:09+01:00Scott SnyderIOVSvc: Fix memory leak.Accidently write release() instead of reset() for a unique_ptr,
so the object was being leaked.
See ATEAM-601.Accidently write release() instead of reset() for a unique_ptr,
so the object was being leaked.
See ATEAM-601.