Cannot Clear alarms in STUI - Acknowledge works

Description

If you try to clear alarms in STUI you get the following errors in the karaf.log files:

2014-12-12 13:02:13,343 DEBUG org.opennms.features.topology.plugins.browsers:14.0.2(95) [qtp1920340319-2924 - /opennms/topology/UIDL/?v-uiId=0] org.opennms.features.topology.plugins.browsers.OnmsDaoContainer: query criteria: Criteria [class=class org.opennms.netmgt.model.OnmsAlarm,aliases=[Alias [associationPath=node, alias=node, type=LEFT_JOIN, joinCondition=null]],restrictions=[InRestriction [attribute=node.id, values=[4809, 4751, 4746, 4755, 4750, 4810, 4753, 4749, 4752, 4754]]],distinct=false]
2014-12-12 13:02:14,505 WARN org.opennms.features.topology.app:14.0.2(88) [qtp1920340319-2924 - /opennms/topology/UIDL/?v-uiId=0] org.opennms.features.topology.app.internal.TopologyUI: An Exception Occured: in the TopologyUI
com.vaadin.server.ServerRpcManager$RpcInvocationException: Unable to invoke method click in com.vaadin.shared.ui.button.ButtonServerRpc
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:170)[76:com.vaadin.server:7.2.7]
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:118)[76:com.vaadin.server:7.2.7]
at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:294)[76:com.vaadin.server:7.2.7]
at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:187)[76:com.vaadin.server:7.2.7]
at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:93)[76:com.vaadin.server:7.2.7]
at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41)[76:com.vaadin.server:7.2.7]
at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1401)[76:com.vaadin.server:7.2.7]
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:237)[76:com.vaadin.server:7.2.7]
at org.opennms.vaadin.extender.internal.extender.ApplicationFactoryServiceTracker$FactoryServlet.service(ApplicationFactoryServiceTracker.java:89)[83:org.opennms.vaadin-extender.service:1.0.0]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)[javax.servlet-2.5.0.v201103041518.jar:]
at org.opennms.container.web.felix.base.internal.handler.ServletHandler.doHandle(ServletHandler.java:101)[29:org.opennms.container.web.bridge:14.0.2]
at org.opennms.container.web.felix.base.internal.handler.ServletHandler.handle(ServletHandler.java:84)[29:org.opennms.container.web.bridge:14.0.2]
at org.opennms.container.web.felix.base.internal.dispatch.ServletPipeline.handle(ServletPipeline.java:43)[29:org.opennms.container.web.bridge:14.0.2]
at org.opennms.container.web.felix.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:52)[29:org.opennms.container.web.bridge:14.0.2]
at org.opennms.container.web.felix.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:35)[29:org.opennms.container.web.bridge:14.0.2]
at org.opennms.container.web.felix.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:50)[29:org.opennms.container.web.bridge:14.0.2]
at org.opennms.container.web.felix.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:42)[29:org.opennms.container.web.bridge:14.0.2]
at org.opennms.container.web.bridge.internal.DispatcherFilter.doFilter(DispatcherFilter.java:72)[29:org.opennms.container.web.bridge:14.0.2]
at org.opennms.container.web.ProxyFilter.doFilter(ProxyFilter.java:56)[org.opennms.container.servlet-14.0.2.jar:]
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1288)[jetty-servlet-7.6.15.v20140411.jar:7.6.15.v20140411]
at org.extremecomponents.table.filter.AbstractExportFilter.doFilter(AbstractExportFilter.java:49)[extremecomponents-1.0.1.jar:1.0.1]
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1288)[jetty-servlet-7.6.15.v20140411.jar:7.6.15.v20140411]
at org.opennms.web.servlet.StoreRequestPropertiesFilter.doFilter(StoreRequestPropertiesFilter.java:79)[opennms-web-api-14.0.2.jar:]
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1288)[jetty-servlet-7.6.15.v20140411.jar:7.6.15.v20140411]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)[spring-security-web-3.1.7.RELEASE.jar:3.1.7.RELEASE]
at org.opennms.web.springframework.security.AuthFilterEnabler.doFilter(AuthFilterEnabler.java:108)[org.opennms.features.springframework-security-14.0.2.jar:]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)[spring-security-web-3.1.7.RELEASE.jar:3.1.7.RELEASE]
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)[spring-security-web-3.1.7.RELEASE.jar:3.1.7.RELEASE]
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)[spring-security-web-3.1.7.RELEASE.jar:3.1.7.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)[spring-security-web-3.1.7.RELEASE.jar:3.1.7.RELEASE]
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)[spring-security-web-3.1.7.RELEASE.jar:3.1.7.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)[spring-security-web-3.1.7.RELEASE.jar:3.1.7.RELEASE]
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)[spring-security-web-3.1.7.RELEASE.jar:3.1.7.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)[spring-security-web-3.1.7.RELEASE.jar:3.1.7.RELEASE]
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)[spring-security-web-3.1.7.RELEASE.jar:3.1.7.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)[spring-security-web-3.1.7.RELEASE.jar:3.1.7.RELEASE]
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)[spring-security-web-3.1.7.RELEASE.jar:3.1.7.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)[spring-security-web-3.1.7.RELEASE.jar:3.1.7.RELEASE]
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)[spring-security-web-3.1.7.RELEASE.jar:3.1.7.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)[spring-security-web-3.1.7.RELEASE.jar:3.1.7.RELEASE]
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)[spring-security-web-3.1.7.RELEASE.jar:3.1.7.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)[spring-security-web-3.1.7.RELEASE.jar:3.1.7.RELEASE]
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)[spring-security-web-3.1.7.RELEASE.jar:3.1.7.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)[spring-security-web-3.1.7.RELEASE.jar:3.1.7.RELEASE]
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)[spring-security-web-3.1.7.RELEASE.jar:3.1.7.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)[spring-security-web-3.1.7.RELEASE.jar:3.1.7.RELEASE]
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)[spring-security-web-3.1.7.RELEASE.jar:3.1.7.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)[spring-security-web-3.1.7.RELEASE.jar:3.1.7.RELEASE]
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)[spring-security-web-3.1.7.RELEASE.jar:3.1.7.RELEASE]
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)[spring-security-web-3.1.7.RELEASE.jar:3.1.7.RELEASE]
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)[org.apache.servicemix.bundles.spring-web-3.2.9.RELEASE_1.jar:]
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)[org.apache.servicemix.bundles.spring-web-3.2.9.RELEASE_1.jar:]
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1288)[jetty-servlet-7.6.15.v20140411.jar:7.6.15.v20140411]
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:232)[org.apache.servicemix.bundles.spring-orm-3.2.9.RELEASE_1.jar:]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:106)[org.apache.servicemix.bundles.spring-web-3.2.9.RELEASE_1.jar:]
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1288)[jetty-servlet-7.6.15.v20140411.jar:7.6.15.v20140411]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)[org.apache.servicemix.bundles.spring-web-3.2.9.RELEASE_1.jar:]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:106)[org.apache.servicemix.bundles.spring-web-3.2.9.RELEASE_1.jar:]
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1288)[jetty-servlet-7.6.15.v20140411.jar:7.6.15.v20140411]
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:443)[jetty-servlet-7.6.15.v20140411.jar:7.6.15.v20140411]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)[jetty-server-7.6.15.v20140411.jar:7.6.15.v20140411]
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:556)[jetty-security-7.6.15.v20140411.jar:7.6.15.v20140411]
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)[jetty-server-7.6.15.v20140411.jar:7.6.15.v20140411]
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1044)[jetty-server-7.6.15.v20140411.jar:7.6.15.v20140411]
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:372)[jetty-servlet-7.6.15.v20140411.jar:7.6.15.v20140411]
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:189)[jetty-server-7.6.15.v20140411.jar:7.6.15.v20140411]
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:978)[jetty-server-7.6.15.v20140411.jar:7.6.15.v20140411]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)[jetty-server-7.6.15.v20140411.jar:7.6.15.v20140411]
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)[jetty-server-7.6.15.v20140411.jar:7.6.15.v20140411]
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)[jetty-server-7.6.15.v20140411.jar:7.6.15.v20140411]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)[jetty-server-7.6.15.v20140411.jar:7.6.15.v20140411]
at org.eclipse.jetty.server.Server.handle(Server.java:365)[jetty-server-7.6.15.v20140411.jar:7.6.15.v20140411]
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:486)[jetty-server-7.6.15.v20140411.jar:7.6.15.v20140411]
at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:944)[jetty-server-7.6.15.v20140411.jar:7.6.15.v20140411]
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1005)[jetty-server-7.6.15.v20140411.jar:7.6.15.v20140411]
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)[jetty-http-7.6.15.v20140411.jar:7.6.15.v20140411]
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)[jetty-http-7.6.15.v20140411.jar:7.6.15.v20140411]
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)[jetty-server-7.6.15.v20140411.jar:7.6.15.v20140411]
at org.eclipse.jetty.io.nio.SslConnection.handle(SslConnection.java:196)[jetty-io-7.6.15.v20140411.jar:7.6.15.v20140411]
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:667)[jetty-io-7.6.15.v20140411.jar:7.6.15.v20140411]
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)[jetty-io-7.6.15.v20140411.jar:7.6.15.v20140411]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)[jetty-util-7.6.15.v20140411.jar:7.6.15.v20140411]
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)[jetty-util-7.6.15.v20140411.jar:7.6.15.v20140411]
at java.lang.Thread.run(Thread.java:745)[:1.7.0_71]
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_71]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_71]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_71]
at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_71]
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:168)[76:com.vaadin.server:7.2.7]
... 83 more
Caused by: com.vaadin.event.ListenerMethod$MethodException: Invocation of method buttonClick in org.opennms.features.topology.plugins.browsers.AlarmTable$CheckboxButton$1 failed.
at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:528)
at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:198)
at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:161)
at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:984)
at com.vaadin.ui.Button.fireClick(Button.java:393)
at com.vaadin.ui.Button$1.click(Button.java:57)
... 88 more
Caused by: org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.
at org.springframework.orm.hibernate3.HibernateTemplate.checkWriteOperationAllowed(HibernateTemplate.java:1176)[org.apache.servicemix.bundles.spring-orm-3.2.9.RELEASE_1.jar:]
at org.springframework.orm.hibernate3.HibernateTemplate$14.doInHibernate(HibernateTemplate.java:708)[org.apache.servicemix.bundles.spring-orm-3.2.9.RELEASE_1.jar:]
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:407)[org.apache.servicemix.bundles.spring-orm-3.2.9.RELEASE_1.jar:]
at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:375)[org.apache.servicemix.bundles.spring-orm-3.2.9.RELEASE_1.jar:]
at org.springframework.orm.hibernate3.HibernateTemplate.update(HibernateTemplate.java:706)[org.apache.servicemix.bundles.spring-orm-3.2.9.RELEASE_1.jar:]
at org.springframework.orm.hibernate3.HibernateTemplate.update(HibernateTemplate.java:702)[org.apache.servicemix.bundles.spring-orm-3.2.9.RELEASE_1.jar:]
at org.opennms.netmgt.dao.hibernate.AbstractDaoHibernate.update(AbstractDaoHibernate.java:422)[opennms-dao-14.0.2.jar:]
at org.opennms.netmgt.dao.hibernate.AlarmRepositoryHibernate.clearAlarms(AlarmRepositoryHibernate.java:131)[opennms-dao-14.0.2.jar:]
at Proxy3d1cb5ce_9639_4065_9644_6a1fd51897ba.clearAlarms(Unknown Source)
at org.opennms.features.topology.plugins.browsers.AlarmTable$CheckboxButton$1.buttonClick(AlarmTable.java:101)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_71]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_71]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_71]
at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_71]
at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:508)
... 93 more

