Checkout failed if repository root contains a file named "git" #3049
pushlan opened 3 days ago

Hi, I setup few onedev projects without any problem. Now I setup new installation, and make test project - everything was fine and working. When I try to import new project (create project and push all repo from my laptop to onedev) I got the error on checkout step.


18:42:35 No job executor defined, auto-discovering...
18:42:35 Discovered server docker executor
18:42:35 Pending resource allocation...
18:42:35 Executing job (executor: auto-discovered, server: 127.0.0.1:5710, network: build-auto-discovered-5-2-1)...
18:42:35 Copying job dependencies...
18:42:35 Running step "checkout"...
18:42:35 Checking out code...
18:42:35 remote: Enumerating objects: 32357, done.        
18:42:35 remote: Counting objects: 100% (32357/32357), done.        
18:42:35 remote: Compressing objects: 100% (11754/11754), done.        
18:42:36 remote: Total 32357 (delta 19767), reused 32352 (delta 19764), pack-reused 0 (from 0)        
18:42:36 Receiving objects: 100% (32357/32357), 46.44 MiB | 42.20 MiB/s, done.
18:42:37 Resolving deltas: 100% (19767/19767), done.
18:42:37 From /opt/onedev/site/projects/5/git
18:42:37  * branch              424bd3f48db534e10efc202538a958ceebd3eaf6 -> FETCH_HEAD
18:42:37 java.lang.RuntimeException: java.io.IOException: Cannot run program "/opt/onedev/temp/server/onedev-build-5-2-1/work/git" (in directory "/opt/onedev/temp/server/onedev-build-5-2-1/work"): error=13, Permission denied
	at io.onedev.commons.utils.command.Commandline.execute(Commandline.java:289)
	at io.onedev.commons.utils.command.Commandline.execute(Commandline.java:203)
	at io.onedev.commons.utils.command.Commandline.execute(Commandline.java:191)
	at io.onedev.k8shelper.KubernetesHelper.cloneRepository(KubernetesHelper.java:284)
	at io.onedev.server.plugin.executor.serverdocker.ServerDockerExecutor$1$1.doExecute(ServerDockerExecutor.java:554)
	at io.onedev.server.plugin.executor.serverdocker.ServerDockerExecutor$1$1.lambda$execute$0(ServerDockerExecutor.java:433)
	at io.onedev.agent.job.JobUtils.runStep(JobUtils.java:67)
	at io.onedev.server.plugin.executor.serverdocker.ServerDockerExecutor$1$1.execute(ServerDockerExecutor.java:430)
	at io.onedev.k8shelper.LeafFacade.execute(LeafFacade.java:12)
	at io.onedev.k8shelper.CompositeFacade.execute(CompositeFacade.java:35)
	at io.onedev.server.plugin.executor.serverdocker.ServerDockerExecutor$1.run(ServerDockerExecutor.java:354)
	at io.onedev.server.job.DefaultJobService.runJob(DefaultJobService.java:1424)
	at io.onedev.server.plugin.executor.serverdocker.ServerDockerExecutor.lambda$execute$fee504de$1(ServerDockerExecutor.java:304)
	at io.onedev.server.service.impl.DefaultResourceService.lambda$submitServerTask$a2d88e3a$1(DefaultResourceService.java:269)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at com.hazelcast.executor.impl.DistributedExecutorService$Processor.run(DistributedExecutorService.java:276)
	at com.hazelcast.internal.util.executor.CachedExecutorServiceDelegate$Worker.run(CachedExecutorServiceDelegate.java:217)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)
	at com.hazelcast.internal.util.executor.HazelcastManagedThread.executeRun(HazelcastManagedThread.java:76)
	at com.hazelcast.internal.util.executor.HazelcastManagedThread.run(HazelcastManagedThread.java:111)
Caused by: java.io.IOException: Cannot run program "/opt/onedev/temp/server/onedev-build-5-2-1/work/git" (in directory "/opt/onedev/temp/server/onedev-build-5-2-1/work"): error=13, Permission denied
	at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143)
	at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073)
	at io.onedev.commons.utils.command.Commandline.execute(Commandline.java:287)
	... 21 more
Caused by: java.io.IOException: error=13, Permission denied
	at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
	at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:314)
	at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:244)
	at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110)
	... 23 more
18:42:37 Step "build web server" is skipped
18:42:37 Step "build app" is skipped

I check permission and didn't see any problems. The new blank project pass checkout step without any problems. Any suggestions?

  • Robin Shen commented 3 days ago

    On which OS are you running the new OneDev installation? And how are you running OneDev?

  • pushlan commented 3 days ago

    I use Ubuntu 24.04, and run onedev from docker

    There are docker-compose file

    services:
      onedev:
        restart: always
        volumes:
          - /run/docker.sock:/var/run/docker.sock
          - /data/onedev/data:/opt/onedev
        ports:
          - 3622:6611
          - 127.0.0.1:6610:6610
        image: 1dev/server
    
    

    and I have nginx in front for ssl

  • Robin Shen commented 3 days ago

    Seems that your repository has a file named "git", and OneDev uses that instead of system git to do the job.

  • Robin Shen changed title 3 days ago
    Previous Value Current Value
    Checkout failed
    Checkout failed if repository root contains a file named "git"
  • pushlan commented 3 days ago

    Yes, you are write. Thank you very match for help!

  • OneDev commented 3 days ago

    State changed as build OD-8227 (16.5.6) is successful

  • OneDev changed state to 'Closed' 3 days ago
    Previous Value Current Value
    Open
    Closed
1/1
Type
Bug
Priority
Normal
Assignee
Affected Versions
16.5.5
Labels
No labels
Issue Votes (0)
Watchers (2)
Reference
OD-3049
Please wait...
Connection lost or session expired, reload to recover
Page is in error, reload to recover