2012-09-21 1 views
14

Rozpocząłem projekt, w którym muszę użyć zewnętrznego svn (jestem pod proxy). Kiedy mogę umieścić adres URL w projekcie konfiguracji Jenkins nie może uzyskać dostępu do repozytorium, więc wpisałem poświadczeń (URL repozytorium, nazwa użytkownika i hasło), ale tu jest błąd:Błąd uwierzytelniania z SVN w Jenkins

FAILED: svn: E175002: OPTIONS /.../trunk/www failed 

org.tmatesoft.svn.core.SVNException: svn: E175002: OPTIONS /.../trunk/www failed 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:304) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:289) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:277) 
     at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:696) 
     at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:619) 
     at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:103) 
     at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1018) 
     at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.testConnection(DAVRepository.java:99) 
     at hudson.scm.SubversionSCM$DescriptorImpl.postCredential(SubversionSCM.java:1968) 
     at hudson.scm.SubversionSCM$DescriptorImpl.doPostCredential(SubversionSCM.java:1913) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.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:288) 
     at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:151) 
     at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:90) 
     at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:111) 
     at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) 
     at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574) 
     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659) 
     at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241) 
     at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) 
     at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574) 
     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659) 
     at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241) 
     at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) 
     at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574) 
     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659) 
     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:488) 
     at org.kohsuke.stapler.Stapler.service(Stapler.java:162) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:45) 
     at winstone.ServletConfiguration.execute(ServletConfiguration.java:248) 
     at winstone.RequestDispatcher.forward(RequestDispatcher.java:333) 
     at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:376) 
     at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95) 
     at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87) 
     at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) 
     at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) 
     at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47) 
     at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) 
     at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) 
     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 org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166) 
     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:173) 
     at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
     at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:63) 
     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:66) 
     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 winstone.FilterConfiguration.execute(FilterConfiguration.java:194) 
     at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) 
     at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:50) 
     at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) 
     at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) 
     at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81) 
     at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) 
     at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) 
     at winstone.RequestDispatcher.forward(RequestDispatcher.java:331) 
     at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:215) 
     at winstone.RequestHandlerThread.run(RequestHandlerThread.java:138) 
     at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) 
     at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
     at java.util.concurrent.FutureTask.run(Unknown Source) 
     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: svn: E175002: OPTIONS /.../trunk/www failed 
     at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:208) 
     at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:154) 
     at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:97) 
     ... 80 more 
Caused by: org.tmatesoft.svn.core.SVNException: svn: E175002: OPTIONS request failed on '/.../trunk/www' 
svn: E175002: connection refused by the server 
     at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:64) 
     at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:51) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:681) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:298) 
     ... 79 more 
Caused by: svn: E175002: OPTIONS request failed on '/.../trunk/www' 
     at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:208) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:679) 
     ... 80 more 
Caused by: svn: E175002: connection refused by the server 
     at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:208) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:424) 
     ... 80 more 
Caused by: java.net.ConnectException: Connection timed out: connect 
     at java.net.PlainSocketImpl.socketConnect(Native Method) 
     at java.net.PlainSocketImpl.doConnect(Unknown Source) 
     at java.net.PlainSocketImpl.connectToAddress(Unknown Source) 
     at java.net.PlainSocketImpl.connect(Unknown Source) 
     at java.net.SocksSocketImpl.connect(Unknown Source) 
     at java.net.Socket.connect(Unknown Source) 
     at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(Unknown Source) 
     at org.tmatesoft.svn.core.internal.util.SVNSocketFactory.connect(SVNSocketFactory.java:112) 
     at org.tmatesoft.svn.core.internal.util.SVNSocketFactory.createSSLSocket(SVNSocketFactory.java:85) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.connect(HTTPConnection.java:195) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:360) 
     ... 80 more 

w katalogu C: \ Windows \ System32 \ config \ systemprofile \ AppData \ Roaming \ Subversion \ server, serwer proxy jest skonfigurowany iw Jenkinsach mogę zainstalować/zaktualizować wtyczki.

Adres URL svn jest w https i mogę uzyskać do niego dostęp za pomocą poświadczeń w przeglądarce.

Domyślnie wersja svn użyta w Jenkinsie ma 1.4, nawet przy 1.7, niemożliwy dostęp do tego serwera svn.

Serwer to 64-bitowy system Windows 7 i jest to ostatnia wersja Jenkinsa.

Gdzie jest problem?

Dziękuję

+1

'Przyczyna: java.net.ConnectException: Przekroczono limit czasu połączenia: connect' sugeruje problem związany z siecią; czy możesz uzyskać dostęp do zewnętrznego SVN z sieci, w której jest wdrożony Jenkins? –

+1

Za pośrednictwem przeglądarki mogę uzyskać dostęp do serwera svn z tymi samymi danymi uwierzytelniającymi jak w Jenkins. Tak naprawdę nie rozumiem, ponieważ serwer proxy jest skonfigurowany do Subversion. – skurty

+0

Niedawno stanęłem przed tym problemem: serwer proxy pozwolił mojemu plikowi na wykonanie przeglądarki, aby przeglądać repozytorium SVN w HTTP (S), ale nie pozwalał, aby mój plik wykonywalny svn robił to samo. Być może jest to odpowiednie do twojego problemu ... –

Odpowiedz

1

można uruchomić polecenie z tej opcji:

-Dsvnkit.http.sslProtocols="SSLv3" 
2

Usuwanie ${user.home}/.subversion.

+2

Który dom użytkownika, na serwerze Jenkins, jenkins slave, serwer subversion? –

2

Naprawdę późno w grze tutaj, ale po prostu miałem ten sam problem. Jeśli uruchomisz SVN ręcznie na maszynie Jenkins, utworzy on plik uwierzytelniający svn dla twojego serwera svn (caching uwierzytelniania). Istnienie tego pliku łamie Jenkins svn.

na moim serwerze (Windows), plik znajduje się w:

%APPDATA%\Subversion\auth\svn.simple 

wierzę na linux, byłoby w ~/.subversion

I przemianowany na svn.simple katalogów svn .simple1 i rzeczy natychmiast zaczęły działać (i znów się zepsuły, gdy je zmieniłem).

Aby temu zapobiec, gdy uruchomiony bin svn na serwerze Jenkins, można

  • Aktualizacja% appdata% \ Subversion \ config przez odkomentowanie "magazyn haseł = no"
  • lub korzystać z tego flag: --no-auth-cache
0

Zamierzam przesłać odpowiedź, którą przedłożyłem na ServerFault, która sprawdziła się bardzo dobrze. Rozwiązaniem było edytować plik Jenkins.xml bezpośrednio na jego <arguments> elementu obejmuje

-Dhttp.proxyHost=proxy.myproxy.com Dhttp.proxyPort=99999 -Dhttp.auth.preference=Basic 

Widocznie ten pozwala na wewnętrzne Java przejść przez serwer proxy.