Environment

Red Hat Enterprise Linux Server release 5.11 (Tikanga) OpenNMS Web Console Version: 14.0.2 Server Time: Fri Dec 12 13:00:15 EST 2014 Client Time: Fri Dec 12 2014 13:00:13 GMT-0500 (Eastern Standard Time) Java Version: 1.7.0_71 Oracle Corporation Java Virtual Machine: 24.71-b01 Oracle Corporation Operating System: Linux 2.6.18-398.el5 (amd64) Servlet Container: jetty/7.6.15.v20140411 (Servlet Spec 2.5) User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 Database Type: PostgreSQL Database Version: 9.3.5

Acceptance / Success Criteria

None

Attachments

1

Lucidchart Diagrams

Activity

Show:

Benjamin Reed January 9, 2015 at 12:31 PM

Marking this as resolved, please reopen if you see this again. Seth's fix seems a reasonable one, it's similar to a bug I squashed in the provisioning node update code a release or two ago. Hibernate is a jerk.

Seth Leger January 8, 2015 at 5:55 PM

The call on the actual line of this stack trace was a call to AlarmDao to save the alarm, but this is unnecessary because saving the acknowledgement will update the alarm. I removed this line on my system and clearing alarms worked the same. Can you test the latest 14.0.3-SNAPSHOT code to see if the problem still occurs?

commit 597f03f8895a11c76c757b11e57b8dd6b016030f

Seth Leger January 8, 2015 at 5:14 PM

FYI, I also cannot reproduce this on the latest 14.0.3-SNAPSHOT code running with Vaadin 7.2. We might need more details to be able to address this issue.

Seth Leger January 7, 2015 at 12:23 PM

I can't reproduce this on an older system running with Vaadin 7.1 so maybe Vaadin 7.2 is threading things differently and Spring is losing track of the Hibernate session. Also, on my machine, the line that is throwing the error seems superfluous. I'll test as soon as I can get my system running OpenNMS with a new version of Vaadin.

Jeff Gehlbach December 12, 2014 at 2:08 PM

This issue is associated with support ticket https://mynms.opennms.com/Ticket/Display.html?id=3480

Fixed

Details

Assignee

Reporter

Components

Fix versions

Affects versions

Priority

PagerDuty

Created December 12, 2014 at 1:03 PM
Updated January 9, 2015 at 12:31 PM
Resolved January 9, 2015 at 12:31 PM