Bug 1145105 - Kie module build synchronization leak resulting in HashMap infinite loop
Summary: Kie module build synchronization leak resulting in HashMap infinite loop
Keywords:
Status: CLOSED EOL
Alias: None
Product: JBoss BRMS Platform 6
Classification: Retired
Component: Business Central
Version: 6.1.0
Hardware: Unspecified
OS: Unspecified
high
urgent
Target Milestone: ER2
: 6.1.0
Assignee: manstis
QA Contact: Jiri Locker
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-09-22 11:50 UTC by Jiri Locker
Modified: 2020-03-27 18:38 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-03-27 18:38:07 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
Thread dump (235.28 KB, text/plain)
2014-09-22 11:50 UTC, Jiri Locker
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 1110794 0 urgent CLOSED Concurrency problem in UberFireSecurityFilter causes HTTP worker threads to get stuck in an infinite loop, adding to the... 2021-02-22 00:41:40 UTC

Internal Links: 1110794

Description Jiri Locker 2014-09-22 11:50:30 UTC
Created attachment 939978 [details]
Thread dump

Description of problem:
This issue has the same impact as bug 1110794. In both cases a code that is accessed by multiple threads uses thread-unsafe HashMap. When the race condition happens, threads accessing the HashMap concurrently will create a pointer loop in its internal table. The loop will than cause other threads getting trapped in HashMap.getEntry().

Version-Release number of selected component (if applicable):
kie-wb-distribution-wars-6.2.0-20140914.210952-116-eap-6_1.war

How reproducible:
Race condition.

Steps to Reproduce:
Not yet.

Actual results:
Threads trapped in HashMap.getEntry()

Expected results:
Should be avoided.

Additional info:
See attached thread dump. There is "http-localhost/127.0.0.1:8080-4" executing Kie module build through BuildServiceImpl. In its stack trace it is visible that the thread acquired lock at some point. On the other hand "http-localhost/127.0.0.1:8080-5" is loading data model without acquiring any lock (this may be the synchronization hole).

Comment 2 Jiri Locker 2015-03-25 10:14:29 UTC
The fix looks good and the issue has not appeared since it was reported.


Note You need to log in before you can comment on or make changes to this bug.