Hook doesnt run on push #10107

Closed
opened 2025-11-02 08:58:18 -06:00 by GiteaMirror · 6 comments
Owner

Originally created by @Bartabat on GitHub (Jan 16, 2023).

Description

After updating gitea to 1.18, the pushes were not accepted anymore, I followed the recommendations of this ticket which corresponded to my issue: https://github.com/go-gitea/gitea/issues/22381

Once the LOCAL_ROOT_URL parameter was set, the pushes were accepted again but on the other hand the hooks of the repositories managed by Gitea were not executed anymore and the pushs dosnt showed up anymore on dashboard activiy. I found this ticket https://github.com/go-gitea/gitea/issues/22319 corresponding to the symptoms we noticed, but contrary to the author of the ticket, on my server, Gitea is the only process to use port 3000.

I did a rollback to 1.17.4, then to 1.17.3 (last version used before the upgrade), but the problem of the unexecuted hook was still present.

The LOCAL_ROOT_URL parameter was still present in the conf, once removed, the hook execution was restored.


I was able to reproduce the bug on a VM windows server 2016 standard 64 bits and isolate the combination of factor that in my case prevents the execution of hooks : https + LOCAL_ROOT_URL config item setup, without https the hooks are executed.

The logs I send you are from version 1.17.3 of gitea, version 1.17.4 and 1.18.0 produce the same logs, if needed I can provide them too.

Gitea Version

1.18.0

Can you reproduce the bug on the Gitea demo site?

No

Log Gist

https://gist.github.com/Bartabat/b7aa778754646bf2bc7c5212c1fdd396

Screenshots

Not relevant.

Git Version

2.39.0.windows.2

Operating System

Windows server 2016 essential - 64 bits

How are you running Gitea?

Running as windows service.
Download binary with go-git embedded : https://dl.gitea.io/gitea/1.18.0/gitea-1.18.0-gogit-windows-4.0-amd64.exe

Database

MySQL

Originally created by @Bartabat on GitHub (Jan 16, 2023). ### Description After updating gitea to 1.18, the pushes were not accepted anymore, I followed the recommendations of this ticket which corresponded to my issue: https://github.com/go-gitea/gitea/issues/22381 Once the LOCAL_ROOT_URL parameter was set, the pushes were accepted again but on the other hand the hooks of the repositories managed by Gitea were not executed anymore and the pushs dosnt showed up anymore on dashboard activiy. I found this ticket https://github.com/go-gitea/gitea/issues/22319 corresponding to the symptoms we noticed, but contrary to the author of the ticket, on my server, Gitea is the only process to use port 3000. I did a rollback to 1.17.4, then to 1.17.3 (last version used before the upgrade), but the problem of the unexecuted hook was still present. The LOCAL_ROOT_URL parameter was still present in the conf, once removed, the hook execution was restored. --- I was able to reproduce the bug on a VM windows server 2016 standard 64 bits and isolate the combination of factor that in my case prevents the execution of hooks : https + LOCAL_ROOT_URL config item setup, without https the hooks are executed. The logs I send you are from version 1.17.3 of gitea, version 1.17.4 and 1.18.0 produce the same logs, if needed I can provide them too. ### Gitea Version 1.18.0 ### Can you reproduce the bug on the Gitea demo site? No ### Log Gist https://gist.github.com/Bartabat/b7aa778754646bf2bc7c5212c1fdd396 ### Screenshots Not relevant. ### Git Version 2.39.0.windows.2 ### Operating System Windows server 2016 essential - 64 bits ### How are you running Gitea? Running as windows service. Download binary with go-git embedded : https://dl.gitea.io/gitea/1.18.0/gitea-1.18.0-gogit-windows-4.0-amd64.exe ### Database MySQL
GiteaMirror added the type/bugissue/duplicate labels 2025-11-02 08:58:18 -06:00
Author
Owner

@zeripath commented on GitHub (Jan 16, 2023):

Did you try running the Synchronize hooks admin task after updating the [server] LOCAL_ROOT_URL?

What did you update the LOCAL_ROOT_URL to?

@zeripath commented on GitHub (Jan 16, 2023): Did you try running the Synchronize hooks admin task after updating the `[server]` `LOCAL_ROOT_URL`? What did you update the LOCAL_ROOT_URL to?
Author
Owner

@Bartabat commented on GitHub (Jan 16, 2023):

Did you try running the Synchronize hooks admin task after updating the [server] LOCAL_ROOT_URL?

