Resource group with Group Alert Definition in JON returns "Could not create group alert definition children for Resources" on save if CLI Script Notification is defined with user "Myself"

Solution Verified - Updated -

Environment

  • JBoss Operations Network (JON) 3.0.1
  • Compatible or Dynamic Group Definition which contains one or more CLI Script Notifications with User To Run The Script As set to Myself

Issue

  • Dynamic group recalculation error
  • I have a dynamic group which shows this error on recalculation

    ERROR [org.rhq.enterprise.server.resource.group.definition.GroupDefinitionManagerBean] Error recalculating DynaGroups for GroupDefinition[id=10000]
    javax.ejb.EJBTransactionRolledbackException: Could not create group alert definition children for Resources [11000] under ResourceGroup[id=10200]
       at org.jboss.ejb3.tx.Ejb3TxPolicy.handleInCallerTx(Ejb3TxPolicy.java:87)
       at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:130)
       at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:195)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
       ...
       at org.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:84)
       at $Proxy320.addGroupAlertDefinitions(Unknown Source)
       at org.rhq.enterprise.server.resource.group.ResourceGroupManagerBean.addResourcesToGroupExplicit(ResourceGroupManagerBean.java:466)
       at org.rhq.enterprise.server.resource.group.ResourceGroupManagerBean.addResourcesToGroup(ResourceGroupManagerBean.java:449)
       ...
       at org.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:84)
       at $Proxy339.recalculateDynaGroups(Unknown Source)
       at org.rhq.enterprise.server.scheduler.jobs.DynaGroupAutoRecalculationJob.executeJobCode(DynaGroupAutoRecalculationJob.java:42)
       at org.rhq.enterprise.server.scheduler.jobs.AbstractStatefulJob.execute(AbstractStatefulJob.java:48)
       at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
       at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525)
    Caused by: org.rhq.enterprise.server.alert.AlertDefinitionCreationException: Could not create group alert definition children for Resources [11000] under ResourceGroup[id=10200]
       at org.rhq.enterprise.server.alert.GroupAlertDefinitionManagerBean.addGroupAlertDefinitions(GroupAlertDefinitionManagerBean.java:322)
       ...
       at org.rhq.enterprise.server.authz.RequiredPermissionsInterceptor.checkRequiredPermissions(RequiredPermissionsInterceptor.java:156)
       ...
    Caused by: javax.ejb.EJBTransactionRolledbackException
       at org.jboss.ejb3.tx.Ejb3TxPolicy.handleInCallerTx(Ejb3TxPolicy.java:87)
       ...
       at org.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:84)
       at $Proxy180.checkAuthentication(Unknown Source)
       at org.rhq.enterprise.server.plugins.alertCli.CliSender.validateAndFinalizeConfiguration(CliSender.java:234)
       at org.rhq.enterprise.server.alert.AlertNotificationManagerBean.finalizeNotifications(AlertNotificationManagerBean.java:317)
       ...
       at org.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:84)
       at $Proxy377.finalizeNotifications(Unknown Source)
       at org.rhq.enterprise.server.alert.AlertDefinitionManagerBean.checkAlertDefinition(AlertDefinitionManagerBean.java:629)
       at org.rhq.enterprise.server.alert.AlertDefinitionManagerBean.createAlertDefinition(AlertDefinitionManagerBean.java:202)
       ...
       at org.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:84)
       at $Proxy308.createAlertDefinition(Unknown Source)
       at org.rhq.enterprise.server.alert.GroupAlertDefinitionManagerBean.addGroupAlertDefinitions(GroupAlertDefinitionManagerBean.java:311)
       ... 229 more
    Caused by: java.lang.NullPointerException
       at org.rhq.enterprise.server.auth.SubjectManagerBean._checkAuthentication(SubjectManagerBean.java:372)
       at org.rhq.enterprise.server.auth.SubjectManagerBean.checkAuthentication(SubjectManagerBean.java:363)
       at sun.reflect.GeneratedMethodAccessor316.invoke(Unknown Source)
       ...
    
  • Creating or saving a group definition fails due to:

    Caused by: java.lang.NullPointerException
       at org.rhq.enterprise.server.auth.SubjectManagerBean._checkAuthentication(SubjectManagerBean.java:372)
       at org.rhq.enterprise.server.auth.SubjectManagerBean.checkAuthentication(SubjectManagerBean.java:363)
       at sun.reflect.GeneratedMethodAccessor316.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       at java.lang.reflect.Method.invoke(Method.java:616)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
       at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)
       at org.rhq.enterprise.server.common.PerformanceMonitorInterceptor.monitorHibernatePerformance(PerformanceMonitorInterceptor.java:32)
       at sun.reflect.GeneratedMethodAccessor133.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       at java.lang.reflect.Method.invoke(Method.java:616)
       at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:118)
       at org.rhq.enterprise.server.common.TransactionInterruptInterceptor.addCheckedActionToTransactionManager(TransactionInterruptInterceptor.java:77)
       at sun.reflect.GeneratedMethodAccessor132.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       at java.lang.reflect.Method.invoke(Method.java:616)
       at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:118)
       at org.rhq.enterprise.server.authz.RequiredPermissionsInterceptor.checkRequiredPermissions(RequiredPermissionsInterceptor.java:156)
       at sun.reflect.GeneratedMethodAccessor131.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       at java.lang.reflect.Method.invoke(Method.java:616)
       at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:118)
       at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
       at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
       at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
       at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:126)
       ... 339 more
    

Resolution

Enter the User Name and Password values for User To Run The Script As for the CLI Script Notification on the alert definition instead of using the value Myself.

This issue has been captured in Bug 836388 and should be addressed in a future release of JBoss ON.

Root Cause

When Myself is used, the currently authenticated user's password can not be retrieved. The result is an empty password being passed to the CLI Script configuration validation method. For more details see Bug 836388.

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments