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

EventSetup conditions fail using ESGetToken for a product that uses a Service #30669

Closed
fwyzard opened this issue Jul 13, 2020 · 7 comments
Closed

Comments

@fwyzard
Copy link
Contributor

fwyzard commented Jul 13, 2020

We are seeing an issue with the use of ESGetToken after migrating the Patatrack branch to CMSSW_11_2_X .

Some modules fail with an error like

----- Begin Fatal Exception 13-Jul-2020 19:11:32 CEST-----------------------
An exception of category 'NotFound' occurred while
   [0] Running EventSetup component SiPixelGainCalibrationForHLTGPUESProducer/'siPixelGainCalibrationForHLTGPU
Exception Message:
Service no ServiceRegistry has been set for this thread
----- End Fatal Exception -------------------------------------------------

A cursory investigation following a suggestion by @makortel suggests that this happens when an ESGetToken is used to access a product, produced by an ESProducers that accesses a Service (in our case likely the CUDAService) when the product is being produced.

@cmsbuild
Copy link
Contributor

A new Issue was created by @fwyzard Andrea Bocci.

@Dr15Jones, @silviodonato, @dpiparo, @smuzaffar, @makortel can you please review it and eventually sign/assign? Thanks.

cms-bot commands are listed here

@makortel
Copy link
Contributor

assign core

@cmsbuild
Copy link
Contributor

New categories assigned: core

@Dr15Jones,@smuzaffar,@makortel you have been requested to review this Pull request/Issue and eventually sign? Thanks

@makortel
Copy link
Contributor

The CUDAService gets called in the constructor of the ESProduct, that has cms::cuda::ESProduct member

ESProduct() : gpuDataPerDevice_(numberOfDevices()) {

namespace cms::cuda {
int numberOfDevices() {
edm::Service<CUDAService> cs;
return cs->enabled() ? cs->numberOfDevices() : 0;
}
} // namespace cms::cuda

@Dr15Jones
Copy link
Contributor

#30688 should fix this. Thanks for the report.

@makortel
Copy link
Contributor

+1

Fix has been merged

@cmsbuild
Copy link
Contributor

This issue is fully signed and ready to be closed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants