VictoriaMetrics/lib
Nikolay c79ef7fbde
app/vmselect: abort streaming connections for vmselect (#5650)
* app/vmselect: abort streaming connections for vmselect
due to streaming nature of export APIs, curl and simmilr tools cannot
detect errors that happened after http.Header with status 200 was
written to it.

This PR tracks if body write was already started and closes connection.

It allows client to detect not expected chunk sequence and return error
to the caller.

Mostly it affects vmselect at cluster version

https://github.com/VictoriaMetrics/VictoriaMetrics/issues/5645

* wip

Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/5645
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/pull/5650

---------

Co-authored-by: Aliaksandr Valialkin <valyala@victoriametrics.com>
2024-01-22 00:56:36 +02:00
..
appmetrics all: replace atomic.Value with atomic.Pointer[T] 2023-07-19 17:42:06 -07:00
auth lib/auth: add NewTokenPossibleMultitenant() for parsing auth token, which can be multitenant 2023-08-30 14:20:11 +02:00
awsapi lib/awsapi: properly assume role with webIdentity token (#5495) 2023-12-20 19:12:44 +02:00
backup vendor: run make vendor-update 2023-12-10 14:34:35 +02:00
blockcache Makefile: update golangci-lint from v1.51.2 to v1.54.2 2023-09-01 11:12:12 +02:00
bloomfilter all: replace atomic.Value with atomic.Pointer[T] 2023-07-19 17:42:06 -07:00
bufferedwriter app/vmselect: move common http functionality from app/vmselect/searchutils to lib/httputils 2023-06-19 22:34:20 -07:00
buildinfo all: open-sourcing single-node version 2019-05-23 00:18:06 +03:00
bytesutil Makefile: update golangci-lint from v1.51.2 to v1.54.2 2023-09-01 11:12:12 +02:00
cgroup lib/cgroup: add SetGOGC() function 2023-06-19 22:39:00 -07:00
decimal lib/decimal: use consistent randomizer in tests 2023-01-23 19:23:39 -08:00
encoding lib/encoding/zstd: switch back from atomic.Pointer to atomic.Value for map[...]... 2023-07-20 20:56:11 -07:00
envflag lib/envflag: do not allow unsupported form for boolean command-line flags in the form -boolFlag value 2023-08-17 14:15:39 +02:00
envtemplate allowed using dashes and dots in environment variables names (#4009) 2023-03-24 15:43:05 -07:00
fastnum Makefile: add build and test rules with enabled race detector. These rules have -race suffix 2020-03-05 12:03:38 +02:00
fasttime lib: extract common code for returning fast unix timestamp into lib/fasttime 2020-05-14 23:02:07 +03:00
filestream app/vmselect/promql: follow-up for ce4f26db02 2024-01-16 22:19:04 +02:00
flagutil lib/flagutil: add defaultValue arg to NewArray{Int,Bytes,Duration} functions 2023-08-12 04:19:05 -07:00
formatutil app/vmbackupmanager: add metrics for better observability (#488) 2022-12-20 14:18:06 -08:00
fs app/vmselect/promql: follow-up for ce4f26db02 2024-01-16 22:19:04 +02:00
htmlcomponents app/vmselect: remove dependency on lib/promscrape from app/vmselect 2023-01-03 23:28:27 -08:00
httpserver app/vmselect: abort streaming connections for vmselect (#5650) 2024-01-22 00:56:36 +02:00
httputils lib/httputils: handle step=undefined query arg as an empty value 2024-01-17 00:13:25 +02:00
influxutils lib/flagutil: rename Array to ArrayString 2022-10-01 18:26:36 +03:00
ingestserver lib/netutil: init implimentation of proxy protocol (#3687) 2023-01-26 23:08:35 -08:00
leveledbytebufferpool all: make fmt via the upcoming Go1.19 2022-07-11 19:22:15 +03:00
logger add error handler for parsing prometheus text format to vmagent and v… (#3693) 2023-01-23 22:14:34 -08:00
logjson app/vlinsert/jsonline: code prettifying 2023-06-21 19:39:22 -07:00
logstorage Makefile: update golangci-lint from v1.51.2 to v1.54.2 2023-09-01 11:12:12 +02:00
lrucache Makefile: update golangci-lint from v1.51.2 to v1.54.2 2023-09-01 11:12:12 +02:00
memory docs: follow-up after aec4b5db81 (#4638) 2023-07-19 10:10:51 +02:00
mergeset Makefile: update golangci-lint from v1.51.2 to v1.54.2 2023-09-01 11:12:12 +02:00
metricsql all: make fmt via the upcoming Go1.19 2022-07-11 19:22:15 +03:00
netutil Makefile: update golangci-lint from v1.51.2 to v1.54.2 2023-09-01 11:12:12 +02:00
persistentqueue lib/persistentqueue: properly re-create flock.lock file inside directory if persistent queue is broken. 2023-10-31 18:36:49 +01:00
procutil lib/procutil: stop immediately after receiving the second SIGINT or SIGTERM signal 2022-10-20 21:40:20 +03:00
promauth lib/promauth: properly parse string contents for ca, cert and key fields at tls_config 2023-10-27 14:22:55 +02:00
prompb app/vminsert: moved -maxInsertRequestSize command-line flag out of lib/prompb in order to prevent its inclusion in vmselect and vmstorage apps 2020-01-28 23:02:08 +02:00
prompbmarshal all: use %w instead of %s for wrapping errors in fmt.Errorf 2020-06-30 23:05:11 +03:00
promrelabel lib/streamaggr: properly reference slice with labels (#5406) 2023-11-29 12:30:00 +02:00
promscrape lib/promscrape/discovery/kubernetes: stop all the url watchers, which belong to a particular groupWatcher, at once 2023-10-27 14:37:31 +02:00
promutils vmalert: revert unittest feature (#4734) 2023-07-28 10:42:02 +02:00
protoparser lib/protoparser/opentelemetry: allow ingesting metrics without resource labels 2023-12-17 19:24:08 +02:00
proxy lib/proxy: consistently use gopkg.in/yaml.v2 across all the code 2023-09-01 11:15:02 +02:00
pushmetrics lib/pushmetrics: wait until the background goroutines, which push metrics, are stopped at pushmetrics.Stop() 2024-01-16 23:18:29 +02:00
querytracer lib/querytracer: add missing blank comment line after 3121d76bee 2023-11-15 16:03:46 +01:00
regexutil lib/regexutil: properly handle alternate regexps surrounded by .+ or .* 2023-11-13 18:27:15 +01:00
snapshot Makefile: update golangci-lint version from v1.54.2 to v1.55.1 2023-12-08 18:28:36 +02:00
storage lib/storage: do not prefetch metric names for small number of metricIDs 2024-01-17 13:52:51 +02:00
streamaggr lib/streamaggr/streamaggr.go: fix link in error message (#5439) 2023-12-08 18:14:43 +02:00
syncwg all: open-sourcing single-node version 2019-05-23 00:18:06 +03:00
tenantmetrics lib/encoding/zstd: switch back from atomic.Pointer to atomic.Value for map[...]... 2023-07-20 20:56:11 -07:00
timerpool lib/timerpool: use timer pool in concurrency limiters 2019-05-28 17:20:10 +03:00
uint64set lib/uint64set: use repeatable randomizer in tests 2023-01-23 19:22:58 -08:00
workingsetcache all: replace atomic.Value with atomic.Pointer[T] 2023-07-19 17:42:06 -07:00
writeconcurrencylimiter lib/writeconcurrencylimiter: initialize concurrencyLimitCh before exporting vm_concurrent_insert_capacity and vm_concurrent_insert_current metrics 2023-02-07 11:08:17 -08:00