[jira] [Commented] (GEODE-8765) NullPointerException if group-transaction-events enabled and mix of puts with transactions and without transactions
[ https://issues.apache.org/jira/browse/GEODE-8765?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17247855#comment-17247855 ] ASF GitHub Bot commented on GEODE-8765: --- albertogpz commented on pull request #5829: URL: https://github.com/apache/geode/pull/5829#issuecomment-743135399 > Mostly just code clean-up requests, with one question regarding whether a new overloaded method is needed in WANTestBase. @DonalEvans Thanks a lot for the review. I have included all the suggestions and removed some other warnings. This is an automated message from the Apache Git Service. To respond to the message, please log on to 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 > NullPointerException if group-transaction-events enabled and mix of puts with > transactions and without transactions > --- > > Key: GEODE-8765 > URL: https://issues.apache.org/jira/browse/GEODE-8765 > Project: Geode > Issue Type: Bug > Components: wan >Affects Versions: 1.14.0 >Reporter: Alberto Gomez >Assignee: Alberto Gomez >Priority: Major > Labels: pull-request-available > > When group-transaction-events is enabled and Geode receives a mix of puts, > some inside transactions and some not in transactions, in the case it is > needed to add extra events to the batch in order to have all the events for > each transaction in the given batch, if the sender runs into an event not > belonging to a transaction while looking for events in the queue, a > NullPointerException is thrown when trying to get the transactionId for the > event. The exception is caught by the sender processor and a warning message > is written in the log but some undesired effects are provoked: > > * In parallel gateway senders, this situation provokes that the batch is > sent without completing the transactions and also some events are left in the > queues forever without ever being drained (although all the events are sent > to the other side). > * In serial gateway senders, this situation provokes that once the exception > is thrown, no more events are sent to the other side as the events in the > last batch that could not be sent because the exception was thrown are tried > to be sent over and over without success. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (GEODE-8782) Add getPrincipal method to FunctionContext interface
Jens Deppe created GEODE-8782: - Summary: Add getPrincipal method to FunctionContext interface Key: GEODE-8782 URL: https://issues.apache.org/jira/browse/GEODE-8782 Project: Geode Issue Type: New Feature Components: core Reporter: Jens Deppe In some cases it would be very helpful to have access to the {{Principal}} when executing a function. It may seem obvious that if one has a reference to the {{cache}} that you could get to the {{SecurityManager}} and extract the {{Subject}} and thus the {{Principal}} from there. However, in some cases, Geode will seamlessly proxy a function call from one server to the other. This will typically happen with {{onRegion}} calls and partitioned regions. In such cases, the security context is lost and thus the principal is not accessible. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (GEODE-8782) Add getPrincipal method to FunctionContext interface
[ https://issues.apache.org/jira/browse/GEODE-8782?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17248002#comment-17248002 ] ASF GitHub Bot commented on GEODE-8782: --- jdeppe-pivotal opened a new pull request #5840: URL: https://github.com/apache/geode/pull/5840 - Add the ability to retrieve the Principal from the FunctionContext when a SecurityManager is enabled. Authored-by: Jens Deppe 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: - [ ] Is there a JIRA ticket associated with this PR? Is it referenced in the commit message? - [ ] Has your PR been rebased against the latest commit within the target branch (typically `develop`)? - [ ] Is your initial contribution a single, squashed commit? - [ ] Does `gradlew build` run cleanly? - [ ] 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, check Concourse 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 to 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 getPrincipal method to FunctionContext interface > > > Key: GEODE-8782 > URL: https://issues.apache.org/jira/browse/GEODE-8782 > Project: Geode > Issue Type: New Feature > Components: core >Reporter: Jens Deppe >Priority: Major > > In some cases it would be very helpful to have access to the {{Principal}} > when executing a function. > It may seem obvious that if one has a reference to the {{cache}} that you > could get to the {{SecurityManager}} and extract the {{Subject}} and thus the > {{Principal}} from there. However, in some cases, Geode will seamlessly proxy > a function call from one server to the other. This will typically happen with > {{onRegion}} calls and partitioned regions. In such cases, the security > context is lost and thus the principal is not accessible. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8782) Add getPrincipal method to FunctionContext interface
[ https://issues.apache.org/jira/browse/GEODE-8782?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] ASF GitHub Bot updated GEODE-8782: -- Labels: pull-request-available (was: ) > Add getPrincipal method to FunctionContext interface > > > Key: GEODE-8782 > URL: https://issues.apache.org/jira/browse/GEODE-8782 > Project: Geode > Issue Type: New Feature > Components: core >Reporter: Jens Deppe >Priority: Major > Labels: pull-request-available > > In some cases it would be very helpful to have access to the {{Principal}} > when executing a function. > It may seem obvious that if one has a reference to the {{cache}} that you > could get to the {{SecurityManager}} and extract the {{Subject}} and thus the > {{Principal}} from there. However, in some cases, Geode will seamlessly proxy > a function call from one server to the other. This will typically happen with > {{onRegion}} calls and partitioned regions. In such cases, the security > context is lost and thus the principal is not accessible. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (GEODE-8769) CI Failure: org.apache.geode.redis.internal.RedisStatsIntegrationTest > clientsStat_withConnectAndClose_isCorrect FAILED
[ https://issues.apache.org/jira/browse/GEODE-8769?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17248005#comment-17248005 ] ASF GitHub Bot commented on GEODE-8769: --- jhutchison commented on a change in pull request #5818: URL: https://github.com/apache/geode/pull/5818#discussion_r541060729 ## File path: geode-redis/src/integrationTest/java/org/apache/geode/redis/internal/RedisStatsIntegrationTest.java ## @@ -468,33 +479,33 @@ public void NetworkKiloBytesReadOverLastSecond_shouldReturnCorrectData() { } - // # Clients Section # @Test public void clientsStat_withConnectAndClose_isCorrect() { -jedis = new Jedis("localhost", server.getPort(), TIMEOUT); -jedis.ping(); +Jedis jedis2 = new Jedis("localhost", server.getPort(), TIMEOUT); +jedis2.ping(); -assertThat(redisStats.getConnectedClients()).isEqualTo(1); + assertThat(redisStats.getConnectedClients()).isEqualTo(preTestConnectedClients + 1); -jedis.close(); +jedis2.close(); GeodeAwaitility.await().atMost(Duration.ofSeconds(2)) -.untilAsserted(() -> assertThat(redisStats.getConnectedClients()).isEqualTo(0)); +.untilAsserted( +() -> assertThat(redisStats.getConnectedClients()).isEqualTo(preTestConnectedClients)); } @Test public void connectionsReceivedStat_shouldIncrement_WhenNewConnectionOccurs() { -jedis = new Jedis("localhost", server.getPort(), TIMEOUT); -jedis.ping(); +Jedis jedis2 = new Jedis("localhost", server.getPort(), TIMEOUT); +jedis2.ping(); -assertThat(redisStats.getConnectionsReceived()).isEqualTo(1); + assertThat(redisStats.getConnectionsReceived()).isEqualTo(preTestConnectionsReceived + 1); -jedis.close(); +jedis2.close(); -assertThat(redisStats.getConnectionsReceived()).isEqualTo(1); + assertThat(redisStats.getConnectionsReceived()).isEqualTo(preTestConnectionsReceived + 1); Review comment: I'm not sure how we can make this more clear, but I see how this is confusing- this test is testing the connectionsReceived parameter, which keeps the history of connections received, even after they have been closed. (the getConnectedlClient param, in the test above is about current active connections only) This is an automated message from the Apache Git Service. To respond to the message, please log on to 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 > CI Failure: org.apache.geode.redis.internal.RedisStatsIntegrationTest > > clientsStat_withConnectAndClose_isCorrect FAILED > > > Key: GEODE-8769 > URL: https://issues.apache.org/jira/browse/GEODE-8769 > Project: Geode > Issue Type: Bug > Components: redis >Affects Versions: 1.14.0 >Reporter: Raymond Ingles >Assignee: Raymond Ingles >Priority: Minor > Labels: pull-request-available > Fix For: 1.14.0 > > > https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-main/jobs/WindowsIntegrationTestOpenJDK8/builds/592 > org.apache.geode.redis.internal.RedisStatsIntegrationTest > > clientsStat_withConnectAndClose_isCorrect FAILED > org.awaitility.core.ConditionTimeoutException: Assertion condition > defined as a lambda expression in > org.apache.geode.redis.internal.RedisStatsIntegrationTest expected:<[0]L> but > was:<[-2]L> within 2 seconds. > at > org.awaitility.core.ConditionAwaiter.await(ConditionAwaiter.java:165) > at > org.awaitility.core.AssertionCondition.await(AssertionCondition.java:119) > at > org.awaitility.core.AssertionCondition.await(AssertionCondition.java:31) > at > org.awaitility.core.ConditionFactory.until(ConditionFactory.java:895) > at > org.awaitility.core.ConditionFactory.untilAsserted(ConditionFactory.java:679) > at > org.apache.geode.redis.internal.RedisStatsIntegrationTest.clientsStat_withConnectAndClose_isCorrect(RedisStatsIntegrationTest.java:484) > Caused by: > org.junit.ComparisonFailure: expected:<[0]L> but was:<[-2]L> > at sun.reflect.GeneratedConstructorAccessor31.newInstance(Unknown > Source) > at > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) > at > org.apache.geode.redis.internal.RedisStatsIntegrationTest.lambda$clientsStat_withConnectAndClose_isCorrect$4(RedisStatsIntegrationTest.java:484) -- This message was sent by Atlassian Jira (v8.3.4
[jira] [Commented] (GEODE-8769) CI Failure: org.apache.geode.redis.internal.RedisStatsIntegrationTest > clientsStat_withConnectAndClose_isCorrect FAILED
[ https://issues.apache.org/jira/browse/GEODE-8769?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17248008#comment-17248008 ] ASF GitHub Bot commented on GEODE-8769: --- jdeppe-pivotal commented on a change in pull request #5818: URL: https://github.com/apache/geode/pull/5818#discussion_r541065181 ## File path: geode-redis/src/integrationTest/java/org/apache/geode/redis/internal/RedisStatsIntegrationTest.java ## @@ -468,33 +479,33 @@ public void NetworkKiloBytesReadOverLastSecond_shouldReturnCorrectData() { } - // # Clients Section # @Test public void clientsStat_withConnectAndClose_isCorrect() { -jedis = new Jedis("localhost", server.getPort(), TIMEOUT); -jedis.ping(); +Jedis jedis2 = new Jedis("localhost", server.getPort(), TIMEOUT); +jedis2.ping(); -assertThat(redisStats.getConnectedClients()).isEqualTo(1); + assertThat(redisStats.getConnectedClients()).isEqualTo(preTestConnectedClients + 1); -jedis.close(); +jedis2.close(); GeodeAwaitility.await().atMost(Duration.ofSeconds(2)) -.untilAsserted(() -> assertThat(redisStats.getConnectedClients()).isEqualTo(0)); +.untilAsserted( +() -> assertThat(redisStats.getConnectedClients()).isEqualTo(preTestConnectedClients)); } @Test public void connectionsReceivedStat_shouldIncrement_WhenNewConnectionOccurs() { -jedis = new Jedis("localhost", server.getPort(), TIMEOUT); -jedis.ping(); +Jedis jedis2 = new Jedis("localhost", server.getPort(), TIMEOUT); +jedis2.ping(); -assertThat(redisStats.getConnectionsReceived()).isEqualTo(1); + assertThat(redisStats.getConnectionsReceived()).isEqualTo(preTestConnectionsReceived + 1); -jedis.close(); +jedis2.close(); -assertThat(redisStats.getConnectionsReceived()).isEqualTo(1); + assertThat(redisStats.getConnectionsReceived()).isEqualTo(preTestConnectionsReceived + 1); Review comment: OK - got it. That does make sense. I think the test method name does make it clearer, but I wasn't paying close attention to that :/ This is an automated message from the Apache Git Service. To respond to the message, please log on to 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 > CI Failure: org.apache.geode.redis.internal.RedisStatsIntegrationTest > > clientsStat_withConnectAndClose_isCorrect FAILED > > > Key: GEODE-8769 > URL: https://issues.apache.org/jira/browse/GEODE-8769 > Project: Geode > Issue Type: Bug > Components: redis >Affects Versions: 1.14.0 >Reporter: Raymond Ingles >Assignee: Raymond Ingles >Priority: Minor > Labels: pull-request-available > Fix For: 1.14.0 > > > https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-main/jobs/WindowsIntegrationTestOpenJDK8/builds/592 > org.apache.geode.redis.internal.RedisStatsIntegrationTest > > clientsStat_withConnectAndClose_isCorrect FAILED > org.awaitility.core.ConditionTimeoutException: Assertion condition > defined as a lambda expression in > org.apache.geode.redis.internal.RedisStatsIntegrationTest expected:<[0]L> but > was:<[-2]L> within 2 seconds. > at > org.awaitility.core.ConditionAwaiter.await(ConditionAwaiter.java:165) > at > org.awaitility.core.AssertionCondition.await(AssertionCondition.java:119) > at > org.awaitility.core.AssertionCondition.await(AssertionCondition.java:31) > at > org.awaitility.core.ConditionFactory.until(ConditionFactory.java:895) > at > org.awaitility.core.ConditionFactory.untilAsserted(ConditionFactory.java:679) > at > org.apache.geode.redis.internal.RedisStatsIntegrationTest.clientsStat_withConnectAndClose_isCorrect(RedisStatsIntegrationTest.java:484) > Caused by: > org.junit.ComparisonFailure: expected:<[0]L> but was:<[-2]L> > at sun.reflect.GeneratedConstructorAccessor31.newInstance(Unknown > Source) > at > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) > at > org.apache.geode.redis.internal.RedisStatsIntegrationTest.lambda$clientsStat_withConnectAndClose_isCorrect$4(RedisStatsIntegrationTest.java:484) -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (GEODE-8771) concurrent puts and invalidates will cause PR clear to hang
[ https://issues.apache.org/jira/browse/GEODE-8771?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17248047#comment-17248047 ] ASF GitHub Bot commented on GEODE-8771: --- jinmeiliao merged pull request #5823: URL: https://github.com/apache/geode/pull/5823 This is an automated message from the Apache Git Service. To respond to the message, please log on to 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 > concurrent puts and invalidates will cause PR clear to hang > --- > > Key: GEODE-8771 > URL: https://issues.apache.org/jira/browse/GEODE-8771 > Project: Geode > Issue Type: Sub-task > Components: core >Reporter: Jinmei Liao >Assignee: Jinmei Liao >Priority: Major > Labels: GeodeOperationAPI, pull-request-available > > On current feature/GEODE-7665 feature branch. The below test will hang: > {quote}public class PRClearIntegrationTest { > @Rule > public ServerStarterRule server = new ServerStarterRule().withAutoStart(); > @Rule > public ExecutorServiceRule executor = new ExecutorServiceRule(); > @Test > public void test() throws Exception { > InternalCache cache = server.getCache(); > Region region = server.createPartitionRegion("regionA", > f->{}, f->f.setTotalNumBuckets(1)); > cache.getQueryService().createIndex("indexA", "r", "/regionA r"); > region.put(0, "value0"); > CompletableFuture put = executor.runAsync(() -> > { > Thread.currentThread().setName("put-Thread"); > IntStream.range(0, 1).forEach(i-> region.invalidate(i, i)); } > ); > CompletableFuture invalidate = executor.runAsync(() -> > { > Thread.currentThread().setName("invalidate-Thread"); > IntStream.range(0, 1).forEach(i-> region.invalidate(0)); } > ); > CompletableFuture clear = executor.runAsync(() -> > { > Thread.currentThread().setName("Clear-Thread"); > region.clear(); } > ); > put.get(); > clear.get(); > invalidate.get(); > } > } > {quote} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (GEODE-8771) concurrent puts and invalidates will cause PR clear to hang
[ https://issues.apache.org/jira/browse/GEODE-8771?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17248049#comment-17248049 ] ASF subversion and git services commented on GEODE-8771: Commit fec54719ae6e0d753f6e50f901b3a25279c62740 in geode's branch refs/heads/feature/GEODE-7665 from Jinmei Liao [ https://gitbox.apache.org/repos/asf?p=geode.git;h=fec5471 ] GEODE-8771: invalidate should acquire the lock before initIndex (#5823) > concurrent puts and invalidates will cause PR clear to hang > --- > > Key: GEODE-8771 > URL: https://issues.apache.org/jira/browse/GEODE-8771 > Project: Geode > Issue Type: Sub-task > Components: core >Reporter: Jinmei Liao >Assignee: Jinmei Liao >Priority: Major > Labels: GeodeOperationAPI, pull-request-available > > On current feature/GEODE-7665 feature branch. The below test will hang: > {quote}public class PRClearIntegrationTest { > @Rule > public ServerStarterRule server = new ServerStarterRule().withAutoStart(); > @Rule > public ExecutorServiceRule executor = new ExecutorServiceRule(); > @Test > public void test() throws Exception { > InternalCache cache = server.getCache(); > Region region = server.createPartitionRegion("regionA", > f->{}, f->f.setTotalNumBuckets(1)); > cache.getQueryService().createIndex("indexA", "r", "/regionA r"); > region.put(0, "value0"); > CompletableFuture put = executor.runAsync(() -> > { > Thread.currentThread().setName("put-Thread"); > IntStream.range(0, 1).forEach(i-> region.invalidate(i, i)); } > ); > CompletableFuture invalidate = executor.runAsync(() -> > { > Thread.currentThread().setName("invalidate-Thread"); > IntStream.range(0, 1).forEach(i-> region.invalidate(0)); } > ); > CompletableFuture clear = executor.runAsync(() -> > { > Thread.currentThread().setName("Clear-Thread"); > region.clear(); } > ); > put.get(); > clear.get(); > invalidate.get(); > } > } > {quote} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Resolved] (GEODE-7868) C# ReflectionBasedAutoSerializer problems for unsupported types.
[ https://issues.apache.org/jira/browse/GEODE-7868?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender resolved GEODE-7868. - Resolution: Fixed > C# ReflectionBasedAutoSerializer problems for unsupported types. > > > Key: GEODE-7868 > URL: https://issues.apache.org/jira/browse/GEODE-7868 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Matthew Reddington >Priority: Major > Time Spent: 13h 40m > Remaining Estimate: 0h > > Seen when auto-serializing some types, for example - ushort or UInt16. > > System.Guid put is successful. The get fails because the Guid has no default > constructor. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Closed] (GEODE-7868) C# ReflectionBasedAutoSerializer problems for unsupported types.
[ https://issues.apache.org/jira/browse/GEODE-7868?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender closed GEODE-7868. --- > C# ReflectionBasedAutoSerializer problems for unsupported types. > > > Key: GEODE-7868 > URL: https://issues.apache.org/jira/browse/GEODE-7868 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Matthew Reddington >Priority: Major > Time Spent: 13h 40m > Remaining Estimate: 0h > > Seen when auto-serializing some types, for example - ushort or UInt16. > > System.Guid put is successful. The get fails because the Guid has no default > constructor. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Resolved] (GEODE-7883) Need a test to validate handling of missing pool name in cache XML
[ https://issues.apache.org/jira/browse/GEODE-7883?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender resolved GEODE-7883. - Resolution: Fixed > Need a test to validate handling of missing pool name in cache XML > -- > > Key: GEODE-7883 > URL: https://issues.apache.org/jira/browse/GEODE-7883 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Blake Bender >Priority: Major > Time Spent: 0.5h > Remaining Estimate: 0h > > We've had a report that older versions of the native client would fault and > core dump when given a cache.xml file containing a tag missing the > name attribute. We believe this was fixed when we switched from libxml2 to > xerces for parsing, but need a test to validate. > > Given: a cache xml file containing a tag with no name attribute > When: an attempt is made to load said cache xml file > Then: an exception of type apache::geode::client::CacheXmlException is > thrown, with a message that indicates the source of the problem. > > Acceptance Criteria: > A test exists in the cppcache/integration/test suite which attempts to load a > cache xml with this problem, catches and validates the exception type. This > test passes on all platforms. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Resolved] (GEODE-7872) Stop globbing sources in unit tests (cppcache/test/CMakeLists.txt)
[ https://issues.apache.org/jira/browse/GEODE-7872?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender resolved GEODE-7872. - Resolution: Fixed > Stop globbing sources in unit tests (cppcache/test/CMakeLists.txt) > -- > > Key: GEODE-7872 > URL: https://issues.apache.org/jira/browse/GEODE-7872 > Project: Geode > Issue Type: Task > Components: native client >Reporter: Blake Bender >Priority: Major > Time Spent: 10m > Remaining Estimate: 0h > > This messes up automatic reconfiguration via CMake build command, and is > discouraged as bad practice. Replace with explicit list of source files. > -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Closed] (GEODE-7883) Need a test to validate handling of missing pool name in cache XML
[ https://issues.apache.org/jira/browse/GEODE-7883?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender closed GEODE-7883. --- > Need a test to validate handling of missing pool name in cache XML > -- > > Key: GEODE-7883 > URL: https://issues.apache.org/jira/browse/GEODE-7883 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Blake Bender >Priority: Major > Time Spent: 0.5h > Remaining Estimate: 0h > > We've had a report that older versions of the native client would fault and > core dump when given a cache.xml file containing a tag missing the > name attribute. We believe this was fixed when we switched from libxml2 to > xerces for parsing, but need a test to validate. > > Given: a cache xml file containing a tag with no name attribute > When: an attempt is made to load said cache xml file > Then: an exception of type apache::geode::client::CacheXmlException is > thrown, with a message that indicates the source of the problem. > > Acceptance Criteria: > A test exists in the cppcache/integration/test suite which attempts to load a > cache xml with this problem, catches and validates the exception type. This > test passes on all platforms. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Resolved] (GEODE-7887) Remove references to long-ago-removed API from doc comments
[ https://issues.apache.org/jira/browse/GEODE-7887?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender resolved GEODE-7887. - Resolution: Fixed > Remove references to long-ago-removed API from doc comments > --- > > Key: GEODE-7887 > URL: https://issues.apache.org/jira/browse/GEODE-7887 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Blake Bender >Priority: Major > Time Spent: 0.5h > Remaining Estimate: 0h > > RegionAttributesFactory::setClientNotificationEnabled is mentioned > prominently in the doc comments for Region on the C++ side, and > ISubscriptionService in .net. There is no such thing as > RegionAttributesFactory::setClientNotificationEnabled, and never has been, > according to our Git history. setClientNotificationEnabled is a protected > method on an internal class. These doc comments may reflect a reality that > existed at some point in time, but there's no evidence of it in the code > base, and they certainly aren't applicable at this time. Let's remove them. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Closed] (GEODE-7887) Remove references to long-ago-removed API from doc comments
[ https://issues.apache.org/jira/browse/GEODE-7887?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender closed GEODE-7887. --- > Remove references to long-ago-removed API from doc comments > --- > > Key: GEODE-7887 > URL: https://issues.apache.org/jira/browse/GEODE-7887 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Blake Bender >Priority: Major > Time Spent: 0.5h > Remaining Estimate: 0h > > RegionAttributesFactory::setClientNotificationEnabled is mentioned > prominently in the doc comments for Region on the C++ side, and > ISubscriptionService in .net. There is no such thing as > RegionAttributesFactory::setClientNotificationEnabled, and never has been, > according to our Git history. setClientNotificationEnabled is a protected > method on an internal class. These doc comments may reflect a reality that > existed at some point in time, but there's no evidence of it in the code > base, and they certainly aren't applicable at this time. Let's remove them. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Closed] (GEODE-7990) Update to dependencies
[ https://issues.apache.org/jira/browse/GEODE-7990?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender closed GEODE-7990. --- > Update to dependencies > -- > > Key: GEODE-7990 > URL: https://issues.apache.org/jira/browse/GEODE-7990 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Jacob Barrett >Assignee: Jacob Barrett >Priority: Major > Fix For: 1.14.0 > > Time Spent: 10m > Remaining Estimate: 0h > > Update dependencies: > * ACE 6.5.8 > * SQLite 3.31.1 > * Xerces-C 3.2.3 -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Closed] (GEODE-7872) Stop globbing sources in unit tests (cppcache/test/CMakeLists.txt)
[ https://issues.apache.org/jira/browse/GEODE-7872?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender closed GEODE-7872. --- > Stop globbing sources in unit tests (cppcache/test/CMakeLists.txt) > -- > > Key: GEODE-7872 > URL: https://issues.apache.org/jira/browse/GEODE-7872 > Project: Geode > Issue Type: Task > Components: native client >Reporter: Blake Bender >Priority: Major > Time Spent: 10m > Remaining Estimate: 0h > > This messes up automatic reconfiguration via CMake build command, and is > discouraged as bad practice. Replace with explicit list of source files. > -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Closed] (GEODE-8063) Access violation during Cache destrucition caused by ClientMetadataService
[ https://issues.apache.org/jira/browse/GEODE-8063?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender closed GEODE-8063. --- > Access violation during Cache destrucition caused by ClientMetadataService > -- > > Key: GEODE-8063 > URL: https://issues.apache.org/jira/browse/GEODE-8063 > Project: Geode > Issue Type: Bug > Components: native client >Reporter: Jacob Barrett >Assignee: Jacob Barrett >Priority: Major > Fix For: 1.14.0 > > > During the destruction of {{Cache}} the pointer to {{CacheImpl}} is invalid. > Calls from {{ClientMetadataService}} attempt to access {{Pool}} instances > through the {{Cache}} instance rather than {{CacheImpl}} resulting in access > violation. This issue is timing dependent and isn't always reproducible. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Closed] (GEODE-8062) Disable broken tests to avoid accidental runs
[ https://issues.apache.org/jira/browse/GEODE-8062?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender closed GEODE-8062. --- > Disable broken tests to avoid accidental runs > - > > Key: GEODE-8062 > URL: https://issues.apache.org/jira/browse/GEODE-8062 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Jacob Barrett >Assignee: Jacob Barrett >Priority: Major > Fix For: 1.14.0 > > > In the initial migration to CMake there wasn't a way to mark tests as > disabled in CTest. Our solution was to use {{LABELS}}. The use of labels can > result in unexpected execution of a test during {{--rerun-failed}} or {{-R}} > options. As of CMake 3.9 you can disabled at test with the {{DISABLED}} > property. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Closed] (GEODE-8116) Heritage .NET integration tests can't run in parallel
[ https://issues.apache.org/jira/browse/GEODE-8116?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender closed GEODE-8116. --- > Heritage .NET integration tests can't run in parallel > - > > Key: GEODE-8116 > URL: https://issues.apache.org/jira/browse/GEODE-8116 > Project: Geode > Issue Type: Bug >Reporter: Jacob Barrett >Assignee: Jacob Barrett >Priority: Major > Fix For: 1.14.0 > > > The heritage .NET integration test framework does not set the JMX manager > port for locators in a cluster so when running in parallel the locators join > a common JMX manager. When that locator is stopped at the end of its tests it > can hang the other clusters. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Closed] (GEODE-8129) Write SNI test that drops proxy and restarts proxy
[ https://issues.apache.org/jira/browse/GEODE-8129?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender closed GEODE-8129. --- > Write SNI test that drops proxy and restarts proxy > --- > > Key: GEODE-8129 > URL: https://issues.apache.org/jira/browse/GEODE-8129 > Project: Geode > Issue Type: Test > Components: native client >Reporter: Ernest Burghardt >Priority: Major > Labels: pull-request-available > > This test is similar to GEODE-8128 - only capability to parse `docker ps` and > store the hostPort in advance of dropping proxy, this allows the proxy to be > restarted with the same port mapping -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Closed] (GEODE-8157) Write "drop proxy test" for C# (clicache)
[ https://issues.apache.org/jira/browse/GEODE-8157?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender closed GEODE-8157. --- > Write "drop proxy test" for C# (clicache) > - > > Key: GEODE-8157 > URL: https://issues.apache.org/jira/browse/GEODE-8157 > Project: Geode > Issue Type: New Feature > Components: native client >Reporter: Blake Bender >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Resolved] (GEODE-8129) Write SNI test that drops proxy and restarts proxy
[ https://issues.apache.org/jira/browse/GEODE-8129?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender resolved GEODE-8129. - Resolution: Fixed > Write SNI test that drops proxy and restarts proxy > --- > > Key: GEODE-8129 > URL: https://issues.apache.org/jira/browse/GEODE-8129 > Project: Geode > Issue Type: Test > Components: native client >Reporter: Ernest Burghardt >Priority: Major > Labels: pull-request-available > > This test is similar to GEODE-8128 - only capability to parse `docker ps` and > store the hostPort in advance of dropping proxy, this allows the proxy to be > restarted with the same port mapping -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Closed] (GEODE-8214) Migrate old integration test testThinClientDisconnectionListener to new test framework
[ https://issues.apache.org/jira/browse/GEODE-8214?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender closed GEODE-8214. --- > Migrate old integration test testThinClientDisconnectionListener to new test > framework > -- > > Key: GEODE-8214 > URL: https://issues.apache.org/jira/browse/GEODE-8214 > Project: Geode > Issue Type: Sub-task > Components: native client >Reporter: Michael Martell >Priority: Major > > The switch to boost::asio uncovered some issues in the nativeclient related > to socket error handling due to servers going away. Several tests fail with > boost::asio. This test appears to be the simplest test of all the server > disconnect related tests (1 client with a CacheListener, and 1 server) so > makes sense to port to the new framework. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Closed] (GEODE-8213) C++ native client performance bottleneck in access to serialization registry
[ https://issues.apache.org/jira/browse/GEODE-8213?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender closed GEODE-8213. --- > C++ native client performance bottleneck in access to serialization registry > > > Key: GEODE-8213 > URL: https://issues.apache.org/jira/browse/GEODE-8213 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Alberto Gomez >Assignee: Alberto Gomez >Priority: Major > Fix For: 1.14.0 > > > It's been observed that when the number of threads used in a Geode client > using PdxSerialization is greater than 8, there is an important drop in > performance. > Analysing the client process behavior with perf, it has been observed a very > high CPU consumption by a spinlock > (apache::geode::util::concurrent::spinlock_mutex::lock) used when accessing > the serialization registry . -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Resolved] (GEODE-8214) Migrate old integration test testThinClientDisconnectionListener to new test framework
[ https://issues.apache.org/jira/browse/GEODE-8214?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender resolved GEODE-8214. - Resolution: Fixed > Migrate old integration test testThinClientDisconnectionListener to new test > framework > -- > > Key: GEODE-8214 > URL: https://issues.apache.org/jira/browse/GEODE-8214 > Project: Geode > Issue Type: Sub-task > Components: native client >Reporter: Michael Martell >Priority: Major > > The switch to boost::asio uncovered some issues in the nativeclient related > to socket error handling due to servers going away. Several tests fail with > boost::asio. This test appears to be the simplest test of all the server > disconnect related tests (1 client with a CacheListener, and 1 server) so > makes sense to port to the new framework. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Closed] (GEODE-8344) Deserialization error in multisite conf using CQs and C++ client
[ https://issues.apache.org/jira/browse/GEODE-8344?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender closed GEODE-8344. --- > Deserialization error in multisite conf using CQs and C++ client > > > Key: GEODE-8344 > URL: https://issues.apache.org/jira/browse/GEODE-8344 > Project: Geode > Issue Type: Bug > Components: native client >Reporter: Alberto Bustamante Reyes >Assignee: Alberto Bustamante Reyes >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > Im creating this ticket after this conversation in the dev list, so there is > more information here: http://markmail.org/thread/u65gmb7zoxlpcqss > h3. Setup: > - Two sites > - CQs configured > - Using C++ client > h3. Problem: > It is observed that while CQ events from local site (the one that the client > is connected to) are received, the one originated in remote servers are > missing. > After debugging it was observed there is an error in the logs, trying to > deserialize fixedID = -135. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Closed] (GEODE-8364) Change log level of C++ client at runtime
[ https://issues.apache.org/jira/browse/GEODE-8364?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender closed GEODE-8364. --- > Change log level of C++ client at runtime > - > > Key: GEODE-8364 > URL: https://issues.apache.org/jira/browse/GEODE-8364 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Alberto Bustamante Reyes >Assignee: Alberto Bustamante Reyes >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > Currently it is not possible to change log level of the C++ after it is > created. > It will be useful to have a way to change it at runtime. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Closed] (GEODE-8449) Clean up docker containers in Tests
[ https://issues.apache.org/jira/browse/GEODE-8449?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender closed GEODE-8449. --- > Clean up docker containers in Tests > --- > > Key: GEODE-8449 > URL: https://issues.apache.org/jira/browse/GEODE-8449 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Ernest Burghardt >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > As a developer it would be very nice to have docker containers in an > appropriate state for each test run that requires them... currently a > failing test leaves around containers that will most likely cause trouble > with a subsequent test run. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Closed] (GEODE-8436) Several threads calling PdxInstanceFactory::create() causes seg fault
[ https://issues.apache.org/jira/browse/GEODE-8436?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender closed GEODE-8436. --- > Several threads calling PdxInstanceFactory::create() causes seg fault > - > > Key: GEODE-8436 > URL: https://issues.apache.org/jira/browse/GEODE-8436 > Project: Geode > Issue Type: Bug > Components: native client >Reporter: Alberto Bustamante Reyes >Assignee: Alberto Bustamante Reyes >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > Attachments: main.cpp > > > I have seen a problem when "PdxInstanceFactory::create()" is called by > several threads that are registering the same new pdx type. > The core is produced here: > {code} > void PdxInstanceImpl::toDataMutable(PdxWriter& writer) { >auto pt = getPdxType(); >std::vector>* pdxFieldList = >pt->getPdxFieldTypes(); > {code} > The problem is that "getPdxType()" returns nullptr, so in the next line, > there is segmentation fault when calling "pt->getPdxFieldTypes()". > The issue can be reproduced using the attached client, and executing it using > 8 threads. This is the stack got in gdb: > {code} > #0 apache::geode::client::PdxType::getPdxFieldTypes (this=0x0) at > /home/alb3rtobr/CLionProjects/Nordix/geode-native/cppcache/src/PdxType.hpp:178 > #1 0x7f43dc4651b7 in > apache::geode::client::PdxInstanceImpl::toDataMutable (this=0x7f43c0001600, > writer=...) at > /home/alb3rtobr/CLionProjects/Nordix/geode-native/cppcache/src/PdxInstanceImpl.cpp:1336 > #2 0x7f43dc4650fd in apache::geode::client::PdxInstanceImpl::toData > (this=0x7f43c0001600, writer=...) at > /home/alb3rtobr/CLionProjects/Nordix/geode-native/cppcache/src/PdxInstanceImpl.cpp:1327 > #3 0x7f43dc444971 in apache::geode::client::PdxHelper::serializePdx > (output=..., pdxObject=warning: RTTI symbol not found for class > 'std::_Sp_counted_ptr_inplace std::allocator, > (__gnu_cxx::_Lock_policy)2>' > warning: RTTI symbol not found for class > 'std::_Sp_counted_ptr_inplace std::allocator, > (__gnu_cxx::_Lock_policy)2>' > std::shared_ptr (use count 3, weak > count 0) = {...}) > at > /home/alb3rtobr/CLionProjects/Nordix/geode-native/cppcache/src/PdxHelper.cpp:77 > #4 0x7f43dc44b4bc in apache::geode::client::PdxInstanceFactory::create > (this=0x7f43c7ffecc8) at > /home/alb3rtobr/CLionProjects/Nordix/geode-native/cppcache/src/PdxInstanceFactory.cpp:53 > #5 0x0040de2f in doPut () at > /home/alb3rtobr/CLionProjects/dummy-client/main.cpp:60 > #6 0x00427767 in std::__invoke_impl > (__f=@0x2561aa8: 0x40d860 ) at > /usr/bin/../lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/invoke.h:60 > #7 0x004276fd in std::__invoke (__fn=@0x2561aa8: > 0x40d860 ) at > /usr/bin/../lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/invoke.h:95 > #8 0x004276d5 in std::thread::_Invoker > >::_M_invoke<0ul> (this=0x2561aa8) at > /usr/bin/../lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/thread:234 > #9 0x004276a5 in std::thread::_Invoker > >::operator() (this=0x2561aa8) at > /usr/bin/../lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/thread:243 > #10 0x00427589 in > std::thread::_State_impl > > >::_M_run (this=0x2561aa0) > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Closed] (GEODE-8508) Update .lgtm.yml to latest (1.13) Geode release
[ https://issues.apache.org/jira/browse/GEODE-8508?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender closed GEODE-8508. --- > Update .lgtm.yml to latest (1.13) Geode release > --- > > Key: GEODE-8508 > URL: https://issues.apache.org/jira/browse/GEODE-8508 > Project: Geode > Issue Type: Task > Components: native client >Reporter: Alberto Bustamante Reyes >Assignee: Alberto Bustamante Reyes >Priority: Major > Labels: pull-request-available > > As done in GEODE-8018 for Geode 1.12, now that Geode 1.13 is out it is > needed to update LGTM config file to use the latest version. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Closed] (GEODE-8480) Add tx manager check in geode-native transaction example
[ https://issues.apache.org/jira/browse/GEODE-8480?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender closed GEODE-8480. --- > Add tx manager check in geode-native transaction example > > > Key: GEODE-8480 > URL: https://issues.apache.org/jira/browse/GEODE-8480 > Project: Geode > Issue Type: Improvement > Components: docs, native client >Reporter: Alberto Bustamante Reyes >Assignee: Alberto Bustamante Reyes >Priority: Minor > Labels: pull-request-available > Fix For: 1.14.0 > > > Transactions documentation & example in the geode C++ client is not checking > if the transaction manager exists before calling to rollback, as it is done > in the transactions documentation and example in geode. > I have seen that depending on the exception, the rollback can generate an > error so I think its something that should be added to the example. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Closed] (GEODE-8565) c++ client tries to connect to down server until IO error is thrown
[ https://issues.apache.org/jira/browse/GEODE-8565?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender closed GEODE-8565. --- > c++ client tries to connect to down server until IO error is thrown > --- > > Key: GEODE-8565 > URL: https://issues.apache.org/jira/browse/GEODE-8565 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Alberto Bustamante Reyes >Assignee: Alberto Bustamante Reyes >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > This ticket is an improvement over GEODE-8231: > {quote}If a C++ client connected to a cluster is sending operations to a > partitioned region and one of the server goes down, the client keeps trying > to send operations to the down server. This can be observed in the logs by a > continuous flow of lines containing: "IO error in handshake with endpoint..." > {quote} > After that improvement, the c++ client removes the metadata info of the > failing server once the "IO error in handshake" is received. > But it has been observed that before that error is received, "timeout error" > can be returned. So the client will try to reconnect until the "IO error in > handshake" is received. > This ticket aims to extend the GEODE-8231 solution so the client removes the > server metadata information when a timeout is received. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Closed] (GEODE-8578) Parse PartitionResolverName in RESPONSE_CLIENT_PARTITION_ATTRIBUTES
[ https://issues.apache.org/jira/browse/GEODE-8578?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender closed GEODE-8578. --- > Parse PartitionResolverName in RESPONSE_CLIENT_PARTITION_ATTRIBUTES > --- > > Key: GEODE-8578 > URL: https://issues.apache.org/jira/browse/GEODE-8578 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Alberto Bustamante Reyes >Assignee: Alberto Bustamante Reyes >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > I tried the gnmsg tool with a client file connecting to a cluster that > contains a partition region with a partition resolver, which caused an > exception in the tool. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Closed] (GEODE-8593) Update native client examples to use Builder pattern
[ https://issues.apache.org/jira/browse/GEODE-8593?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender closed GEODE-8593. --- > Update native client examples to use Builder pattern > > > Key: GEODE-8593 > URL: https://issues.apache.org/jira/browse/GEODE-8593 > Project: Geode > Issue Type: Improvement > Components: docs, native client >Affects Versions: 1.13.0 >Reporter: Dave Barnes >Assignee: Dave Barnes >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > For both C++ and .NET examples, the section of code that creates the > connection pool should be improved to better illustrate the Builder pattern. > For example, in the C++ examples, current code is: > ``` > auto cacheFactory = CacheFactory(); > cacheFactory.set("log-level", "none"); > auto cache = cacheFactory.create(); > auto poolFactory = cache.getPoolManager().createFactory(); > > poolFactory.addLocator("localhost", 10334); > auto pool = poolFactory.create("pool"); > ``` > The improved version would be: > ``` > auto cache = CacheFactory() >.set("log-level", "debug") >.set("ssl-enabled", "true") >.set("ssl-truststore", clientTruststore.string()) >.create(); > cache.getPoolManager() > .createFactory() > .addLocator("localhost", 10334) > .create("pool"); > ``` > Similarly for .NET examples. > These doc snippets also appear in the user guides, so they'll need updating > in the docs, as well. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Closed] (GEODE-8615) Update gitignore with tools/gnmsg entries
[ https://issues.apache.org/jira/browse/GEODE-8615?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender closed GEODE-8615. --- > Update gitignore with tools/gnmsg entries > - > > Key: GEODE-8615 > URL: https://issues.apache.org/jira/browse/GEODE-8615 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Alberto Bustamante Reyes >Assignee: Alberto Bustamante Reyes >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > Following entries should be added to gitignore: > * /tools/gnmsg/.idea/ > * /tools/gnmsg/__pycache__/ -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Closed] (GEODE-8647) Support using multiple DistributedMap Rules in one test
[ https://issues.apache.org/jira/browse/GEODE-8647?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender closed GEODE-8647. --- > Support using multiple DistributedMap Rules in one test > --- > > Key: GEODE-8647 > URL: https://issues.apache.org/jira/browse/GEODE-8647 > Project: Geode > Issue Type: Wish > Components: tests >Reporter: Kirk Lund >Assignee: Kirk Lund >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > Support using multiple DistributedMap Rules in one test. Right now the Rule > only supports having one instance in a test. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Closed] (GEODE-8676) Update bookbindery to latest
[ https://issues.apache.org/jira/browse/GEODE-8676?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender closed GEODE-8676. --- > Update bookbindery to latest > > > Key: GEODE-8676 > URL: https://issues.apache.org/jira/browse/GEODE-8676 > Project: Geode > Issue Type: Improvement > Components: docs, native client >Reporter: Michael Oleske >Priority: Major > Labels: pull-request-available > > [Bookbinder|https://github.com/pivotal-cf/bookbinder/releases] has a new > release and we should keep the tools we use to build our docs up to date -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Resolved] (GEODE-8676) Update bookbindery to latest
[ https://issues.apache.org/jira/browse/GEODE-8676?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender resolved GEODE-8676. - Resolution: Fixed > Update bookbindery to latest > > > Key: GEODE-8676 > URL: https://issues.apache.org/jira/browse/GEODE-8676 > Project: Geode > Issue Type: Improvement > Components: docs, native client >Reporter: Michael Oleske >Priority: Major > Labels: pull-request-available > > [Bookbinder|https://github.com/pivotal-cf/bookbinder/releases] has a new > release and we should keep the tools we use to build our docs up to date -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Closed] (GEODE-8678) Add Missing .NET API Docs for Cache::GetPoolFactory and Cache::GetPoolManager
[ https://issues.apache.org/jira/browse/GEODE-8678?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender closed GEODE-8678. --- > Add Missing .NET API Docs for Cache::GetPoolFactory and Cache::GetPoolManager > - > > Key: GEODE-8678 > URL: https://issues.apache.org/jira/browse/GEODE-8678 > Project: Geode > Issue Type: Bug > Components: native client >Reporter: Michael Martell >Priority: Minor > Fix For: 1.14.0 > > > Just need to add doc tags and descriptions for these .NET APIs. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Closed] (GEODE-8693) C++ native client Function.execute() with onServers does not throw exception if one of the servers goes down while executing the function.
[ https://issues.apache.org/jira/browse/GEODE-8693?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender closed GEODE-8693. --- > C++ native client Function.execute() with onServers does not throw exception > if one of the servers goes down while executing the function. > -- > > Key: GEODE-8693 > URL: https://issues.apache.org/jira/browse/GEODE-8693 > Project: Geode > Issue Type: Bug > Components: native client >Reporter: Alberto Gomez >Assignee: Alberto Gomez >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > According to the Apache Geode Native C++ API documentation, the > FunctionService.onServers() function will throw an Exception if one of the > servers goes down while dispatching or executing the function on the server. > Nevertheless, currently no exception is thrown in that case. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Closed] (GEODE-8713) Geode-Native .NET user guide: API reference links point to C++ API
[ https://issues.apache.org/jira/browse/GEODE-8713?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender closed GEODE-8713. --- > Geode-Native .NET user guide: API reference links point to C++ API > -- > > Key: GEODE-8713 > URL: https://issues.apache.org/jira/browse/GEODE-8713 > Project: Geode > Issue Type: Bug > Components: docs >Affects Versions: 1.13.0 >Reporter: Dave Barnes >Assignee: Dave Barnes >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > The "Client Cache XML Reference" section in the .NET user guide contains > links to "API Class Reference" that all point to the C++ API ref. These > should point to the .NET API ref. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Resolved] (GEODE-8754) Deserialization Error in .NET DataInput::ReadObject
[ https://issues.apache.org/jira/browse/GEODE-8754?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender resolved GEODE-8754. - Resolution: Fixed > Deserialization Error in .NET DataInput::ReadObject > --- > > Key: GEODE-8754 > URL: https://issues.apache.org/jira/browse/GEODE-8754 > Project: Geode > Issue Type: Bug > Components: native client >Reporter: Michael Martell >Priority: Major > Labels: pull-request-available > > Using the IDataSerializable interface for user defined .NET types sometimes > fails in a Release build. Specifically, the DataInput::ReadObject() function > may fail in a Release build. > Note: DataInput::ReadObject() never fails in a Debug build. > -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Closed] (GEODE-8754) Deserialization Error in .NET DataInput::ReadObject
[ https://issues.apache.org/jira/browse/GEODE-8754?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender closed GEODE-8754. --- > Deserialization Error in .NET DataInput::ReadObject > --- > > Key: GEODE-8754 > URL: https://issues.apache.org/jira/browse/GEODE-8754 > Project: Geode > Issue Type: Bug > Components: native client >Reporter: Michael Martell >Priority: Major > Labels: pull-request-available > > Using the IDataSerializable interface for user defined .NET types sometimes > fails in a Release build. Specifically, the DataInput::ReadObject() function > may fail in a Release build. > Note: DataInput::ReadObject() never fails in a Debug build. > -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Closed] (GEODE-8773) Unnecessary transaction overhead being created on server
[ https://issues.apache.org/jira/browse/GEODE-8773?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender closed GEODE-8773. --- > Unnecessary transaction overhead being created on server > > > Key: GEODE-8773 > URL: https://issues.apache.org/jira/browse/GEODE-8773 > Project: Geode > Issue Type: Bug > Components: native client >Reporter: Blake Bender >Assignee: Blake Bender >Priority: Major > Labels: pull-request-available > > This is a _very_ old bug, that was just discovered. In the Geode protocol, > no matter which message is being handled, a Geode server will examine the > “transaction Id” value in the message header, and if it is not the symbolic > constant “NOTX” (aka -1), will assume the message is part of a transaction > with that Id, and _set up resources for a transaction if one with that Id > doesn’t already exist_. Said resource can include a high priority thread. In > conjunction with this, we have the fact that the native client goes out of > its way to always set the transaction id to 0 for PING and CLOSE_CONNECTION > messages. The last ingredient for reproducing this problem is to have a whole > bunch (like on the order of several hundred or several thousand) client > applications start up and exit in a short period of time. Each will send at > least one CLOSE_CONNECTION message, all with transaction Id 0, thus each > client instance will leave one dangling transaction on the server. Eventually > these will cause the server to spin up a fatal number of high-priority > threads. > The fix in the native client is trivial, just stop writing 0 instead of the > transaction ID in the PING and CLOSE_CONNECTION messages. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Resolved] (GEODE-8773) Unnecessary transaction overhead being created on server
[ https://issues.apache.org/jira/browse/GEODE-8773?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender resolved GEODE-8773. - Resolution: Fixed > Unnecessary transaction overhead being created on server > > > Key: GEODE-8773 > URL: https://issues.apache.org/jira/browse/GEODE-8773 > Project: Geode > Issue Type: Bug > Components: native client >Reporter: Blake Bender >Assignee: Blake Bender >Priority: Major > Labels: pull-request-available > > This is a _very_ old bug, that was just discovered. In the Geode protocol, > no matter which message is being handled, a Geode server will examine the > “transaction Id” value in the message header, and if it is not the symbolic > constant “NOTX” (aka -1), will assume the message is part of a transaction > with that Id, and _set up resources for a transaction if one with that Id > doesn’t already exist_. Said resource can include a high priority thread. In > conjunction with this, we have the fact that the native client goes out of > its way to always set the transaction id to 0 for PING and CLOSE_CONNECTION > messages. The last ingredient for reproducing this problem is to have a whole > bunch (like on the order of several hundred or several thousand) client > applications start up and exit in a short period of time. Each will send at > least one CLOSE_CONNECTION message, all with transaction Id 0, thus each > client instance will leave one dangling transaction on the server. Eventually > these will cause the server to spin up a fatal number of high-priority > threads. > The fix in the native client is trivial, just stop writing 0 instead of the > transaction ID in the PING and CLOSE_CONNECTION messages. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-7508) Clean up usage of keystore, truststore files
[ https://issues.apache.org/jira/browse/GEODE-7508?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-7508: Fix Version/s: (was: 1.14.0) 1.13.0 > Clean up usage of keystore, truststore files > > > Key: GEODE-7508 > URL: https://issues.apache.org/jira/browse/GEODE-7508 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Blake Bender >Priority: Major > Fix For: 1.13.0 > > > As a developer, I want to know where to find resource files I need for > writing/running a test. I would also prefer not to have multiple copies of > these files in my source tree. This is not the case for our SSL keys, and it > really needs to be cleaned up. > > Acceptance criteria: > > i. If I run `find . -name *.pem` or `find . -name *.jks` (or the Windows > equivalent) from the root of the native client source tree, I should only > find one copy of any particular file. Ideally, I should only find each type > of file in a single directory, as well. > ii. After a clean build of the native client, there should be _no_ .pem or > .jks files in the build directory. Several of the SSL tests were found to > have dependencies on these files in the build location, rather than the > source tree. > iii. All code that refers to one of these files should refer to it via a > named constant/property in the Config class. These are created by modifying > /clicache/integration-test2/Config.cs.in for C#, and > /cppcache/integration/framework/TestConfig.h & > /cppcache/integration/framework/TestConfig.cpp.in for C++. > -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-7887) Remove references to long-ago-removed API from doc comments
[ https://issues.apache.org/jira/browse/GEODE-7887?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-7887: Fix Version/s: 1.13.0 > Remove references to long-ago-removed API from doc comments > --- > > Key: GEODE-7887 > URL: https://issues.apache.org/jira/browse/GEODE-7887 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Blake Bender >Priority: Major > Fix For: 1.13.0 > > Time Spent: 0.5h > Remaining Estimate: 0h > > RegionAttributesFactory::setClientNotificationEnabled is mentioned > prominently in the doc comments for Region on the C++ side, and > ISubscriptionService in .net. There is no such thing as > RegionAttributesFactory::setClientNotificationEnabled, and never has been, > according to our Git history. setClientNotificationEnabled is a protected > method on an internal class. These doc comments may reflect a reality that > existed at some point in time, but there's no evidence of it in the code > base, and they certainly aren't applicable at this time. Let's remove them. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-7868) C# ReflectionBasedAutoSerializer problems for unsupported types.
[ https://issues.apache.org/jira/browse/GEODE-7868?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-7868: Fix Version/s: 1.13.0 > C# ReflectionBasedAutoSerializer problems for unsupported types. > > > Key: GEODE-7868 > URL: https://issues.apache.org/jira/browse/GEODE-7868 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Matthew Reddington >Priority: Major > Fix For: 1.13.0 > > Time Spent: 13h 40m > Remaining Estimate: 0h > > Seen when auto-serializing some types, for example - ushort or UInt16. > > System.Guid put is successful. The get fails because the Guid has no default > constructor. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-7872) Stop globbing sources in unit tests (cppcache/test/CMakeLists.txt)
[ https://issues.apache.org/jira/browse/GEODE-7872?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-7872: Fix Version/s: 1.13.0 > Stop globbing sources in unit tests (cppcache/test/CMakeLists.txt) > -- > > Key: GEODE-7872 > URL: https://issues.apache.org/jira/browse/GEODE-7872 > Project: Geode > Issue Type: Task > Components: native client >Reporter: Blake Bender >Priority: Major > Fix For: 1.13.0 > > Time Spent: 10m > Remaining Estimate: 0h > > This messes up automatic reconfiguration via CMake build command, and is > discouraged as bad practice. Replace with explicit list of source files. > -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-7883) Need a test to validate handling of missing pool name in cache XML
[ https://issues.apache.org/jira/browse/GEODE-7883?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-7883: Fix Version/s: 1.13.0 > Need a test to validate handling of missing pool name in cache XML > -- > > Key: GEODE-7883 > URL: https://issues.apache.org/jira/browse/GEODE-7883 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Blake Bender >Priority: Major > Fix For: 1.13.0 > > Time Spent: 0.5h > Remaining Estimate: 0h > > We've had a report that older versions of the native client would fault and > core dump when given a cache.xml file containing a tag missing the > name attribute. We believe this was fixed when we switched from libxml2 to > xerces for parsing, but need a test to validate. > > Given: a cache xml file containing a tag with no name attribute > When: an attempt is made to load said cache xml file > Then: an exception of type apache::geode::client::CacheXmlException is > thrown, with a message that indicates the source of the problem. > > Acceptance Criteria: > A test exists in the cppcache/integration/test suite which attempts to load a > cache xml with this problem, catches and validates the exception type. This > test passes on all platforms. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-7990) Update to dependencies
[ https://issues.apache.org/jira/browse/GEODE-7990?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-7990: Fix Version/s: (was: 1.14.0) 1.13.0 > Update to dependencies > -- > > Key: GEODE-7990 > URL: https://issues.apache.org/jira/browse/GEODE-7990 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Jacob Barrett >Assignee: Jacob Barrett >Priority: Major > Fix For: 1.13.0 > > Time Spent: 10m > Remaining Estimate: 0h > > Update dependencies: > * ACE 6.5.8 > * SQLite 3.31.1 > * Xerces-C 3.2.3 -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8015) Need to add symbol files (.pdb) to install for Windows builds
[ https://issues.apache.org/jira/browse/GEODE-8015?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8015: Fix Version/s: 1.13.0 > Need to add symbol files (.pdb) to install for Windows builds > - > > Key: GEODE-8015 > URL: https://issues.apache.org/jira/browse/GEODE-8015 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Blake Bender >Priority: Major > Fix For: 1.13.0 > > > As a client app developer, I may need/wish to debug into the Geode native > library when tracking down an issue. To do this, I will need proper symbols > for the debugger. For Windows platforms, symbols reside in a separate file > from the library, so in order to have them in the same place as the library, > they will need to be copied into the same location when I run `cmake --build > . --target install` from the command line, or the equivalent in and IDE. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8063) Access violation during Cache destruction caused by ClientMetadataService
[ https://issues.apache.org/jira/browse/GEODE-8063?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8063: Summary: Access violation during Cache destruction caused by ClientMetadataService (was: Access violation during Cache destrucition caused by ClientMetadataService) > Access violation during Cache destruction caused by ClientMetadataService > - > > Key: GEODE-8063 > URL: https://issues.apache.org/jira/browse/GEODE-8063 > Project: Geode > Issue Type: Bug > Components: native client >Reporter: Jacob Barrett >Assignee: Jacob Barrett >Priority: Major > Fix For: 1.14.0 > > > During the destruction of {{Cache}} the pointer to {{CacheImpl}} is invalid. > Calls from {{ClientMetadataService}} attempt to access {{Pool}} instances > through the {{Cache}} instance rather than {{CacheImpl}} resulting in access > violation. This issue is timing dependent and isn't always reproducible. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8102) Link and load OpenSSL library directly
[ https://issues.apache.org/jira/browse/GEODE-8102?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8102: Fix Version/s: 1.13.0 > Link and load OpenSSL library directly > -- > > Key: GEODE-8102 > URL: https://issues.apache.org/jira/browse/GEODE-8102 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Jacob Barrett >Priority: Major > Labels: pull-request-available > Fix For: 1.13.0 > > > Lazy load the OpenSSL library directly, through ACE_SSL, into the > apache-geode library. Currently we lazy load cryptoImpl, which immediately > loads OpenSSL. The original intent was to avoid having an immediate > dependency on OpenSSL at a time when its availability was questionable. On > unix like systems OpenSSL is almost always available since so many other > components in the OS depend on it. This immediate load dependency will have > little to no effect on those systems. On some unix like systems the > experience will improve by not having a runtime dependency on an intermediate > library, cryptoImpl, that may need special treatments, like LD_LIBRARY_PATH > or RPATH changes. On Windows, where OpenSSL is an anomaly we can use MSVC's > lazy loading feature to only load OpenSSL if SSL/TLS is configured. This > significantly improves the experience on Windows with regards to the location > of cryptoImpl when using .NET. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8102) Link and load OpenSSL library directly
[ https://issues.apache.org/jira/browse/GEODE-8102?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8102: Fix Version/s: (was: 1.13.0) 1.14.0 > Link and load OpenSSL library directly > -- > > Key: GEODE-8102 > URL: https://issues.apache.org/jira/browse/GEODE-8102 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Jacob Barrett >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > Lazy load the OpenSSL library directly, through ACE_SSL, into the > apache-geode library. Currently we lazy load cryptoImpl, which immediately > loads OpenSSL. The original intent was to avoid having an immediate > dependency on OpenSSL at a time when its availability was questionable. On > unix like systems OpenSSL is almost always available since so many other > components in the OS depend on it. This immediate load dependency will have > little to no effect on those systems. On some unix like systems the > experience will improve by not having a runtime dependency on an intermediate > library, cryptoImpl, that may need special treatments, like LD_LIBRARY_PATH > or RPATH changes. On Windows, where OpenSSL is an anomaly we can use MSVC's > lazy loading feature to only load OpenSSL if SSL/TLS is configured. This > significantly improves the experience on Windows with regards to the location > of cryptoImpl when using .NET. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8128) Write basic SNI test
[ https://issues.apache.org/jira/browse/GEODE-8128?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8128: Fix Version/s: 1.14.0 > Write basic SNI test > > > Key: GEODE-8128 > URL: https://issues.apache.org/jira/browse/GEODE-8128 > Project: Geode > Issue Type: Test > Components: native client >Reporter: Ernest Burghardt >Priority: Major > Fix For: 1.14.0 > > > test will interact with docker-compose to construct a cluster and proxy, > proxy port host:container will be hardcoded > test will perform simple put/get via sni proxy -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8129) Write SNI test that drops proxy and restarts proxy
[ https://issues.apache.org/jira/browse/GEODE-8129?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8129: Fix Version/s: 1.14.0 > Write SNI test that drops proxy and restarts proxy > --- > > Key: GEODE-8129 > URL: https://issues.apache.org/jira/browse/GEODE-8129 > Project: Geode > Issue Type: Test > Components: native client >Reporter: Ernest Burghardt >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > This test is similar to GEODE-8128 - only capability to parse `docker ps` and > store the hostPort in advance of dropping proxy, this allows the proxy to be > restarted with the same port mapping -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8183) Travis Dockerfile doesn't match committed Dockerfile
[ https://issues.apache.org/jira/browse/GEODE-8183?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8183: Fix Version/s: 1.14.0 > Travis Dockerfile doesn't match committed Dockerfile > > > Key: GEODE-8183 > URL: https://issues.apache.org/jira/browse/GEODE-8183 > Project: Geode > Issue Type: Bug > Components: native client >Reporter: Michael Oleske >Priority: Major > Fix For: 1.14.0 > > > I'm not sure how geode-native keeps the Travis Dockerfile up to date, but it > is not with the committed one. The docker image currently used by Travis has > geode 1.12 while the committed one uses 1.9. It also fails to build because > tzdata is interactive. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8184) Enforece no-extra-semi
[ https://issues.apache.org/jira/browse/GEODE-8184?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8184: Fix Version/s: 1.14.0 > Enforece no-extra-semi > -- > > Key: GEODE-8184 > URL: https://issues.apache.org/jira/browse/GEODE-8184 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Michael Oleske >Priority: Major > Fix For: 1.14.0 > > > {{no-extra-semi}} was added as an exception to warnings as errors. This has > a todo and should be enforced. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8212) Reduce connections to server to get type id
[ https://issues.apache.org/jira/browse/GEODE-8212?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8212: Fix Version/s: 1.14.0 > Reduce connections to server to get type id > --- > > Key: GEODE-8212 > URL: https://issues.apache.org/jira/browse/GEODE-8212 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Alberto Bustamante Reyes >Assignee: Alberto Bustamante Reyes >Priority: Major > Fix For: 1.14.0 > > Attachments: performance_after_GEODE-7694.patch > > > While investigating a performance problem of the C++ native client, it has > been observed that change in the PdxType class "<" operator introduced by > GEODE-7694 impacts performance of PdxHelper::serializePdx(). > Im attaching a patch with some code and a test case I have used to benchmark > that method. With the current implementation in develop branch, creating just > 10 instances is enough to see the difference. The calls to serializePdx take > these times: > {noformat} > Elapsed Time (serializePdx): 32.1322 milliseconds > Elapsed Time (serializePdx): 3.06044 milliseconds > Elapsed Time (serializePdx): 1.58791 milliseconds > Elapsed Time (serializePdx): 1.62466 milliseconds > Elapsed Time (serializePdx): 1.53676 milliseconds > Elapsed Time (serializePdx): 1.59278 milliseconds > Elapsed Time (serializePdx): 1.82878 milliseconds > Elapsed Time (serializePdx): 1.36811 milliseconds > Elapsed Time (serializePdx): 1.6956 milliseconds > Elapsed Time (serializePdx): 1.46873 milliseconds > Elapsed Time (serializePdx): 1.53206 milliseconds > {noformat} > While these are the times using the old "<" operator: > {noformat} > Elapsed Time (serializePdx): 56.1524 milliseconds > Elapsed Time (serializePdx): 0.012327 milliseconds > Elapsed Time (serializePdx): 0.006325 milliseconds > Elapsed Time (serializePdx): 0.005419 milliseconds > Elapsed Time (serializePdx): 0.005266 milliseconds > Elapsed Time (serializePdx): 0.005662 milliseconds > Elapsed Time (serializePdx): 0.005407 milliseconds > Elapsed Time (serializePdx): 0.005286 milliseconds > Elapsed Time (serializePdx): 0.005467 milliseconds > Elapsed Time (serializePdx): 0.005276 milliseconds > Elapsed Time (serializePdx): 0.005298 milliseconds > {noformat} > And after creating 50.000 instances, these are the times for the last 10 > calls with the current "<" operator and with the old one respectively:: > {noformat} > Elapsed Time (serializePdx): 8.11767 milliseconds > Elapsed Time (serializePdx): 8.15727 milliseconds > Elapsed Time (serializePdx): 8.09303 milliseconds > Elapsed Time (serializePdx): 7.89909 milliseconds > Elapsed Time (serializePdx): 8.37956 milliseconds > Elapsed Time (serializePdx): 8.21303 milliseconds > Elapsed Time (serializePdx): 8.14189 milliseconds > Elapsed Time (serializePdx): 8.21266 milliseconds > Elapsed Time (serializePdx): 8.21683 milliseconds > Elapsed Time (serializePdx): 7.78765 milliseconds > {noformat} > {noformat} > Elapsed Time (serializePdx): 0.003014 milliseconds > Elapsed Time (serializePdx): 0.003 milliseconds > Elapsed Time (serializePdx): 0.003084 milliseconds > Elapsed Time (serializePdx): 0.003112 milliseconds > Elapsed Time (serializePdx): 0.00305 milliseconds > Elapsed Time (serializePdx): 0.003018 milliseconds > Elapsed Time (serializePdx): 0.003029 milliseconds > Elapsed Time (serializePdx): 0.003061 milliseconds > Elapsed Time (serializePdx): 0.003043 milliseconds > Elapsed Time (serializePdx): 0.003086 milliseconds > {noformat} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8207) Enforce No Unknown Pragmas as Error
[ https://issues.apache.org/jira/browse/GEODE-8207?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8207: Fix Version/s: 1.14.0 > Enforce No Unknown Pragmas as Error > --- > > Key: GEODE-8207 > URL: https://issues.apache.org/jira/browse/GEODE-8207 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Michael Oleske >Priority: Major > Fix For: 1.14.0 > > > Given I compile the code without exempting no-unknown-pragmas > Then it should compile > Note - was marked as a todo -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8214) Migrate old integration test testThinClientDisconnectionListener to new test framework
[ https://issues.apache.org/jira/browse/GEODE-8214?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8214: Fix Version/s: 1.14.0 > Migrate old integration test testThinClientDisconnectionListener to new test > framework > -- > > Key: GEODE-8214 > URL: https://issues.apache.org/jira/browse/GEODE-8214 > Project: Geode > Issue Type: Sub-task > Components: native client >Reporter: Michael Martell >Priority: Major > Fix For: 1.14.0 > > > The switch to boost::asio uncovered some issues in the nativeclient related > to socket error handling due to servers going away. Several tests fail with > boost::asio. This test appears to be the simplest test of all the server > disconnect related tests (1 client with a CacheListener, and 1 server) so > makes sense to port to the new framework. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8227) Update CMake dependency to 3.16.8
[ https://issues.apache.org/jira/browse/GEODE-8227?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8227: Fix Version/s: 1.14.0 > Update CMake dependency to 3.16.8 > - > > Key: GEODE-8227 > URL: https://issues.apache.org/jira/browse/GEODE-8227 > Project: Geode > Issue Type: Bug > Components: native client >Reporter: Jacob Barrett >Priority: Major > Fix For: 1.14.0 > > > Update CMake dependency to 3.16.8 -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8246) Enforce No Shadow as Error
[ https://issues.apache.org/jira/browse/GEODE-8246?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8246: Fix Version/s: 1.14.0 > Enforce No Shadow as Error > -- > > Key: GEODE-8246 > URL: https://issues.apache.org/jira/browse/GEODE-8246 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Michael Oleske >Priority: Major > Fix For: 1.14.0 > > > Given I compile the code without exempting no-shadow > Then it should compile > Note - was marked as a todo -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8262) Eliminate use of master/slave terminology in old test framework
[ https://issues.apache.org/jira/browse/GEODE-8262?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8262: Fix Version/s: 1.14.0 > Eliminate use of master/slave terminology in old test framework > --- > > Key: GEODE-8262 > URL: https://issues.apache.org/jira/browse/GEODE-8262 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Blake Bender >Assignee: Blake Bender >Priority: Major > Fix For: 1.14.0 > > > I ran across this again while debugging, and each time I do I find it > jarring. Ultimately the plan is to remove the old framework altogether, but > I think if we're being honest we have to admit this really isn't going away > anytime soon. In the meantime, this is is clearly the right thing to do, and > is confined to a very few source files in the old C++ test framework, so > changing these terms costs us nearly nothing. Let's scrub it ASAP. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8307) Enforce No Shadow Field in Constructor as Error
[ https://issues.apache.org/jira/browse/GEODE-8307?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8307: Fix Version/s: 1.14.0 > Enforce No Shadow Field in Constructor as Error > --- > > Key: GEODE-8307 > URL: https://issues.apache.org/jira/browse/GEODE-8307 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Michael Oleske >Priority: Major > Fix For: 1.14.0 > > > Given I compile the code without exempting no-shadow-field-in-constructor > Then it should compile > Note - was marked as a todo -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8297) TcrMessage default timeout is set to 15ms, rather than 15 seconds
[ https://issues.apache.org/jira/browse/GEODE-8297?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8297: Fix Version/s: 1.14.0 > TcrMessage default timeout is set to 15ms, rather than 15 seconds > - > > Key: GEODE-8297 > URL: https://issues.apache.org/jira/browse/GEODE-8297 > Project: Geode > Issue Type: Bug > Components: native client >Reporter: Blake Bender >Assignee: Blake Bender >Priority: Major > Fix For: 1.14.0 > > > While analyzing a log from a bug report, I noticed a trace message from > TcrConnection::sendData: > {quote}{{[debug <> 123145454981120] before send len 99 > sendTimeoutSec = *15000us* checkConnected = 1 m_connected 1}} > {quote} > > It appears, from further digging, that we are indeed using a 15ms timeout for > (at least) the > USER_CREDENTIAL_MESSAGE. This will happen for any message we don't > explicitly set the timeout on before sending. Potentially this is a cause > for a lot of random network timeout failures. Regardless of whether or not > it's for sure causing problems, it's definitely wrong, by 3 orders of > magnitude. This needs to be set to the intended default of 15 _seconds_. > -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8342) Remove non-inclusive language
[ https://issues.apache.org/jira/browse/GEODE-8342?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8342: Fix Version/s: 1.14.0 > Remove non-inclusive language > - > > Key: GEODE-8342 > URL: https://issues.apache.org/jira/browse/GEODE-8342 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Jacob Barrett >Priority: Major > Fix For: 1.14.0 > > > Geode native includes some non-inclusive language that should be replaced. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8340) Enforce Switch compiler warnings as errors
[ https://issues.apache.org/jira/browse/GEODE-8340?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8340: Fix Version/s: 1.14.0 > Enforce Switch compiler warnings as errors > -- > > Key: GEODE-8340 > URL: https://issues.apache.org/jira/browse/GEODE-8340 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Michael Oleske >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > Given I compile the code without exempting no-switch-enum and > no-implicit-fallthrough and no-covered-switch-default > Then it should compile > Note - was marked as a todo, seems reasonable to tackle all these at once -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8388) Geode Native Client user guide: delete unused sources
[ https://issues.apache.org/jira/browse/GEODE-8388?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8388: Fix Version/s: (was: 1.13.0) > Geode Native Client user guide: delete unused sources > - > > Key: GEODE-8388 > URL: https://issues.apache.org/jira/browse/GEODE-8388 > Project: Geode > Issue Type: Bug > Components: docs, native client >Reporter: Dave Barnes >Assignee: Dave Barnes >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > The geode-native docs directory contains unused sources from the > pre-open-source days. The problem is that while they're not linked to the > user guide's T of C, these out-of-date docs are still included in the manual > build (a quirk of the toolset), where they can be accidentally discovered via > web searches. > These unused files need to be identified and deleted. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8390) Geode Native Client user guide: Expose "Continuous Queries" links as nav topics
[ https://issues.apache.org/jira/browse/GEODE-8390?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8390: Fix Version/s: 1.14.0 > Geode Native Client user guide: Expose "Continuous Queries" links as nav > topics > --- > > Key: GEODE-8390 > URL: https://issues.apache.org/jira/browse/GEODE-8390 > Project: Geode > Issue Type: Improvement > Components: docs, native client >Reporter: Dave Barnes >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > In the native client user guides (both C++ and .NET), the left-hand > navigation pick "Continuous Queries" has no subtopics. The page itself > contains a plethora of links, some of which should be promoted to visibility > in the left-hand nav. For example, Connection Pools and High-Availability. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (GEODE-8766) dUnit Failure for Redis HashesIntegrationTest
[ https://issues.apache.org/jira/browse/GEODE-8766?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17248143#comment-17248143 ] ASF GitHub Bot commented on GEODE-8766: --- nonbinaryprogrammer opened a new pull request #5841: URL: https://github.com/apache/geode/pull/5841 In AbstractHashesIntegrationTest putting the value would fail in the test setup. It was using a pseudo-random method to generate keys. That method was not random enough and was causing collisions, making the put fail. This in turn caused the number of keys to be incorrect so the test would never hget all the keys it was expecting. 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: - [ ] Is there a JIRA ticket associated with this PR? Is it referenced in the commit message? - [ ] Has your PR been rebased against the latest commit within the target branch (typically `develop`)? - [ ] Is your initial contribution a single, squashed commit? - [ ] Does `gradlew build` run cleanly? - [ ] 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, check Concourse 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 to 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 > dUnit Failure for Redis HashesIntegrationTest > - > > Key: GEODE-8766 > URL: https://issues.apache.org/jira/browse/GEODE-8766 > Project: Geode > Issue Type: Bug > Components: redis >Reporter: John Hutchison >Assignee: John Hutchison >Priority: Major > > [https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-main/jobs/IntegrationTestOpenJDK11/builds/610] > org.apache.geode.redis.internal.executor.hash.HashesIntegrationTest > > testConcurrentHGetAll FAILED > > org.junit.ComparisonFailure: expected:<[800]0L> but was:<[]0L> > > -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8766) dUnit Failure for Redis HashesIntegrationTest
[ https://issues.apache.org/jira/browse/GEODE-8766?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] ASF GitHub Bot updated GEODE-8766: -- Labels: pull-request-available (was: ) > dUnit Failure for Redis HashesIntegrationTest > - > > Key: GEODE-8766 > URL: https://issues.apache.org/jira/browse/GEODE-8766 > Project: Geode > Issue Type: Bug > Components: redis >Reporter: John Hutchison >Assignee: John Hutchison >Priority: Major > Labels: pull-request-available > > [https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-main/jobs/IntegrationTestOpenJDK11/builds/610] > org.apache.geode.redis.internal.executor.hash.HashesIntegrationTest > > testConcurrentHGetAll FAILED > > org.junit.ComparisonFailure: expected:<[800]0L> but was:<[]0L> > > -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8457) C++ native client crash when singleHop=false and an IO error is detected when sending a message to a server
[ https://issues.apache.org/jira/browse/GEODE-8457?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8457: Fix Version/s: 1.14.0 > C++ native client crash when singleHop=false and an IO error is detected when > sending a message to a server > --- > > Key: GEODE-8457 > URL: https://issues.apache.org/jira/browse/GEODE-8457 > Project: Geode > Issue Type: Bug > Components: native client >Reporter: Alberto Gomez >Assignee: Alberto Gomez >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > The native client crashes when single hop is not enabled and the connection > to a remote server fails with an IO error (for example when the server goes > down). > This crash can be observed when running the > 'testThinClientPoolExecuteHAFunction' -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8443) Disable Windows SNI tests properly
[ https://issues.apache.org/jira/browse/GEODE-8443?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8443: Fix Version/s: 1.14.0 > Disable Windows SNI tests properly > -- > > Key: GEODE-8443 > URL: https://issues.apache.org/jira/browse/GEODE-8443 > Project: Geode > Issue Type: Bug > Components: native client >Reporter: Blake Bender >Assignee: Blake Bender >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > There's a typo in SNITests.cpp causing the SNI connectViaProxyTest to be run > on Windows when it's supposed to be disabled. Just need to fix the typo (is > 'DISABLE', should be 'DISABLED'). -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8508) Update .lgtm.yml to latest (1.13) Geode release
[ https://issues.apache.org/jira/browse/GEODE-8508?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8508: Fix Version/s: 1.14.0 > Update .lgtm.yml to latest (1.13) Geode release > --- > > Key: GEODE-8508 > URL: https://issues.apache.org/jira/browse/GEODE-8508 > Project: Geode > Issue Type: Task > Components: native client >Reporter: Alberto Bustamante Reyes >Assignee: Alberto Bustamante Reyes >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > As done in GEODE-8018 for Geode 1.12, now that Geode 1.13 is out it is > needed to update LGTM config file to use the latest version. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8514) Move Python "protocol dumping" script from private repo
[ https://issues.apache.org/jira/browse/GEODE-8514?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8514: Fix Version/s: 1.14.0 > Move Python "protocol dumping" script from private repo > --- > > Key: GEODE-8514 > URL: https://issues.apache.org/jira/browse/GEODE-8514 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Blake Bender >Assignee: Blake Bender >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > I have a tool written in Python that, given a debug-level native client log > file, dumps the contents of many common Geode messages in a JSON-formatted > list. This was developed in a private repo, and is now in reasonable-enough > shape to donate to the community by moving to geode-native itself. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8512) Be able to specify 'expectDomainClass' when calling createPdxInstanceFactory
[ https://issues.apache.org/jira/browse/GEODE-8512?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8512: Fix Version/s: 1.14.0 > Be able to specify 'expectDomainClass' when calling createPdxInstanceFactory > > > Key: GEODE-8512 > URL: https://issues.apache.org/jira/browse/GEODE-8512 > Project: Geode > Issue Type: Improvement > Components: native client >Affects Versions: 1.13.0 >Reporter: Mario Salazar de Torres >Assignee: Mario Salazar de Torres >Priority: Minor > Labels: JsonFormatter, pull-request-available > Fix For: 1.14.0 > > > Within Java client, you can specify if the PdxInstance you want to create is > a Java domain class or not, but this is not the case for geode-native C++ > client. > Thing is that in order to implement JsonFormatter in C++ client, having this > change is mandatory, otherwise creating PdxType's with __GEMFIRE_JSON > classname will present some issues while using cquery's. > -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8519) Geode Native Client user guide: delete unused sources (round 2)
[ https://issues.apache.org/jira/browse/GEODE-8519?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8519: Fix Version/s: (was: 1.13.1) > Geode Native Client user guide: delete unused sources (round 2) > --- > > Key: GEODE-8519 > URL: https://issues.apache.org/jira/browse/GEODE-8519 > Project: Geode > Issue Type: Bug > Components: docs, native client >Reporter: Dave Barnes >Assignee: Dave Barnes >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > The geode-native docs directory contains unused sources from the > pre-open-source days. The problem is that while they're not linked to the > user guide's T of C, these out-of-date docs are still included in the manual > build (a quirk of the toolset), where they can be accidentally discovered via > web searches. > These unused files need to be identified and deleted. > GEODE-8388 took care of some of these files. There's another group under > 'preserving data' that need to go. The user guide contains two links on the > Continuous Queries page that will need to be removed. > Also, need to remove a link to Durable Client Messaging from the > "Subscription Properties" page. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8519) Geode Native Client user guide: delete unused sources (round 2)
[ https://issues.apache.org/jira/browse/GEODE-8519?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8519: Fix Version/s: 1.13.1 > Geode Native Client user guide: delete unused sources (round 2) > --- > > Key: GEODE-8519 > URL: https://issues.apache.org/jira/browse/GEODE-8519 > Project: Geode > Issue Type: Bug > Components: docs, native client >Reporter: Dave Barnes >Assignee: Dave Barnes >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0, 1.13.1 > > > The geode-native docs directory contains unused sources from the > pre-open-source days. The problem is that while they're not linked to the > user guide's T of C, these out-of-date docs are still included in the manual > build (a quirk of the toolset), where they can be accidentally discovered via > web searches. > These unused files need to be identified and deleted. > GEODE-8388 took care of some of these files. There's another group under > 'preserving data' that need to go. The user guide contains two links on the > Continuous Queries page that will need to be removed. > Also, need to remove a link to Durable Client Messaging from the > "Subscription Properties" page. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8548) ACE_Inet_Addr takes too long in reverse DNS resolution
[ https://issues.apache.org/jira/browse/GEODE-8548?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8548: Fix Version/s: 1.14.0 > ACE_Inet_Addr takes too long in reverse DNS resolution > -- > > Key: GEODE-8548 > URL: https://issues.apache.org/jira/browse/GEODE-8548 > Project: Geode > Issue Type: Bug > Components: native client >Affects Versions: 1.11.0, 1.12.0, 1.13.0 >Reporter: Mario Salazar de Torres >Assignee: Mario Salazar de Torres >Priority: Major > Labels: connections, pull-request-available > Fix For: 1.14.0 > > > Whenever TcpConn::connect is called, a system call to *get_host_name* is made > in order to obtain reverse resolution for the connection address, right here: > {code:cpp} > void TcpConn::connect() { > using apache::geode::internal::chrono::duration::to_string; > ACE_OS::signal(SIGPIPE, SIG_IGN); // Ignore broken pipe > LOGFINER(std::string("Connecting plain socket stream to ") + >inetAddress_.get_host_name() + ":" + >std::to_string(inetAddress_.get_port_number()) + " waiting " + >to_string(timeout_)); > ··· > {code} > get_host_name executes getnameinfo underlying and the thing is that depending > on your system configuration in the case of the address not having a reverse > resolution entry it might take a long period. In my case it takes 10 seconds. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8524) Add support for KEY_SET and GET_ALL_70 messages to gnmsg
[ https://issues.apache.org/jira/browse/GEODE-8524?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8524: Fix Version/s: 1.14.0 > Add support for KEY_SET and GET_ALL_70 messages to gnmsg > > > Key: GEODE-8524 > URL: https://issues.apache.org/jira/browse/GEODE-8524 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Blake Bender >Assignee: Blake Bender >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > As a user of the gnmsg parsing tool, I would like to see data for as many > messages as possible in my log dumps. Currently the tool does not parse > either the `KEY_SET` message which is sent as a result of a region > `serverKeys()` call, or the `GET_ALL_70` message sent by the `getAll()` API. > We need to add the basics of parsing these messages (objects/parts of > messages), and perhaps add decoding of some/all of the data later. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8537) Memory increases whenever LRU eviction is enabled
[ https://issues.apache.org/jira/browse/GEODE-8537?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8537: Fix Version/s: 1.14.0 > Memory increases whenever LRU eviction is enabled > - > > Key: GEODE-8537 > URL: https://issues.apache.org/jira/browse/GEODE-8537 > Project: Geode > Issue Type: Bug > Components: native client >Affects Versions: 1.13.0 >Reporter: Mario Salazar de Torres >Assignee: Mario Salazar de Torres >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > Attachments: massif-8419.png, massif.out.8419 > > > *HAVING* configured concurrency-checks-enabled=false in the client-cache.xml > for a region > *HAVING* configured heap-lru-limit=10 in the client-cache.xml for the region > region > *HAVING* configured heap-lru-delta=10 in the client-cache.xml for the region > region > *HAVING* configured subscription-notification for the pool on which the > region is defined > *HAVING* regsitered interest on all the keys of this region, values included > *AFTER* receiving lots of LOCA_CREATE and LOCAL_DESTROY notifications > *THEN* memory increases continously over time, even going over the LRU limit. > Find massif tool report as massif.out.8419 showing the memory increase. > Also this is a capture of massif-visualizer for the report: > !massif-8419.png! -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8569) Missing message security footer check in gnmsg
[ https://issues.apache.org/jira/browse/GEODE-8569?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8569: Fix Version/s: 1.14.0 > Missing message security footer check in gnmsg > -- > > Key: GEODE-8569 > URL: https://issues.apache.org/jira/browse/GEODE-8569 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Blake Bender >Assignee: Blake Bender >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > In an older version of the `gnmsg.py` script, there was a function called > request_requires_security_footer that returned a boolean based on the message > name, indictating whether or not the message needed the security footer in a > server conversation with authentication. In the refactor that moved the > client message decoding into a class, this method was left out, so attempting > to decode messages from a client log that used AuthInitialize will throw an > exception attempting to call this missing function. We need to add this call > to the ClientMessageDecoder class. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8553) Reduce ThinClientLocatorHelper lock time
[ https://issues.apache.org/jira/browse/GEODE-8553?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8553: Fix Version/s: 1.14.0 > Reduce ThinClientLocatorHelper lock time > > > Key: GEODE-8553 > URL: https://issues.apache.org/jira/browse/GEODE-8553 > Project: Geode > Issue Type: Improvement > Components: native client >Affects Versions: 1.12.0, 1.13.0 >Reporter: Mario Salazar de Torres >Assignee: Mario Salazar de Torres >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > During my troublshootings, I've seen that locking m_locatorLock for the whole > scope of the class function members might cause some inter-locks. > Problem here and in many other places of the NC is that networking operations > are performed while a mutex is locked. Therefore if *thread A* takes longer > than expected in performing its network operation, it might block another one > which does not requires any resource of the first *thread A*. Hence, the > inter-lock. > This improvement is the first one of a series regarding to lock scope > reduction when it comes with code regarding networking in NC. > -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8571) Enforce no documentation
[ https://issues.apache.org/jira/browse/GEODE-8571?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8571: Fix Version/s: 1.14.0 > Enforce no documentation > > > Key: GEODE-8571 > URL: https://issues.apache.org/jira/browse/GEODE-8571 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Michael Oleske >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > Given I compile the code without exempting no-documentation > Then it should compile > Note - was marked as a todo -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8604) -Wdocumentation errors on Mac
[ https://issues.apache.org/jira/browse/GEODE-8604?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8604: Fix Version/s: 1.14.0 > -Wdocumentation errors on Mac > - > > Key: GEODE-8604 > URL: https://issues.apache.org/jira/browse/GEODE-8604 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Blake Bender >Assignee: Blake Bender >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > The recent fix for GEODE-8571 builds on all geode-native "supported" > platforms, but MacOS with clang 12 flags more stuff, so the Mac build is > broken on `develop`, which is a problem for many of our developers. Need to > fix all the documentation warnings on MacOS. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8596) Enforce No Old Style Cast as Error
[ https://issues.apache.org/jira/browse/GEODE-8596?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8596: Fix Version/s: 1.14.0 > Enforce No Old Style Cast as Error > -- > > Key: GEODE-8596 > URL: https://issues.apache.org/jira/browse/GEODE-8596 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Michael Oleske >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > Given I compile the code without exempting no-old-style-cast > Then it should compile > Note - was marked as a todo -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8580) Improper use of throw in new C++ test framework
[ https://issues.apache.org/jira/browse/GEODE-8580?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8580: Fix Version/s: 1.14.0 > Improper use of throw in new C++ test framework > --- > > Key: GEODE-8580 > URL: https://issues.apache.org/jira/browse/GEODE-8580 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Michael Martell >Assignee: Michael Martell >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > The new C++ test framework (cppcache/integration/framework) throws pointers > to exceptions. This is never a good idea. > [https://stackoverflow.com/questions/10948316/throw-new-stdexception-vs-throw-stdexception] > Although you can catch pointers, it's not recommended practice. > Note: The particular error I ran into was in GfshExecute::execute, where > throw new GfshExecuteException("gfsh error", exit_code); > was being used. This requires gtest to use: > EXPECT_THROW(gfsh.query(query_stmt).execute(), GfshExecuteException*); -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8613) Remove exclusive access to pool connection creation/removal in native client
[ https://issues.apache.org/jira/browse/GEODE-8613?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8613: Fix Version/s: 1.14.0 > Remove exclusive access to pool connection creation/removal in native client > > > Key: GEODE-8613 > URL: https://issues.apache.org/jira/browse/GEODE-8613 > Project: Geode > Issue Type: Improvement > Components: native client >Reporter: Alberto Gomez >Assignee: Alberto Gomez >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > The Apache Geode C++ native client uses a mutex to grant exclusive access to > the code that creates or removes pool connections (mutex_ member in > ThinClientPoolDM class). The reason behind seems to be to perform atomically > the creation of the connection and the update of the number of connections > (m_poolSize) of the pool so that the number of connections in the pool and > the counter are always aligned. > This mutex is also used to protect the concurrent access to the connection > queue structure (ConnectionQueue class). > So, the mutex is used for two different purposes. > Getting this mutex while creating/removing a pool connection has an impact in > the performance of the client because connections cannot be created > concurrently but there are also negative side effects that could lead to a > freeze of the client if the connection creation is taking a long time (for > example when the DNS is not available and name resolution calls take seconds > to be answered). > A particularly problematic case is that when a minimum number of connections > has been configured in the client, loadconditioning or connection expiration > is configured and the DNS becomes unavailable. If at a given point in time > the number of connections in the pool is lower than the minimum configured, > the thread that restores the minimum number of connections will try to create > a new connection and will not release the mutex until it has finished. This > will block other threads trying to get a connection from the queue > unnecessarily. > In this ticket, it is proposed to remove the locking of the mutex when the > connection is created or removed. An alternative could be to create a new > mutex for the creation or removal of connections so that the access to the > ConnectionQueue is not affected by the creation/removal of connections but I > do not consider it necessary just to maintain consistent (and not only > eventually consistent) the number of connection of the pool and the counter > of the connections (m_poolSize). > Note that this ticket does not propose to remove the use of the mutex to > access the ConnectionQueue. This will still be necessary to protect > concurrent access to the connection queue data structure. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8688) Flaxy C++ Native client integration test cases: PartitionRegionOpsTest.[get|put]PartitionedRegionWithRedundancyServerGoesDownSingleHop
[ https://issues.apache.org/jira/browse/GEODE-8688?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8688: Fix Version/s: 1.14.0 > Flaxy C++ Native client integration test cases: > PartitionRegionOpsTest.[get|put]PartitionedRegionWithRedundancyServerGoesDownSingleHop > -- > > Key: GEODE-8688 > URL: https://issues.apache.org/jira/browse/GEODE-8688 > Project: Geode > Issue Type: Bug > Components: native client >Affects Versions: 1.13.0 >Reporter: Alberto Gomez >Assignee: Alberto Gomez >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > The following test cases for the C++ native client are flaky: > PartitionRegionOpsTest.getPartitionedRegionWithRedundancyServerGoesDownSingleHop > PartitionRegionOpsTest.putPartitionedRegionWithRedundancyServerGoesDownSingleHop > > They fail very often when run in CI although I have not seen them fail when > executed manually. > -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8676) Update bookbindery to latest
[ https://issues.apache.org/jira/browse/GEODE-8676?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8676: Fix Version/s: 1.14.0 > Update bookbindery to latest > > > Key: GEODE-8676 > URL: https://issues.apache.org/jira/browse/GEODE-8676 > Project: Geode > Issue Type: Improvement > Components: docs, native client >Reporter: Michael Oleske >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > [Bookbinder|https://github.com/pivotal-cf/bookbinder/releases] has a new > release and we should keep the tools we use to build our docs up to date -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8773) Unnecessary transaction overhead being created on server
[ https://issues.apache.org/jira/browse/GEODE-8773?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8773: Fix Version/s: 1.14.0 > Unnecessary transaction overhead being created on server > > > Key: GEODE-8773 > URL: https://issues.apache.org/jira/browse/GEODE-8773 > Project: Geode > Issue Type: Bug > Components: native client >Reporter: Blake Bender >Assignee: Blake Bender >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > This is a _very_ old bug, that was just discovered. In the Geode protocol, > no matter which message is being handled, a Geode server will examine the > “transaction Id” value in the message header, and if it is not the symbolic > constant “NOTX” (aka -1), will assume the message is part of a transaction > with that Id, and _set up resources for a transaction if one with that Id > doesn’t already exist_. Said resource can include a high priority thread. In > conjunction with this, we have the fact that the native client goes out of > its way to always set the transaction id to 0 for PING and CLOSE_CONNECTION > messages. The last ingredient for reproducing this problem is to have a whole > bunch (like on the order of several hundred or several thousand) client > applications start up and exit in a short period of time. Each will send at > least one CLOSE_CONNECTION message, all with transaction Id 0, thus each > client instance will leave one dangling transaction on the server. Eventually > these will cause the server to spin up a fatal number of high-priority > threads. > The fix in the native client is trivial, just stop writing 0 instead of the > transaction ID in the PING and CLOSE_CONNECTION messages. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8754) Deserialization Error in .NET DataInput::ReadObject
[ https://issues.apache.org/jira/browse/GEODE-8754?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8754: Fix Version/s: 1.14.0 > Deserialization Error in .NET DataInput::ReadObject > --- > > Key: GEODE-8754 > URL: https://issues.apache.org/jira/browse/GEODE-8754 > Project: Geode > Issue Type: Bug > Components: native client >Reporter: Michael Martell >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > Using the IDataSerializable interface for user defined .NET types sometimes > fails in a Release build. Specifically, the DataInput::ReadObject() function > may fail in a Release build. > Note: DataInput::ReadObject() never fails in a Debug build. > -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (GEODE-8724) Fix compilation using geode-native docker image
[ https://issues.apache.org/jira/browse/GEODE-8724?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Bender updated GEODE-8724: Fix Version/s: 1.14.0 > Fix compilation using geode-native docker image > --- > > Key: GEODE-8724 > URL: https://issues.apache.org/jira/browse/GEODE-8724 > Project: Geode > Issue Type: Bug > Components: native client >Affects Versions: 1.13.0, 1.13.1 >Reporter: Mario Salazar de Torres >Assignee: Mario Salazar de Torres >Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > As geode-native was re-built and re-uploaded, it's now using the latest > version of ubuntu, which is 20.04 as of some months. > Thing is docker builds started to fail after uploading the new docker image. > This task is intended to look into the issue and propose one/several > solutions. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (GEODE-7739) JMX managers may fail to federate mbeans for other members
[ https://issues.apache.org/jira/browse/GEODE-7739?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17248202#comment-17248202 ] ASF GitHub Bot commented on GEODE-7739: --- kirklund commented on a change in pull request #5778: URL: https://github.com/apache/geode/pull/5778#discussion_r541313975 ## File path: geode-core/src/main/java/org/apache/geode/management/internal/NotificationCacheListener.java ## @@ -14,101 +14,51 @@ */ package org.apache.geode.management.internal; - import javax.management.Notification; -import org.apache.geode.cache.CacheListener; +import org.apache.geode.CancelCriterion; import org.apache.geode.cache.EntryEvent; -import org.apache.geode.cache.RegionEvent; +import org.apache.geode.cache.util.CacheListenerAdapter; +import org.apache.geode.internal.util.concurrent.StoppableCountDownLatch; /** * This listener will be attached to each notification region corresponding to a member - * */ -public class NotificationCacheListener implements CacheListener { - - /** - * For the - */ - private NotificationHubClient notifClient; +public class NotificationCacheListener extends CacheListenerAdapter { - private volatile boolean readyForEvents; + private final NotificationHubClient notifClient; + private final StoppableCountDownLatch readyForEvents; - public NotificationCacheListener(MBeanProxyFactory proxyHelper) { - -notifClient = new NotificationHubClient(proxyHelper); -this.readyForEvents = false; + public NotificationCacheListener(MBeanProxyFactory proxyHelper, CancelCriterion cancelCriterion) { +notifClient = +new NotificationHubClient(proxyHelper); +this.readyForEvents = +new StoppableCountDownLatch(cancelCriterion, 1); } @Override public void afterCreate(EntryEvent event) { -if (!readyForEvents) { - return; -} +blockUntilReady(); notifClient.sendNotification(event); - - } - - @Override - public void afterDestroy(EntryEvent event) { -// TODO Auto-generated method stub - - } - - @Override - public void afterInvalidate(EntryEvent event) { -// TODO Auto-generated method stub - - } - - @Override - public void afterRegionClear(RegionEvent event) { -// TODO Auto-generated method stub - - } - - @Override - public void afterRegionCreate(RegionEvent event) { -// TODO Auto-generated method stub - - } - - @Override - public void afterRegionDestroy(RegionEvent event) { -// TODO Auto-generated method stub - - } - - @Override - public void afterRegionInvalidate(RegionEvent event) { -// TODO Auto-generated method stub - - } - - @Override - public void afterRegionLive(RegionEvent event) { -// TODO Auto-generated method stub - } @Override public void afterUpdate(EntryEvent event) { -if (!readyForEvents) { - return; -} +blockUntilReady(); notifClient.sendNotification(event); - } - @Override - public void close() { -// TODO Auto-generated method stub - + private void blockUntilReady() { +try { + readyForEvents.await(); +} catch (InterruptedException e) { + Thread.interrupted(); Review comment: ``` try { readyForEvents.await(); } catch (InterruptedException e) { Thread.currentThread().interrupt(); throw new RuntimeException(e); } ``` ## File path: geode-core/src/main/java/org/apache/geode/management/internal/ManagementCacheListener.java ## @@ -104,13 +101,19 @@ public void afterUpdate(EntryEvent event) { if (logger.isDebugEnabled()) { logger.debug("Proxy Update failed for {} with exception {}", objectName, e.getMessage(), e); } - } + } + private void blockUntilReady() { +try { + readyForEvents.await(); +} catch (InterruptedException e) { + Thread.interrupted(); Review comment: `Thread.interrupted()` only checks to see if the interrupt bit is set (returns boolean). You want to use `Thread.currentThread().interrupt()` like this: ``` try { readyForEvents.await(); } catch (InterruptedException e) { Thread.currentThread().interrupt(); throw new RuntimeException(e); } ``` ## File path: geode-core/src/main/java/org/apache/geode/management/internal/FederatingManager.java ## @@ -380,8 +384,10 @@ void addMemberArtifacts(InternalDistributedMember member) { return; } - try { + FederatingManagerCancelCriterion cancelCriterion = Review comment: Creating a new CancelCriterion instance isn't really what is needed here. You need to `getCancelCriterion` from either the Cache or the DistributedSystem and pass that into the constructor of the classes that are using it. Then if the DS or Cache are closing, the CancelCriterion will cause the FederatingManager to cancel with the cause being the Cache or DS being
[jira] [Commented] (GEODE-7739) JMX managers may fail to federate mbeans for other members
[ https://issues.apache.org/jira/browse/GEODE-7739?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17248207#comment-17248207 ] ASF GitHub Bot commented on GEODE-7739: --- kirklund commented on a change in pull request #5778: URL: https://github.com/apache/geode/pull/5778#discussion_r541332662 ## File path: geode-core/src/main/java/org/apache/geode/management/internal/ManagementCacheListener.java ## @@ -104,13 +101,19 @@ public void afterUpdate(EntryEvent event) { if (logger.isDebugEnabled()) { logger.debug("Proxy Update failed for {} with exception {}", objectName, e.getMessage(), e); } - } + } + private void blockUntilReady() { +try { + readyForEvents.await(); +} catch (InterruptedException e) { + Thread.interrupted(); Review comment: Another option which might be more correct and it matches most of the Geode code more closely: ``` boolean interrupted = false; try { readyForEvents.await(); } catch (InterruptedException e) { interrupted = true; getCancelCriterion().checkCancelInProgress(ie); throw new RuntimeException(e); } finally { if (interrupted) { Thread.currentThread().interrupt(); } } ``` The effect is that if the thread is interrupted, then we prefer Cache closed exception or DistributedSystem disconnected exception first. If neither is occurring then we throw new RuntimeException as a last resort. And then finally we reset the thread interrupt flag since we didn't actually handle the interrupt locally here by halting the Runnable that the thread is executing. The code is basically passing along a runtime exception and interrupt flag back to the calling code to let it deal with both. This is an automated message from the Apache Git Service. To respond to the message, please log on to 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 > JMX managers may fail to federate mbeans for other members > -- > > Key: GEODE-7739 > URL: https://issues.apache.org/jira/browse/GEODE-7739 > Project: Geode > Issue Type: Bug > Components: jmx >Reporter: Kirk Lund >Assignee: Kirk Lund >Priority: Major > Labels: GeodeOperationAPI, pull-request-available > Time Spent: 20m > Remaining Estimate: 0h > > JMX Manager may fail to federate one or more MXBeans for other members > because of a race condition during startup. When ManagementCacheListener is > first constructed, it is in a state that will ignore all callbacks because > the field readyForEvents is false. > > Debugging with JMXMBeanReconnectDUnitTest revealed this bug. > The test starts two locators with jmx manager configured and started. > Locator1 always has all of locator2's mbeans, but locator2 is intermittently > missing the personal mbeans of locator1. > I think this is caused by some sort of race condition in the code that > creates the monitoring regions for other members in locator2. > It's possible that the jmx manager that hits this bug might fail to have > mbeans for servers as well as other locators but I haven't seen a test case > for this scenario. > The exposure of this bug means that a user running more than one locator > might have a locator that is missing one or more mbeans for the cluster. > > Studying the JMX code also reveals the existence of *GEODE-8012*. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (GEODE-7739) JMX managers may fail to federate mbeans for other members
[ https://issues.apache.org/jira/browse/GEODE-7739?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17248208#comment-17248208 ] ASF GitHub Bot commented on GEODE-7739: --- kirklund commented on a change in pull request #5778: URL: https://github.com/apache/geode/pull/5778#discussion_r541332662 ## File path: geode-core/src/main/java/org/apache/geode/management/internal/ManagementCacheListener.java ## @@ -104,13 +101,19 @@ public void afterUpdate(EntryEvent event) { if (logger.isDebugEnabled()) { logger.debug("Proxy Update failed for {} with exception {}", objectName, e.getMessage(), e); } - } + } + private void blockUntilReady() { +try { + readyForEvents.await(); +} catch (InterruptedException e) { + Thread.interrupted(); Review comment: Another option which might be more correct and it matches most of the Geode code more closely: ``` boolean interrupted = false; try { readyForEvents.await(); } catch (InterruptedException e) { interrupted = true; cancelCriterion.checkCancelInProgress(ie); throw new RuntimeException(e); } finally { if (interrupted) { Thread.currentThread().interrupt(); } } ``` The effect is that if the thread is interrupted, then we prefer Cache closed exception or DistributedSystem disconnected exception first. If neither is occurring then we throw new RuntimeException as a last resort. And then finally we reset the thread interrupt flag since we didn't actually handle the interrupt locally here by halting the Runnable that the thread is executing. The code is basically passing along a runtime exception and interrupt flag back to the calling code to let it deal with both. This is an automated message from the Apache Git Service. To respond to the message, please log on to 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 > JMX managers may fail to federate mbeans for other members > -- > > Key: GEODE-7739 > URL: https://issues.apache.org/jira/browse/GEODE-7739 > Project: Geode > Issue Type: Bug > Components: jmx >Reporter: Kirk Lund >Assignee: Kirk Lund >Priority: Major > Labels: GeodeOperationAPI, pull-request-available > Time Spent: 20m > Remaining Estimate: 0h > > JMX Manager may fail to federate one or more MXBeans for other members > because of a race condition during startup. When ManagementCacheListener is > first constructed, it is in a state that will ignore all callbacks because > the field readyForEvents is false. > > Debugging with JMXMBeanReconnectDUnitTest revealed this bug. > The test starts two locators with jmx manager configured and started. > Locator1 always has all of locator2's mbeans, but locator2 is intermittently > missing the personal mbeans of locator1. > I think this is caused by some sort of race condition in the code that > creates the monitoring regions for other members in locator2. > It's possible that the jmx manager that hits this bug might fail to have > mbeans for servers as well as other locators but I haven't seen a test case > for this scenario. > The exposure of this bug means that a user running more than one locator > might have a locator that is missing one or more mbeans for the cluster. > > Studying the JMX code also reveals the existence of *GEODE-8012*. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (GEODE-7739) JMX managers may fail to federate mbeans for other members
[ https://issues.apache.org/jira/browse/GEODE-7739?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17248262#comment-17248262 ] ASF GitHub Bot commented on GEODE-7739: --- jdeppe-pivotal commented on a change in pull request #5778: URL: https://github.com/apache/geode/pull/5778#discussion_r541439516 ## File path: geode-core/src/main/java/org/apache/geode/management/internal/FederatingManager.java ## @@ -380,8 +384,10 @@ void addMemberArtifacts(InternalDistributedMember member) { return; } - try { + FederatingManagerCancelCriterion cancelCriterion = Review comment: I'm really not familiar with the usage of `CancelCriterion` so perhaps my understanding of what's required here is a bit naive... My understanding was simply that we didn't want to indefinitely block any threads `await`ing in either of the two listeners in question here. That situation would arise if something bad happened in the `FederatingManager` before it could get to calling `readyForEvents`. Hence the use of the `StoppableCountdownLatch`. Since what's calling into these listeners is a callback using an asynchronous thread, I don't understand why it is the responsibility of these listeners to go through all of this ceremony to tell some random component that the cache is closing. Surely that component should have its own means of determining that the cache is closing? Why is it not enough for the thread to be released and throw an exception? This is an automated message from the Apache Git Service. To respond to the message, please log on to 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 > JMX managers may fail to federate mbeans for other members > -- > > Key: GEODE-7739 > URL: https://issues.apache.org/jira/browse/GEODE-7739 > Project: Geode > Issue Type: Bug > Components: jmx >Reporter: Kirk Lund >Assignee: Kirk Lund >Priority: Major > Labels: GeodeOperationAPI, pull-request-available > Time Spent: 20m > Remaining Estimate: 0h > > JMX Manager may fail to federate one or more MXBeans for other members > because of a race condition during startup. When ManagementCacheListener is > first constructed, it is in a state that will ignore all callbacks because > the field readyForEvents is false. > > Debugging with JMXMBeanReconnectDUnitTest revealed this bug. > The test starts two locators with jmx manager configured and started. > Locator1 always has all of locator2's mbeans, but locator2 is intermittently > missing the personal mbeans of locator1. > I think this is caused by some sort of race condition in the code that > creates the monitoring regions for other members in locator2. > It's possible that the jmx manager that hits this bug might fail to have > mbeans for servers as well as other locators but I haven't seen a test case > for this scenario. > The exposure of this bug means that a user running more than one locator > might have a locator that is missing one or more mbeans for the cluster. > > Studying the JMX code also reveals the existence of *GEODE-8012*. -- This message was sent by Atlassian Jira (v8.3.4#803005)