Skip to content

Add bool configuration parameter #347

@c-dilks

Description

@c-dilks

Attempted in #346, and passed all CI checks; however, thread sanitizer finds a data race when this feature is actually used in #342:

// in FiducialFilter::Start:
o_enable_pcal_cuts = GetOptionScalar<bool>("enable_pcal_cuts")

causes

WARNING: ThreadSanitizer: data race (pid=1132)
  Read of size 4 at 0x7f2018465670 by thread T4:
    #0 memcmp <null> (iguana_test+0xd06a7) (BuildId: 96c49e37913521c975860a995e999cb3665d4ac7)
    #1 YAML::convert<bool>::decode(YAML::Node const&, bool&) <null> (libyaml-cpp.so.0.8+0x1dd5c) (BuildId: da72f921b47ab808f29f1db32d0581f18b84a914)
    #2 bool YAML::Node::as<bool>() const /usr/include/yaml-cpp/node/impl.h:156:10 (libIguanaServices.so+0xf0672) (BuildId: 4cc9529f1462d8609fcbe1b01ad36243e8694a63)
    #3 std::optional<bool> iguana::YAMLReader::GetScalar<bool>(YAML::Node) /__w/iguana/iguana/iguana_build/../iguana_src/src/iguana/services/YAMLReader.cc:29:21 (libIguanaServices.so+0xf0370) (BuildId: 4cc9529f1462d8609fcbe1b01ad36243e8694a63)
    #4 std::optional<bool> iguana::YAMLReader::GetScalar<bool>(std::deque<std::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::function<YAML::Node (YAML::Node)>>, std::allocator<std::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::function<YAML::Node (YAML::Node)>>>>) /__w/iguana/iguana/iguana_build/../iguana_src/src/iguana/services/YAMLReader.cc:53:16 (libIguanaServices.so+0xf1b08) (BuildId: 4cc9529f1462d8609fcbe1b01ad36243e8694a63)
    #5 bool iguana::Algorithm::GetOptionScalar<bool>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::deque<std::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::function<YAML::Node (YAML::Node)>>, std::allocator<std::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::function<YAML::Node (YAML::Node)>>>>) const /__w/iguana/iguana/iguana_build/../iguana_src/src/iguana/algorithms/Algorithm.cc:20:28 (libIguanaAlgorithms.so+0x19009f) (BuildId: 44d9753790d65ce89b89ce9c96ede6114141fbc5)
    #6 iguana::clas12::FiducialFilter::Start(std::vector<hipo::bank, std::allocator<hipo::bank>>&) /__w/iguana/iguana/iguana_build/../iguana_src/src/iguana/algorithms/clas12/FiducialFilter/Algorithm.cc:18:33 (libIguanaAlgorithms.so+0x24b991) (BuildId: 44d9753790d65ce89b89ce9c96ede6114141fbc5)

I'm not sure if this is a yaml-cpp problem or if #346 is incomplete; at the very least, this issue serves as documentation of the attempt...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Unsorted

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions