chrisamccoy / google-refine

Automatically exported from code.google.com/p/google-refine
Other
0 stars 1 forks source link

Butterfly classloader deadlock #627

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
This is the second time I've seen this deadlock.  The first time I encountered 
it, pausing and resuming the server was enough to clear it, so I'm going to 
record all the info this time before debugging more!

The lines that I've marked with asterisks represent the synchronized 
methods/blocks according to Eclipse's display.  There are many threads blocked 
with the stack in the state of the last two traces below, but I've only include 
two.  The third trace is the odd man out and is the other half of the deadlock. 
 The "classes" attempting to be loaded vary, but always seem to be package 
names, including "com.google.refine" "com" "org" "edu" 

Thread [pool-1-thread-13] (Suspended)   
    URLClassLoader$1.run() line: not available  
    URLClassLoader$1.run() line: not available  
    AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line: not available [native method]   
    Launcher$AppClassLoader(URLClassLoader).findClass(String) line: not available   
    Launcher$AppClassLoader(ClassLoader).loadClass(String, boolean) line: not available 
    Launcher$AppClassLoader.loadClass(String, boolean) line: not available  
    Launcher$AppClassLoader(ClassLoader).loadClass(String) line: not available  
*   WebAppClassLoader.loadClass(String, boolean) line: 401  
    WebAppClassLoader.loadClass(String) line: 363   
    ButterflyClassLoader.loadClass(String, boolean) line: 61    
    ButterflyClassLoader(ClassLoader).loadClass(String) line: not available 
    Kit.classOrNull(ClassLoader, String) line: 92   
*   NativeJavaTopPackage(NativeJavaPackage).getPkgProperty(String, Scriptable, 
boolean) line: 159  
    NativeJavaTopPackage(NativeJavaPackage).get(String, Scriptable) line: 114   
    NativeJavaTopPackage.init(Context, Scriptable, boolean) line: 128   
    GeneratedMethodAccessor32.invoke(Object, Object[]) line: not available  
    DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: not available   
    Method.invoke(Object, Object...) line: not available    
    ScriptableObject.buildClassCtor(Scriptable, Class<T>, boolean, boolean) line: 1030  
    LazilyLoadedCtor.buildValue() line: 110 
    LazilyLoadedCtor.init() line: 89    
    ImporterTopLevel(ScriptableObject).getImpl(String, int, Scriptable) line: 2032  
    ImporterTopLevel(ScriptableObject).get(String, Scriptable) line: 287    
    ImporterTopLevel(IdScriptableObject).get(String, Scriptable) line: 387  
    ImporterTopLevel.get(String, Scriptable) line: 131  
    ScriptableObject.getProperty(Scriptable, String) line: 1617 
    ScriptRuntime.topScopeName(Context, Scriptable, String) line: 1788  
    ScriptRuntime.name(Context, Scriptable, String) line: 1690  
    c8._c0(c8, Context, Scriptable, Scriptable, Object[]) line: 36  
    c8.call(Context, Scriptable, Scriptable, Object[]) line: not available  
    Butterfly$ButterflyContextFactory(ContextFactory).doTopCall(Callable, Context, Scriptable, Scriptable, Object[]) line: 398  
    ScriptRuntime.doTopCall(Callable, Context, Scriptable, Scriptable, Object[]) line: 3065 
    c8.call(Context, Scriptable, Scriptable, Object[]) line: not available  
    c8.exec(Context, Scriptable) line: not available    
    ButterflyModuleImpl.initScope(Context, Scriptable) line: 619    
    ButterflyModuleImpl$Controller.run(Context) line: 375   
    Context.call(ContextFactory, ContextAction) line: 515   
    Butterfly$ButterflyContextFactory(ContextFactory).call(ContextAction) line: 507 
    ButterflyModuleImpl.processScript(String, HttpServletRequest, HttpServletResponse) line: 650    
    ButterflyModuleImpl.process(String, HttpServletRequest, HttpServletResponse) line: 427  
    RefineServlet(Butterfly).service(HttpServletRequest, HttpServletResponse) line: 516 
    RefineServlet.service(HttpServletRequest, HttpServletResponse) line: 200    
    RefineServlet(HttpServlet).service(ServletRequest, ServletResponse) line: 820   
    ServletHolder.handle(ServletRequest, ServletResponse) line: 511 
    ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 1166 
    GzipFilter(UserAgentFilter).doFilter(ServletRequest, ServletResponse, FilterChain) line: 81 
    GzipFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 132 
    ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 1157 
    ServletHandler.handle(String, HttpServletRequest, HttpServletResponse, int) line: 388   
    SecurityHandler.handle(String, HttpServletRequest, HttpServletResponse, int) line: 216  
    SessionHandler.handle(String, HttpServletRequest, HttpServletResponse, int) line: 182   
    WebAppContext(ContextHandler).handle(String, HttpServletRequest, HttpServletResponse, int) line: 765    
    WebAppContext.handle(String, HttpServletRequest, HttpServletResponse, int) line: 418    
    RefineServer(HandlerWrapper).handle(String, HttpServletRequest, HttpServletResponse, int) line: 152 
    RefineServer(Server).handle(HttpConnection) line: 326   
    HttpConnection.handleRequest() line: 542    
    HttpConnection$RequestHandler.headerComplete() line: 923    
    HttpParser.parseNext() line: 547    
    HttpParser.parseAvailable() line: 212   
    HttpConnection.handle() line: 404   
    SocketConnector$Connection.run() line: 228  
    ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: not available 
    ThreadPoolExecutor$Worker.run() line: not available 
    Thread.run() line: not available    

