Skip to content

Conversation

@guitargeek
Copy link
Contributor

The IO of RooFit proxies can be quite fragile sometimes, and it can happen when reading a RooProduct that the _proxyList is not synced with the proxy members.

In dbc9681, I decided to throw an exception is this case, but I realized this was too strong: too many old workspace are affected. In all cases that I know of, one can simply recover by correctly resetting the _proxyList. This is now what is done, and only a warning is printed. The warning includes information on all the proxies, so the user can figure out themselves if what RooFit is doing here is correct.

@phsft-bot
Copy link

Starting build on ROOT-debian10-i386/soversion, ROOT-performance-centos8-multicore/cxx17, ROOT-ubuntu18.04/nortcxxmod, ROOT-ubuntu2004/python3, mac12/noimt, mac11/cxx14, windows10/cxx14
How to customize builds

@phsft-bot
Copy link

Build failed on ROOT-debian10-i386/soversion.
Running on pcepsft11.dyndns.cern.ch:/home/sftnight/build/workspace/root-pullrequests-build
See console output.

Failing tests:

The IO of RooFit proxies can be quite fragile sometimes, and it can
happen when reading a RooProduct that the `_proxyList` is not
synced with the proxy members.

In dbc9681, I decided to throw an exception is this case, but I
realized this was too strong: too many old workspace are affected.
In all cases that I know of, one can simply recover by correctly
resetting the `_proxyList`. This is now what is done, and only a warning
is printed. The warning includes information on all the proxies, so the
user can figure out themselves if what RooFit is doing here is correct.
@phsft-bot
Copy link

Starting build on ROOT-debian10-i386/soversion, ROOT-performance-centos8-multicore/cxx17, ROOT-ubuntu18.04/nortcxxmod, ROOT-ubuntu2004/python3, mac12/noimt, mac11/cxx14, windows10/cxx14
How to customize builds

@phsft-bot
Copy link

Build failed on ROOT-debian10-i386/soversion.
Running on pcepsft11.dyndns.cern.ch:/home/sftnight/build/workspace/root-pullrequests-build
See console output.

Failing tests:

Copy link
Member

@lmoneta lmoneta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!
Maybe we should document somewhere what this warning means. I am not sure users understand it and decide if it is OK what RooFit is going to do it.

@guitargeek
Copy link
Contributor Author

Thanks! You are right, the message is quite cryptic for users... I hope I can improve the situation in the next release, maybe even find the underlying reason for this proxy desync.

But for 6.28 I didn't have much time, and I still needed to do something that doesn't throw anymore, and at least now it gives a warning that is useful for us developers to debug the problem.

Actually you can kind of thee if RooFit does the right thing because the warning prints out the proxy contents. From the names of the factors of the product, you can guess which one was probably meant to serve the RooProduct.

@guitargeek guitargeek merged commit 4e99b43 into root-project:master Jan 18, 2023
@guitargeek guitargeek deleted the proxy_warnings branch January 18, 2023 14:31
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.

3 participants