Stack Overflow Error when creating new groups

29 views
Skip to first unread message

Braxton Van Gundy

unread,
Jun 18, 2020, 11:24:50 AM6/18/20
to DSpace Technical Support
Hello, 

When we try to create a new group by clicking the "Create New Group" button, DSpace displays an internal server error and we get a java.lang.StackOverflowError in the logs from what looks like an infinite loop.  Any suggestions on how to prevent this?  Error message below. 


2020-06-18 11:03:40,871 WARN  org.dspace.app.webui.servlet.InternalErrorServlet @ :session_id=0FB44EED5587C201CD14C6EE0423B3A3:internal_error:-- URL Was: https://my-website/tools/group-edit
-- Method: POST
-- Parameters were:
-- submit_add: "Create New Group"

javax.servlet.ServletException: Servlet execution threw an exception
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:326)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.dspace.app.webui.filter.RegisteredOnlyFilter.doFilter(RegisteredOnlyFilter.java:66)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.dspace.utils.servlet.DSpaceWebappServletFilter.doFilter(DSpaceWebappServletFilter.java:78)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
        at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:190)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.StackOverflowError
        at org.dspace.eperson.GroupServiceImpl.getChildren(GroupServiceImpl.java:679)
        at org.dspace.eperson.GroupServiceImpl.getChildren(GroupServiceImpl.java:694)
        at org.dspace.eperson.GroupServiceImpl.getChildren(GroupServiceImpl.java:694)
        at org.dspace.eperson.GroupServiceImpl.getChildren(GroupServiceImpl.java:694)
        at org.dspace.eperson.GroupServiceImpl.getChildren(GroupServiceImpl.java:694)
        at org.dspace.eperson.GroupServiceImpl.getChildren(GroupServiceImpl.java:694)
        at org.dspace.eperson.GroupServiceImpl.getChildren(GroupServiceImpl.java:694)
        at org.dspace.eperson.GroupServiceImpl.getChildren(GroupServiceImpl.java:694)
        at org.dspace.eperson.GroupServiceImpl.getChildren(GroupServiceImpl.java:694)
        at org.dspace.eperson.GroupServiceImpl.getChildren(GroupServiceImpl.java:694)
        at org.dspace.eperson.GroupServiceImpl.getChildren(GroupServiceImpl.java:694)
        at org.dspace.eperson.GroupServiceImpl.getChildren(GroupServiceImpl.java:694)
        at org.dspace.eperson.GroupServiceImpl.getChildren(GroupServiceImpl.java:694)
        at org.dspace.eperson.GroupServiceImpl.getChildren(GroupServiceImpl.java:694)
        at org.dspace.eperson.GroupServiceImpl.getChildren(GroupServiceImpl.java:694)
        at org.dspace.eperson.GroupServiceImpl.getChildren(GroupServiceImpl.java:694)
        at org.dspace.eperson.GroupServiceImpl.getChildren(GroupServiceImpl.java:694)
        at org.dspace.eperson.GroupServiceImpl.getChildren(GroupServiceImpl.java:694)
        at org.dspace.eperson.GroupServiceImpl.getChildren(GroupServiceImpl.java:694)
        at org.dspace.eperson.GroupServiceImpl.getChildren(GroupServiceImpl.java:694)
        at org.dspace.eperson.GroupServiceImpl.getChildren(GroupServiceImpl.java:694)
        
         ---------- There are hundreds of these same lines -------------------------------------------

2020-06-18 11:03:40,881 WARN  org.dspace.app.webui.util.UIUtil @ Unable to send email alert
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: org.dspace.content.DSpaceObject.metadata, could not initialize proxy - no Session
        at org.hibernate.collection.internal.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:569)
        at org.hibernate.collection.internal.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:188)
        at org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:548)
        at org.hibernate.collection.internal.AbstractPersistentCollection.read(AbstractPersistentCollection.java:126)
        at org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:548)
        at org.hibernate.collection.internal.AbstractPersistentCollection.read(AbstractPersistentCollection.java:126)
        at org.hibernate.collection.internal.PersistentBag.iterator(PersistentBag.java:266)
        at org.dspace.content.DSpaceObjectServiceImpl.getMetadata(DSpaceObjectServiceImpl.java:129)
        at org.dspace.content.DSpaceObjectServiceImpl.getMetadataFirstValue(DSpaceObjectServiceImpl.java:380)
        at org.dspace.eperson.EPerson.getFirstName(EPerson.java:253)
        at org.dspace.eperson.EPerson.getFullName(EPerson.java:229)
        at org.dspace.app.webui.util.UIUtil.sendAlert(UIUtil.java:531)
        at org.dspace.app.webui.servlet.InternalErrorServlet.doGet(InternalErrorServlet.java:54)
        at org.dspace.app.webui.servlet.InternalErrorServlet.doPost(InternalErrorServlet.java:62)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:743)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:410)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:337)
        at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:479)
        at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:417)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:204)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
        at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:190)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:748)

Braxton Van Gundy

unread,
Jun 22, 2020, 11:25:13 AM6/22/20
to DSpace Technical Support

We fixed the issue, it turns out the errors we were seeing were a result of a cyclic group reference.  I tried to find the group programatically, but had issues getting the changes to take in the code.  In the end, I just went through each group one by one and looked for circular group membership.  It took forever, but eventually I found the offending group and removed it in the database.  The table you need to modify is the "group2group" table. We deleted the offending entry from this table in the psql database and all of our group related internal server errors went away. 

Braxton Van Gundy

unread,
Jun 22, 2020, 11:26:23 AM6/22/20
to DSpace Technical Support
Reply all
Reply to author
Forward
0 new messages