Understanding Errors
Contents
Understanding Errors¶
At its heart, we are using func_adl
to run C++. func_adl
is an abstraction. And givin how complex ATLAS software is, the abstraction is bound to leak. One very messy place it leaks is when things go wrong. And it leaks in two ways.
The first way is that
ServiceX
is a distributed processing system. And collecting errors in an appropriate way from 100’s of processors is not trivial.The second way it leaks is that when something goes wrong with the generated C++,
ServiceX
just passes back the error logs, leaving it up to the user. This section tries to list some of the errors that are seen, showing some examples, and also the appropriate course of action to take (or at least, root causes).
The error messages are very long, and depending on what platform you are viewing this file, it can be pretty overwhelming. All the errors here are shown when running the local version of ServiceX in a docker container. We always recommend doing this when faced with an error you can’t figure out from the distributed version - much faster to debug.
Note
Please do contact us with weird errors so we can add them here!
Warning
In this first version of the book we have not yet started to fill this out.
Asking for a Systematic Error that does not exist¶
Consider the following code:
# muons = (ds
# .SelectMany(lambda e: e.Muons("Muons", calibration="MUON_ID__1up"))
# .Select(lambda j: {
# 'pt': j.pt() / 1000.0,
# 'eta': j.eta(),
# 'phi': j.phi(),
# })
# .AsAwkwardArray()
# .value())
Asking for something not present in your skim¶
The ATLAS data model is very flexible. While that brings a lot of power, it can also mean you run into unexpected problems whose cause isn’t transparent. For example, since you are dealing with C++ objects to extract data, and not directly with the data itself, you can ask for some data that doesn’t exist. The software will give you a pretty clear error.
Tracks
are some of the larger objects in ATLAS data, and as a result, they are slimmed down. Here is an example of asking for something that does not exist: