Bug: FALCON Crashes When Reference Frame Index is 0 and Starting Frame Index is 1
LalithShiyam opened this issue · 0 comments
Description:
I encountered a crash in the FALCON application when attempting to perform a rigid transformation using the command-line interface. The crash occurs specifically when setting the reference frame index (-rf
) to 0 and the starting frame index (-sf
) to 1. This issue seems to be related to how the reference frame is handled within the list of moving frames.
Steps to Reproduce:
-
Execute the FALCON command with the following parameters:
falconz -d <dir_path> -rf 0 -sf 1 -r rigid -m cruise
Replace
<dir_path>
with the path to your directory containing the frames. -
Observe the crash with the error output as described below.
Expected Behavior:
FALCON should process the specified frames starting from the frame index 1, considering the frame at index 0 as the reference, and apply the rigid transformation without errors.
Actual Behavior:
The application crashes with the following error message:
Traceback (most recent call last):
File "/home/mz/Documents/Projects/Lalith/MACOSX/Codes/falconz_env/bin/falconz", line 8, in <module>
sys.exit(main())
File "/home/mz/Documents/Projects/Lalith/MACOSX/Codes/falconz_env/lib/python3.10/site-packages/falconz/falconz.py", line 220, in main
moving_frames = moving_frames.remove(reference_file)
ValueError: list.remove(x): x not in list
Workaround Found:
Replacing the line
moving_frames = moving_frames.remove(reference_file)
with a list comprehension
moving_frames = [frame for frame in moving_frames if frame != reference_file]
resolved the crash. This suggests an issue with how the remove
method is used, perhaps due to the reference_file
not being in the moving_frames
list in some cases.
Suggested Solution:
Consider replacing the .remove()
usage with the list comprehension approach mentioned above, which safely filters out the reference_file
without throwing an error if it's not found in the list.
Environment:
- FALCON version: 2.0.27
- Python version: 3.10
- Operating System: Ubuntu
Bug originally reported by Otto Muzik