korpling / ANNIS

ANNIS is an open source, versatile web browser-based search and visualization architecture for complex multilevel linguistic corpora with diverse types of annotation.
http://corpus-tools.org/annis/
Apache License 2.0
69 stars 25 forks source link

Corpus information hangs, then 504 error #407

Closed dlukes closed 9 years ago

dlukes commented 9 years ago

When I try to open the corpus information window (by clicking in the open corpus browser field in the Example Queries section) for one of the corpora I've compiled myself, the GUI hangs for a while, then displays a 504 error and an empty window:

corpinfo_annis

("no metadata" is fine, I haven't added any, but "No Node Annotations" is weird -- there obviously are annotations, but ANNIS isn't keeping record of them...? BTW, this particular corpus was compiled from EXMARaLDA sources using the standard procedure from the multiple segmentation corpora guide.)

The frontend log shows this:

18:05:38.784 [http-bio-8080-exec-1] ERROR annis.gui.CorpusBrowserPanel - null (CorpusBrowserPanel.java:329)
com.sun.jersey.api.client.UniformInterfaceException: Client response status: 504
        at com.sun.jersey.api.client.WebResource.handle(WebResource.java:700) ~[jersey-client-1.18.jar:1.18]
        at com.sun.jersey.api.client.WebResource.get(WebResource.java:198) ~[jersey-client-1.18.jar:1.18]
        at annis.gui.CorpusBrowserPanel.fetchAnnos(CorpusBrowserPanel.java:324) [CorpusBrowserPanel.class:na]
        at annis.gui.CorpusBrowserPanel.<init>(CorpusBrowserPanel.java:140) [CorpusBrowserPanel.class:na]
        at annis.gui.controlpanel.CorpusListPanel.initCorpusBrowser(CorpusListPanel.java:804) [CorpusListPanel.class:na]
        at annis.gui.ExampleQueriesPanel$2.buttonClick(ExampleQueriesPanel.java:233) [ExampleQueriesPanel$2.class:na]
        at sun.reflect.GeneratedMethodAccessor36.invoke(Unknown Source) ~[na:na]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_79]
        at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_79]
        at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:508) [vaadin-server-7.3.8.jar:7.3.8]
        at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:198) [vaadin-server-7.3.8.jar:7.3.8]
        at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:161) [vaadin-server-7.3.8.jar:7.3.8]
        at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:979) [vaadin-server-7.3.8.jar:7.3.8]
        at com.vaadin.ui.Button.fireClick(Button.java:393) [vaadin-server-7.3.8.jar:7.3.8]
        at com.vaadin.ui.Button$1.click(Button.java:57) [vaadin-server-7.3.8.jar:7.3.8]
        at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source) ~[na:na]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_79]
        at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_79]
        at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:168) [vaadin-server-7.3.8.jar:7.3.8]
        at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:118) [vaadin-server-7.3.8.jar:7.3.8]
        at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:287) [vaadin-server-7.3.8.jar:7.3.8]
        at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:180) [vaadin-server-7.3.8.jar:7.3.8]
        at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:93) [vaadin-server-7.3.8.jar:7.3.8]
        at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41) [vaadin-server-7.3.8.jar:7.3.8]
        at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1406) [vaadin-server-7.3.8.jar:7.3.8]
        at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:305) [vaadin-server-7.3.8.jar:7.3.8]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) [tomcat-servlet-api-3.0.jar:na]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) [tomcat-catalina-7.0.55.jar:7.0.55]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [tomcat-catalina-7.0.55.jar:7.0.55]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) [tomcat-catalina-7.0.55.jar:7.0.55]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) [tomcat-catalina-7.0.55.jar:7.0.55]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) [tomcat-catalina-7.0.55.jar:7.0.55]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) [tomcat-catalina-7.0.55.jar:7.0.55]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) [tomcat-catalina-7.0.55.jar:7.0.55]
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) [tomcat-catalina-7.0.55.jar:7.0.55]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) [tomcat-catalina-7.0.55.jar:7.0.55]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) [tomcat-catalina-7.0.55.jar:7.0.55]
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) [tomcat-coyote-7.0.55.jar:7.0.55]
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) [tomcat-coyote-7.0.55.jar:7.0.55]
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) [tomcat-coyote-7.0.55.jar:7.0.55]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_79]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_79]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-coyote-7.0.55.jar:7.0.55]
        at java.lang.Thread.run(Thread.java:745) [na:1.7.0_79]

A possibly related issue: adding a node in the graphical query builder takes a substantial amount of time (no 504 this time though nor errors in the log, and the action completes eventually). In both cases, it seems as if ANNIS were missing a cache of the types of annotations available in my corpora, but I'm not sure how to generate it.

None of the demo corpora I've imported for testing have either of these issues.

Any ideas on what might be causing this? I'd be grateful for any hints to pursue :)

thomaskrause commented 9 years ago

It looks like the SQL query to get the list of annotations resulted in a time-out. This should not happen even if not caching the results, since there is a pre-calculated table in the database which is optimized for exactly this use case (and should get results pretty fast).

If you could provide me a (if necessary confidential) link to the relANNIS corpus files in question that would be very helpful to debug the problem.

dlukes commented 9 years ago

Thanks a lot! Our server's down at the moment, but I'll send you a link as soon as we're back on-line :) It will indeed need to be confidential, as the data are not ready for public disclosure (no anonymization yet etc.).