[JBoss JIRA] (ISPN-9177) Add RBAC to admin console pages
by Tristan Tarrant (Jira)
[ https://issues.jboss.org/browse/ISPN-9177?page=com.atlassian.jira.plugin.... ]
Tristan Tarrant updated ISPN-9177:
----------------------------------
Fix Version/s: 9.4.7.Final
(was: 9.4.6.Final)
> Add RBAC to admin console pages
> -------------------------------
>
> Key: ISPN-9177
> URL: https://issues.jboss.org/browse/ISPN-9177
> Project: Infinispan
> Issue Type: Feature Request
> Components: Console
> Affects Versions: 9.2.3.Final, 9.3.0.Beta1
> Reporter: Vladimir Blagojevic
> Assignee: Vladimir Blagojevic
> Priority: Major
> Fix For: 9.4.7.Final
>
>
> Up until now, we have assumed that admin user is able to invoke all operations, access and mutate all data from the admin console. With the advent of data manipulation capabilities in the console (ISPN-8759) and taking into account all existing management operations (some are destructive and irreversible), we should introduce RBAC to admin console page.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 4 months
[JBoss JIRA] (ISPN-6968) Clarify Query DSL error message regarding number format
by Tristan Tarrant (Jira)
[ https://issues.jboss.org/browse/ISPN-6968?page=com.atlassian.jira.plugin.... ]
Tristan Tarrant updated ISPN-6968:
----------------------------------
Fix Version/s: 9.4.7.Final
(was: 9.4.6.Final)
> Clarify Query DSL error message regarding number format
> -------------------------------------------------------
>
> Key: ISPN-6968
> URL: https://issues.jboss.org/browse/ISPN-6968
> Project: Infinispan
> Issue Type: Enhancement
> Affects Versions: 8.0.0.Final
> Reporter: Adrian Nistor
> Assignee: Adrian Nistor
> Priority: Major
> Fix For: 9.4.7.Final
>
>
> The query:
> {code}
> Query query = queryFactory.from(User.class)
> .select(property("name"), count("age"))
> .having("age").gte(2.3)
> .toBuilder().groupBy("name")
> .build();
> List<Object[]> list = query.list();
> {code}
> will result in an error:
> {code}
> org.infinispan.client.hotrod.exceptions.HotRodClientException:Request for messageId=13 returned server error (status=0x85): org.hibernate.hql.ParsingException: ISPN028505: Invalid numeric literal '2.3'
> at org.infinispan.client.hotrod.impl.protocol.Codec20.checkForErrorsInResponseStatus(Codec20.java:343)
> {code}
> This is a bit confusing because it does not clearly state that an integer is expected.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 4 months
[JBoss JIRA] (ISPN-7008) IllegalLifeCycleStateException from BlockingRunnable.isReady() escapes to originator
by Tristan Tarrant (Jira)
[ https://issues.jboss.org/browse/ISPN-7008?page=com.atlassian.jira.plugin.... ]
Tristan Tarrant updated ISPN-7008:
----------------------------------
Fix Version/s: 9.4.7.Final
(was: 9.4.6.Final)
> IllegalLifeCycleStateException from BlockingRunnable.isReady() escapes to originator
> ------------------------------------------------------------------------------------
>
> Key: ISPN-7008
> URL: https://issues.jboss.org/browse/ISPN-7008
> Project: Infinispan
> Issue Type: Bug
> Components: Core
> Affects Versions: 8.2.4.Final, 9.0.0.Alpha4
> Reporter: Dan Berindei
> Priority: Major
> Fix For: 9.4.7.Final
>
>
> The ISPN-5539 fix caught {{IllegalLifecycleStateException}} in {{BlockingRunnable.run()}} and sent a {{CacheNotFoundResponse}} to the originator instead. However, exceptions thrown from {{BlockingRunnable.isReady()}} are not caught, and are instead sent back to the originator. An example stack trace is available in the WFLY-7029 description.
> In this case, the exception was thrown directly when the inbound invocation handler tried to submit the command to the remote commands executor. But I see a related problem in {{BlockingTaskAwareExecutorServiceImpl.ControllerThread.run()}}, which stops with the first exception from {{isReady()}}. For {{IllegalLifecycleStateException}} it's probably ok, but for other exceptions it should continue processing new tasks.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 4 months
[JBoss JIRA] (ISPN-7022) TwoWaySplitAndMergeTest.testSplitAndMerge2 fails
by Tristan Tarrant (Jira)
[ https://issues.jboss.org/browse/ISPN-7022?page=com.atlassian.jira.plugin.... ]
Tristan Tarrant updated ISPN-7022:
----------------------------------
Fix Version/s: 9.4.7.Final
(was: 9.4.6.Final)
> TwoWaySplitAndMergeTest.testSplitAndMerge2 fails
> ------------------------------------------------
>
> Key: ISPN-7022
> URL: https://issues.jboss.org/browse/ISPN-7022
> Project: Infinispan
> Issue Type: Bug
> Affects Versions: 9.2.1.Final
> Reporter: Sebastian Łaskawiec
> Assignee: Dan Berindei
> Priority: Major
> Fix For: 9.4.7.Final
>
>
> http://ci.infinispan.org/viewLog.html?buildId=42202&tab=buildResultsDiv&b...
> {noformat}
> java.lang.AssertionError:
> at org.testng.AssertJUnit.fail(AssertJUnit.java:59)
> at org.testng.AssertJUnit.assertTrue(AssertJUnit.java:24)
> at org.infinispan.test.AbstractInfinispanTest.eventually(AbstractInfinispanTest.java:235)
> at org.infinispan.test.AbstractInfinispanTest.eventually(AbstractInfinispanTest.java:217)
> at org.infinispan.test.AbstractInfinispanTest.eventually(AbstractInfinispanTest.java:193)
> at org.infinispan.test.AbstractInfinispanTest.eventually(AbstractInfinispanTest.java:527)
> at org.infinispan.partitionhandling.BasePartitionHandlingTest.access$600(BasePartitionHandlingTest.java:44)
> at org.infinispan.partitionhandling.BasePartitionHandlingTest$Partition.assertAvailabilityMode(BasePartitionHandlingTest.java:328)
> at org.infinispan.partitionhandling.BasePartitionHandlingTest$Partition.assertDegradedMode(BasePartitionHandlingTest.java:265)
> at org.infinispan.partitionhandling.TwoWaySplitAndMergeTest.testSplitAndMerge(TwoWaySplitAndMergeTest.java:74)
> at org.infinispan.partitionhandling.TwoWaySplitAndMergeTest.testSplitAndMerge2(TwoWaySplitAndMergeTest.java:26)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:497)
> at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
> at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
> at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
> at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
> at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
> at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
> at org.testng.TestRunner.privateRun(TestRunner.java:767)
> at org.testng.TestRunner.run(TestRunner.java:617)
> at org.testng.SuiteRunner.runTest(SuiteRunner.java:348)
> at org.testng.SuiteRunner.access$000(SuiteRunner.java:38)
> at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:382)
> at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> ------- Stdout: -------
> 13:26:54,221 ERROR (testng-DelayedAvailabilityUpdateTest) [InvocationContextInterceptor] ISPN000136: Error executing command GetKeyValueCommand, writing keys []
> org.infinispan.partitionhandling.AvailabilityException: ISPN000306: Key 'MagicKey#k1Existing{1420/A1FBD015/225@DelayedAvailabilityUpdateTest-NodeT-8452}' is not available. Not all owners are in this partition
> at org.infinispan.partitionhandling.impl.PartitionHandlingManagerImpl.doCheck(PartitionHandlingManagerImpl.java:250)
> at org.infinispan.partitionhandling.impl.PartitionHandlingManagerImpl.checkRead(PartitionHandlingManagerImpl.java:102)
> at org.infinispan.partitionhandling.impl.PartitionHandlingInterceptor.postOperationPartitionCheck(PartitionHandlingInterceptor.java:188)
> at org.infinispan.partitionhandling.impl.PartitionHandlingInterceptor.lambda$handleDataReadCommand$412(PartitionHandlingInterceptor.java:145)
> at org.infinispan.partitionhandling.impl.PartitionHandlingInterceptor$$Lambda$1639/1963537113.handle(Unknown Source)
> at org.infinispan.interceptors.impl.BaseAsyncInvocationContext.invokeReturnHandlerSync(BaseAsyncInvocationContext.java:493)
> at org.infinispan.interceptors.impl.BaseAsyncInvocationContext.invokeReturnHandlersSync(BaseAsyncInvocationContext.java:125)
> at org.infinispan.interceptors.impl.BaseAsyncInvocationContext.forkInvocationSync(BaseAsyncInvocationContext.java:99)
> at org.infinispan.interceptors.impl.BaseAsyncInvocationContext.invokeForkAndHandlerSync(BaseAsyncInvocationContext.java:474)[TestSuiteProgress] Test failed: org.infinispan.partitionhandling.OptimisticTxPartitionAndMergeDuringCommitTest.testOriginatorIsolatedPartition
> 13:26:54,221 ERROR (testng-OptimisticTxPartitionAndMergeDuringCommitTest) [TestSuiteProgress] Test failed: org.infinispan.partitionhandling.OptimisticTxPartitionAndMergeDuringCommitTest.testOriginatorIsolatedPartition
> java.lang.AssertionError: There are pending transactions!
> at org.testng.AssertJUnit.fail(AssertJUnit.java:59)
> at org.testng.AssertJUnit.assertTrue(AssertJUnit.java:24)
> at org.infinispan.test.AbstractInfinispanTest.eventually(AbstractInfinispanTest.java:235)
> at org.infinispan.test.AbstractInfinispanTest.eventually(AbstractInfinispanTest.java:531)
> at org.infinispan.test.MultipleCacheManagersTest.assertNoTransactions(MultipleCacheManagersTest.java:794)
> at org.infinispan.partitionhandling.BaseTxPartitionAndMergeTest.finalAsserts(BaseTxPartitionAndMergeTest.java:96)
> at org.infinispan.partitionhandling.BaseOptimisticTxPartitionAndMergeTest.doTest(BaseOptimisticTxPartitionAndMergeTest.java:77)
> at org.infinispan.partitionhandling.OptimisticTxPartitionAndMergeDuringCommitTest.testOriginatorIsolatedPartition(OptimisticTxPartitionAndMergeDuringCommitTest.java:37)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[TestSuiteProgress] Tests succeeded: 6704, failed: 1, skipped: 0
> 13:26:54,222 ERROR (testng-DelayedAvailabilityUpdateTest) [InvocationContextInterceptor] ISPN000136: Error executing command GetKeyValueCommand, writing keys []
> org.infinispan.partitionhandling.AvailabilityException: ISPN000306: Key 'MagicKey#k2Existing{1421/89F8758B/114@DelayedAvailabilityUpdateTest-NodeQ-17336}' is not available. Not all owners are in this partition
> at org.infinispan.partitionhandling.impl.PartitionHandlingInterceptor.postOperationPartitionCheck(PartitionHandlingInterceptor.java:197)
> at org.infinispan.partitionhandling.impl.PartitionHandlingInterceptor.lambda$handleDataReadCommand$412(PartitionHandlingInterceptor.java:145)
> at org.infinispan.partitionhandling.impl.PartitionHandlingInterceptor$$Lambda$1639/1963537113.handle(Unknown Source)
> at org.infinispan.interceptors.impl.BaseAsyncInvocationContext.invokeReturnHandlerSync(BaseAsyncInvocationContext.java:493)
> at org.infinispan.interceptors.impl.BaseAsyncInvocationContext.invokeReturnHandlersSync(BaseAsyncInvocationContext.java:125)
> at org.infinispan.interceptors.impl.BaseAsyncInvocationContext.forkInvocationSync(BaseAsyncInvocationContext.java:99)
> at org.infinispan.interceptors.impl.BaseAsyncInvocationContext.invokeForkAndHandlerSync(BaseAsyncInvocationContext.java:474)
> at org.infinispan.interceptors.impl.BaseAsyncInvocationContext.afterVisit(BaseAsyncInvocationContext.java:463)
> at org.infinispan.interceptors.impl.BaseAsyncInvocationContext.invokeInterceptorsSync(BaseAsyncInvocationContext.java:322)13:26:54,222 ERROR (testng-DelayedAvailabilityUpdateTest) [InvocationContextInterceptor] ISPN000136: Error executing command GetKeyValueCommand, writing keys []
> org.infinispan.partitionhandling.AvailabilityException: ISPN000306: Key 'MagicKey#k2Existing{1421/89F8758B/114@DelayedAvailabilityUpdateTest-NodeQ-17336}' is not available. Not all owners are in this partition
> at org.infinispan.partitionhandling.impl.PartitionHandlingManagerImpl.doCheck(PartitionHandlingManagerImpl.java:250)
> at org.infinispan.partitionhandling.impl.PartitionHandlingManagerImpl.checkRead(PartitionHandlingManagerImpl.java:102)
> at org.infinispan.partitionhandling.impl.PartitionHandlingInterceptor.postOperationPartitionCheck(PartitionHandlingInterceptor.java:188)
> at org.infinispan.partitionhandling.impl.PartitionHandlingInterceptor.lambda$handleDataReadCommand$412(PartitionHandlingInterceptor.java:145)
> at org.infinispan.partitionhandling.impl.PartitionHandlingInterceptor$$Lambda$1639/1963537113.handle(Unknown Source)
> at org.infinispan.interceptors.impl.BaseAsyncInvocationContext.invokeReturnHandlerSync(BaseAsyncInvocationContext.java:493)
> at org.infinispan.interceptors.impl.BaseAsyncInvocationContext.invokeReturnHandlersSync(BaseAsyncInvocationContext.java:125)
> at org.infinispan.interceptors.impl.BaseAsyncInvocationContext.forkInvocationSync(BaseAsyncInvocationContext.java:99)
> at org.infinispan.interceptors.impl.BaseAsyncInvocationContext.invokeForkAndHandlerSync(BaseAsyncInvocationContext.java:474)13:26:49,964 ERROR (transport-thread-PessimisticTxPartitionAndMergeDuringPrepareTest-NodeG-p44001-t2) [CLUSTER] [Context=pes-cache]ISPN000319: After merge (or coordinator change), cache still hasn't recovered all its data and must stay in degraded mode. Current members are [PessimisticTxPartitionAndMergeDuringPrepareTest-NodeG-37404, PessimisticTxPartitionAndMergeDuringPrepareTest-NodeH-18972], lost members are [PessimisticTxPartitionAndMergeDuringPrepareTest-NodeE-27252, PessimisticTxPartitionAndMergeDuringPrepareTest-NodeF-47835], stable members are [PessimisticTxPartitionAndMergeDuringPrepareTest-NodeE-27252, PessimisticTxPartitionAndMergeDuringPrepareTest-NodeF-47835, PessimisticTxPartitionAndMergeDuringPrepareTest-NodeG-37404, PessimisticTxPartitionAndMergeDuringPrepareTest-NodeH-18972]
> [TestSuiteProgress] Test failed: org.infinispan.partitionhandling.TwoWaySplitAndMergeTest.testSplitAndMerge2
> 13:26:55,721 ERROR (testng-TwoWaySplitAndMergeTest) [TestSuiteProgress] Test failed: org.infinispan.partitionhandling.TwoWaySplitAndMergeTest.testSplitAndMerge2
> java.lang.AssertionError:
> at org.testng.AssertJUnit.fail(AssertJUnit.java:59)
> at org.testng.AssertJUnit.assertTrue(AssertJUnit.java:24)
> at org.infinispan.test.AbstractInfinispanTest.eventually(AbstractInfinispanTest.java:235)
> at org.infinispan.test.AbstractInfinispanTest.eventually(AbstractInfinispanTest.java:217)
> at org.infinispan.test.AbstractInfinispanTest.eventually(AbstractInfinispanTest.java:193)
> at org.infinispan.test.AbstractInfinispanTest.eventually(AbstractInfinispanTest.java:527)
> at org.infinispan.partitionhandling.BasePartitionHandlingTest.access$600(BasePartitionHandlingTest.java:44)
> at org.infinispan.partitionhandling.BasePartitionHandlingTest$Partition.assertAvailabilityMode(BasePartitionHandlingTest.java:328)
> at org.infinispan.partitionhandling.BasePartitionHandlingTest$Partition.assertDegradedMode(BasePartitionHandlingTest.java:265)13:26:49,964 ERROR (transport-thread-PessimisticTxPartitionAndMergeDuringPrepareTest-NodeG-p44001-t3) [CLUSTER] [Context=___defaultcache]ISPN000319: After merge (or coordinator change), cache still hasn't recovered all its data and must stay in degraded mode. Current members are [PessimisticTxPartitionAndMergeDuringPrepareTest-NodeG-37404, PessimisticTxPartitionAndMergeDuringPrepareTest-NodeH-18972], lost members are [PessimisticTxPartitionAndMergeDuringPrepareTest-NodeE-27252, PessimisticTxPartitionAndMergeDuringPrepareTest-NodeF-47835], stable members are [PessimisticTxPartitionAndMergeDuringPrepareTest-NodeE-27252, PessimisticTxPartitionAndMergeDuringPrepareTest-NodeF-47835, PessimisticTxPartitionAndMergeDuringPrepareTest-NodeG-37404, PessimisticTxPartitionAndMergeDuringPrepareTest-NodeH-18972]
> [TestSuiteProgress] Tests succeeded: 6704, failed: 2, skipped: 0
> 13:26:55,095 ERROR (testng-OptimisticTxPartitionAndMergeDuringPrepareTest) [InvocationContextInterceptor] ISPN000136: Error executing command ClearCommand, writing keys []
> org.infinispan.partitionhandling.AvailabilityException: ISPN000307: Cannot clear when the cluster is partitioned
> at org.infinispan.partitionhandling.impl.PartitionHandlingManagerImpl.checkClear(PartitionHandlingManagerImpl.java:108)
> at org.infinispan.partitionhandling.impl.PartitionHandlingInterceptor.visitClearCommand(PartitionHandlingInterceptor.java:95)
> at org.infinispan.partitionhandling.impl.PartitionHandlingInterceptor.visitClearCommand(PartitionHandlingInterceptor.java:38)
> at org.infinispan.commands.write.ClearCommand.acceptVisitor(ClearCommand.java:44)
> at org.infinispan.interceptors.DDAsyncInterceptor.visitCommand(DDAsyncInterceptor.java:53)
> at org.infinispan.interceptors.impl.BaseAsyncInvocationContext.invokeInterceptorsSync(BaseAsyncInvocationContext.java:307)
> at org.infinispan.interceptors.impl.BaseAsyncInvocationContext.forkInvocationSync(BaseAsyncInvocationContext.java:98)
> at org.infinispan.interceptors.impl.BaseAsyncInvocationContext.invokeForkAndHandlerSync(BaseAsyncInvocationContext.java:474)
> at org.infinispan.interceptors.impl.BaseAsyncInvocationContext.afterVisit(BaseAsyncInvocationContext.java:463)
> {noformat}
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 4 months
[JBoss JIRA] (ISPN-9257) ClustertopologyManagerTest.testAbruptLeaveAfterGetStatus2[SCATTERED_SYNC, tx=false] random failures
by Tristan Tarrant (Jira)
[ https://issues.jboss.org/browse/ISPN-9257?page=com.atlassian.jira.plugin.... ]
Tristan Tarrant updated ISPN-9257:
----------------------------------
Fix Version/s: 9.4.7.Final
(was: 9.4.6.Final)
> ClustertopologyManagerTest.testAbruptLeaveAfterGetStatus2[SCATTERED_SYNC, tx=false] random failures
> ---------------------------------------------------------------------------------------------------
>
> Key: ISPN-9257
> URL: https://issues.jboss.org/browse/ISPN-9257
> Project: Infinispan
> Issue Type: Bug
> Components: Test Suite - Core
> Affects Versions: 9.3.0.CR1
> Reporter: Dan Berindei
> Assignee: Dan Berindei
> Priority: Minor
> Labels: testsuite_stability
> Fix For: 9.4.7.Final
>
> Attachments: ISPN-8731_wrong_topology_2018-05-18_ClusterTopologyManagerTest-infinispan-core.log.gz
>
>
> The test kills the coordinator NodeA, then while NodeB is trying to recover the caches it also kills NodeC. It expects NodeB to start a rebalance with 2 nodes and discards it, in order to test that it can process the 1-node rebalance first:
> {noformat}
> 00:34:06,582 DEBUG (transport-thread-test-NodeB-p12-t6:[testCache]) [ClusterTopologyManagerTest] Discarding rebalance command CacheTopology{id=8, phase=TRANSITORY, rebalanceId=5, currentCH=ScatteredConsistentHash{ns=256, rebalanced=false, owners = (2)[test-NodeB-49590: 85, test-NodeC-58596: 85]}, pendingCH=ScatteredConsistentHash{ns=256, rebalanced=true, owners = (2)[test-NodeB-49590: 128, test-NodeC-58596: 128]}, unionCH=null, actualMembers=[test-NodeB-49590, test-NodeC-58596], persistentUUIDs=[6b96414e-15d8-4350-aa3c-4fb4fc34e888, d47dc4a9-2a95-4bb1-a83b-bb8a27c9999f]}
> 00:34:06,609 DEBUG (transport-thread-test-NodeB-p12-t2:[Topology-testCache]) [LocalTopologyManagerImpl] Updating local topology for cache testCache: CacheTopology{id=9, phase=TRANSITORY, rebalanceId=5, currentCH=ScatteredConsistentHash{ns=256, rebalanced=false, owners = (1)[test-NodeB-49590: 85]}, pendingCH=ScatteredConsistentHash{ns=256, rebalanced=false, owners = (1)[test-NodeB-49590: 128]}, unionCH=null, actualMembers=[test-NodeB-49590], persistentUUIDs=[6b96414e-15d8-4350-aa3c-4fb4fc34e888]}
> 00:34:06,609 DEBUG (transport-thread-test-NodeB-p12-t2:[Topology-testCache]) [LocalTopologyManagerImpl] Installing fake cache topology CacheTopology{id=8, phase=NO_REBALANCE, rebalanceId=4, currentCH=ScatteredConsistentHash{ns=256, rebalanced=false, owners = (1)[test-NodeB-49590: 85]}, pendingCH=null, unionCH=null, actualMembers=[test-NodeB-49590], persistentUUIDs=[6b96414e-15d8-4350-aa3c-4fb4fc34e888]} for cache testCache
> {noformat}
> Unfortunately {{PreferAvailabilityStrategy}} has changed a bit and the rebalance ids don't always match the expectations of the test, so that the 1-node rebalance is discarded instead:
> {noformat}
> 09:46:10,530 DEBUG (transport-thread-Test-NodeB-p54539-t3:[testCache]) [Test] Discarding rebalance command CacheTopology{id=9, phase=TRANSITORY, rebalanceId=5, currentCH=ScatteredConsistentHash{ns=256, rebalanced=false, owners = (1)[Test-NodeB-62039: 85]}, pendingCH=ScatteredConsistentHash{ns=256, rebalanced=true, owners = (1)[Test-NodeB-62039: 256]}, unionCH=null, actualMembers=[Test-NodeB-62039], persistentUUIDs=[0ed7be74-4485-489b-baee-28c461c9e5de]}
> {noformat}
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 4 months