mirror of
https://github.com/go-gitea/gitea.git
synced 2026-03-13 11:31:28 -05:00
ObjectStorage without chunk-encoding support corrupts files (the action_runner log cannot be viewed) #14152
Closed
opened 2025-11-02 11:04:29 -06:00 by GiteaMirror
·
30 comments
No Branch/Tag Specified
main
release/v1.25
release/v1.24
release/v1.23
release/v1.22
release/v1.21
release/v1.20
release/v1.19
release/v1.18
release/v1.17
release/v1.16
release/v1.15
release/v1.14
release/v1.13
release/v1.12
release/v1.11
release/v1.10
release/v1.9
release/v1.8
v1.25.3
v1.25.2
v1.25.1
v1.25.0
v1.24.7
v1.25.0-rc0
v1.26.0-dev
v1.24.6
v1.24.5
v1.24.4
v1.24.3
v1.24.2
v1.24.1
v1.24.0
v1.23.8
v1.24.0-rc0
v1.25.0-dev
v1.23.7
v1.23.6
v1.23.5
v1.23.4
v1.23.3
v1.23.2
v1.23.1
v1.23.0
v1.23.0-rc0
v1.24.0-dev
v1.22.6
v1.22.5
v1.22.4
v1.22.3
v1.22.2
v1.22.1
v1.22.0
v1.23.0-dev
v1.22.0-rc1
v1.21.11
v1.22.0-rc0
v1.21.10
v1.21.9
v1.21.8
v1.21.7
v1.21.6
v1.21.5
v1.21.4
v1.21.3
v1.21.2
v1.20.6
v1.21.1
v1.21.0
v1.21.0-rc2
v1.21.0-rc1
v1.20.5
v1.22.0-dev
v1.21.0-rc0
v1.20.4
v1.20.3
v1.20.2
v1.20.1
v1.20.0
v1.19.4
v1.21.0-dev
v1.20.0-rc2
v1.20.0-rc1
v1.20.0-rc0
v1.19.3
v1.19.2
v1.19.1
v1.19.0
v1.19.0-rc1
v1.20.0-dev
v1.19.0-rc0
v1.18.5
v1.18.4
v1.18.3
v1.18.2
v1.18.1
v1.18.0
v1.17.4
v1.18.0-rc1
v1.19.0-dev
v1.18.0-rc0
v1.17.3
v1.17.2
v1.17.1
v1.17.0
v1.17.0-rc2
v1.16.9
v1.17.0-rc1
v1.18.0-dev
v1.16.8
v1.16.7
v1.16.6
v1.16.5
v1.16.4
v1.16.3
v1.16.2
v1.16.1
v1.16.0
v1.15.11
v1.17.0-dev
v1.16.0-rc1
v1.15.10
v1.15.9
v1.15.8
v1.15.7
v1.15.6
v1.15.5
v1.15.4
v1.15.3
v1.15.2
v1.15.1
v1.14.7
v1.15.0
v1.15.0-rc3
v1.14.6
v1.15.0-rc2
v1.14.5
v1.16.0-dev
v1.15.0-rc1
v1.14.4
v1.14.3
v1.14.2
v1.14.1
v1.14.0
v1.13.7
v1.14.0-rc2
v1.13.6
v1.13.5
v1.14.0-rc1
v1.15.0-dev
v1.13.4
v1.13.3
v1.13.2
v1.13.1
v1.13.0
v1.12.6
v1.13.0-rc2
v1.14.0-dev
v1.13.0-rc1
v1.12.5
v1.12.4
v1.12.3
v1.12.2
v1.12.1
v1.11.8
v1.12.0
v1.11.7
v1.12.0-rc2
v1.11.6
v1.12.0-rc1
v1.13.0-dev
v1.11.5
v1.11.4
v1.11.3
v1.10.6
v1.12.0-dev
v1.11.2
v1.10.5
v1.11.1
v1.10.4
v1.11.0
v1.11.0-rc2
v1.10.3
v1.11.0-rc1
v1.10.2
v1.10.1
v1.10.0
v1.9.6
v1.9.5
v1.10.0-rc2
v1.11.0-dev
v1.10.0-rc1
v1.9.4
v1.9.3
v1.9.2
v1.9.1
v1.9.0
v1.9.0-rc2
v1.10.0-dev
v1.9.0-rc1
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.8.0-rc3
v1.7.6
v1.8.0-rc2
v1.7.5
v1.8.0-rc1
v1.9.0-dev
v1.7.4
v1.7.3
v1.7.2
v1.7.1
v1.7.0
v1.7.0-rc3
v1.6.4
v1.7.0-rc2
v1.6.3
v1.7.0-rc1
v1.7.0-dev
v1.6.2
v1.6.1
v1.6.0
v1.6.0-rc2
v1.5.3
v1.6.0-rc1
v1.6.0-dev
v1.5.2
v1.5.1
v1.5.0
v1.5.0-rc2
v1.5.0-rc1
v1.5.0-dev
v1.4.3
v1.4.2
v1.4.1
v1.4.0
v1.4.0-rc3
v1.4.0-rc2
v1.3.3
v1.4.0-rc1
v1.3.2
v1.3.1
v1.3.0
v1.3.0-rc2
v1.3.0-rc1
v1.2.3
v1.2.2
v1.2.1
v1.2.0
v1.2.0-rc3
v1.2.0-rc2
v1.1.4
v1.2.0-rc1
v1.1.3
v1.1.2
v1.1.1
v1.1.0
v1.0.2
v1.0.1
v1.0.0
v0.9.99
Labels
Clear labels
$20
$250
$50
$500
backport/done
💎 Bounty
docs-update-needed
good first issue
hacktoberfest
issue/bounty
issue/confirmed
issue/critical
issue/duplicate
issue/needs-feedback
issue/not-a-bug
issue/regression
issue/stale
issue/workaround
lgtm/need 2
modifies/api
modifies/translation
outdated/backport/v1.18
outdated/theme/markdown
outdated/theme/timetracker
performance/bigrepo
performance/cpu
performance/memory
performance/speed
pr/breaking
proposal/accepted
proposal/rejected
pr/wip
pull-request
reviewed/wontfix
💰 Rewarded
skip-changelog
status/blocked
topic/accessibility
topic/api
topic/authentication
topic/build
topic/code-linting
topic/commit-signing
topic/content-rendering
topic/deployment
topic/distribution
topic/federation
topic/gitea-actions
topic/issues
topic/lfs
topic/mobile
topic/moderation
topic/packages
topic/pr
topic/projects
topic/repo
topic/repo-migration
topic/security
topic/theme
topic/ui
topic/ui-interaction
topic/ux
topic/webhooks
topic/wiki
type/bug
type/deprecation
type/docs
type/enhancement
type/feature
type/miscellaneous
type/proposal
type/question
type/refactoring
type/summary
type/testing
type/upstream
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/gitea#14152
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @OAMchronicle on GitHub (Feb 18, 2025).
Description
actions.ReadLogs, zstd NewSeekableReader: failed to parse footer [52 98 55 51 101 13 10 13 10]: footer reserved bits 25 != 0
Gitea版本: 1.23.3
Gitea Version
1.23.3
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Screenshots
Git Version
No response
Operating System
No response
How are you running Gitea?
use system
Database
MySQL/MariaDB
@OAMchronicle commented on GitHub (Feb 18, 2025):
My S3 provider is seaweed
@wxiaoguang commented on GitHub (Feb 18, 2025):
Might be related to Support compression for Actions logs #31761
@wolfogre commented on GitHub (Feb 19, 2025):
Does it happen for any logs of action runs, or only this log?
It seems that the file is broken for some reasons.
@wxiaoguang commented on GitHub (Feb 19, 2025):
It seems to be a plain-text file? The foot bytes (from log) are
4b73e\r\n\r\n@OAMchronicle commented on GitHub (Feb 19, 2025):
// file gitea/modules/actions/log_test.go
This is the test case I wrote
There is no problem when using local files. This issue will be triggered when uploading to S3
@OAMchronicle commented on GitHub (Feb 19, 2025):
Currently, I know it's a log
@wxiaoguang commented on GitHub (Feb 19, 2025):
Will the S3 storage auto decompress the compressed zstd files and respond plain-text?
@OAMchronicle commented on GitHub (Feb 19, 2025):
I don't know, I don't think it will happen. The S3 I am using is seaweed
@wxiaoguang commented on GitHub (Feb 19, 2025):
According to your log, the response is plain-text.
Could you help to confirm the seaweed's behavior? For example: use your test code , and read the
logs/1131.log.zstraw content and dump it to see whether it is compressed or decompressed? (or: maybe the response is jut incorrect? just a guess)@OAMchronicle commented on GitHub (Feb 19, 2025):
1131.log.obs.zst is directly uploaded to S3 based on the test code。
1131. log.zst is manually uploaded to S3 based on the test code saved locally
@OAMchronicle commented on GitHub (Feb 19, 2025):
After testing, it seems that Seaweed encountered an exception during upload
@wxiaoguang commented on GitHub (Feb 19, 2025):
Thank you for the feedback! I didn't quite use Actions or Seaweed, so at the moment, I have no more idea.
If you could help to figure out "what's wrong" (the key point, for example: is it Gitea's bug? which call/code is wrong; or Seaweed's problem? what's the difference), then maybe there could be some solutions to "fix".
@OAMchronicle commented on GitHub (Feb 19, 2025):
When I use AWS/S3 SDK to upload, there is no such problem
@OAMchronicle commented on GitHub (Feb 19, 2025):
//test code
@OAMchronicle commented on GitHub (Feb 19, 2025):
So could this be an issue between Minio and AWS/S3 SDK
@wxiaoguang commented on GitHub (Feb 19, 2025):
When using Minio SDK, what's the content of uploaded file? Decompressed? Truncated? Or randomly corrupted? Could you provide the file samples?
@OAMchronicle commented on GitHub (Feb 19, 2025):
1131.log
1131.log.zst.txt
You need to rename 1131.log.zst.txt to 1131.log.zst (GitHub cannot upload. zst files)
1131.log.zst is compressed from 1131.log
@wxiaoguang commented on GitHub (Feb 19, 2025):
I have checked your samples:
1131.log.zst.txt (1131.log.zst)is right, after decompression, it matches1131.log.And I would reiterate my previous comment:
We can see the the foot bytes of
1131.logis also something like9c8ca\r\n\r\n.So the best guess is: when Gitea tries to read the compressed "zstd" file from your S3, your S3 responds decompressed plain-text file. Then Gitea's zstd reader can't read it.
@OAMchronicle commented on GitHub (Feb 19, 2025):
No, the file I sent was manually compressed. It must be the correct file. This issue is that when using Minio's SDK to upload, the file will be damaged
@wxiaoguang commented on GitHub (Feb 19, 2025):
Then how would you explain these "footer bytes" problem? That file is a plain-text file.
And I have said many times: you need to figure out the Seaweed's behavior (with Minio SDK):
If:
Then nothing wrong would happen, right?
So, which step is wrong? "the uploaded content"? or "the downloaded content"?
@wxiaoguang commented on GitHub (Feb 19, 2025):
How the file is "damaged"? What's the content of uploaded file? Decompressed? Truncated? Or randomly corrupted? Could you provide the file samples?
Your samples above are ALL right.
@OAMchronicle commented on GitHub (Feb 19, 2025):
the uploaded content
@wxiaoguang commented on GitHub (Feb 19, 2025):
But your samples above are ALL right.
@wxiaoguang commented on GitHub (Feb 19, 2025):
I mean, the "UPLOADED" file.
Since you suppose that the uploaded file is damaged, could you provide the uploaded and damaged one? But not the one you used to upload.
@OAMchronicle commented on GitHub (Feb 19, 2025):
//test code
Execute TestUp and TestTransferLogs1 separately, and the results are as follows
1131.log.minio.zst.txt
1131.log.s3.zst.txt
@wxiaoguang commented on GitHub (Feb 19, 2025):
OK, we can simply
catthe damaged file, then the problem is clear:https://stackoverflow.com/questions/55816844/aws-s3-get-after-put-includes-chunk-signature-data
@wxiaoguang commented on GitHub (Feb 19, 2025):
SeaweedFS is not S3-compatible, it doesn't work with chunk-encoding.
And maybe also related to this:
@OAMchronicle commented on GitHub (Feb 19, 2025):
ok, Thank you very much!
@wxiaoguang commented on GitHub (Feb 19, 2025):
I guess we could either:
@OAMchronicle commented on GitHub (Feb 19, 2025):
At present, it seems that if I want to use it, I can only use AWS SDK instead of Minio SDK。
However, thank you very much for your help