[ https://issues.apache.org/jira/browse/ARROW-11937?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
ASF GitHub Bot updated ARROW-11937: ----------------------------------- Labels: pull-request-available (was: ) > [C++] GZip codec hangs if flushed twice > --------------------------------------- > > Key: ARROW-11937 > URL: https://issues.apache.org/jira/browse/ARROW-11937 > Project: Apache Arrow > Issue Type: Bug > Components: C++ > Affects Versions: 3.0.0 > Reporter: David Li > Assignee: David Li > Priority: Major > Labels: pull-request-available > Fix For: 4.0.0 > > Time Spent: 10m > Remaining Estimate: 0h > > {code:java} > // "If deflate returns with avail_out == 0, this function must be called > // again with the same value of the flush parameter and more output space > // (updated avail_out), until the flush is complete (deflate returns > // with non-zero avail_out)." > return FlushResult{bytes_written, (bytes_written == 0)}; {code} > But contrary to the comment, we're checking bytes_written. So if we flush > twice, the second time, we won't write any bytes, but we'll erroneously > interpret that as zlib asking for a larger buffer, rather than zlib telling > us there's no data to decompress. Then we'll enter a loop where we keep > doubling the buffer size forever, hanging the program. -- This message was sent by Atlassian Jira (v8.3.4#803005)