2013-07-04 11 views
10

Utworzono projekt Jenkins, który ma pliki na SVN (https://repo.xxx.xxx/svn/priv/projectname; certyfikat jest samopodpisany). Moim problemem jest to, że Jenkins ma puste miejsce do pracy dla tego projektu (tylko .svn) i nie może połączyć się z repozytorium SVN. Numer błędu:Jenkins nie może uzyskać dostępu do SVN (https: //)

**svn: E175002** 

Jenkins ver. 1,521

założyłem gdzieś, że powinienem użyć -Dsvnkit.http.sslProtocols = SSLv3 jako parametr, ale nie wiem, gdzie go umieścić (używam Jenkins z Tomcat na serwerze).

Ślad stosu:

INFO: Failed to access subversion repository https://repo.xxx.xxx/svn/priv/projectname 
org.tmatesoft.svn.core.SVNException: svn: E175002: OPTIONS /svn/priv/mgrzeslowski/flatmanager failed 
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:379) 
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:364) 
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:352) 
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:708) 
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:628) 
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.checkRepositoryPath(SubversionSCM.java:2038) 
at hudson.scm.SubversionSCM$DescriptorImpl.doCheckRemote(SubversionSCM.java:1972) 
at sun.reflect.GeneratedMethodAccessor392.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:601) 
at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:297) 
at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:160) 
at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:95) 
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:684) 
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:777) 
at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:239) 
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) 
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:684) 
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:777) 
at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:239) 
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) 
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:684) 
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:777) 
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:586) 
at org.kohsuke.stapler.Stapler.service(Stapler.java:217) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96) 
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
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:124) 
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.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:47) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) 
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
at java.lang.Thread.run(Thread.java:722) 
Caused by: svn: E175002: OPTIONS /svn/priv/mgrzeslowski/flatmanager 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) 
... 82 more 
Caused by: org.tmatesoft.svn.core.SVNException: svn: E175002: OPTIONS request failed on '/svn/priv/mgrzeslowski/flatmanager' 
svn: E175002: Received fatal alert: bad_record_mac 
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:754) 
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:373) 
... 81 more 
Caused by: svn: E175002: OPTIONS request failed on '/svn/priv/mgrzeslowski/flatmanager' 
at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:208) 
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:752) 
... 82 more 
Caused by: svn: E175002: Received fatal alert: bad_record_mac 
at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:109) 
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:505) 
... 82 more 
Caused by: javax.net.ssl.SSLException: Received fatal alert: bad_record_mac 
at sun.security.ssl.Alerts.getSSLException(Alerts.java:208) 
at sun.security.ssl.Alerts.getSSLException(Alerts.java:154) 
at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1977) 
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1093) 
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1328) 
at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:702) 
at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:122) 
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) 
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) 
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.sendData(HTTPConnection.java:313) 
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPRequest.dispatch(HTTPRequest.java:168) 
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:460) 
... 82 more 
+0

Miałem do czynienia z tym samym problemem. Po kilku dodatkowych badaniach odkryłem, że ten błąd można zaobserwować w wyniku zastosowania SSLstrip, z którego korzysta nasza praca. – SiKing

Odpowiedz

6

Rozwiązanie jest dość proste. Połączyłem się z repozytorium SVN z mojego komputera (w linii poleceń) jako użytkownik jenkins. Zaakceptowałem wszystkie certyfikaty na stałe (p). Utworzono katalog ~/.subversion. Skopiowałem ten katalog na serwer (wget). I od teraz wszystko działa dobrze.

5

Wygląda na to, że Jenkins korzysta z pamięci podręcznej uwierzytelnień svn. Te poświadczenia są przechowywane w folderze ~/.subversion/auth. Miałem problemy z tego powodu i znalazłem rozwiązanie polegające na wyczyszczeniu folderu ~/.subversion/auth, a następnie wylogowaniu z konsoli komputera, na którym jest zainstalowany Jenkins, dołączając nazwę użytkownika Jenkins jako parametr. Coś takiego

svn checkout --username jenkins-svn-user http://svn.server/repo 

To poprosi poświadczeń jenkins-svn użytkownika i przechowywać je lokalnie, dzięki czemu można z nich korzystać Jenkins. Następnie możesz sprawdzić konfigurację zadania, czy zadziałało, czy nie.

Mam nadzieję, że to pomoże

+3

W przypadku okien pliki znajdują się w '% APPDATA% \ Roaming \ Subversion \ auth'. Innym rozwiązaniem jest zmodyfikowanie konfiguracji i odkomentowania twojej subversion ** "store-passwords = no" ** lub użycie tej flagi przy ręcznym uruchomieniu svn: ** - bez auth-cache ** – Seth

+0

@ Seth Po prostu wypróbowałem wszystkie te sugestie na Debianie 3.2.51-1 ze wszystkim zaktualizowanym do najnowszego: nie działa. :( – SiKing

+0

To zadziałało dla mnie Dzięki Seth! –

3

Stare pytanie, wiem. Może ktoś inny to znajdzie?

Miałem ten problem przez chwilę, zanim zdałem sobie sprawę, że nie pobrałem wtyczki SVN. Mimo że SVN pojawia się jako opcja w sekcji Zarządzanie kodami źródłowymi na ekranie konfiguracji w Jenkins, wtyczka nie została zainstalowana. Stąd: https://stackoverflow.com/a/11272158