[ https://issues.apache.org/jira/browse/ACCUMULO-4341?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15329491#comment-15329491 ]
Dave Marion commented on ACCUMULO-4341: --------------------------------------- Backported ACCUMULO-3923 to 1.7.2-SNAPSHOT and applied this fix to the same branch. Tested using the following process: {noformat} 1. tar zxf accumulo-1.7.2-SNAPSHOT-bin.tar.gz 2. cd accumulo-1.7.2-SNAPSHOT/bin 3. ./build_native_library.sh 4. ./bootstrap_config.sh 5. Update accumulo-env.sh 6. In accumulo-site.xml, set instance.volumes and add: <property> <name>general.vfs.classpaths</name> <value>hdfs://<host>:<port>/accumulo-1.7.2-SNAPSHOT-system-classpath/.*.jar</value> </property> 7. ./bootstrap_hdfs.sh 8. accumulo init 9. start-all.sh {noformat} > ServiceLoader deadlock with classes loaded from HDFS > ---------------------------------------------------- > > Key: ACCUMULO-4341 > URL: https://issues.apache.org/jira/browse/ACCUMULO-4341 > Project: Accumulo > Issue Type: Bug > Components: client > Affects Versions: 1.7.0, 1.8.0 > Reporter: Dave Marion > Priority: Blocker > Fix For: 1.7.2, 1.8.0 > > Time Spent: 1h > Remaining Estimate: 0h > > With Accumulo set up to use general.vfs.classpaths to load classes from HDFS, > running `accumulo help` will hang. > A jstack of the process shows the IPC Client thread at: > {noformat} > java.lang.Thread.State: BLOCKED (on object monitor) > at java.lang.Class.forName0(Native Method) > at java.lang.Class.forName(Class.java:348) > at > org.apache.hadoop.conf.Configuration.getClassByNameOrNull(Configuration.java:2051) > at > org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:91) > at > org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:75) > at > org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:133) > at > org.apache.hadoop.ipc.Client$Connection.receiveRpcResponse(Client.java:1086) > at org.apache.hadoop.ipc.Client$Connection.run(Client.java:966) > {noformat} > and the main thread at: > {noformat} > java.lang.Thread.State: WAITING (on object monitor) > at java.lang.Object.wait(Native Method) > at java.lang.Object.wait(Object.java:502) > at org.apache.hadoop.ipc.Client.call(Client.java:1454) > - locked <0x00000000f09a2898> (a org.apache.hadoop.ipc.Client$Call) > at org.apache.hadoop.ipc.Client.call(Client.java:1399) > at > org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:232) > at com.sun.proxy.$Proxy9.getFileInfo(Unknown Source) > at > org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getFileInfo(ClientNamenodeProtocolTranslatorPB.java:752) > at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:497) > at > org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187) > at > org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102) > at com.sun.proxy.$Proxy10.getFileInfo(Unknown Source) > at org.apache.hadoop.hdfs.DFSClient.getFileInfo(DFSClient.java:1982) > at > org.apache.hadoop.hdfs.DistributedFileSystem$18.doCall(DistributedFileSystem.java:1128) > at > org.apache.hadoop.hdfs.DistributedFileSystem$18.doCall(DistributedFileSystem.java:1124) > at > org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81) > at > org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1124) > at > org.apache.commons.vfs2.provider.hdfs.HdfsFileObject.doAttach(HdfsFileObject.java:85) > at > org.apache.commons.vfs2.provider.AbstractFileObject.attach(AbstractFileObject.java:173) > - locked <0x00000000f57fd008> (a > org.apache.commons.vfs2.provider.hdfs.HdfsFileSystem) > at > org.apache.commons.vfs2.provider.AbstractFileObject.getContent(AbstractFileObject.java:1236) > - locked <0x00000000f57fd008> (a > org.apache.commons.vfs2.provider.hdfs.HdfsFileSystem) > at > org.apache.commons.vfs2.impl.VFSClassLoader.getPermissions(VFSClassLoader.java:300) > at > java.security.SecureClassLoader.getProtectionDomain(SecureClassLoader.java:206) > - locked <0x00000000f5ad9138> (a java.util.HashMap) > at > java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) > at > org.apache.commons.vfs2.impl.VFSClassLoader.defineClass(VFSClassLoader.java:226) > at > org.apache.commons.vfs2.impl.VFSClassLoader.findClass(VFSClassLoader.java:180) > at java.lang.ClassLoader.loadClass(ClassLoader.java:424) > - locked <0x00000000f5af3b88> (a > org.apache.commons.vfs2.impl.VFSClassLoader) > at java.lang.ClassLoader.loadClass(ClassLoader.java:411) > - locked <0x00000000f6f5c2f8> (a > org.apache.commons.vfs2.impl.VFSClassLoader) > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > at java.lang.Class.forName0(Native Method) > at java.lang.Class.forName(Class.java:348) > at > java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:370) > at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404) > at java.util.ServiceLoader$1.next(ServiceLoader.java:480) > at org.apache.accumulo.start.Main.checkDuplicates(Main.java:196) > at org.apache.accumulo.start.Main.getExecutables(Main.java:188) > at org.apache.accumulo.start.Main.main(Main.java:52) > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)