简体   繁体   中英

JRE getting crashed when using SVNKit inside a web app on tomcat server

I am trying to handle svn operations through a web portal using SVNKit with spring. I am able to perform separate operations like commit,cleanup,update etc. My commit code goes like :

public Exception commit(String user, String password, String fileName,String comment) {

    Exception svnException = null;
    try {
        SVNUtil.cleanUpSVN();
        ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager(user, password);
        ISVNOptions options = SVNWCUtil.createDefaultOptions(true);
        SVNClientManager svnClientManager = SVNClientManager.newInstance(options, authManager);
        SVNCommitClient svnCommitClient = svnClientManager.getCommitClient();
        File commitFile = new File(fileName);
        svnCommitClient.doCommit(new File[]{commitFile}, false, comment, null, null, false, false, SVNDepth.INFINITY);
    } catch (SVNException svnEx) {
        svnException = svnEx;
        svnException.printStackTrace();
    }finally{
        System.out.print("Completed Execution of Commit method");
    }
    return svnException;

}

Above code works like a charm when triggered separately but all hell break loose when I put this inside my webapp implementation class.The Error which I am getting in catalina.out is as below:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x0000003c3633362f, pid=13153, tid=0x00007f8791469700
#
# JRE version: Java(TM) SE Runtime Environment (8.0_92-b14) (build 1.8.0_92-b14)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.92-b14 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [libc.so.6+0x13362f]
#
# Core dump written. Default location: /home/shavivek/Downloads/apache-tomcat-7.0.70/logs/core or core.13153
#
# An error report file with more information is saved as:
# /home/shavivek/Downloads/apache-tomcat-7.0.70/logs/hs_err_pid13153.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

In /home/shavivek/Downloads/apache-tomcat-7.0.70/logs/hs_err_pid13153.log :

Register to memory mapping:

RAX=0x0000000000000001 is an unknown value
RBX=0x6b65766976616873 is an unknown value
RCX=0x0000000000000003 is an unknown value
RDX=0x0000003c4ae0f520: <offset 0xf520> in /usr/lib64/libgnome-keyring.so.0.1.1 at 0x0000003c4ae00000
RSP=0x00007f87914640b8 is pointing into the stack for thread: 0x00007f8764002000                     
RBP=0x00007f8791464180 is pointing into the stack for thread: 0x00007f8764002000                     
RSI=0x6b65766976616873 is an unknown value                                                           
RDI=0x6b65766976616870 is an unknown value                                                           
R8 =0x6b65766976616873 is an unknown value                                                           
R9 =0x00007f876005f070 is an unknown value                                                           
R10=0x00007f8791463e20 is pointing into the stack for thread: 0x00007f8764002000                     
R11=0x0000003c36283a8e: <offset 0x83a8e> in /lib64/libc.so.6 at 0x0000003c36200000                   
R12=0x00007f8754187a80 is an unknown value                                                           
R13=0x00007f876005f060 is an unknown value                                                           
R14=0x6b65766976616873 is an unknown value                                                           
R15=0x0000000000000001 is an unknown value                                                           


