[ANN] Subversion Plugin 2.0 being released

79 views
Skip to first unread message

Stephen Connolly

unread,
Jan 31, 2014, 7:25:07 AM1/31/14
to jenkins...@googlegroups.com, jenkin...@googlegroups.com
At the Jenkins Code Camp the issue of releasing version 2.0 of the Subversion plugin came up.

I would have liked to hear from some users who have tried to test the 2.0-beta-1. After 3 months we have had no feedback, so:

Kevin P Flemming
Robert Sandell
Nicolas de Loof
Vincent Latombe

all voted me down and suggest that we just go and release the 2.0 version.

If there are any issues with the 2.0 credential migration I suggest taking it up with those who voted me down ;-)

-Stephen 

David Aldrich

unread,
Feb 6, 2014, 8:55:03 AM2/6/14
to jenkins...@googlegroups.com, jenkin...@googlegroups.com

Hi

 

I have just upgraded from Subversion 1.54 plugin to v.2.00.  Launching a job that does a clean checkout on a Windows slave now repeatedly fails with this exception:

Checking out <https:// my trunk> at revision '2014-02-06T13:42:30.165 +0000'

ERROR: Failed to check out <https:// my trunk>

org.tmatesoft.svn.core.SVNCancelException: svn: E200015: OPTIONS /subversion/zodiac/trunk failed

                at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:384)

                at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:373)

                at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:361)

                at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:707)

                at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:627)

 

Clean checkouts to a Linux slave work fine.

 

I guess Stephen does not want to know ;-)  I can raise a JIRA.

 

Best regards

 

David

--

Stephen Connolly

unread,
Feb 6, 2014, 9:05:27 AM2/6/14
to jenkins...@googlegroups.com, jenkin...@googlegroups.com
Did the credentials get migrated correctly?


--
You received this message because you are subscribed to the Google Groups "Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-use...@googlegroups.com.

For more options, visit https://groups.google.com/groups/opt_out.

David Aldrich

unread,
Feb 6, 2014, 9:08:25 AM2/6/14
to jenkins...@googlegroups.com

How would I check that?

 

I have just downgraded to 1.54.  Now, on the configuration page of the failing project, Jenkins is asking me for credentials:

 

https://172.29.68.12/jenkins/static/c1cdc5d7/images/none.gifUnable to access https://mytrunk : svn: E200015: OPTIONS /subversion/zodiac/trunk failed (show details)

org.tmatesoft.svn.core.SVNCancelException: svn: E200015: OPTIONS /subversion/zodiac/trunk failed
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:384)
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:373)
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:361)

 

Best regards

Click here to report this email as spam.

Stephen Connolly

unread,
Feb 6, 2014, 9:25:37 AM2/6/14
to jenkins...@googlegroups.com
If you go to the job configuration screen (when using subversion 2.0) there should be a credentials drop-down under the SVN URL. if that is empty, then likely the credentials for that specific job were not migrated. You should be able to select the credentials, or worst case add them again.
image001.png

David Aldrich

unread,
Feb 6, 2014, 10:08:02 AM2/6/14
to jenkins...@googlegroups.com

Hi Stephen

 

I upgraded to svn plugin 2.0 again. In the job configuration screen the credentials drop-down read ‘none’ as you expected.  I then selected the correct credentials from the dropdown and was taken to:

 

https://<my url>/jenkins/job/<my job>/configSubmit

 

which was a blank screen.

 

I then went to the Jenkins homepage and started the job. Now it’s checking out the working copy ok.

 

So a bit painful, but seems to be ok now.

 

Thanks for your help,

Stephen Connolly

unread,
Feb 6, 2014, 10:41:33 AM2/6/14
to jenkins...@googlegroups.com
There was always the possibility that there was some crazy state that a job could get itself into with regards to where it was sourcing its credentials from (using the pre-2.0 credentials model).

I was rather confident that I had covered all the crazy ways that the credentials could be stashed. Your experience suggests that there are some credentials that may not be being picked up.

FYI I recommend using the absolute latest versions of the credentials (1.9.4) and ssh-credentials (will probably be best to upgrade ssh-slaves too if you upgrade ssh-credentials) plugins for the best UX. 
image001.png

David Aldrich

unread,
Feb 6, 2014, 11:02:21 AM2/6/14
to jenkins...@googlegroups.com

Hi Stephen

 

Thanks, I am using the latest plugins.

 

Our Jenkins instance uses ‘user’ ‘hudsonuser’ for svn access but we have to have separate credentials for that user for linux and Windows slaves (they have different passwords).  The linux jobs got the correct credentials but the Windows jobs lost their credentials settings.  Unfortunately it means we have to go through every Windows job and reconfigure it.

Stephen Connolly

unread,
Feb 6, 2014, 11:30:23 AM2/6/14
to jenkins...@googlegroups.com
yeah I certainly was not expecting anything that esoteric ;-)
image001.png

David Aldrich

unread,
Feb 7, 2014, 6:15:14 AM2/7/14
to jenkins...@googlegroups.com

Hi Stephen

 

I still have a problem with credentials.  In the project configuration I see:

 

Unable to access <my url>/trunk : svn: E200015: OPTIONS <my repo>/trunk failed (show details)

org.tmatesoft.svn.core.SVNCancelException: svn: E200015: OPTIONS <my repo>/trunk failed
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:384)
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:373)
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:361)

 

and credentials is set to none.  I select the correct credential from the drop down list, but the above error is still displayed. I save the project and run it and it succeeds. Then I open the project configuration again, and again I see the above error and credentials is set to none.

 

Any thoughts please?

Stephen Connolly

unread,
Feb 7, 2014, 6:16:47 AM2/7/14
to jenkins...@googlegroups.com
do you have the full stack trace? (might be hidden in the show details link)
image001.png

Stephen Connolly

unread,
Feb 7, 2014, 6:17:42 AM2/7/14
to jenkins...@googlegroups.com
also can you take a peek at the job's config.xml and verify that the credential's ID is being persisted...
image001.png

Stephen Connolly

unread,
Feb 7, 2014, 6:24:00 AM2/7/14
to jenkins...@googlegroups.com
Do you have multiple locations in your checkout?
image001.png

David Aldrich

unread,
Feb 7, 2014, 6:46:19 AM2/7/14
to jenkins...@googlegroups.com

Hi Stephen

 

The checkout is a single location.

 

The credential’s ID does persist in that when I save the project configuration the change appears in the job’s config.xml.

 

Here is the entire stack trace:

 

Unable to access https:// <snip> trunk : svn: E200015: OPTIONS /subversion/<snip> failed (show details)

org.tmatesoft.svn.core.SVNCancelException: svn: E200015: OPTIONS <snip> /trunk failed
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:384)
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:373)
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:361)
        at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:707)
        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:1020)
        at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.testConnection(DAVRepository.java:99)
        at hudson.scm.SubversionSCM$DescriptorImpl.checkRepositoryPath(SubversionSCM.java:2415)
        at hudson.scm.SubversionSCM$DescriptorImpl.doCheckRemote(SubversionSCM.java:2347)
        at sun.reflect.GeneratedMethodAccessor525.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:298)
        at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:161)
        at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:96)
        at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:120)
        at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
        at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
        at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248)
        at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
        at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
        at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248)
        at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
        at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)

Stephen Connolly

unread,
Feb 7, 2014, 7:00:39 AM2/7/14
to jenkins...@googlegroups.com
OK, could you please try this -SNAPSHOT build: https://www.dropbox.com/s/ffgfghsej1ejptk/subversion.hpi and see if that corrects the problem.

I think there is an incorrect restriction on domain requirements when looking up the credentials to use when applying form validation
image001.png

David Aldrich

unread,
Feb 7, 2014, 7:34:57 AM2/7/14
to jenkins...@googlegroups.com

Hi Stephen

 

Thanks. I’m afraid I don’t know much about Jenkins infrastructure.  What should I do with the subversion.hpi file?

David Aldrich

unread,
Feb 7, 2014, 7:48:15 AM2/7/14
to jenkins...@googlegroups.com

