eclipse-jgit / jgit

JGit, the Java implementation of git
https://www.eclipse.org/jgit/
Other
92 stars 31 forks source link

Apache HTTP client Connection reset #59

Open stefandrissen opened 1 month ago

stefandrissen commented 1 month ago

Version

6.9.0

Operating System

Windows

Bug description

For another issue I am having with an older version of JGit (in a bundled Eclipse 4.23) I am looking at what current vanilla behavior is using latest Eclipse 2024-03.

-> Problem Occurred 'Cloning from https://dev.azure.com/org/project/_git/repo' has encountered a problem.

Connection reset

Details:

Connection reset Connection reset

If I then open the issue from the problem view:

image

I am unsure if the connection reset is a result of the timeout, so I increased the Connection timeout in Git preferences to 300 and then to 600 with the same failure as a result.

I then changed the HTTP client to Java built-in HTTP (initially Apache HTTP)

-> repo cloned successfully

My older (bundled) Eclipse 4.23 with JGit 5.13.0 had no issue cloning the repo using Apache HTTP.

Actual behavior

image

Expected behavior

A successful clone.

Relevant log output

!ENTRY org.eclipse.egit.ui 4 0 2024-05-29 09:19:34.145
!MESSAGE Connection reset
!STACK 0
org.eclipse.jgit.api.errors.TransportException: Connection reset
    at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:249)
    at org.eclipse.jgit.api.CloneCommand.fetch(CloneCommand.java:319)
    at org.eclipse.jgit.api.CloneCommand.call(CloneCommand.java:189)
    at org.eclipse.egit.core.op.CloneOperation.run(CloneOperation.java:194)
    at org.eclipse.egit.ui.internal.clone.AbstractGitCloneWizard.executeCloneOperation(AbstractGitCloneWizard.java:490)
    at org.eclipse.egit.ui.internal.clone.AbstractGitCloneWizard$6.run(AbstractGitCloneWizard.java:464)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: org.eclipse.jgit.errors.TransportException: Connection reset
    at org.eclipse.jgit.transport.TransportHttp$SmartHttpFetchConnection.doFetch(TransportHttp.java:1569)
    at org.eclipse.jgit.transport.BasePackFetchConnection.fetch(BasePackFetchConnection.java:351)
    at org.eclipse.jgit.transport.BasePackFetchConnection.fetch(BasePackFetchConnection.java:343)
    at org.eclipse.jgit.transport.FetchProcess.fetchObjects(FetchProcess.java:290)
    at org.eclipse.jgit.transport.FetchProcess.executeImp(FetchProcess.java:182)
    at org.eclipse.jgit.transport.FetchProcess.execute(FetchProcess.java:105)
    at org.eclipse.jgit.transport.Transport.fetch(Transport.java:1482)
    at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:238)
    ... 6 more
Caused by: java.net.SocketException: Connection reset
    at java.base/sun.nio.ch.NioSocketImpl.implRead(Unknown Source)
    at java.base/sun.nio.ch.NioSocketImpl.read(Unknown Source)
    at java.base/sun.nio.ch.NioSocketImpl$1.read(Unknown Source)
    at java.base/java.net.Socket$SocketInputStream.read(Unknown Source)
    at java.base/sun.security.ssl.SSLSocketInputRecord.read(Unknown Source)
    at java.base/sun.security.ssl.SSLSocketInputRecord.readHeader(Unknown Source)
    at java.base/sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(Unknown Source)
    at java.base/sun.security.ssl.SSLSocketImpl.readApplicationRecord(Unknown Source)
    at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(Unknown Source)
    at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:137)
    at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:153)
    at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:280)
    at org.apache.http.impl.io.ChunkedInputStream.getChunkSize(ChunkedInputStream.java:261)
    at org.apache.http.impl.io.ChunkedInputStream.nextChunk(ChunkedInputStream.java:222)
    at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:183)
    at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:210)
    at org.apache.http.impl.io.ChunkedInputStream.close(ChunkedInputStream.java:312)
    at org.apache.http.impl.execchain.ResponseEntityProxy.streamClosed(ResponseEntityProxy.java:142)
    at org.apache.http.conn.EofSensorInputStream.checkClose(EofSensorInputStream.java:228)
    at org.apache.http.conn.EofSensorInputStream.close(EofSensorInputStream.java:172)
    at org.eclipse.jgit.util.io.UnionInputStream.close(UnionInputStream.java:168)
    at org.eclipse.jgit.transport.TransportHttp$SmartHttpFetchConnection.doFetch(TransportHttp.java:1566)
    ... 13 more

Other information

Cloning from a private AzDO repo.