[
https://issues.apache.org/jira/browse/HBASE-8372?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13639088#comment-13639088
]
Ted Yu commented on HBASE-8372:
-------------------------------
Consider the scenario described by HBASE-8347. Here is the call stack:
{code}
2013-04-15 14:03:50,311 ERROR [IPC Server handler 0 on 53755]
access.SecureBulkLoadEndpoint$1(240): Failed to complete bulk load
java.lang.UnsupportedOperationException: Immutable Configuration
at
org.apache.hadoop.hbase.CompoundConfiguration.setClass(CompoundConfiguration.java:511)
at org.apache.hadoop.ipc.RPC.setProtocolEngine(RPC.java:193)
at
org.apache.hadoop.hdfs.NameNodeProxies.createNNProxyWithClientProtocol(NameNodeProxies.java:249)
at
org.apache.hadoop.hdfs.NameNodeProxies.createNonHAProxy(NameNodeProxies.java:168)
at
org.apache.hadoop.hdfs.NameNodeProxies.createProxy(NameNodeProxies.java:129)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:409)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:376)
at
org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:123)
at
org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2296)
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:85)
at
org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2330)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2312)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:316)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:162)
at
org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint$1.run(SecureBulkLoadEndpoint.java:224)
{code}
Here is related code from SecureBulkLoadEndpoint#start():
{code}
conf = env.getConfiguration();
baseStagingDir = SecureBulkLoadUtil.getBaseStagingDir(conf);
try {
fs = FileSystem.get(conf);
{code}
SecureBulkLoadEndpoint retrieves CompoundConfiguration from
CoprocessorEnvironment. This CompoundConfiguration is shared with the
underlying HRegion.
After CompoundConfiguration.setClass() call, this CompoundConfiguration becomes
mutable.
Our expectation would be for the underlying HRegion to continue supporting
dynamic config *and* for SecureBulkLoadEndpoint to see the new config entries.
> Provide mutability to CompoundConfiguration
> -------------------------------------------
>
> Key: HBASE-8372
> URL: https://issues.apache.org/jira/browse/HBASE-8372
> Project: HBase
> Issue Type: New Feature
> Reporter: Ted Yu
> Assignee: Jonathan Hsieh
> Attachments: hbase-8372.patch, hbase-8372.v2.patch,
> hbase-8372.v3.patch
>
>
> In discussion of HBASE-8347, it was proposed that CompoundConfiguration
> should support mutability.
> This can be done by consolidating ImmutableConfigMap's on first modification
> to CompoundConfiguration.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira