# DigitalDownConverter — Troubleshooting ## Pipeline stuck in `configuring` **Cause**: mkrecv cannot bind to the multicast group, or the input stream address is unreachable. **Resolution**: Check that the multicast group in `input_data_streams[0].ip` is reachable from the host NIC. Verify that the packetizer is transmitting. **Diagnostic commands**: ```bash docker logs ddc_processor # look for "mkrecv" bind errors or "no data received" ``` --- ## `output_data_streams` count mismatch **Cause**: `len(output_data_streams) != 2 × len(f_lo)`. The pipeline raises `EDDPipelineError` during configure. **Resolution**: Ensure the configuration contains exactly two output stream keys per entry in `f_lo` (one `_lower`, one `_upper`). --- ## NUMA check failure **Cause**: The pipeline detects that the GPU and input NIC are on different NUMA nodes, which causes suboptimal PCIe transfers. **Resolution**: This is a warning by default. Set `nonfatal_numacheck: true` to suppress it if the system cannot be reconfigured. For production, ensure GPU and NIC share a NUMA node. --- ## High heap drop rate in mkrecv **Cause**: Input buffer (`dada_nslots`) is too shallow for the incoming data rate, or the GPU processing falls behind. **Resolution**: Increase `dada_nslots`. Check GPU utilisation and ensure no other process competes for GPU resources. **Diagnostic commands**: ```bash # inside container dada_db -l # list PSRDADA ring buffers and fill levels ``` --- ## `output-rate` sensor reports 0 **Cause**: The pipeline has not yet reached `running` state, or `output_type` is set to `[]`. **Resolution**: Confirm the pipeline state via `?sensor-value pipeline-status`. Ensure `output_type` contains at least one valid entry. --- ## Log locations | Log | Location | |---|---| | Container stdout | `docker logs ddc_processor` | | mkrecv output | included in container stdout | | InfluxDB metrics | Grafana → dada\_monitor panel |