2013-07-04 22 views
10

Tôi đã tạo dự án Jenkins có tệp trên SVN (https://repo.xxx.xxx/svn/priv/projectname; chứng chỉ là tự ký). Vấn đề của tôi là Jenkins có không gian làm việc trống cho dự án này (chỉ .svn) và nó không thể kết nối với repo SVN. Số lỗi là:Jenkins không thể truy cập vào SVN (https: //)

**svn: E175002** 

Jenkins ver. 1,521

tôi thành lập ở đâu đó rằng tôi nên sử dụng -Dsvnkit.http.sslProtocols = SSLv3 như một tham số nhưng tôi không biết được nơi để đặt nó (Tôi đang sử dụng Jenkins với Tomcat trên máy chủ).

Stack trace:

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

Tôi đã đối mặt với vấn đề tương tự này. Sau một số nghiên cứu bổ sung tôi phát hiện ra rằng bạn có thể thấy lỗi này là kết quả của SSLstrip, mà công việc của chúng tôi sử dụng. – SiKing

Trả lời

6

Giải pháp là khá dễ dàng. Tôi kết nối với repo SVN từ máy tính của tôi (trong dòng lệnh) như người dùng jenkins. Tôi đã chấp nhận tất cả các chứng chỉ vĩnh viễn (p). Thư mục được tạo này ~/.subversion. Tôi đã sao chép thư mục này vào máy chủ (wget). Và từ giờ mọi thứ hoạt động tốt.

5

Dường như Jenkins sử dụng bộ nhớ cache thông tin xác thực svn để xác thực. Các thông tin đăng nhập này được lưu trữ trong thư mục ~/.subversion/auth. Tôi đã đấu tranh vì điều này và giải pháp tôi tìm thấy là dọn dẹp thư mục ~/.subversion/auth và sau đó thanh toán từ giao diện điều khiển của máy Jenkins được cài đặt trên, gắn thêm tên người dùng Jenkins sẽ sử dụng làm tham số. Một cái gì đó như thế này

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

Đó sẽ yêu cầu các thông tin của Jenkins-svn-user và sẽ lưu trữ chúng ở địa phương để Jenkins có thể sử dụng chúng. Sau đó, bạn có thể kiểm tra cấu hình công việc của mình cho dù nó có hoạt động hay không.

Hy vọng điều này sẽ giúp

+3

Đối với các cửa sổ, các tệp được đặt trong '% APPDATA% \ Roaming \ Subversion \ auth'. Một giải pháp khác là sửa đổi cấu hình subversion và uncomment của bạn ** "store-passwords = no" ** hoặc sử dụng cờ này khi chạy thủ công svn: ** - no-auth-cache ** – Seth

+0

@Seth Chỉ cần thử tất cả các đề xuất này trên Debian 3.2.51-1 với mọi thứ được cập nhật lên phiên bản mới nhất: không hoạt động. :( – SiKing

+0

Điều này làm việc cho tôi Cảm ơn Seth! –

3

Câu hỏi cũ, tôi biết. Có lẽ ai đó sẽ tìm thấy điều này, mặc dù?

Tôi gặp sự cố này một lúc, trước khi nhận ra rằng tôi chưa tải xuống plugin SVN. Mặc dù SVN xuất hiện như một tùy chọn trong phần Quản lý mã nguồn của màn hình cấu hình trong Jenkins, plugin chưa được cài đặt. Do đó: https://stackoverflow.com/a/11272158

Các vấn đề liên quan