quarkiverse / quarkiverse/quarkus-github-api

Problem with substituted `GithHubConnector`

Open
#306 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Java
Stars
8
Forks
11
Avg merge
1m
Merged PRs (30d)
2

Description

Hi, It's very possible, it's a (github-api)[https://github.com/hub4j/github-api] issue, yet as this extension does this exact (substitution)[https://github.com/quarkiverse/quarkus-github-api/blob/main/runtime/src/main/java/io/quarkiverse/githubapi/runtime/graal/Substitute_DefaultGitHubConnector.java] I wanted to ask here first.
There is the following error observed.

I see somewhat of a similar issue (here)[https://github.com/OpenLiberty/open-liberty/issues/25279], but this one is for POST requests, so I am not sure how applicable it is here.

Please let me know, whether to open an issue in (github-api)[https://github.com/hub4j/github-api] repository.

The complete stacktrace:

Caused by: org.kohsuke.github.HttpException: Server returned HTTP response code: -1, message: 'null' for URL: https://api.github.com/repos/wildfly/wildfly/pulls/13687/files
at org.kohsuke.github.GitHubClient.interpretApiError(GitHubClient.java:628)
at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:449)
at org.kohsuke.github.GitHubPageIterator.fetch(GitHubPageIterator.java:146)
... 21 more
Caused by: java.io.IOException: /10.129.2.26:38158: GOAWAY received
at java.net.http@21.0.2/jdk.internal.net.http.HttpClientImpl.send(HttpClientImpl.java:964)
at java.net.http@21.0.2/jdk.internal.net.http.HttpClientFacade.send(HttpClientFacade.java:133)
at org.kohsuke.github.extras.HttpClientGitHubConnector.send(HttpClientGitHubConnector.java:72)
at org.kohsuke.github.GitHubClient.sendRequest(GitHubClient.java:431)
... 22 more
Caused by: java.io.IOException: /10.129.2.26:38158: GOAWAY received
at java.net.http@21.0.2/jdk.internal.net.http.Http2Connection.handleGoAway(Http2Connection.java:1204)
at java.net.http@21.0.2/jdk.internal.net.http.Http2Connection.handleConnectionFrame(Http2Connection.java:1018)
at java.net.http@21.0.2/jdk.internal.net.http.Http2Connection.processFrame(Http2Connection.java:851)
at java.net.http@21.0.2/jdk.internal.net.http.frame.FramesDecoder.decode(FramesDecoder.java:155)
at java.net.http@21.0.2/jdk.internal.net.http.Http2Connection$FramesController.processReceivedData(Http2Connection.java:307)
at java.net.http@21.0.2/jdk.internal.net.http.Http2Connection.asyncReceive(Http2Connection.java:778)
at java.net.http@21.0.2/jdk.internal.net.http.Http2Connection$Http2TubeSubscriber.processQueue(Http2Connection.java:1594)
at java.net.http@21.0.2/jdk.internal.net.http.common.SequentialScheduler$LockingRestartableTask.run(SequentialScheduler.java:182)
at java.net.http@21.0.2/jdk.internal.net.http.common.SequentialScheduler$CompleteRestartableTask.run(SequentialScheduler.java:149)
at java.net.http@21.0.2/jdk.internal.net.http.common.SequentialScheduler$SchedulableTask.run(SequentialScheduler.java:207)
at java.net.http@21.0.2/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:280)
at java.net.http@21.0.2/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:233)
at java.net.http@21.0.2/jdk.internal.net.http.Http2Connection$Http2TubeSubscriber.runOrSchedule(Http2Connection.java:1612)
at java.net.http@21.0.2/jdk.internal.net.http.Http2Connection$Http2TubeSubscriber.onNext(Http2Connection.java:1638)
at java.net.http@21.0.2/jdk.internal.net.http.Http2Connection$Http2TubeSubscriber.onNext(Http2Connection.java:1572)
at java.net.http@21.0.2/jdk.internal.net.http.common.SSLTube$DelegateWrapper.onNext(SSLTube.java:210)
at java.net.http@21.0.2/jdk.internal.net.http.common.SSLTube$SSLSubscriberWrapper.onNext(SSLTube.java:492)
at java.net.http@21.0.2/jdk.internal.net.http.common.SSLTube$SSLSubscriberWrapper.onNext(SSLTube.java:295)
at java.net.http@21.0.2/jdk.internal.net.http.common.SubscriberWrapper$DownstreamPusher.run1(SubscriberWrapper.java:316)
at java.net.http@21.0.2/jdk.internal.net.http.common.SubscriberWrapper$DownstreamPusher.run(SubscriberWrapper.java:259)
at java.net.http@21.0.2/jdk.internal.net.http.common.SequentialScheduler$LockingRestartableTask.run(SequentialScheduler.java:182)
at java.net.http@21.0.2/jdk.internal.net.http.common.SequentialScheduler$CompleteRestartableTask.run(SequentialScheduler.java:149)
at java.net.http@21.0.2/jdk.internal.net.http.common.SequentialScheduler$SchedulableTask.run(SequentialScheduler.java:207)
at java.net.http@21.0.2/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:280)
at java.net.http@21.0.2/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:233)
at java.net.http@21.0.2/jdk.internal.net.http.common.SubscriberWrapper.outgoing(SubscriberWrapper.java:232)
at java.net.http@21.0.2/jdk.internal.net.http.common.SubscriberWrapper.outgoing(SubscriberWrapper.java:198)
at java.net.http@21.0.2/jdk.internal.net.http.common.SSLFlowDelegate$Reader.processData(SSLFlowDelegate.java:451)
at java.net.http@21.0.2/jdk.internal.net.http.common.SSLFlowDelegate$Reader$ReaderDownstreamPusher.run(SSLFlowDelegate.java:269)
at java.net.http@21.0.2/jdk.internal.net.http.common.SequentialScheduler$LockingRestartableTask.run(SequentialScheduler.java:182)
at java.net.http@21.0.2/jdk.internal.net.http.common.SequentialScheduler$CompleteRestartableTask.run(SequentialScheduler.java:149)
at java.net.http@21.0.2/jdk.internal.net.http.common.SequentialScheduler$SchedulableTask.run(SequentialScheduler.java:207)
at java.base@21.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base@21.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
... 4 more

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with runtime/src/main/java/io/quarkiverse/githubapi/runtime/graal/Substitute_DefaultGitHubConnector.java and the stacktrace entry points GitHubClient.sendRequest and HttpClientGitHubConnector.send. Reproduce the request to the pull-request files endpoint and determine whether the substituted connector or github-api owns the HTTP/2 GOAWAY failure. Done means the cause and owning repository are established with a reproducible case.

Written by the indexing model from the issue text.

Assessment

Tech stack
github, java
Domain
backend, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.