Uploaded image for project: 'jBPM'
  1. jBPM
  2. JBPM-10051

Task operations fail intermittently when using LDAPUserGroupCallback

    XMLWordPrintable

Details

    Description

      When using LDAPUserGroupCallback with the following system propertoes,

              <property name="org.jbpm.ht.callback" value="ldap"/>
              <property name="org.jbpm.ht.userinfo" value="ldap"/>
              <property name="org.jbpm.ht.admin.user" value="rhpamAdmin"/>
              <property name="org.jbpm.ht.admin.group" value="admin"/> 

      creating task fails intermittently with the following error even though specified admin user and group exists in LDAP server side.
       

      2022-03-08 11:26:47,535 ERROR [org.jbpm.services.task.wih.LocalHTWorkItemHandler] (default task-30) Tue Mar 08 11:26:47 CST 2022: Error when creating task on task server for work item id 112390. Error reported by task server: There are no known Business Administrators, task cannot be created according to WS-HT specification: org.jbpm.services.task.exception.CannotAddTaskException: There are no known Business Administrators, task cannot be created according to WS-HT specification
              at org.jbpm.services.task.commands.UserGroupCallbackTaskCommand.doCallbackOperationForPeopleAssignments(UserGroupCallbackTaskCommand.java:298)
              at org.jbpm.services.task.commands.AddTaskCommand.execute(AddTaskCommand.java:109)
              at org.jbpm.services.task.commands.AddTaskCommand.execute(AddTaskCommand.java:53)
              at org.jbpm.services.task.commands.TaskCommandExecutorImpl$SelfExecutionCommandService.execute(TaskCommandExecutorImpl.java:80)
              at org.jbpm.services.task.commands.TaskCommandExecutorImpl$SelfExecutionCommandService.execute(TaskCommandExecutorImpl.java:65)
              at org.drools.core.command.impl.AbstractInterceptor.executeNext(AbstractInterceptor.java:39)
              at org.jbpm.services.task.persistence.TaskTransactionInterceptor.execute(TaskTransactionInterceptor.java:88)
              at org.jbpm.services.task.persistence.TaskTransactionInterceptor.execute(TaskTransactionInterceptor.java:49)
              at org.drools.core.command.impl.AbstractInterceptor.executeNext(AbstractInterceptor.java:39)
              at org.drools.persistence.jta.TransactionLockInterceptor.execute(TransactionLockInterceptor.java:73)
              at org.drools.persistence.jta.TransactionLockInterceptor.execute(TransactionLockInterceptor.java:45)
              at org.drools.core.command.impl.AbstractInterceptor.executeNext(AbstractInterceptor.java:39)
              at org.drools.persistence.jpa.OptimisticLockRetryInterceptor.internalExecute(OptimisticLockRetryInterceptor.java:102)
              at org.drools.persistence.jpa.OptimisticLockRetryInterceptor.execute(OptimisticLockRetryInterceptor.java:83)
              at org.drools.persistence.jpa.OptimisticLockRetryInterceptor.execute(OptimisticLockRetryInterceptor.java:44)
              at org.drools.core.command.impl.AbstractInterceptor.executeNext(AbstractInterceptor.java:39)
              at org.jbpm.runtime.manager.impl.error.ExecutionErrorHandlerInterceptor.internalExecute(ExecutionErrorHandlerInterceptor.java:66)
              at org.jbpm.runtime.manager.impl.error.ExecutionErrorHandlerInterceptor.execute(ExecutionErrorHandlerInterceptor.java:52)
              at org.jbpm.runtime.manager.impl.error.ExecutionErrorHandlerInterceptor.execute(ExecutionErrorHandlerInterceptor.java:29)
              at org.drools.core.runtime.InternalLocalRunner.execute(InternalLocalRunner.java:37)
              at org.drools.core.runtime.InternalLocalRunner.execute(InternalLocalRunner.java:41)
              at org.jbpm.services.task.commands.TaskCommandExecutorImpl.execute(TaskCommandExecutorImpl.java:49)
              at org.jbpm.services.task.impl.command.CommandBasedTaskService.addTask(CommandBasedTaskService.java:302)
              at org.jbpm.services.task.wih.LocalHTWorkItemHandler.createTaskInstance(LocalHTWorkItemHandler.java:144)
              at org.jbpm.services.task.wih.LocalHTWorkItemHandler.executeWorkItem(LocalHTWorkItemHandler.java:86)
         ...
      

      Here is another exception with DEBUG logging when failing to complete task.,

      2022-03-09 15:30:02,734 DEBUG [org.jbpm.services.task.utils.LdapSearcher] (default task-17) Using following InitialLdapContext properties:
      2022-03-09 15:30:02,734 DEBUG [org.jbpm.services.task.utils.LdapSearcher] (default task-17) Initial Context Factory: com.sun.jndi.ldap.LdapCtxFactory
      2022-03-09 15:30:02,734 DEBUG [org.jbpm.services.task.utils.LdapSearcher] (default task-17) Authentication Type: simple
      2022-03-09 15:30:02,734 DEBUG [org.jbpm.services.task.utils.LdapSearcher] (default task-17) Protocol: null
      2022-03-09 15:30:02,734 DEBUG [org.jbpm.services.task.utils.LdapSearcher] (default task-17) Provider URL: ldap://XXXXXX:389
      2022-03-09 15:30:02,734 DEBUG [org.jbpm.services.task.utils.LdapSearcher] (default task-17) User DN: ...
      2022-03-09 15:30:02,734 DEBUG [org.jbpm.services.task.utils.LdapSearcher] (default task-17) Password: ...
      2022-03-09 15:30:02,736 DEBUG [org.jbpm.services.task.utils.LdapSearcher] (default task-27) Search scope: SUBTREE_SCOPE
      2022-03-09 15:30:02,737 DEBUG [org.jbpm.services.task.utils.LdapSearcher] (default task-17) Search scope: SUBTREE_SCOPE
      2022-03-09 15:30:02,738 DEBUG [org.jbpm.services.task.utils.LdapSearcher] (default task-27) Using following InitialLdapContext properties:
      2022-03-09 15:30:02,738 DEBUG [org.jbpm.services.task.utils.LdapSearcher] (default task-27) Initial Context Factory: com.sun.jndi.ldap.LdapCtxFactory
      2022-03-09 15:30:02,738 DEBUG [org.jbpm.services.task.utils.LdapSearcher] (default task-27) Authentication Type: simple
      2022-03-09 15:30:02,738 DEBUG [org.jbpm.services.task.utils.LdapSearcher] (default task-27) Protocol: null
      2022-03-09 15:30:02,738 DEBUG [org.jbpm.services.task.utils.LdapSearcher] (default task-27) Provider URL: ldap://XXXXXX:389
      2022-03-09 15:30:02,738 DEBUG [org.jbpm.services.task.utils.LdapSearcher] (default task-27) User DN: ...
      2022-03-09 15:30:02,738 DEBUG [org.jbpm.services.task.utils.LdapSearcher] (default task-27) Password: ...
      2022-03-09 15:30:02,738 WARN  [org.jbpm.services.task.persistence.TaskTransactionInterceptor] (default task-17) Could not commit session: java.lang.NullPointerException
              at org.jbpm.services.task.identity.LDAPUserGroupCallbackImpl.getGroupsForUser(LDAPUserGroupCallbackImpl.java:127)
              at org.jbpm.services.task.commands.UserGroupCallbackTaskCommand.doCallbackGroupsOperation(UserGroupCallbackTaskCommand.java:191)
              at org.jbpm.services.task.commands.UserGroupCallbackTaskCommand.doUserGroupCallbackOperation(UserGroupCallbackTaskCommand.java:91)
              at org.jbpm.services.task.commands.CompleteTaskCommand.execute(CompleteTaskCommand.java:72)
              at org.jbpm.services.task.commands.CompleteTaskCommand.execute(CompleteTaskCommand.java:42)
              at org.jbpm.services.task.commands.CompositeCommand.execute(CompositeCommand.java:146)
              at org.jbpm.services.task.commands.TaskCommandExecutorImpl$SelfExecutionCommandService.execute(TaskCommandExecutorImpl.java:80)
              at org.jbpm.services.task.commands.TaskCommandExecutorImpl$SelfExecutionCommandService.execute(TaskCommandExecutorImpl.java:65)
              at org.drools.core.command.impl.AbstractInterceptor.executeNext(AbstractInterceptor.java:39)
              at org.jbpm.services.task.persistence.TaskTransactionInterceptor.execute(TaskTransactionInterceptor.java:88)
              at org.jbpm.services.task.persistence.TaskTransactionInterceptor.execute(TaskTransactionInterceptor.java:49)
              at org.drools.core.command.impl.AbstractInterceptor.executeNext(AbstractInterceptor.java:39)
              at org.drools.persistence.jta.TransactionLockInterceptor.execute(TransactionLockInterceptor.java:73)
              at org.drools.persistence.jta.TransactionLockInterceptor.execute(TransactionLockInterceptor.java:45)
              at org.drools.core.command.impl.AbstractInterceptor.executeNext(AbstractInterceptor.java:39)
      

      In this exception, thread 'default task-17' and 'default task-27' are doing search concurrently.

      Attachments

        Issue Links

          Activity

            People

              gmunozfe@redhat.com Gonzalo Muñoz Fernández
              gmunozfe@redhat.com Gonzalo Muñoz Fernández
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: