[ 
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

Reply via email to