[
https://issues.apache.org/jira/browse/THRIFT-4620?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16616302#comment-16616302
]
ASF GitHub Bot commented on THRIFT-4620:
----------------------------------------
jeking3 edited a comment on issue #1591: THRIFT-4620: Ensure enough space for
for zlib flush marker
URL: https://github.com/apache/thrift/pull/1591#issuecomment-420393230
I don't believe that the cross test framework will test zlib changes; not
sure if the unit tests do a good job at that either. If anyone else has an
opinion on this, let me know. Looks fine to me otherwise, but I don't see any
explicit test that would use a zlib transport and flush empty to force this.
Is there a way to modify the zlib unit test to force this condition during the
test?
I see that the golang test client and server support zlib; I'm going to add
the bits to test zlib transport in the C++ client and server and have them
cross test, and I'll push that back into your branch to re-run in CI.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
> TZlibTransport.cpp doesn't ensure that there is enough space for the zlib
> flush marker in the buffer.
> -----------------------------------------------------------------------------------------------------
>
> Key: THRIFT-4620
> URL: https://issues.apache.org/jira/browse/THRIFT-4620
> Project: Thrift
> Issue Type: Bug
> Components: C++ - Library
> Affects Versions: 0.9
> Reporter: Dominic Coyne
> Priority: Major
> Labels: c++, zlib
>
> I asked [this
> question|https://stackoverflow.com/questions/51784225/how-does-thrift-handle-zlib-flush-markers-being-split-over-multiple-messages]
> on stack overflow related to a crash that I have been getting with Thrift.
> The problem occurs when using TZlibTransport.cpp. After writing to the buffer
> a few times, we do a flush. If there isn't enough space in cwbuf_ , the
> Thrift flush marker is split across two messages, which causes an error in
> the client, as a deflate stream can't start with a partial flush marker, ff.
> Thrift should assure that there will be enough space in the buffer for the
> complete flush marker, before a deflate.
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)