nexus-public icon indicating copy to clipboard operation
nexus-public copied to clipboard

Pull from Docker proxy registry stuck on waiting

Open lettore opened this issue 1 year ago • 3 comments

When pulling an image from Nexus working as proxy with docker pull I get "waiting" instead of the progress of the operation. This is not the case with the docker registry "official" proxy implementation where the received data is transferred immediately to the client that is pulling the image. While this can be by design, from the last update I get many HTTP 500 errors in the log, this happen for some kind of timeout when pulling big images. Being unable to see the progress while pulling makes really hard to understand what is the problem. Pulling an image of 1.3gib via Nexus proxy after 60 min was still in "waiting" state, using Docker registry proxy the same image was downloaded without problems in 20 minutes.

lettore avatar Oct 29 '23 21:10 lettore

Hi @lettore thanks for filing an issue. There's not enough detail (version of Nexus Repository, information about your infrastructure) here to provide any assessment. I've put the help-wanted label here to indicate the community may be able to help troubleshoot network or provisioning issues that may be contributing.

nblair avatar Oct 31 '23 20:10 nblair

Version is OSS 3.61.0 running in Docker container. Besides that the behavior is clear, while pulling an image the client doesn't receive data until Nexus have completed the download. If the pull is aborted Nexus seems to interrupt the download as well. In my case this ends with never be able to make a pull of a big image because of timeouts of Docker or trigger http error 500. What I'm asking is if it's possible to implement the same behavior of official Docker proxy registry, passing the data to the client while downloading the image, so the client can see the progress Instead of be stuck in waiting for hours.

lettore avatar Oct 31 '23 22:10 lettore

This issue is stale because it has been open for 60 days with no activity.

github-actions[bot] avatar Jan 23 '24 01:01 github-actions[bot]

This issue was closed because it has been inactive for 90 days since being marked as stale.

github-actions[bot] avatar Apr 23 '24 01:04 github-actions[bot]

@lettore , It seems I have the same issue. Waiting 40 minutes after first attempt of pulling some layer, I got bellow warnning from nexus. And then, the layer can be downloaded quickly. Do you have any workaround for this?

messages (multiple same message printted in the same time, maybe for multiple client requests):

2024-08-01 19:44:40,319+0000 WARN  [qtp1334704939-289809]  *UNKNOWN org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Failure servicing: GET /repository/docker-public/v2/ponyai-vd-system-toolchain/zeppelin/blobs/sha256:c83ef5d78a8f5c605dba109206c113e2ce520d76d835ca079dc4075ac80a6d69
org.eclipse.jetty.io.EofException: null
	at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:280)
	at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422)
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:277)
	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:381)
	at org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:837)
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:248)
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:229)
	at org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:555)
	at org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:1014)
	at org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:1086)
	at org.eclipse.jetty.server.HttpOutput.channelWrite(HttpOutput.java:285)
	at org.eclipse.jetty.server.HttpOutput.channelWrite(HttpOutput.java:269)

guicailiao avatar Aug 02 '24 05:08 guicailiao