askap-vast / vast-pipeline

This repository holds the code of the Radio Transient detection pipeline for the VAST project.
https://vast-survey.org/vast-pipeline/
MIT License
8 stars 3 forks source link

Pipeline run breaks when no forced fits are required? #703

Open ddobie opened 8 months ago

ddobie commented 8 months ago

https://dev.pipeline.vast-survey.org/piperuns/68/

2024-02-05 23:18:44,445 forced_extraction INFO Starting force extraction step.
2024-02-05 23:18:44,879 forced_extraction DEBUG Min forced sigma dropped 366849 sources
2024-02-05 23:18:45,013 runpipeline ERROR Processing error:
can't multiply sequence by non-int of type 'NoneType'
Traceback (most recent call last):
  File "/usr/src/vast-pipeline/vast-pipeline-add-further-debug-logging/vast_pipeline/management/commands/runpipeline.py", line 340, in run_pipe
    pipeline.process_pipeline(p_run)
  File "/usr/src/vast-pipeline/vast-pipeline-add-further-debug-logging/vast_pipeline/pipeline/main.py", line 277, in process_pipeline
    ) = forced_extraction(
  File "/usr/src/vast-pipeline/vast-pipeline-add-further-debug-logging/vast_pipeline/pipeline/forced_extraction.py", line 608, in forced_extraction
    extr_df = parallel_extraction(
  File "/usr/src/vast-pipeline/vast-pipeline-add-further-debug-logging/vast_pipeline/pipeline/forced_extraction.py", line 373, in parallel_extraction
    db.from_sequence(
  File "/usr/src/vast-pipeline/.venv/vast-pipeline-B4hVHlAK-py3.8/lib/python3.8/site-packages/dask/bag/core.py", line 1774, in from_sequence
    parts = list(partition_all(partition_size, seq))
  File "/usr/src/vast-pipeline/.venv/vast-pipeline-B4hVHlAK-py3.8/lib/python3.8/site-packages/toolz/itertoolz.py", line 723, in partition_all
    args = [iter(seq)] * n
TypeError: can't multiply sequence by non-int of type 'NoneType'

I need to properly investigate, but I suspect the problem is that all of the sources are dropped. This is an edge case that likely originates from a problem with the post-processed data (which is exactly what this run is testing). However, the pipeline should handle it nicely (i.e. check if there's no forced fits required and skip that step).