Hyukjin Kwon created SPARK-18803:
------------------------------------

             Summary: Fix path-related and JarEntry-related test failures and 
skip some tests failed on Windows due to path length limitation
                 Key: SPARK-18803
                 URL: https://issues.apache.org/jira/browse/SPARK-18803
             Project: Spark
          Issue Type: Sub-task
          Components: Tests
            Reporter: Hyukjin Kwon
            Priority: Minor



There are some tests being failed on Windows as below for several problems.

*Incorrect path handling*

- {{FileSuite}}

{code}
[info] - binary file input as byte array *** FAILED *** (500 milliseconds)
[info]   
"file:/C:/projects/spark/target/tmp/spark-e7c3a3b8-0a4b-4a7f-9ebe-7c4883e48624/record-bytestream-00000.bin"
 did not contain 
"C:\projects\spark\target\tmp\spark-e7c3a3b8-0a4b-4a7f-9ebe-7c4883e48624\record-bytestream-00000.bin"
 (FileSuite.scala:258)
[info]   org.scalatest.exceptions.TestFailedException:
[info]   at 
org.scalatest.Assertions$class.newAssertionFailedException(Assertions.scala:500)
[info]   at 
org.scalatest.FunSuite.newAssertionFailedException(FunSuite.scala:1555)
[info]   at 
org.scalatest.Assertions$AssertionsHelper.macroAssert(Assertions.scala:466)
[info]   at 
org.apache.spark.FileSuite$$anonfun$14.apply$mcV$sp(FileSuite.scala:258)
[info]   at org.apache.spark.FileSuite$$anonfun$14.apply(FileSuite.scala:239)
[info]   at org.apache.spark.FileSuite$$anonfun$14.apply(FileSuite.scala:239)
...
{code}


{code}
[info] - Get input files via old Hadoop API *** FAILED *** (1 second, 94 
milliseconds)
[info]   
Set("/C:/projects/spark/target/tmp/spark-cf5b1f8b-c5ed-43e0-8d17-546ebbfa8200/output/part-00000",
 
"/C:/projects/spark/target/tmp/spark-cf5b1f8b-c5ed-43e0-8d17-546ebbfa8200/output/part-00001")
 did not equal 
Set("C:\projects\spark\target\tmp\spark-cf5b1f8b-c5ed-43e0-8d17-546ebbfa8200\output/part-00000",
 
"C:\projects\spark\target\tmp\spark-cf5b1f8b-c5ed-43e0-8d17-546ebbfa8200\output/part-00001")
 (FileSuite.scala:535)
[info]   org.scalatest.exceptions.TestFailedException:
[info]   at 
org.scalatest.Assertions$class.newAssertionFailedException(Assertions.scala:500)
[info]   at 
org.scalatest.FunSuite.newAssertionFailedException(FunSuite.scala:1555)
[info]   at 
org.scalatest.Assertions$AssertionsHelper.macroAssert(Assertions.scala:466)
[info]   at 
org.apache.spark.FileSuite$$anonfun$29.apply$mcV$sp(FileSuite.scala:535)
[info]   at org.apache.spark.FileSuite$$anonfun$29.apply(FileSuite.scala:524)
[info]   at org.apache.spark.FileSuite$$anonfun$29.apply(FileSuite.scala:524)
...
{code}


{code}
[info] - Get input files via new Hadoop API *** FAILED *** (313 milliseconds)
[info]   
Set("/C:/projects/spark/target/tmp/spark-12bc1540-1111-4df6-9c4d-79e0e614407c/output/part-00000",
 
"/C:/projects/spark/target/tmp/spark-12bc1540-1111-4df6-9c4d-79e0e614407c/output/part-00001")
 did not equal 
Set("C:\projects\spark\target\tmp\spark-12bc1540-1111-4df6-9c4d-79e0e614407c\output/part-00000",
 
"C:\projects\spark\target\tmp\spark-12bc1540-1111-4df6-9c4d-79e0e614407c\output/part-00001")
 (FileSuite.scala:549)
