[BUG] - 使用iputstreanpart发送文件偶现服务端超时
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 35/100
- Issue-Typ
- Bug
- Klarheit
- Muss geklärt werden
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- java
- Bereich
- api, backend, networking
Rechercherichtung
Beginne bei PumpFromPart.java, Zeile 75, und verfolge die InputStreamPart-Serverantwort durch den ReadStreamPart-Clientpfad saveToFile. Verwende die bereitgestellten Server- und Client-Codeausschnitte, das Verhalten bei der Dateiaktualisierung und die Timeout-Einstellungen, um den intermittierenden Verbindungsabbruch zu untersuchen. Als abgeschlossen gilt die Aufgabe, wenn festgestellt wurde, ob der Fehler durch die Verwendung oder eine Race-Condition verursacht wird, und die bestätigte Ursache dokumentiert oder behoben wurde.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Steps to Reproduce
服务端报错;
2025-08-27 08:43:58.866 [transport-vert.x-eventloop-thread-6] ERROR - [PumpFromPart.java:lambda$toWriteStream$1:75] - [] - to write stream failed. java.util.concurrent.CompletionException: io.vertx.core.http.HttpClosedException: Connection was closed
at java.base/java.util.concurrent.CompletableFuture.encodeRelay(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture.completeRelay(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture$UniRelay$tryFire.run(Unknown Source)
客户端报错:
超时配置
rest:
address: 0.0.0.0:8183?sslEnabled=true
client:
thread-count: 8
maxWaitQueueSize: 100000
connection:
maxPoolSize: 10
timeoutInMillis: 5000
keepAliveTimeoutInSeconds: 15
idleTimeoutInSeconds: 50
keepAlive: true
server:
thread-count: 8
compression: false
maxHeaderSize: 8192
timeout: 3000
maxFormAttributeSize: -1
connection:
idleTimeoutInSeconds: 60
服务端代码;
@RequestMapping(value = "/v1", method = RequestMethod.POST) public ResponseEntity<Part> syncCache(@RequestBody String param) throws Exception { return ResponseEntity .ok() .header(HttpHeaders.CONTENT_TYPE, MediaType.TEXT_PLAIN_VALUE) .header("result", JSON.toJSONString(result)) .body(new InputStreamPart(null, sendFile != null ? Files.newInputStream(sendFile) : new ByteArrayInputStream(new byte[0])) .setSubmittedFileName("data.dat")); }
客户端代码
ResponseEntity<ReadStreamPart> response = REST_TEMPLATE.postForEntity("cse://xxxx", body, ReadStreamPart.class); try { body.saveToFile(tempDataFile.toFile(), new OpenOptions().setCreateNew(true)).get(30, TimeUnit.SECONDS); } catch (Exception e) { Files.deleteIfExists(tempDataFile); throw e; }
发送的文件大小不超过4M,内网万兆带宽网络稳定,排除网络问题,万分之1概率出现文件拉取超时, 辛苦帮忙看一下是使用的问题还是存在竞态问题,文件是在server另外的定时任务定时刷新,创建tmp文件后原子重命名方式,原理上不会影响文件下载。
- Vorherrschende Sprache
- Java
- Sterne
- 1.9k
- Forks
- 813
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Kein Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus apache/servicecomb-java-chassis
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
apache/servicecomb-java-chassis#5106 ·
-
question
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
apache/servicecomb-java-chassis#5153 · 1 Kommentar ·
-
[QUESTION] - 请发布3.x的最新版本Offenquestion
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
apache/servicecomb-java-chassis#5146 ·
-
[FEATURE] - When will ServiceComb support Spring Boot 4.x, Spring Framework 7.x, and Jackson 3.x?Offenenhancement
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
apache/servicecomb-java-chassis#5145 ·
-
[BUG] - The latest instance information cannot be obtained when cache instances is empty.Evtl. wieder frei @chengyouling hat das vor 144 Tagen übernommen, und es ist kein Pull Request offen. Offen2.x bug
apache/servicecomb-java-chassis#5141 · 1 zugewiesene Person ·
Alle Issues in apache/servicecomb-java-chassis
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
apache/rocketmq-dashboard#6110 ·
Maintainer antworten meist innerhalb von 4 Tagen
-
`Processing lsp` never exits and leaves orphaned processesEvtl. vergeben @overcast302 hat das heute übernommen. Offenbug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
processing/processing4#1578 · 1 Kommentar ·
-
ASM is not up-to-dateOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 60/100
Maintainer antworten meist innerhalb von 1 Tag
-
[BUG] S3 CORS responses omit Access-Control-Allow-Credentials for matched originsEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
floci-io/floci#5369 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
securityHeaders replaces a route's own Content-Security-Policy (0.9.9; weakens embedders' pages)Offenbug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag