[JBoss JIRA] (JGRP-2287) Thread safety issues and race conditions in VERIFY_SUSPECT
by Bela Ban (Jira)
[ https://issues.jboss.org/browse/JGRP-2287?page=com.atlassian.jira.plugin.... ]
Bela Ban resolved JGRP-2287.
----------------------------
Resolution: Done
[~pferraro] Take a look as see if this fixes your issue(s)
> Thread safety issues and race conditions in VERIFY_SUSPECT
> ----------------------------------------------------------
>
> Key: JGRP-2287
> URL: https://issues.jboss.org/browse/JGRP-2287
> Project: JGroups
> Issue Type: Bug
> Affects Versions: 4.0.13
> Reporter: Paul Ferraro
> Assignee: Bela Ban
> Priority: Critical
> Fix For: 4.0.16
>
>
> While addressing JGRP-2286, I noticed a number of thread safety issues and race conditions in VERIFY_SUSPECT, e.g.
> 1. "suspects" DelayQueue is accessed concurrently within synchronized block by most of the code, however, the run() method calls isEmpty(), size(), and most notably, drainTo(...) without sufficient exclusivity. drainTo is particularly problematic in the case of concurrent modifications.
> 2. "timer" Thread is non-volatile, but its reference is set by multiple threads.
> 3. The startTimer() method only creates a new thread if Thread.isAlive() returns false. However, if the thread is just completing (i.e. exiting its loop), this method can return true, and the verification of suspected members can be delayed until the next suspect event.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 9 months
[JBoss JIRA] (JGRP-2287) Thread safety issues and race conditions in VERIFY_SUSPECT
by Bela Ban (Jira)
[ https://issues.jboss.org/browse/JGRP-2287?page=com.atlassian.jira.plugin.... ]
Bela Ban edited comment on JGRP-2287 at 1/9/19 6:07 AM:
--------------------------------------------------------
Re 1: {{DelayQueue}} is synchronized, so why should this be a problem?
Re 2: {{timer}} was set to {{volatile}} by a PR
Re 3: I changed the code slightly, so that adding to the queue and setting {{running}} is done atomically, pluschecking for the empty queue in {{run()}} and setting {{running=false}} is also done atomically.
was (Author: belaban):
Re 1: {{DelayQueue}} is synchronized, so why should this be a problem?
Re 2: {{timer}} was set to {{volatile}} by a PR
> Thread safety issues and race conditions in VERIFY_SUSPECT
> ----------------------------------------------------------
>
> Key: JGRP-2287
> URL: https://issues.jboss.org/browse/JGRP-2287
> Project: JGroups
> Issue Type: Bug
> Affects Versions: 4.0.13
> Reporter: Paul Ferraro
> Assignee: Bela Ban
> Priority: Critical
> Fix For: 4.0.16
>
>
> While addressing JGRP-2286, I noticed a number of thread safety issues and race conditions in VERIFY_SUSPECT, e.g.
> 1. "suspects" DelayQueue is accessed concurrently within synchronized block by most of the code, however, the run() method calls isEmpty(), size(), and most notably, drainTo(...) without sufficient exclusivity. drainTo is particularly problematic in the case of concurrent modifications.
> 2. "timer" Thread is non-volatile, but its reference is set by multiple threads.
> 3. The startTimer() method only creates a new thread if Thread.isAlive() returns false. However, if the thread is just completing (i.e. exiting its loop), this method can return true, and the verification of suspected members can be delayed until the next suspect event.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 9 months
[JBoss JIRA] (SWSQE-554) Add missing Openshit API calls
by Hayk Hovsepyan (Jira)
[ https://issues.jboss.org/browse/SWSQE-554?page=com.atlassian.jira.plugin.... ]
Hayk Hovsepyan reassigned SWSQE-554:
------------------------------------
Assignee: Hayk Hovsepyan (was: Michael Foley)
> Add missing Openshit API calls
> ------------------------------
>
> Key: SWSQE-554
> URL: https://issues.jboss.org/browse/SWSQE-554
> Project: Kiali QE
> Issue Type: Task
> Reporter: Hayk Hovsepyan
> Assignee: Hayk Hovsepyan
> Priority: Major
>
> Currently there are several areas in UI tests that do not have call to Openshift API for data comparison.
> 1. Figure out which calls are missing to Openshift.
> 2. Create API call.
> 3. Create assertions on that results to compare with UI data.
> 4. PR per area (API call).
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 9 months
[JBoss JIRA] (SWSQE-554) Add missing Openshit API calls
by Hayk Hovsepyan (Jira)
Hayk Hovsepyan created SWSQE-554:
------------------------------------
Summary: Add missing Openshit API calls
Key: SWSQE-554
URL: https://issues.jboss.org/browse/SWSQE-554
Project: Kiali QE
Issue Type: Task
Reporter: Hayk Hovsepyan
Assignee: Michael Foley
Currently there are several areas in UI tests that do not have call to Openshift API for data comparison.
1. Figure out which calls are missing to Openshift.
2. Create API call.
3. Create assertions on that results to compare with UI data.
4. PR per area (API call).
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 9 months
[JBoss JIRA] (DROOLS-3481) Data type constraints: DMN canvas view workflow
by Michael Anstis (Jira)
[ https://issues.jboss.org/browse/DROOLS-3481?page=com.atlassian.jira.plugi... ]
Michael Anstis commented on DROOLS-3481:
----------------------------------------
[~uxdlc] Looks good to me.
[~karreiro] Do you think we'd be able to re-use the _constraint_ widgets from the Data Types tab? (I'd like to be able to!)
> Data type constraints: DMN canvas view workflow
> -----------------------------------------------
>
> Key: DROOLS-3481
> URL: https://issues.jboss.org/browse/DROOLS-3481
> Project: Drools
> Issue Type: Story
> Components: DMN Editor
> Reporter: Liz Clayton
> Assignee: Liz Clayton
> Priority: Major
> Labels: UX, UXTeam, drools-tools
>
> Background
> Persona: Business analyst or Rules practitioner
> Use Cases:
> * From the DMN canvas view:
> As a user, I want to be able to set data type constraints for an input value in a Decision Table, so that this constraint is valid _*only*_ in the context of this specific input in this Decision Table.
> * Provide options for:
> - one-off constraints
> - apply constraints to data type.
> - possibly "yoke" constraints to data type.
> Functional considerations/ pre conditions:
> * Consider interaction in light of Property panel and consistency.
> * Underscore the notion of one-off constraints.
> * Maintain "Manage" link.
> Verification conditions:
> * Scrum team and PO review.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 9 months
[JBoss JIRA] (DROOLS-3429) Serialization of KiePackages fails when SecurityManager is enabled
by Tibor Zimányi (Jira)
[ https://issues.jboss.org/browse/DROOLS-3429?page=com.atlassian.jira.plugi... ]
Tibor Zimányi commented on DROOLS-3429:
---------------------------------------
[~aboukhal] I am afraid we missed the 7.16.0.Final release, so it will be in 7.17.0.Final, which should be out in a month or so, if nothing blocking happens. We try to release each month now [1].
[1] https://mvnrepository.com/artifact/org.drools/drools-core
> Serialization of KiePackages fails when SecurityManager is enabled
> ------------------------------------------------------------------
>
> Key: DROOLS-3429
> URL: https://issues.jboss.org/browse/DROOLS-3429
> Project: Drools
> Issue Type: Bug
> Components: core engine
> Affects Versions: 6.5.0.Final, 7.15.0.Final
> Environment: Running with IBM JDK 1.8
> Reporter: Marcel Abou Khalil
> Assignee: Tibor Zimányi
> Priority: Major
> Fix For: 7.17.0.Final
>
>
> Our Drools setup:
> - users write rules in a combination of DSL and Java code
> - rules are compiled
> - packages are stored in a database (rules are seldom changed but often ran)
> This has been working fine but in order to improve security, we've enabled the SecurityManager. This throws an exception while trying to serialize the consequence part of the rule:
> {code:java}
> Caused by: java.io.NotSerializableException: com.redacted.Rule_Events_REDACTED61028857611DefaultConsequenceInvoker
> - field (class "org.drools.core.definitions.rule.impl.RuleImpl$SafeConsequence", name: "delegate", type: "interface org.drools.core.spi.Consequence")
> - object (class "org.drools.core.definitions.rule.impl.RuleImpl$SafeConsequence", org.drools.core.definitions.rule.impl.RuleImpl$SafeConsequence@93071816)
> - writeExternal data
> - object (class "org.drools.core.definitions.rule.impl.RuleImpl", [Rule name=REDACTED, agendaGroup=end, salience=0, no-loop=true])
> - writeExternal data
> - object (class "org.drools.core.rule.JavaDialectRuntimeData", org.drools.core.rule.JavaDialectRuntimeData{...})
> - custom writeObject data (class "java.util.HashMap")
> - object (class "java.util.HashMap", {java=org.drools.core.rule.JavaDialectRuntimeData{...}, mvel=org.drools.core.rule.MVELDialectRuntimeData@b99ea6b2})
> - writeExternal data
> - root object (class "org.drools.core.rule.DialectRuntimeRegistry", org.drools.core.rule.DialectRuntimeRegistry@2d9acae8)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1213)
> at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1615)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1576)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1499)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1209)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:365)
> at org.drools.core.definitions.rule.impl.RuleImpl.writeExternal(RuleImpl.java:180)
> {code}
> Possible cause:
> Class {{RuleImpl}}, method {{writeExternal}} will write out {{null}} if the consequence is of type {{CompiledInvoker}}. But if the SecurityManager is enabled, the method {{wire}} will wrap the Consequence inside a {{SafeConsequence}}. A {{SafeConsequence}}, in contrast to the wrapped consequence is not a {{CompiledInvoker}}, so {{writeExternal}} will attempt to serialize it, instead of just writing {{null}} and fails.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 9 months