AtlasOfLivingAustralia / logger-service

Atlas event logging
https://logger.ala.org.au
1 stars 8 forks source link

Fix display of scaffolded admin "data view" pages (v3) #30

Closed nickdos closed 3 years ago

nickdos commented 3 years ago

The "data view" section on the admin page (/admin) is missing the CSS classes for the page to display properly - likely a bootstrap2 to bootstrap3 issue.

Use another grails 3 app that supports scaffolded views to see what changes need applying.

nickdos commented 3 years ago

@Rita-C could you code review the commit above, please?

Rita-C commented 3 years ago

Event Summary links show errors Event Summary links :

org.grails.taglib.GrailsTagException: [Byte array resource [view:-,-,eventSummaryBreakdownEmail:index]:21] Error executing tag <f:table>: null
    at org.grails.gsp.GroovyPage.throwRootCause(GroovyPage.java:473)
    at org.grails.gsp.GroovyPage.invokeTag(GroovyPage.java:415)
    at Byte_array_resource__view_____eventSummaryBreakdownEmail_index_$_run_closure2.doCall(Byte_array_resource__view_____eventSummaryBreakdownEmail_index_:54)
    at org.grails.taglib.TagBodyClosure.executeClosure(TagBodyClosure.java:200)
    at org.grails.taglib.TagBodyClosure.captureClosureOutput(TagBodyClosure.java:102)
    at org.grails.taglib.TagBodyClosure.call(TagBodyClosure.java:213)
    at org.grails.plugins.web.taglib.SitemeshTagLib.captureTagContent(SitemeshTagLib.groovy:48)
    at org.grails.plugins.web.taglib.SitemeshTagLib$_closure3.doCall(SitemeshTagLib.groovy:156)
    at org.grails.gsp.GroovyPage.invokeTagLibClosure(GroovyPage.java:446)
    at org.grails.gsp.GroovyPage.invokeTag(GroovyPage.java:364)
    at Byte_array_resource__view_____eventSummaryBreakdownEmail_index_.run(Byte_array_resource__view_____eventSummaryBreakdownEmail_index_:59)
    at org.grails.gsp.GroovyPageWritable.doWriteTo(GroovyPageWritable.java:162)
    at org.grails.gsp.GroovyPageWritable.writeTo(GroovyPageWritable.java:82)
    at org.grails.web.servlet.view.GroovyPageView.renderTemplate(GroovyPageView.java:76)
    at org.grails.web.servlet.view.AbstractGrailsView.renderWithinGrailsWebRequest(AbstractGrailsView.java:71)
    at org.grails.web.servlet.view.AbstractGrailsView.renderMergedOutputModel(AbstractGrailsView.java:55)
    at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:304)
    at org.grails.web.sitemesh.GrailsLayoutView.renderInnerView(GrailsLayoutView.java:150)
    at org.grails.web.sitemesh.GrailsLayoutView.obtainContent(GrailsLayoutView.java:128)
    at org.grails.web.sitemesh.GrailsLayoutView.renderTemplate(GrailsLayoutView.java:63)
    at org.grails.web.servlet.view.AbstractGrailsView.renderWithinGrailsWebRequest(AbstractGrailsView.java:71)
    at org.grails.web.servlet.view.AbstractGrailsView.renderMergedOutputModel(AbstractGrailsView.java:55)
    at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:304)
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1286)
    at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1041)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:984)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
    at org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:54)
    at org.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:77)
    at org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:71)
    at org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:236)
    at au.org.ala.cas.client.UriFilter.doFilter(UriFilter.java:188)
    at org.jasig.cas.client.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:168)
    at au.org.ala.cas.client.UriFilter.doFilter(UriFilter.java:188)
    at org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:97)
    at org.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:67)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException: null
    at org.grails.scaffolding.model.property.DomainPropertyImpl.<init>(DomainPropertyImpl.groovy:35)
    at org.grails.scaffolding.model.property.DomainPropertyFactoryImpl.build(DomainPropertyFactoryImpl.groovy:26)
    at org.grails.scaffolding.model.DomainModelServiceImpl.getListOutputProperties(DomainModelServiceImpl.groovy:118)
    at grails.plugin.formfields.FormFieldsTagLib.resolvePersistentProperties(FormFieldsTagLib.groovy:540)
    at grails.plugin.formfields.FormFieldsTagLib.resolvePropertyNames(FormFieldsTagLib.groovy:415)
    at grails.plugin.formfields.FormFieldsTagLib.resolveProperties(FormFieldsTagLib.groovy:402)
    at grails.plugin.formfields.FormFieldsTagLib$_closure4.doCall(FormFieldsTagLib.groovy:230)
    at org.grails.gsp.GroovyPage.invokeTagLibClosure(GroovyPage.java:446)
    at org.grails.gsp.GroovyPage.invokeTag(GroovyPage.java:364)
    ... 40 common frames omitted
nickdos commented 3 years ago

Those table were working before on test, so I don't know why they are now broken. I'll try on my local development env to see if it also throws errors.

EDIT: works fine on local machine. So might be data in test DB is causing issue an issue?

