Bug #24652

A problem remains with selectors in art v3_06_01

Added by Rob Kutschke 9 months ago. Updated 9 months ago.

Target version:
Start date:
Due date:
% Done:


Estimated time:
Spent time:
Occurs In:
SSI Package:


After the work in issue #24640 a problem remains with a selector that contains an operator!(). To reproduce on any mu2egpvm* machine:

Edit Log time Watch
Bug #24640

source /cvmfs/
git clone :kutschke/Offline
cd Offline
scons -j 8 TrackerMC/src/MakeStrawGasSteps_module.os

The error message is:

In file included from /cvmfs/,
from /cvmfs/,
from TrackerMC/src/
/cvmfs/ In instantiation of 'std::enable_if_t<is_selector<A>, art::NotHelper<A> > art::operator!(A&&) [with A = art::ModuleLabelSelector; std::enable_if_t<is_selector<A>, art::NotHelper<A> > = art::NotHelper<art::ModuleLabelSelector>]':
TrackerMC/src/ required from here
/cvmfs/ error: cannot bind rvalue reference of type 'art::ModuleLabelSelector&&' to lvalue of type 'art::ModuleLabelSelector'
return NotHelper<A>{a};
/cvmfs/ note: initializing argument 1 of 'art::NotHelper<A>::NotHelper(A&&) [with A = art::ModuleLabelSelector]'
explicit NotHelper(A&& a) : a_{std::forward<A>(a)} {}
scons: *** [TrackerMC/src/MakeStrawGasSteps_module.os] Error 1
scons: building terminated because of errors.

Associated revisions

Revision b6f7c27a (diff)
Added by Kyle Knoepfel 9 months ago

Fix issue #24652: Support 'not' rvalue selectors.


#1 Updated by Kyle Knoepfel 9 months ago

  • Status changed from New to Feedback
  • Category set to Infrastructure

Yes, there still appears to be a problem with the selectors. A short-term solution is to forgo the temporary module-label selector and add a private data member:

+ art::ModuleLabelSelector _labelSelector;
  art::Selector _selector;

then in the initialization list of the constructor:

+  _labelSelector{config().stepsToSkip()},
   _selector{art::ProductInstanceNameSelector(config().trackerSteps()) &&
-            !art::ModuleLabelSelector(config().stepsToSkip()) },
+            !_labelSelector },

It this is an acceptable solution, can I mark this bug as Low priority and slate the fix for our next release?

#2 Updated by Rob Kutschke 9 months ago

With that change it compiles. It will take maybe an hour to verify that the output is correct.

How long would it take to solve properly and make art v3_06_02 mu distribution available? I want to run production with this starting no later than Friday evening. If that's off the table we will do the temporary hack but I prefer not to.

#3 Updated by Kyle Knoepfel 9 months ago

I'm unlikely to get a new release of art out this week.

#4 Updated by Kyle Knoepfel 9 months ago

  • % Done changed from 0 to 100
  • Assignee set to Kyle Knoepfel
  • Status changed from Feedback to Resolved

It was a simple, but subtle fix--and now we have the test in place to ensure it doesn't occur again. Fixed with commit art:b6f7c27.

Not certain about the release schedule yet. Stay tuned.

#5 Updated by Kyle Knoepfel 9 months ago

  • Target version set to 3.06.02

#6 Updated by Kyle Knoepfel 9 months ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF