|
[Rivet] YODA excptionsAndy Buckley andy.buckley at cern.chTue Jan 19 21:13:17 GMT 2016
On 19/01/16 11:46, Chris Pollard wrote: > Hi David, > > Just to be sure I understand you: YODA should always raise these > exceptions; it's a question of whether Rivet catches them gracefully, > correct? I also took David's email to mean this. Not sure what is meant by the "new" YODA stance on this -- we have raised exceptions for a long time. Except in the divide and mkScatter methods: we do not raise exceptions there but rather set values/errors to zero if there are low-stats exceptions or similar. [And in YODA version 1.5 onwards this will be changed to setting NaN instead, i.e. using the IEEE fp spec properly (which will require adjustment in make-plots to skip plotting of NaN-valued plot elements, cf. matplotlib).] > I am not sure all users want Rivet to continue running when at least one > analysis crashes, but I can see why some might. Maybe a --continue-run > flag or similar is more appropriate for those that don't want to stop > the run when there is at least one analysis "still standing"? I'm not a fan of solving problems with "add another UI flag" -- we already have more than is sensible. And if we decide to go down a route like that, then the new flag should just be a UI frontend for a more fundamental flag on AnalysisHandler or similar. But like Chris, I'm not sure that this is a great idea, at least not with the current production version -- how do we avoid ending up with histograms in an inconsistent state if e.g. for a single event some but not all are filled before the exception is thrown? That need for "atomic" transactions and ability to roll-back a failed event sounds like it'll be easier with the abstraction of "user" and "permanent" histograms in the 3.0 multiweight branch. Andy > On Tue, Jan 19, 2016 at 10:35 AM, David Grellscheid > <david.grellscheid at durham.ac.uk <mailto:david.grellscheid at durham.ac.uk>> > wrote: > > Hi all, > > can we discuss the new YODA stance of always raising exceptions? > > Within the lowest level of YODA, I have no problem with that, it's > the right thing to do. The question is at what level you need to > swallow these. One rogue point in one dodgy Rivet analysis can kill > a whole run right now. > > I think that > > 1) no YODA exceptions should be able to propagate outside of Rivet. > Rivet needs to deal with them and "do the right thing" whatever that > may be. > > 2) Rivet needs to isolate crashing analyses and allows the remaining > run to proceed > > Any comments? > > David > _______________________________________________ > Rivet mailing list > Rivet at projects.hepforge.org <mailto:Rivet at projects.hepforge.org> > https://www.hepforge.org/lists/listinfo/rivet > > > > > _______________________________________________ > Rivet mailing list > Rivet at projects.hepforge.org > https://www.hepforge.org/lists/listinfo/rivet > -- Dr Andy Buckley, Lecturer / Royal Society University Research Fellow Particle Physics Expt Group, University of Glasgow
More information about the Rivet mailing list |