Rita-C commented 3 years ago

Errors shown on my local @nickdos, I have same data as on test.

nickdos commented 3 years ago

Broken views are now unlinked but test site is showing error message for all admin views for me now. E.g for Log Reason Types:

image

nickdos commented 3 years ago

They are working now again - 10 min later. So something strange is happening. I wonder if its the same DB connection errors we were seeing before. Need to inspect logs...

Rita-C commented 3 years ago

There were DB errors in logger-service log:

Caused by: com.mysql.cj.exceptions.CJCommunicationsException: The last packet successfully received from the server was 78,957,557 milliseconds ago. The last packet sent successfully to the server was 78,957,557 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
        at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
        at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105)
        at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151)
        at com.mysql.cj.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:167)
        at com.mysql.cj.protocol.a.NativeProtocol.clearInputStream(NativeProtocol.java:815)
        at com.mysql.cj.protocol.a.NativeProtocol.sendCommand(NativeProtocol.java:630)
        at com.mysql.cj.protocol.a.NativeProtocol.sendQueryPacket(NativeProtocol.java:948)
        at com.mysql.cj.protocol.a.NativeProtocol.sendQueryString(NativeProtocol.java:894)
        at com.mysql.cj.NativeSession.execSQL(NativeSession.java:1073)
        at com.mysql.cj.jdbc.ConnectionImpl.setAutoCommit(ConnectionImpl.java:2051)
        ... 52 common frames omitted
Caused by: java.io.IOException: Socket is closed
        at com.mysql.cj.protocol.AbstractSocketConnection.getMysqlInput(AbstractSocketConnection.java:72)
        at com.mysql.cj.protocol.a.NativeProtocol.clearInputStream(NativeProtocol.java:811)
        ... 57 common frames omitted
nickdos commented 3 years ago

Yes, we were seeing those previously on test... thought a DB setting had fixed it. I think this might be a blocker...

Rita-C commented 3 years ago

more error

org.springframework.transaction.TransactionSystemException: Could not roll back Hibernate transaction; nested exception is org.hibernate.TransactionException: Unable to rollback aga
inst JDBC Connection
        at org.springframework.orm.hibernate5.HibernateTransactionManager.doRollback(HibernateTransactionManager.java:611)
        at org.grails.orm.hibernate.GrailsHibernateTransactionManager.doRollback(GrailsHibernateTransactionManager.groovy:83)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:857)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback(AbstractPlatformTransactionManager.java:834)
        at org.springframework.transaction.support.TransactionTemplate.rollbackOnException(TransactionTemplate.java:164)
        at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:137)
        at grails.gorm.transactions.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:91)
        at org.grails.core.DefaultGrailsControllerClass$MethodHandleInvoker.invoke(DefaultGrailsControllerClass.java:223)
        at org.grails.core.DefaultGrailsControllerClass.invoke(DefaultGrailsControllerClass.java:188)
        at org.grails.web.mapping.mvc.UrlMappingsInfoHandlerAdapter.handle(UrlMappingsInfoHandlerAdapter.groovy:90)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
        at org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:54)
        at org.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:77)
        at org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:71)
        at org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:236)
        at au.org.ala.cas.client.UriFilter.doFilter(UriFilter.java:188)
        at org.jasig.cas.client.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:168)
        at au.org.ala.cas.client.UriFilter.doFilter(UriFilter.java:188)
        at org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:97)
        at org.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:67)
        at org.springframework.boot.web.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:128)
        at org.springframework.boot.web.support.ErrorPageFilter.access$000(ErrorPageFilter.java:66)
        at org.springframework.boot.web.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:103)
        at org.springframework.boot.web.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:121)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: org.hibernate.TransactionException: Unable to rollback against JDBC Connection
        at org.hibernate.resource.jdbc.internal.AbstractLogicalConnectionImplementor.rollback(AbstractLogicalConnectionImplementor.java:120)
        at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.rollback(JdbcResourceLocalTransactionCoordinatorImpl.java:250)
        at org.hibernate.engine.transaction.internal.TransactionImpl.rollback(TransactionImpl.java:89)
        at org.springframework.orm.hibernate5.HibernateTransactionManager.doRollback(HibernateTransactionManager.java:608)
        ... 30 common frames omitted
Caused by: java.sql.SQLNonTransientConnectionException: Communications link failure during rollback(). Transaction resolution unknown.
        at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)
        at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
        at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
        at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
        at com.mysql.cj.jdbc.ConnectionImpl.rollback(ConnectionImpl.java:1853)
        at org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy$LazyConnectionInvocationHandler.invoke(LazyConnectionDataSourceProxy.java:370)
        at org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy$TransactionAwareInvocationHandler.invoke(TransactionAwareDataSourceProxy.java:244)
        at org.hibernate.resource.jdbc.internal.AbstractLogicalConnectionImplementor.rollback(AbstractLogicalConnectionImplementor.java:115)
        ... 33 common frames omitted
nickdos commented 3 years ago

Created new issue (#35) for the errors above, so moving this to ready for cab.