Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 820309

Summary: Overdue timers are not triggered on session initialization
Product: [JBoss] JBoss Enterprise BRMS Platform 5 Reporter: Jiri Locker <jlocker>
Component: jBPM ConsoleAssignee: Kris Verlaenen <kverlaen>
Status: CLOSED UPSTREAM QA Contact:
Severity: high Docs Contact:
Priority: unspecified    
Version: BRMS 5.3.0.GACC: kverlaen
Target Milestone: ER7   
Target Release: BRMS 5.3.0.GA   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Previously, overdue timers fired before initialization was finished, which caused unexpected errors and resulted in execution failures. To resolve this issue, a delay for overdue timers has been introduced. The delay allows for complete initialization to occur before the overdue timers fire. The delay is configurable with a system property (jbpm.overdue.timer.delay) that has a default value of 2 seconds.
Story Points: ---
Clone Of: Environment:
Last Closed: 2025-02-10 03:19:49 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
defaultPackage.TimerProcess.bpmn2
none
exception after server restart none

Description Jiri Locker 2012-05-09 15:05:41 UTC
Created attachment 583324 [details]
defaultPackage.TimerProcess.bpmn2

Description of problem:
I have a simple process with a timer between start and end nodes. The timer reads its time cycle from a process variable:

> <bpmn2:timeCycle>#{time}</bpmn2:timeCycle>

I start the process with, say, time=1m (meaning "wait for 1m and then continue") and stop the server so that there is no session to trigger the timer in 1m after the process instance started. After starting the server again I go to jbpm-console and see the process instance is still running and the timer node is active. However the timer missed its time and will be never triggered. The process must be forced to terminate.

Version-Release number of selected component (if applicable):
ER6

How reproducible:


Steps to Reproduce:
1. use the attached process
2. follow the description
3.
  
Actual results:
Timers that missed their trigger time due to no active session will not be triggered when the persisted session is loaded.

Expected results:
When the session is loaded and there are timers that should have been triggered in the past and it didn't happen, they should trigger immediately.

Additional info:

Comment 1 Prakash Aradhya 2012-05-09 21:13:28 UTC
This is bit of a complex undertaking at this point.  Lets document this in the release and tackle this post GA.

Comment 2 Marco Rietveld 2012-05-10 15:01:34 UTC
ARGh.. apologies, I accidently pushed this fix to the community (drools) 5.3.x branch. 

This is the commit: 

https://github.com/droolsjbpm/drools/commit/8cf1e9230b5159ffca105ade566909f349fdc2c1

Comment 4 Ryan Zhang 2012-05-14 08:16:28 UTC
The fixed for this issue should be included in ER7. Please do verification on it.

Comment 6 Jiri Locker 2012-06-19 08:53:17 UTC
Created attachment 592872 [details]
exception after server restart

Comment 7 Jiri Locker 2012-06-19 08:54:14 UTC
After restarting the server, business central fails to execute the overdue timer job. An exception is logged.

Comment 8 Maciej Swiderski 2012-08-29 09:21:19 UTC
pull request ready https://github.com/droolsjbpm/jbpm/pull/122

Comment 9 Maciej Swiderski 2012-08-31 16:29:45 UTC
merged into master and 5.2.x

Comment 10 Jiri Locker 2012-10-01 11:15:33 UTC
Fix verified in BRMS 5.3.1.ER1.

Comment 11 lcarlon 2012-10-22 03:21:22 UTC
Doc Text edited for inclusion in the release notes, thanks for providing the text, Maciej.

- Lee

Comment 20 Red Hat Bugzilla 2025-02-10 03:19:49 UTC
This product has been discontinued or is no longer tracked in Red Hat Bugzilla.