1. 24 11月, 2017 1 次提交
    • B
      Log exception in case of failure · 4c50c7a9
      Baptiste Mathus 提交于
      I see we enter that catch, and the `else` in a failing test.
      But I'm somewhat stuck since I miss both the stack, and even at
      least the exception being thrown and not being an
      `AtomicMoveNotSupportedException`.
      
      It's possibly an `IOException` or some subclass. But still having the
      stack could help understand why the test fails, and provide more
      data for diagnosis in the future in production use.
      
      ```
      === Starting hudson.cli.RunRangeCommandTest
         0.007 [id=96]	WARNING	o.jvnet.hudson.test.JenkinsRule#before: Jenkins.theInstance was not cleared by a previous test, doing that now
         0.018 [id=96]	INFO	o.jvnet.hudson.test.JenkinsRule#createWebServer: Running on http://localhost:45833/jenkins/
         0.037 [id=15]	WARNING	jenkins.model.Jenkins#cleanUp: This instance is no longer the singleton, ignoring cleanUp()
         0.345 [id=96]	WARNING	hudson.util.AtomicFileWriter#commit: Unable to move atomically, falling back to non-atomic move.
         0.345 [id=96]	SEVERE	hudson.util.AtomicFileWriter#commit: Unable to move /home/jenkins/workspace/Core_jenkins_PR-2548-5VRJ4BBBSEGVOZEA7OVAL2YLTLCBL55RB4LDQIZN56WJZD4M6ZKA/test/target/jenkinsTests.tmp/jenkins333129509690162870test/atomic9184049448662376708tmp to /home/jenkins/workspace/Core_jenkins_PR-2548-5VRJ4BBBSEGVOZEA7OVAL2YLTLCBL55RB4LDQIZN56WJZD4M6ZKA/test/target/jenkinsTests.tmp/jenkins333129509690162870test/secret.key. Attempting to delete /home/jenkins/workspace/Core_jenkins_PR-2548-5VRJ4BBBSEGVOZEA7OVAL2YLTLCBL55RB4LDQIZN56WJZD4M6ZKA/test/target/jenkinsTests.tmp/jenkins333129509690162870test/atomic9184049448662376708tmp and abandoning.
      ```
      4c50c7a9
  2. 23 11月, 2017 4 次提交
    • B
      Try to get the future for 10 seconds before timing out · 9b482009
      Baptiste Mathus 提交于
      Should make the test more robust on variously performing setups.
      9b482009
    • B
      Fix RequireUpperBoundDeps issue · fed7f2e3
      Baptiste Mathus 提交于
      ```
      WARNING] Rule 3: org.apache.maven.plugins.enforcer.RequireUpperBoundDeps fai
      Failed while enforcing RequireUpperBoundDeps. The error(s) are [
      Require upper bound dependencies error for org.objenesis:objenesis:2.1 paths
      +-org.jenkins-ci.main:test:2.92-SNAPSHOT
        +-org.mockito:mockito-core:1.10.19
          +-org.objenesis:objenesis:2.1
      and
      +-org.jenkins-ci.main:test:2.92-SNAPSHOT
        +-org.awaitility:awaitility:3.0.0
          +-org.objenesis:objenesis:2.5.1
      ```
      fed7f2e3
    • B
      Retry assertion for 10 seconds before failing · e50d4d71
      Baptiste Mathus 提交于
      Also reduce the time 250 ms (instead of 1 second previously) between
      retries to hopefully reduce the test duration on quick enough setups,
      and still degrade nicely on less performing ones.
      e50d4d71
    • B
      Add an if to avoid crashing on symlinks to dirs · 1396c7f7
      Baptiste Mathus 提交于
      Files.createDirectories(dir) is said to not fail if directory already
      exists.
      *But* this will still fail if `dir` is actually a symlink to a
      directory...
      This is documented in the Javadoc indeed, even if probably not really
      one would expect...
      
      See https://bugs.openjdk.java.net/browse/JDK-8130464
      
      Without this fix:
      ```
      [INFO] Running hudson.util.SecretRewriterTest
      Cycle detected: /home/tiste/dev/JENKINS/jenkins/core/target/junit7537647214741745549/t/c/symlink
      Scanning /home/tiste/dev/JENKINS/jenkins/core/target/junit7537647214741745549/t/c/foo.xml
      Rewritten /home/tiste/dev/JENKINS/jenkins/core/target/junit7537647214741745549/t/c/foo.xml
      Rewritten /home/tiste/dev/JENKINS/jenkins/core/target/junit7537647214741745549/t/c/d/foo.xml
      Rewritten /home/tiste/dev/JENKINS/jenkins/core/target/junit7537647214741745549/t/c/d/e/foo.xml
      ERROR: Failed to rewrite /home/tiste/dev/JENKINS/jenkins/core/target/junit7537647214741745549/t/a/symlink/foo.xml
      java.nio.file.FileAlreadyExistsException: /home/tiste/dev/JENKINS/jenkins/core/target/junit7537647214741745549/t/a/symlink
              at sun.nio.fs.UnixException.translateToIOException(UnixException.java:88)
              at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
              at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
              at sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:384)
              at java.nio.file.Files.createDirectory(Files.java:674)
              at java.nio.file.Files.createAndCheckIsDirectory(Files.java:781)
              at java.nio.file.Files.createDirectories(Files.java:727)
              at hudson.util.AtomicFileWriter.<init>(AtomicFileWriter.java:103)
      Caused: java.io.IOException: Failed to create a temporary file in /home/tiste/dev/JENKINS/jenkins/core/target/junit7537647214741745549/t/a/symlink
              at hudson.util.AtomicFileWriter.<init>(AtomicFileWriter.java:106)
              at hudson.util.AtomicFileWriter.<init>(AtomicFileWriter.java:73)
              at hudson.util.SecretRewriter.rewrite(SecretRewriter.java:85)
              at hudson.util.SecretRewriter.rewriteRecursive(SecretRewriter.java:166)
              at hudson.util.SecretRewriter.rewriteRecursive(SecretRewriter.java:176)
              at hudson.util.SecretRewriter.rewriteRecursive(SecretRewriter.java:176)
              at hudson.util.SecretRewriter.rewriteRecursive(SecretRewriter.java:141)
              at hudson.util.SecretRewriter$rewriteRecursive$0.call(Unknown Source)
              at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
              at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
              at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
              at hudson.util.SecretRewriterTest.recursionDetection(SecretRewriterTest.groovy:110)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:498)
              at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
              at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
              at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
              at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
              at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
              at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
              at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
              at org.junit.rules.RunRules.evaluate(RunRules.java:20)
              at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
              at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
              at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
              at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
              at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
              at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
              at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
              at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
              at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
              at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
              at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:272)
              at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:236)
              at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
              at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:386)
              at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:323)
              at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:143)
      Rewritten /home/tiste/dev/JENKINS/jenkins/core/target/junit7537647214741745549/t/a/foo.xml
      Cycle detected: /home/tiste/dev/JENKINS/jenkins/core/target/junit7537647214741745549/t/b/symlink
      Rewritten /home/tiste/dev/JENKINS/jenkins/core/target/junit7537647214741745549/t/b/foo.xml
      [ERROR] Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 1.097 s <<< FAILURE! - in hudson.util.SecretRewriterTest
      [ERROR] recursionDetection(hudson.util.SecretRewriterTest)  Time elapsed: 0.176 s  <<< FAILURE!
      Assertion failed:
      
      assert 6==sw.rewriteRecursive(t, st)
              | |  |                |  |
              | |  5                |  hudson.util.StreamTaskListener@34a2d6e0
              | |                   /home/tiste/dev/JENKINS/jenkins/core/target/junit7537647214741745549/t
              | hudson.util.SecretRewriter@2525a5b8
              false
      
              at org.codehaus.groovy.runtime.InvokerHelper.assertFailed(InvokerHelper.java:404)
              at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.assertFailed(ScriptBytecodeAdapter.java:650)
              at hudson.util.SecretRewriterTest.recursionDetection(SecretRewriterTest.groovy:110)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:498)
              at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
              at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
              at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
              at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
              at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
              at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
              at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
              at org.junit.rules.RunRules.evaluate(RunRules.java:20)
              at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
              at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
              at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
              at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
              at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
              at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
              at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
              at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
              at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
              at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
              at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:272)
              at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:236)
              at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
              at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:386)
              at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:323)
              at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:143)
      
      [INFO]
      [INFO] Results:
      [INFO]
      [ERROR] Failures:
      [ERROR]   SecretRewriterTest.recursionDetection:110 assert 6==sw.rewriteRecursive(t, st)
              | |  |                |  |
              | |  5                |  hudson.util.StreamTaskListener@34a2d6e0
              | |                   /home/tiste/dev/JENKINS/jenkins/core/target/junit7537647214741745549/t
              | hudson.util.SecretRewriter@2525a5b8
              false
      [INFO]
      [ERROR] Tests run: 2, Failures: 1, Errors: 0, Skipped: 0
      ```
      1396c7f7
  3. 21 11月, 2017 12 次提交
  4. 20 11月, 2017 6 次提交
  5. 19 11月, 2017 2 次提交
    • O
      Merge pull request #3122 from jglick/TaskListener · 5b9ad647
      Oleg Nenashev 提交于
      Implement default methods in TaskListener and BuildListener
      5b9ad647
    • O
      [JENKINS-47718] - Deprecate User#getUser(String) (#3114) · 8cb33513
      Oleg Nenashev 提交于
      * [JENKINS-47718] - Deprecate User#getUser(String)
      
      `User#getUser(String)` method causes lots of confusion for plugin developers. It implicitly creates a user if it cannot be found, and in many cases this is actually a not-expected behavior. This change deprecates the method and to creates a new `User#getOrCreate()` which is more explicit
      
      * [JENKINS-47718] - Address comments from @jglick
      8cb33513
  6. 17 11月, 2017 3 次提交
    • J
      Simplifying naming of publish stages. · 9e8c772c
      Jesse Glick 提交于
      9e8c772c
    • T
      [JENKINS-34138] Fix maven installs from stepping on each other (#3042) · d688c154
      t-hall 提交于
      * [JENKINS-34138] Adding equals/hashCode methods so that installs don't step on each other
      
      * [JENKINS-34138] Added issue reference to unit tests
      
      * [JENKINS-34138] - changed the order of equals / hashcode
      d688c154
    • D
      [JENKINS-39179] [JENKINS-36088] Always use NIO to create and detect symbolic... · 52fa4d90
      Devin Nusbaum 提交于
      [JENKINS-39179] [JENKINS-36088] Always use NIO to create and detect symbolic links and Windows junctions (#3133)
      
      * Always use NIO to detect symlinks
      
      * Make assertion failure message consistent
      
      * Catch NoSuchFileException to keep tests passing
      
      * Make method name more specific and simlify assumption
      
      * Remove obsolete comment and reword the main comment in isSymlink
      
      * Deprecate Kernel32Util#isJunctionOrSymlink
      
      * Use assumptions for junction creation and add messages to assumptions
      
      * Replace deprecated code with recommended alternative
      
      * Add comment explaining call to DosFileAttributes#isOther
      
      * Do not fall back to native code when creating symlinks
      
      * Log FileSystemExceptions when creating symbolic links
      
      * Catch InvalidPathException and rethrow as IOException
      
      * Deprecate Kernel32Utils#createSymbolicLink and #getWin32FileAttributes
      
      * Preserve original logging behavior on Windows and remove useless call to Util#displayIOException
      52fa4d90
  7. 13 11月, 2017 2 次提交
  8. 12 11月, 2017 7 次提交
  9. 11 11月, 2017 3 次提交