mirror of
https://github.com/go-gitea/gitea.git
synced 2026-07-15 11:39:31 -05:00
Push fails with "retrieve protected branches information failed: invalid character '<' looking for beginning of value" #6318
Closed
opened 2025-11-02 06:52:26 -06:00 by GiteaMirror
·
9 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
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#6318
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 @joepie91 on GitHub (Nov 15, 2020).
[x]):Description
When pushing to one of my existing repositories, I get the following output:
Pushing to a newly-created test repository, however, works fine.
Based on trawling through other issues for several hours, I have done/verified the following:
authorized_keys, verified that the binary path in there matches that of the running Gitea instanceINTERNAL_TOKENLOCAL_ROOT_URLtohttp://localhost:3000/This instance of Gitea started as a Gogs instance, and was recently upgraded to Gitea 1.0.2 -> 1.6.4 -> 1.11.8 -> 1.12.5. The failing repository dates from before the move to Gitea.
I have not tried
doctor recreate-tablesas this command does not yet exist in1.12.x, and I don't know how safe it is to run an RC (and presumably there's no way to downgrade back to1.12.xif the RC breaks, due to database migrations?).Weirdly, the entire error message in the
git pushoutput does not seem to exist in the Gitea source code since1.9.x, but I have double-, triple- and quadruple-checked that I really am running1.12.x. I'm not really sure what's going on there...Screenshots
N/A
@zeripath commented on GitHub (Nov 15, 2020):
In adminstration pages run resynchronize hooks
@zeripath commented on GitHub (Nov 15, 2020):
These are old endpoints that have not been present since 1.9 and imply that the hooks in Gitea's git repositories are out of date
@joepie91 commented on GitHub (Nov 15, 2020):
Ah, that indeed fixed it, thanks!
Shouldn't this have been done automatically as a part of the upgrade migration process, though?
@zeripath commented on GitHub (Nov 15, 2020):
Yes iirc there is a migration that should have done this.
Did you ever step forward to master and then step back?
@joepie91 commented on GitHub (Nov 15, 2020):
I'm not sure I understand what you mean. If the question is whether I've ever run Gitea itself from
master, then no - I only upgraded through stable releases (1.0.2 -> 1.6.4 -> 1.11.8 as static binaries, then 1.11.8 from distro package, then 1.12.5 from newer distro package).Or are you talking about
masterin the repository that was failing to push?@zeripath commented on GitHub (Nov 15, 2020):
Hmm can't find the migration actually. I'm not certain what originally happened when I made that particular change but the hooks were automatically regenerated - perhaps that relied on something that has since been refactored away in an efficiency drive.
I guess it's just one of those things, it's very easy to fix and the error should be distinctive enough to search for so I'm not certain that we should actually do anything in code to change it. If you fancy you can add a docs pr to add it as advice to the faq or some where else appropriate.
@joepie91 commented on GitHub (Nov 15, 2020):
Ah, I think I know why I ran into this whereas others don't - I think there was never a hook-rewrite migration to begin with, but for most people it works because they replace the binary in-place (at
/usr/bin/giteaor something). But in my case, this is what thepre-receivehook looked like:... which is a versioned binary (put there for the multi-step Gogs -> Gitea upgrade process), and therefore the old version kept being called instead of the current version. This also explains the error message that shouldn't have existed anymore :)
So yeah, this would probably reoccur in any case where someone doesn't upgrade the binary in-place, with varying errors and failure modes. I just checked, and the NixOS module for Gitea actually has some code to deal with this exact issue (as it does atomic upgrades, and so the binary path changes with each upgrade).
Maybe it would make sense to just re-generate all the hooks on each start of Gitea? That would cover all of these cases in one go.
@lunny commented on GitHub (Nov 16, 2020):
We have a
./gitea doctorto help to find these problems.@joepie91 commented on GitHub (Nov 16, 2020):
I actually tried
gitea doctorfirst (but forgot to mention that in my original issue), and it did not detect this issue.Aside from that, it would be more practical to just have Gitea do this on every start, as this would break in different ways depending on the exact upgrade path - and so it won't be obvious what's wrong when it does. Automatically dealing with this situation as it occurs would be a much better UX than having to run
doctorall the time after an upgrade, whether it was an automatic or a manual upgrade.The code for this regeneration is already there, it seems to be a fast process, and as I understand it you already shouldn't be manually modifying the auto-generated hooks; so I don't see a downside to just making it a startup operation.