===========================

Thread [pool-1-thread-7] (Suspended)    
*   WebAppClassLoader.loadClass(String, boolean) line: 369  
    WebAppClassLoader.loadClass(String) line: 363   
    ButterflyClassLoader.loadClass(String, boolean) line: 56    
    ButterflyClassLoader(ClassLoader).loadClass(String) line: not available 
    Kit.classOrNull(ClassLoader, String) line: 92   
*   NativeJavaTopPackage(NativeJavaPackage).getPkgProperty(String, Scriptable, 
boolean) line: 159  
    NativeJavaTopPackage(NativeJavaPackage).get(String, Scriptable) line: 114   
    NativeJavaTopPackage.init(Context, Scriptable, boolean) line: 128   
    GeneratedMethodAccessor32.invoke(Object, Object[]) line: not available  
    DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: not available   
    Method.invoke(Object, Object...) line: not available    
    ScriptableObject.buildClassCtor(Scriptable, Class<T>, boolean, boolean) line: 1030  
    LazilyLoadedCtor.buildValue() line: 110 
    LazilyLoadedCtor.init() line: 89    
    ImporterTopLevel(ScriptableObject).getImpl(String, int, Scriptable) line: 2032  
    ImporterTopLevel(ScriptableObject).get(String, Scriptable) line: 287    
    ImporterTopLevel(IdScriptableObject).get(String, Scriptable) line: 387  
    ImporterTopLevel.get(String, Scriptable) line: 131  
    ScriptableObject.getProperty(Scriptable, String) line: 1617 
    ScriptRuntime.topScopeName(Context, Scriptable, String) line: 1788  
    ScriptRuntime.name(Context, Scriptable, String) line: 1690  
    c8._c0(c8, Context, Scriptable, Scriptable, Object[]) line: 36  
    c8.call(Context, Scriptable, Scriptable, Object[]) line: not available  
    Butterfly$ButterflyContextFactory(ContextFactory).doTopCall(Callable, Context, Scriptable, Scriptable, Object[]) line: 398  
    ScriptRuntime.doTopCall(Callable, Context, Scriptable, Scriptable, Object[]) line: 3065 
    c8.call(Context, Scriptable, Scriptable, Object[]) line: not available  
    c8.exec(Context, Scriptable) line: not available    
    ButterflyModuleImpl.initScope(Context, Scriptable) line: 619    
    ButterflyModuleImpl$Controller.run(Context) line: 375   
    Context.call(ContextFactory, ContextAction) line: 515   
    Butterfly$ButterflyContextFactory(ContextFactory).call(ContextAction) line: 507 
    ButterflyModuleImpl.processScript(String, HttpServletRequest, HttpServletResponse) line: 650    
    ButterflyModuleImpl.process(String, HttpServletRequest, HttpServletResponse) line: 427  
    RefineServlet(Butterfly).service(HttpServletRequest, HttpServletResponse) line: 516 
    RefineServlet.service(HttpServletRequest, HttpServletResponse) line: 200    
    RefineServlet(HttpServlet).service(ServletRequest, ServletResponse) line: 820   
    ServletHolder.handle(ServletRequest, ServletResponse) line: 511 
    ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 1166 
    GzipFilter(UserAgentFilter).doFilter(ServletRequest, ServletResponse, FilterChain) line: 81 
    GzipFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 132 
    ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 1157 
    ServletHandler.handle(String, HttpServletRequest, HttpServletResponse, int) line: 388   
    SecurityHandler.handle(String, HttpServletRequest, HttpServletResponse, int) line: 216  
    SessionHandler.handle(String, HttpServletRequest, HttpServletResponse, int) line: 182   
    WebAppContext(ContextHandler).handle(String, HttpServletRequest, HttpServletResponse, int) line: 765    
    WebAppContext.handle(String, HttpServletRequest, HttpServletResponse, int) line: 418    
    RefineServer(HandlerWrapper).handle(String, HttpServletRequest, HttpServletResponse, int) line: 152 
    RefineServer(Server).handle(HttpConnection) line: 326   
    HttpConnection.handleRequest() line: 542    
    HttpConnection$RequestHandler.headerComplete() line: 923    
    HttpParser.parseNext() line: 547    
    HttpParser.parseAvailable() line: 212   
    HttpConnection.handle() line: 404   
    SocketConnector$Connection.run() line: 228  
    ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: not available 
    ThreadPoolExecutor$Worker.run() line: not available 
    Thread.run() line: not available    

