Skip to content

Conversation

@kd-ufr
Copy link
Collaborator

@kd-ufr kd-ufr commented Dec 15, 2025

The Problem

  • Groot creates every node port when saving the tree to xml, even if the port value is unusued and thus empty. For these empty ports, the value is saved as ""
  • Since v4.7.2, BTCPP preemptively tries to convert every port value to it's appropriate type before it begins to run the tree
  • BTCPP encounters an empty port where it cannot convert "" to the appropriate type (eg to a double)
  • BTCPP throws and error and doesn't run the tree

Discussed Fixes

Possible Fix Pros Cons
Put dummy values into every port - Doesn't require further patching of BTCPP - Makes tree less readable - More work for user every time they add a new node in Groot2
Re-write all nodes so there are never unused values - Doesn't require further patching of BTCPP - Need to refactor every node plugin (102 core nodes + job specific nodes) and all trees
Stop using Groot2 - Doesn't require further patching of BTCPP - Groot2 is super helpful tool. Writing these trees solely in xml is not workable as the files become thousands of lines long
Remove all unused ports after every time a tree is saved in Groot2 - Doesn't require further patching of BTCPP - Lots of re-work for users. Difficult to automate because depending on the port type, "" may be valid
Patch BTCPP to not check empty ports - One-time fix - Maintains all Groot2 usage - Requires slightly more work when versioning up BTCPP

This PR
Implements the bolded fix. Fix is copied from BTCPP PR 854.

Testing

  • tested in db sim + new jazzy container, tree runs as expected

@kd-ufr kd-ufr requested a review from joshjowen December 15, 2025 23:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants