flowable / flowable/flowable-engine

Process start but jobs never run and remain in [ACT_RU_JOB] table

Open
#3,782 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
9.5k
Forks
2.9k
Avg merge
7h 8m
Merged PRs (30d)
2

Description

**Describe the bug**
Process start, event PROCESS_START is revceived.
Jobs remain in the [ACT_RU_JOB] table and are not executed.
A call to Rest endpoint /service/management/jobs shows all this jobs.

A thread dump highlights 5 runnable threads with potential deadlock :

`"task-865" #1593 prio=5 os_prio=0 cpu=0.61ms elapsed=64012.60s tid=0x00007fbc584176a0 nid=0x680 runnable [0x00007fbc56d70000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.Net.poll(java.base@17.0.8.1/Native Method)
at sun.nio.ch.NioSocketImpl.park(java.base@17.0.8.1/Unknown Source)
at sun.nio.ch.NioSocketImpl.park(java.base@17.0.8.1/Unknown Source)
at sun.nio.ch.NioSocketImpl.implRead(java.base@17.0.8.1/Unknown Source)
at sun.nio.ch.NioSocketImpl.read(java.base@17.0.8.1/Unknown Source)
at sun.nio.ch.NioSocketImpl$1.read(java.base@17.0.8.1/Unknown Source)
at java.net.Socket$SocketInputStream.read(java.base@17.0.8.1/Unknown Source)
at org.postgresql.core.VisibleBufferedInputStream.readMore(VisibleBufferedInputStream.java:161)
at org.postgresql.core.VisibleBufferedInputStream.ensureBytes(VisibleBufferedInputStream.java:128)
at org.postgresql.core.VisibleBufferedInputStream.ensureBytes(VisibleBufferedInputStream.java:113)
at org.postgresql.core.VisibleBufferedInputStream.read(VisibleBufferedInputStream.java:73)
at org.postgresql.core.PGStream.receiveChar(PGStream.java:453)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2119)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:355)
- locked (a org.postgresql.core.v3.QueryExecutorImpl)
at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:490)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:408)
at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:167)
at org.postgresql.jdbc.PgPreparedStatement.execute(PgPreparedStatement.java:156)
at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44)
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java)
at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)
at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)
at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)
at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)
at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)
at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)
at org.flowable.common.engine.impl.db.DbSqlSession.update(DbSqlSession.java:107)
at org.flowable.engine.impl.persistence.entity.data.impl.MybatisExecutionDataManager.updateProcessInstanceLockTime(MybatisExecutionDataManager.java:309)
at org.flowable.engine.impl.persistence.entity.ExecutionEntityManagerImpl.updateProcessInstanceLockTime(ExecutionEntityManagerImpl.java:1065)
at org.flowable.engine.impl.cfg.DefaultInternalJobManager.lockJobScopeInternal(DefaultInternalJobManager.java:167)
at org.flowable.job.service.ScopeAwareInternalJobManager.lockJobScope(ScopeAwareInternalJobManager.java:79)
at org.flowable.job.service.impl.cmd.LockExclusiveJobCmd.execute(LockExclusiveJobCmd.java:59)
at org.flowable.engine.impl.interceptor.CommandInvoker$1.run(CommandInvoker.java:67)
at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperation(CommandInvoker.java:140)
at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperations(CommandInvoker.java:114)
at org.flowable.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:72)
at org.flowable.engine.impl.interceptor.BpmnOverrideContextInterceptor.execute(BpmnOverrideContextInterceptor.java:26)
at org.flowable.common.engine.impl.interceptor.TransactionContextInterceptor.execute(TransactionContextInterceptor.java:53)
at org.flowable.common.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:105)
at org.flowable.common.spring.SpringTransactionInterceptor.lambda$execute$0(SpringTransactionInterceptor.java:57)
at org.flowable.common.spring.SpringTransactionInterceptor$$Lambda$995/0x00007fbc63861fe8.doInTransaction(Unknown Source)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
at org.flowable.common.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:57)
at org.flowable.common.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:30)
at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:56)
at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:51)
at org.flowable.job.service.impl.asyncexecutor.ExecuteAsyncRunnable.lockJob(ExecuteAsyncRunnable.java:178)
at org.flowable.job.service.impl.asyncexecutor.ExecuteAsyncRunnable.run(ExecuteAsyncRunnable.java:112)
at org.springframework.cloud.sleuth.instrument.async.TraceRunnable.run(TraceRunnable.java:64)
at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@17.0.8.1/Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@17.0.8.1/Unknown Source)
at java.lang.Thread.run(java.base@17.0.8.1/Unknown Source)`

**Expected behavior**
Job queue should be empty. Jobs should run.

**Additional context**
The problem was happening on 6.7.2, postgres 14 (14.10 (Debian 14.10-1.pgdg120+1))
Only one Flowable engine is used within Spring boot application 2.6.12

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.