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

Jason Lowe commented on HADOOP-8962:
------------------------------------

One way this occurs is when a distributed cache archive is being localized and 
the archive contains files with ':' in their names.  The job fails to start 
because localization fails with an exception like this:

{noformat}
2012-10-22 21:04:03,636 INFO  [main] mapreduce.Job 
(Job.java:monitorAndPrintJob(1308)) - Job job_1350939622571_0001 failed with 
state FAILED due to: Application application_1350939622571_0001 failed 1 times 
due to AM Container for appattempt_1350939622571_0001_000001 exited with  
exitCode: -1000 due to: RemoteTrace: 
java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path 
in absolute URI: Net::SSL.3pm
        at org.apache.hadoop.fs.Path.initialize(Path.java:157)
        at org.apache.hadoop.fs.Path.<init>(Path.java:135)
        at org.apache.hadoop.fs.Path.<init>(Path.java:58)
        at 
org.apache.hadoop.fs.RawLocalFileSystem.listStatus(RawLocalFileSystem.java:361)
        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1419)
        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1459)
        at 
org.apache.hadoop.fs.ChecksumFileSystem.listStatus(ChecksumFileSystem.java:569)
        at 
org.apache.hadoop.yarn.util.FSDownload.changePermissions(FSDownload.java:262)
        at 
org.apache.hadoop.yarn.util.FSDownload.changePermissions(FSDownload.java:264)
        at 
org.apache.hadoop.yarn.util.FSDownload.changePermissions(FSDownload.java:264)
        at 
org.apache.hadoop.yarn.util.FSDownload.changePermissions(FSDownload.java:264)
        at org.apache.hadoop.yarn.util.FSDownload.call(FSDownload.java:206)
        at org.apache.hadoop.yarn.util.FSDownload.call(FSDownload.java:1)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
Caused by: java.net.URISyntaxException: Relative path in absolute URI: 
Net::SSL.3pm
        at java.net.URI.checkPath(URI.java:1787)
        at java.net.URI.<init>(URI.java:735)
        at org.apache.hadoop.fs.Path.initialize(Path.java:154)
        ... 20 more
 at LocalTrace: 
        org.apache.hadoop.yarn.exceptions.impl.pb.YarnRemoteExceptionPBImpl: 
java.net.URISyntaxException: Relative path in absolute URI: Net::SSL.3pm
        at 
org.apache.hadoop.yarn.server.nodemanager.api.protocolrecords.impl.pb.LocalResourceStatusPBImpl.convertFromProtoFormat(LocalResourceStatusPBImpl.java:217)
        at 
org.apache.hadoop.yarn.server.nodemanager.api.protocolrecords.impl.pb.LocalResourceStatusPBImpl.getException(LocalResourceStatusPBImpl.java:147)
        at 
org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ResourceLocalizationService$LocalizerRunner.update(ResourceLocalizationService.java:824)
        at 
org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ResourceLocalizationService$LocalizerTracker.processHeartbeat(ResourceLocalizationService.java:493)
        at 
org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ResourceLocalizationService.heartbeat(ResourceLocalizationService.java:222)
        at 
org.apache.hadoop.yarn.server.nodemanager.api.impl.pb.service.LocalizationProtocolPBServiceImpl.heartbeat(LocalizationProtocolPBServiceImpl.java:46)
        at 
org.apache.hadoop.yarn.proto.LocalizationProtocol$LocalizationProtocolService$2.callBlockingMethod(LocalizationProtocol.java:57)
        at 
org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:474)
        at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1018)
        at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1738)
Caused by: org.apache.hadoop.yarn.exceptions.impl.pb.YarnRemoteExceptionPBImpl: 
Relative path in absolute URI: Net::SSL.3pm
        at 
org.apache.hadoop.yarn.exceptions.impl.pb.YarnRemoteExceptionPBImpl.getCause(YarnRemoteExceptionPBImpl.java:94)
        at 
org.apache.hadoop.yarn.exceptions.YarnRemoteException.getCause(YarnRemoteException.java:25)
        at java.lang.Throwable.printStackTrace(Throwable.java:514)
        at 
org.apache.hadoop.yarn.exceptions.YarnRemoteException.printStackTrace(YarnRemoteException.java:48)
        at 
org.apache.hadoop.util.StringUtils.stringifyException(StringUtils.java:70)
        at 
org.apache.hadoop.yarn.server.nodemanager.containermanager.container.ContainerImpl$ResourceFailedTransition.transition(ContainerImpl.java:701)
        at 
org.apache.hadoop.yarn.server.nodemanager.containermanager.container.ContainerImpl$ResourceFailedTransition.transition(ContainerImpl.java:1)
        at 
org.apache.hadoop.yarn.state.StateMachineFactory$SingleInternalArc.doTransition(StateMachineFactory.java:359)
        at 
org.apache.hadoop.yarn.state.StateMachineFactory.doTransition(StateMachineFactory.java:299)
        at 
org.apache.hadoop.yarn.state.StateMachineFactory.access$3(StateMachineFactory.java:287)
        at 
org.apache.hadoop.yarn.state.StateMachineFactory$InternalStateMachine.doTransition(StateMachineFactory.java:445)
        at 
org.apache.hadoop.yarn.server.nodemanager.containermanager.container.ContainerImpl.handle(ContainerImpl.java:827)
        at 
org.apache.hadoop.yarn.server.nodemanager.containermanager.container.ContainerImpl.handle(ContainerImpl.java:1)
        at 
org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl$ContainerEventDispatcher.handle(ContainerManagerImpl.java:554)
        at 
org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl$ContainerEventDispatcher.handle(ContainerManagerImpl.java:1)
        at 
org.apache.hadoop.yarn.event.AsyncDispatcher.dispatch(AsyncDispatcher.java:128)
        at 
org.apache.hadoop.yarn.event.AsyncDispatcher$1.run(AsyncDispatcher.java:77)
        at java.lang.Thread.run(Thread.java:662)

.Failing this attempt.. Failing the application.
{noformat}

RawLocalFileSystem.listStatus is assuming that for a directory Path X it can 
create Path objects for each filename Y under the directory by calling Path(X, 
new Path(Y)), but this fails if Y contains a colon character.  It needs to 
fully qualify the path so the Path constructor doesn't try to parse the child 
filename looking for a URI scheme that isn't there.
                
> RawLocalFileSystem.listStatus fails when a child filename contains a colon
> --------------------------------------------------------------------------
>
>                 Key: HADOOP-8962
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8962
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: fs
>    Affects Versions: 0.23.3
>            Reporter: Jason Lowe
>            Priority: Critical
>
> If listStatus is called on a directory that contains a file with a ':' in its 
> name then it mistakenly thinks there is a scheme being specified and an 
> exception is thrown because of a relative URI.

--
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