[info]   org.scalatest.exceptions.TestFailedException:
[info]   at 
org.scalatest.Assertions$class.newAssertionFailedException(Assertions.scala:500)
[info]   at 
org.scalatest.FunSuite.newAssertionFailedException(FunSuite.scala:1555)
[info]   at 
org.scalatest.Assertions$AssertionsHelper.macroAssert(Assertions.scala:466)
[info]   at 
org.apache.spark.FileSuite$$anonfun$30.apply$mcV$sp(FileSuite.scala:549)
[info]   at org.apache.spark.FileSuite$$anonfun$30.apply(FileSuite.scala:538)
[info]   at org.apache.spark.FileSuite$$anonfun$30.apply(FileSuite.scala:538)
...
{code}


- {{TaskResultGetterSuite}}

{code}
[info] - handling results larger than max RPC message size *** FAILED *** (1 
second, 579 milliseconds)
[info]   1 did not equal 0 Expect result to be removed from the block manager. 
(TaskResultGetterSuite.scala:129)
[info]   org.scalatest.exceptions.TestFailedException:
[info]   at 
org.scalatest.Assertions$class.newAssertionFailedException(Assertions.scala:500)
[info]   at 
org.scalatest.FunSuite.newAssertionFailedException(FunSuite.scala:1555)
[info]   at 
org.scalatest.Assertions$AssertionsHelper.macroAssert(Assertions.scala:466)
[info]   at 
org.apache.spark.scheduler.TaskResultGetterSuite$$anonfun$4.apply$mcV$sp(TaskResultGetterSuite.scala:129)
[info]   at 
org.apache.spark.scheduler.TaskResultGetterSuite$$anonfun$4.apply(TaskResultGetterSuite.scala:121)
[info]   at 
org.apache.spark.scheduler.TaskResultGetterSuite$$anonfun$4.apply(TaskResultGetterSuite.scala:121)
[info]   ...
[info]   Cause: java.net.URISyntaxException: Illegal character in path at index 
12: 
string:///C:\projects\spark\target\tmp\spark-93c485af-68da-440f-a907-aac7acd5fc25\repro\MyException.java
[info]   at java.net.URI$Parser.fail(URI.java:2848)
[info]   at java.net.URI$Parser.checkChars(URI.java:3021)
[info]   at java.net.URI$Parser.parseHierarchical(URI.java:3105)
[info]   at java.net.URI$Parser.parse(URI.java:3053)
[info]   at java.net.URI.<init>(URI.java:588)
[info]   at java.net.URI.create(URI.java:850)
[info]   at 
org.apache.spark.TestUtils$.org$apache$spark$TestUtils$$createURI(TestUtils.scala:112)
[info]   at 
org.apache.spark.TestUtils$JavaSourceFromString.<init>(TestUtils.scala:116)
[info]   at 
org.apache.spark.scheduler.TaskResultGetterSuite$$anonfun$6.apply$mcV$sp(TaskResultGetterSuite.scala:174)
[info]   at 
org.apache.spark.scheduler.TaskResultGetterSuite$$anonfun$6.apply(TaskResultGetterSuite.scala:169)
[info]   at 
org.apache.spark.scheduler.TaskResultGetterSuite$$anonfun$6.apply(TaskResultGetterSuite.scala:169)
[info]   at 
org.scalatest.Transformer$$anonfun$apply$1.apply$mcV$sp(Transformer.scala:22)
[info]   at org.scalatest.OutcomeOf$class.outcomeOf(OutcomeOf.scala:85)
...
{code}

{code}
[info] - failed task deserialized with the correct classloader (SPARK-11195) 
*** FAILED *** (0 milliseconds)
[info]   java.lang.IllegalArgumentException: Illegal character in path at index 
12: 
string:///C:\projects\spark\target\tmp\spark-93c485af-68da-440f-a907-aac7acd5fc25\repro\MyException.java
[info]   at java.net.URI.create(URI.java:852)
[info]   at 
org.apache.spark.TestUtils$.org$apache$spark$TestUtils$$createURI(TestUtils.scala:112)
[info]   at 
org.apache.spark.TestUtils$JavaSourceFromString.<init>(TestUtils.scala:116)
[info]   at 
org.apache.spark.scheduler.TaskResultGetterSuite$$anonfun$6.apply$mcV$sp(TaskResultGetterSuite.scala:174)
[info]   at 
org.apache.spark.scheduler.TaskResultGetterSuite$$anonfun$6.apply(TaskResultGetterSuite.scala:169)
[info]   at 
org.apache.spark.scheduler.TaskResultGetterSuite$$anonfun$6.apply(TaskResultGetterSuite.scala:169)
...
{code}

