You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-dev@hadoop.apache.org by "James Clampffer (JIRA)" <ji...@apache.org> on 2016/03/31 22:04:25 UTC
[jira] [Created] (HDFS-10241) libhdfs++: Objects should never
return mutable references to internal state
James Clampffer created HDFS-10241:
--------------------------------------
Summary: libhdfs++: Objects should never return mutable references to internal state
Key: HDFS-10241
URL: https://issues.apache.org/jira/browse/HDFS-10241
Project: Hadoop HDFS
Issue Type: Sub-task
Reporter: James Clampffer
Returning mutable references to internal state is always a bad idea. It's particularly bad in asynchronous code (due to unpredictable object life cycles).
Example of what should _never_ happen in production code (from AsyncRequestBlock):
{code}
struct State {
std::string header;
hadoop::hdfs::OpReadBlockProto request;
hadoop::hdfs::BlockOpResponseProto response;
};
auto m = continuation::Pipeline<State>::Create(cancel_state_);
State *s = &m->state();
s->header.insert(s->header.begin(),
{0, kDataTransferVersion, Operation::kReadBlock});
{code}
I'll open another JIRA for auto vars containing ambiguous types e.g. what is the type of "m" here?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)