@cryptotaxi247 / netdata-1 / commits / 49a77d5df

Improve ACLK data transmission (#21483)

Fix: Skip garbage-collected MQTT fragments during send processing

Stelios Fragkakis committed Dec 18, 2025 at 19:30 UTC 49a77d5df793c9c01ecf32db29030876902c33fd
1 file changed +7 -1
src/aclk/mqtt_websockets/mqtt_ng.c
+7 -1
@@ -2026,7 +2026,13 @@ static int mqtt_ng_next_to_send(struct mqtt_ng_client *client) {
2026
2027 struct buffer_fragment *frag = BUFFER_FIRST_FRAG(&client->main_buffer.hdr_buffer);
2028 while (frag) {
2029 - if ( frag->sent != frag->len )
2029 + // Skip fragments marked for garbage collection - their data may have
2030 + // been freed by mark_message_for_gc() after a timeout or ACK
2031 + if (frag_is_marked_for_gc(frag)) {
2032 + frag = frag->next;
2033 + continue;
2034 + }
2035 + if (frag->sent != frag->len)
2036 break;
2037 frag = frag->next;
2038 }