Yes, and I just retry with my testing VM and same result, hooks doesn't execute on push.

2023/01/16 12:44:56 [63c546bf-2] router: completed GET /user/events for 10.0.2.2:56605, 200 OK in 9821.1ms @ events/events.go:19(events.Events)
2023/01/16 12:44:56 ...rvices/cron/tasks.go:141:GetTask() [I] [63c546c8] Getting resync_all_hooks in &{{0 0} resync_all_hooks 0xc00309e8a0 0x2c4e280    0}
2023/01/16 12:44:56 [63c546c8] router: completed POST /admin for 10.0.2.2:56605, 303 See Other in 47.2ms @ admin/admin.go:141(admin.DashboardPost)
2023/01/16 12:44:56 ...s/context/context.go:219:HTML() [D] [63c546c8-3] Template: admin/dashboard
2023/01/16 12:44:57 [63c546c8-3] router: completed GET /admin for 10.0.2.2:56605, 200 OK in 194.5ms @ admin/admin.go:126(admin.Dashboard)
2023/01/16 12:44:57 [63c546c9] router: completed GET /avatars/0b2b05fe74bb39934949e30f95018b4c?size=72 for 10.0.2.2:56605, 200 OK in 2.0ms @ web/base.go:29(avatars)
2023/01/16 12:44:57 [63c546c9-2] router: completed GET /assets/js/eventsource.sharedworker.js?v=1.17.3 for 10.0.2.2:56605, 200 OK in 1.0ms @ public/public.go:42(AssetsHandler)
2023/01/16 12:45:00 [63c5466a-49] router: polling   GET /user/events for 10.0.2.2:56605, elapsed 3276.2ms @ events/events.go:19(events.Events)
2023/01/16 12:47:21 [63c54759] router: completed GET /Bartabat/HelloGitea.git/info/refs?service=git-receive-pack for 10.0.2.2:56616, 401 Unauthorized in 0.0ms @ repo/http.go:532(repo.GetInfoRefs)
2023/01/16 12:47:21 [63c54759-2] router: completed HEAD / for 10.0.2.2:56617, 200 OK in 11.8ms @ web/web.go:130(web.Routes)
2023/01/16 12:47:21 ...dules/git/command.go:179:Run() [D] [63c54759-3] C:\gitea\repositories\bartabat\hellogitea.git: C:\Program Files\Git\mingw64\bin\git.exe -c protocol.version=2 -c uploadpack.allowfilter=true -c uploadpack.allowAnySHA1InWant=true -c credential.helper= receive-pack --stateless-rpc --advertise-refs .
2023/01/16 12:47:21 [63c54759-3] router: completed GET /Bartabat/HelloGitea.git/info/refs?service=git-receive-pack for 10.0.2.2:56616, 200 OK in 40.1ms @ repo/http.go:532(repo.GetInfoRefs)
2023/01/16 12:47:21 [63c54759-5] router: completed HEAD / for 10.0.2.2:56618, 200 OK in 10.8ms @ web/web.go:130(web.Routes)
2023/01/16 12:47:22 [63c5475a] router: completed HEAD / for 10.0.2.2:56619, 200 OK in 11.3ms @ web/web.go:130(web.Routes)
2023/01/16 12:47:22 ...dules/git/command.go:179:Run() [D] [63c5475a-2] C:\gitea\repositories\bartabat\hellogitea.git: C:\Program Files\Git\mingw64\bin\git.exe -c protocol.version=2 -c uploadpack.allowfilter=true -c uploadpack.allowAnySHA1InWant=true -c credential.helper= receive-pack --stateless-rpc C:\gitea\repositories\bartabat\hellogitea.git
2023/01/16 12:47:23 [63c5475a-2] router: completed POST /Bartabat/HelloGitea.git/git-receive-pack for 10.0.2.2:56616, 200 OK in 788.1ms @ repo/http.go:500(repo.ServiceReceivePack)

What did you update the LOCAL_ROOT_URL to?

I'm not sure to understand, I'm not a very good english speeker, but I have update LOCAL_ROOT_URL in section [server] of my app.ini config file, as you can see in the gist I linked previously.

