influxdata / influxdata/influxdb
Sending unimplemented V1 request to V3 causes socket closure without error message
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 31.7k
- Forks
- 3.7k
- Avg merge
- 13h 37m
- Merged PRs (30d)
- 8
Description
__Steps to reproduce:__
List the minimal actions needed to reproduce the behaviour.
1. I compiled latest main `c681ea05` to ensure this issue is fresh
2. `curl "http://influxdb:8181/query?q=show%20databases"`
__Expected behaviour:__
The [error message](https://github.com/influxdata/influxdb/blob/eb269a9e578f02f43c516f7f59da483d1ac1a1b5/influxdb3_internal_api/src/query_executor.rs#L143) in the HTTP response and in the logs.
Reading the source, it's supposed to get [here](https://github.com/influxdata/influxdb/blob/main/influxdb3_server/src/http.rs#L351).
__Actual behaviour:__
```
* Empty reply from server
* Closing connection 0
curl: (52) Empty reply from server
```
`INFO influxdb3_server::http::v1: handle v1 query API qualified_params=QualifiedQueryParams { chunk_size: None, database: None, epoch: None, pretty: false, query: "show databases" }` and then nothing in the logs.
Sorry, I don't have a working Rust IDE at the moment, so can't debug this myself.
__Environment info:__
* Please provide the command you used to build the project: just `cargo build`
* System info: "Linux 6.8.12-9-pve x86_64" Alpine 3.22 using `gcompat`
* If you're running IOx in a containerised environment then details about that would be helpful: Alpine in LXC
* Other relevant environment details: disk info, hardware setup etc.
__Config:__
`/opt/influxdb/influxdb3 serve --node-id node0 --object-store file --data-dir /opt/influxdb/data -v --log-filter debug`
__Logs:__
See above
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the empty response with the listed curl request, then start at influxdb3_server/src/http.rs around the referenced handler and follow the error path into influxdb3_internal_api/src/query_executor.rs around line 143. Done means the unsupported V1 query returns the expected error message in the HTTP response and logs instead of closing the socket silently.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- api, databases
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100