[JBoss JIRA] (JGRP-2288) S3_PING: Under certain conditions, subclusters fail to merge after network partition
by Nick Sawadsky (Jira)
[ https://issues.jboss.org/browse/JGRP-2288?page=com.atlassian.jira.plugin.... ]
Nick Sawadsky commented on JGRP-2288:
-------------------------------------
I'm good with leaving the fix as is for now. Thanks again for digging into this one.
For some future release, I think it's worth considering the changes I mentioned in my earlier comment:
{quote}It may be that we can simply return much earlier from the method if members is not null, maybe right after the call to readAll().
Looking at the call to sendDiscoveryResponse, I also noticed that we are always passing false as the last parameter. Would it be better to pass is_coord?
{quote}
> S3_PING: Under certain conditions, subclusters fail to merge after network partition
> ------------------------------------------------------------------------------------
>
> Key: JGRP-2288
> URL: https://issues.jboss.org/browse/JGRP-2288
> Project: JGroups
> Issue Type: Bug
> Affects Versions: 3.6.15
> Reporter: Nick Sawadsky
> Assignee: Bela Ban
> Priority: Major
> Fix For: 4.0.16, 3.6.17
>
>
> Repro steps:
> 1. Set up a cluster of four nodes, two on one machine (Host 1) and two on another (Host 2). Let's call the nodes A, B, C, and D.
> 2. Configure all 4 nodes with S3_PING as the discovery mechanism. Set remove_all_files_on_view_change to true.
> 3. Start up nodes in the order A, B, C, D.
> 4. In the S3 bucket, there should be a single file with all four nodes listed. Node A should be flagged as the coordinator. Ensure that the UUID for node B is larger than the UUID for node C, when compared as two's complement integers. If this is not the case, shut down all nodes and restart in order. Repeat until the desired relationship is achieved. Note that with two's complement, a UUID having a first hex digit of 8 or higher is treated as negative for comparison purposes. So, for example, a UUID starting with 'a' is less than a UUID starting with 'b' which is less than a UUID starting with '1'.
> 5. On Host 1, use iptables to block all traffic going to and coming from Host 2.
> sudo iptables -A INPUT -s <Host 2 IP addr> -j DROP
> sudo iptables -A OUTPUT -d <Host 2 IP addr> -j DROP
> 6. Allow a few minutes for the nodes to detect the network partition. Eventually you should see two files in the S3 bucket.
> 7. Using Ctrl-C, stop node A.
> 8. You should soon find only a single file in the bucket, containing a single entry for node B. This is a result of the remove_all_files_on_view_change setting on S3_PING, which we set to true to avoid accumulation of old files in the bucket.
> 9. Resolve the network partition:
> sudo iptables -F OUTPUT
> sudo iptables -F INPUT
> 10. You will find that, even after many minutes, the subclusters are not merged.
> I believe the reason why the subclusters are never merged is as follows:
> - MERGE3 on nodes B, C and D uses S3_PING to find members to send INFO messages to. Each one finds only node B in the discovery file. As a result, only node B's view consistency checker has anything to work with.
> - On node B, the consistency checker can see that there are two coordinators, B and C. However, node C has a lower UUID, so node B defers to it to perform the merge. Node C never performs the merge because, as mentioned above, it is not receiving any INFO messages.
> I this this problem would affect FILE_PING as well, and other protocols derived from FILE_PING. Looking at the latest 4.x code, it appears the problem still exists there.
> I think the crux of the issue is that the coordinator on Host 2 (node C) does not re-create its discovery file after it is deleted by node B. Would it be reasonable for FILE_PING.findMembers() to create the discovery file if the node is a coordinator and the file doesn't exist?
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 7 months
[JBoss JIRA] (DROOLS-3429) Serialization of KiePackages fails when SecurityManager is enabled
by Marcel Abou Khalil (Jira)
[ https://issues.jboss.org/browse/DROOLS-3429?page=com.atlassian.jira.plugi... ]
Marcel Abou Khalil commented on DROOLS-3429:
--------------------------------------------
It seems my hunch was correct. After making the adjustments to consider wrapped CompiledInvokers, everything seems to work fine while still using a SecurityManager. I've created a pull request for my changes and would love to get some feedback whether this is a valid fix.
> 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: Mario Fusco
> Priority: Major
>
> 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)
7 years, 7 months
[JBoss JIRA] (DROOLS-3442) Rename the "Name" label in DMN Definition properties panel
by Liz Clayton (Jira)
Liz Clayton created DROOLS-3442:
-----------------------------------
Summary: Rename the "Name" label in DMN Definition properties panel
Key: DROOLS-3442
URL: https://issues.jboss.org/browse/DROOLS-3442
Project: Drools
Issue Type: Task
Components: DMN Editor
Reporter: Liz Clayton
Assignee: Michael Anstis
The field "Name" refers to name for the DMN model, rather than the file. The generic label "Name" might mislead users to believe that they are renaming the file name, when they are not. To clarify the purpose of this field, consider providing a more accurate field label - for example: "Model name" or etc.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 7 months
[JBoss JIRA] (DROOLS-3344) [DMN Designer] Data Types - UX improvements in the Data Type List View
by Guilherme Carreiro (Jira)
[ https://issues.jboss.org/browse/DROOLS-3344?page=com.atlassian.jira.plugi... ]
Guilherme Carreiro updated DROOLS-3344:
---------------------------------------
Description:
Improve the Data Types list view according to the mockups.
!DROOLS-3344.png|thumbnail!
# Add labels in the edit mode
# The kebab menu must be omitted in the edit mode
# Rename "Decision Tables" to "Boxed Expressions"
# Rename "Collection" to "List"
# Improve the flow by using focus
# Improve the interaction for creating many fields (enter to save (?), shortcut for a new line (?))
was:
Improve the Data Types list view according to the mockups.
!DROOLS-3344.png|thumbnail!
# Add labels in the edit mode
# The kebab menu must be omitted in the edit mode
# Rename "Decision Tables" to "Boxed Expressions"
# Rename "Collection" to "List"
# Improve the flow by using focus
# Improve the interaction for creating many fields (enter to save (?), shortcut for a new line (?))
# Rename "--" to "insert a name"
> [DMN Designer] Data Types - UX improvements in the Data Type List View
> ----------------------------------------------------------------------
>
> Key: DROOLS-3344
> URL: https://issues.jboss.org/browse/DROOLS-3344
> Project: Drools
> Issue Type: Enhancement
> Components: DMN Editor
> Reporter: Guilherme Carreiro
> Assignee: Guilherme Carreiro
> Priority: Major
> Labels: drools-tools
> Attachments: DROOLS-3344.png
>
>
> Improve the Data Types list view according to the mockups.
> !DROOLS-3344.png|thumbnail!
> # Add labels in the edit mode
> # The kebab menu must be omitted in the edit mode
> # Rename "Decision Tables" to "Boxed Expressions"
> # Rename "Collection" to "List"
> # Improve the flow by using focus
> # Improve the interaction for creating many fields (enter to save (?), shortcut for a new line (?))
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 7 months