[JBoss JIRA] (ISPN-7656) DefaultDataContainer.entrySet().stream().toArray(Object[]::new) may fail
by William Burns (JIRA)
[ https://issues.jboss.org/browse/ISPN-7656?page=com.atlassian.jira.plugin.... ]
William Burns updated ISPN-7656:
--------------------------------
Fix Version/s: 9.0.0.Final
> DefaultDataContainer.entrySet().stream().toArray(Object[]::new) may fail
> ------------------------------------------------------------------------
>
> Key: ISPN-7656
> URL: https://issues.jboss.org/browse/ISPN-7656
> Project: Infinispan
> Issue Type: Bug
> Components: Core
> Reporter: Radim Vansa
> Assignee: William Burns
> Fix For: 9.0.0.Final
>
>
> When the default Spliterator estimates size of the array, it calls {{DefaultDataContainer.EntrySet#size()}} that returns directly the size of container (including expired entries). Then the container is iterated using {{ImmutableEntryIterator}} which excludes expired entries by default, and this may return less elements than the original size() provided. That causes failure like this:
> {code}
> java.lang.IllegalStateException: End size 1 is less than fixed size 2
> at java.util.stream.Nodes$FixedNodeBuilder.end(Nodes.java:1232)
> at java.util.stream.Sink$ChainedReference.end(Sink.java:258)
> at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
> at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
> at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:545)
> at java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260)
> at java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:438)
> {code}
> Note that this can also happen without expiration upon concurrent modification. We have to adjust the characteristics (remove {{#SIZED}}) of provided spliterators.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years
[JBoss JIRA] (ISPN-7461) Cache is not rebalanced on merge
by Petr Jurak (JIRA)
[ https://issues.jboss.org/browse/ISPN-7461?page=com.atlassian.jira.plugin.... ]
Petr Jurak reassigned ISPN-7461:
--------------------------------
Assignee: Petr Jurak
> Cache is not rebalanced on merge
> --------------------------------
>
> Key: ISPN-7461
> URL: https://issues.jboss.org/browse/ISPN-7461
> Project: Infinispan
> Issue Type: Bug
> Components: State Transfer
> Affects Versions: 5.2.7.Final
> Reporter: Dennis Reed
> Assignee: Petr Jurak
>
> After a cluster split and merge, the consistent hash is not balanced between the members.
> For example in a 2-member cluster, after the merge one node will be primary owner of every segment. In In a larger cluster, some nodes will not own any data.
> DefaultConsistentHash{numSegments=60, numOwners=2, members=[RehashAfterPartitionMergeTest-NodeB-49100, RehashAfterPartitionMergeTest-NodeA-11552]} -- 0: 0 1, 1: 0 1, 2: 0 1, 3: 0 1, 4: 0 1, 5: 0 1, 6: 0 1, 7: 0 1, 8: 0 1, 9: 0 1, 10: 0 1, 11: 0 1, 12: 0 1, 13: 0 1, 14: 0 1, 15: 0 1, 16: 0 1, 17: 0 1, 18: 0 1, 19: 0 1, 20: 0 1, 21: 0 1, 22: 0 1, 23: 0 1, 24: 0 1, 25: 0 1, 26: 0 1, 27: 0 1, 28: 0 1, 29: 0 1, 30: 0 1, 31: 0 1, 32: 0 1, 33: 0 1, 34: 0 1, 35: 0 1, 36: 0 1, 37: 0 1, 38: 0 1, 39: 0 1, 40: 0 1, 41: 0 1, 42: 0 1, 43: 0 1, 44: 0 1, 45: 0 1, 46: 0 1, 47: 0 1, 48: 0 1, 49: 0 1, 50: 0 1, 51: 0 1, 52: 0 1, 53: 0 1, 54: 0 1, 55: 0 1, 56: 0 1, 57: 0 1, 58: 0 1, 59: 0 1
> This is triggered consistently by the RehashAfterPartitionMergeTest test case, but is not caught because it does not sufficiently check the consistent hash. (it checks RebalancePolicy.isBalanced, which merely makes sure each segment has the correct number of owners, not that it's evenly distributed).
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years
[JBoss JIRA] (ISPN-7668) Merge implementation is not correct on SimpleCache
by Katia Aresti (JIRA)
Katia Aresti created ISPN-7668:
----------------------------------
Summary: Merge implementation is not correct on SimpleCache
Key: ISPN-7668
URL: https://issues.jboss.org/browse/ISPN-7668
Project: Infinispan
Issue Type: Bug
Components: Core
Reporter: Katia Aresti
Assignee: Radim Vansa
Merge method is not correctly implemented in SimpleCache.
Merge should work this way :
* if the key is not present, add the value
* If the key is present, apply the function between the existing key's value and the given value and replace the key with the merged result
* If the merge function returns null, remove the key
The case that should work as "putIfAbsent" does't work. Merge function is applied to null and the given value.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years
[JBoss JIRA] (ISPN-7667) Use ArrayDeque for transaction context iterator
by William Burns (JIRA)
William Burns created ISPN-7667:
-----------------------------------
Summary: Use ArrayDeque for transaction context iterator
Key: ISPN-7667
URL: https://issues.jboss.org/browse/ISPN-7667
Project: Infinispan
Issue Type: Bug
Reporter: William Burns
Fix For: 9.0.0.Final
Transaction iterator stores entries from the context into a List. It then removes the first element from that as it processes those entries. This should use an ArrayDeque to have constant time removals (where as ArrayList needs to move entries to compensate removing from the front).
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years
[JBoss JIRA] (ISPN-7644) Administration console - Loader tab allows invalid configuration to be set.
by Ryan Emerson (JIRA)
[ https://issues.jboss.org/browse/ISPN-7644?page=com.atlassian.jira.plugin.... ]
Ryan Emerson updated ISPN-7644:
-------------------------------
Status: Pull Request Sent (was: Reopened)
Git Pull Request: https://github.com/infinispan/infinispan-management-console/pull/200, https://github.com/infinispan/infinispan-management-console/pull/201 (was: https://github.com/infinispan/infinispan-management-console/pull/200)
> Administration console - Loader tab allows invalid configuration to be set.
> ---------------------------------------------------------------------------
>
> Key: ISPN-7644
> URL: https://issues.jboss.org/browse/ISPN-7644
> Project: Infinispan
> Issue Type: Bug
> Components: JMX, reporting and management
> Affects Versions: 9.0.0.CR2
> Reporter: Roman Macor
> Assignee: Ryan Emerson
> Fix For: 9.0.0.Final
>
>
> Click on cache container -> cache -> configuration -> loader tab
> Some options in loader type drop down such as "Async Cache loader" (but there might be more of them) result in following error, after cluster restart:
> ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 19) WFLYCTL0013: Operation ("add") failed - address: ([
> ("subsystem" => "datagrid-infinispan"),
> ("cache-container" => "clustered"),
> ("configurations" => "CONFIGURATIONS"),
> ("distributed-cache-configuration" => "distributedCache")
> ]) - failure description: "DGISPN0102: org.infinispan.persistence.async.AsyncCacheLoader is not a valid cache store"
> Then there are valid options such as "Single File Store" which work if there is a corresponding cache store set up, in this case, File store. But if there isn't a cache store configured, the cache is no longer available after restart and configuration cannot be fixed from the console.
> I suggest we add a restriction when configuring cache loaders in the console which wouldn't allow the users to configure cache loader without having to configure appropriate cache store first.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years