Fix Viewer Recursion: StackOverflow in Server Setup #1987
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes the following bug:
Describe the bug
ViewerState
is initialized in the trainer:nerfstudio/nerfstudio/engine/trainer.py
Line 162 in 160abde
This eventually makes a call to
parse_objects
to construct the model tree:nerfstudio/nerfstudio/viewer/server/gui_utils.py
Line 24 in 160abde
If part of the model contains an infinite recursion (e.g. a
torch.nn.Module
that links back to its parent for completely valid implementation reasons), thenparse_objects
will result in a StackOverflow since recursion is repeated indefinitely.To Reproduce
Steps to reproduce the behavior:
torch.nn.Module
with such a recursion. In my case I use torchmetrics.ClipScore, but any module with that attribute works.ns-train
Expected behavior
The recursion should stop..