================================================

Thread [pool-1-thread-25] (Suspended)   
*   WebAppClassLoader.loadClass(String, boolean) line: 369  
    WebAppClassLoader.loadClass(String) line: 363   
    ButterflyClassLoader.loadClass(String, boolean) line: 61    
    ButterflyClassLoader(ClassLoader).loadClass(String) line: not available 
    Kit.classOrNull(ClassLoader, String) line: 92   
*   NativeJavaTopPackage(NativeJavaPackage).getPkgProperty(String, Scriptable, 
boolean) line: 159  
    NativeJavaTopPackage(NativeJavaPackage).get(String, Scriptable) line: 114   
    NativeJavaTopPackage.init(Context, Scriptable, boolean) line: 128   
    GeneratedMethodAccessor32.invoke(Object, Object[]) line: not available  
    DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: not available   
    Method.invoke(Object, Object...) line: not available    
    ScriptableObject.buildClassCtor(Scriptable, Class<T>, boolean, boolean) line: 1030  
    LazilyLoadedCtor.buildValue() line: 110 
    LazilyLoadedCtor.init() line: 89    
    ImporterTopLevel(ScriptableObject).getImpl(String, int, Scriptable) line: 2032  
    ImporterTopLevel(ScriptableObject).get(String, Scriptable) line: 287    
    ImporterTopLevel(IdScriptableObject).get(String, Scriptable) line: 387  
    ImporterTopLevel.get(String, Scriptable) line: 131  
    ScriptableObject.getProperty(Scriptable, String) line: 1617 
    ScriptRuntime.topScopeName(Context, Scriptable, String) line: 1788  
    ScriptRuntime.name(Context, Scriptable, String) line: 1690  
    c8._c0(c8, Context, Scriptable, Scriptable, Object[]) line: 36  
    c8.call(Context, Scriptable, Scriptable, Object[]) line: not available  
    Butterfly$ButterflyContextFactory(ContextFactory).doTopCall(Callable, Context, Scriptable, Scriptable, Object[]) line: 398  
    ScriptRuntime.doTopCall(Callable, Context, Scriptable, Scriptable, Object[]) line: 3065 
    c8.call(Context, Scriptable, Scriptable, Object[]) line: not available  
    c8.exec(Context, Scriptable) line: not available    
    ButterflyModuleImpl.initScope(Context, Scriptable) line: 619    
    ButterflyModuleImpl$Controller.run(Context) line: 375   
    Context.call(ContextFactory, ContextAction) line: 515   
    Butterfly$ButterflyContextFactory(ContextFactory).call(ContextAction) line: 507 
    ButterflyModuleImpl.processScript(String, HttpServletRequest, HttpServletResponse) line: 650    
    ButterflyModuleImpl.process(String, HttpServletRequest, HttpServletResponse) line: 427  
    RefineServlet(Butterfly).service(HttpServletRequest, HttpServletResponse) line: 516 
    RefineServlet.service(HttpServletRequest, HttpServletResponse) line: 200    
    RefineServlet(HttpServlet).service(ServletRequest, ServletResponse) line: 820   
    ServletHolder.handle(ServletRequest, ServletResponse) line: 511 
    ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 1166 
    GzipFilter(UserAgentFilter).doFilter(ServletRequest, ServletResponse, FilterChain) line: 81 
    GzipFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 132 
    ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 1157 
    ServletHandler.handle(String, HttpServletRequest, HttpServletResponse, int) line: 388   
    SecurityHandler.handle(String, HttpServletRequest, HttpServletResponse, int) line: 216  
    SessionHandler.handle(String, HttpServletRequest, HttpServletResponse, int) line: 182   
    WebAppContext(ContextHandler).handle(String, HttpServletRequest, HttpServletResponse, int) line: 765    
    WebAppContext.handle(String, HttpServletRequest, HttpServletResponse, int) line: 418    
    RefineServer(HandlerWrapper).handle(String, HttpServletRequest, HttpServletResponse, int) line: 152 
    RefineServer(Server).handle(HttpConnection) line: 326   
    HttpConnection.handleRequest() line: 542    
    HttpConnection$RequestHandler.headerComplete() line: 923    
    HttpParser.parseNext() line: 547    
    HttpParser.parseAvailable() line: 212   
    HttpConnection.handle() line: 404   
    SocketConnector$Connection.run() line: 228  
    ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: not available 
    ThreadPoolExecutor$Worker.run() line: not available 
    Thread.run() line: not available    

Original issue reported on code.google.com by tfmorris on 3 Oct 2012 at 3:03