Error - Module has already been set; renderView exception

LabKey Support Forum (Inactive)
Error - Module has already been set; renderView exception Matt V  2017-02-28 14:24
Status: Closed
 
I am periodically encountering a "500: Unexpected server error - Module has already been set."
There is the following error included in the log:
ERROR WebPartView : renderView() exception in org.labkey.api.view.template.DialogTemplate while responding to /login/home/login.view?
Unfortunately, this error means a restart is necessary to get things up and running again.

Appears to be tied to the renderView() within WebPartView on login...maybe? It seems to happen independently of deployments, sometimes follows maintenance, but the errors aren't reproducible pattern and don't necessarily appear tied to user events. For example, logging in may display a visible error, but this one happened at 2:15am when no logins occurred (according to the audit).

Curious if anyone else has experienced similar and/or has any ideas. I saw this thread: https://www.labkey.org/home/Support/Server%20Forum/announcements-thread.view?rowId=13871, but it didn't lead me anywhere.

Thanks!

---------------------------------------------
The stack trace for the most recent event is:
ERROR ExceptionUtil
java.lang.IllegalStateException: Module has already been set.
    at org.labkey.api.view.BaseWebPartFactory.setModule(BaseWebPartFactory.java:177)
    at org.labkey.api.module.DefaultModule.getWebPartFactories(DefaultModule.java:414)
    at org.labkey.api.view.Portal.initMaps(Portal.java:1129)
    at org.labkey.api.view.Portal.getViewMap(Portal.java:1117)
    at org.labkey.api.view.Portal.getPortalPart(Portal.java:1105)
    at org.labkey.api.module.SimpleFolderType.createWebParts(SimpleFolderType.java:269)
    at org.labkey.api.view.SimpleFolderTab.<init>(SimpleFolderTab.java:98)
    at org.labkey.api.module.SimpleFolderType.createFolderTabs(SimpleFolderType.java:216)
    at org.labkey.api.module.SimpleFolderType.<init>(SimpleFolderType.java:108)
    at org.labkey.api.module.SimpleFolderType.create(SimpleFolderType.java:153)
    at org.labkey.api.module.FolderTypeManager$SimpleFolderTypeCacheHandler$1.load(FolderTypeManager.java:277)
    at org.labkey.api.module.FolderTypeManager$SimpleFolderTypeCacheHandler$1.load(FolderTypeManager.java:267)
    at org.labkey.api.cache.BlockingCache.get(BlockingCache.java:144)
    at org.labkey.api.module.ModuleResourceCache.getResource(ModuleResourceCache.java:66)
    at org.labkey.api.module.ModuleResourceCache.getResources(ModuleResourceCache.java:95)
    at org.labkey.api.module.FolderTypeManager.getSimpleFolderTypes(FolderTypeManager.java:240)
    at org.labkey.api.module.FolderTypeManager.ensureAllFolderTypes(FolderTypeManager.java:128)
    at org.labkey.api.module.FolderTypeManager.getFolderType(FolderTypeManager.java:148)
    at org.labkey.api.data.ContainerManager.getFolderType(ContainerManager.java:473)
    at org.labkey.api.data.Container.getFolderType(Container.java:795)
    at org.labkey.api.data.Container.getActiveModules(Container.java:1010)
    at org.labkey.api.data.Container.getActiveModules(Container.java:910)
    at org.labkey.api.util.PageFlowUtil.getModuleClientContext(PageFlowUtil.java:2538)
    at org.labkey.api.util.PageFlowUtil.jsInitObject(PageFlowUtil.java:1978)
    at org.labkey.api.util.PageFlowUtil.getLabkeyJS(PageFlowUtil.java:1812)
    at org.labkey.api.util.PageFlowUtil.getIncludes(PageFlowUtil.java:1594)
    at org.labkey.api.util.PageFlowUtil.getStandardIncludes(PageFlowUtil.java:1536)
    at org.labkey.api.util.PageFlowUtil.getStandardIncludes(PageFlowUtil.java:1515)
    at org.labkey.jsp.compiled.org.labkey.api.view.template.dialogTemplate_jsp._jspService(dialogTemplate_jsp.java:163)
    at org.labkey.api.view.JspView.renderView(JspView.java:168)
    at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:370)
    at org.labkey.api.view.HttpView.render(HttpView.java:136)
    at org.labkey.api.view.HttpView.render(HttpView.java:121)
    at org.labkey.api.action.SpringActionController.renderInTemplate(SpringActionController.java:522)
    at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:417)
    at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:1281)
    at org.labkey.api.view.ViewServlet._service(ViewServlet.java:190)
    at org.labkey.api.view.ViewServlet.service(ViewServlet.java:124)
    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.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.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:38)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:1144)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:205)
    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:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
    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:958)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:452)
    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:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
 
 
Jon (LabKey DevOps) responded:  2017-03-07 01:54
Hi Matt,

What version of LabKey are you running? I see that your email address is tied to OHSU. Are you also running one of the special versions of LabKey developed for OHSU, such as the version used for the Primate Research Center (i.e. ONPRC) or some other special one for OHSU?

Can you also provide us with a copy of your labkey.log file? It may provide better insight on the issue you're experiencing.

Regards,

Jon
 
Matt V responded:  2017-03-07 10:41
Hi Jon,
I'm pulling 16.2 with the current build. We're not using a custom version for this, all the custom work is contained in modules and LabKey is built from source each release. After commenting out the throw exception line and writing some logging, it appears to be failing on the "kiem" module, at least so far. Due to replication issues it's difficult to force it to fail more rapidly for faster troubleshooting. I saw this thread, https://www.labkey.org/home/Support/Developer%20Forum/announcements-thread.view?rowId=14085, and verified our build process is clean --> production.

Attachment is failing. Is there another way to get you the log?
 
Jon (LabKey DevOps) responded:  2017-03-07 16:00
Hi Matt,

If attaching the file isn't working, feel free to email it to support@labkey.com and reference this support forum post in your message.

We suspect that a 3rd party module (like the keim one you observed) implementation of a webpart is triggering this problem, but has been better enhanced in LabKey 17.1 to allow you as the user to see more details related to the error message.

Regards,

Jon
 
adam responded:  2017-03-23 17:20
I've been able to repro this and filed an issue, https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=29847

Adam
 
Matt V responded:  2017-03-24 11:17
Thanks for the update, Adam. Glad to hear you were able to repro it and it looks like there's already a plan in place. Any idea if that fix be included in the next release?
 
adam responded:  2017-03-24 14:02
Yes, fix is committed to trunk and will be included in our 17.2 release. For now, it's best to avoid modifying files in /resources/views while the server is running.

Thanks for reporting and providing details!

Adam