Unable to clone a root project (error 500) (OD-2448)
Gnz Buffout opened 7 months ago

Hello,

I've been using OneDev server for a few weeks now and I ran into an error I cannot quite figure out the solution.

Steps I've done :

Output is the following :

git clone https://[REDACTED]/documentation                                                                                                                                                                                                                                0:03:25
Cloning into 'documentation'...
remote: Project not found or inaccessible: documentation
fatal: unable to access 'https://[REDACTED]/documentation/': The requested URL returned error: 500

Behavior is the same if repo is empty or has files.

Server.log shows the following :

21:35:32 ERROR i.o.s.security.ExceptionHandleFilter - Error processing servlet request
io.onedev.commons.utils.ExplicitException: Project not found or inaccessible: documentation
	at io.onedev.server.git.GitFilter.reportProjectNotFoundOrInaccessible(GitFilter.java:111)
	at io.onedev.server.git.GitFilter.processRefs(GitFilter.java:310)
	at io.onedev.server.git.GitFilter.doFilter(GitFilter.java:381)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)
	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:154)
	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:154)
	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:154)
	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:458)
	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:373)
	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)
	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:370)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:154)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
	at io.onedev.server.security.CorsFilter.doFilter(CorsFilter.java:47)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
	at io.onedev.server.jetty.DisableTraceFilter.doFilter(DisableTraceFilter.java:28)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:552)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:772)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.Server.handle(Server.java:516)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
	at java.base/java.lang.Thread.run(Thread.java:829)

The natural workaround is to have a non-root project. I don't know if that is an attended use case (to have code in root project).

Notes:

  • when creating the root project, the form ends in an error "Project not found" but the project is still created and you can commit files with the web UI.
  • server is installed in docker, running as root, data is bind mounted with the data folder owned by root. Served over HTTPS with traefik.
  • for non-root projects, everything is working great.

Please let me know if more info is needed or anything else.

This project is awesome, thank you very much for the heart and the time you put into it. As a fellow developer, I can only measure the effort needed :).

  • Gnz Buffout commented 7 months ago

    Update :

    After further investigation, it seems my git credential manager was kinda messed up :-(. The problem was the same for non-root projects. Resetting credentials helper fixed the clone issue as my git client sent the correct authentication creds.

    Maybe the error could be 403 or 401 instead of error 500, but I leave that to you discretion :-).

    Note : the error after the root project creation with non-admin account seems to be unrelated. No error is shown in the server.log though.

    If the current behavior is ok for you, this issue can be closed.

    Thank you again !

  • Robin Shen commented 7 months ago

    It is returning 500 purposely for security reason in order not to leak project existance information for unauthorized users. But maybe 404 is a more appropriate code in this case.

  • Robin Shen changed fields 7 months ago
    Name Previous Value Current Value
    Priority
    Normal
    Minor
  • OneDev commented 7 months ago

    State changed as code fixing the issue is committed (c07c7324)

  • OneDev changed state to 'Closed' 7 months ago
    Previous Value Current Value
    Open
    Closed
  • OneDev commented 7 months ago

    State changed as build OD-6311 is successful

  • OneDev changed state to 'Released' 7 months ago
    Previous Value Current Value
    Closed
    Released
issue 1/1
Type
Bug
Priority
Minor
Assignee
Affected Versions
11.9.9
Labels
No labels
Issue Votes (0)
Watchers (3)
Reference
OD-2448
Please wait...
Connection lost or session expired, reload to recover
Page is in error, reload to recover