- {{SparkSubmitSuite}}

{code}
[info]   java.lang.IllegalArgumentException: Illegal character in path at index 
12: string:///C:\projects\spark\target\tmp\1481210831381-0\870903339\MyLib.java
[info]   at java.net.URI.create(URI.java:852)
[info]   at 
org.apache.spark.TestUtils$.org$apache$spark$TestUtils$$createURI(TestUtils.scala:112)
[info]   at 
org.apache.spark.TestUtils$JavaSourceFromString.<init>(TestUtils.scala:116)
[info]   at 
org.apache.spark.deploy.IvyTestUtils$.createJavaClass(IvyTestUtils.scala:145)
[info]   at 
org.apache.spark.deploy.IvyTestUtils$.org$apache$spark$deploy$IvyTestUtils$$createLocalRepository(IvyTestUtils.scala:302)
[info]   at 
org.apache.spark.deploy.IvyTestUtils$.createLocalRepositoryForTests(IvyTestUtils.scala:341)
[info]   at 
org.apache.spark.deploy.IvyTestUtils$.withRepository(IvyTestUtils.scala:368)
[info]   at 
org.apache.spark.deploy.SparkSubmitSuite$$anonfun$18.apply$mcV$sp(SparkSubmitSuite.scala:412)
[info]   at 
org.apache.spark.deploy.SparkSubmitSuite$$anonfun$18.apply(SparkSubmitSuite.scala:408)
[info]   at 
org.apache.spark.deploy.SparkSubmitSuite$$anonfun$18.apply(SparkSubmitSuite.scala:408)
...
{code}


*Correct separate for JarEntry*

After the path fix from above, then {{TaskResultGetterSuite}} throws another 
exception as below:

- {{TaskResultGetterSuite}}

{code}
[info] - failed task deserialized with the correct classloader (SPARK-11195) 
*** FAILED *** (907 milliseconds)
[info]   java.lang.ClassNotFoundException: repro.MyException
[info]   at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
[info]   at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
[info]   at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
[info]   at java.lang.Class.forName0(Native Method)
[info]   at java.lang.Class.forName(Class.java:348)
[info]   at org.apache.spark.util.Utils$.classForName(Utils.scala:229)
[info]   at 
org.apache.spark.scheduler.TaskResultGetterSuite$$anonfun$6$$anonfun$apply$mcV$sp$1.apply$mcV$sp(TaskResultGetterSuite.scala:191)
[info]   at 
org.apache.spark.scheduler.TaskResultGetterSuite$$anonfun$6$$anonfun$apply$mcV$sp$1.apply(TaskResultGetterSuite.scala:187)
[info]   at 
org.apache.spark.scheduler.TaskResultGetterSuite$$anonfun$6$$anonfun$apply$mcV$sp$1.apply(TaskResultGetterSuite.scala:187)
[info]   at org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1303)
[info]   at 
org.apache.spark.scheduler.TaskResultGetterSuite$$anonfun$6.apply$mcV$sp(TaskResultGetterSuite.scala:212)
[info]   at 
org.apache.spark.scheduler.TaskResultGetterSuite$$anonfun$6.apply(TaskResultGetterSuite.scala:169)
[info]   at 
org.apache.spark.scheduler.TaskResultGetterSuite$$anonfun$6.apply(TaskResultGetterSuite.scala:169)
{code}

This is because {{Paths.get}} concatenate the given paths to OS-specific format 
(Windows \ and Linux /). However, for {{JarEntry}} we should comply

ZIP specification meaning it should be always \ according to ZIP specification 
- https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT

See {{4.4.17 file name: (Variable)}} in 
https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT


*Long path problem on Windows*

Some tests in {{ShuffleSuite}} via {{ShuffleNettySuite}} were skipped due to 
the same reason with SPARK-18718



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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

Reply via email to