infiniflow / infiniflow/infinity
[Bug]: AWS S3 fails with `HTTP status code 0` when using HTTPS
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 4.7k
- Forks
- 445
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 7
Description
### Is there an existing issue for the same bug?
- [x] I have checked the existing issues.
### Version or Commit ID
nightly-0-f2431b6
### Other environment information
```Markdown
│ infinity Release: 0.6.0 build on 2025-04-28 13:18.55 with RelWithDebInfo mode from branch: main, commit-id: nightly-0-f2431b6 │
│ infinity Currently enabled SIMD support: f16c, sse2, avx, avx2 │
│ infinity [info] Config file: /etc/infinity/infinity_conf.toml │
│ infinity Infinity system configs: │
│ infinity - version: 0.6.0 │
│ infinity - timezone: UTC-8 │
│ infinity - cpu_limit: 8 │
│ infinity - server mode: admin │
│ infinity - server address: 0.0.0.0 │
│ infinity - peer server ip: 0.0.0.0 │
│ infinity - peer server port: 23850 │
│ infinity - postgres port: 5432 │
│ infinity - http port: 23820 │
│ infinity - rpc client port: 23817 │
│ infinity - connection pool size: 128 │
│ infinity - peer server connection pool size: 128 │
│ infinity - log_filename: infinity.log │
│ infinity - log_dir: /var/infinity/log │
│ infinity - log_file_path: /var/infinity/log/infinity.log │
│ infinity - log_to_stdout: true │
│ infinity - log_file_max_size: 10.00GB │
│ infinity - log_file_rotate_count: 10 │
│ infinity - log_level: Trace │
│ infinity - persistence_dir: /var/infinity/persistence │
│ infinity - persistence_file_size: 134217728 │
│ infinity - data_dir: /var/infinity/data │
│ infinity - cleanup_interval: 1m │
│ infinity - compact_interval: 2m │
│ infinity - optimize_index_interval: 10s │
│ infinity - memindex_capacity: 65536 │
│ infinity - dense_index_building_worker: 2 │
│ infinity - sparse_index_building_worker: 2 │
│ infinity - fulltext_index_building_worker: 2 │
│ infinity - storage_type: minio │
│ infinity - object_storage_url: s3.us-east-1.amazonaws.com │
│ infinity - object_storage_bucket: XXX │
│ infinity - object_storage_access_key: XXX │
│ infinity - object_storage_secret_key: XXX │
│ infinity - object_storage_enable_https: true │
│ infinity - snapshot_dir: /var/infinity/snapshot │
│ infinity - buffer_manager_size: 4.00GB │
│ infinity - temp_dir: /var/infinity/tmp │
│ infinity - memindex_memory_quota: 1.00GB │
│ infinity - wal_dir: /var/infinity/wal │
│ infinity - buffer_manager_size: 1.00GB │
│ infinity - full_checkpoint_interval: 24h │
│ infinity - delta_checkpoint_interval: 1m │
│ infinity - delta_checkpoint_threshold: 64.00MB │
│ infinity - flush_method_at_commit: FlushAtOnce │
│ infinity - resource_dir: /var/infinity/resource │
```
### Actual behavior and How to reproduce it
Setting the server into standalone mode, or admin mode and then converting it to a leader results in the error:
```
{"error_code":3091,"error_message":"Unknown Unable to do bucket existence check: server failed with HTTP status code 0, Please check if the MINIO connection@src/storage/io/s3_client_minio.cpp:129"}
```
I should note that after the fix for #2571 landed everything works correctly until I enable HTTPS.
### Expected behavior
_No response_
### Additional information
_No response_
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 bucket-existence check in HTTPS mode using the configuration shown, then start at src/storage/io/s3_client_minio.cpp:129 and compare the behavior with the fix referenced in #2571. Done means standalone or leader startup completes without HTTP status code 0 and the S3 bucket check succeeds.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, cpp
- Domain
- cloud
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100