Skip to content

Remove support for auto error sink

Ottomata requested to merge T335591_error_sink into main

In T326536, we added support for automatic error sinks. This actually broke configuring manual error sinks from configuration, due to a quirk in the way jsonargparse handles type inference with Union/Optional types & data classes. tl;dr: we can't use Union or Optional with a dataclass config, unless we want to configure dataclasses like other 'classes', and include things like class_path and init_args, instead of just configuring a dict. https://jsonargparse.readthedocs.io/en/stable/#class-type-and-sub-classes

To still support the default of no error sink, this change introduces a dummy "null" SinkDescriptor connector type, for which both the sink and sink_to methods return None.

stream_manager will actually set its own error_sink_descriptor = None if the error sink connector is "null", keeping the existant behavior of not emitting any side output.

The default stream_manager error_sink is now a "null" SinkDescriptor.

Bug: T335591

Merge request reports