Replies: 3 comments 5 replies
-
Hi @sbalmos, The issue here is that the Vector source will respond with To resolve this, we need to update either the Vector source or sink to make them consistent in how they handle rejected data. |
Beta Was this translation helpful? Give feedback.
-
In the meantime, is there a need to have multiple vector instances? From my understanding of your setup thus far, you could consolidate everything into a single vector instance and scale horizontally if needed with a Kafka consumer group. |
Beta Was this translation helpful? Give feedback.
-
@sbalmos could you share the config and version you are using? |
Beta Was this translation helpful? Give feedback.
-
I'm still trying to quantify exactly what the bug is, but it seems like the vector source/sink does not propagate back up non-retryable delivery failures from the end sink. In my setup, I have a Vector instance as a sort of post office delivery multiplexer, reading from Kafka and distributing to one or more exporter Vector instances, connected via the vector sink.
In exporters where some failures are non-retryable (e.g. HTTP sink with non-retryable errors like 400), it seems as if at the exporter level the event is appropriately dropped. However, this drop action apparently does not communicate back a hard failure acknowledgement or similar signal through the vector protocol, back to the Mux instance. The vector sink retry on the Mux instance apparently sees a delivery failure (or rather lack of acknowledgement) and repeatedly tries to retry delivery of the message to the exporter. This continues ad nauseam until the retry count is exceeded or (more likely) the exporter's vector sink buffer on the Mux is filled - which then has a follow-on bad behavior of stopping the whole mux in its tracks, stopping delivery of all messages to all destination exporters.
Beta Was this translation helpful? Give feedback.
All reactions