Ok, I copied the dropbox file to:

 

/var/lib/jenkins/war/WEB-INF/plugins/

 

and restarted Jenkins.

 

But I still see an error on the project config page, even though a credential is selected:

 

Unable to access https://<>/trunk : svn: E200015: OPTIONS <>/trunk failed (show details)

org.tmatesoft.svn.core.SVNCancelException: svn: E200015: OPTIONS <>/trunk failed
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:631)
        at org.kohsuke.stapler.Stapler.service(Stapler.java:225)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1494)
        at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96)
        at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
        at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
        at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:64)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
        at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
        at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
        at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:46)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
        at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
        at org.eclipse.jetty.server.Server.handle(Server.java:370)
        at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
        at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:949)
        at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1011)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
        at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
        at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: org.tmatesoft.svn.core.SVNCancelException: svn: E200015: No credential to try. Authentication failed
        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:223)
        at hudson.scm.FilterSVNAuthenticationManager.getNextAuthentication(FilterSVNAuthenticationManager.java:39)
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:697)
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:382)

david....@barclays.com

unread,
Feb 7, 2014, 7:51:44 AM2/7/14
to jenkins...@googlegroups.com

Using the web UI

 

Manage Jenkins > Manage Plugins >  ADVANCED (TAB)

 

Upload Plugin

 

Choose File (select the hpi file from your local HDD)

 

Upload

Restart Jenkins (https://cib<your Jenkins url>/Jenkins/restart

 

 

dD


This e-mail and any attachments are confidential and intended solely for the addressee and may also be privileged or exempt from disclosure under applicable law. If you are not the addressee, or have received this e-mail in error, please notify the sender immediately, delete it from your system and do not copy, disclose or otherwise act upon any part of this e-mail or its attachments.

Internet communications are not guaranteed to be secure or virus-free.
The Barclays Group does not accept responsibility for any loss arising from unauthorised access to, or interference with, any Internet communications by any third party, or from the transmission of any viruses. Replies to this e-mail may be monitored by the Barclays Group for operational or business reasons.

Any opinion or other information in this e-mail or its attachments that does not relate to the business of the Barclays Group is personal to the sender and is not given or endorsed by the Barclays Group.

Barclays Bank PLC.Registered in England and Wales (registered no. 1026167).
Registered Office: 1 Churchill Place, London, E14 5HP, United Kingdom.

Barclays Bank PLC is authorised by the Prudential Regulation Authority and regulated by the Financial Conduct Authority and the Prudential Regulation Authority (Financial Services Register No. 122702).

David Aldrich

unread,
Feb 7, 2014, 7:58:58 AM2/7/14
to jenkins...@googlegroups.com

Thanks for the instructions. I have now done that to make sure I uploaded the .hpi file correctly.

 

I still see the exception trace in the project config window.

 

David

david....@barclays.com

unread,
Feb 7, 2014, 8:07:13 AM2/7/14
to jenkins...@googlegroups.com

Ok, I didn’t read through the entire thread, so only answered the question about the plugin installation

 

I’m not sure if this might help, as the error message appears to be consistent with what you’re getting

 

http://stackoverflow.com/questions/11130201/troubles-with-jenkins-svn-externals-auth-error

David Aldrich

unread,
Feb 7, 2014, 8:09:47 AM2/7/14
to jenkins...@googlegroups.com

Thanks, but we have no externals in our project.

Stephen Connolly

unread,
Feb 11, 2014, 6:19:52 AM2/11/14
to jenkins...@googlegroups.com
I had a call with David and I believe that he has resolved his issue. I will let David respond to confirm

David Aldrich

unread,
Feb 11, 2014, 6:33:43 AM2/11/14
to jenkins...@googlegroups.com

Yes, my problem is now fixed.  Seems that I had confused svn credentials with ssh slave credentials.  My (incorrect) configurations happened to work with the 1.x Subversion plugin but not with the 2.0 plugin.

 

Thanks Stephen, for your help in resolving this.

Reply all
Reply to author
Forward
0 new messages