-
Notifications
You must be signed in to change notification settings - Fork 1.4k
[RF] Don't throw exception if proxies are inconsistent in RooProduct #12046
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
|
Starting build on |
|
Build failed on ROOT-debian10-i386/soversion. 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.
287ebf6 to
ca6c963
Compare
|
Starting build on |
|
Build failed on ROOT-debian10-i386/soversion. Failing tests: |
lmoneta
left a comment
There was a problem hiding this 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.
|
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 |
The IO of RooFit proxies can be quite fragile sometimes, and it can happen when reading a RooProduct that the
_proxyListis 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.