Francisco Guerrero created CASSSIDECAR-359:
----------------------------------------------

             Summary: 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
            Reporter: Francisco Guerrero
            Assignee: Francisco Guerrero


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]

Reply via email to