@Bartabat commented on GitHub (Jan 16, 2023): > Did you try running the Synchronize hooks admin task after updating the [server] LOCAL_ROOT_URL? Yes, and I just retry with my testing VM and same result, hooks doesn't execute on push. ``` 2023/01/16 12:44:56 [63c546bf-2] router: completed GET /user/events for 10.0.2.2:56605, 200 OK in 9821.1ms @ events/events.go:19(events.Events) 2023/01/16 12:44:56 ...rvices/cron/tasks.go:141:GetTask() [I] [63c546c8] Getting resync_all_hooks in &{{0 0} resync_all_hooks 0xc00309e8a0 0x2c4e280 0} 2023/01/16 12:44:56 [63c546c8] router: completed POST /admin for 10.0.2.2:56605, 303 See Other in 47.2ms @ admin/admin.go:141(admin.DashboardPost) 2023/01/16 12:44:56 ...s/context/context.go:219:HTML() [D] [63c546c8-3] Template: admin/dashboard 2023/01/16 12:44:57 [63c546c8-3] router: completed GET /admin for 10.0.2.2:56605, 200 OK in 194.5ms @ admin/admin.go:126(admin.Dashboard) 2023/01/16 12:44:57 [63c546c9] router: completed GET /avatars/0b2b05fe74bb39934949e30f95018b4c?size=72 for 10.0.2.2:56605, 200 OK in 2.0ms @ web/base.go:29(avatars) 2023/01/16 12:44:57 [63c546c9-2] router: completed GET /assets/js/eventsource.sharedworker.js?v=1.17.3 for 10.0.2.2:56605, 200 OK in 1.0ms @ public/public.go:42(AssetsHandler) 2023/01/16 12:45:00 [63c5466a-49] router: polling GET /user/events for 10.0.2.2:56605, elapsed 3276.2ms @ events/events.go:19(events.Events) 2023/01/16 12:47:21 [63c54759] router: completed GET /Bartabat/HelloGitea.git/info/refs?service=git-receive-pack for 10.0.2.2:56616, 401 Unauthorized in 0.0ms @ repo/http.go:532(repo.GetInfoRefs) 2023/01/16 12:47:21 [63c54759-2] router: completed HEAD / for 10.0.2.2:56617, 200 OK in 11.8ms @ web/web.go:130(web.Routes) 2023/01/16 12:47:21 ...dules/git/command.go:179:Run() [D] [63c54759-3] C:\gitea\repositories\bartabat\hellogitea.git: C:\Program Files\Git\mingw64\bin\git.exe -c protocol.version=2 -c uploadpack.allowfilter=true -c uploadpack.allowAnySHA1InWant=true -c credential.helper= receive-pack --stateless-rpc --advertise-refs . 2023/01/16 12:47:21 [63c54759-3] router: completed GET /Bartabat/HelloGitea.git/info/refs?service=git-receive-pack for 10.0.2.2:56616, 200 OK in 40.1ms @ repo/http.go:532(repo.GetInfoRefs) 2023/01/16 12:47:21 [63c54759-5] router: completed HEAD / for 10.0.2.2:56618, 200 OK in 10.8ms @ web/web.go:130(web.Routes) 2023/01/16 12:47:22 [63c5475a] router: completed HEAD / for 10.0.2.2:56619, 200 OK in 11.3ms @ web/web.go:130(web.Routes) 2023/01/16 12:47:22 ...dules/git/command.go:179:Run() [D] [63c5475a-2] C:\gitea\repositories\bartabat\hellogitea.git: C:\Program Files\Git\mingw64\bin\git.exe -c protocol.version=2 -c uploadpack.allowfilter=true -c uploadpack.allowAnySHA1InWant=true -c credential.helper= receive-pack --stateless-rpc C:\gitea\repositories\bartabat\hellogitea.git 2023/01/16 12:47:23 [63c5475a-2] router: completed POST /Bartabat/HelloGitea.git/git-receive-pack for 10.0.2.2:56616, 200 OK in 788.1ms @ repo/http.go:500(repo.ServiceReceivePack) ``` > What did you update the LOCAL_ROOT_URL to? I'm not sure to understand, I'm not a very good english speeker, but I have update LOCAL_ROOT_URL in section [server] of my app.ini config file, as you can see in the gist I linked previously.
Author
Owner

@zeripath commented on GitHub (Jan 16, 2023):

As per https://github.com/go-gitea/gitea/issues/22370#issuecomment-1383944400

Try running gitea with the environment variable GODEBUG set to netdns=cgo.


This is all related to #22370 and should be fixed by #22467 #22468

I am going to mark this as a duplicate of that.

@zeripath commented on GitHub (Jan 16, 2023): As per https://github.com/go-gitea/gitea/issues/22370#issuecomment-1383944400 Try running gitea with the environment variable `GODEBUG` set to `netdns=cgo`. --- This is all related to #22370 and should be fixed by #22467 #22468 I am going to mark this as a duplicate of that.
Author
Owner

