Support Migration Notice: To update migrated JIRA cases click here to open a new case use www.vmware.com/go/sr | vFabric Hyperic 5.7.0 is Now Available

Hyperic HQ

Warnings from GAlert Event Listener in server log on shut down

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Major Major
  • Resolution: Deferred
  • Affects Version/s: 4.5
  • Fix Version/s: None
  • Component/s: Core Monitoring
  • Environment:
    MySQL, CentOS, ~1330 platforms
  • Case Links:
    none
  • Regression:
    No
  • Tags:

Description

Many instances of this warning appear in the server log after server was shut down. Have not seen this before and filing this as a major to track, given it's alert related which is a high priority functionality, but not sure of customer impact yet, so will re-prioritize as necessary after analysis

2010-08-31 15:15:12,049 WARN [Galert Event Listener1] [org.hyperic.hq.galerts.processor.GalertProcessor@136] Error processing events
org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with name 'org.springframework.orm.hibernate3.HibernateTemplate#0': Singleton bean creation not allowed while the singletons of this factory are in destruction (Do not request a bean from a BeanFactory in a destroy method implementation!)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:209)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:287)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:386)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:376)
at org.springframework.context.support.AbstractApplicationContext.getBeansOfType(AbstractApplicationContext.java:1109)
at org.hyperic.hq.context.Bootstrap.getBean(Bootstrap.java:52)
at org.hyperic.hq.hibernate.SessionManager.getHibernateTemplate(SessionManager.java:48)
at org.hyperic.hq.hibernate.SessionManager.runInSessionInternal(SessionManager.java:82)
at org.hyperic.hq.hibernate.SessionManager.runInSession(SessionManager.java:67)
at org.hyperic.hq.galerts.processor.GalertProcessorImpl.processEvent(GalertProcessorImpl.java:127)
at org.hyperic.hq.galerts.processor.GalertProcessorImpl.processEvents(GalertProcessorImpl.java:103)
at org.hyperic.hq.galerts.processor.EventListener.processEvents(EventListener.java:46)
at org.hyperic.hq.zevents.TimingListenerWrapper.processEvents(TimingListenerWrapper.java:44)
at org.hyperic.hq.zevents.BufferedListener$BufferedEventRunnable.run(BufferedListener.java:64)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

Steps that led to this:

hq-server had been restarted after being unresponsive (empty JDBC pool) and the log had errors from db deadlocks
then hq-server was shut down
after shut down, server log showed these errors (attaching log before and after shut down)

Issue Links

Activity

Hide
Kashyap Parikh added a comment -

I am not sure what it means when we log a warning message saying "Error processing event". The method has no explanation for what happens when exception is caught.

private void processEvent(final Zevent event) {
ZeventSourceId source = event.getSourceId();
Set listenerDupe;

synchronized (cfgLock) { Set listeners = (Set)_listeners.get(source); if (listeners == null) return; listenerDupe = new HashSet(listeners); }

for (Iterator i=listenerDupe.iterator(); i.hasNext(); ) {
final Gtrigger t = (Gtrigger)i.next();

// Synchronize around all event processing for a trigger, since
// they keep state and will need to be flushed
synchronized(t) {
try {
SessionManager.runInSession(new SessionRunner() {
public String getName() { return "Event Processor"; }
public void run() throws Exception { t.processEvent(event); }
});
} catch (Exception e) { _log.warn("Error processing events", e); }
}
}

Show
Kashyap Parikh added a comment - I am not sure what it means when we log a warning message saying "Error processing event". The method has no explanation for what happens when exception is caught. private void processEvent(final Zevent event) { ZeventSourceId source = event.getSourceId(); Set listenerDupe; synchronized (cfgLock) { Set listeners = (Set)_listeners.get(source); if (listeners == null) return; listenerDupe = new HashSet(listeners); } for (Iterator i=listenerDupe.iterator(); i.hasNext(); ) { final Gtrigger t = (Gtrigger)i.next(); // Synchronize around all event processing for a trigger, since // they keep state and will need to be flushed synchronized(t) { try { SessionManager.runInSession(new SessionRunner() { public String getName() { return "Event Processor"; } public void run() throws Exception { t.processEvent(event); } }); } catch (Exception e) { _log.warn("Error processing events", e); } } }
Hide
Yoav Epelman added a comment -

Bulk change to new components

Show
Yoav Epelman added a comment - Bulk change to new components

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated:
    Resolved:
    Last comment:
    1 year, 9 weeks, 3 days ago