Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-27977

NullPointer & authentication cancelled occure immediately on SVN checkout

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Blocker
    • Resolution: Cannot Reproduce
    • Component/s: subversion-plugin
    • Labels:
      None
    • Environment:
      Linux + LDAP (Microsoft Server) + SvnKit
    • Similar Issues:

      Description

      The NullPointerException below sometimes occures when Jenkins starts an SVN checkout (at the beginning of the job), only with secured HTTP (HTTPS).

      Can you please catch this exception and log a message with the root cause ?

      It is a blocker for us to use SVN over HTTPS.

      We use last versions of every components:
      Jenkins 1.608
      Subversion Plug-in : 2.5

      23:00:46 Started by upstream project "Build Pipeline Job" build number 193
      23:00:46 originally caused by:
      23:00:46 Started by timer
      23:00:46 [EnvInject] - Loading node environment variables.
      23:00:46 Building remotely on linux-slave1 in workspace /home/app_jenkins/slave1/workspace/XXX Nightly Trunk
      23:00:47 Checking out a fresh workspace because there's no workspace at /home/app_jenkins/slave1/workspace/XXX Nightly Trunk
      23:00:47 Cleaning local Directory .
      23:00:47 Checking out https://svn.company.com/products/xxx/trunk at revision '2015-04-15T23:00:46.930 +0200'
      23:00:47 ERROR: Failed to check out https://svn.company.com/products/xxx/trunk
      23:00:47 org.tmatesoft.svn.core.SVNCancelException: svn: E200015: authentication cancelled
      23:00:47 at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:37)
      23:00:47 at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:32)
      23:00:47 at org.tmatesoft.svn.core.internal.wc.DefaultSVNAuthenticationManager.getNextAuthentication(DefaultSVNAuthenticationManager.java:215)
      23:00:47 at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:685)
      23:00:47 at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:371)
      23:00:47 at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:359)
      23:00:47 at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:710)
      23:00:47 at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:627)
      23:00:47 at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:102)
      23:00:47 at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1032)
      23:00:47 at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.getLatestRevision(DAVRepository.java:175)
      23:00:47 at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.getRevisionNumber(SvnNgRepositoryAccess.java:118)
      23:00:47 at org.tmatesoft.svn.core.internal.wc2.SvnRepositoryAccess.getLocations(SvnRepositoryAccess.java:184)
      23:00:47 at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.createRepositoryFor(SvnNgRepositoryAccess.java:45)
      23:00:47 at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.checkout(SvnNgAbstractUpdate.java:756)
      23:00:47 at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCheckout.run(SvnNgCheckout.java:26)
      23:00:47 at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCheckout.run(SvnNgCheckout.java:11)
      23:00:47 at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgOperationRunner.run(SvnNgOperationRunner.java:20)
      23:00:47 at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:21)
      23:00:47 at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1259)
      23:00:47 at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294)
      23:00:47 at hudson.scm.subversion.CheckoutUpdater$1.perform(CheckoutUpdater.java:115)
      23:00:47 at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:162)
      23:00:47 at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:170)
      23:00:47 at hudson.scm.subversion.UpdateUpdater$TaskImpl.perform(UpdateUpdater.java:133)
      23:00:47 at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:162)
      23:00:47 at hudson.scm.SubversionSCM$CheckOutTask.perform(SubversionSCM.java:991)
      23:00:47 at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:972)
      23:00:47 at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:948)
      23:00:47 at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2688)
      23:00:47 at hudson.remoting.UserRequest.perform(UserRequest.java:118)
      23:00:47 at hudson.remoting.UserRequest.perform(UserRequest.java:48)
      23:00:47 at hudson.remoting.Request$2.run(Request.java:328)
      23:00:47 at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
      23:00:47 at java.util.concurrent.FutureTask.run(FutureTask.java:262)
      23:00:47 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      23:00:47 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      23:00:47 at java.lang.Thread.run(Thread.java:744)
      23:00:47 FATAL: null
      23:00:47 java.lang.NullPointerException
      23:00:47 at java.util.ArrayList.addAll(ArrayList.java:559)
      23:00:47 at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:897)
      23:00:47 at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:833)
      23:00:47 at hudson.scm.SCM.checkout(SCM.java:484)
      23:00:47 at hudson.model.AbstractProject.checkout(AbstractProject.java:1270)
      23:00:47 at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:609)
      23:00:47 at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
      23:00:47 at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:531)
      23:00:47 at hudson.model.Run.execute(Run.java:1741)
      23:00:47 at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:531)
      23:00:47 at hudson.model.ResourceController.execute(ResourceController.java:98)
      23:00:47 at hudson.model.Executor.run(Executor.java:374)

        Attachments

          Issue Links

            Activity

            Hide
            fleuryro Romuald Fleury added a comment - - edited

            I do not find any documentation about SVNKit java properties (such as svnkit.http.methods), do you have any link ?

            Show
            fleuryro Romuald Fleury added a comment - - edited I do not find any documentation about SVNKit java properties (such as svnkit.http.methods), do you have any link ?
            Hide
            danielbeck Daniel Beck added a comment -

            The NullPointerException below sometimes occures when Jenkins starts an SVN checkout (at the beginning of the job), only with secured HTTP (HTTPS).

            It is a blocker for us to use SVN over HTTPS.

            Which of these two is it?


            Looks like you did not specify credentials on the job config, or invalid credentials. I'd try to fix those. Possibly, if externals are involved, you need to specify Additional Credentials.

            Show
            danielbeck Daniel Beck added a comment - The NullPointerException below sometimes occures when Jenkins starts an SVN checkout (at the beginning of the job), only with secured HTTP (HTTPS). It is a blocker for us to use SVN over HTTPS. Which of these two is it? Looks like you did not specify credentials on the job config, or invalid credentials. I'd try to fix those. Possibly, if externals are involved, you need to specify Additional Credentials.
            Hide
            fleuryro Romuald Fleury added a comment -

            Hello Daniel,
            It is the same It is a blocker because we cannot use HTTPS (and disable HTTP) if Jenkins does not work properly (always) in HTTPS.

            I agree with your first suggestion because "sometimes" the credentials that we set in the job configuration just .. disappear.
            For example, we try to start the job several times, then we go in the job config: the credential setting switched from the correct one to "none".
            By external, you mean svn externals, right ? if it is the case, fyi we do no use svn externals at all.

            Show
            fleuryro Romuald Fleury added a comment - Hello Daniel, It is the same It is a blocker because we cannot use HTTPS (and disable HTTP) if Jenkins does not work properly (always) in HTTPS. I agree with your first suggestion because "sometimes" the credentials that we set in the job configuration just .. disappear. For example, we try to start the job several times, then we go in the job config: the credential setting switched from the correct one to "none". By external, you mean svn externals, right ? if it is the case, fyi we do no use svn externals at all.
            Hide
            danielbeck Daniel Beck added a comment -

            It is a blocker because we cannot use HTTPS (and disable HTTP) if Jenkins does not work properly (always) in HTTPS.

            Makes sense. The second quote looked like the exact opposite to me.

            I agree with your first suggestion because "sometimes" the credentials that we set in the job configuration just .. disappear.

            They should not. While it takes a moment for them to load the proper name, they should exist out of the box. Do you have Job Config History installed to track config changes?

            By external, you mean svn externals, right ? if it is the case, fyi we do no use svn externals at all.

            Yes. Well, one source of problems gone.


            To clarify, AFAICT the error message basically occurs if Subversion asks for authentication and none/no valid one is provided by Jenkins. So I'd try to investigate why that config issue happens.

            Show
            danielbeck Daniel Beck added a comment - It is a blocker because we cannot use HTTPS (and disable HTTP) if Jenkins does not work properly (always) in HTTPS. Makes sense. The second quote looked like the exact opposite to me. I agree with your first suggestion because "sometimes" the credentials that we set in the job configuration just .. disappear. They should not. While it takes a moment for them to load the proper name, they should exist out of the box. Do you have Job Config History installed to track config changes? By external, you mean svn externals, right ? if it is the case, fyi we do no use svn externals at all. Yes. Well, one source of problems gone. To clarify, AFAICT the error message basically occurs if Subversion asks for authentication and none/no valid one is provided by Jenkins. So I'd try to investigate why that config issue happens.
            Hide
            fleuryro Romuald Fleury added a comment -

            Hello,
            Could we expect a better handling of the situation at least ?
            (A fix of the NullPointer, that should never be thrown in production ?)

            Show
            fleuryro Romuald Fleury added a comment - Hello, Could we expect a better handling of the situation at least ? (A fix of the NullPointer, that should never be thrown in production ?)
            Hide
            fleuryro Romuald Fleury added a comment -

            Up ! it is a big problem for us to not be able to use HTTPS with Jenkins :s

            Show
            fleuryro Romuald Fleury added a comment - Up ! it is a big problem for us to not be able to use HTTPS with Jenkins :s
            Hide
            recena Manuel Recena Soto added a comment -

            Romuald Fleury I've started to work on it. The first step will be to reproduce the bug.

            Show
            recena Manuel Recena Soto added a comment - Romuald Fleury I've started to work on it. The first step will be to reproduce the bug.
            Hide
            recena Manuel Recena Soto added a comment -

            Romuald Fleury I could not reproduce the bug.

            Steps
            1. Add a slave node (I saw you was using a slave node on Linux)
            2. Add Maven project
            3. Configure this project to run on this slave
            4. Configure a Subversion repository (I used Assembla in order to get a SVN repo over HTTPS)
            5. Configure a credentials
            6. Configure a Build Trigger to build periodically
            7. Configure a Build: maven clean package
            Environment:
            1. Jenkins 1.568 (baseline defined on Subversion Plugin 2.5.1)
            2. Subversion Plugin 2.5.1
            3. Credentials Plugin 1.10

            Could you provide a step by step process to reproduce the bug?

            Show
            recena Manuel Recena Soto added a comment - Romuald Fleury I could not reproduce the bug. Steps Add a slave node (I saw you was using a slave node on Linux) Add Maven project Configure this project to run on this slave Configure a Subversion repository (I used Assembla in order to get a SVN repo over HTTPS) Configure a credentials Configure a Build Trigger to build periodically Configure a Build: maven clean package Environment: Jenkins 1.568 (baseline defined on Subversion Plugin 2.5.1) Subversion Plugin 2.5.1 Credentials Plugin 1.10 Could you provide a step by step process to reproduce the bug?
            Hide
            fleuryro Romuald Fleury added a comment -

            Hello,
            It is a complex bug in my opinion, due to our exact setup.
            You should use Apache as HTTPS frontal, and use Windows AD as auth server...
            It should be possible anyway to detect how this nullpointer can occur by just running a code analysis (based on the call stack) ?

            Show
            fleuryro Romuald Fleury added a comment - Hello, It is a complex bug in my opinion, due to our exact setup. You should use Apache as HTTPS frontal, and use Windows AD as auth server... It should be possible anyway to detect how this nullpointer can occur by just running a code analysis (based on the call stack) ?
            Hide
            recena Manuel Recena Soto added a comment -

            Romuald Fleury, I'm sorry but I believe I can not help you.

            We are working to improve the source code quality using Findbugs:

            1. JENKINS-29492 Fix several findbugs issues
            2. PR-124 Fix findbugs null pointer dereferences

            I can not work on this issue if I don't have a step by step process to reproduce the bug.

            Show
            recena Manuel Recena Soto added a comment - Romuald Fleury , I'm sorry but I believe I can not help you. We are working to improve the source code quality using Findbugs: JENKINS-29492 Fix several findbugs issues PR-124 Fix findbugs null pointer dereferences I can not work on this issue if I don't have a step by step process to reproduce the bug.
            Hide
            fleuryro Romuald Fleury added a comment -

            Hello Manuel,

            Couldn't you simply improve this part of the call stack ?:

            23:00:47 java.lang.NullPointerException
            23:00:47 at java.util.ArrayList.addAll(ArrayList.java:559)
            23:00:47 at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:897)
            23:00:47 at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:833)
            23:00:47 at hudson.scm.SCM.checkout(SCM.java:484)

            The checkout method is trying to add null object in a list : By protecting this code (the null comes from somewhere) you would give a correct level of information, instead of a useless NPE ?

            Show
            fleuryro Romuald Fleury added a comment - Hello Manuel, Couldn't you simply improve this part of the call stack ?: 23:00:47 java.lang.NullPointerException 23:00:47 at java.util.ArrayList.addAll(ArrayList.java:559) 23:00:47 at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:897) 23:00:47 at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:833) 23:00:47 at hudson.scm.SCM.checkout(SCM.java:484) The checkout method is trying to add null object in a list : By protecting this code (the null comes from somewhere) you would give a correct level of information, instead of a useless NPE ?
            Hide
            recena Manuel Recena Soto added a comment -

            Romuald Fleury, I prefer to reproduce the bug before doing any source code modifications.

            Show
            recena Manuel Recena Soto added a comment - Romuald Fleury , I prefer to reproduce the bug before doing any source code modifications.
            Hide
            fleuryro Romuald Fleury added a comment -

            So lets start the exact how to reproduce:

            0 - Configure your Jenkins with AD authentication (against a Windows Server)
            1 - Add a slave node (I saw you was using a slave node on Linux)
            2 - Add a Java Maven project
            3 - Configure this project to run on this slave
            4 - Configure an Apache HTTPS VHost to serve the SVN content using HTTPS
            5 - Configure the VHost to authenticate using the AD Authentication
            6 - Configure a Subversion repository or use an existing one
            7 - Use the maven release plugin to release the java maven project (release using an account on the AD directory)

            Previous step will lead to the deactivation of the AD account

            9 - Try to release again

            => Jenkins *throws a *Null Pointer Exception

            Show
            fleuryro Romuald Fleury added a comment - So lets start the exact how to reproduce: 0 - Configure your Jenkins with AD authentication (against a Windows Server) 1 - Add a slave node (I saw you was using a slave node on Linux) 2 - Add a Java Maven project 3 - Configure this project to run on this slave 4 - Configure an Apache HTTPS VHost to serve the SVN content using HTTPS 5 - Configure the VHost to authenticate using the AD Authentication 6 - Configure a Subversion repository or use an existing one 7 - Use the maven release plugin to release the java maven project (release using an account on the AD directory) Previous step will lead to the deactivation of the AD account 9 - Try to release again => Jenkins *throws a *Null Pointer Exception
            Hide
            recena Manuel Recena Soto added a comment -

            Romuald Fleury, the points 0 and 7 don't make sense here.

            In my environment I tried Subversion Plugin with a Subversion Server over HTTPS and works fine. Are you using Externals Definitions?

            In Subversion Plugin 2.5.1 this bug JENKINS-27084 was solved.

            Show
            recena Manuel Recena Soto added a comment - Romuald Fleury , the points 0 and 7 don't make sense here. In my environment I tried Subversion Plugin with a Subversion Server over HTTPS and works fine. Are you using Externals Definitions? In Subversion Plugin 2.5.1 this bug JENKINS-27084 was solved.
            Hide
            danielbeck Daniel Beck added a comment -

            Can't this be boiled down to "NPE when entering invalid credentials"?

            Show
            danielbeck Daniel Beck added a comment - Can't this be boiled down to "NPE when entering invalid credentials"?
            Hide
            recena Manuel Recena Soto added a comment -

            Daniel Beck, I can try it.

            Show
            recena Manuel Recena Soto added a comment - Daniel Beck , I can try it.
            Hide
            recena Manuel Recena Soto added a comment -

            I tried to reproduce this bug without successful. I would like to help here but I need more information or an environment to try.

            Show
            recena Manuel Recena Soto added a comment - I tried to reproduce this bug without successful. I would like to help here but I need more information or an environment to try.
            Hide
            recena Manuel Recena Soto added a comment -

            Romuald Fleury, If you agree, I'd like to close this ticket. I could not reproduce this bug and I have not received more feedback.

            Show
            recena Manuel Recena Soto added a comment - Romuald Fleury , If you agree, I'd like to close this ticket. I could not reproduce this bug and I have not received more feedback.
            Hide
            hdering Hermann Dering added a comment - - edited

            Manuel Recena Soto we have the same problem. We could try some tests.

            Jenkins 1.532.1
            Subversion Plugin 2.5.3

            We have one svn server (https, local users) which has externals to an other svn server (https, AD user).

            org.tmatesoft.svn.core.SVNCancelException: svn: E200015: authentication cancelled
            at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:37)
            at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:32)
            at org.tmatesoft.svn.core.internal.wc.DefaultSVNAuthenticationManager.getNextAuthentication(DefaultSVNAuthenticationManager.java:215)
            at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:685)
            at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:371)
            at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:359)
            at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:710)
            at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:627)
            at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:102)
            at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1032)
            at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.getLatestRevision(DAVRepository.java:175)
            at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.getRevisionNumber(SvnNgRepositoryAccess.java:118)
            at org.tmatesoft.svn.core.internal.wc2.SvnRepositoryAccess.getLocations(SvnRepositoryAccess.java:184)
            at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.createRepositoryFor(SvnNgRepositoryAccess.java:45)
            at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.handleExternalItemChange(SvnNgAbstractUpdate.java:347)
            at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.handleExternalsChange(SvnNgAbstractUpdate.java:310)
            at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.handleExternals(SvnNgAbstractUpdate.java:246)
            at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.updateInternal(SvnNgAbstractUpdate.java:224)
            at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.update(SvnNgAbstractUpdate.java:72)
            at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.checkout(SvnNgAbstractUpdate.java:802)
            at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCheckout.run(SvnNgCheckout.java:26)
            at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCheckout.run(SvnNgCheckout.java:11)
            at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgOperationRunner.run(SvnNgOperationRunner.java:20)
            at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:21)
            at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1259)
            at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294)
            at hudson.scm.subversion.CheckoutUpdater$1.perform(CheckoutUpdater.java:121)
            at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:162)
            at hudson.scm.SubversionSCM$CheckOutTask.perform(SubversionSCM.java:992)
            at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:973)
            at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:949)
            at hudson.FilePath.act(FilePath.java:991)
            at hudson.FilePath.act(FilePath.java:969)
            at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:898)
            at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:834)
            at hudson.scm.SCM.checkout(SCM.java:485)
            at hudson.model.AbstractProject.checkout(AbstractProject.java:1277)
            at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:610)
            at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
            at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:532)
            at hudson.model.Run.execute(Run.java:1741)
            at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
            at hudson.model.ResourceController.execute(ResourceController.java:98)
            at hudson.model.Executor.run(Executor.java:408)

            ncTestBase.cs
            A Common\TestUtil\TempRemoveDirectory.cs
            A Common\TestUtil\TestUtil.csproj
            AU Common\TestUtil\InsidersPublicPrivateKeyFile.snk
            A Common\TestUtil\TestBase.cs
            U Common\TestUtil
            At revision 582
            FATAL: null
            java.lang.NullPointerException
            at java.util.ArrayList.addAll(Unknown Source)
            at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:898)
            at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:834)
            at hudson.scm.SCM.checkout(SCM.java:485)
            at hudson.model.AbstractProject.checkout(AbstractProject.java:1277)
            at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:610)
            at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
            at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:532)
            at hudson.model.Run.execute(Run.java:1741)
            at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
            at hudson.model.ResourceController.execute(ResourceController.java:98)
            at hudson.model.Executor.run(Executor.java:408)

            Show
            hdering Hermann Dering added a comment - - edited Manuel Recena Soto we have the same problem. We could try some tests. Jenkins 1.532.1 Subversion Plugin 2.5.3 We have one svn server (https, local users) which has externals to an other svn server (https, AD user). org.tmatesoft.svn.core.SVNCancelException: svn: E200015: authentication cancelled at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:37) at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:32) at org.tmatesoft.svn.core.internal.wc.DefaultSVNAuthenticationManager.getNextAuthentication(DefaultSVNAuthenticationManager.java:215) at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:685) at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:371) at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:359) at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:710) at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:627) at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:102) at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1032) at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.getLatestRevision(DAVRepository.java:175) at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.getRevisionNumber(SvnNgRepositoryAccess.java:118) at org.tmatesoft.svn.core.internal.wc2.SvnRepositoryAccess.getLocations(SvnRepositoryAccess.java:184) at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.createRepositoryFor(SvnNgRepositoryAccess.java:45) at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.handleExternalItemChange(SvnNgAbstractUpdate.java:347) at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.handleExternalsChange(SvnNgAbstractUpdate.java:310) at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.handleExternals(SvnNgAbstractUpdate.java:246) at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.updateInternal(SvnNgAbstractUpdate.java:224) at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.update(SvnNgAbstractUpdate.java:72) at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.checkout(SvnNgAbstractUpdate.java:802) at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCheckout.run(SvnNgCheckout.java:26) at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCheckout.run(SvnNgCheckout.java:11) at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgOperationRunner.run(SvnNgOperationRunner.java:20) at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:21) at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1259) at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294) at hudson.scm.subversion.CheckoutUpdater$1.perform(CheckoutUpdater.java:121) at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:162) at hudson.scm.SubversionSCM$CheckOutTask.perform(SubversionSCM.java:992) at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:973) at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:949) at hudson.FilePath.act(FilePath.java:991) at hudson.FilePath.act(FilePath.java:969) at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:898) at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:834) at hudson.scm.SCM.checkout(SCM.java:485) at hudson.model.AbstractProject.checkout(AbstractProject.java:1277) at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:610) at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:532) at hudson.model.Run.execute(Run.java:1741) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:98) at hudson.model.Executor.run(Executor.java:408) ncTestBase.cs A Common\TestUtil\TempRemoveDirectory.cs A Common\TestUtil\TestUtil.csproj AU Common\TestUtil\InsidersPublicPrivateKeyFile.snk A Common\TestUtil\TestBase.cs U Common\TestUtil At revision 582 FATAL: null java.lang.NullPointerException at java.util.ArrayList.addAll(Unknown Source) at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:898) at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:834) at hudson.scm.SCM.checkout(SCM.java:485) at hudson.model.AbstractProject.checkout(AbstractProject.java:1277) at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:610) at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:532) at hudson.model.Run.execute(Run.java:1741) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:98) at hudson.model.Executor.run(Executor.java:408)
            Hide
            fleuryro Romuald Fleury added a comment -

            We do not use SVN Externals on our side.

            Romuald

            Show
            fleuryro Romuald Fleury added a comment - We do not use SVN Externals on our side. Romuald
            Hide
            nyoung02 nyoung02 added a comment -

            In case it helps, I'd like to add - I'm getting what looks to be the same error, only on an intermittent basis. - I'm using more or less latest everything (jenkins 1.631, svn plugin (2.5.3) with active directory authentication (1.41), no https involved. I'm pretty sure it's not a configuration issue because it generally work ok, but around one in four builds fail at checkout time while traversing externals - I occasionally get an additional revision check failed error too.

            Additionally, I've got more than one subversion on the machines (and more than one slave agent) I've tried the steps to clear the subversion cache as documented on the svn plugin page.

            To be clear, the behaviour I'm seeing is intermittent, and it tends to fail in groups - I have a number of jobs that have an svn monitor on one source stream - when one fails others also fail at the same time. I've also seen svn polling fail because of the same error - this tends to be fatal when it does occur and stops further polling to take place.

            Thus far, I've been unable to track it down further. I'll keep trying.

            Show
            nyoung02 nyoung02 added a comment - In case it helps, I'd like to add - I'm getting what looks to be the same error, only on an intermittent basis. - I'm using more or less latest everything (jenkins 1.631, svn plugin (2.5.3) with active directory authentication (1.41), no https involved. I'm pretty sure it's not a configuration issue because it generally work ok, but around one in four builds fail at checkout time while traversing externals - I occasionally get an additional revision check failed error too. Additionally, I've got more than one subversion on the machines (and more than one slave agent) I've tried the steps to clear the subversion cache as documented on the svn plugin page. To be clear, the behaviour I'm seeing is intermittent, and it tends to fail in groups - I have a number of jobs that have an svn monitor on one source stream - when one fails others also fail at the same time. I've also seen svn polling fail because of the same error - this tends to be fatal when it does occur and stops further polling to take place. Thus far, I've been unable to track it down further. I'll keep trying.
            Hide
            hdering Hermann Dering added a comment -

            Manuel Recena Soto I could observe:
            the checkout starts in the main repository. there comes a external (checkout also works). then it goes back to the main repo and then it fails.

            Show
            hdering Hermann Dering added a comment - Manuel Recena Soto I could observe: the checkout starts in the main repository. there comes a external (checkout also works). then it goes back to the main repo and then it fails.
            Hide
            peacemoon An Tran added a comment -

            We could observe this bug too. We have svn externals in our repository.

            Show
            peacemoon An Tran added a comment - We could observe this bug too. We have svn externals in our repository.
            Hide
            recena Manuel Recena Soto added a comment -

            An Tran, I would need a step by step process to produce the bug. As I said few comments before, I could not to reproduce the bug.

            Show
            recena Manuel Recena Soto added a comment - An Tran , I would need a step by step process to produce the bug. As I said few comments before, I could not to reproduce the bug.
            Hide
            peacemoon An Tran added a comment -

            Manuel Recena Soto I wish I can post our settings here. But it's a complex master slave setup inside an enterprise network.
            One thing I can say that we didn't have this issue before we use the "SVN External" feature. After add that we start facing this error sporadically.

            I found some other tickets about this issue here:

            I tried everything from those tickets but couldn't make the error disappeared.

            Show
            peacemoon An Tran added a comment - Manuel Recena Soto I wish I can post our settings here. But it's a complex master slave setup inside an enterprise network. One thing I can say that we didn't have this issue before we use the "SVN External" feature. After add that we start facing this error sporadically. I found some other tickets about this issue here: Subversion fails to update externals once after external is changed. : https://issues.jenkins-ci.org/browse/JENKINS-25070 E200015: ISVNAuthentication provider did not provide credentials : https://issues.jenkins-ci.org/browse/JENKINS-29340 / Check for changes in folders linked via svn:externals fails due to missing credentials: https://issues.jenkins-ci.org/browse/JENKINS-21785 NullPointer & authentication cancelled occure immediately on SVN checkout: https://issues.jenkins-ci.org/browse/JENKINS-27977 I tried everything from those tickets but couldn't make the error disappeared.
            Hide
            recena Manuel Recena Soto added a comment -

            An Tran, I'll try it again but the most important thing is to produce the bug. I'm not sure if AD is involved here.

            Show
            recena Manuel Recena Soto added a comment - An Tran , I'll try it again but the most important thing is to produce the bug. I'm not sure if AD is involved here.
            Hide
            recena Manuel Recena Soto added a comment -

            An Tran, By the way, this ticket JENKINS-29340 is completely different and is solved.

            Show
            recena Manuel Recena Soto added a comment - An Tran , By the way, this ticket JENKINS-29340 is completely different and is solved.
            Hide
            timstyles Tim Styles added a comment - - edited

            I see this error when I use the SVN plugin (2.5.7) to checkout a repository with externals. The external repositories are on the same SVN server and require the same credentials.
            We are using a Debian (Jessie) box with Apache and the dav_svn module (http, not https). All software is up to date from stable. Authentication is using OpenLDAP and user jenkins has an account. I can successfully run 'svn update' as jenkins in the same directory, so the issue only occurs with the SVN plugin.

            The workaround I am using is to check 'Ignore externals' in the subversion section of the job configuration and then add an initial 'Execute shell' build step to run 'svn update'. This successfully completes the partial SVN update done by the SVN plugin.

            When the SVN plugin tries to update externals I see the following output:
            Updating http://metis/svn/xxx-software at revision '2016-01-09T21:31:33.950 +0000'
            org.tmatesoft.svn.core.SVNCancelException: svn: E200015: authentication cancelled
            at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:37)
            <snip>
            at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgUpdate.run(SvnNgUpdate.java:38)
            <snip>
            at hudson.scm.subversion.UpdateUpdater$TaskImpl.perform(UpdateUpdater.java:158)
            <snip>
            ERROR: Failed to check out http://metis/svn/xxx-software

            (Full log at http://pastebin.com/EzttmrHm)

            Show
            timstyles Tim Styles added a comment - - edited I see this error when I use the SVN plugin (2.5.7) to checkout a repository with externals. The external repositories are on the same SVN server and require the same credentials. We are using a Debian (Jessie) box with Apache and the dav_svn module (http, not https). All software is up to date from stable. Authentication is using OpenLDAP and user jenkins has an account. I can successfully run 'svn update' as jenkins in the same directory, so the issue only occurs with the SVN plugin. The workaround I am using is to check 'Ignore externals' in the subversion section of the job configuration and then add an initial 'Execute shell' build step to run 'svn update'. This successfully completes the partial SVN update done by the SVN plugin. When the SVN plugin tries to update externals I see the following output: Updating http://metis/svn/xxx-software at revision '2016-01-09T21:31:33.950 +0000' org.tmatesoft.svn.core.SVNCancelException: svn: E200015: authentication cancelled at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:37) <snip> at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgUpdate.run(SvnNgUpdate.java:38) <snip> at hudson.scm.subversion.UpdateUpdater$TaskImpl.perform(UpdateUpdater.java:158) <snip> ERROR: Failed to check out http://metis/svn/xxx-software (Full log at http://pastebin.com/EzttmrHm )
            Hide
            recena Manuel Recena Soto added a comment -

            Tim Styles, Please, file a new issue with your environment and configuration.

            Show
            recena Manuel Recena Soto added a comment - Tim Styles , Please, file a new issue with your environment and configuration.

              People

              • Assignee:
                recena Manuel Recena Soto
                Reporter:
                fleuryro Romuald Fleury
              • Votes:
                1 Vote for this issue
                Watchers:
                9 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: