-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Amazon S3: Mismatch when reading HTTP header from GCS #8790
Comments
This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 5 days. Maintainers can add the |
This issue was closed because it has been stalled for 5 days with no activity. |
@gouyelliot did you find a solution for this? |
@vg-meesho I had to fork and recompile our own fluent-bit binaries. You can check my PR to see the exact changes that I made to the code base. Note that we are currently using 3.0.6 and I haven't checked/tested any newer versions, maybe this issue was fixed since. |
Thanks @gouyelliot. Will check the PR out. I'm trying to push logs to GCS bucket as well but never found any official plugin for it. Are you facing any other issues using the S3 plugin to push to GCS? |
The S3 protocol being the industry standard, I don't think an official GCS plugin will ever be release (they didn't made one for FluentD for example). Also, you could use the BigQuery plugin to upload data and then export to GCS but probably more expensive/complex overall. We have been running Fluent Bit (with my PR) using GCS buckets in production for several months without issues. |
Makes sense. @gouyelliot also can you share with me the env variable names that you used for HMAC auth. Would really appreciate it. |
You can find the documentatiom about AWS authentication here |
Bug Report
Describe the bug
While configuring our FluentBit instance, I reached a situation when the Amazon S3 Output Plugin would block for several minutes when trying to send the files.
I'm using Google Cloud Storage with a HMAC key (set with env vars), using the
endpoint
configuration set to https://storage.googleapis.com.Here is the log when the plugin is trying to send the data:
After digging in the source code, I found that the problem comes from the header_lookup function, which get the value of a header from the HTTP response.
Turns out that Google have a custom HTTP header named
x-goog-stored-content-length
, which is matched by theheader_lookup
instead of theContent-Length
header here, resulting in the client trying to read from the socket again, and timing out after 4 minutes.Here a example of HTTP response payload from GCS:
To Reproduce
Here my current config
Expected behavior
The HTTP client should not use the
x-goog-stored-content-length
header as the content length of the request.I'll try to create a PR next week, the bug is actually no hard to fix !
Your Environment
The text was updated successfully, but these errors were encountered: