[
https://issues.apache.org/jira/browse/CASSSIDECAR-359?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Francisco Guerrero updated CASSSIDECAR-359:
-------------------------------------------
Bug Category: Parent values: Availability(12983)Level 1 values: Response
Crash(12991)
Complexity: Normal
Component/s: Rest API
Discovered By: User Report
Severity: Normal
Status: Open (was: Triage Needed)
> Avoid resuming stream during SSTable upload
> -------------------------------------------
>
> Key: CASSSIDECAR-359
> URL: https://issues.apache.org/jira/browse/CASSSIDECAR-359
> Project: Sidecar for Apache Cassandra
> Issue Type: Bug
> Components: Rest API
> Reporter: Francisco Guerrero
> Assignee: Francisco Guerrero
> Priority: Major
>
> During SSTable upload in Sidecar,
> {{org.apache.cassandra.sidecar.utils.SSTableUploader}} resumes the “paused”
> stream too early, and could cause issues between the time the stream is
> resumed and the stream needs to be consumed.
> The issue is subtle, but could occur under a loaded system. Sidecar will try
> to pipe the stream into a file during the upload, but if resuming the stream
> too early then the stream bytes will be read before we have a chance to pipe
> them into the file and this is reflected by the following exception:
> {code:java}
> io.vertx.ext.web.handler.HttpException: Internal Server Error
> Caused by: java.lang.IllegalStateException: Request has already been read
> at
> io.vertx.core.http.impl.Http1xServerRequest.checkEnded(Http1xServerRequest.java:733)
> at
> io.vertx.core.http.impl.Http1xServerRequest.endHandler(Http1xServerRequest.java:407)
> at
> io.vertx.core.http.impl.HttpServerRequestWrapper.endHandler(HttpServerRequestWrapper.java:83)
> at
> io.vertx.core.http.impl.HttpServerRequestWrapper.endHandler(HttpServerRequestWrapper.java:45)
> at io.vertx.core.streams.impl.PipeImpl.<init>(PipeImpl.java:35)
> at io.vertx.core.streams.ReadStream.pipeTo(ReadStream.java:123)
> at
> org.apache.cassandra.sidecar.utils.SSTableUploader.pipeStreamToFile(SSTableUploader.java:121)
> at
> org.apache.cassandra.sidecar.handlers.sstableuploads.BaseUploadsHandlerTest$TestModuleOverride$1.lambda$pipeStreamToFile$0(BaseUploadsHandlerTest.java:240)
> {code}
> Instead, we should let the resuming to take place when the stream is ready to
> be piped into the file.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]