Stack: [0x00007f8791369000,0x00007f879146a000],  sp=0x00007f87914640b8,  free space=1004k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)          
C  [libc.so.6+0x13362f]                                                                  
C  0x0000000000000032                                                                    

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J 6308  com.sun.jna.Native.invokeInt(JI[Ljava/lang/Object;)I (0 bytes) @ 0x00007f87b6080cd8 [0x00007f87b6080c80+0x58]
j  com.sun.jna.Function.invoke([Ljava/lang/Object;Ljava/lang/Class;Z)Ljava/lang/Object;+225                          
J 7060 C1 com.sun.jna.Function.invoke(Ljava/lang/Class;[Ljava/lang/Object;Ljava/util/Map;)Ljava/lang/Object; (538 bytes) @ 0x00007f87b6228d3c [0x00007f87b62277a0+0x159c]
J 6605 C2 com.sun.jna.Library$Handler.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object; (320 bytes) @ 0x00007f87b61f8ffc [0x00007f87b61f89e0+0x61c]
j  com.sun.proxy.$Proxy28.gnome_keyring_set_network_password_sync(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILcom/sun/jna/Pointer;Lcom/sun/jna/ptr/IntByR
eference;)I+67                                                                                                                                                                                                                               
v  ~StubRoutines::call_stub                                                                                                                                                                                                                  
J 1155  sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (0 bytes) @ 0x00007f87b5461cb7 [0x00007f87b5461c40+0x77]                                             
J 388 C1 sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (104 bytes) @ 0x00007f87b521fa0c [0x00007f87b521e880+0x118c]                                                                   
J 1931 C2 java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (62 bytes) @ 0x00007f87b5744dcc [0x00007f87b5744d20+0xac]                                                                                 
j  org.tmatesoft.svn.core.internal.wc.SVNMethodCallLogger.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;+101                                                                                      
j  com.sun.proxy.$Proxy28.gnome_keyring_set_network_password_sync(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILcom/sun/jna/Pointer;Lcom/sun/jna/ptr/IntByR
eference;)I+67                                                                                                                                                                                                                               
j  org.tmatesoft.svn.core.internal.util.jna.SVNGnomeKeyring.setPassword(Ljava/lang/String;Ljava/lang/String;[C)Z+103                                                                                                                         
j  org.tmatesoft.svn.core.internal.util.jna.SVNGnomeKeyring.setPassword(Ljava/lang/String;Ljava/lang/String;[CZLorg/tmatesoft/svn/core/internal/wc/ISVNGnomeKeyringPasswordProvider;)Z+71                                                    
j  org.tmatesoft.svn.core.internal.util.jna.SVNJNAUtil.addPasswordToGnomeKeyring(Ljava/lang/String;Ljava/lang/String;[CZLorg/tmatesoft/svn/core/internal/wc/ISVNGnomeKeyringPasswordProvider;)Z+12                                           
j  org.tmatesoft.svn.core.internal.wc.DefaultSVNPersistentAuthenticationProvider$GnomeKeyringPasswordStorage.savePassword(Ljava/lang/String;[CLorg/tmatesoft/svn/core/auth/SVNAuthentication;Lorg/tmatesoft/svn/core/SVNProperties;)Z+44     
j  org.tmatesoft.svn.core.internal.wc.DefaultSVNPersistentAuthenticationProvider.savePasswordCredential(Lorg/tmatesoft/svn/core/SVNProperties;Lorg/tmatesoft/svn/core/auth/SVNAuthentication;Ljava/lang/String;)V+78                         
j  org.tmatesoft.svn.core.internal.wc.DefaultSVNPersistentAuthenticationProvider.saveAuthentication(Lorg/tmatesoft/svn/core/auth/SVNAuthentication;Ljava/lang/String;Ljava/lang/String;)V+119                                                
j  org.tmatesoft.svn.core.internal.wc.DefaultSVNAuthenticationManager.acknowledgeAuthentication(ZLjava/lang/String;Ljava/lang/String;Lorg/tmatesoft/svn/core/SVNErrorMessage;Lorg/tmatesoft/svn/core/auth/SVNAuthentication;)V+90            
j  org.tmatesoft.svn.core.auth.BasicAuthenticationManager.acknowledgeAuthentication(ZLjava/lang/String;Ljava/lang/String;Lorg/tmatesoft/svn/core/SVNErrorMessage;Lorg/tmatesoft/svn/core/auth/SVNAuthentication;Lorg/tmatesoft/svn/core/SVNUR
L;Lorg/tmatesoft/svn/core/auth/ISVNAuthenticationManager;)V+37                                                                                                                                                                               
j  org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(Ljava/lang/String;Ljava/lang/String;Lorg/tmatesoft/svn/core/internal/io/dav/http/HTTPHeader;Ljava/io/InputStream;IILjava/io/OutputStream;Lorg/xml/sax/helpers/DefaultHa
ndler;Lorg/tmatesoft/svn/core/SVNErrorMessage;)Lorg/tmatesoft/svn/core/internal/io/dav/http/HTTPStatus;+2405                                                                                                                                 
j  org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(Ljava/lang/String;Ljava/lang/String;Lorg/tmatesoft/svn/core/internal/io/dav/http/HTTPHeader;Ljava/lang/StringBuffer;IILjava/io/OutputStream;Lorg/xml/sax/helpers/Defaul
tHandler;Lorg/tmatesoft/svn/core/SVNErrorMessage;)Lorg/tmatesoft/svn/core/internal/io/dav/http/HTTPStatus;+67                                                                                                                                
j  org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(Ljava/lang/String;Ljava/lang/String;Lorg/tmatesoft/svn/core/internal/io/dav/http/HTTPHeader;Ljava/lang/StringBuffer;IILjava/io/OutputStream;Lorg/xml/sax/helpers/Defaul
tHandler;)Lorg/tmatesoft/svn/core/internal/io/dav/http/HTTPStatus;+15                                                                                                                                                                        
j  org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(Lorg/tmatesoft/svn/core/internal/io/dav/http/IHTTPConnection;Ljava/lang/String;Ljava/lang/String;Lorg/tmatesoft/svn/core/internal/io/dav/http/HTTPHeader;Ljava/lan
g/StringBuffer;IILjava/io/OutputStream;Lorg/xml/sax/helpers/DefaultHandler;)Lorg/tmatesoft/svn/core/internal/io/dav/http/HTTPStatus;+21                                                                                                      
j  org.tmatesoft.svn.core.internal.io.dav.DAVConnection.doMakeActivity(Lorg/tmatesoft/svn/core/io/ISVNWorkspaceMediator;)Ljava/lang/String;+94                                                                                               
j  org.tmatesoft.svn.core.internal.io.dav.DAVCommitEditor.createActivity()[Ljava/lang/String;+8                                                                                                                                              
j  org.tmatesoft.svn.core.internal.io.dav.DAVCommitEditor.openRoot(J)V+335                                                                                                                                                                   
j  org.tmatesoft.svn.core.internal.wc.SVNCommitUtil.driveCommitEditor(Lorg/tmatesoft/svn/core/internal/wc/ISVNCommitPathHandler;Ljava/util/Collection;Lorg/tmatesoft/svn/core/io/ISVNEditor;J)V+100                                          
j  org.tmatesoft.svn.core.internal.wc.SVNCommitter.commit(Ljava/util/Collection;Ljava/util/Map;Lorg/tmatesoft/svn/core/SVNURL;Lorg/tmatesoft/svn/core/io/ISVNEditor;Lorg/tmatesoft/svn/core/wc/ISVNEventHandler;)Lorg/tmatesoft/svn/core/SVNC
ommitInfo;+31                                                                                                                                                                                                                                
j  org.tmatesoft.svn.core.internal.wc16.SVNCommitClient16.doCommit([Lorg/tmatesoft/svn/core/wc/SVNCommitPacket;ZZLjava/lang/String;Lorg/tmatesoft/svn/core/SVNProperties;)[Lorg/tmatesoft/svn/core/SVNCommitInfo;+358                        
j  org.tmatesoft.svn.core.internal.wc16.SVNCommitClient16.doCommit(Lorg/tmatesoft/svn/core/wc/SVNCommitPacket;ZZLjava/lang/String;Lorg/tmatesoft/svn/core/SVNProperties;)Lorg/tmatesoft/svn/core/SVNCommitInfo;+15                           
j  org.tmatesoft.svn.core.internal.wc2.old.SvnOldCommit.run()Lorg/tmatesoft/svn/core/SVNCommitInfo;+150                                                                                                                                      
j  org.tmatesoft.svn.core.internal.wc2.old.SvnOldCommit.run()Ljava/lang/Object;+1                                                                                                                                                            
j  org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(Lorg/tmatesoft/svn/core/wc2/SvnOperation;)Ljava/lang/Object;+6                                                                                                                 
j  org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(Lorg/tmatesoft/svn/core/wc2/SvnOperation;)Ljava/lang/Object;+67                                                                                                                        
j  org.tmatesoft.svn.core.wc2.SvnOperation.run()Ljava/lang/Object;+9                                                                                                                                                                         
j  org.tmatesoft.svn.core.wc2.SvnCommit.run()Lorg/tmatesoft/svn/core/SVNCommitInfo;+16                                                                                                                                                       
j  org.tmatesoft.svn.core.wc.SVNCommitClient.doCommit([Lorg/tmatesoft/svn/core/wc/SVNCommitPacket;ZZLjava/lang/String;Lorg/tmatesoft/svn/core/SVNProperties;)[Lorg/tmatesoft/svn/core/SVNCommitInfo;+342                                     
j  org.tmatesoft.svn.core.wc.SVNCommitClient.doCommit([Ljava/io/File;ZLjava/lang/String;Lorg/tmatesoft/svn/core/SVNProperties;[Ljava/lang/String;ZZLorg/tmatesoft/svn/core/SVNDepth;)Lorg/tmatesoft/svn/core/SVNCommitInfo;+29               
j  com.diglert.implementation.MonsvnSVNHandler.commit(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Exception;+98                                                                                      
j  com.diglert.implementation.FormRequestHandler.processUserInputs(Ljava/util/Map;)Ljava/lang/Exception;+204                                                                                                                                 
j  com.diglert.controller.DiglertController.processFormData(Ljava/util/Map;Lorg/springframework/ui/ModelMap;Ljava/util/Map;)Ljava/lang/String;+12                                                                                            
v  ~StubRoutines::call_stub                                                                                                                                                                                                                  
J 1155  sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (0 bytes) @ 0x00007f87b5461cb7 [0x00007f87b5461c40+0x77]                                             
J 388 C1 sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (104 bytes) @ 0x00007f87b521fa0c [0x00007f87b521e880+0x118c]                                                                   
J 1931 C2 java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (62 bytes) @ 0x00007f87b5744dcc [0x00007f87b5744d20+0xac]                                                                                 
j  org.springframework.web.method.support.InvocableHandlerMethod.invoke([Ljava/lang/Object;)Ljava/lang/Object;+16                                                                                                                            
j  org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(Lorg/springframework/web/context/request/NativeWebRequest;Lorg/springframework/web/method/support/ModelAndViewContainer;[Ljava/lang/Object;)Ljava/lang/Obje
ct;+78                                                                                                                                                                                                                                       
j  org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(Lorg/springframework/web/context/request/ServletWebRequest;Lorg/springframework/web/method/support/ModelAndViewContainer;[Ljava/lang/O
bject;)V+4                                                                                                                                                                                                                                   
j  org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Lorg/springframework/web/method/HandlerMethod;)Lorg/s
pringframework/web/servlet/ModelAndView;+230                                                                                                                                                                                                 
j  org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Lorg/springframework/web/method/HandlerMethod;)Lorg/sprin
gframework/web/servlet/ModelAndView;+89                                                                                                                                                                                                      
j  org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljava/lang/Object;)Lorg/springframework/web/servlet/ModelAndView;+7         
j  org.springframework.web.servlet.DispatcherServlet.doDispatch(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+305                                                                                        
j  org.springframework.web.servlet.DispatcherServlet.doService(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+319                                                                                         
j  org.springframework.web.servlet.FrameworkServlet.processRequest(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+72                                                                                      
j  org.springframework.web.servlet.FrameworkServlet.doPost(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+3                                                                                               
j  javax.servlet.http.HttpServlet.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+149                                                                                                              
j  org.springframework.web.servlet.FrameworkServlet.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+32                                                                                             
j  javax.servlet.http.HttpServlet.service(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+30                                                                                                                                 
j  org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+446                                                                                                      
j  org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+101                                                                                                              
j  org.apache.tomcat.websocket.server.WsFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+21                                                                                        
j  org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+151                                                                                                      
j  org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+101                                                                                                              
j  org.apache.catalina.core.StandardWrapperValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+780                                                                                                
j  org.apache.catalina.core.StandardContextValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+166                                                                                                
j  org.apache.catalina.authenticator.AuthenticatorBase.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+449                                                                                          
j  org.apache.catalina.core.StandardHostValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+158                                                                                                   
j  org.apache.catalina.valves.ErrorReportValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+6                                                                                                    
j  org.apache.catalina.valves.AccessLogValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+6                                                                                                      
j  org.apache.catalina.core.StandardEngineValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+71                                                                                                  
j  org.apache.catalina.connector.CoyoteAdapter.service(Lorg/apache/coyote/Request;Lorg/apache/coyote/Response;)V+199                                                                                                                         
j  org.apache.coyote.http11.AbstractHttp11Processor.process(Lorg/apache/tomcat/util/net/SocketWrapper;)Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState;+634                                                                 
j  org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(Lorg/apache/tomcat/util/net/SocketWrapper;Lorg/apache/tomcat/util/net/SocketStatus;)Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState;+270            
j  org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run()V+106                                                                                                                                                                         
j  java.util.concurrent.ThreadPoolExecutor.runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V+95                                                                                                                                   
j  java.util.concurrent.ThreadPoolExecutor$Worker.run()V+5                                                                                                                                                                                   
j  org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run()V+4                                                                                                                                                                       
j  java.lang.Thread.run()V+11                                                                                                                                                                                                                
v  ~StubRoutines::call_stub                                                                                     

Please help me understand what's going wrong in here

I believe I've fixed the problem at r10638 of SVNKit trunk. The fix will be included into SVNKit versions >= 1.8.16.

Short problem description: SVNKit incorrectly called Gnome Keyring functions via JNA. That's why turning Gnome Keyring or JNA calls helps to avoid the problem.

I'm one of SVNKit developers.

Well, after spending lot of hrs I found

-Dsvnkit.useJNA=false

solved the issue. May be it would be helpful to someone.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM