You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Christopher Friedt (Jira)" <ji...@apache.org> on 2022/04/18 21:38:00 UTC
[jira] [Updated] (THRIFT-5093) TMemoryBuffer: add test cases to clarify behaviour of MemoryPolicy
[ https://issues.apache.org/jira/browse/THRIFT-5093?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Christopher Friedt updated THRIFT-5093:
---------------------------------------
Summary: TMemoryBuffer: add test cases to clarify behaviour of MemoryPolicy (was: TMemoryBuffer: add test cases to clarify beha)
> TMemoryBuffer: add test cases to clarify behaviour of MemoryPolicy
> ------------------------------------------------------------------
>
> Key: THRIFT-5093
> URL: https://issues.apache.org/jira/browse/THRIFT-5093
> Project: Thrift
> Issue Type: Improvement
> Components: C++ - Library
> Affects Versions: 0.17.0
> Reporter: Christopher Friedt
> Priority: Minor
> Time Spent: 7h 50m
> Remaining Estimate: 0h
>
> The TMemoryBuffer policy is "OBSERVER" by default in a constructor where an external pointer to memory, and the size of that memory, are passed in. That scenario is for externally managed buffers.
> As an observer of a buffer, Thrift should only be able to read. However, previously, `buf.available_read()` would return 0 (and subsequently, `buf.read()` would fail).
> I've added a test as a separate commit, so it's easy to observe the failure and fix. The current behaviour produces the following failure.
> {noformat}
> TMemoryBufferTest.cpp(141): error: in "TMemoryBufferTest/test_observer": check N == buf.available_read() has failed [1024 != 0]
> {noformat}
> With this change, Thrift applications that use Memory as a transport are able to read `OBSERVER` buffers as well (as one would expect) and the error above is mitigated.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)