[ 
https://issues.apache.org/jira/browse/HADOOP-17130?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17158145#comment-17158145
 ] 

Mukund Thakur commented on HADOOP-17130:
----------------------------------------

Initially we thought the ConcurrentModificationException might be because of 
handling deprecations but I couldn't reproduce this using unit testing. 

 
{code:java}
Map<String,String> result = new HashMap<String,String>();
Matcher m;

for(Map.Entry<Object,Object> item: getProps().entrySet()) {
  if (item.getKey() instanceof String && 
      item.getValue() instanceof String) {
    m = p.matcher((String)item.getKey());
    if(m.find()) { // match
      result.put((String) item.getKey(),
          substituteVars(getProps().getProperty((String) item.getKey())));
    }
  }
}{code}
But we still believe that this code subtituteVars() may be updating the props 
concurrently and it would be a better if we do this substitution later after 
fetching the list of matching properties. 

CC [~ste...@apache.org] 

> Configuration.getValByRegex() shouldn't be updating the results while 
> fetching.
> -------------------------------------------------------------------------------
>
>                 Key: HADOOP-17130
>                 URL: https://issues.apache.org/jira/browse/HADOOP-17130
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: common
>    Affects Versions: 3.1.3
>            Reporter: Mukund Thakur
>            Assignee: Mukund Thakur
>            Priority: Major
>
> We have seen this stacktrace while using ABFS file system. After analysing 
> the stack trace we can see that getValByRegex() is reading the properties and 
> substituting the value in the same call. This may cause the 
> ConcurrentModificationException. 
> {code:java}
> Caused by: java.util.concurrent.ExecutionException: 
> java.util.ConcurrentModificationException at 
> java.util.concurrent.FutureTask.report(FutureTask.java:122) at 
> java.util.concurrent.FutureTask.get(FutureTask.java:192) at 
> org.apache.hadoop.hive.ql.io.orc.OrcInputFormat.generateSplitsInfo(OrcInputFormat.java:1877)
>  ... 18 more Caused by: java.util.ConcurrentModificationException at 
> java.util.Hashtable$Enumerator.next(Hashtable.java:1387) at 
> org.apache.hadoop.conf.Configuration.getValByRegex(Configuration.java:3855) 
> at 
> org.apache.hadoop.fs.azurebfs.AbfsConfiguration.validateStorageAccountKeys(AbfsConfiguration.java:689)
>  at 
> org.apache.hadoop.fs.azurebfs.AbfsConfiguration.<init>(AbfsConfiguration.java:237)
>  at 
> org.apache.hadoop.fs.azurebfs.AzureBlobFileSystemStore.<init>(AzureBlobFileSystemStore.java:154)
>  at 
> org.apache.hadoop.fs.azurebfs.AzureBlobFileSystem.initialize(AzureBlobFileSystem.java:113)
>  at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:3396) at 
> org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:158) at 
> org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:3456) at 
> org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:3424) at 
> org.apache.hadoop.fs.FileSystem.get(FileSystem.java:518) at 
> org.apache.hadoop.fs.Path.getFileSystem(Path.java:361)
>  
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-issues-h...@hadoop.apache.org

Reply via email to