[jira] [Commented] (GEODE-3938) Allow query parameters within the to_date preset query function
[ https://issues.apache.org/jira/browse/GEODE-3938?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16235397#comment-16235397 ] ASF GitHub Bot commented on GEODE-3938: --- jujoramos commented on issue #1003: Fix for GEODE-3938 URL: https://github.com/apache/geode/pull/1003#issuecomment-341352262 Hey @jhuynh1 , Thanks for reviewing this PR, I've updated it with your changes. Cheers. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Allow query parameters within the to_date preset query function > --- > > Key: GEODE-3938 > URL: https://issues.apache.org/jira/browse/GEODE-3938 > Project: Geode > Issue Type: New Feature > Components: querying >Reporter: Juan José Ramos Cassella >Assignee: Juan José Ramos Cassella > > Currently the {{to_date}} preset query function doesn't allow the user to > pass the date to format as a query parameter, which forces the user > application to add boilerplate code to manually parse the date. > Apparently there's no internal blockers preventing such a feature to be > enabled, and the change just implies a small change in {{oql.g}}: > {code} > conversionExpr : > ( > ... > | >( > ( > > "to_date"^ > ) > TOK_LPAREN! > (stringLiteral | queryParam) TOK_COMMA! stringLiteral > TOK_RPAREN! >) > ... > ) > ; > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Created] (GEODE-3943) Make LocalRegion.discoverJTA method public as it was before
Vadim Lotarev created GEODE-3943: Summary: Make LocalRegion.discoverJTA method public as it was before Key: GEODE-3943 URL: https://issues.apache.org/jira/browse/GEODE-3943 Project: Geode Issue Type: Improvement Reporter: Vadim Lotarev Please return visibility of the {{LocalRegion.discoverJTA}} method to {{public}} as it was before. I recently invoked this method as a workaround for the bug [#GEODE-2349]: {code} public Collection getAll() { ((LocalRegion)region).discoverJTA(); return region.values(); } {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (GEODE-3943) Make LocalRegion.discoverJTA method public as it was before
[ https://issues.apache.org/jira/browse/GEODE-3943?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Vadim Lotarev updated GEODE-3943: - Priority: Major (was: Trivial) > Make LocalRegion.discoverJTA method public as it was before > --- > > Key: GEODE-3943 > URL: https://issues.apache.org/jira/browse/GEODE-3943 > Project: Geode > Issue Type: Improvement >Reporter: Vadim Lotarev >Priority: Major > > Please return visibility of the {{LocalRegion.discoverJTA}} method to > {{public}} as it was before. I recently invoked this method as a workaround > for the bug [#GEODE-2349]: > {code} > public Collection getAll() { > ((LocalRegion)region).discoverJTA(); > return region.values(); > } > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (GEODE-3943) Make LocalRegion.discoverJTA method public as it was before
[ https://issues.apache.org/jira/browse/GEODE-3943?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Vadim Lotarev updated GEODE-3943: - Priority: Normal (was: Major) > Make LocalRegion.discoverJTA method public as it was before > --- > > Key: GEODE-3943 > URL: https://issues.apache.org/jira/browse/GEODE-3943 > Project: Geode > Issue Type: Improvement >Reporter: Vadim Lotarev >Priority: Normal > > Please return visibility of the {{LocalRegion.discoverJTA}} method to > {{public}} as it was before. I recently invoked this method as a workaround > for the bug [#GEODE-2349]: > {code} > public Collection getAll() { > ((LocalRegion)region).discoverJTA(); > return region.values(); > } > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (GEODE-3943) Make LocalRegion.discoverJTA method public as it was before
[ https://issues.apache.org/jira/browse/GEODE-3943?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Vadim Lotarev updated GEODE-3943: - Description: Please return visibility of the {{LocalRegion.discoverJTA}} method to {{public}} as it was before. I recently invoked this method as a workaround for the bug [GEODE-2349]: {code} public Collection getAll() { ((LocalRegion)region).discoverJTA(); return region.values(); } {code} was: Please return visibility of the {{LocalRegion.discoverJTA}} method to {{public}} as it was before. I recently invoked this method as a workaround for the bug [#GEODE-2349]: {code} public Collection getAll() { ((LocalRegion)region).discoverJTA(); return region.values(); } {code} > Make LocalRegion.discoverJTA method public as it was before > --- > > Key: GEODE-3943 > URL: https://issues.apache.org/jira/browse/GEODE-3943 > Project: Geode > Issue Type: Improvement >Reporter: Vadim Lotarev >Priority: Normal > > Please return visibility of the {{LocalRegion.discoverJTA}} method to > {{public}} as it was before. I recently invoked this method as a workaround > for the bug [GEODE-2349]: > {code} > public Collection getAll() { > ((LocalRegion)region).discoverJTA(); > return region.values(); > } > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3898) Indexes created through the `create defined indexes` command are not persisted to the cluster configuration service
[ https://issues.apache.org/jira/browse/GEODE-3898?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16235504#comment-16235504 ] ASF GitHub Bot commented on GEODE-3898: --- jujoramos commented on issue #987: Fix for GEODE-3898 URL: https://github.com/apache/geode/pull/987#issuecomment-341376743 Hey @jinmeiliao , I've tested the scenario but never added the DUnit test :-/. According to my understanding the regions must have the same configuration on every member where it's hosted, so in the worst case scenario we'll end up persisting the same configuration for the region `N` times, with `N = #membersHostingTheRegion`. The change will imply changing `CreateDefinedIndexesCommand` to persist the cluster configuration **only once per region whenever at least one member was able to succesfully create the index on the region**, something like: ``` ... for (final CliFunctionResult funcResult : funcResults) { if (cliFunctionResult.isSuccessful()) { ... // Only add the XmlEntity if it wasn't previously added from the result of another successfull member. XmlEntity.equals() is already implemented. if (!xmlEntities.contains(xmlEntities)) { xmlEntities.add(cliFunctionResult.getXmlEntity()); } ... } } ... if (!xmlEntities.isEmpty()) { for (XmlEntity xmlEntity : xmlEntities) { persistClusterConfiguration(result, () -> getSharedConfiguration().addXmlEntity(xmlEntity.get(), group)); } } ... ``` Should I make the changes and add the new DUnit test within the current pull request or directly open a new JIRA and add the changes in a new pull request relevant to that JIRA?. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Indexes created through the `create defined indexes` command are not > persisted to the cluster configuration service > --- > > Key: GEODE-3898 > URL: https://issues.apache.org/jira/browse/GEODE-3898 > Project: Geode > Issue Type: Bug > Components: querying >Reporter: Juan José Ramos Cassella >Assignee: Juan José Ramos Cassella >Priority: Major > Labels: configuration, gfsh > > When using the cluster configuration service, indexes created through {{gfsh > define index}} + {{gfsh create defined indexes}} are not persisted to the > cluster configuration service. > Steps to reproduce: > # Start a locator with {{enable-cluster-configuration-enabled=true}}. > # Start a server with {{enable-cluster-configuration-enabled=true}}. > # Create a sample region: {{gfsh create region --name=TestRegion > --type=REPLICATE}}. > # Define an index: {{gfsh define index --name=index1 --expression=value1 > --region=TestRegion}}. > # Created the defined indexes: {{gfsh create defined indexes}}. > # Restart the cluster. > # Execute {{list indexes}}. The command returns no indexes. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Created] (GEODE-3944) Geode node is not able to start normally without spring-shell library anymore
Vadim Lotarev created GEODE-3944: Summary: Geode node is not able to start normally without spring-shell library anymore Key: GEODE-3944 URL: https://issues.apache.org/jira/browse/GEODE-3944 Project: Geode Issue Type: Bug Components: core, management Reporter: Vadim Lotarev Fix For: 1.3.0 Starting from version 1.3.0 Geode cache is not able to start normally if spring-shell library is not available. This library is needed in order to implement gfsh commands and should not be required for any node. Everything worked just fine until new class {{OnlineCommandProcessor}} is introduced. Now, when attempt to create it failed (because of absence of spring-shell) {{java.lang.NoClassDefFoundError: org/springframework/shell/core/Parser}} is fired. This class is not an {{Exception}} so the following catch block is skipped and MemberMBean (as well as ManagementService) is not initialized as a result: {code} try { this.commandProcessor = new OnlineCommandProcessor(system.getProperties(), cache.getSecurityService()); } catch (Exception e) { commandServiceInitError = e.getMessage(); logger.info(LogMarker.CONFIG, "Command processor could not be initialized. {}", e.getMessage()); } {code} Probably, the best fix would be to catch {{Throwable}} instead of {{Exception}}. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3898) Indexes created through the `create defined indexes` command are not persisted to the cluster configuration service
[ https://issues.apache.org/jira/browse/GEODE-3898?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16235987#comment-16235987 ] ASF GitHub Bot commented on GEODE-3898: --- jinmeiliao commented on issue #987: Fix for GEODE-3898 URL: https://github.com/apache/geode/pull/987#issuecomment-341465456 I would suggest making the change now so that we wouldn't persisting the same index multiples times in CC and add the tests to verify that. Thanks! This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Indexes created through the `create defined indexes` command are not > persisted to the cluster configuration service > --- > > Key: GEODE-3898 > URL: https://issues.apache.org/jira/browse/GEODE-3898 > Project: Geode > Issue Type: Bug > Components: querying >Reporter: Juan José Ramos Cassella >Assignee: Juan José Ramos Cassella >Priority: Major > Labels: configuration, gfsh > > When using the cluster configuration service, indexes created through {{gfsh > define index}} + {{gfsh create defined indexes}} are not persisted to the > cluster configuration service. > Steps to reproduce: > # Start a locator with {{enable-cluster-configuration-enabled=true}}. > # Start a server with {{enable-cluster-configuration-enabled=true}}. > # Create a sample region: {{gfsh create region --name=TestRegion > --type=REPLICATE}}. > # Define an index: {{gfsh define index --name=index1 --expression=value1 > --region=TestRegion}}. > # Created the defined indexes: {{gfsh create defined indexes}}. > # Restart the cluster. > # Execute {{list indexes}}. The command returns no indexes. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Resolved] (GEODE-3521) Allow region set op to bootstrap JTA and transaction
[ https://issues.apache.org/jira/browse/GEODE-3521?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Fred Krone resolved GEODE-3521. --- Resolution: Fixed > Allow region set op to bootstrap JTA and transaction > > > Key: GEODE-3521 > URL: https://issues.apache.org/jira/browse/GEODE-3521 > Project: Geode > Issue Type: Improvement > Components: docs, transactions >Affects Versions: 1.2.0 >Reporter: Fred Krone >Assignee: Eric Shu >Priority: Major > > Allow region set op to bootstrap the transaction. To allow backward > compatibility, introduce a new GemFire property to allow the old behavior. > AC: > 1) set operation bootstraps transaction > 2) provide a GemFire property (boolean) to opt out of this behavior for > backwards compatibility > 3) update unit tests notes accordingly > 4) update documentation -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3754) Replace all public API function out parameters with return values
[ https://issues.apache.org/jira/browse/GEODE-3754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236022#comment-16236022 ] ASF GitHub Bot commented on GEODE-3754: --- dgkimura opened a new pull request #140: GEODE-3754: Replace public API function out parameters with return variables URL: https://github.com/apache/geode-native/pull/140 Unittests and integration-tests passed on Linux and Windows This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Replace all public API function out parameters with return values > - > > Key: GEODE-3754 > URL: https://issues.apache.org/jira/browse/GEODE-3754 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Jacob S. Barrett >Priority: Major > > Replace all functions with out parameters with return values. Use > {{std::tuple}} where more then one return value is required. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3936) Cleanup ThreadUtil
[ https://issues.apache.org/jira/browse/GEODE-3936?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236144#comment-16236144 ] ASF subversion and git services commented on GEODE-3936: Commit a9a444f96b6b9b2f77d5e2721907b77f20fb09ca in geode's branch refs/heads/develop from [~jinmeiliao] [ https://gitbox.apache.org/repos/asf?p=geode.git;h=a9a444f ] GEODE-3936: remove ThreadUtil (#998) > Cleanup ThreadUtil > -- > > Key: GEODE-3936 > URL: https://issues.apache.org/jira/browse/GEODE-3936 > Project: Geode > Issue Type: Bug >Reporter: Jinmei Liao >Priority: Major > > It's not useful anymore. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3936) Cleanup ThreadUtil
[ https://issues.apache.org/jira/browse/GEODE-3936?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236143#comment-16236143 ] ASF GitHub Bot commented on GEODE-3936: --- jinmeiliao closed pull request #998: GEODE-3936: remove ThreadUtils URL: https://github.com/apache/geode/pull/998 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/geode-core/src/main/java/org/apache/geode/internal/lang/ThreadUtils.java b/geode-core/src/main/java/org/apache/geode/internal/lang/ThreadUtils.java deleted file mode 100644 index 9797a183bf..00 --- a/geode-core/src/main/java/org/apache/geode/internal/lang/ThreadUtils.java +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more contributor license - * agreements. See the NOTICE file distributed with this work for additional information regarding - * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance with the License. You may obtain a - * copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - */ - -package org.apache.geode.internal.lang; - -import java.io.IOException; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.lang.Thread.State; - -/** - * The ThreadUtils class is an abstract utility class for working with and invoking methods on - * Threads. - * - * - * @see java.lang.Thread - * @since GemFire 7.0 - */ -public abstract class ThreadUtils { - - /** - * Gets the name of the particular Thread or null if the Thread object reference is null. - * - * - * @param thread the Thread object whose name is returned. - * @return a String value indicating the name of the Thread or null if the Thread object reference - * is null. - * @see java.lang.Thread#getName() - */ - public static String getThreadName(final Thread thread) { -return (thread == null ? null : thread.getName()); - } - - /** - * Interrupts the specified Thread, guarding against null. - * - * - * @param thread the Thread to interrupt. - * @see java.lang.Thread#interrupt() - */ - public static void interrupt(final Thread thread) { -if (thread != null) { - thread.interrupt(); -} - } - - /** - * Determines whether the specified Thread is alive, guarding against null Object references. - * - * - * @param thread the Thread to determine for aliveness. - * @return a boolean value indicating whether the specified Thread is alive. Will return false if - * the Thread Object references is null. - * @see java.lang.Thread#isAlive() - */ - public static boolean isAlive(final Thread thread) { -return (thread != null && thread.isAlive()); - } - - /** - * Determines whether the specified Thread is in a waiting state, guarding against null Object - * references - * - * - * @param thread the Thread to access it's state. - * @return a boolean value indicating whether the Thread is in a waiting state. If the Thread - * Object reference is null, then this method return false, as no Thread is clearly not - * waiting for anything. - * @see java.lang.Thread#getState() - * @see java.lang.Thread.State#WAITING - */ - public static boolean isWaiting(final Thread thread) { -return (thread != null && thread.getState().equals(State.WAITING)); - } - - /** - * Causes the current Thread to sleep for the specified number of milliseconds. If the current - * Thread is interrupted during sleep, the interrupt flag on the current Thread will remain set - * and the duration, in milliseconds, of completed sleep is returned. - * - * - * @param milliseconds an integer value specifying the number of milliseconds the current Thread - *should sleep. - * @return a long value indicating duration in milliseconds of completed sleep by the current - * Thread. - * @see java.lang.System#nanoTime() - * @see java.lang.Thread#sleep(long) - */ - public static long sleep(final long milliseconds) { -final long t0 = System.nanoTime(); - -try { - Thread.sleep(milliseconds); -} catch (InterruptedException ignore) { - Thread.currentThread().interrupt(); -} - -return (System.nanoTime() - t0) / 1000; - } -
[jira] [Commented] (GEODE-3941) Pulse throws NPE when SecurityManager is enabled
[ https://issues.apache.org/jira/browse/GEODE-3941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236161#comment-16236161 ] ASF GitHub Bot commented on GEODE-3941: --- jdeppe-pivotal opened a new pull request #1007: GEODE-3941: Pulse issues when SecurityManager is enabled URL: https://github.com/apache/geode/pull/1007 - Pulse UI is not updated correctly - missing servers for ex. - NPE regarding JMXUpdater in pulse.log Thank you for submitting a contribution to Apache Geode. In order to streamline the review of the contribution we ask you to ensure the following steps have been taken: ### For all changes: - [x] Is there a JIRA ticket associated with this PR? Is it referenced in the commit message? - [x] Has your PR been rebased against the latest commit within the target branch (typically `develop`)? - [x] Is your initial contribution a single, squashed commit? - [x] Does `gradlew build` run cleanly? - [x] Have you written or updated unit tests to verify your changes? - [ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under [ASF 2.0](http://www.apache.org/legal/resolved.html#category-a)? ### Note: Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible. If you need help, please send an email to d...@geode.apache.org. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Pulse throws NPE when SecurityManager is enabled > > > Key: GEODE-3941 > URL: https://issues.apache.org/jira/browse/GEODE-3941 > Project: Geode > Issue Type: Bug > Components: pulse >Reporter: Jens Deppe >Assignee: Jens Deppe > > When `SecurityManager` is enabled, Pulse produces the following errors in > `pulse.log`. > {noformat} > 2017-10-26 13:54:51,590 INFO o.a.g.t.p.i.d.Cluster > [PULSE-localhost:11099:gfadmin] Exception Occurred while updating cluster > data : > java.lang.NullPointerException: null > at > org.apache.geode.tools.pulse.internal.data.JMXDataUpdater.initializeMember(JMXDataUpdater.java:1374) > ~[classes/:?] > at > org.apache.geode.tools.pulse.internal.data.JMXDataUpdater.updateClusterMember(JMXDataUpdater.java:1415) > ~[classes/:?] > at > org.apache.geode.tools.pulse.internal.data.JMXDataUpdater.updateData(JMXDataUpdater.java:323) > ~[classes/:?] > at > org.apache.geode.tools.pulse.internal.data.Cluster.updateData(Cluster.java:2336) > ~[classes/:?] > at > org.apache.geode.tools.pulse.internal.data.Cluster.run(Cluster.java:2300) > [classes/:?] > {noformat} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3942) Add concourse pipeline scripts
[ https://issues.apache.org/jira/browse/GEODE-3942?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236162#comment-16236162 ] ASF subversion and git services commented on GEODE-3942: Commit 891274c0b20c795be998889d1483fcb8c8dfc36b in geode's branch refs/heads/develop from [~smgoller] [ https://gitbox.apache.org/repos/asf?p=geode.git;h=891274c ] Add files necessary for Concourse CI infrastructure. (#1006) * Implements GEODE-3942. * Add pipelines for develop, building the docker images that builds geode, and updating those those pipelines. * Add build script. * Add Dockerfile for building geode in Concourse. > Add concourse pipeline scripts > -- > > Key: GEODE-3942 > URL: https://issues.apache.org/jira/browse/GEODE-3942 > Project: Geode > Issue Type: Improvement > Components: ci >Reporter: Anthony Baker > > Add scripts for concourse pipelines. The initial jobs should just run > {{gradle build}}. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3937) Fix NPE when executing removeFromDisk
[ https://issues.apache.org/jira/browse/GEODE-3937?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236196#comment-16236196 ] ASF GitHub Bot commented on GEODE-3937: --- kirklund commented on a change in pull request #1002: GEODE-3937:Fix NPE when executing removeFromDisk URL: https://github.com/apache/geode/pull/1002#discussion_r148600029 ## File path: geode-wan/src/test/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderGeodeBug3937RegressionTest.java ## @@ -0,0 +1,92 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for additional information regarding + * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. You may obtain a + * copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ +package org.apache.geode.internal.cache.wan.parallel; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; + +import java.util.concurrent.TimeUnit; + +import org.apache.geode.internal.cache.wan.WANTestBase; +import org.apache.geode.test.dunit.Wait; +import org.apache.geode.test.junit.categories.DistributedTest; +import org.awaitility.Awaitility; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** + * DUnit for ParallelGatewaySenderGeodeBug3937RegressionTest overflow operations. + */ +@Category(DistributedTest.class) +public class ParallelGatewaySenderGeodeBug3937RegressionTest extends WANTestBase { Review comment: I recommend renaming the test more in line with the way these RegressionTests are named: - CreateAndLocalDestroyInTXRegressionTest - EntriesDoNotExpireDuringGIIRegressionTest - RemotePRValuesAreNotDeserializedRegressionTest - ValuesAreLazilyDeserializedRegressionTest This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Fix NPE when executing removeFromDisk > -- > > Key: GEODE-3937 > URL: https://issues.apache.org/jira/browse/GEODE-3937 > Project: Geode > Issue Type: Bug > Components: core >Reporter: dinesh akhand > > While executing the test case or clearQueueTestOnly method. we can see > exception > [vm4] java.lang.NullPointerException > [vm4] at > org.apache.geode.internal.cache.entries.DiskEntry$Helper.removeFromDisk(DiskEntry.java:1519) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractOplogDiskRegionEntry.removePhase1(AbstractOplogDiskRegionEntry.java:50) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractRegionEntry.destroy(AbstractRegionEntry.java:914) > [vm4] at > org.apache.geode.internal.cache.AbstractRegionMap.destroyEntry(AbstractRegionMap.java:3100) > [vm4] at > org.apache.geode.internal.cache.AbstractRegionMap.destroy(AbstractRegionMap.java:1429) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6465) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6439) > [vm4] at > org.apache.geode.internal.cache.BucketRegion.basicDestroy(BucketRegion.java:1167) > [vm4] at > org.apache.geode.internal.cache.AbstractBucketRegionQueue.basicDestroy(AbstractBucketRegionQueue.java:352) > [vm4] at > org.apache.geode.internal.cache.BucketRegionQueue.basicDestroy(BucketRegionQueue.java:366) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.validatedDestroy(LocalRegion.java:1101) > [vm4] at > org.apache.geode.internal.cache.DistributedRegion.validatedDestroy(DistributedRegion.java:942) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.destroy(LocalRegion.java:1086) > [vm4] at > org.apache.geode.internal.cache.AbstractRegion.destroy(AbstractRegion.java:315) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.remove(LocalRegion.java:8870) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueue.clearPartitionedRegion(ParallelGatewaySenderQueue.java:1820) > [vm4] at >
[jira] [Commented] (GEODE-3937) Fix NPE when executing removeFromDisk
[ https://issues.apache.org/jira/browse/GEODE-3937?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236202#comment-16236202 ] ASF GitHub Bot commented on GEODE-3937: --- kirklund commented on a change in pull request #1002: GEODE-3937:Fix NPE when executing removeFromDisk URL: https://github.com/apache/geode/pull/1002#discussion_r148602398 ## File path: geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueue.java ## @@ -1781,4 +1785,47 @@ ParallelGatewaySenderQueueMetaRegion newMetataRegion(InternalCache cache, final return meta; } } + + + + public void clearQueueTestOnly() { + +this.sender.pause();// it wil take internal read-write-lock +try { + for (PartitionedRegion prQ : this.userRegionNameToshadowPRMap.values()) { +clearPartitionedRegionTestOnly((PartitionedRegion) prQ); + } +} catch (Exception ee) { + throw ee; +} finally { + if (this.sender.isPaused()) +this.sender.resume(); +} + } + + // clear the partition region + private void clearPartitionedRegionTestOnly(PartitionedRegion partitionedRegion) { +LocalDataSet lds = (LocalDataSet) PartitionRegionHelper.getLocalPrimaryData(partitionedRegion); +Set set = lds.getBucketSet(); // this returns bucket ids in the Review comment: Move multi-line end-of-line comment before the line. Spotless produces some undesirable results like this. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Fix NPE when executing removeFromDisk > -- > > Key: GEODE-3937 > URL: https://issues.apache.org/jira/browse/GEODE-3937 > Project: Geode > Issue Type: Bug > Components: core >Reporter: dinesh akhand > > While executing the test case or clearQueueTestOnly method. we can see > exception > [vm4] java.lang.NullPointerException > [vm4] at > org.apache.geode.internal.cache.entries.DiskEntry$Helper.removeFromDisk(DiskEntry.java:1519) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractOplogDiskRegionEntry.removePhase1(AbstractOplogDiskRegionEntry.java:50) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractRegionEntry.destroy(AbstractRegionEntry.java:914) > [vm4] at > org.apache.geode.internal.cache.AbstractRegionMap.destroyEntry(AbstractRegionMap.java:3100) > [vm4] at > org.apache.geode.internal.cache.AbstractRegionMap.destroy(AbstractRegionMap.java:1429) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6465) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6439) > [vm4] at > org.apache.geode.internal.cache.BucketRegion.basicDestroy(BucketRegion.java:1167) > [vm4] at > org.apache.geode.internal.cache.AbstractBucketRegionQueue.basicDestroy(AbstractBucketRegionQueue.java:352) > [vm4] at > org.apache.geode.internal.cache.BucketRegionQueue.basicDestroy(BucketRegionQueue.java:366) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.validatedDestroy(LocalRegion.java:1101) > [vm4] at > org.apache.geode.internal.cache.DistributedRegion.validatedDestroy(DistributedRegion.java:942) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.destroy(LocalRegion.java:1086) > [vm4] at > org.apache.geode.internal.cache.AbstractRegion.destroy(AbstractRegion.java:315) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.remove(LocalRegion.java:8870) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueue.clearPartitionedRegion(ParallelGatewaySenderQueue.java:1820) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueue.clearQueue(ParallelGatewaySenderQueue.java:1795) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ConcurrentParallelGatewaySenderQueue.clearQueue(ConcurrentParallelGatewaySenderQueue.java:236) > [vm4] at > org.apache.geode.internal.cache.wan.WANTestBase.clearGatewaySender(WANTestBase.java:256) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueueOverflowDUnitTest.lambda$8(ParallelGatewaySenderQueueOverflowDUnitTest.java:96) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueueOverflowDUnitTest$$Lambda$42/144498586.run(Unknown > Source) > [vm4] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) -- This message was sent by Atlassian JIRA (v
[jira] [Commented] (GEODE-3937) Fix NPE when executing removeFromDisk
[ https://issues.apache.org/jira/browse/GEODE-3937?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236200#comment-16236200 ] ASF GitHub Bot commented on GEODE-3937: --- kirklund commented on a change in pull request #1002: GEODE-3937:Fix NPE when executing removeFromDisk URL: https://github.com/apache/geode/pull/1002#discussion_r148601964 ## File path: geode-core/src/main/java/org/apache/geode/internal/cache/entries/DiskEntry.java ## @@ -1510,6 +1510,9 @@ public static void removeFromDisk(DiskEntry entry, LocalRegion region, boolean i throws RegionClearedException { DiskRegion dr = region.getDiskRegion(); DiskId did = entry.getDiskId(); + if (dr == null) Review comment: Please use '{' brackets around all conditional bodies including one-liners: ```java if (diskRegion == null) { return; } ``` This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Fix NPE when executing removeFromDisk > -- > > Key: GEODE-3937 > URL: https://issues.apache.org/jira/browse/GEODE-3937 > Project: Geode > Issue Type: Bug > Components: core >Reporter: dinesh akhand > > While executing the test case or clearQueueTestOnly method. we can see > exception > [vm4] java.lang.NullPointerException > [vm4] at > org.apache.geode.internal.cache.entries.DiskEntry$Helper.removeFromDisk(DiskEntry.java:1519) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractOplogDiskRegionEntry.removePhase1(AbstractOplogDiskRegionEntry.java:50) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractRegionEntry.destroy(AbstractRegionEntry.java:914) > [vm4] at > org.apache.geode.internal.cache.AbstractRegionMap.destroyEntry(AbstractRegionMap.java:3100) > [vm4] at > org.apache.geode.internal.cache.AbstractRegionMap.destroy(AbstractRegionMap.java:1429) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6465) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6439) > [vm4] at > org.apache.geode.internal.cache.BucketRegion.basicDestroy(BucketRegion.java:1167) > [vm4] at > org.apache.geode.internal.cache.AbstractBucketRegionQueue.basicDestroy(AbstractBucketRegionQueue.java:352) > [vm4] at > org.apache.geode.internal.cache.BucketRegionQueue.basicDestroy(BucketRegionQueue.java:366) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.validatedDestroy(LocalRegion.java:1101) > [vm4] at > org.apache.geode.internal.cache.DistributedRegion.validatedDestroy(DistributedRegion.java:942) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.destroy(LocalRegion.java:1086) > [vm4] at > org.apache.geode.internal.cache.AbstractRegion.destroy(AbstractRegion.java:315) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.remove(LocalRegion.java:8870) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueue.clearPartitionedRegion(ParallelGatewaySenderQueue.java:1820) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueue.clearQueue(ParallelGatewaySenderQueue.java:1795) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ConcurrentParallelGatewaySenderQueue.clearQueue(ConcurrentParallelGatewaySenderQueue.java:236) > [vm4] at > org.apache.geode.internal.cache.wan.WANTestBase.clearGatewaySender(WANTestBase.java:256) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueueOverflowDUnitTest.lambda$8(ParallelGatewaySenderQueueOverflowDUnitTest.java:96) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueueOverflowDUnitTest$$Lambda$42/144498586.run(Unknown > Source) > [vm4] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3937) Fix NPE when executing removeFromDisk
[ https://issues.apache.org/jira/browse/GEODE-3937?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236201#comment-16236201 ] ASF GitHub Bot commented on GEODE-3937: --- kirklund commented on a change in pull request #1002: GEODE-3937:Fix NPE when executing removeFromDisk URL: https://github.com/apache/geode/pull/1002#discussion_r148600261 ## File path: geode-wan/src/test/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderGeodeBug3937RegressionTest.java ## @@ -0,0 +1,92 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for additional information regarding + * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. You may obtain a + * copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ +package org.apache.geode.internal.cache.wan.parallel; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; + +import java.util.concurrent.TimeUnit; + +import org.apache.geode.internal.cache.wan.WANTestBase; +import org.apache.geode.test.dunit.Wait; +import org.apache.geode.test.junit.categories.DistributedTest; +import org.awaitility.Awaitility; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** + * DUnit for ParallelGatewaySenderGeodeBug3937RegressionTest overflow operations. + */ +@Category(DistributedTest.class) +public class ParallelGatewaySenderGeodeBug3937RegressionTest extends WANTestBase { + + @Test + public void testParallelSenderQueueEventsOverflow_NoDiskStoreSpecified() throws Exception { +Integer lnPort = (Integer) vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId(1)); +Integer nyPort = (Integer) vm1.invoke(() -> WANTestBase.createFirstRemoteLocator(2, lnPort)); + +createCacheInVMs(nyPort, vm2);// backup-vm is not started in this regression +createReceiverInVMs(vm2); + +createCacheInVMs(lnPort, vm4);// backup-vm is not started in this regression + +vm4.invoke(() -> WANTestBase.createSenderWithoutDiskStore("ln", 2, 10, 10, false, true)); + +vm4.invoke( +() -> WANTestBase.createPartitionedRegion(getTestMethodName(), "ln", 1, 100, isOffHeap())); + +startSenderInVMs("ln", vm4); + +vm4.invoke(() -> WANTestBase.pauseSender("ln")); + + +// give some time for the senders to pause +Wait.pause(1000); + +vm2.invoke( +() -> WANTestBase.createPartitionedRegion(getTestMethodName(), null, 1, 100, isOffHeap())); + +int numEventPuts = 50; +vm4.invoke(() -> WANTestBase.doHeavyPuts(getTestMethodName(), numEventPuts)); + +long numOvVm4 = (Long) vm4.invoke(() -> WANTestBase.getNumberOfEntriesOverflownToDisk("ln")); +long numMemVm4 = (Long) vm4.invoke(() -> WANTestBase.getNumberOfEntriesInVM("ln")); + +long totalOverflown = numOvVm4 + numMemVm4; + +assertEquals("Total number of entries in VM4 is incorrect", (numEventPuts * 1), +(numOvVm4 + numMemVm4)); + +try { + vm4.invoke(() -> WANTestBase.clearGatewaySender("ln")); +} catch (Exception ee) { Review comment: Remove all try-catch blocks from the test. JUnit's stack trace and error message is much better than using fail. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Fix NPE when executing removeFromDisk > -- > > Key: GEODE-3937 > URL: https://issues.apache.org/jira/browse/GEODE-3937 > Project: Geode > Issue Type: Bug > Components: core >Reporter: dinesh akhand > > While executing the test case or clearQueueTestOnly method. we can see > exception > [vm4] java.lang.NullPointerException > [vm4] at > org.apache.geode.internal.cache.entries.DiskEntry$Helper.removeFromDisk(DiskEntry.java:1519) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractOplogDiskRegionEntry.removePhase1(AbstractOplogDiskRegionEntry.java:50) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractRegionEntry.destroy(AbstractRegionEntry.java:914) > [vm4] at > org.apache.geode.i
[jira] [Commented] (GEODE-3937) Fix NPE when executing removeFromDisk
[ https://issues.apache.org/jira/browse/GEODE-3937?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236197#comment-16236197 ] ASF GitHub Bot commented on GEODE-3937: --- kirklund commented on a change in pull request #1002: GEODE-3937:Fix NPE when executing removeFromDisk URL: https://github.com/apache/geode/pull/1002#discussion_r148602636 ## File path: geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueue.java ## @@ -1781,4 +1785,47 @@ ParallelGatewaySenderQueueMetaRegion newMetataRegion(InternalCache cache, final return meta; } } + + + + public void clearQueueTestOnly() { + +this.sender.pause();// it wil take internal read-write-lock +try { + for (PartitionedRegion prQ : this.userRegionNameToshadowPRMap.values()) { +clearPartitionedRegionTestOnly((PartitionedRegion) prQ); + } +} catch (Exception ee) { + throw ee; +} finally { + if (this.sender.isPaused()) +this.sender.resume(); +} + } + + // clear the partition region + private void clearPartitionedRegionTestOnly(PartitionedRegion partitionedRegion) { +LocalDataSet lds = (LocalDataSet) PartitionRegionHelper.getLocalPrimaryData(partitionedRegion); +Set set = lds.getBucketSet(); // this returns bucket ids in the + // function context + +for (Integer bucketId : set) { + Bucket bucket = partitionedRegion.getRegionAdvisor().getBucket(bucketId); + if (bucket instanceof ProxyBucketRegion == false) { +if (bucket instanceof BucketRegion) { + BucketRegion bucketRegion = (BucketRegion) bucket; + Set keySet = bucketRegion.keySet(); + for (Iterator iterator = keySet.iterator(); iterator.hasNext();) { +Object key = iterator.next(); +try { + bucketRegion.remove(key); +} catch (Exception ee) { + ee.printStackTrace(System.out); Review comment: Remove all printStackTrace calls. If the exception is simply rethrown then remove the catch-block altogether. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Fix NPE when executing removeFromDisk > -- > > Key: GEODE-3937 > URL: https://issues.apache.org/jira/browse/GEODE-3937 > Project: Geode > Issue Type: Bug > Components: core >Reporter: dinesh akhand > > While executing the test case or clearQueueTestOnly method. we can see > exception > [vm4] java.lang.NullPointerException > [vm4] at > org.apache.geode.internal.cache.entries.DiskEntry$Helper.removeFromDisk(DiskEntry.java:1519) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractOplogDiskRegionEntry.removePhase1(AbstractOplogDiskRegionEntry.java:50) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractRegionEntry.destroy(AbstractRegionEntry.java:914) > [vm4] at > org.apache.geode.internal.cache.AbstractRegionMap.destroyEntry(AbstractRegionMap.java:3100) > [vm4] at > org.apache.geode.internal.cache.AbstractRegionMap.destroy(AbstractRegionMap.java:1429) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6465) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6439) > [vm4] at > org.apache.geode.internal.cache.BucketRegion.basicDestroy(BucketRegion.java:1167) > [vm4] at > org.apache.geode.internal.cache.AbstractBucketRegionQueue.basicDestroy(AbstractBucketRegionQueue.java:352) > [vm4] at > org.apache.geode.internal.cache.BucketRegionQueue.basicDestroy(BucketRegionQueue.java:366) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.validatedDestroy(LocalRegion.java:1101) > [vm4] at > org.apache.geode.internal.cache.DistributedRegion.validatedDestroy(DistributedRegion.java:942) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.destroy(LocalRegion.java:1086) > [vm4] at > org.apache.geode.internal.cache.AbstractRegion.destroy(AbstractRegion.java:315) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.remove(LocalRegion.java:8870) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueue.clearPartitionedRegion(ParallelGatewaySenderQueue.java:1820) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueue.clearQueue(ParallelGatewaySenderQueue.java:1795) > [vm4] at > org.apache.geode.internal.cache.wan.par
[jira] [Commented] (GEODE-3937) Fix NPE when executing removeFromDisk
[ https://issues.apache.org/jira/browse/GEODE-3937?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236198#comment-16236198 ] ASF GitHub Bot commented on GEODE-3937: --- kirklund commented on a change in pull request #1002: GEODE-3937:Fix NPE when executing removeFromDisk URL: https://github.com/apache/geode/pull/1002#discussion_r148600551 ## File path: geode-wan/src/test/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderGeodeBug3937RegressionTest.java ## @@ -0,0 +1,92 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for additional information regarding + * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. You may obtain a + * copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ +package org.apache.geode.internal.cache.wan.parallel; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; + +import java.util.concurrent.TimeUnit; + +import org.apache.geode.internal.cache.wan.WANTestBase; +import org.apache.geode.test.dunit.Wait; +import org.apache.geode.test.junit.categories.DistributedTest; +import org.awaitility.Awaitility; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** + * DUnit for ParallelGatewaySenderGeodeBug3937RegressionTest overflow operations. + */ +@Category(DistributedTest.class) +public class ParallelGatewaySenderGeodeBug3937RegressionTest extends WANTestBase { + + @Test + public void testParallelSenderQueueEventsOverflow_NoDiskStoreSpecified() throws Exception { +Integer lnPort = (Integer) vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId(1)); +Integer nyPort = (Integer) vm1.invoke(() -> WANTestBase.createFirstRemoteLocator(2, lnPort)); + +createCacheInVMs(nyPort, vm2);// backup-vm is not started in this regression +createReceiverInVMs(vm2); + +createCacheInVMs(lnPort, vm4);// backup-vm is not started in this regression + +vm4.invoke(() -> WANTestBase.createSenderWithoutDiskStore("ln", 2, 10, 10, false, true)); + +vm4.invoke( +() -> WANTestBase.createPartitionedRegion(getTestMethodName(), "ln", 1, 100, isOffHeap())); + +startSenderInVMs("ln", vm4); + +vm4.invoke(() -> WANTestBase.pauseSender("ln")); + + +// give some time for the senders to pause +Wait.pause(1000); Review comment: Replace this thread sleep with an Awaitility call. This sort of sleep/pause just creates Flaky tests. Example: ```java await().atMost(1, MINUTE).until(() -> vm4.invoke(() -> isSenderPaused("ln")); ``` such that you would add a new method called "isSenderPaused" which returns boolean if the sender is paused. Awaitility will poll that until it returns true or fail if it takes longer than 1 minute. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Fix NPE when executing removeFromDisk > -- > > Key: GEODE-3937 > URL: https://issues.apache.org/jira/browse/GEODE-3937 > Project: Geode > Issue Type: Bug > Components: core >Reporter: dinesh akhand > > While executing the test case or clearQueueTestOnly method. we can see > exception > [vm4] java.lang.NullPointerException > [vm4] at > org.apache.geode.internal.cache.entries.DiskEntry$Helper.removeFromDisk(DiskEntry.java:1519) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractOplogDiskRegionEntry.removePhase1(AbstractOplogDiskRegionEntry.java:50) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractRegionEntry.destroy(AbstractRegionEntry.java:914) > [vm4] at > org.apache.geode.internal.cache.AbstractRegionMap.destroyEntry(AbstractRegionMap.java:3100) > [vm4] at > org.apache.geode.internal.cache.AbstractRegionMap.destroy(AbstractRegionMap.java:1429) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6465) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6439) > [vm4] a
[jira] [Commented] (GEODE-3937) Fix NPE when executing removeFromDisk
[ https://issues.apache.org/jira/browse/GEODE-3937?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236199#comment-16236199 ] ASF GitHub Bot commented on GEODE-3937: --- kirklund commented on a change in pull request #1002: GEODE-3937:Fix NPE when executing removeFromDisk URL: https://github.com/apache/geode/pull/1002#discussion_r148601614 ## File path: geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueue.java ## @@ -1781,4 +1785,47 @@ ParallelGatewaySenderQueueMetaRegion newMetataRegion(InternalCache cache, final return meta; } } + + + + public void clearQueueTestOnly() { + +this.sender.pause();// it wil take internal read-write-lock +try { + for (PartitionedRegion prQ : this.userRegionNameToshadowPRMap.values()) { +clearPartitionedRegionTestOnly((PartitionedRegion) prQ); + } +} catch (Exception ee) { Review comment: Remove catch block that simply rethrows the caught exception. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Fix NPE when executing removeFromDisk > -- > > Key: GEODE-3937 > URL: https://issues.apache.org/jira/browse/GEODE-3937 > Project: Geode > Issue Type: Bug > Components: core >Reporter: dinesh akhand > > While executing the test case or clearQueueTestOnly method. we can see > exception > [vm4] java.lang.NullPointerException > [vm4] at > org.apache.geode.internal.cache.entries.DiskEntry$Helper.removeFromDisk(DiskEntry.java:1519) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractOplogDiskRegionEntry.removePhase1(AbstractOplogDiskRegionEntry.java:50) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractRegionEntry.destroy(AbstractRegionEntry.java:914) > [vm4] at > org.apache.geode.internal.cache.AbstractRegionMap.destroyEntry(AbstractRegionMap.java:3100) > [vm4] at > org.apache.geode.internal.cache.AbstractRegionMap.destroy(AbstractRegionMap.java:1429) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6465) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6439) > [vm4] at > org.apache.geode.internal.cache.BucketRegion.basicDestroy(BucketRegion.java:1167) > [vm4] at > org.apache.geode.internal.cache.AbstractBucketRegionQueue.basicDestroy(AbstractBucketRegionQueue.java:352) > [vm4] at > org.apache.geode.internal.cache.BucketRegionQueue.basicDestroy(BucketRegionQueue.java:366) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.validatedDestroy(LocalRegion.java:1101) > [vm4] at > org.apache.geode.internal.cache.DistributedRegion.validatedDestroy(DistributedRegion.java:942) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.destroy(LocalRegion.java:1086) > [vm4] at > org.apache.geode.internal.cache.AbstractRegion.destroy(AbstractRegion.java:315) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.remove(LocalRegion.java:8870) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueue.clearPartitionedRegion(ParallelGatewaySenderQueue.java:1820) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueue.clearQueue(ParallelGatewaySenderQueue.java:1795) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ConcurrentParallelGatewaySenderQueue.clearQueue(ConcurrentParallelGatewaySenderQueue.java:236) > [vm4] at > org.apache.geode.internal.cache.wan.WANTestBase.clearGatewaySender(WANTestBase.java:256) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueueOverflowDUnitTest.lambda$8(ParallelGatewaySenderQueueOverflowDUnitTest.java:96) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueueOverflowDUnitTest$$Lambda$42/144498586.run(Unknown > Source) > [vm4] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3937) Fix NPE when executing removeFromDisk
[ https://issues.apache.org/jira/browse/GEODE-3937?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236195#comment-16236195 ] ASF GitHub Bot commented on GEODE-3937: --- kirklund commented on a change in pull request #1002: GEODE-3937:Fix NPE when executing removeFromDisk URL: https://github.com/apache/geode/pull/1002#discussion_r148603154 ## File path: geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueue.java ## @@ -1781,4 +1785,47 @@ ParallelGatewaySenderQueueMetaRegion newMetataRegion(InternalCache cache, final return meta; } } + + + + public void clearQueueTestOnly() { + +this.sender.pause();// it wil take internal read-write-lock +try { + for (PartitionedRegion prQ : this.userRegionNameToshadowPRMap.values()) { +clearPartitionedRegionTestOnly((PartitionedRegion) prQ); + } +} catch (Exception ee) { + throw ee; +} finally { + if (this.sender.isPaused()) +this.sender.resume(); +} + } + + // clear the partition region + private void clearPartitionedRegionTestOnly(PartitionedRegion partitionedRegion) { +LocalDataSet lds = (LocalDataSet) PartitionRegionHelper.getLocalPrimaryData(partitionedRegion); +Set set = lds.getBucketSet(); // this returns bucket ids in the + // function context + +for (Integer bucketId : set) { + Bucket bucket = partitionedRegion.getRegionAdvisor().getBucket(bucketId); + if (bucket instanceof ProxyBucketRegion == false) { +if (bucket instanceof BucketRegion) { + BucketRegion bucketRegion = (BucketRegion) bucket; + Set keySet = bucketRegion.keySet(); + for (Iterator iterator = keySet.iterator(); iterator.hasNext();) { Review comment: Nested for-loop, if-block, if-block, for-loop is too deep. Please combine the two if-blocks into one if-block. Consider breaking out if-block or inner for-loop to a new private method to improve readability. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Fix NPE when executing removeFromDisk > -- > > Key: GEODE-3937 > URL: https://issues.apache.org/jira/browse/GEODE-3937 > Project: Geode > Issue Type: Bug > Components: core >Reporter: dinesh akhand > > While executing the test case or clearQueueTestOnly method. we can see > exception > [vm4] java.lang.NullPointerException > [vm4] at > org.apache.geode.internal.cache.entries.DiskEntry$Helper.removeFromDisk(DiskEntry.java:1519) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractOplogDiskRegionEntry.removePhase1(AbstractOplogDiskRegionEntry.java:50) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractRegionEntry.destroy(AbstractRegionEntry.java:914) > [vm4] at > org.apache.geode.internal.cache.AbstractRegionMap.destroyEntry(AbstractRegionMap.java:3100) > [vm4] at > org.apache.geode.internal.cache.AbstractRegionMap.destroy(AbstractRegionMap.java:1429) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6465) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6439) > [vm4] at > org.apache.geode.internal.cache.BucketRegion.basicDestroy(BucketRegion.java:1167) > [vm4] at > org.apache.geode.internal.cache.AbstractBucketRegionQueue.basicDestroy(AbstractBucketRegionQueue.java:352) > [vm4] at > org.apache.geode.internal.cache.BucketRegionQueue.basicDestroy(BucketRegionQueue.java:366) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.validatedDestroy(LocalRegion.java:1101) > [vm4] at > org.apache.geode.internal.cache.DistributedRegion.validatedDestroy(DistributedRegion.java:942) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.destroy(LocalRegion.java:1086) > [vm4] at > org.apache.geode.internal.cache.AbstractRegion.destroy(AbstractRegion.java:315) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.remove(LocalRegion.java:8870) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueue.clearPartitionedRegion(ParallelGatewaySenderQueue.java:1820) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueue.clearQueue(ParallelGatewaySenderQueue.java:1795) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ConcurrentParallelGatewaySenderQueue.clearQueue(ConcurrentParallelGatewaySenderQueu
[jira] [Updated] (GEODE-2349) Region.values() doesn't work properly inside JTA
[ https://issues.apache.org/jira/browse/GEODE-2349?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Nick Reich updated GEODE-2349: -- Component/s: transactions > Region.values() doesn't work properly inside JTA > > > Key: GEODE-2349 > URL: https://issues.apache.org/jira/browse/GEODE-2349 > Project: Geode > Issue Type: Bug > Components: transactions >Reporter: Vadim Lotarev >Priority: Major > > I experienced rather strange error invoking Region.values() within JTA > transaction: {{java.lang.IllegalStateException: The Region collection is not > transactional but is being used in a transaction}}. > Doing some investigation I think I understand what is the cause of this > error. Everything works if {{Region.values()}} invoked alone in transaction > but failed if you invoke, say, {{get()}} on another (or the same) region > before starting iteration over the collection returned by {{values()}}. I > think that the reason of this error is the absence of {{discoverJTA()}} in > {{values()}} method. So, when {{values()}} invoked first time {{EntriesSet}} > is created with {{myTX = null}} since no transaction is determined (as soon > as {{discoverJTA()}} is not invoked). If you are iterating immediately > everything works as soon as there are no transaction on a region still > ({{EntriesSet.myTx = null && topRegion.isTX() = false}}). But as soon as you > invoke {{get()}} (or any other method where {{discoverJTA()}} is invoked) > than all regions became transactional and next execution of > {{EntriesSet.iterator()}} failed ({{EntriesSet.myTx = null && > topRegion.isTX() = true}}). -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (GEODE-3943) Make LocalRegion.discoverJTA method public as it was before
[ https://issues.apache.org/jira/browse/GEODE-3943?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Nick Reich updated GEODE-3943: -- Component/s: transactions > Make LocalRegion.discoverJTA method public as it was before > --- > > Key: GEODE-3943 > URL: https://issues.apache.org/jira/browse/GEODE-3943 > Project: Geode > Issue Type: Improvement > Components: transactions >Reporter: Vadim Lotarev >Priority: Normal > > Please return visibility of the {{LocalRegion.discoverJTA}} method to > {{public}} as it was before. I recently invoked this method as a workaround > for the bug [GEODE-2349]: > {code} > public Collection getAll() { > ((LocalRegion)region).discoverJTA(); > return region.values(); > } > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3942) Add concourse pipeline scripts
[ https://issues.apache.org/jira/browse/GEODE-3942?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236224#comment-16236224 ] ASF GitHub Bot commented on GEODE-3942: --- smgoller opened a new pull request #1008: Fix up branches. GEODE-3942 URL: https://github.com/apache/geode/pull/1008 Thank you for submitting a contribution to Apache Geode. In order to streamline the review of the contribution we ask you to ensure the following steps have been taken: ### For all changes: - [ X ] Is there a JIRA ticket associated with this PR? Is it referenced in the commit message? - [ X ] Has your PR been rebased against the latest commit within the target branch (typically `develop`)? - [ X ] Is your initial contribution a single, squashed commit? - [ N/A ] Does `gradlew build` run cleanly? - [ N/A ] Have you written or updated unit tests to verify your changes? - [ N/A ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under [ASF 2.0](http://www.apache.org/legal/resolved.html#category-a)? ### Note: Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible. If you need help, please send an email to d...@geode.apache.org. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Add concourse pipeline scripts > -- > > Key: GEODE-3942 > URL: https://issues.apache.org/jira/browse/GEODE-3942 > Project: Geode > Issue Type: Improvement > Components: ci >Reporter: Anthony Baker > > Add scripts for concourse pipelines. The initial jobs should just run > {{gradle build}}. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3944) Geode node is not able to start normally without spring-shell library anymore
[ https://issues.apache.org/jira/browse/GEODE-3944?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236226#comment-16236226 ] Patrick Rhomberg commented on GEODE-3944: - > Probably, the best fix would be to catch {{Throwable}} instead of > {{Exception}}. Remember that {{Throwable}} parents {{Error}}, which should generally not be caught except for logging before death, per its own documentation. {quote} public class Error extends Throwable An Error is a subclass of Throwable that indicates serious problems that a reasonable application should not try to catch. Most such errors are abnormal conditions. The ThreadDeath error, though a "normal" condition, is also a subclass of Error because most applications should not try to catch it. A method is not required to declare in its throws clause any subclasses of Error that might be thrown during the execution of the method but not caught, since these errors are abnormal conditions that should never occur. That is, Error and its subclasses are regarded as unchecked exceptions for the purposes of compile-time checking of exceptions. {quote} > Geode node is not able to start normally without spring-shell library anymore > - > > Key: GEODE-3944 > URL: https://issues.apache.org/jira/browse/GEODE-3944 > Project: Geode > Issue Type: Bug > Components: core, management >Reporter: Vadim Lotarev > Fix For: 1.3.0 > > > Starting from version 1.3.0 Geode cache is not able to start normally if > spring-shell library is not available. This library is needed in order to > implement gfsh commands and should not be required for any node. Everything > worked just fine until new class {{OnlineCommandProcessor}} is introduced. > Now, when attempt to create it failed (because of absence of spring-shell) > {{java.lang.NoClassDefFoundError: org/springframework/shell/core/Parser}} is > fired. This class is not an {{Exception}} so the following catch block is > skipped and MemberMBean (as well as ManagementService) is not initialized as > a result: > {code} > try { > this.commandProcessor = > new OnlineCommandProcessor(system.getProperties(), > cache.getSecurityService()); > } catch (Exception e) { > commandServiceInitError = e.getMessage(); > logger.info(LogMarker.CONFIG, "Command processor could not be > initialized. {}", > e.getMessage()); > } > {code} > Probably, the best fix would be to catch {{Throwable}} instead of > {{Exception}}. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Comment Edited] (GEODE-3944) Geode node is not able to start normally without spring-shell library anymore
[ https://issues.apache.org/jira/browse/GEODE-3944?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236226#comment-16236226 ] Patrick Rhomberg edited comment on GEODE-3944 at 11/2/17 5:38 PM: -- > Probably, the best fix would be to catch {{Throwable}} instead of > {{Exception}}. Remember that {{Throwable}} parents {{Error}}, which should generally not be caught except for logging before death, per its own documentation. {quote} public class Error extends Throwable An Error is a subclass of Throwable that indicates serious problems that a reasonable application should not try to catch. Most such errors are abnormal conditions. The ThreadDeath error, though a "normal" condition, is also a subclass of Error because most applications should not try to catch it. {quote} [Error docs|https://docs.oracle.com/javase/8/docs/api/java/lang/Error.html] was (Author: prhomberg): > Probably, the best fix would be to catch {{Throwable}} instead of > {{Exception}}. Remember that {{Throwable}} parents {{Error}}, which should generally not be caught except for logging before death, per its own documentation. {quote} public class Error extends Throwable An Error is a subclass of Throwable that indicates serious problems that a reasonable application should not try to catch. Most such errors are abnormal conditions. The ThreadDeath error, though a "normal" condition, is also a subclass of Error because most applications should not try to catch it. A method is not required to declare in its throws clause any subclasses of Error that might be thrown during the execution of the method but not caught, since these errors are abnormal conditions that should never occur. That is, Error and its subclasses are regarded as unchecked exceptions for the purposes of compile-time checking of exceptions. {quote} > Geode node is not able to start normally without spring-shell library anymore > - > > Key: GEODE-3944 > URL: https://issues.apache.org/jira/browse/GEODE-3944 > Project: Geode > Issue Type: Bug > Components: core, management >Reporter: Vadim Lotarev > Fix For: 1.3.0 > > > Starting from version 1.3.0 Geode cache is not able to start normally if > spring-shell library is not available. This library is needed in order to > implement gfsh commands and should not be required for any node. Everything > worked just fine until new class {{OnlineCommandProcessor}} is introduced. > Now, when attempt to create it failed (because of absence of spring-shell) > {{java.lang.NoClassDefFoundError: org/springframework/shell/core/Parser}} is > fired. This class is not an {{Exception}} so the following catch block is > skipped and MemberMBean (as well as ManagementService) is not initialized as > a result: > {code} > try { > this.commandProcessor = > new OnlineCommandProcessor(system.getProperties(), > cache.getSecurityService()); > } catch (Exception e) { > commandServiceInitError = e.getMessage(); > logger.info(LogMarker.CONFIG, "Command processor could not be > initialized. {}", > e.getMessage()); > } > {code} > Probably, the best fix would be to catch {{Throwable}} instead of > {{Exception}}. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3942) Add concourse pipeline scripts
[ https://issues.apache.org/jira/browse/GEODE-3942?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236230#comment-16236230 ] ASF GitHub Bot commented on GEODE-3942: --- jdeppe-pivotal closed pull request #1008: Fix up branches. GEODE-3942 URL: https://github.com/apache/geode/pull/1008 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/ci/pipelines/docker-images.yml b/ci/pipelines/docker-images.yml index 2b2ed19319..aa36b85853 100644 --- a/ci/pipelines/docker-images.yml +++ b/ci/pipelines/docker-images.yml @@ -22,7 +22,7 @@ resources: type: git source: uri: https://github.com/apache/geode.git -branch: create-docker-image +branch: develop paths: - ci/docker/* diff --git a/ci/pipelines/meta.yml b/ci/pipelines/meta.yml index baad9fc25e..91d86f4412 100644 --- a/ci/pipelines/meta.yml +++ b/ci/pipelines/meta.yml @@ -36,14 +36,14 @@ resources: type: git source: uri: https://github.com/apache/geode.git -branch: create-docker-image +branch: develop paths: - ci/pipelines/develop.yml - name: geode-docker-images-pipeline type: git source: uri: https://github.com/apache/geode.git -branch: create-docker-image +branch: develop paths: - ci/pipelines/docker-images.yml This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Add concourse pipeline scripts > -- > > Key: GEODE-3942 > URL: https://issues.apache.org/jira/browse/GEODE-3942 > Project: Geode > Issue Type: Improvement > Components: ci >Reporter: Anthony Baker > > Add scripts for concourse pipelines. The initial jobs should just run > {{gradle build}}. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3942) Add concourse pipeline scripts
[ https://issues.apache.org/jira/browse/GEODE-3942?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236231#comment-16236231 ] ASF subversion and git services commented on GEODE-3942: Commit b5603c188ed283d2979ff3fcdf8be5f45d3c4788 in geode's branch refs/heads/develop from [~smgoller] [ https://gitbox.apache.org/repos/asf?p=geode.git;h=b5603c1 ] Fix up branches. GEODE-3942 (#1008) > Add concourse pipeline scripts > -- > > Key: GEODE-3942 > URL: https://issues.apache.org/jira/browse/GEODE-3942 > Project: Geode > Issue Type: Improvement > Components: ci >Reporter: Anthony Baker > > Add scripts for concourse pipelines. The initial jobs should just run > {{gradle build}}. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3944) Geode node is not able to start normally without spring-shell library anymore
[ https://issues.apache.org/jira/browse/GEODE-3944?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236237#comment-16236237 ] Jinmei Liao commented on GEODE-3944: Spring-shell should always be required to be on the classpath. It's not just recently introduced. > Geode node is not able to start normally without spring-shell library anymore > - > > Key: GEODE-3944 > URL: https://issues.apache.org/jira/browse/GEODE-3944 > Project: Geode > Issue Type: Bug > Components: core, management >Reporter: Vadim Lotarev > Fix For: 1.3.0 > > > Starting from version 1.3.0 Geode cache is not able to start normally if > spring-shell library is not available. This library is needed in order to > implement gfsh commands and should not be required for any node. Everything > worked just fine until new class {{OnlineCommandProcessor}} is introduced. > Now, when attempt to create it failed (because of absence of spring-shell) > {{java.lang.NoClassDefFoundError: org/springframework/shell/core/Parser}} is > fired. This class is not an {{Exception}} so the following catch block is > skipped and MemberMBean (as well as ManagementService) is not initialized as > a result: > {code} > try { > this.commandProcessor = > new OnlineCommandProcessor(system.getProperties(), > cache.getSecurityService()); > } catch (Exception e) { > commandServiceInitError = e.getMessage(); > logger.info(LogMarker.CONFIG, "Command processor could not be > initialized. {}", > e.getMessage()); > } > {code} > Probably, the best fix would be to catch {{Throwable}} instead of > {{Exception}}. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Created] (GEODE-3945) Display more information for GfshRule failures
Jared Stewart created GEODE-3945: Summary: Display more information for GfshRule failures Key: GEODE-3945 URL: https://issues.apache.org/jira/browse/GEODE-3945 Project: Geode Issue Type: Improvement Components: gfsh, tests Reporter: Jared Stewart GEODE-3830 added a feature to dump log files to the console when a script executed by GfshRule has failures. However, the directories in which it will look for log files need to be expanded. Consider the following example: {noformat} GfshScript.of("start locator --name=locator", "start server --name=server").execute(gfshRule); GfshScript.of("connect", "status locator --name=locator1").execute(gfshRule); {noformat} Say that "status locator" fails. Currently, the GfshRule will only dump log files associated with members started by *that* particular gfsh script. More specifically, there will be a directory structure like this: /tempFolder/script1/locator/ /tempFolder/script1/server/ /tempFolder/script2/ GfshRule will only display log files from subdirectories of the script that failed. (So when script2 fails, it won't display the log files of Locator or Server, since those are under the script1 directory). We should change that to include every directory under tempFolder recursively. (See GfshExecution#printLogFiles). -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3944) Geode node is not able to start normally without spring-shell library anymore
[ https://issues.apache.org/jira/browse/GEODE-3944?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236279#comment-16236279 ] Vadim Lotarev commented on GEODE-3944: -- {quote}Spring-shell should always be required to be on the classpath. It's not just recently introduced.{quote} Well, we worked without spring-shell several years without any problems. It is required for gfsh purposes only - isn't it? If your node doesn't use gfsh than there is no any reason to have spring-shell in the classpath. Moreover there is a logic in _your_ code that just caught all exceptions, logs the fact that spring shell is absent (with CONFIG level, even not WARN!) and continue working in the normal mode. Indeed, worked before 1.3.0. > Geode node is not able to start normally without spring-shell library anymore > - > > Key: GEODE-3944 > URL: https://issues.apache.org/jira/browse/GEODE-3944 > Project: Geode > Issue Type: Bug > Components: core, management >Reporter: Vadim Lotarev > Fix For: 1.3.0 > > > Starting from version 1.3.0 Geode cache is not able to start normally if > spring-shell library is not available. This library is needed in order to > implement gfsh commands and should not be required for any node. Everything > worked just fine until new class {{OnlineCommandProcessor}} is introduced. > Now, when attempt to create it failed (because of absence of spring-shell) > {{java.lang.NoClassDefFoundError: org/springframework/shell/core/Parser}} is > fired. This class is not an {{Exception}} so the following catch block is > skipped and MemberMBean (as well as ManagementService) is not initialized as > a result: > {code} > try { > this.commandProcessor = > new OnlineCommandProcessor(system.getProperties(), > cache.getSecurityService()); > } catch (Exception e) { > commandServiceInitError = e.getMessage(); > logger.info(LogMarker.CONFIG, "Command processor could not be > initialized. {}", > e.getMessage()); > } > {code} > Probably, the best fix would be to catch {{Throwable}} instead of > {{Exception}}. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3754) Replace all public API function out parameters with return values
[ https://issues.apache.org/jira/browse/GEODE-3754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236289#comment-16236289 ] ASF GitHub Bot commented on GEODE-3754: --- pivotal-jbarrett commented on issue #140: GEODE-3754: Replace public API function out parameters with return variables URL: https://github.com/apache/geode-native/pull/140#issuecomment-341510052 @dgkimura I have fixed formatting for you. Will keep reviewing. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Replace all public API function out parameters with return values > - > > Key: GEODE-3754 > URL: https://issues.apache.org/jira/browse/GEODE-3754 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Jacob S. Barrett >Priority: Major > > Replace all functions with out parameters with return values. Use > {{std::tuple}} where more then one return value is required. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Resolved] (GEODE-3239) Lucene indexing/searching for nested objects
[ https://issues.apache.org/jira/browse/GEODE-3239?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Diane Hardman resolved GEODE-3239. -- Resolution: Fixed Fix Version/s: 1.4.0 Feature branch merged to develop and is complete. Feature will be included in Geode 1.4.0 release. > Lucene indexing/searching for nested objects > > > Key: GEODE-3239 > URL: https://issues.apache.org/jira/browse/GEODE-3239 > Project: Geode > Issue Type: New Feature > Components: docs, lucene >Reporter: Dan Smith >Assignee: Diane Hardman >Priority: Major > Fix For: 1.4.0 > > > Some Geode users create data models that include nested and complex > objects. The current Geode Lucene integration supports indexing and > querying only the top-level fields in the data object. The objective of > this proposal is to support indexing and querying an arbitrary depth of > nested objects. > Add support for nested objects as proposed in this wiki page: > https://cwiki.apache.org/confluence/display/GEODE/Lucene+Text+Search+on+Nested+Object > And this associated email thread: > http://markmail.org/thread/kgkcd6slqi4uhywg -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (GEODE-3569) Validate that lucene serializer is the same on all members
[ https://issues.apache.org/jira/browse/GEODE-3569?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Diane Hardman updated GEODE-3569: - Fix Version/s: (was: 1.3.0) 1.4.0 > Validate that lucene serializer is the same on all members > -- > > Key: GEODE-3569 > URL: https://issues.apache.org/jira/browse/GEODE-3569 > Project: Geode > Issue Type: Sub-task > Components: lucene >Reporter: Dan Smith >Priority: Major > Fix For: 1.4.0 > > > Validate that users configure the same lucene serializer class name on all > members. > Acceptance: > If two members configure different lucene serializer classes, then the second > member to start will throw an exception when creating the region. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3944) Geode node is not able to start normally without spring-shell library anymore
[ https://issues.apache.org/jira/browse/GEODE-3944?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236312#comment-16236312 ] Vadim Lotarev commented on GEODE-3944: -- [~prhomberg], {{Error}} is not always an unrecoverable problem (as in this specific case, for example). You can catch exactly {{NoClassDefFoundError}} if you prefer. BTW there is a lot of {{Throwable}} catching in your code. You can use {{SystemFailure.checkFailure()}} in order to test whether VM is still usable. > Geode node is not able to start normally without spring-shell library anymore > - > > Key: GEODE-3944 > URL: https://issues.apache.org/jira/browse/GEODE-3944 > Project: Geode > Issue Type: Bug > Components: core, management >Reporter: Vadim Lotarev > Fix For: 1.3.0 > > > Starting from version 1.3.0 Geode cache is not able to start normally if > spring-shell library is not available. This library is needed in order to > implement gfsh commands and should not be required for any node. Everything > worked just fine until new class {{OnlineCommandProcessor}} is introduced. > Now, when attempt to create it failed (because of absence of spring-shell) > {{java.lang.NoClassDefFoundError: org/springframework/shell/core/Parser}} is > fired. This class is not an {{Exception}} so the following catch block is > skipped and MemberMBean (as well as ManagementService) is not initialized as > a result: > {code} > try { > this.commandProcessor = > new OnlineCommandProcessor(system.getProperties(), > cache.getSecurityService()); > } catch (Exception e) { > commandServiceInitError = e.getMessage(); > logger.info(LogMarker.CONFIG, "Command processor could not be > initialized. {}", > e.getMessage()); > } > {code} > Probably, the best fix would be to catch {{Throwable}} instead of > {{Exception}}. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Comment Edited] (GEODE-3944) Geode node is not able to start normally without spring-shell library anymore
[ https://issues.apache.org/jira/browse/GEODE-3944?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236279#comment-16236279 ] Vadim Lotarev edited comment on GEODE-3944 at 11/2/17 6:18 PM: --- {quote}Spring-shell should always be required to be on the classpath. It's not just recently introduced.{quote} Well, we worked without spring-shell several years without any problems. It is required for gfsh purposes only - isn't it? If your node doesn't use gfsh than there is no any reason to have spring-shell in the classpath. Moreover there is a logic in _your_ code that just catches all exceptions, logs the fact that spring shell is absent (with CONFIG level, even not WARN!) and continues working in the normal mode. Indeed, worked before 1.3.0. was (Author: vlotarev): {quote}Spring-shell should always be required to be on the classpath. It's not just recently introduced.{quote} Well, we worked without spring-shell several years without any problems. It is required for gfsh purposes only - isn't it? If your node doesn't use gfsh than there is no any reason to have spring-shell in the classpath. Moreover there is a logic in _your_ code that just caught all exceptions, logs the fact that spring shell is absent (with CONFIG level, even not WARN!) and continue working in the normal mode. Indeed, worked before 1.3.0. > Geode node is not able to start normally without spring-shell library anymore > - > > Key: GEODE-3944 > URL: https://issues.apache.org/jira/browse/GEODE-3944 > Project: Geode > Issue Type: Bug > Components: core, management >Reporter: Vadim Lotarev > Fix For: 1.3.0 > > > Starting from version 1.3.0 Geode cache is not able to start normally if > spring-shell library is not available. This library is needed in order to > implement gfsh commands and should not be required for any node. Everything > worked just fine until new class {{OnlineCommandProcessor}} is introduced. > Now, when attempt to create it failed (because of absence of spring-shell) > {{java.lang.NoClassDefFoundError: org/springframework/shell/core/Parser}} is > fired. This class is not an {{Exception}} so the following catch block is > skipped and MemberMBean (as well as ManagementService) is not initialized as > a result: > {code} > try { > this.commandProcessor = > new OnlineCommandProcessor(system.getProperties(), > cache.getSecurityService()); > } catch (Exception e) { > commandServiceInitError = e.getMessage(); > logger.info(LogMarker.CONFIG, "Command processor could not be > initialized. {}", > e.getMessage()); > } > {code} > Probably, the best fix would be to catch {{Throwable}} instead of > {{Exception}}. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3944) Geode node is not able to start normally without spring-shell library anymore
[ https://issues.apache.org/jira/browse/GEODE-3944?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236357#comment-16236357 ] Patrick Rhomberg commented on GEODE-3944: - > You can catch exactly {{NoClassDefFoundError}} if you prefer. Yes, my intended meaning was favor specificity over the generic {{Throwable}}, since the latter could catch problems that should indeed result in failure. > BTW there is a lot of Throwable catching in your code. I'm aware. I think those emit an unpleasant code smell as well. > Geode node is not able to start normally without spring-shell library anymore > - > > Key: GEODE-3944 > URL: https://issues.apache.org/jira/browse/GEODE-3944 > Project: Geode > Issue Type: Bug > Components: core, management >Reporter: Vadim Lotarev > Fix For: 1.3.0 > > > Starting from version 1.3.0 Geode cache is not able to start normally if > spring-shell library is not available. This library is needed in order to > implement gfsh commands and should not be required for any node. Everything > worked just fine until new class {{OnlineCommandProcessor}} is introduced. > Now, when attempt to create it failed (because of absence of spring-shell) > {{java.lang.NoClassDefFoundError: org/springframework/shell/core/Parser}} is > fired. This class is not an {{Exception}} so the following catch block is > skipped and MemberMBean (as well as ManagementService) is not initialized as > a result: > {code} > try { > this.commandProcessor = > new OnlineCommandProcessor(system.getProperties(), > cache.getSecurityService()); > } catch (Exception e) { > commandServiceInitError = e.getMessage(); > logger.info(LogMarker.CONFIG, "Command processor could not be > initialized. {}", > e.getMessage()); > } > {code} > Probably, the best fix would be to catch {{Throwable}} instead of > {{Exception}}. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Created] (GEODE-3946) Attempting to connect an older version gfsh to a newer version JMX manager should fail
Barry Oglesby created GEODE-3946: Summary: Attempting to connect an older version gfsh to a newer version JMX manager should fail Key: GEODE-3946 URL: https://issues.apache.org/jira/browse/GEODE-3946 Project: Geode Issue Type: Bug Components: gfsh Reporter: Barry Oglesby Currently, an older version of gfsh can connect to a newer version JMX manager, but when a command is invoked, it'll fail with a cryptic message. An example is: 9.1.1 JMX manager 9.0.3 gfsh Attempting to execute a query with this scenario logs a 'Could not parse command string' message: {noformat} gfsh>query --query='SELECT sauce FROM /data' --interactive=true Could not parse command string. query --query='SELECT sauce FROM /data' --interactive=true --step-name=SELECT_EXEC {noformat} Instead, gfsh should fail at connect time with an {{IncompatibleVersionException}} or something similar. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3943) Make LocalRegion.discoverJTA method public as it was before
[ https://issues.apache.org/jira/browse/GEODE-3943?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236519#comment-16236519 ] Eric Shu commented on GEODE-3943: - As of Geode 1.4.0 (not yet released yet), the region set operation will be transactional (including JTA) even if it is the first operation in the transaction/JTA. Please see GEODE-3521, which has been closed. LocalRegion.discoverJTA() is a internal method which may and could be changed/moved etc. > Make LocalRegion.discoverJTA method public as it was before > --- > > Key: GEODE-3943 > URL: https://issues.apache.org/jira/browse/GEODE-3943 > Project: Geode > Issue Type: Improvement > Components: transactions >Reporter: Vadim Lotarev >Priority: Normal > > Please return visibility of the {{LocalRegion.discoverJTA}} method to > {{public}} as it was before. I recently invoked this method as a workaround > for the bug [GEODE-2349]: > {code} > public Collection getAll() { > ((LocalRegion)region).discoverJTA(); > return region.values(); > } > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Assigned] (GEODE-2349) Region.values() doesn't work properly inside JTA
[ https://issues.apache.org/jira/browse/GEODE-2349?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Eric Shu reassigned GEODE-2349: --- Assignee: Eric Shu > Region.values() doesn't work properly inside JTA > > > Key: GEODE-2349 > URL: https://issues.apache.org/jira/browse/GEODE-2349 > Project: Geode > Issue Type: Bug > Components: transactions >Reporter: Vadim Lotarev >Assignee: Eric Shu >Priority: Major > > I experienced rather strange error invoking Region.values() within JTA > transaction: {{java.lang.IllegalStateException: The Region collection is not > transactional but is being used in a transaction}}. > Doing some investigation I think I understand what is the cause of this > error. Everything works if {{Region.values()}} invoked alone in transaction > but failed if you invoke, say, {{get()}} on another (or the same) region > before starting iteration over the collection returned by {{values()}}. I > think that the reason of this error is the absence of {{discoverJTA()}} in > {{values()}} method. So, when {{values()}} invoked first time {{EntriesSet}} > is created with {{myTX = null}} since no transaction is determined (as soon > as {{discoverJTA()}} is not invoked). If you are iterating immediately > everything works as soon as there are no transaction on a region still > ({{EntriesSet.myTx = null && topRegion.isTX() = false}}). But as soon as you > invoke {{get()}} (or any other method where {{discoverJTA()}} is invoked) > than all regions became transactional and next execution of > {{EntriesSet.iterator()}} failed ({{EntriesSet.myTx = null && > topRegion.isTX() = true}}). -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3637) configureClientSSLSocket call can block Acceptor thread
[ https://issues.apache.org/jira/browse/GEODE-3637?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236523#comment-16236523 ] ASF subversion and git services commented on GEODE-3637: Commit f24cd5452b7f8bae65cfa663466f7834247f2ecf in geode's branch refs/heads/feature/GEODE-3637 from kohlmu-pivotal [ https://gitbox.apache.org/repos/asf?p=geode.git;h=f24cd54 ] GEODE-3637: Amended AcceptorImpl.java to use a Connection pool that provides stats > configureClientSSLSocket call can block Acceptor thread > --- > > Key: GEODE-3637 > URL: https://issues.apache.org/jira/browse/GEODE-3637 > Project: Geode > Issue Type: Bug > Components: client/server >Affects Versions: 1.1.0, 1.2.0 >Reporter: Vahram Aharonyan >Assignee: Udo Kohlmeyer >Priority: Critical > > org.apache.geode.internal.net.SocketCreator#configureClientSSLSocket timeout > for Socket is being configured before starting SSL handshake only if passed > "timeout" argument is larger than 0. > Having sslSocket.startHandshake issued without setting timeout can result to > the blocking of caller thread as in GEODE-2898, GEODE-3023. > Below is the example of Handshaker thread stack-trace that got stacked: > "Handshaker /10.124.195.100:1 Thread 183" Id=526300 in RUNNABLE (running > in native) > Total blocked: 4 Total waited: 884 > java.net.SocketInputStream.socketRead0(Native Method) > java.net.SocketInputStream.socketRead(SocketInputStream.java:116) > java.net.SocketInputStream.read(SocketInputStream.java:171) > java.net.SocketInputStream.read(SocketInputStream.java:141) > sun.security.ssl.InputRecord.readFully(InputRecord.java:465) > sun.security.ssl.InputRecord.read(InputRecord.java:503) > sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973) > > sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) > sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403) > sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387) > > org.apache.geode.internal.net.SocketCreator.configureClientSSLSocket(SocketCreator.java:1088) > org.apache.geode.internal.net.SocketCreator.connect(SocketCreator.java:967) > org.apache.geode.internal.net.SocketCreator.connect(SocketCreator.java:929) > > org.apache.geode.internal.net.SocketCreator.connectForServer(SocketCreator.java:908) > org.apache.geode.internal.tcp.Connection.(Connection.java:1306) > org.apache.geode.internal.tcp.Connection.createSender(Connection.java:1094) > > org.apache.geode.internal.tcp.ConnectionTable.getOrderedAndOwned(ConnectionTable.java:553) > org.apache.geode.internal.tcp.ConnectionTable.get(ConnectionTable.java:664) > org.apache.geode.internal.tcp.TCPConduit.getConnection(TCPConduit.java:1037) > > org.apache.geode.distributed.internal.direct.DirectChannel.getConnections(DirectChannel.java:543) > > org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:319) > > org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:605) > > org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.directChannelSend(GMSMembershipManager.java:1684) > > org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.send(GMSMembershipManager.java:1875) > > org.apache.geode.distributed.internal.DistributionChannel.send(DistributionChannel.java:82) > > org.apache.geode.distributed.internal.DistributionManager.sendOutgoing(DistributionManager.java:3416) > > org.apache.geode.distributed.internal.DistributionManager.sendMessage(DistributionManager.java:3453) > > org.apache.geode.distributed.internal.DistributionManager.putOutgoing(DistributionManager.java:1832) > > org.apache.geode.internal.cache.UpdateAttributesProcessor.sendProfileUpdate(UpdateAttributesProcessor.java:162) > > org.apache.geode.internal.cache.UpdateAttributesProcessor.distribute(UpdateAttributesProcessor.java:97) > > org.apache.geode.internal.cache.DistributedRegion.initialized(DistributedRegion.java:1128) > > org.apache.geode.internal.cache.LocalRegion.initialize(LocalRegion.java:2413) > > org.apache.geode.internal.cache.DistributedRegion.initialize(DistributedRegion.java:1117) > org.apache.geode.internal.cache.HARegion.initialize(HARegion.java:345) > > org.apache.geode.internal.cache.GemFireCacheImpl.createVMRegion(GemFireCacheImpl.java:3308) > org.apache.geode.internal.cache.HARegion.getInstance(HARegion.java:265) > > org.apache.geode.internal.cache.ha.HARegionQueue.createHARegion(HARegionQueue.java:348) > > org.apache.geode.internal.cache.ha.HARegionQueue.(HARegionQueue.java:328) > > org.apache.geode.internal.cache.ha.HARegionQueue$BlockingHAR
[jira] [Commented] (GEODE-3895) Add Handshake/Message version byte
[ https://issues.apache.org/jira/browse/GEODE-3895?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236522#comment-16236522 ] ASF GitHub Bot commented on GEODE-3895: --- WireBaron commented on a change in pull request #1001: GEODE-3895: Add Handshake/Message version byte URL: https://github.com/apache/geode/pull/1001#discussion_r148649143 ## File path: geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerConnectionFactory.java ## @@ -71,12 +76,16 @@ public ServerConnection makeServerConnection(Socket socket, InternalCache cache, } } + private int readProtocolVersionByte(Socket socket) throws IOException { Review comment: I like having this as a separate function, so since there doesn't seem to be a strong consensus for changing it I'll just leave it as is. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Add Handshake/Message version byte > -- > > Key: GEODE-3895 > URL: https://issues.apache.org/jira/browse/GEODE-3895 > Project: Geode > Issue Type: Improvement > Components: client/server >Reporter: Brian Baynes >Priority: Major > > Add an extra protocol version byte so that the first two bytes will > (initially) be 110 followed by 1. The '1' byte will be increased when the > HandshakeRequest or Message changes in such a way that we can't make the > handshake backward-compatible. > Ensure that clients on newer versions will have their connections terminated. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Resolved] (GEODE-3943) Make LocalRegion.discoverJTA method public as it was before
[ https://issues.apache.org/jira/browse/GEODE-3943?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Eric Shu resolved GEODE-3943. - Resolution: Won't Fix Product should meet the requirement without this change. > Make LocalRegion.discoverJTA method public as it was before > --- > > Key: GEODE-3943 > URL: https://issues.apache.org/jira/browse/GEODE-3943 > Project: Geode > Issue Type: Improvement > Components: transactions >Reporter: Vadim Lotarev >Priority: Normal > > Please return visibility of the {{LocalRegion.discoverJTA}} method to > {{public}} as it was before. I recently invoked this method as a workaround > for the bug [GEODE-2349]: > {code} > public Collection getAll() { > ((LocalRegion)region).discoverJTA(); > return region.values(); > } > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3637) configureClientSSLSocket call can block Acceptor thread
[ https://issues.apache.org/jira/browse/GEODE-3637?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236525#comment-16236525 ] ASF subversion and git services commented on GEODE-3637: Commit 2e36e4f7150931e7fd022b78e94db1f15f3e9bf3 in geode's branch refs/heads/feature/GEODE-3637 from kohlmu-pivotal [ https://gitbox.apache.org/repos/asf?p=geode.git;h=2e36e4f ] GEODE-3637: Moved client queue initialization into the ServerConnection.java Added test to confirm asynchronous client queue creation > configureClientSSLSocket call can block Acceptor thread > --- > > Key: GEODE-3637 > URL: https://issues.apache.org/jira/browse/GEODE-3637 > Project: Geode > Issue Type: Bug > Components: client/server >Affects Versions: 1.1.0, 1.2.0 >Reporter: Vahram Aharonyan >Assignee: Udo Kohlmeyer >Priority: Critical > > org.apache.geode.internal.net.SocketCreator#configureClientSSLSocket timeout > for Socket is being configured before starting SSL handshake only if passed > "timeout" argument is larger than 0. > Having sslSocket.startHandshake issued without setting timeout can result to > the blocking of caller thread as in GEODE-2898, GEODE-3023. > Below is the example of Handshaker thread stack-trace that got stacked: > "Handshaker /10.124.195.100:1 Thread 183" Id=526300 in RUNNABLE (running > in native) > Total blocked: 4 Total waited: 884 > java.net.SocketInputStream.socketRead0(Native Method) > java.net.SocketInputStream.socketRead(SocketInputStream.java:116) > java.net.SocketInputStream.read(SocketInputStream.java:171) > java.net.SocketInputStream.read(SocketInputStream.java:141) > sun.security.ssl.InputRecord.readFully(InputRecord.java:465) > sun.security.ssl.InputRecord.read(InputRecord.java:503) > sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973) > > sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) > sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403) > sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387) > > org.apache.geode.internal.net.SocketCreator.configureClientSSLSocket(SocketCreator.java:1088) > org.apache.geode.internal.net.SocketCreator.connect(SocketCreator.java:967) > org.apache.geode.internal.net.SocketCreator.connect(SocketCreator.java:929) > > org.apache.geode.internal.net.SocketCreator.connectForServer(SocketCreator.java:908) > org.apache.geode.internal.tcp.Connection.(Connection.java:1306) > org.apache.geode.internal.tcp.Connection.createSender(Connection.java:1094) > > org.apache.geode.internal.tcp.ConnectionTable.getOrderedAndOwned(ConnectionTable.java:553) > org.apache.geode.internal.tcp.ConnectionTable.get(ConnectionTable.java:664) > org.apache.geode.internal.tcp.TCPConduit.getConnection(TCPConduit.java:1037) > > org.apache.geode.distributed.internal.direct.DirectChannel.getConnections(DirectChannel.java:543) > > org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:319) > > org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:605) > > org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.directChannelSend(GMSMembershipManager.java:1684) > > org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.send(GMSMembershipManager.java:1875) > > org.apache.geode.distributed.internal.DistributionChannel.send(DistributionChannel.java:82) > > org.apache.geode.distributed.internal.DistributionManager.sendOutgoing(DistributionManager.java:3416) > > org.apache.geode.distributed.internal.DistributionManager.sendMessage(DistributionManager.java:3453) > > org.apache.geode.distributed.internal.DistributionManager.putOutgoing(DistributionManager.java:1832) > > org.apache.geode.internal.cache.UpdateAttributesProcessor.sendProfileUpdate(UpdateAttributesProcessor.java:162) > > org.apache.geode.internal.cache.UpdateAttributesProcessor.distribute(UpdateAttributesProcessor.java:97) > > org.apache.geode.internal.cache.DistributedRegion.initialized(DistributedRegion.java:1128) > > org.apache.geode.internal.cache.LocalRegion.initialize(LocalRegion.java:2413) > > org.apache.geode.internal.cache.DistributedRegion.initialize(DistributedRegion.java:1117) > org.apache.geode.internal.cache.HARegion.initialize(HARegion.java:345) > > org.apache.geode.internal.cache.GemFireCacheImpl.createVMRegion(GemFireCacheImpl.java:3308) > org.apache.geode.internal.cache.HARegion.getInstance(HARegion.java:265) > > org.apache.geode.internal.cache.ha.HARegionQueue.createHARegion(HARegionQueue.java:348) > > org.apache.geode.internal.cache.ha.HARegionQueue.(HARegionQueue.java:328) > > org.apache
[jira] [Commented] (GEODE-2349) Region.values() doesn't work properly inside JTA
[ https://issues.apache.org/jira/browse/GEODE-2349?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236526#comment-16236526 ] Eric Shu commented on GEODE-2349: - This is fixed now (as of Geode 1.4.0) by making region set operation transactional even if it is the first operation. See GEODE-3521. > Region.values() doesn't work properly inside JTA > > > Key: GEODE-2349 > URL: https://issues.apache.org/jira/browse/GEODE-2349 > Project: Geode > Issue Type: Bug > Components: transactions >Reporter: Vadim Lotarev >Assignee: Eric Shu >Priority: Major > > I experienced rather strange error invoking Region.values() within JTA > transaction: {{java.lang.IllegalStateException: The Region collection is not > transactional but is being used in a transaction}}. > Doing some investigation I think I understand what is the cause of this > error. Everything works if {{Region.values()}} invoked alone in transaction > but failed if you invoke, say, {{get()}} on another (or the same) region > before starting iteration over the collection returned by {{values()}}. I > think that the reason of this error is the absence of {{discoverJTA()}} in > {{values()}} method. So, when {{values()}} invoked first time {{EntriesSet}} > is created with {{myTX = null}} since no transaction is determined (as soon > as {{discoverJTA()}} is not invoked). If you are iterating immediately > everything works as soon as there are no transaction on a region still > ({{EntriesSet.myTx = null && topRegion.isTX() = false}}). But as soon as you > invoke {{get()}} (or any other method where {{discoverJTA()}} is invoked) > than all regions became transactional and next execution of > {{EntriesSet.iterator()}} failed ({{EntriesSet.myTx = null && > topRegion.isTX() = true}}). -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3895) Add Handshake/Message version byte
[ https://issues.apache.org/jira/browse/GEODE-3895?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236527#comment-16236527 ] ASF GitHub Bot commented on GEODE-3895: --- WireBaron commented on a change in pull request #1001: GEODE-3895: Add Handshake/Message version byte URL: https://github.com/apache/geode/pull/1001#discussion_r148649578 ## File path: geode-core/src/main/java/org/apache/geode/internal/cache/client/protocol/ClientProtocolServiceLoader.java ## @@ -48,6 +49,11 @@ public ClientProtocolService lookupService() { throw new ServiceLoadingFailureException( "There is more than one ClientProtocolService implementation found in JVM; aborting"); } -return clientProtocolServices.get(0); +ClientProtocolService clientProtocolService = clientProtocolServices.get(0); Review comment: I'll leave this until it's needed and then we can figure out how we to implement it (maybe a map of service name to version indexed array of services?). This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Add Handshake/Message version byte > -- > > Key: GEODE-3895 > URL: https://issues.apache.org/jira/browse/GEODE-3895 > Project: Geode > Issue Type: Improvement > Components: client/server >Reporter: Brian Baynes >Priority: Major > > Add an extra protocol version byte so that the first two bytes will > (initially) be 110 followed by 1. The '1' byte will be increased when the > HandshakeRequest or Message changes in such a way that we can't make the > handshake backward-compatible. > Ensure that clients on newer versions will have their connections terminated. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Resolved] (GEODE-2349) Region.values() doesn't work properly inside JTA
[ https://issues.apache.org/jira/browse/GEODE-2349?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Eric Shu resolved GEODE-2349. - Resolution: Duplicate Fix Version/s: 1.4.0 Duplicate of GEODE-3521. > Region.values() doesn't work properly inside JTA > > > Key: GEODE-2349 > URL: https://issues.apache.org/jira/browse/GEODE-2349 > Project: Geode > Issue Type: Bug > Components: transactions >Reporter: Vadim Lotarev >Assignee: Eric Shu >Priority: Major > Fix For: 1.4.0 > > > I experienced rather strange error invoking Region.values() within JTA > transaction: {{java.lang.IllegalStateException: The Region collection is not > transactional but is being used in a transaction}}. > Doing some investigation I think I understand what is the cause of this > error. Everything works if {{Region.values()}} invoked alone in transaction > but failed if you invoke, say, {{get()}} on another (or the same) region > before starting iteration over the collection returned by {{values()}}. I > think that the reason of this error is the absence of {{discoverJTA()}} in > {{values()}} method. So, when {{values()}} invoked first time {{EntriesSet}} > is created with {{myTX = null}} since no transaction is determined (as soon > as {{discoverJTA()}} is not invoked). If you are iterating immediately > everything works as soon as there are no transaction on a region still > ({{EntriesSet.myTx = null && topRegion.isTX() = false}}). But as soon as you > invoke {{get()}} (or any other method where {{discoverJTA()}} is invoked) > than all regions became transactional and next execution of > {{EntriesSet.iterator()}} failed ({{EntriesSet.myTx = null && > topRegion.isTX() = true}}). -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3637) configureClientSSLSocket call can block Acceptor thread
[ https://issues.apache.org/jira/browse/GEODE-3637?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236531#comment-16236531 ] ASF GitHub Bot commented on GEODE-3637: --- kohlmu-pivotal closed pull request #999: GEODE-3637: Moved client queue initialization into the ServerConnection.java URL: https://github.com/apache/geode/pull/999 This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > configureClientSSLSocket call can block Acceptor thread > --- > > Key: GEODE-3637 > URL: https://issues.apache.org/jira/browse/GEODE-3637 > Project: Geode > Issue Type: Bug > Components: client/server >Affects Versions: 1.1.0, 1.2.0 >Reporter: Vahram Aharonyan >Assignee: Udo Kohlmeyer >Priority: Critical > > org.apache.geode.internal.net.SocketCreator#configureClientSSLSocket timeout > for Socket is being configured before starting SSL handshake only if passed > "timeout" argument is larger than 0. > Having sslSocket.startHandshake issued without setting timeout can result to > the blocking of caller thread as in GEODE-2898, GEODE-3023. > Below is the example of Handshaker thread stack-trace that got stacked: > "Handshaker /10.124.195.100:1 Thread 183" Id=526300 in RUNNABLE (running > in native) > Total blocked: 4 Total waited: 884 > java.net.SocketInputStream.socketRead0(Native Method) > java.net.SocketInputStream.socketRead(SocketInputStream.java:116) > java.net.SocketInputStream.read(SocketInputStream.java:171) > java.net.SocketInputStream.read(SocketInputStream.java:141) > sun.security.ssl.InputRecord.readFully(InputRecord.java:465) > sun.security.ssl.InputRecord.read(InputRecord.java:503) > sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973) > > sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) > sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403) > sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387) > > org.apache.geode.internal.net.SocketCreator.configureClientSSLSocket(SocketCreator.java:1088) > org.apache.geode.internal.net.SocketCreator.connect(SocketCreator.java:967) > org.apache.geode.internal.net.SocketCreator.connect(SocketCreator.java:929) > > org.apache.geode.internal.net.SocketCreator.connectForServer(SocketCreator.java:908) > org.apache.geode.internal.tcp.Connection.(Connection.java:1306) > org.apache.geode.internal.tcp.Connection.createSender(Connection.java:1094) > > org.apache.geode.internal.tcp.ConnectionTable.getOrderedAndOwned(ConnectionTable.java:553) > org.apache.geode.internal.tcp.ConnectionTable.get(ConnectionTable.java:664) > org.apache.geode.internal.tcp.TCPConduit.getConnection(TCPConduit.java:1037) > > org.apache.geode.distributed.internal.direct.DirectChannel.getConnections(DirectChannel.java:543) > > org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:319) > > org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:605) > > org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.directChannelSend(GMSMembershipManager.java:1684) > > org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.send(GMSMembershipManager.java:1875) > > org.apache.geode.distributed.internal.DistributionChannel.send(DistributionChannel.java:82) > > org.apache.geode.distributed.internal.DistributionManager.sendOutgoing(DistributionManager.java:3416) > > org.apache.geode.distributed.internal.DistributionManager.sendMessage(DistributionManager.java:3453) > > org.apache.geode.distributed.internal.DistributionManager.putOutgoing(DistributionManager.java:1832) > > org.apache.geode.internal.cache.UpdateAttributesProcessor.sendProfileUpdate(UpdateAttributesProcessor.java:162) > > org.apache.geode.internal.cache.UpdateAttributesProcessor.distribute(UpdateAttributesProcessor.java:97) > > org.apache.geode.internal.cache.DistributedRegion.initialized(DistributedRegion.java:1128) > > org.apache.geode.internal.cache.LocalRegion.initialize(LocalRegion.java:2413) > > org.apache.geode.internal.cache.DistributedRegion.initialize(DistributedRegion.java:1117) > org.apache.geode.internal.cache.HARegion.initialize(HARegion.java:345) > > org.apache.geode.internal.cache.GemFireCacheImpl.createVMRegion(GemFireCacheImpl.java:3308) > org.apache.geode.internal.cache.HARegion.getInstance(HARegion.java:265) > > org.apache.geode.internal.cache.ha.HARegionQu
[jira] [Resolved] (GEODE-3637) configureClientSSLSocket call can block Acceptor thread
[ https://issues.apache.org/jira/browse/GEODE-3637?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Udo Kohlmeyer resolved GEODE-3637. -- Resolution: Fixed > configureClientSSLSocket call can block Acceptor thread > --- > > Key: GEODE-3637 > URL: https://issues.apache.org/jira/browse/GEODE-3637 > Project: Geode > Issue Type: Bug > Components: client/server >Affects Versions: 1.1.0, 1.2.0 >Reporter: Vahram Aharonyan >Assignee: Udo Kohlmeyer >Priority: Critical > > org.apache.geode.internal.net.SocketCreator#configureClientSSLSocket timeout > for Socket is being configured before starting SSL handshake only if passed > "timeout" argument is larger than 0. > Having sslSocket.startHandshake issued without setting timeout can result to > the blocking of caller thread as in GEODE-2898, GEODE-3023. > Below is the example of Handshaker thread stack-trace that got stacked: > "Handshaker /10.124.195.100:1 Thread 183" Id=526300 in RUNNABLE (running > in native) > Total blocked: 4 Total waited: 884 > java.net.SocketInputStream.socketRead0(Native Method) > java.net.SocketInputStream.socketRead(SocketInputStream.java:116) > java.net.SocketInputStream.read(SocketInputStream.java:171) > java.net.SocketInputStream.read(SocketInputStream.java:141) > sun.security.ssl.InputRecord.readFully(InputRecord.java:465) > sun.security.ssl.InputRecord.read(InputRecord.java:503) > sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973) > > sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) > sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403) > sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387) > > org.apache.geode.internal.net.SocketCreator.configureClientSSLSocket(SocketCreator.java:1088) > org.apache.geode.internal.net.SocketCreator.connect(SocketCreator.java:967) > org.apache.geode.internal.net.SocketCreator.connect(SocketCreator.java:929) > > org.apache.geode.internal.net.SocketCreator.connectForServer(SocketCreator.java:908) > org.apache.geode.internal.tcp.Connection.(Connection.java:1306) > org.apache.geode.internal.tcp.Connection.createSender(Connection.java:1094) > > org.apache.geode.internal.tcp.ConnectionTable.getOrderedAndOwned(ConnectionTable.java:553) > org.apache.geode.internal.tcp.ConnectionTable.get(ConnectionTable.java:664) > org.apache.geode.internal.tcp.TCPConduit.getConnection(TCPConduit.java:1037) > > org.apache.geode.distributed.internal.direct.DirectChannel.getConnections(DirectChannel.java:543) > > org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:319) > > org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:605) > > org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.directChannelSend(GMSMembershipManager.java:1684) > > org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.send(GMSMembershipManager.java:1875) > > org.apache.geode.distributed.internal.DistributionChannel.send(DistributionChannel.java:82) > > org.apache.geode.distributed.internal.DistributionManager.sendOutgoing(DistributionManager.java:3416) > > org.apache.geode.distributed.internal.DistributionManager.sendMessage(DistributionManager.java:3453) > > org.apache.geode.distributed.internal.DistributionManager.putOutgoing(DistributionManager.java:1832) > > org.apache.geode.internal.cache.UpdateAttributesProcessor.sendProfileUpdate(UpdateAttributesProcessor.java:162) > > org.apache.geode.internal.cache.UpdateAttributesProcessor.distribute(UpdateAttributesProcessor.java:97) > > org.apache.geode.internal.cache.DistributedRegion.initialized(DistributedRegion.java:1128) > > org.apache.geode.internal.cache.LocalRegion.initialize(LocalRegion.java:2413) > > org.apache.geode.internal.cache.DistributedRegion.initialize(DistributedRegion.java:1117) > org.apache.geode.internal.cache.HARegion.initialize(HARegion.java:345) > > org.apache.geode.internal.cache.GemFireCacheImpl.createVMRegion(GemFireCacheImpl.java:3308) > org.apache.geode.internal.cache.HARegion.getInstance(HARegion.java:265) > > org.apache.geode.internal.cache.ha.HARegionQueue.createHARegion(HARegionQueue.java:348) > > org.apache.geode.internal.cache.ha.HARegionQueue.(HARegionQueue.java:328) > > org.apache.geode.internal.cache.ha.HARegionQueue$BlockingHARegionQueue.(HARegionQueue.java:2199) > > org.apache.geode.internal.cache.ha.HARegionQueue$DurableHARegionQueue.(HARegionQueue.java:2450) > > org.apache.geode.internal.cache.ha.HARegionQueue.getHARegionQueueInstance(HARegionQueue.java:2030) > > org.apache.geode.internal.cache.tier.sockets.CacheClientProxy$MessageDispatcher.(C
[jira] [Commented] (GEODE-3637) configureClientSSLSocket call can block Acceptor thread
[ https://issues.apache.org/jira/browse/GEODE-3637?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236532#comment-16236532 ] ASF subversion and git services commented on GEODE-3637: Commit 2c30b7ec4b2b06e55ad1b9d05130a4c0099c9ccd in geode's branch refs/heads/develop from kohlmu-pivotal [ https://gitbox.apache.org/repos/asf?p=geode.git;h=2c30b7e ] GEODE-3637: Moved client queue initialization into the ServerConnection.java Added test to confirm asynchronous client queue creation > configureClientSSLSocket call can block Acceptor thread > --- > > Key: GEODE-3637 > URL: https://issues.apache.org/jira/browse/GEODE-3637 > Project: Geode > Issue Type: Bug > Components: client/server >Affects Versions: 1.1.0, 1.2.0 >Reporter: Vahram Aharonyan >Assignee: Udo Kohlmeyer >Priority: Critical > > org.apache.geode.internal.net.SocketCreator#configureClientSSLSocket timeout > for Socket is being configured before starting SSL handshake only if passed > "timeout" argument is larger than 0. > Having sslSocket.startHandshake issued without setting timeout can result to > the blocking of caller thread as in GEODE-2898, GEODE-3023. > Below is the example of Handshaker thread stack-trace that got stacked: > "Handshaker /10.124.195.100:1 Thread 183" Id=526300 in RUNNABLE (running > in native) > Total blocked: 4 Total waited: 884 > java.net.SocketInputStream.socketRead0(Native Method) > java.net.SocketInputStream.socketRead(SocketInputStream.java:116) > java.net.SocketInputStream.read(SocketInputStream.java:171) > java.net.SocketInputStream.read(SocketInputStream.java:141) > sun.security.ssl.InputRecord.readFully(InputRecord.java:465) > sun.security.ssl.InputRecord.read(InputRecord.java:503) > sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973) > > sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) > sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403) > sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387) > > org.apache.geode.internal.net.SocketCreator.configureClientSSLSocket(SocketCreator.java:1088) > org.apache.geode.internal.net.SocketCreator.connect(SocketCreator.java:967) > org.apache.geode.internal.net.SocketCreator.connect(SocketCreator.java:929) > > org.apache.geode.internal.net.SocketCreator.connectForServer(SocketCreator.java:908) > org.apache.geode.internal.tcp.Connection.(Connection.java:1306) > org.apache.geode.internal.tcp.Connection.createSender(Connection.java:1094) > > org.apache.geode.internal.tcp.ConnectionTable.getOrderedAndOwned(ConnectionTable.java:553) > org.apache.geode.internal.tcp.ConnectionTable.get(ConnectionTable.java:664) > org.apache.geode.internal.tcp.TCPConduit.getConnection(TCPConduit.java:1037) > > org.apache.geode.distributed.internal.direct.DirectChannel.getConnections(DirectChannel.java:543) > > org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:319) > > org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:605) > > org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.directChannelSend(GMSMembershipManager.java:1684) > > org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.send(GMSMembershipManager.java:1875) > > org.apache.geode.distributed.internal.DistributionChannel.send(DistributionChannel.java:82) > > org.apache.geode.distributed.internal.DistributionManager.sendOutgoing(DistributionManager.java:3416) > > org.apache.geode.distributed.internal.DistributionManager.sendMessage(DistributionManager.java:3453) > > org.apache.geode.distributed.internal.DistributionManager.putOutgoing(DistributionManager.java:1832) > > org.apache.geode.internal.cache.UpdateAttributesProcessor.sendProfileUpdate(UpdateAttributesProcessor.java:162) > > org.apache.geode.internal.cache.UpdateAttributesProcessor.distribute(UpdateAttributesProcessor.java:97) > > org.apache.geode.internal.cache.DistributedRegion.initialized(DistributedRegion.java:1128) > > org.apache.geode.internal.cache.LocalRegion.initialize(LocalRegion.java:2413) > > org.apache.geode.internal.cache.DistributedRegion.initialize(DistributedRegion.java:1117) > org.apache.geode.internal.cache.HARegion.initialize(HARegion.java:345) > > org.apache.geode.internal.cache.GemFireCacheImpl.createVMRegion(GemFireCacheImpl.java:3308) > org.apache.geode.internal.cache.HARegion.getInstance(HARegion.java:265) > > org.apache.geode.internal.cache.ha.HARegionQueue.createHARegion(HARegionQueue.java:348) > > org.apache.geode.internal.cache.ha.HARegionQueue.(HARegionQueue.java:328) > > org.apache.geode.inte
[jira] [Updated] (GEODE-3637) configureClientSSLSocket call can block Acceptor thread
[ https://issues.apache.org/jira/browse/GEODE-3637?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Udo Kohlmeyer updated GEODE-3637: - Fix Version/s: 1.4.0 > configureClientSSLSocket call can block Acceptor thread > --- > > Key: GEODE-3637 > URL: https://issues.apache.org/jira/browse/GEODE-3637 > Project: Geode > Issue Type: Bug > Components: client/server >Affects Versions: 1.1.0, 1.2.0 >Reporter: Vahram Aharonyan >Assignee: Udo Kohlmeyer >Priority: Critical > Fix For: 1.4.0 > > > org.apache.geode.internal.net.SocketCreator#configureClientSSLSocket timeout > for Socket is being configured before starting SSL handshake only if passed > "timeout" argument is larger than 0. > Having sslSocket.startHandshake issued without setting timeout can result to > the blocking of caller thread as in GEODE-2898, GEODE-3023. > Below is the example of Handshaker thread stack-trace that got stacked: > "Handshaker /10.124.195.100:1 Thread 183" Id=526300 in RUNNABLE (running > in native) > Total blocked: 4 Total waited: 884 > java.net.SocketInputStream.socketRead0(Native Method) > java.net.SocketInputStream.socketRead(SocketInputStream.java:116) > java.net.SocketInputStream.read(SocketInputStream.java:171) > java.net.SocketInputStream.read(SocketInputStream.java:141) > sun.security.ssl.InputRecord.readFully(InputRecord.java:465) > sun.security.ssl.InputRecord.read(InputRecord.java:503) > sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973) > > sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) > sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403) > sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387) > > org.apache.geode.internal.net.SocketCreator.configureClientSSLSocket(SocketCreator.java:1088) > org.apache.geode.internal.net.SocketCreator.connect(SocketCreator.java:967) > org.apache.geode.internal.net.SocketCreator.connect(SocketCreator.java:929) > > org.apache.geode.internal.net.SocketCreator.connectForServer(SocketCreator.java:908) > org.apache.geode.internal.tcp.Connection.(Connection.java:1306) > org.apache.geode.internal.tcp.Connection.createSender(Connection.java:1094) > > org.apache.geode.internal.tcp.ConnectionTable.getOrderedAndOwned(ConnectionTable.java:553) > org.apache.geode.internal.tcp.ConnectionTable.get(ConnectionTable.java:664) > org.apache.geode.internal.tcp.TCPConduit.getConnection(TCPConduit.java:1037) > > org.apache.geode.distributed.internal.direct.DirectChannel.getConnections(DirectChannel.java:543) > > org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:319) > > org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:605) > > org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.directChannelSend(GMSMembershipManager.java:1684) > > org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.send(GMSMembershipManager.java:1875) > > org.apache.geode.distributed.internal.DistributionChannel.send(DistributionChannel.java:82) > > org.apache.geode.distributed.internal.DistributionManager.sendOutgoing(DistributionManager.java:3416) > > org.apache.geode.distributed.internal.DistributionManager.sendMessage(DistributionManager.java:3453) > > org.apache.geode.distributed.internal.DistributionManager.putOutgoing(DistributionManager.java:1832) > > org.apache.geode.internal.cache.UpdateAttributesProcessor.sendProfileUpdate(UpdateAttributesProcessor.java:162) > > org.apache.geode.internal.cache.UpdateAttributesProcessor.distribute(UpdateAttributesProcessor.java:97) > > org.apache.geode.internal.cache.DistributedRegion.initialized(DistributedRegion.java:1128) > > org.apache.geode.internal.cache.LocalRegion.initialize(LocalRegion.java:2413) > > org.apache.geode.internal.cache.DistributedRegion.initialize(DistributedRegion.java:1117) > org.apache.geode.internal.cache.HARegion.initialize(HARegion.java:345) > > org.apache.geode.internal.cache.GemFireCacheImpl.createVMRegion(GemFireCacheImpl.java:3308) > org.apache.geode.internal.cache.HARegion.getInstance(HARegion.java:265) > > org.apache.geode.internal.cache.ha.HARegionQueue.createHARegion(HARegionQueue.java:348) > > org.apache.geode.internal.cache.ha.HARegionQueue.(HARegionQueue.java:328) > > org.apache.geode.internal.cache.ha.HARegionQueue$BlockingHARegionQueue.(HARegionQueue.java:2199) > > org.apache.geode.internal.cache.ha.HARegionQueue$DurableHARegionQueue.(HARegionQueue.java:2450) > > org.apache.geode.internal.cache.ha.HARegionQueue.getHARegionQueueInstance(HARegionQueue.java:2030) > > org.apache.geode.internal.cache.tier.sockets.Cache
[jira] [Updated] (GEODE-3521) Allow region set op to bootstrap JTA and transaction
[ https://issues.apache.org/jira/browse/GEODE-3521?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Eric Shu updated GEODE-3521: Fix Version/s: 1.4.0 > Allow region set op to bootstrap JTA and transaction > > > Key: GEODE-3521 > URL: https://issues.apache.org/jira/browse/GEODE-3521 > Project: Geode > Issue Type: Improvement > Components: docs, transactions >Affects Versions: 1.2.0 >Reporter: Fred Krone >Assignee: Eric Shu >Priority: Major > Fix For: 1.4.0 > > > Allow region set op to bootstrap the transaction. To allow backward > compatibility, introduce a new GemFire property to allow the old behavior. > AC: > 1) set operation bootstraps transaction > 2) provide a GemFire property (boolean) to opt out of this behavior for > backwards compatibility > 3) update unit tests notes accordingly > 4) update documentation -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3895) Add Handshake/Message version byte
[ https://issues.apache.org/jira/browse/GEODE-3895?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236549#comment-16236549 ] ASF GitHub Bot commented on GEODE-3895: --- WireBaron commented on a change in pull request #1001: GEODE-3895: Add Handshake/Message version byte URL: https://github.com/apache/geode/pull/1001#discussion_r148652574 ## File path: geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServiceVersionNotFoundException.java ## @@ -0,0 +1,35 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for additional information regarding + * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. You may obtain a + * copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ + +package org.apache.geode.internal.cache.tier.sockets; Review comment: Makes sense, will move this and the other exception (ServiceLoadingFailureException). This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Add Handshake/Message version byte > -- > > Key: GEODE-3895 > URL: https://issues.apache.org/jira/browse/GEODE-3895 > Project: Geode > Issue Type: Improvement > Components: client/server >Reporter: Brian Baynes >Priority: Major > > Add an extra protocol version byte so that the first two bytes will > (initially) be 110 followed by 1. The '1' byte will be increased when the > HandshakeRequest or Message changes in such a way that we can't make the > handshake backward-compatible. > Ensure that clients on newer versions will have their connections terminated. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Resolved] (GEODE-3864) Include the Protobuf message definitions in the release artifact
[ https://issues.apache.org/jira/browse/GEODE-3864?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Udo Kohlmeyer resolved GEODE-3864. -- Resolution: Fixed > Include the Protobuf message definitions in the release artifact > > > Key: GEODE-3864 > URL: https://issues.apache.org/jira/browse/GEODE-3864 > Project: Geode > Issue Type: Improvement > Components: client/server >Reporter: Udo Kohlmeyer >Priority: Major > Fix For: 1.4.0 > > > In order for clients to be developed in languages not currently supported by > Geode, the Protobuf message definition files need to be included in the > release artifact. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Assigned] (GEODE-3864) Include the Protobuf message definitions in the release artifact
[ https://issues.apache.org/jira/browse/GEODE-3864?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Udo Kohlmeyer reassigned GEODE-3864: Assignee: Udo Kohlmeyer > Include the Protobuf message definitions in the release artifact > > > Key: GEODE-3864 > URL: https://issues.apache.org/jira/browse/GEODE-3864 > Project: Geode > Issue Type: Improvement > Components: client/server >Reporter: Udo Kohlmeyer >Assignee: Udo Kohlmeyer >Priority: Major > Fix For: 1.4.0 > > > In order for clients to be developed in languages not currently supported by > Geode, the Protobuf message definition files need to be included in the > release artifact. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (GEODE-3917) [CI Failure] [Nightly #995] org.apache.geode.internal.cache.wan.misc.NewWanAuthenticationDUnitTest.testWanAuthValidCredentials
[ https://issues.apache.org/jira/browse/GEODE-3917?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] nabarun updated GEODE-3917: --- Component/s: (was: wan) > [CI Failure] [Nightly #995] > org.apache.geode.internal.cache.wan.misc.NewWanAuthenticationDUnitTest.testWanAuthValidCredentials > -- > > Key: GEODE-3917 > URL: https://issues.apache.org/jira/browse/GEODE-3917 > Project: Geode > Issue Type: Bug > Components: security >Affects Versions: 1.4.0 >Reporter: nabarun >Priority: Major > > Error Message > {noformat} > org.apache.geode.test.dunit.RMIException: While invoking > org.apache.geode.internal.cache.wan.misc.NewWanAuthenticationDUnitTest$$Lambda$73/735044920.run > in VM 2 running on Host 7c4d06bbbc13 with 8 VMs > {noformat} > Stacktrace > {noformat} > org.apache.geode.test.dunit.RMIException: While invoking > org.apache.geode.internal.cache.wan.misc.NewWanAuthenticationDUnitTest$$Lambda$73/735044920.run > in VM 2 running on Host 7c4d06bbbc13 with 8 VMs > at org.apache.geode.test.dunit.VM.invoke(VM.java:393) > at org.apache.geode.test.dunit.VM.invoke(VM.java:363) > at org.apache.geode.test.dunit.VM.invoke(VM.java:308) > at > org.apache.geode.internal.cache.wan.misc.NewWanAuthenticationDUnitTest.testWanAuthValidCredentials(NewWanAuthenticationDUnitTest.java:113) > 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:498) > at > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) > at > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) > at > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) > at > org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) > at > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) > at > org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) > at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55) > at org.junit.rules.RunRules.evaluate(RunRules.java:20) > at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) > at > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) > at org.junit.runners.ParentRunner.run(ParentRunner.java:363) > at > org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.runTestClass(JUnitTestClassExecuter.java:114) > at > org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.execute(JUnitTestClassExecuter.java:57) > at > org.gradle.api.internal.tasks.testing.junit.JUnitTestClassProcessor.processTestClass(JUnitTestClassProcessor.java:66) > at > org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51) > 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:498) > at > org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35) > at > org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) > at > org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:32) > at > org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93) > at com.sun.proxy.$Proxy2.processTestClass(Unknown Source) > at > org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:109) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(Nativ
[jira] [Updated] (GEODE-3918) [CI Failure][Nightly #995] org.apache.geode.internal.cache.wan.misc.NewWanAuthenticationDUnitTest.testWanAuthValidCredentialsWithServer
[ https://issues.apache.org/jira/browse/GEODE-3918?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] nabarun updated GEODE-3918: --- Component/s: (was: wan) > [CI Failure][Nightly #995] > org.apache.geode.internal.cache.wan.misc.NewWanAuthenticationDUnitTest.testWanAuthValidCredentialsWithServer > > > > Key: GEODE-3918 > URL: https://issues.apache.org/jira/browse/GEODE-3918 > Project: Geode > Issue Type: Bug > Components: security >Reporter: nabarun >Priority: Major > > Error Message > {noformat} > org.apache.geode.test.dunit.RMIException: While invoking > org.apache.geode.internal.cache.wan.misc.NewWanAuthenticationDUnitTest$$Lambda$98/282340316.run > in VM 2 running on Host 7c4d06bbbc13 with 8 VMs > {noformat} > Stacktrace > {noformat} > org.apache.geode.test.dunit.RMIException: While invoking > org.apache.geode.internal.cache.wan.misc.NewWanAuthenticationDUnitTest$$Lambda$98/282340316.run > in VM 2 running on Host 7c4d06bbbc13 with 8 VMs > at org.apache.geode.test.dunit.VM.invoke(VM.java:393) > at org.apache.geode.test.dunit.VM.invoke(VM.java:363) > at org.apache.geode.test.dunit.VM.invoke(VM.java:308) > at > org.apache.geode.internal.cache.wan.misc.NewWanAuthenticationDUnitTest.testWanAuthValidCredentialsWithServer(NewWanAuthenticationDUnitTest.java:411) > 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:498) > at > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) > at > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) > at > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) > at > org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) > at > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) > at > org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) > at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55) > at org.junit.rules.RunRules.evaluate(RunRules.java:20) > at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) > at > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) > at org.junit.runners.ParentRunner.run(ParentRunner.java:363) > at > org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.runTestClass(JUnitTestClassExecuter.java:114) > at > org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.execute(JUnitTestClassExecuter.java:57) > at > org.gradle.api.internal.tasks.testing.junit.JUnitTestClassProcessor.processTestClass(JUnitTestClassProcessor.java:66) > at > org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51) > 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:498) > at > org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35) > at > org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) > at > org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:32) > at > org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93) > at com.sun.proxy.$Proxy2.processTestClass(Unknown Source) > at > org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:109) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(N
[jira] [Commented] (GEODE-3637) configureClientSSLSocket call can block Acceptor thread
[ https://issues.apache.org/jira/browse/GEODE-3637?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236600#comment-16236600 ] ASF subversion and git services commented on GEODE-3637: Commit 8876dd5e61d412d7363f4d5f40f42c2d8af3efe6 in geode's branch refs/heads/develop from kohlmu-pivotal [ https://gitbox.apache.org/repos/asf?p=geode.git;h=8876dd5 ] GEODE-3637: Amended AcceptorImpl.java to use a Connection pool that provides stats > configureClientSSLSocket call can block Acceptor thread > --- > > Key: GEODE-3637 > URL: https://issues.apache.org/jira/browse/GEODE-3637 > Project: Geode > Issue Type: Bug > Components: client/server >Affects Versions: 1.1.0, 1.2.0 >Reporter: Vahram Aharonyan >Assignee: Udo Kohlmeyer >Priority: Critical > Fix For: 1.4.0 > > > org.apache.geode.internal.net.SocketCreator#configureClientSSLSocket timeout > for Socket is being configured before starting SSL handshake only if passed > "timeout" argument is larger than 0. > Having sslSocket.startHandshake issued without setting timeout can result to > the blocking of caller thread as in GEODE-2898, GEODE-3023. > Below is the example of Handshaker thread stack-trace that got stacked: > "Handshaker /10.124.195.100:1 Thread 183" Id=526300 in RUNNABLE (running > in native) > Total blocked: 4 Total waited: 884 > java.net.SocketInputStream.socketRead0(Native Method) > java.net.SocketInputStream.socketRead(SocketInputStream.java:116) > java.net.SocketInputStream.read(SocketInputStream.java:171) > java.net.SocketInputStream.read(SocketInputStream.java:141) > sun.security.ssl.InputRecord.readFully(InputRecord.java:465) > sun.security.ssl.InputRecord.read(InputRecord.java:503) > sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973) > > sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) > sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403) > sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387) > > org.apache.geode.internal.net.SocketCreator.configureClientSSLSocket(SocketCreator.java:1088) > org.apache.geode.internal.net.SocketCreator.connect(SocketCreator.java:967) > org.apache.geode.internal.net.SocketCreator.connect(SocketCreator.java:929) > > org.apache.geode.internal.net.SocketCreator.connectForServer(SocketCreator.java:908) > org.apache.geode.internal.tcp.Connection.(Connection.java:1306) > org.apache.geode.internal.tcp.Connection.createSender(Connection.java:1094) > > org.apache.geode.internal.tcp.ConnectionTable.getOrderedAndOwned(ConnectionTable.java:553) > org.apache.geode.internal.tcp.ConnectionTable.get(ConnectionTable.java:664) > org.apache.geode.internal.tcp.TCPConduit.getConnection(TCPConduit.java:1037) > > org.apache.geode.distributed.internal.direct.DirectChannel.getConnections(DirectChannel.java:543) > > org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:319) > > org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:605) > > org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.directChannelSend(GMSMembershipManager.java:1684) > > org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.send(GMSMembershipManager.java:1875) > > org.apache.geode.distributed.internal.DistributionChannel.send(DistributionChannel.java:82) > > org.apache.geode.distributed.internal.DistributionManager.sendOutgoing(DistributionManager.java:3416) > > org.apache.geode.distributed.internal.DistributionManager.sendMessage(DistributionManager.java:3453) > > org.apache.geode.distributed.internal.DistributionManager.putOutgoing(DistributionManager.java:1832) > > org.apache.geode.internal.cache.UpdateAttributesProcessor.sendProfileUpdate(UpdateAttributesProcessor.java:162) > > org.apache.geode.internal.cache.UpdateAttributesProcessor.distribute(UpdateAttributesProcessor.java:97) > > org.apache.geode.internal.cache.DistributedRegion.initialized(DistributedRegion.java:1128) > > org.apache.geode.internal.cache.LocalRegion.initialize(LocalRegion.java:2413) > > org.apache.geode.internal.cache.DistributedRegion.initialize(DistributedRegion.java:1117) > org.apache.geode.internal.cache.HARegion.initialize(HARegion.java:345) > > org.apache.geode.internal.cache.GemFireCacheImpl.createVMRegion(GemFireCacheImpl.java:3308) > org.apache.geode.internal.cache.HARegion.getInstance(HARegion.java:265) > > org.apache.geode.internal.cache.ha.HARegionQueue.createHARegion(HARegionQueue.java:348) > > org.apache.geode.internal.cache.ha.HARegionQueue.(HARegionQueue.java:328) > > org.apache.geode.internal.cache.ha.HAReg
[jira] [Commented] (GEODE-3539) Add more test coverage for p2p commands
[ https://issues.apache.org/jira/browse/GEODE-3539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236626#comment-16236626 ] ASF GitHub Bot commented on GEODE-3539: --- jaredjstewart commented on a change in pull request #797: GEODE-3539: Add missing test coverage for 'describe connection' command. URL: https://github.com/apache/geode/pull/797#discussion_r148665144 ## File path: geode-core/src/test/java/org/apache/geode/test/junit/assertions/GfshShellConnectionRuleAssert.java ## @@ -208,6 +208,31 @@ public GfshShellConnectionRuleAssert tableHasColumnWithValuesContaining(String h return this; } + public GfshShellConnectionRuleAssert tableHasColumnWithValueMatchingOneOf(String header, + String... acceptedValues) { +GfJsonObject resultContentJSON = actual.getCommandResult().getContent(); +Object content = resultContentJSON.get(header); + +if (content == null) { + failWithMessage("Command result did not contain a table with column header <" + header + ">: " + + resultContentJSON.toString()); +} + +Object[] actualValues = toArray((JSONArray) content); + +for (Object actualValue : actualValues) { + String actualValueString = (String) actualValue; + boolean actualValueContainsAnAcceptedValue = + Arrays.stream(acceptedValues).anyMatch(actualValueString::contains); + + if (actualValueContainsAnAcceptedValue) { +return this; + } +} +failWithMessage("No accepted value found."); +return null; Review comment: I think you can still return `this` rather than returning `null`. (For instance, someone might be using a JUnit rule that gathers up exceptions and re-throws them at the end of a sequence of operations. We wouldn't want to give them a NPE here in that case.) This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Add more test coverage for p2p commands > --- > > Key: GEODE-3539 > URL: https://issues.apache.org/jira/browse/GEODE-3539 > Project: Geode > Issue Type: Improvement > Components: gfsh >Reporter: Jinmei Liao >Priority: Major > > Add more command tests that would eventually get rid of the legacy tests. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3539) Add more test coverage for p2p commands
[ https://issues.apache.org/jira/browse/GEODE-3539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236627#comment-16236627 ] ASF GitHub Bot commented on GEODE-3539: --- jaredjstewart commented on a change in pull request #797: GEODE-3539: Add missing test coverage for 'describe connection' command. URL: https://github.com/apache/geode/pull/797#discussion_r148664747 ## File path: geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DescribeConnectionCommandJUnitTest.java ## @@ -0,0 +1,92 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for additional information regarding + * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. You may obtain a + * copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ +package org.apache.geode.management.internal.cli.commands; + +import java.net.InetAddress; +import java.net.NetworkInterface; +import java.net.SocketException; +import java.util.Enumeration; +import java.util.Spliterator; +import java.util.Spliterators; +import java.util.stream.StreamSupport; + +import com.google.common.collect.Iterators; +import org.apache.logging.log4j.Logger; +import org.junit.ClassRule; +import org.junit.Rule; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +import org.apache.geode.internal.logging.LogService; +import org.apache.geode.test.junit.categories.IntegrationTest; +import org.apache.geode.test.junit.rules.GfshShellConnectionRule; +import org.apache.geode.test.junit.rules.LocatorStarterRule; + +/** + * The GfshCommandJUnitTest class is a test suite of test cases testing the contract and + * functionality of the GfshCommand class for implementing GemFire shell (Gfsh) commands. + * + * @see org.apache.geode.management.internal.cli.commands.GfshCommand + * @see org.jmock.Expectations + * @see org.jmock.Mockery + * @see org.jmock.lib.legacy.ClassImposteriser + * @see org.junit.Assert + * @see org.junit.Test + * @since GemFire 7.0 + */ + +@Category(IntegrationTest.class) +public class DescribeConnectionCommandJUnitTest { + public static Logger logger = LogService.getLogger(); + + @ClassRule + public static LocatorStarterRule locator = new LocatorStarterRule().withAutoStart(); + + @Rule + public GfshShellConnectionRule gfsh = new GfshShellConnectionRule(); + + @Test + public void executeWhileConnected() throws Exception { +gfsh.connectAndVerify(locator); +// We must be sure to catch either IPv4 or IPv6 descriptions. +String[] acceptableAddresses = getNetworkAddressArray(); +logger.info( +"Expecting one of the following addresses: " + String.join(", ", acceptableAddresses)); +gfsh.executeAndAssertThat("describe connection") +.tableHasColumnWithValueMatchingOneOf("Connection Endpoints", acceptableAddresses); + } + + private String[] getNetworkAddressArray() throws SocketException { +Enumeration networkInterfaces = NetworkInterface.getNetworkInterfaces(); +NetworkInterface myInterface = networkInterfaces.nextElement(); +Enumeration myAddresses = myInterface.getInetAddresses(); +return StreamSupport Review comment: Since this Enumeration will be reliably bounded (finite), I think we can turn it into a stream more concisely: ``` Collections.list(myAddresses).stream() .map(InetAddress::getHostAddress) .map(address -> formatAddressAndPort(address, locator.getJmxPort())).toArray(String[]::new); ``` This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Add more test coverage for p2p commands > --- > > Key: GEODE-3539 > URL: https://issues.apache.org/jira/browse/GEODE-3539 > Project: Geode > Issue Type: Improvement > Components: gfsh >Reporter: Jinmei Liao >Priority: Major > > Add more command tests that would eventually get rid of the legacy tests. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3539) Add more test coverage for p2p commands
[ https://issues.apache.org/jira/browse/GEODE-3539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236629#comment-16236629 ] ASF GitHub Bot commented on GEODE-3539: --- jaredjstewart commented on issue #797: GEODE-3539: Add missing test coverage for 'describe connection' command. URL: https://github.com/apache/geode/pull/797#issuecomment-341563669 Looks good overall! This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Add more test coverage for p2p commands > --- > > Key: GEODE-3539 > URL: https://issues.apache.org/jira/browse/GEODE-3539 > Project: Geode > Issue Type: Improvement > Components: gfsh >Reporter: Jinmei Liao >Priority: Major > > Add more command tests that would eventually get rid of the legacy tests. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3895) Add Handshake/Message version byte
[ https://issues.apache.org/jira/browse/GEODE-3895?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236672#comment-16236672 ] ASF subversion and git services commented on GEODE-3895: Commit a733b39a20f2eb06ae29be125bfb0e68f63a6fed in geode's branch refs/heads/develop from [~WireBaron] [ https://gitbox.apache.org/repos/asf?p=geode.git;h=a733b39 ] GEODE-3895: Add Handshake/Message version byte (#1001) Signed-off-by: Galen O'Sullivan > Add Handshake/Message version byte > -- > > Key: GEODE-3895 > URL: https://issues.apache.org/jira/browse/GEODE-3895 > Project: Geode > Issue Type: Improvement > Components: client/server >Reporter: Brian Baynes >Priority: Major > > Add an extra protocol version byte so that the first two bytes will > (initially) be 110 followed by 1. The '1' byte will be increased when the > HandshakeRequest or Message changes in such a way that we can't make the > handshake backward-compatible. > Ensure that clients on newer versions will have their connections terminated. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3895) Add Handshake/Message version byte
[ https://issues.apache.org/jira/browse/GEODE-3895?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236671#comment-16236671 ] ASF GitHub Bot commented on GEODE-3895: --- galen-pivotal closed pull request #1001: GEODE-3895: Add Handshake/Message version byte URL: https://github.com/apache/geode/pull/1001 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/tcpserver/TcpServer.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/tcpserver/TcpServer.java index a673c036b1..e6a797c3dc 100755 --- a/geode-core/src/main/java/org/apache/geode/distributed/internal/tcpserver/TcpServer.java +++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/tcpserver/TcpServer.java @@ -63,7 +63,8 @@ import org.apache.geode.internal.cache.client.protocol.ClientProtocolService; import org.apache.geode.internal.cache.client.protocol.ClientProtocolServiceLoader; import org.apache.geode.internal.cache.tier.sockets.HandShake; -import org.apache.geode.internal.cache.tier.sockets.ServiceLoadingFailureException; +import org.apache.geode.internal.cache.client.protocol.exception.ServiceLoadingFailureException; +import org.apache.geode.internal.cache.client.protocol.exception.ServiceVersionNotFoundException; import org.apache.geode.internal.logging.LogService; import org.apache.geode.internal.net.SocketCreator; import org.apache.geode.internal.net.SocketCreatorFactory; @@ -385,8 +386,9 @@ private void processRequest(final Socket socket) { if (input.readUnsignedByte() == PROTOBUF_CLIENT_SERVER_PROTOCOL && Boolean.getBoolean("geode.feature-protobuf-protocol")) { try { + int protocolVersion = input.readUnsignedByte(); ClientProtocolService clientProtocolService = - clientProtocolServiceLoader.lookupService(); + clientProtocolServiceLoader.lookupService(protocolVersion); clientProtocolService.initializeStatistics("LocatorStats", internalLocator.getDistributedSystem()); try (ClientProtocolProcessor pipeline = @@ -400,6 +402,11 @@ private void processRequest(final Socket socket) { log.error("There was an error looking up the client protocol service", e); socket.close(); throw new IOException("There was an error looking up the client protocol service", e); +} catch (ServiceVersionNotFoundException e) { + log.error("Unable to find service matching the client protocol version byte", e); + socket.close(); + throw new IOException( + "Unable to find service matching the client protocol version byte", e); } } else { rejectUnknownProtocolConnection(socket, gossipVersion); diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/client/protocol/ClientProtocolService.java b/geode-core/src/main/java/org/apache/geode/internal/cache/client/protocol/ClientProtocolService.java index 7f50c9fbe6..b86d76a5bf 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/cache/client/protocol/ClientProtocolService.java +++ b/geode-core/src/main/java/org/apache/geode/internal/cache/client/protocol/ClientProtocolService.java @@ -38,4 +38,6 @@ * Create a locator processor. The locator does not currently provide any authentication. */ ClientProtocolProcessor createProcessorForLocator(InternalLocator locator); + + int getServiceProtocolVersion(); } diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/client/protocol/ClientProtocolServiceLoader.java b/geode-core/src/main/java/org/apache/geode/internal/cache/client/protocol/ClientProtocolServiceLoader.java index c7ba6e0dce..4b66062ff0 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/cache/client/protocol/ClientProtocolServiceLoader.java +++ b/geode-core/src/main/java/org/apache/geode/internal/cache/client/protocol/ClientProtocolServiceLoader.java @@ -19,7 +19,8 @@ import java.util.List; import java.util.ServiceLoader; -import org.apache.geode.internal.cache.tier.sockets.ServiceLoadingFailureException; +import org.apache.geode.internal.cache.client.protocol.exception.ServiceLoadingFailureException; +import org.apache.geode.internal.cache.client.protocol.exception.ServiceVersionNotFoundException; public class ClientProtocolServiceLoader { private final List clientProtocolServices; @@ -38,7 +39,7 @@ public ClientProtocolServiceLoader() { return resultList; } - public ClientProtocolService lookupService() { + pu
[jira] [Created] (GEODE-3947) geode-dependency.jar does not have all the dependencies needed for deserializing custom object
Jinmei Liao created GEODE-3947: -- Summary: geode-dependency.jar does not have all the dependencies needed for deserializing custom object Key: GEODE-3947 URL: https://issues.apache.org/jira/browse/GEODE-3947 Project: Geode Issue Type: Bug Reporter: Jinmei Liao JsonUtil recently added a dependency to common-beanutil, we need to include that in geode-dependency.jar -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3605) Remove deprecated methods from Public API.
[ https://issues.apache.org/jira/browse/GEODE-3605?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236681#comment-16236681 ] ASF GitHub Bot commented on GEODE-3605: --- dgkimura opened a new pull request #141: GEODE-3605: Remove deprecated methods from public API URL: https://github.com/apache/geode-native/pull/141 Test: built successfully on Windows This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Remove deprecated methods from Public API. > -- > > Key: GEODE-3605 > URL: https://issues.apache.org/jira/browse/GEODE-3605 > Project: Geode > Issue Type: Task > Components: native client >Reporter: Jacob S. Barrett >Priority: Major > > Remove deprecated methods on public API. > See: > CacheableDate.hpp -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Assigned] (GEODE-3947) geode-dependency.jar does not have all the dependencies needed for deserializing custom object
[ https://issues.apache.org/jira/browse/GEODE-3947?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jinmei Liao reassigned GEODE-3947: -- Assignee: Jinmei Liao > geode-dependency.jar does not have all the dependencies needed for > deserializing custom object > -- > > Key: GEODE-3947 > URL: https://issues.apache.org/jira/browse/GEODE-3947 > Project: Geode > Issue Type: Bug >Affects Versions: 1.3.0 >Reporter: Jinmei Liao >Assignee: Jinmei Liao >Priority: Blocker > Fix For: 1.4.0 > > > JsonUtil recently added a dependency to common-beanutil, we need to include > that in geode-dependency.jar -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (GEODE-3947) geode-dependency.jar does not have all the dependencies needed for deserializing custom object
[ https://issues.apache.org/jira/browse/GEODE-3947?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jinmei Liao updated GEODE-3947: --- Affects Version/s: 1.3.0 > geode-dependency.jar does not have all the dependencies needed for > deserializing custom object > -- > > Key: GEODE-3947 > URL: https://issues.apache.org/jira/browse/GEODE-3947 > Project: Geode > Issue Type: Bug >Affects Versions: 1.3.0 >Reporter: Jinmei Liao >Priority: Blocker > Fix For: 1.4.0 > > > JsonUtil recently added a dependency to common-beanutil, we need to include > that in geode-dependency.jar -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (GEODE-3947) geode-dependency.jar does not have all the dependencies needed for deserializing custom object
[ https://issues.apache.org/jira/browse/GEODE-3947?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jinmei Liao updated GEODE-3947: --- Fix Version/s: 1.4.0 > geode-dependency.jar does not have all the dependencies needed for > deserializing custom object > -- > > Key: GEODE-3947 > URL: https://issues.apache.org/jira/browse/GEODE-3947 > Project: Geode > Issue Type: Bug >Affects Versions: 1.3.0 >Reporter: Jinmei Liao >Priority: Blocker > Fix For: 1.4.0 > > > JsonUtil recently added a dependency to common-beanutil, we need to include > that in geode-dependency.jar -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (GEODE-3947) geode-dependency.jar does not have all the dependencies needed for deserializing custom object
[ https://issues.apache.org/jira/browse/GEODE-3947?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jinmei Liao updated GEODE-3947: --- Priority: Blocker (was: Trivial) > geode-dependency.jar does not have all the dependencies needed for > deserializing custom object > -- > > Key: GEODE-3947 > URL: https://issues.apache.org/jira/browse/GEODE-3947 > Project: Geode > Issue Type: Bug >Affects Versions: 1.3.0 >Reporter: Jinmei Liao >Priority: Blocker > Fix For: 1.4.0 > > > JsonUtil recently added a dependency to common-beanutil, we need to include > that in geode-dependency.jar -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3947) geode-dependency.jar does not have all the dependencies needed for deserializing custom object
[ https://issues.apache.org/jira/browse/GEODE-3947?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236689#comment-16236689 ] ASF GitHub Bot commented on GEODE-3947: --- jinmeiliao opened a new pull request #1010: GEODE-3947: add the necessary dependency in geode-dependency.jar URL: https://github.com/apache/geode/pull/1010 add the dependency in build.gradle and added an acceptance test to verify the fix. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > geode-dependency.jar does not have all the dependencies needed for > deserializing custom object > -- > > Key: GEODE-3947 > URL: https://issues.apache.org/jira/browse/GEODE-3947 > Project: Geode > Issue Type: Bug >Affects Versions: 1.3.0 >Reporter: Jinmei Liao >Assignee: Jinmei Liao >Priority: Blocker > Fix For: 1.4.0 > > > JsonUtil recently added a dependency to common-beanutil, we need to include > that in geode-dependency.jar -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3007) Simplify support for custom GFSH commands
[ https://issues.apache.org/jira/browse/GEODE-3007?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236745#comment-16236745 ] ASF GitHub Bot commented on GEODE-3007: --- jaredjstewart opened a new pull request #1011: GEODE-3007: Simplify support for custom GFSH commands URL: https://github.com/apache/geode/pull/1011 Thank you for submitting a contribution to Apache Geode. In order to streamline the review of the contribution we ask you to ensure the following steps have been taken: ### For all changes: - [ x] Is there a JIRA ticket associated with this PR? Is it referenced in the commit message? - [x ] Has your PR been rebased against the latest commit within the target branch (typically `develop`)? - [ x] Is your initial contribution a single, squashed commit? - [x ] Does `gradlew build` run cleanly? - [x ] Have you written or updated unit tests to verify your changes? - [ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under [ASF 2.0](http://www.apache.org/legal/resolved.html#category-a)? ### Note: Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible. If you need help, please send an email to d...@geode.apache.org. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Simplify support for custom GFSH commands > - > > Key: GEODE-3007 > URL: https://issues.apache.org/jira/browse/GEODE-3007 > Project: Geode > Issue Type: Improvement > Components: gfsh >Reporter: Jared Stewart >Assignee: Jared Stewart >Priority: Major > > Geode currently supports three ways to load GFSH commands: > 1. Scan the classpath for commands in > "org.apache.geode.management.internal.cli.commands” > 2. Scan the classpath for commands in a package specified by a user via the > “user-command-packages” system property. > 3. Scan the classpath for commands registered in files inside > META-INF.services (e.g. > "geode-core/src/test/resources/META-INF/services/org.springframework.shell.core.CommandMarker”) > > After the improvements made by GEODE-2989, there is no reason to require a > user to specify the location of their custom commands via one of these > mechanisms. Instead, we should simply scan the entire classpath for any > classes implementing CommandMarker (regardless of whatever packages they live > in). -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3940) Backup can hang while trying to get a lock
[ https://issues.apache.org/jira/browse/GEODE-3940?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236760#comment-16236760 ] Kirk Lund commented on GEODE-3940: -- This bug appears to be caused by the fix for GEODE-3801 in revision 6a4e50e7ef2b7a3114e0ec0ba4f1a738de881dfd. > Backup can hang while trying to get a lock > --- > > Key: GEODE-3940 > URL: https://issues.apache.org/jira/browse/GEODE-3940 > Project: Geode > Issue Type: Bug > Components: persistence >Reporter: Lynn Gallinat >Assignee: Lynn Gallinat > > {noformat} > Backup can hang when createKrf cannot get the compactor lock. > "Pooled Message Processor 2" #196 daemon prio=10 os_prio=0 > tid=0x7fef9801e000 nid=0x3cf3 waiting on condition [0x7ff094cd5000] >java.lang.Thread.State: WAITING (parking) > at sun.misc.Unsafe.park(Native Method) > - parking to wait for <0xf1a72c60> (a > java.util.concurrent.locks.ReentrantLock$NonfairSync) > at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) > at > java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836) > at > java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870) > at > java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199) > at > java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:209) > at > java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:285) > at > org.apache.geode.internal.cache.Oplog.lockCompactor(Oplog.java:6046) > < trying to get compactor lock > at org.apache.geode.internal.cache.Oplog.createKrf(Oplog.java:4157) > < in createKrf > at org.apache.geode.internal.cache.Oplog.finishKrf(Oplog.java:7746) > at > org.apache.geode.internal.cache.BackupManager.backupOplog(BackupManager.java:580) > at > org.apache.geode.internal.cache.BackupManager.completeBackup(BackupManager.java:270) > at > org.apache.geode.internal.cache.BackupManager.doBackup(BackupManager.java:139) > at > org.apache.geode.admin.internal.FinishBackupRequest.createResponse(FinishBackupRequest.java:102) > at > org.apache.geode.internal.admin.remote.CliLegacyMessage.process(CliLegacyMessage.java:39) > at > org.apache.geode.distributed.internal.DistributionMessage.scheduleAction(DistributionMessage.java:374) > at > org.apache.geode.distributed.internal.DistributionMessage$1.run(DistributionMessage.java:440) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at > org.apache.geode.distributed.internal.DistributionManager.runUntilShutdown(DistributionManager.java:666) > at > org.apache.geode.distributed.internal.DistributionManager$4$1.run(DistributionManager.java:923) > at java.lang.Thread.run(Thread.java:748) > The compactor thread already has the compactor lock. > It is waiting for a DiskEntry lock. > "Idle OplogCompactor" #379 daemon prio=10 os_prio=0 tid=0x7ff020026000 > nid=0x6916 waiting for monitor entry [0x7ff08c7ce000] >java.lang.Thread.State: BLOCKED (on object monitor) > at > org.apache.geode.internal.cache.Oplog.writeOneKeyEntryForKRF(Oplog.java:3924) > - waiting to lock <0xf1c55c70> (a > org.apache.geode.internal.cache.entries.VersionedThinDiskRegionEntryOffHeapStringKey2) > <== waiting for DiskEntry lock > at org.apache.geode.internal.cache.Oplog.createKrf(Oplog.java:4201) ><=== already in createKrf > - locked <0xf1a72c30> (a > java.util.concurrent.atomic.AtomicBoolean) > at org.apache.geode.internal.cache.Oplog$2.run(Oplog.java:3875) > at > org.apache.geode.internal.cache.DiskStoreImpl$5.run(DiskStoreImpl.java:4386) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > The DiskEntry lock is held by this thread and is waiting for replies: > "PartitionedRegion Message Processor26" #238 daemon prio=10 os_prio=0 > tid=0x7fef9c01f800 nid=0x3dd0 waiting on condition [0x7ff08ebe9000] >java.lang.Thread.State: TIMED_WAITING (parking) > at sun.misc.Unsafe.park(Native Method) > - parking to wait for <0xf1e42200> (a > java.util.concurrent.CountDownLatch$Sync) > at > java.util.concurrent.locks.LockSupport.parkNanos
[jira] [Resolved] (GEODE-3895) Add Handshake/Message version byte
[ https://issues.apache.org/jira/browse/GEODE-3895?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Brian Rowe resolved GEODE-3895. --- Resolution: Fixed Fix Version/s: 1.4.0 > Add Handshake/Message version byte > -- > > Key: GEODE-3895 > URL: https://issues.apache.org/jira/browse/GEODE-3895 > Project: Geode > Issue Type: Improvement > Components: client/server >Reporter: Brian Baynes >Priority: Major > Fix For: 1.4.0 > > > Add an extra protocol version byte so that the first two bytes will > (initially) be 110 followed by 1. The '1' byte will be increased when the > HandshakeRequest or Message changes in such a way that we can't make the > handshake backward-compatible. > Ensure that clients on newer versions will have their connections terminated. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3605) Remove deprecated methods from Public API.
[ https://issues.apache.org/jira/browse/GEODE-3605?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236773#comment-16236773 ] ASF subversion and git services commented on GEODE-3605: Commit d2cda36bdc7bc4b0f331fc29ad817e79c1dfbdf2 in geode-native's branch refs/heads/develop from [~dkimura] [ https://gitbox.apache.org/repos/asf?p=geode-native.git;h=d2cda36 ] GEODE-3605: Remove deprecated methods from public API > Remove deprecated methods from Public API. > -- > > Key: GEODE-3605 > URL: https://issues.apache.org/jira/browse/GEODE-3605 > Project: Geode > Issue Type: Task > Components: native client >Reporter: Jacob S. Barrett >Priority: Major > > Remove deprecated methods on public API. > See: > CacheableDate.hpp -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3605) Remove deprecated methods from Public API.
[ https://issues.apache.org/jira/browse/GEODE-3605?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236772#comment-16236772 ] ASF GitHub Bot commented on GEODE-3605: --- pivotal-jbarrett closed pull request #141: GEODE-3605: Remove deprecated methods from public API URL: https://github.com/apache/geode-native/pull/141 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/cppcache/include/geode/CacheableDate.hpp b/cppcache/include/geode/CacheableDate.hpp index 99dce9cc..a4a44dbb 100644 --- a/cppcache/include/geode/CacheableDate.hpp +++ b/cppcache/include/geode/CacheableDate.hpp @@ -90,27 +90,6 @@ class CPPCACHE_EXPORT CacheableDate : public CacheableKey { /** @return true if this key matches other. */ virtual bool operator==(const CacheableKey& other) const; - /** - * @return day of the month. - * @deprecated Use localtime or similar for calendar conversions. - */ - __DEPRECATED__("Use localtime or similar for calendar conversions.") - virtual int day() const; - - /** - * @return month 1(Jan) - 12(Dec) . - * @deprecated Use localtime or similar for calendar conversions. - */ - __DEPRECATED__("Use localtime or similar for calendar conversions.") - virtual int month() const; - - /** - * @return year, example 1999. - * @deprecated Use localtime or similar for calendar conversions. - */ - __DEPRECATED__("Use localtime or similar for calendar conversions.") - virtual int year() const; - /** @return milliseconds elapsed since January 1, 1970, 00:00:00 GMT. */ virtual int64_t milliseconds() const; diff --git a/cppcache/src/CacheableDate.cpp b/cppcache/src/CacheableDate.cpp index 04b7b7b2..da8220b5 100644 --- a/cppcache/src/CacheableDate.cpp +++ b/cppcache/src/CacheableDate.cpp @@ -60,27 +60,6 @@ bool CacheableDate::operator==(const CacheableKey& other) const { return m_timevalue == otherDt.m_timevalue; } -int CacheableDate::day() const { - struct tm date = {0}; - time_t sec = m_timevalue / 1000; - ACE_OS::localtime_r(&sec, &date); - return date.tm_mday; -} - -int CacheableDate::month() const { - struct tm date = {0}; - time_t sec = m_timevalue / 1000; - ACE_OS::localtime_r(&sec, &date); - return date.tm_mon + 1; -} - -int CacheableDate::year() const { - struct tm date = {0}; - time_t sec = m_timevalue / 1000; - ACE_OS::localtime_r(&sec, &date); - return date.tm_year + 1900; -} - int64_t CacheableDate::milliseconds() const { return m_timevalue; } int32_t CacheableDate::hashcode() const { This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Remove deprecated methods from Public API. > -- > > Key: GEODE-3605 > URL: https://issues.apache.org/jira/browse/GEODE-3605 > Project: Geode > Issue Type: Task > Components: native client >Reporter: Jacob S. Barrett >Priority: Major > > Remove deprecated methods on public API. > See: > CacheableDate.hpp -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3754) Replace all public API function out parameters with return values
[ https://issues.apache.org/jira/browse/GEODE-3754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236785#comment-16236785 ] ASF subversion and git services commented on GEODE-3754: Commit 89d6d3f0603156c682889a80cca2c4903d7af9f3 in geode-native's branch refs/heads/develop from [~dkimura] [ https://gitbox.apache.org/repos/asf?p=geode-native.git;h=89d6d3f ] GEODE-3754: Replace all public API function out parameters with return values > Replace all public API function out parameters with return values > - > > Key: GEODE-3754 > URL: https://issues.apache.org/jira/browse/GEODE-3754 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Jacob S. Barrett >Priority: Major > > Replace all functions with out parameters with return values. Use > {{std::tuple}} where more then one return value is required. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Created] (GEODE-3948) Improve CQ performance under flaky network conditions
Galen O'Sullivan created GEODE-3948: --- Summary: Improve CQ performance under flaky network conditions Key: GEODE-3948 URL: https://issues.apache.org/jira/browse/GEODE-3948 Project: Geode Issue Type: Improvement Components: cq, messaging Reporter: Galen O'Sullivan Client CQ connections occasionally stop receiving messages and become blocked indefinitely. This can be caused by a server that hangs or dies without sending a close message, or by some firewalls. The client already gets ping messages from the server, but currently ignores them. Let's use those messages to detect a failed connection and close it. Probably the client should follow the same logic and send ping messages if it has sent no acks for a while, so that the server can also detect and close a broken connection. The timeout could be specified as a number and time interval, the ping interval and the number of missed pings after which to fail. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Assigned] (GEODE-3948) Improve CQ performance under flaky network conditions
[ https://issues.apache.org/jira/browse/GEODE-3948?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Galen O'Sullivan reassigned GEODE-3948: --- Assignee: Galen O'Sullivan > Improve CQ performance under flaky network conditions > - > > Key: GEODE-3948 > URL: https://issues.apache.org/jira/browse/GEODE-3948 > Project: Geode > Issue Type: Improvement > Components: cq, messaging >Reporter: Galen O'Sullivan >Assignee: Galen O'Sullivan > > Client CQ connections occasionally stop receiving messages and become blocked > indefinitely. > This can be caused by a server that hangs or dies without sending a close > message, or by some firewalls. > The client already gets ping messages from the server, but currently ignores > them. Let's use those messages to detect a failed connection and close it. > Probably the client should follow the same logic and send ping messages if it > has sent no acks for a while, so that the server can also detect and close a > broken connection. > The timeout could be specified as a number and time interval, the ping > interval and the number of missed pings after which to fail. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3728) Move DataOutput::writeFullUTF to TcrMessage
[ https://issues.apache.org/jira/browse/GEODE-3728?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236829#comment-16236829 ] ASF GitHub Bot commented on GEODE-3728: --- dgkimura opened a new pull request #142: GEODE-3728: Move DataOutput::writeFullUTF to TcrMessage URL: https://github.com/apache/geode-native/pull/142 Testing: Unittests in TcrMessage that exercise this code all passed This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Move DataOutput::writeFullUTF to TcrMessage > --- > > Key: GEODE-3728 > URL: https://issues.apache.org/jira/browse/GEODE-3728 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Michael Martell >Priority: Major > > The DataOutput::writeFullUTF function is currently public. However, it is > only used by TcrMessage for a very specific purpose of creating CqMessages > that user should never have a reason to call directly, so it should be moved > to TcrMessage. > Also, the check for value != nullptr is unnecessary since the input value > can't be null in the TcrMessage. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3942) Add concourse pipeline scripts
[ https://issues.apache.org/jira/browse/GEODE-3942?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236835#comment-16236835 ] ASF subversion and git services commented on GEODE-3942: Commit 0b636c2ba2830142936f9f50cf7c625b4a154d4e in geode's branch refs/heads/develop from [~smgoller] [ https://gitbox.apache.org/repos/asf?p=geode.git;h=0b636c2 ] Fix version number in email subject. [GEODE-3942] > Add concourse pipeline scripts > -- > > Key: GEODE-3942 > URL: https://issues.apache.org/jira/browse/GEODE-3942 > Project: Geode > Issue Type: Improvement > Components: ci >Reporter: Anthony Baker > > Add scripts for concourse pipelines. The initial jobs should just run > {{gradle build}}. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3895) Add Handshake/Message version byte
[ https://issues.apache.org/jira/browse/GEODE-3895?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236850#comment-16236850 ] ASF subversion and git services commented on GEODE-3895: Commit 235790c14af58b89c57643c066ff25ca9b7afb14 in geode's branch refs/heads/develop from [~WireBaron] [ https://gitbox.apache.org/repos/asf?p=geode.git;h=235790c ] GEODE-3895: fixup: Add exceptions to excludedClasses.txt Signed-off-by: Galen O'Sullivan > Add Handshake/Message version byte > -- > > Key: GEODE-3895 > URL: https://issues.apache.org/jira/browse/GEODE-3895 > Project: Geode > Issue Type: Improvement > Components: client/server >Reporter: Brian Baynes >Priority: Major > Fix For: 1.4.0 > > > Add an extra protocol version byte so that the first two bytes will > (initially) be 110 followed by 1. The '1' byte will be increased when the > HandshakeRequest or Message changes in such a way that we can't make the > handshake backward-compatible. > Ensure that clients on newer versions will have their connections terminated. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3941) Pulse throws NPE when SecurityManager is enabled
[ https://issues.apache.org/jira/browse/GEODE-3941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236954#comment-16236954 ] ASF subversion and git services commented on GEODE-3941: Commit a8e1fab63848b064fdecb2c63fa2fa26e8f06cb4 in geode's branch refs/heads/develop from [~jens.deppe] [ https://gitbox.apache.org/repos/asf?p=geode.git;h=a8e1fab ] GEODE-3941: Pulse issues when SecurityManager is enabled (#1007) - Pulse UI is not updated correctly - missing servers for ex. - NPE regarding JMXUpdater in pulse.log > Pulse throws NPE when SecurityManager is enabled > > > Key: GEODE-3941 > URL: https://issues.apache.org/jira/browse/GEODE-3941 > Project: Geode > Issue Type: Bug > Components: pulse >Reporter: Jens Deppe >Assignee: Jens Deppe > > When `SecurityManager` is enabled, Pulse produces the following errors in > `pulse.log`. > {noformat} > 2017-10-26 13:54:51,590 INFO o.a.g.t.p.i.d.Cluster > [PULSE-localhost:11099:gfadmin] Exception Occurred while updating cluster > data : > java.lang.NullPointerException: null > at > org.apache.geode.tools.pulse.internal.data.JMXDataUpdater.initializeMember(JMXDataUpdater.java:1374) > ~[classes/:?] > at > org.apache.geode.tools.pulse.internal.data.JMXDataUpdater.updateClusterMember(JMXDataUpdater.java:1415) > ~[classes/:?] > at > org.apache.geode.tools.pulse.internal.data.JMXDataUpdater.updateData(JMXDataUpdater.java:323) > ~[classes/:?] > at > org.apache.geode.tools.pulse.internal.data.Cluster.updateData(Cluster.java:2336) > ~[classes/:?] > at > org.apache.geode.tools.pulse.internal.data.Cluster.run(Cluster.java:2300) > [classes/:?] > {noformat} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3941) Pulse throws NPE when SecurityManager is enabled
[ https://issues.apache.org/jira/browse/GEODE-3941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236952#comment-16236952 ] ASF GitHub Bot commented on GEODE-3941: --- jdeppe-pivotal closed pull request #1007: GEODE-3941: Pulse issues when SecurityManager is enabled URL: https://github.com/apache/geode/pull/1007 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/geode-assembly/src/test/java/org/apache/geode/tools/pulse/PulseSecurityIntegrationTest.java b/geode-assembly/src/test/java/org/apache/geode/tools/pulse/PulseSecurityIntegrationTest.java new file mode 100644 index 00..7e331d7f27 --- /dev/null +++ b/geode-assembly/src/test/java/org/apache/geode/tools/pulse/PulseSecurityIntegrationTest.java @@ -0,0 +1,57 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for additional information regarding + * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. You may obtain a + * copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ + +package org.apache.geode.tools.pulse; + +import static java.util.concurrent.TimeUnit.MINUTES; +import static org.assertj.core.api.Assertions.assertThat; +import static org.awaitility.Awaitility.await; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +import org.apache.geode.examples.SimpleSecurityManager; +import org.apache.geode.management.ManagementService; +import org.apache.geode.test.junit.categories.IntegrationTest; +import org.apache.geode.test.junit.rules.EmbeddedPulseRule; +import org.apache.geode.test.junit.rules.LocatorStarterRule; +import org.apache.geode.tools.pulse.internal.data.Cluster; + +@Category(IntegrationTest.class) +public class PulseSecurityIntegrationTest { + + @Rule + public LocatorStarterRule locator = + new LocatorStarterRule().withSecurityManager(SimpleSecurityManager.class).withAutoStart(); + + @Rule + public EmbeddedPulseRule pulse = new EmbeddedPulseRule(); + + @Test + public void getAttributesWithSecurityManager() throws Exception { +pulse.useJmxPort(locator.getJmxPort()); + +ManagementService service = + ManagementService.getExistingManagementService(locator.getLocator().getCache()); + +await().atMost(2, MINUTES).until(() -> assertThat(service.getMemberMXBean()).isNotNull()); + +Cluster cluster = pulse.getRepository().getCluster("cluster", "cluster"); +Cluster.Member[] members = cluster.getMembers(); +assertThat(members.length).isEqualTo(1); +assertThat(members[0].getName()).isEqualTo("locator"); + } +} diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/beans/LocatorMBeanBridge.java b/geode-core/src/main/java/org/apache/geode/management/internal/beans/LocatorMBeanBridge.java index 1597f9f851..bb86ac07f6 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/beans/LocatorMBeanBridge.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/beans/LocatorMBeanBridge.java @@ -16,6 +16,7 @@ import java.io.File; import java.io.IOException; +import java.net.InetAddress; import java.util.List; import org.apache.logging.log4j.Logger; @@ -44,7 +45,8 @@ public LocatorMBeanBridge(Locator loc) { } public String getBindAddress() { -return loc.getBindAddress().getCanonicalHostName(); +InetAddress bindAddress = loc.getBindAddress(); +return bindAddress != null ? bindAddress.getCanonicalHostName() : null; } public String getHostnameForClients() { diff --git a/geode-pulse/src/main/java/org/apache/geode/tools/pulse/internal/data/JMXDataUpdater.java b/geode-pulse/src/main/java/org/apache/geode/tools/pulse/internal/data/JMXDataUpdater.java index 2da74f178c..f9b6825a0b 100644 --- a/geode-pulse/src/main/java/org/apache/geode/tools/pulse/internal/data/JMXDataUpdater.java +++ b/geode-pulse/src/main/java/org/apache/geode/tools/pulse/internal/data/JMXDataUpdater.java @@ -17,16 +17,10 @@ package org.apache.geode.tools.pulse.internal.data; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; -impo
[jira] [Commented] (GEODE-3947) geode-dependency.jar does not have all the dependencies needed for deserializing custom object
[ https://issues.apache.org/jira/browse/GEODE-3947?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16237085#comment-16237085 ] ASF subversion and git services commented on GEODE-3947: Commit 3487b3acc4a571974ddf6738b99e9bf885a17a77 in geode's branch refs/heads/develop from [~jinmeiliao] [ https://gitbox.apache.org/repos/asf?p=geode.git;h=3487b3a ] GEODE-3947: add the necessary dependency in geode-dependency.jar (#1010) > geode-dependency.jar does not have all the dependencies needed for > deserializing custom object > -- > > Key: GEODE-3947 > URL: https://issues.apache.org/jira/browse/GEODE-3947 > Project: Geode > Issue Type: Bug >Affects Versions: 1.3.0 >Reporter: Jinmei Liao >Assignee: Jinmei Liao >Priority: Blocker > Fix For: 1.4.0 > > > JsonUtil recently added a dependency to common-beanutil, we need to include > that in geode-dependency.jar -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3947) geode-dependency.jar does not have all the dependencies needed for deserializing custom object
[ https://issues.apache.org/jira/browse/GEODE-3947?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16237084#comment-16237084 ] ASF GitHub Bot commented on GEODE-3947: --- jinmeiliao closed pull request #1010: GEODE-3947: add the necessary dependency in geode-dependency.jar URL: https://github.com/apache/geode/pull/1010 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/geode-assembly/build.gradle b/geode-assembly/build.gradle index 2cb27311e6..1f139a5ac9 100755 --- a/geode-assembly/build.gradle +++ b/geode-assembly/build.gradle @@ -164,6 +164,8 @@ def cp = { it.contains('commons-lang') || it.contains('commons-logging') || it.contains('commons-validator') || +it.contains('commons-beanutils') || +it.contains('commons-codec') || it.contains('fast-classpath-scanner') || it.contains('fastutil') || it.contains('jackson-annotations') || diff --git a/geode-assembly/src/test/java/org/apache/geode/management/internal/cli/commands/PutCommandWithJsonTest.java b/geode-assembly/src/test/java/org/apache/geode/management/internal/cli/commands/PutCommandWithJsonTest.java new file mode 100644 index 00..b509f06902 --- /dev/null +++ b/geode-assembly/src/test/java/org/apache/geode/management/internal/cli/commands/PutCommandWithJsonTest.java @@ -0,0 +1,63 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for additional information regarding + * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. You may obtain a + * copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ + +package org.apache.geode.management.internal.cli.commands; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.io.File; +import java.io.IOException; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +import org.apache.geode.test.compiler.JarBuilder; +import org.apache.geode.test.junit.categories.AcceptanceTest; +import org.apache.geode.test.junit.rules.gfsh.GfshExecution; +import org.apache.geode.test.junit.rules.gfsh.GfshRule; +import org.apache.geode.test.junit.rules.gfsh.GfshScript; + +@Category(AcceptanceTest.class) +public class PutCommandWithJsonTest { + private File jarToDeploy; + @Rule + public GfshRule gfsh = new GfshRule(); + + + @Before + public void setup() throws IOException { +jarToDeploy = new File(gfsh.getTemporaryFolder().getRoot(), "ourJar.jar"); + +String classContents = +"public class Customer {private String name; public void setName(String name){this.name=name;}}"; +JarBuilder jarBuilder = new JarBuilder(); +jarBuilder.buildJar(jarToDeploy, classContents); + } + + @Test + public void putWithJsonString() throws Exception { +GfshExecution execution = GfshScript +.of("start locator --name=locator", "start server --name=server", "sleep --time=1", +"deploy --jar=" + jarToDeploy.getAbsolutePath(), +"create region --name=region --type=REPLICATE", "sleep --time=1", +"put --region=region --key=key --value=('name':'Jinmei') --value-class=Customer") +.execute(gfsh); + +assertThat(execution.getOutputText()).doesNotContain("Couldn't convert JSON to Object"); +assertThat(execution.getOutputText()).contains("Value Class : Customer"); + } +} This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > geode-dependency.jar does not have all the dependencies needed for > deserializing custom object > -- > > Key: GEODE-3947 > URL: https://issues.apache.org/jira/browse/GEODE-3947 > Project: Geode > Issue Type: Bug >Affects Versions: 1.3.0 >Reporter: Jinmei
[jira] [Resolved] (GEODE-3947) geode-dependency.jar does not have all the dependencies needed for deserializing custom object
[ https://issues.apache.org/jira/browse/GEODE-3947?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jinmei Liao resolved GEODE-3947. Resolution: Fixed > geode-dependency.jar does not have all the dependencies needed for > deserializing custom object > -- > > Key: GEODE-3947 > URL: https://issues.apache.org/jira/browse/GEODE-3947 > Project: Geode > Issue Type: Bug >Affects Versions: 1.3.0 >Reporter: Jinmei Liao >Assignee: Jinmei Liao >Priority: Blocker > Fix For: 1.4.0 > > > JsonUtil recently added a dependency to common-beanutil, we need to include > that in geode-dependency.jar -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3937) Fix NPE when executing removeFromDisk
[ https://issues.apache.org/jira/browse/GEODE-3937?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16237139#comment-16237139 ] ASF GitHub Bot commented on GEODE-3937: --- dineshpune2006 commented on a change in pull request #1002: GEODE-3937:Fix NPE when executing removeFromDisk URL: https://github.com/apache/geode/pull/1002#discussion_r148714445 ## File path: geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueue.java ## @@ -1781,4 +1785,47 @@ ParallelGatewaySenderQueueMetaRegion newMetataRegion(InternalCache cache, final return meta; } } + + + + public void clearQueueTestOnly() { + +this.sender.pause();// it wil take internal read-write-lock +try { + for (PartitionedRegion prQ : this.userRegionNameToshadowPRMap.values()) { +clearPartitionedRegionTestOnly((PartitionedRegion) prQ); + } +} catch (Exception ee) { + throw ee; +} finally { + if (this.sender.isPaused()) +this.sender.resume(); +} + } + + // clear the partition region + private void clearPartitionedRegionTestOnly(PartitionedRegion partitionedRegion) { +LocalDataSet lds = (LocalDataSet) PartitionRegionHelper.getLocalPrimaryData(partitionedRegion); +Set set = lds.getBucketSet(); // this returns bucket ids in the Review comment: done This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Fix NPE when executing removeFromDisk > -- > > Key: GEODE-3937 > URL: https://issues.apache.org/jira/browse/GEODE-3937 > Project: Geode > Issue Type: Bug > Components: core >Reporter: dinesh akhand > > While executing the test case or clearQueueTestOnly method. we can see > exception > [vm4] java.lang.NullPointerException > [vm4] at > org.apache.geode.internal.cache.entries.DiskEntry$Helper.removeFromDisk(DiskEntry.java:1519) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractOplogDiskRegionEntry.removePhase1(AbstractOplogDiskRegionEntry.java:50) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractRegionEntry.destroy(AbstractRegionEntry.java:914) > [vm4] at > org.apache.geode.internal.cache.AbstractRegionMap.destroyEntry(AbstractRegionMap.java:3100) > [vm4] at > org.apache.geode.internal.cache.AbstractRegionMap.destroy(AbstractRegionMap.java:1429) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6465) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6439) > [vm4] at > org.apache.geode.internal.cache.BucketRegion.basicDestroy(BucketRegion.java:1167) > [vm4] at > org.apache.geode.internal.cache.AbstractBucketRegionQueue.basicDestroy(AbstractBucketRegionQueue.java:352) > [vm4] at > org.apache.geode.internal.cache.BucketRegionQueue.basicDestroy(BucketRegionQueue.java:366) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.validatedDestroy(LocalRegion.java:1101) > [vm4] at > org.apache.geode.internal.cache.DistributedRegion.validatedDestroy(DistributedRegion.java:942) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.destroy(LocalRegion.java:1086) > [vm4] at > org.apache.geode.internal.cache.AbstractRegion.destroy(AbstractRegion.java:315) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.remove(LocalRegion.java:8870) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueue.clearPartitionedRegion(ParallelGatewaySenderQueue.java:1820) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueue.clearQueue(ParallelGatewaySenderQueue.java:1795) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ConcurrentParallelGatewaySenderQueue.clearQueue(ConcurrentParallelGatewaySenderQueue.java:236) > [vm4] at > org.apache.geode.internal.cache.wan.WANTestBase.clearGatewaySender(WANTestBase.java:256) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueueOverflowDUnitTest.lambda$8(ParallelGatewaySenderQueueOverflowDUnitTest.java:96) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueueOverflowDUnitTest$$Lambda$42/144498586.run(Unknown > Source) > [vm4] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3937) Fix NPE when executing removeFromDisk
[ https://issues.apache.org/jira/browse/GEODE-3937?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16237138#comment-16237138 ] ASF GitHub Bot commented on GEODE-3937: --- dineshpune2006 commented on a change in pull request #1002: GEODE-3937:Fix NPE when executing removeFromDisk URL: https://github.com/apache/geode/pull/1002#discussion_r148714414 ## File path: geode-core/src/main/java/org/apache/geode/internal/cache/entries/DiskEntry.java ## @@ -1510,6 +1510,9 @@ public static void removeFromDisk(DiskEntry entry, LocalRegion region, boolean i throws RegionClearedException { DiskRegion dr = region.getDiskRegion(); DiskId did = entry.getDiskId(); + if (dr == null) Review comment: done This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Fix NPE when executing removeFromDisk > -- > > Key: GEODE-3937 > URL: https://issues.apache.org/jira/browse/GEODE-3937 > Project: Geode > Issue Type: Bug > Components: core >Reporter: dinesh akhand > > While executing the test case or clearQueueTestOnly method. we can see > exception > [vm4] java.lang.NullPointerException > [vm4] at > org.apache.geode.internal.cache.entries.DiskEntry$Helper.removeFromDisk(DiskEntry.java:1519) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractOplogDiskRegionEntry.removePhase1(AbstractOplogDiskRegionEntry.java:50) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractRegionEntry.destroy(AbstractRegionEntry.java:914) > [vm4] at > org.apache.geode.internal.cache.AbstractRegionMap.destroyEntry(AbstractRegionMap.java:3100) > [vm4] at > org.apache.geode.internal.cache.AbstractRegionMap.destroy(AbstractRegionMap.java:1429) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6465) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6439) > [vm4] at > org.apache.geode.internal.cache.BucketRegion.basicDestroy(BucketRegion.java:1167) > [vm4] at > org.apache.geode.internal.cache.AbstractBucketRegionQueue.basicDestroy(AbstractBucketRegionQueue.java:352) > [vm4] at > org.apache.geode.internal.cache.BucketRegionQueue.basicDestroy(BucketRegionQueue.java:366) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.validatedDestroy(LocalRegion.java:1101) > [vm4] at > org.apache.geode.internal.cache.DistributedRegion.validatedDestroy(DistributedRegion.java:942) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.destroy(LocalRegion.java:1086) > [vm4] at > org.apache.geode.internal.cache.AbstractRegion.destroy(AbstractRegion.java:315) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.remove(LocalRegion.java:8870) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueue.clearPartitionedRegion(ParallelGatewaySenderQueue.java:1820) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueue.clearQueue(ParallelGatewaySenderQueue.java:1795) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ConcurrentParallelGatewaySenderQueue.clearQueue(ConcurrentParallelGatewaySenderQueue.java:236) > [vm4] at > org.apache.geode.internal.cache.wan.WANTestBase.clearGatewaySender(WANTestBase.java:256) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueueOverflowDUnitTest.lambda$8(ParallelGatewaySenderQueueOverflowDUnitTest.java:96) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueueOverflowDUnitTest$$Lambda$42/144498586.run(Unknown > Source) > [vm4] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (GEODE-3937) Fix NPE when executing removeFromDisk
[ https://issues.apache.org/jira/browse/GEODE-3937?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16237141#comment-16237141 ] ASF GitHub Bot commented on GEODE-3937: --- dineshpune2006 commented on a change in pull request #1002: GEODE-3937:Fix NPE when executing removeFromDisk URL: https://github.com/apache/geode/pull/1002#discussion_r148714463 ## File path: geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueue.java ## @@ -1781,4 +1785,47 @@ ParallelGatewaySenderQueueMetaRegion newMetataRegion(InternalCache cache, final return meta; } } + + + + public void clearQueueTestOnly() { + +this.sender.pause();// it wil take internal read-write-lock +try { + for (PartitionedRegion prQ : this.userRegionNameToshadowPRMap.values()) { +clearPartitionedRegionTestOnly((PartitionedRegion) prQ); + } +} catch (Exception ee) { + throw ee; +} finally { + if (this.sender.isPaused()) +this.sender.resume(); +} + } + + // clear the partition region + private void clearPartitionedRegionTestOnly(PartitionedRegion partitionedRegion) { +LocalDataSet lds = (LocalDataSet) PartitionRegionHelper.getLocalPrimaryData(partitionedRegion); +Set set = lds.getBucketSet(); // this returns bucket ids in the + // function context + +for (Integer bucketId : set) { + Bucket bucket = partitionedRegion.getRegionAdvisor().getBucket(bucketId); + if (bucket instanceof ProxyBucketRegion == false) { +if (bucket instanceof BucketRegion) { + BucketRegion bucketRegion = (BucketRegion) bucket; + Set keySet = bucketRegion.keySet(); + for (Iterator iterator = keySet.iterator(); iterator.hasNext();) { +Object key = iterator.next(); +try { + bucketRegion.remove(key); +} catch (Exception ee) { + ee.printStackTrace(System.out); Review comment: done This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Fix NPE when executing removeFromDisk > -- > > Key: GEODE-3937 > URL: https://issues.apache.org/jira/browse/GEODE-3937 > Project: Geode > Issue Type: Bug > Components: core >Reporter: dinesh akhand > > While executing the test case or clearQueueTestOnly method. we can see > exception > [vm4] java.lang.NullPointerException > [vm4] at > org.apache.geode.internal.cache.entries.DiskEntry$Helper.removeFromDisk(DiskEntry.java:1519) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractOplogDiskRegionEntry.removePhase1(AbstractOplogDiskRegionEntry.java:50) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractRegionEntry.destroy(AbstractRegionEntry.java:914) > [vm4] at > org.apache.geode.internal.cache.AbstractRegionMap.destroyEntry(AbstractRegionMap.java:3100) > [vm4] at > org.apache.geode.internal.cache.AbstractRegionMap.destroy(AbstractRegionMap.java:1429) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6465) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6439) > [vm4] at > org.apache.geode.internal.cache.BucketRegion.basicDestroy(BucketRegion.java:1167) > [vm4] at > org.apache.geode.internal.cache.AbstractBucketRegionQueue.basicDestroy(AbstractBucketRegionQueue.java:352) > [vm4] at > org.apache.geode.internal.cache.BucketRegionQueue.basicDestroy(BucketRegionQueue.java:366) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.validatedDestroy(LocalRegion.java:1101) > [vm4] at > org.apache.geode.internal.cache.DistributedRegion.validatedDestroy(DistributedRegion.java:942) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.destroy(LocalRegion.java:1086) > [vm4] at > org.apache.geode.internal.cache.AbstractRegion.destroy(AbstractRegion.java:315) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.remove(LocalRegion.java:8870) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueue.clearPartitionedRegion(ParallelGatewaySenderQueue.java:1820) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueue.clearQueue(ParallelGatewaySenderQueue.java:1795) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ConcurrentParallelGatewaySenderQueue.clearQueue(ConcurrentParallelGatewaySenderQueue.java:236)
[jira] [Commented] (GEODE-3937) Fix NPE when executing removeFromDisk
[ https://issues.apache.org/jira/browse/GEODE-3937?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16237140#comment-16237140 ] ASF GitHub Bot commented on GEODE-3937: --- dineshpune2006 commented on a change in pull request #1002: GEODE-3937:Fix NPE when executing removeFromDisk URL: https://github.com/apache/geode/pull/1002#discussion_r148714453 ## File path: geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueue.java ## @@ -1781,4 +1785,47 @@ ParallelGatewaySenderQueueMetaRegion newMetataRegion(InternalCache cache, final return meta; } } + + + + public void clearQueueTestOnly() { + +this.sender.pause();// it wil take internal read-write-lock +try { + for (PartitionedRegion prQ : this.userRegionNameToshadowPRMap.values()) { +clearPartitionedRegionTestOnly((PartitionedRegion) prQ); + } +} catch (Exception ee) { + throw ee; +} finally { + if (this.sender.isPaused()) +this.sender.resume(); +} + } + + // clear the partition region + private void clearPartitionedRegionTestOnly(PartitionedRegion partitionedRegion) { +LocalDataSet lds = (LocalDataSet) PartitionRegionHelper.getLocalPrimaryData(partitionedRegion); +Set set = lds.getBucketSet(); // this returns bucket ids in the + // function context + +for (Integer bucketId : set) { + Bucket bucket = partitionedRegion.getRegionAdvisor().getBucket(bucketId); + if (bucket instanceof ProxyBucketRegion == false) { +if (bucket instanceof BucketRegion) { + BucketRegion bucketRegion = (BucketRegion) bucket; + Set keySet = bucketRegion.keySet(); + for (Iterator iterator = keySet.iterator(); iterator.hasNext();) { Review comment: done This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Fix NPE when executing removeFromDisk > -- > > Key: GEODE-3937 > URL: https://issues.apache.org/jira/browse/GEODE-3937 > Project: Geode > Issue Type: Bug > Components: core >Reporter: dinesh akhand > > While executing the test case or clearQueueTestOnly method. we can see > exception > [vm4] java.lang.NullPointerException > [vm4] at > org.apache.geode.internal.cache.entries.DiskEntry$Helper.removeFromDisk(DiskEntry.java:1519) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractOplogDiskRegionEntry.removePhase1(AbstractOplogDiskRegionEntry.java:50) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractRegionEntry.destroy(AbstractRegionEntry.java:914) > [vm4] at > org.apache.geode.internal.cache.AbstractRegionMap.destroyEntry(AbstractRegionMap.java:3100) > [vm4] at > org.apache.geode.internal.cache.AbstractRegionMap.destroy(AbstractRegionMap.java:1429) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6465) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6439) > [vm4] at > org.apache.geode.internal.cache.BucketRegion.basicDestroy(BucketRegion.java:1167) > [vm4] at > org.apache.geode.internal.cache.AbstractBucketRegionQueue.basicDestroy(AbstractBucketRegionQueue.java:352) > [vm4] at > org.apache.geode.internal.cache.BucketRegionQueue.basicDestroy(BucketRegionQueue.java:366) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.validatedDestroy(LocalRegion.java:1101) > [vm4] at > org.apache.geode.internal.cache.DistributedRegion.validatedDestroy(DistributedRegion.java:942) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.destroy(LocalRegion.java:1086) > [vm4] at > org.apache.geode.internal.cache.AbstractRegion.destroy(AbstractRegion.java:315) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.remove(LocalRegion.java:8870) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueue.clearPartitionedRegion(ParallelGatewaySenderQueue.java:1820) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueue.clearQueue(ParallelGatewaySenderQueue.java:1795) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ConcurrentParallelGatewaySenderQueue.clearQueue(ConcurrentParallelGatewaySenderQueue.java:236) > [vm4] at > org.apache.geode.internal.cache.wan.WANTestBase.clearGatewaySender(WANTestBase.java:256) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelG
[jira] [Commented] (GEODE-3937) Fix NPE when executing removeFromDisk
[ https://issues.apache.org/jira/browse/GEODE-3937?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16237144#comment-16237144 ] ASF GitHub Bot commented on GEODE-3937: --- dineshpune2006 commented on a change in pull request #1002: GEODE-3937:Fix NPE when executing removeFromDisk URL: https://github.com/apache/geode/pull/1002#discussion_r148714505 ## File path: geode-wan/src/test/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderGeodeBug3937RegressionTest.java ## @@ -0,0 +1,92 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for additional information regarding + * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. You may obtain a + * copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ +package org.apache.geode.internal.cache.wan.parallel; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; + +import java.util.concurrent.TimeUnit; + +import org.apache.geode.internal.cache.wan.WANTestBase; +import org.apache.geode.test.dunit.Wait; +import org.apache.geode.test.junit.categories.DistributedTest; +import org.awaitility.Awaitility; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** + * DUnit for ParallelGatewaySenderGeodeBug3937RegressionTest overflow operations. + */ +@Category(DistributedTest.class) +public class ParallelGatewaySenderGeodeBug3937RegressionTest extends WANTestBase { + + @Test + public void testParallelSenderQueueEventsOverflow_NoDiskStoreSpecified() throws Exception { +Integer lnPort = (Integer) vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId(1)); +Integer nyPort = (Integer) vm1.invoke(() -> WANTestBase.createFirstRemoteLocator(2, lnPort)); + +createCacheInVMs(nyPort, vm2);// backup-vm is not started in this regression +createReceiverInVMs(vm2); + +createCacheInVMs(lnPort, vm4);// backup-vm is not started in this regression + +vm4.invoke(() -> WANTestBase.createSenderWithoutDiskStore("ln", 2, 10, 10, false, true)); + +vm4.invoke( +() -> WANTestBase.createPartitionedRegion(getTestMethodName(), "ln", 1, 100, isOffHeap())); + +startSenderInVMs("ln", vm4); + +vm4.invoke(() -> WANTestBase.pauseSender("ln")); + + +// give some time for the senders to pause +Wait.pause(1000); + +vm2.invoke( +() -> WANTestBase.createPartitionedRegion(getTestMethodName(), null, 1, 100, isOffHeap())); + +int numEventPuts = 50; +vm4.invoke(() -> WANTestBase.doHeavyPuts(getTestMethodName(), numEventPuts)); + +long numOvVm4 = (Long) vm4.invoke(() -> WANTestBase.getNumberOfEntriesOverflownToDisk("ln")); +long numMemVm4 = (Long) vm4.invoke(() -> WANTestBase.getNumberOfEntriesInVM("ln")); + +long totalOverflown = numOvVm4 + numMemVm4; + +assertEquals("Total number of entries in VM4 is incorrect", (numEventPuts * 1), +(numOvVm4 + numMemVm4)); + +try { + vm4.invoke(() -> WANTestBase.clearGatewaySender("ln")); +} catch (Exception ee) { Review comment: done This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Fix NPE when executing removeFromDisk > -- > > Key: GEODE-3937 > URL: https://issues.apache.org/jira/browse/GEODE-3937 > Project: Geode > Issue Type: Bug > Components: core >Reporter: dinesh akhand > > While executing the test case or clearQueueTestOnly method. we can see > exception > [vm4] java.lang.NullPointerException > [vm4] at > org.apache.geode.internal.cache.entries.DiskEntry$Helper.removeFromDisk(DiskEntry.java:1519) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractOplogDiskRegionEntry.removePhase1(AbstractOplogDiskRegionEntry.java:50) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractRegionEntry.destroy(AbstractRegionEntry.java:914) > [vm4] at > org.apache.geode.internal.cache.AbstractRegionMap.destroyEntry(AbstractRegionMap.java:3100) > [vm4] at > org.apa
[jira] [Commented] (GEODE-3937) Fix NPE when executing removeFromDisk
[ https://issues.apache.org/jira/browse/GEODE-3937?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16237143#comment-16237143 ] ASF GitHub Bot commented on GEODE-3937: --- dineshpune2006 commented on a change in pull request #1002: GEODE-3937:Fix NPE when executing removeFromDisk URL: https://github.com/apache/geode/pull/1002#discussion_r148714494 ## File path: geode-wan/src/test/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderGeodeBug3937RegressionTest.java ## @@ -0,0 +1,92 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for additional information regarding + * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. You may obtain a + * copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ +package org.apache.geode.internal.cache.wan.parallel; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; + +import java.util.concurrent.TimeUnit; + +import org.apache.geode.internal.cache.wan.WANTestBase; +import org.apache.geode.test.dunit.Wait; +import org.apache.geode.test.junit.categories.DistributedTest; +import org.awaitility.Awaitility; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** + * DUnit for ParallelGatewaySenderGeodeBug3937RegressionTest overflow operations. + */ +@Category(DistributedTest.class) +public class ParallelGatewaySenderGeodeBug3937RegressionTest extends WANTestBase { + + @Test + public void testParallelSenderQueueEventsOverflow_NoDiskStoreSpecified() throws Exception { +Integer lnPort = (Integer) vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId(1)); +Integer nyPort = (Integer) vm1.invoke(() -> WANTestBase.createFirstRemoteLocator(2, lnPort)); + +createCacheInVMs(nyPort, vm2);// backup-vm is not started in this regression +createReceiverInVMs(vm2); + +createCacheInVMs(lnPort, vm4);// backup-vm is not started in this regression + +vm4.invoke(() -> WANTestBase.createSenderWithoutDiskStore("ln", 2, 10, 10, false, true)); + +vm4.invoke( +() -> WANTestBase.createPartitionedRegion(getTestMethodName(), "ln", 1, 100, isOffHeap())); + +startSenderInVMs("ln", vm4); + +vm4.invoke(() -> WANTestBase.pauseSender("ln")); + + +// give some time for the senders to pause +Wait.pause(1000); Review comment: done This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Fix NPE when executing removeFromDisk > -- > > Key: GEODE-3937 > URL: https://issues.apache.org/jira/browse/GEODE-3937 > Project: Geode > Issue Type: Bug > Components: core >Reporter: dinesh akhand > > While executing the test case or clearQueueTestOnly method. we can see > exception > [vm4] java.lang.NullPointerException > [vm4] at > org.apache.geode.internal.cache.entries.DiskEntry$Helper.removeFromDisk(DiskEntry.java:1519) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractOplogDiskRegionEntry.removePhase1(AbstractOplogDiskRegionEntry.java:50) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractRegionEntry.destroy(AbstractRegionEntry.java:914) > [vm4] at > org.apache.geode.internal.cache.AbstractRegionMap.destroyEntry(AbstractRegionMap.java:3100) > [vm4] at > org.apache.geode.internal.cache.AbstractRegionMap.destroy(AbstractRegionMap.java:1429) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6465) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6439) > [vm4] at > org.apache.geode.internal.cache.BucketRegion.basicDestroy(BucketRegion.java:1167) > [vm4] at > org.apache.geode.internal.cache.AbstractBucketRegionQueue.basicDestroy(AbstractBucketRegionQueue.java:352) > [vm4] at > org.apache.geode.internal.cache.BucketRegionQueue.basicDestroy(BucketRegionQueue.java:366) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.validatedDestro
[jira] [Commented] (GEODE-3937) Fix NPE when executing removeFromDisk
[ https://issues.apache.org/jira/browse/GEODE-3937?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16237142#comment-16237142 ] ASF GitHub Bot commented on GEODE-3937: --- dineshpune2006 commented on a change in pull request #1002: GEODE-3937:Fix NPE when executing removeFromDisk URL: https://github.com/apache/geode/pull/1002#discussion_r148714487 ## File path: geode-wan/src/test/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderGeodeBug3937RegressionTest.java ## @@ -0,0 +1,92 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for additional information regarding + * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. You may obtain a + * copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ +package org.apache.geode.internal.cache.wan.parallel; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; + +import java.util.concurrent.TimeUnit; + +import org.apache.geode.internal.cache.wan.WANTestBase; +import org.apache.geode.test.dunit.Wait; +import org.apache.geode.test.junit.categories.DistributedTest; +import org.awaitility.Awaitility; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** + * DUnit for ParallelGatewaySenderGeodeBug3937RegressionTest overflow operations. + */ +@Category(DistributedTest.class) +public class ParallelGatewaySenderGeodeBug3937RegressionTest extends WANTestBase { Review comment: Test File Name is changed now. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Fix NPE when executing removeFromDisk > -- > > Key: GEODE-3937 > URL: https://issues.apache.org/jira/browse/GEODE-3937 > Project: Geode > Issue Type: Bug > Components: core >Reporter: dinesh akhand > > While executing the test case or clearQueueTestOnly method. we can see > exception > [vm4] java.lang.NullPointerException > [vm4] at > org.apache.geode.internal.cache.entries.DiskEntry$Helper.removeFromDisk(DiskEntry.java:1519) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractOplogDiskRegionEntry.removePhase1(AbstractOplogDiskRegionEntry.java:50) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractRegionEntry.destroy(AbstractRegionEntry.java:914) > [vm4] at > org.apache.geode.internal.cache.AbstractRegionMap.destroyEntry(AbstractRegionMap.java:3100) > [vm4] at > org.apache.geode.internal.cache.AbstractRegionMap.destroy(AbstractRegionMap.java:1429) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6465) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6439) > [vm4] at > org.apache.geode.internal.cache.BucketRegion.basicDestroy(BucketRegion.java:1167) > [vm4] at > org.apache.geode.internal.cache.AbstractBucketRegionQueue.basicDestroy(AbstractBucketRegionQueue.java:352) > [vm4] at > org.apache.geode.internal.cache.BucketRegionQueue.basicDestroy(BucketRegionQueue.java:366) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.validatedDestroy(LocalRegion.java:1101) > [vm4] at > org.apache.geode.internal.cache.DistributedRegion.validatedDestroy(DistributedRegion.java:942) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.destroy(LocalRegion.java:1086) > [vm4] at > org.apache.geode.internal.cache.AbstractRegion.destroy(AbstractRegion.java:315) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.remove(LocalRegion.java:8870) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueue.clearPartitionedRegion(ParallelGatewaySenderQueue.java:1820) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueue.clearQueue(ParallelGatewaySenderQueue.java:1795) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ConcurrentParallelGatewaySenderQueue.clearQueue(ConcurrentPa
[jira] [Commented] (GEODE-3937) Fix NPE when executing removeFromDisk
[ https://issues.apache.org/jira/browse/GEODE-3937?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16237147#comment-16237147 ] ASF GitHub Bot commented on GEODE-3937: --- dineshpune2006 commented on issue #1002: GEODE-3937:Fix NPE when executing removeFromDisk URL: https://github.com/apache/geode/pull/1002#issuecomment-341629024 Hello Kirk, I made the changes as per review comments This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Fix NPE when executing removeFromDisk > -- > > Key: GEODE-3937 > URL: https://issues.apache.org/jira/browse/GEODE-3937 > Project: Geode > Issue Type: Bug > Components: core >Reporter: dinesh akhand > > While executing the test case or clearQueueTestOnly method. we can see > exception > [vm4] java.lang.NullPointerException > [vm4] at > org.apache.geode.internal.cache.entries.DiskEntry$Helper.removeFromDisk(DiskEntry.java:1519) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractOplogDiskRegionEntry.removePhase1(AbstractOplogDiskRegionEntry.java:50) > [vm4] at > org.apache.geode.internal.cache.entries.AbstractRegionEntry.destroy(AbstractRegionEntry.java:914) > [vm4] at > org.apache.geode.internal.cache.AbstractRegionMap.destroyEntry(AbstractRegionMap.java:3100) > [vm4] at > org.apache.geode.internal.cache.AbstractRegionMap.destroy(AbstractRegionMap.java:1429) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6465) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6439) > [vm4] at > org.apache.geode.internal.cache.BucketRegion.basicDestroy(BucketRegion.java:1167) > [vm4] at > org.apache.geode.internal.cache.AbstractBucketRegionQueue.basicDestroy(AbstractBucketRegionQueue.java:352) > [vm4] at > org.apache.geode.internal.cache.BucketRegionQueue.basicDestroy(BucketRegionQueue.java:366) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.validatedDestroy(LocalRegion.java:1101) > [vm4] at > org.apache.geode.internal.cache.DistributedRegion.validatedDestroy(DistributedRegion.java:942) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.destroy(LocalRegion.java:1086) > [vm4] at > org.apache.geode.internal.cache.AbstractRegion.destroy(AbstractRegion.java:315) > [vm4] at > org.apache.geode.internal.cache.LocalRegion.remove(LocalRegion.java:8870) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueue.clearPartitionedRegion(ParallelGatewaySenderQueue.java:1820) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueue.clearQueue(ParallelGatewaySenderQueue.java:1795) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ConcurrentParallelGatewaySenderQueue.clearQueue(ConcurrentParallelGatewaySenderQueue.java:236) > [vm4] at > org.apache.geode.internal.cache.wan.WANTestBase.clearGatewaySender(WANTestBase.java:256) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueueOverflowDUnitTest.lambda$8(ParallelGatewaySenderQueueOverflowDUnitTest.java:96) > [vm4] at > org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueueOverflowDUnitTest$$Lambda$42/144498586.run(Unknown > Source) > [vm4] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Created] (GEODE-3949) gfsh> put returns wrong error message when cannot convert JSON to Object
Wes Williams created GEODE-3949: --- Summary: gfsh> put returns wrong error message when cannot convert JSON to Object Key: GEODE-3949 URL: https://issues.apache.org/jira/browse/GEODE-3949 Project: Geode Issue Type: Bug Components: core Reporter: Wes Williams Fix For: 1.4.0 Given a region "departments" that exists, an Department domain class and the domain jar deployed into the server: gfsh>list regions; List of regions --- departments a gfsh> put executing inside of a script yields the erroneous message about the region not existing: 2. Executing - put --key='20' --value=('deptno':'20','name':'RESEARCH') --value-class=io.pivotal.app.domain.Department --region=departments Result : false Message : Region not found in any of the members Key Class : java.lang.String Key : 20 Value Class : io.pivotal.app.domain.Department deptno | name -- | 20 | RESEARCH Yet outside the script and entering it straight into gfsh. Note that the error message is different: gfsh>put --key='20' --value=('deptno':'20','name':'RESEARCH') --value-class=io.pivotal.app.domain.Department --region=departments Message : Couldn't convert JSON to Object of type class io.pivotal.app.domain.Department Result : false -- This message was sent by Atlassian JIRA (v6.4.14#64029)