@Bartabat commented on GitHub (Jan 16, 2023):

Try running gitea with the environment variable GODEBUG set to netdns=cgo.

I just tried, on gitea 1.18.0 without LOCAL_ROOT_URL set, and same result as my starting point with 1.18.0, push are refused with this error on client side :

Unable to contact gitea: Post "https://localhost:3000/api/internal/hook/pre-receive/Bartabat/HelloGitea": dial tcp: lookup localhost on 10.0.2.3:53: no such host        
To https://giteatest.local:3000/Bartabat/HelloGitea.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://giteatest.local:3000/Bartabat/HelloGitea.git'

With LOCAL_ROOT_URL set, push are accepted but hooks are not executed.

I don't know if gitea takes the environment variable into account, I don't see anything about it in the logs when the process starts.

The variable is well defined, I can display it from the command prompt

C:\gitea>echo %GODEBUG%
netdns=cgo
@Bartabat commented on GitHub (Jan 16, 2023): > Try running gitea with the environment variable GODEBUG set to netdns=cgo. I just tried, on gitea 1.18.0 without LOCAL_ROOT_URL set, and same result as my starting point with 1.18.0, push are refused with this error on client side : ``` Unable to contact gitea: Post "https://localhost:3000/api/internal/hook/pre-receive/Bartabat/HelloGitea": dial tcp: lookup localhost on 10.0.2.3:53: no such host To https://giteatest.local:3000/Bartabat/HelloGitea.git ! [remote rejected] master -> master (pre-receive hook declined) error: failed to push some refs to 'https://giteatest.local:3000/Bartabat/HelloGitea.git' ``` With LOCAL_ROOT_URL set, push are accepted but hooks are not executed. I don't know if gitea takes the environment variable into account, I don't see anything about it in the logs when the process starts. The variable is well defined, I can display it from the command prompt ``` C:\gitea>echo %GODEBUG% netdns=cgo ```
Author
Owner

@zeripath commented on GitHub (Jan 16, 2023):

I don't know what you've done but your hooks haven't been updated when you updated the LOCAL_ROOT_URL:

Unable to contact gitea: Post "https://localhost:3000/api/internal/hook/pre-receive/Bartabat/HelloGitea":

I thought you said you'd set your LOCAL_ROOT_URL to http://127.0.0.1:3000/?


In terms of the workaround GODEBUG environment variable, if thas has been set it should also propagate to any calls of hooks within http. So I'm not sure that you've set that correctly either.


However, there is a fix already available. Download and run the current 1.18-dev from:

https://dl.gitea.io/gitea/1.18

@zeripath commented on GitHub (Jan 16, 2023): I don't know what you've done but your hooks haven't been updated when you updated the LOCAL_ROOT_URL: ``` Unable to contact gitea: Post "https://localhost:3000/api/internal/hook/pre-receive/Bartabat/HelloGitea": ``` I thought you said you'd set your `LOCAL_ROOT_URL` to `http://127.0.0.1:3000/`? --- In terms of the workaround GODEBUG environment variable, if thas has been set it should also propagate to any calls of hooks within http. So I'm not sure that you've set that correctly either. --- However, there is a fix already available. Download and run the current 1.18-dev from: https://dl.gitea.io/gitea/1.18
Author
Owner

@Bartabat commented on GitHub (Jan 16, 2023):

Sorry, maybe I should have said this earlier but yes when I use the LOCAL_ROOT_URL parameter, it has the value http://127.0.0.1:3000.

In my report of the previous post, I defined the environment variable GODEBUG and then I tested to push a first time without the parameter LOCAL_ROOT_URL defined in the config (the logs provided are from that case), then I tested to push a second time with this time the parameter LOCAL_ROOT_URL defined.


Your version 1.18-dev solve all my issues, push are accepted and hooks executed, thanks for your time.

@Bartabat commented on GitHub (Jan 16, 2023): Sorry, maybe I should have said this earlier but yes when I use the LOCAL_ROOT_URL parameter, it has the value `http://127.0.0.1:3000`. In my report of the previous post, I defined the environment variable GODEBUG and then I tested to push a first time without the parameter LOCAL_ROOT_URL defined in the config (the logs provided are from that case), then I tested to push a second time with this time the parameter LOCAL_ROOT_URL defined. --- Your version 1.18-dev solve all my issues, push are accepted and hooks executed, thanks for your time.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/gitea#10107