@cryptotaxi247 / netdata-1 / commits / aa5d16dee

do not free the sender when the sender thread exits (#18441)

Costa Tsaousis committed Aug 29, 2024 at 23:19 UTC aa5d16dee64e1cc3fd4b43a7da915462751da670
3 files changed +8 -9
src/streaming/sender.c
-2
@@ -751,8 +751,6 @@ void *rrdpush_sender_thread(void *ptr) {
751 sender_unlock(s);
752
753 freez(pipe_buffer);
754 - freez(s);
755 -
754 worker_unregister();
755
756 return NULL;
src/streaming/stream_path.c
+2 -3
@@ -139,10 +139,9 @@ static BUFFER *stream_path_payload(RRDHOST *host) {
139
140 void stream_path_send_to_parent(RRDHOST *host) {
141 struct sender_state *s = host->sender;
142 - if(!s || !stream_has_capability(s, STREAM_CAP_PATHS))
143 - return;
142 + if(!s || !stream_has_capability(s, STREAM_CAP_PATHS)) return;
143
145 - CLEAN_BUFFER *payload = stream_path_payload(s->host);
144 + CLEAN_BUFFER *payload = stream_path_payload(host);
145
146 BUFFER *wb = sender_start(s);
147 buffer_sprintf(wb, PLUGINSD_KEYWORD_JSON " " PLUGINSD_KEYWORD_STREAM_PATH "\n%s\n" PLUGINSD_KEYWORD_JSON_END "\n", buffer_tostring(payload));
src/web/server/web_client.c
+6 -4
@@ -705,11 +705,12 @@ HTTP_VALIDATION http_request_validate(struct web_client *w) {
705 if(last_pos > 4) last_pos -= 4; // allow searching for \r\n\r\n
706 else last_pos = 0;
707
708 - if(w->header_parse_last_size < last_pos)
708 + if(w->header_parse_last_size <= last_pos)
709 last_pos = 0;
710
711 - is_it_valid =
712 - url_is_request_complete_and_extract_payload(s, &s[last_pos], w->header_parse_last_size, &w->payload);
711 + is_it_valid = url_is_request_complete_and_extract_payload(s, &s[last_pos],
712 + w->header_parse_last_size, &w->payload);
713 +
714 if(!is_it_valid) {
715 if(w->header_parse_tries > HTTP_REQ_MAX_HEADER_FETCH_TRIES) {
716 netdata_log_info("Disabling slow client after %zu attempts to read the request (%zu bytes received)", w->header_parse_tries, buffer_strlen(w->response.data));
@@ -1824,11 +1825,12 @@ ssize_t web_client_receive(struct web_client *w)
1825 return web_client_read_file(w);
1826
1827 ssize_t bytes;
1827 - ssize_t left = (ssize_t)(w->response.data->size - w->response.data->len);
1828
1829 // do we have any space for more data?
1830 buffer_need_bytes(w->response.data, NETDATA_WEB_REQUEST_INITIAL_SIZE);
1831
1832 + ssize_t left = (ssize_t)(w->response.data->size - w->response.data->len);
1833 +
1834 errno_clear();
1835
1836 if ( (web_client_check_conn_tcp(w)) && (netdata_ssl_web_server_ctx) ) {