java.lang.IllegalArgumentException: No known Under File System supports the given path hdfs:/localhost/tachyon/underfs/tmp/tachyon/data/3

JIRA | Rob Vesse | 2 years ago
  1. 0

    Have occasionally hit strange errors like the following in the Tachyon logs: {noformat} 2015-03-05 15:24:51,220 WARN MASTER_LOGGER (UnderFileSystemRegistry.java:findAll) - No Under File System Factory implementation supports the path hdfs:/localhost/tachyon/underfs/tmp/tachyon/data/3 2015-03-05 15:24:51,220 ERROR server.TThreadPoolServer (TThreadPoolServer.java:run) - Error occurred during processing of message. java.lang.IllegalArgumentException: No known Under File System supports the given path hdfs:/localhost/tachyon/underfs/tmp/tachyon/data/3 at tachyon.underfs.UnderFileSystemRegistry.create(UnderFileSystemRegistry.java:240) at tachyon.underfs.UnderFileSystem.get(UnderFileSystem.java:86) at tachyon.underfs.UnderFileSystem.get(UnderFileSystem.java:66) at tachyon.master.MasterInfo._delete(MasterInfo.java:635) at tachyon.master.MasterInfo.delete(MasterInfo.java:1093) at tachyon.master.MasterInfo.delete(MasterInfo.java:1120) at tachyon.master.MasterServiceHandler.user_delete(MasterServiceHandler.java:167) at tachyon.thrift.MasterService$Processor$user_delete.getResult(MasterService.java:2893) at tachyon.thrift.MasterService$Processor$user_delete.getResult(MasterService.java:2877) at tachyon.org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39) at tachyon.org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39) at tachyon.org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:225) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:744) {noformat} Which on diving down the rabbit hole led me to determine that the {{TachyonURI}} class is subtly broken when parsing a URI from a string. It assumes that an authority must contain a port number which is untrue. The relevant section on authority in [RFC 3986|http://tools.ietf.org/html/rfc3986#section-3.2] actually defines it like so: {noformat} authority = [ userinfo "@" ] host [ ":" port ] {noformat} i.e. the port is optional So {{TachyonUri}} is incorrectly assuming that a port must be present for there to be an authority and in some cases this causes it to mangle the URI and yield errors like the above

    JIRA | 2 years ago | Rob Vesse
    java.lang.IllegalArgumentException: No known Under File System supports the given path hdfs:/localhost/tachyon/underfs/tmp/tachyon/data/3
  2. 0

    Have occasionally hit strange errors like the following in the Tachyon logs: {noformat} 2015-03-05 15:24:51,220 WARN MASTER_LOGGER (UnderFileSystemRegistry.java:findAll) - No Under File System Factory implementation supports the path hdfs:/localhost/tachyon/underfs/tmp/tachyon/data/3 2015-03-05 15:24:51,220 ERROR server.TThreadPoolServer (TThreadPoolServer.java:run) - Error occurred during processing of message. java.lang.IllegalArgumentException: No known Under File System supports the given path hdfs:/localhost/tachyon/underfs/tmp/tachyon/data/3 at tachyon.underfs.UnderFileSystemRegistry.create(UnderFileSystemRegistry.java:240) at tachyon.underfs.UnderFileSystem.get(UnderFileSystem.java:86) at tachyon.underfs.UnderFileSystem.get(UnderFileSystem.java:66) at tachyon.master.MasterInfo._delete(MasterInfo.java:635) at tachyon.master.MasterInfo.delete(MasterInfo.java:1093) at tachyon.master.MasterInfo.delete(MasterInfo.java:1120) at tachyon.master.MasterServiceHandler.user_delete(MasterServiceHandler.java:167) at tachyon.thrift.MasterService$Processor$user_delete.getResult(MasterService.java:2893) at tachyon.thrift.MasterService$Processor$user_delete.getResult(MasterService.java:2877) at tachyon.org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39) at tachyon.org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39) at tachyon.org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:225) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:744) {noformat} Which on diving down the rabbit hole led me to determine that the {{TachyonURI}} class is subtly broken when parsing a URI from a string. It assumes that an authority must contain a port number which is untrue. The relevant section on authority in [RFC 3986|http://tools.ietf.org/html/rfc3986#section-3.2] actually defines it like so: {noformat} authority = [ userinfo "@" ] host [ ":" port ] {noformat} i.e. the port is optional So {{TachyonUri}} is incorrectly assuming that a port must be present for there to be an authority and in some cases this causes it to mangle the URI and yield errors like the above

    JIRA | 2 years ago | Rob Vesse
    java.lang.IllegalArgumentException: No known Under File System supports the given path hdfs:/localhost/tachyon/underfs/tmp/tachyon/data/3
  3. 0

    can't run on windows

    GitHub | 1 year ago | ittayd
    java.lang.IllegalArgumentException: No Under File System Factory found for: C:\Users\idror\AppData\Local\Temp\Tachyon9005137488638350556U1445448775439
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

  5. 0

    Problem persisting to Tachyon S3 under storage

    Google Groups | 11 months ago | Ian Wilkinson
    java.lang.IllegalArgumentException: No Under File System Factory found for: s3n://<...>/apps/challenges/config/config.json.tachyon.3120562175.0x5A7D0C6018033C78.tmp

    1 unregistered visitors
    Not finding the right solution?
    Take a tour to get the most out of Samebug.

    Tired of useless tips?

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. java.lang.IllegalArgumentException

      No known Under File System supports the given path hdfs:/localhost/tachyon/underfs/tmp/tachyon/data/3

      at tachyon.underfs.UnderFileSystemRegistry.create()
    2. tachyon.underfs
      UnderFileSystem.get
      1. tachyon.underfs.UnderFileSystemRegistry.create(UnderFileSystemRegistry.java:240)
      2. tachyon.underfs.UnderFileSystem.get(UnderFileSystem.java:86)
      3. tachyon.underfs.UnderFileSystem.get(UnderFileSystem.java:66)
      3 frames
    3. Tachyon Project Core
      TThreadPoolServer$WorkerProcess.run
      1. tachyon.master.MasterInfo._delete(MasterInfo.java:635)
      2. tachyon.master.MasterInfo.delete(MasterInfo.java:1093)
      3. tachyon.master.MasterInfo.delete(MasterInfo.java:1120)
      4. tachyon.master.MasterServiceHandler.user_delete(MasterServiceHandler.java:167)
      5. tachyon.thrift.MasterService$Processor$user_delete.getResult(MasterService.java:2893)
      6. tachyon.thrift.MasterService$Processor$user_delete.getResult(MasterService.java:2877)
      7. tachyon.org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
      8. tachyon.org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
      9. tachyon.org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:225)
      9 frames
    4. Java RT
      Thread.run
      1. java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      2. java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      3. java.lang.Thread.run(Thread.java:744)
      3 frames