mirror of
https://github.com/go-gitea/gitea.git
synced 2026-03-22 14:34:54 -05:00
gitea dump does not respect --tempdir option #4363
Closed
opened 2025-11-02 05:48:10 -06:00 by GiteaMirror
·
14 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
No Label
issue/stale
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#4363
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 @nodiscc on GitHub (Nov 20, 2019).
[x]):Description
When specifying the
--tempdiroption forgitea dump(https://docs.gitea.io/en-us/backup-and-restore/), the database dump seems to ignore the--tempdiroption and instead dumps to/tmp/(or/tmp/$UID/when usinglibpam-tmpdir).In the case, where the
/tmppartition is too small for the dump, the backup fails.I expect that it would dump repositories and the database to the directory specified with
--tempdir.I am on 1.8.0 and attempting to backup before migrating/upgrading to 1.10.0 so if this is fixed in a later release, I'm also interested in any temporary/manual workaround/solution for 1.8.0. (In last resort I could grow the size of
/tmpbut it's not ideal)@JacquesOfAllTrades commented on GitHub (Nov 26, 2019):
I'm not a Gitea dev, nor have I tested this, but I'd suggest trying
before running the dump, then run the dump with the
--tempdiroption still in place.Based on the code in this code from [https://github.com/go-gitea/gitea/blob/release/v1.8/cmd/dump.go#L81]:
there's presumably something in the dump process that relies on the TMPDIR environment variable. Gitea will set TMPDIR to the directory you provide via
--tempdir, but only if it's not already set on your system.Could be worth a shot.
@JacquesOfAllTrades commented on GitHub (Dec 4, 2019):
Just a quick follow-up: I can confirm that both Gitea 1.9.1 and 1.9.5 respect the
--tempdiroption on my system. I'm running a command likeand the dump contents are correctly staged in
/jacques/backup/tempbefore being assembled into the final .zip file.Note that the directory passed to
--tempdirhas to exist and be writable by yourgit(orgitea) user.Also, the
TMPDIRenvironment variable on my system is empty, so the code snippet I included in my previous comment will set it to the value provided to the--tempdirargument. If yourTMPDIRis already set before runninggitea dump, e.g., to/tmp, it won't be modified.If clearing your
TMPDIRvar or setting it to the value you're providing to--tempdirworks for you, that does seem like a bug, because it would mean the dump process has an undocumented (and undesirable) dependency on that var.@nodiscc commented on GitHub (Dec 4, 2019):
I have grown the partition so I can't see the disk full error anymore, but
I have changed my dump script to this:
ran the script and watched files open by the
gitea dumpprocess (watch -n 2 sudo lsof -p 19206). It starts backing up repositories and opens/var/backups/gitea/gitea-dump-597340154/gitea-repo.zip, /var/backups/gitea/gitea-dump-1575490742.zip, all fine. At some point it opensIn the process environment I see
I don't know what sets TMPDIR to this path. Maybe it because it's run through
sudo. Maybe related tolibpam-tmpdirbeing enabled. I will do more checks.@JacquesOfAllTrades commented on GitHub (Dec 4, 2019):
That's a good thought. You'd probably have to enter a sudo shell as the 'gitea' user before setting TMPDIR and then running
gitea dump.On the other hand, I guess I can't say with absolute certainty that no files are getting put into
/tmpat any point during my dump process. I didn't see any files left in/tmpwhen the dump aborted due to an error (whereas I did see files left in the--tempdirdirectory), but it's possible that some files got briefly put into/tmplater in the process once my error was fixed.Of course, all of the rigmarole with the
TMPDIRvariable was just an attempt to work around your original issue, which I agree looks like a bug in the handling of the--tempdirarg.@guillep2k commented on GitHub (Dec 5, 2019):
TMPDIRis (or should be) considered a security setting, as many programs could leak information if this env variable is crafted maliciously. As a consequence,sudowill most likely clean it up.See https://serverfault.com/a/479081/54402
@lunny commented on GitHub (Dec 5, 2019):
@nodiscc could you try a recent version, i.e.
v1.10.0v1.10.1@nodiscc commented on GitHub (Dec 6, 2019):
I will try ASAP
@stale[bot] commented on GitHub (Feb 6, 2020):
This issue has been automatically marked as stale because it has not had recent activity. I am here to help clear issues left open even if solved or waiting for more insight. This issue will be closed if no further activity occurs during the next 2 weeks. If the issue is still valid just add a comment to keep it alive. Thank you for your contributions.
@nodiscc commented on GitHub (Feb 8, 2020):
I no longer use the
gitea dumpcommand as it has some crippling limitations in my opinion:permission deniedmessages or similar). I strongly suggest that you make it able to run from any directory, and not rely onPWDto create logs, etc. directories.Instead I simply backup the gitea data directory and database:
@guillep2k commented on GitHub (Feb 8, 2020):
You can always use the
--work-dirflag in the command line, specify a WORK_DIR environment variable or set that up inapp.ini.@nodiscc commented on GitHub (Feb 9, 2020):
This is good to know, it's not documented at https://docs.gitea.io/en-us/backup-and-restore/ though. Maybe raise another issue?
However the dump command is not really satisfying for me:
gitea-repo.zipwhich makes this worse (and also eats disk space when restoring), and is also bad performance-wise (zip in zip)For these reasons I am switching to the backup procedure I described above (dump the database, backup the db dump and gitea data directory).
@nodiscc commented on GitHub (Feb 9, 2020):
In addition, git
.packfiles are already compressed which makes the zip operation a waste of time, disk space and CPU cycles (.packsin.zipin.zip).@stale[bot] commented on GitHub (Aug 1, 2020):
This issue has been automatically marked as stale because it has not had recent activity. I am here to help clear issues left open even if solved or waiting for more insight. This issue will be closed if no further activity occurs during the next 2 weeks. If the issue is still valid just add a comment to keep it alive. Thank you for your contributions.
@stale[bot] commented on GitHub (Aug 16, 2020):
This issue has been automatically closed because of inactivity. You can re-open it if needed.