mirror of
https://github.com/go-gitea/gitea.git
synced 2026-03-09 12:46:42 -05:00
Git push fails with "Permission denied" on tmp_objdir in rootless Gitea on Kubernetes with old Longhorn CSI driver #14737
Open
opened 2025-11-02 11:21:36 -06:00 by GiteaMirror
·
6 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#14737
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 @PatrickHuetter on GitHub (Jul 10, 2025).
Description
Environment
Problem Description
When pushing repositories with more than ~30 files via HTTPS, git push consistently fails with:
Small commits (1-5 files) usually work without issues. The error occurs consistently with larger pushes.
What I've Tried
1. Security Context Configuration
Added comprehensive security contexts to ensure proper permissions:
2. Init Container for Permission Fixes
Attempted to fix permissions via initPreScript:
3. Resource Limits
Increased resources to rule out memory/CPU constraints:
4. Repository Configuration
Tried setting custom temp path:
Observations
tmp_objdir-incoming-*) appear to be created with incorrect permissionsQuestions
Additional Information
/dataAny help or guidance would be greatly appreciated!
Gitea Version
1.24.2
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Screenshots
No response
Git Version
No response
Operating System
NixOS with k3s (Kubernetes) with Longhorn and gitea as container
How are you running Gitea?
NixOS with k3s (Kubernetes) with Longhorn and gitea as container
Database
PostgreSQL
@wxiaoguang commented on GitHub (Jul 10, 2025):
IIRC some other users also reported similar problems, but there is still no conclusion or solution ....
I think yes but I don't have more idea (I don't use rootless)
"rootful" and "rootless" use different directory layout and config, I don't think it can be switched easily, unless you backup the database and files, and setup a clean "rootful" instance, and put the files back to correct locations.
No idea, but I feel that the "tmp_objdir" is controlled by git command, so no Gitea config option would affect it
@PatrickHuetter commented on GitHub (Jul 10, 2025):
I tested and checked so many things. I can't figure out what the problem is. It's massively blocking currently since we can't really push many files at once.
@wxiaoguang commented on GitHub (Jul 10, 2025):
Some more questions:
@PatrickHuetter commented on GitHub (Jul 10, 2025):
It's reproducible in up to 6 repositories i tested. Also today in a clean new repository. For example: I created a new repository and initalized an angular app with some components and files (some pictures). Pushing the first commit isn't possible. Pushing the same local git repository to another origin (for example gitlab) works. Also mirroring the gitlab repository to gitea afterwards, doesn't work.
Didn't test this yet, since i only work on kubernetes currently. I'll look further the next days to test this or just create a new namespace with new gitea instance.
@wxiaoguang commented on GitHub (Jul 10, 2025):
After googling about the "Permission denied tmp_objdir" error, I found that some users said that it is "filesystem/storage" related.
@PatrickHuetter commented on GitHub (Jul 10, 2025):
Solution Found: Longhorn Storage Driver Bug
I've found the root cause and solution for this issue! 🎉
The Problem
This is not a Gitea bug, but rather a Longhorn storage driver issue that affects git operations creating temporary files during push/checkout operations.
The Solution
After extensive debugging and reading through release notes, I discovered that Longhorn had a known bug affecting git operations in containers. The issue is documented in [longhorn/longhorn#10975](https://github.com/longhorn/longhorn/issues/10975) and was fixed in recent Longhorn releases.
The problem occurs because:
tmp_objdir-incoming-*) during large push operationsWhat Fixed It
Simply updating Longhorn to the latest version resolved the issue completely. The push operations that were failing with 30+ files now work perfectly without any changes to the Gitea configuration.
For Others Experiencing This Issue
If you're running Gitea on Kubernetes with Longhorn storage and experiencing similar permission errors:
Why This Matters
This issue can be misleading because:
But it's actually the underlying storage driver failing to properly handle git's temporary file operations during the receive-pack process.
I hope this helps others who might encounter the same issue. The Gitea rootless image works perfectly fine - just make sure your storage driver is up to date!
Environment After Fix
Feel free to close this issue as it's not a Gitea bug. Thanks for the great work on Gitea! 🚀