[jira] [Commented] (GEODE-9319) CI failure: session.NativeRedisSessionExpirationAcceptanceTest > classMethod FAILED

2021-07-30 Thread Geode Integration (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-9319?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17390824#comment-17390824
 ] 

Geode Integration commented on GEODE-9319:
--

Seen in [acceptance-test-openjdk11 
#106|https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-main/jobs/acceptance-test-openjdk11/builds/106]
 ... see [test 
results|http://files.apachegeode-ci.info/builds/apache-develop-main/1.15.0-build.0390/test-results/acceptanceTest/1627614093/]
 or download 
[artifacts|http://files.apachegeode-ci.info/builds/apache-develop-main/1.15.0-build.0390/test-artifacts/1627614093/acceptancetestfiles-openjdk11-1.15.0-build.0390.tgz].

> CI failure: session.NativeRedisSessionExpirationAcceptanceTest > classMethod 
> FAILED
> ---
>
> Key: GEODE-9319
> URL: https://issues.apache.org/jira/browse/GEODE-9319
> Project: Geode
>  Issue Type: Bug
>  Components: redis
>Reporter: Jens Deppe
>Priority: Major
>
> {noformat}
> session.NativeRedisSessionExpirationAcceptanceTest > classMethod FAILED
> 14:17:23java.lang.AssertionError: Suspicious strings were written to the 
> log during this run.
> 14:17:23Fix the strings or use IgnoredException.addIgnoredException to 
> ignore.
> 14:17:23
> ---
> 14:17:23Found suspect string in 'dunit_suspect-local.log' at line 287
> 14:17:23
> 14:17:23[error 2021/05/26 21:17:10.762 UTC  tid=92] 
> Failed to return response on inboundChannel
> 14:17:23io.netty.channel.StacklessClosedChannelException
> 14:17:23  at 
> io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, 
> ChannelPromise)(Unknown Source)
> 14:17:23at org.junit.Assert.fail(Assert.java:89)
> 14:17:23at 
> org.apache.geode.test.dunit.internal.DUnitLauncher.closeAndCheckForSuspects(DUnitLauncher.java:409)
> 14:17:23at 
> org.apache.geode.test.dunit.rules.ClusterStartupRule.after(ClusterStartupRule.java:185)
> 14:17:23at 
> org.apache.geode.test.dunit.rules.ClusterStartupRule.access$100(ClusterStartupRule.java:69)
> 14:17:23at 
> org.apache.geode.test.dunit.rules.ClusterStartupRule$1.evaluate(ClusterStartupRule.java:140)
> 14:17:23at org.junit.rules.RunRules.evaluate(RunRules.java:20)
> 14:17:23at 
> org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
> 14:17:23at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
> 14:17:23at 
> org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:110)
> 14:17:23at 
> org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
> 14:17:23at 
> org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38)
> 14:17:23at 
> org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
> 14:17:23at 
> org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)
> 14:17:23at 
> jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 14:17:23at 
> jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 14:17:23at 
> jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 14:17:23at java.lang.reflect.Method.invoke(Method.java:566)
> 14:17:23at 
> org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
> 14:17:23at 
> org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
> 14:17:23at 
> org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
> 14:17:23at 
> org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
> 14:17:23at com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
> 14:17:23at 
> org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:119)
> 14:17:23at 
> jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 14:17:23at 
> jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 14:17:23at 
> jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 14:17:23at java.lang.reflect.Method.invoke(Method.java:566)
> 14:17:23at 
> org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
> 14:17:23at 
> org.gradle.int

[jira] [Commented] (GEODE-9356) Create CI pipeline for net-core

2021-07-30 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-9356?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17390814#comment-17390814
 ] 

ASF GitHub Bot commented on GEODE-9356:
---

pivotal-jbarrett commented on a change in pull request #836:
URL: https://github.com/apache/geode-native/pull/836#discussion_r680258035



##
File path: netcore/CMakeLists.txt
##
@@ -22,4 +22,7 @@ find_program(DOTNET dotnet)
 if(DOTNET AND INCLUDE_DOTNET)
   add_custom_target(netcore ALL COMMAND ${DOTNET} build --configuration 
$ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/NetCore VERBATIM)
   add_custom_target(netcore-test ALL COMMAND ${DOTNET} build --configuration 
$ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/NetCore.Test DEPENDS 
netcore VERBATIM)
+
+
+  install(FILES 
${CMAKE_CURRENT_SOURCE_DIR}/NetCore/bin/$/netcoreapp3.1/Apache.Geode.Netcore.dll
 DESTINATION netcore/$)

Review comment:
   Pretty hard to confuse the two since both compile time and runtime would 
fail. It seems common in the .NET space to have the assemblies and base package 
names consistent and to distinguish different versions of the platform by 
directory name. 




-- 
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.

To unsubscribe, e-mail: notifications-unsubscr...@geode.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Create CI pipeline for net-core
> ---
>
> Key: GEODE-9356
> URL: https://issues.apache.org/jira/browse/GEODE-9356
> Project: Geode
>  Issue Type: Task
>  Components: native client
>Reporter: Ernest Burghardt
>Priority: Major
>  Labels: pull-request-available
>
> This pipeline will be hosted on the Apache publicly available Concourse and 
> publish to NuGet



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Closed] (GEODE-9156) Switch from docker-compose to testcontainers

2021-07-30 Thread Dick Cavender (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-9156?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dick Cavender closed GEODE-9156.


> Switch from docker-compose to testcontainers
> 
>
> Key: GEODE-9156
> URL: https://issues.apache.org/jira/browse/GEODE-9156
> Project: Geode
>  Issue Type: Task
>  Components: membership
>Reporter: Ernest Burghardt
>Assignee: Jens Deppe
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.12.4, 1.13.4, 1.14.0, 1.15.0
>
>
> Palantir docker-compose-rule is sunsetting this month.  Palantir advises 
> switching to testcontainers' docker compose integration. We already use 
> testcontainer...



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Closed] (GEODE-9346) When client received incorrect byte array of PdxType due to broken socket, it should be retried

2021-07-30 Thread Dick Cavender (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-9346?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dick Cavender closed GEODE-9346.


> When client received incorrect byte array of PdxType due to broken socket, it 
> should be retried 
> 
>
> Key: GEODE-9346
> URL: https://issues.apache.org/jira/browse/GEODE-9346
> Project: Geode
>  Issue Type: Bug
>Affects Versions: 1.12.2, 1.13.2, 1.14.0, 1.15.0
>Reporter: Xiaojian Zhou
>Assignee: Xiaojian Zhou
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.12.4, 1.13.4, 1.14.0, 1.15.0
>
>
> Client's query for PdxType will get a byte array in response message. The 
> byte array is the same at the server, but different query from different 
> client might receive wrong byte array and end up with 
> PdxSerializationException in scalability test with server HA. This could 
> caused by socket broken and bytes are not flushed. We expected such broken 
> socket scenario and prepared some retry lock. However, our retry logic did 
> not consider above scenario, i.e. the message header is correct, but the 
> embedded byte array for PdxType is wrong. 
> The solution is to retry in this case. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Closed] (GEODE-9180) Heartbeats Are Interrupted Inexplicably

2021-07-30 Thread Dick Cavender (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-9180?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dick Cavender closed GEODE-9180.


> Heartbeats Are Interrupted Inexplicably
> ---
>
> Key: GEODE-9180
> URL: https://issues.apache.org/jira/browse/GEODE-9180
> Project: Geode
>  Issue Type: Bug
>  Components: membership
>Reporter: Bill Burcham
>Assignee: Bill Burcham
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.12.4, 1.13.4, 1.14.0, 1.15.0
>
>
> Sometimes we see a member force-disconnected and we see a preceding gap in 
> the regular sequence of heartbeats generated by the member, but we can't 
> explain why there was a gap. The explanation we are searching for is usually 
> CPU saturation. We look for secondary evidence such as gaps in the regular 
> sequence of statistics e.g. StatSampler sampleCount. When we can't find such 
> secondary evidence, we can't, in good conscience, rule out bugs in the 
> heartbeat generation logic itself.
> The heartbeat generation logic consists mainly of a thread that loops 
> forever. Each time through the loop it sleeps for member-timeout / 
> logical-interval. By default that's 5s / 2 = 2.5s. When it wakes up it sends 
> unreliable UDP unicast messages to the coordinator and the two 
> non-coordinator members to its "left" (earlier) in the view. If that 
> heartbeat generation thread oversleeps or doesn't get adequate time slices 
> when it's awake then heartbeats will be delayed. There will be gaps in the 
> regular sequence.
> When this ticket is complete, a warning-level message will be logged if the 
> heartbeat generation thread (see {{GMSHealthMonitor.startHeartbeatThread()}}) 
> oversleeps by more than the sleep interval (member-timeout / 
> logical-interval), i.e. if it is asleep for more than 2 * (member-timeout / 
> logical-interval), the warning will be logged.
> h3. See Also
> {{HostStatSampler}} generates messages like this:
> {quote}Statistics sampling thread detected a wakeup delay of 14318 ms, 
> indicating a possible resource issue. Check the GC, memory, and CPU 
> statistics.{quote}
> (from {{checkElapsedSleepTime}})
> The current ticket is needed because the actual thread of interest for 
> heartbeat generation is the heartbeat-generation thread and sometimes it 
> oversleeps when the stat sampler thread does not.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Closed] (GEODE-9426) Update docs for HTTP Session Management

2021-07-30 Thread Dick Cavender (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-9426?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dick Cavender closed GEODE-9426.


> Update docs for HTTP Session Management
> ---
>
> Key: GEODE-9426
> URL: https://issues.apache.org/jira/browse/GEODE-9426
> Project: Geode
>  Issue Type: Bug
>  Components: docs
>Affects Versions: 1.13.3
>Reporter: Dave Barnes
>Assignee: Dave Barnes
>Priority: Major
>  Labels: blocks-1.14.0​, pull-request-available
> Fix For: 1.13.4, 1.14.0, 1.15.0
>
>
>  [From a community member] I suspect this affects many older versions ... but 
> I wanted to document what I saw as I attempted to follow the docs:
> This page has incorrect jar: 
> [https://geode.apache.org/docs/guide/113/tools_modules/http_session_mgmt/tomcat_installing_the_module.html]
>  
> {{"geode-commons jar" should be "geode-common jar" ... no "s"}}
> Also missing geode tcp server jar (geode-tcp-server)
> And is missing this step (copied here from geode-examples):
> {nofomat}
> $ cp $CATALINA_HOME/bin/tomcat-juli.jar $CATALINA_HOME/lib/
> App would not start with this in context.xml ... it was not there already ... 
> and when I added it, startup failed.
> Suggest working through both the geode-examples AND the official 
> documentation to verify correctness. [Example treated separately - see 
> GEODE-9430]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Closed] (GEODE-9141) Hang while shutting down a cache server due to corrupted message

2021-07-30 Thread Dick Cavender (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-9141?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dick Cavender closed GEODE-9141.


> Hang while shutting down a cache server due to corrupted message
> 
>
> Key: GEODE-9141
> URL: https://issues.apache.org/jira/browse/GEODE-9141
> Project: Geode
>  Issue Type: Bug
>  Components: membership, messaging
>Affects Versions: 1.13.2, 1.14.0, 1.15.0
>Reporter: Bruce J Schuchardt
>Assignee: Bill Burcham
>Priority: Major
>  Labels: blocks-1.14.0​, blocks-1.15.0​, pull-request-available
> Fix For: 1.12.4, 1.13.4, 1.14.0, 1.15.0
>
>
> We have a test that fails once in 5000 runs with a corrupted 
> DestroyRegionMessage.  It is always during CacheServer teardown when 
> destroying a HARegionQueue Region.
> {noformat}
> "vm_0_thr_0_bridge_1_1_host1_6920" #144 daemon prio=5 os_prio=0 
> tid=0x7fec70058800 nid=0x1d28 waiting on condition [0x7fec62063000]
>java.lang.Thread.State: TIMED_WAITING (parking)
>   at sun.misc.Unsafe.park(Native Method)
>   - parking to wait for  <0xf4f654f8> (a 
> java.util.concurrent.CountDownLatch$Sync)
>   at 
> java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
>   at 
> java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1037)
>   at 
> java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1328)
>   at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:277)
>   at 
> org.apache.geode.internal.util.concurrent.StoppableCountDownLatch.await(StoppableCountDownLatch.java:72)
>   at 
> org.apache.geode.distributed.internal.ReplyProcessor21.basicWait(ReplyProcessor21.java:723)
>   at 
> org.apache.geode.distributed.internal.ReplyProcessor21.waitForRepliesUninterruptibly(ReplyProcessor21.java:794)
>   at 
> org.apache.geode.distributed.internal.ReplyProcessor21.waitForRepliesUninterruptibly(ReplyProcessor21.java:771)
>   at 
> org.apache.geode.distributed.internal.ReplyProcessor21.waitForRepliesUninterruptibly(ReplyProcessor21.java:857)
>   at 
> org.apache.geode.internal.cache.DistributedCacheOperation.waitForAckIfNeeded(DistributedCacheOperation.java:779)
>   at 
> org.apache.geode.internal.cache.DistributedCacheOperation._distribute(DistributedCacheOperation.java:676)
>   at 
> org.apache.geode.internal.cache.DistributedCacheOperation.startOperation(DistributedCacheOperation.java:277)
>   at 
> org.apache.geode.internal.cache.DistributedCacheOperation.distribute(DistributedCacheOperation.java:318)
>   at 
> org.apache.geode.internal.cache.DistributedRegion.distributeDestroyRegion(DistributedRegion.java:1865)
>   at 
> org.apache.geode.internal.cache.DistributedRegion.basicDestroyRegion(DistributedRegion.java:1844)
>   at 
> org.apache.geode.internal.cache.LocalRegion.basicDestroyRegion(LocalRegion.java:6180)
>   at 
> org.apache.geode.internal.cache.HARegion.destroyRegion(HARegion.java:331)
>   at 
> org.apache.geode.internal.cache.AbstractRegion.destroyRegion(AbstractRegion.java:476)
>   at 
> org.apache.geode.internal.cache.ha.HARegionQueue.destroy(HARegionQueue.java:3438)
>   at 
> org.apache.geode.internal.cache.ha.HARegionQueue$BlockingHARegionQueue.destroy(HARegionQueue.java:2272)
>   at 
> org.apache.geode.internal.cache.tier.sockets.CacheClientProxy.destroyRQ(CacheClientProxy.java:1031)
>   at 
> org.apache.geode.internal.cache.tier.sockets.CacheClientProxy.terminateDispatching(CacheClientProxy.java:939)
>   at 
> org.apache.geode.internal.cache.tier.sockets.CacheClientNotifier.shutdown(CacheClientNotifier.java:1306)
>   - locked <0xf8022800> (a 
> org.apache.geode.internal.cache.tier.sockets.CacheClientNotifier)
>   at 
> org.apache.geode.internal.cache.tier.sockets.AcceptorImpl.close(AcceptorImpl.java:1630)
>   - locked <0xf5f7b888> (a java.lang.Object)
>   at 
> org.apache.geode.internal.cache.CacheServerImpl.stop(CacheServerImpl.java:491)
>   - locked <0xf7ef2980> (a 
> org.apache.geode.internal.cache.CacheServerImpl)
>   at 
> org.apache.geode.internal.cache.GemFireCacheImpl.stopServers(GemFireCacheImpl.java:2672)
>   at 
> org.apache.geode.internal.cache.GemFireCacheImpl.doClose(GemFireCacheImpl.java:2263)
>   - locked <0xf5a21a08> (a java.lang.Class for 
> org.apache.geode.internal.cache.GemFireCacheImpl)
>   at 
> org.apache.geode.internal.cache.GemFireCacheImpl.close(GemFireCacheImpl.java:2151)
>   at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.disconnect(InternalDistributedSystem.java:1559)
>   - locked <0xf5a21a08> (a java.

[jira] [Closed] (GEODE-9380) Replace sleep()s from Nio.SslEngine replace with yields

2021-07-30 Thread Dick Cavender (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-9380?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dick Cavender closed GEODE-9380.


> Replace sleep()s from Nio.SslEngine replace with yields
> ---
>
> Key: GEODE-9380
> URL: https://issues.apache.org/jira/browse/GEODE-9380
> Project: Geode
>  Issue Type: Improvement
>  Components: membership
>Reporter: Ernest Burghardt
>Assignee: Kamilla Aslami
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.12.4, 1.13.4, 1.14.0, 1.15.0
>
>
> We noticed a 4-5x increase in the worst-case P2P send latency (most notably 
> sendReplication) in 1.12 vs 1.8. Further analysis showed that the increase in 
> sendReplicationTime is related to how long it takes to create the sender 
> connection. More specifically, all the time spent creating the sender is in 
> the handshake. Experiments with various sleep durations in 
> NioSslEngine.handshake() method showed that this issue can be fixed by 
> replacing both sleeps handshake() method with Thread.yield() calls.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Closed] (GEODE-8657) Increase acceptance test timeout

2021-07-30 Thread Dick Cavender (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-8657?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dick Cavender closed GEODE-8657.


> Increase acceptance test timeout
> 
>
> Key: GEODE-8657
> URL: https://issues.apache.org/jira/browse/GEODE-8657
> Project: Geode
>  Issue Type: Bug
>  Components: redis, tests
>Reporter: Sarah Abbey
>Assignee: Sarah Abbey
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.12.4, 1.13.4, 1.14.0
>
>
> https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-main/jobs/AcceptanceTestOpenJDK11/builds/541
> Looking at the above failure, it does not seem like any of the tests hung.  
> All tests were executed and completed in some fashion (either successfully or 
> they were skipped).  Acceptance tests have 1hr 30min to execute, but it seems 
> this is not long enough due to a greater number of acceptance tests. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Closed] (GEODE-9430) Update Geode Session Management example

2021-07-30 Thread Dick Cavender (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-9430?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dick Cavender closed GEODE-9430.


> Update Geode Session Management example
> ---
>
> Key: GEODE-9430
> URL: https://issues.apache.org/jira/browse/GEODE-9430
> Project: Geode
>  Issue Type: Bug
>  Components: examples
>Reporter: Dave Barnes
>Assignee: Dave Barnes
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.13.4, 1.14.0, 1.15.0
>
>
> Issue GEODE-9426 included issues related to the user guide and a related 
> example. This tracks the fact that example needs updating.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Closed] (GEODE-9386) google-windows-geode-builder image doesn't properly delete geode directory after dependency caching

2021-07-30 Thread Dick Cavender (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-9386?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dick Cavender closed GEODE-9386.


> google-windows-geode-builder image doesn't properly delete geode directory 
> after dependency caching
> ---
>
> Key: GEODE-9386
> URL: https://issues.apache.org/jira/browse/GEODE-9386
> Project: Geode
>  Issue Type: Bug
>  Components: ci
>Affects Versions: 1.15.0
>Reporter: Sean Goller
>Assignee: Sean Goller
>Priority: Minor
>  Labels: pull-request-available
> Fix For: 1.12.4, 1.13.4, 1.14.0, 1.15.0
>
>




--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-9463) Default serialization filter rejects SerializableRegionRedundancyStatusImpl

2021-07-30 Thread Dan Smith (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-9463?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17390803#comment-17390803
 ] 

Dan Smith commented on GEODE-9463:
--

Eric and I tracked this down. This restore redundancy operation has had this 
problem since it was added in 1.13. The problem is that this 
SerializableRegionRedundancyStatusImpl is nested inside of an OperationState. 
OperationState is java serializable *only*  - it is not 
DataSerializableFixedID. Because OperationState is java serializable, anything 
nested inside it is also uses java serialization.

Someone added OperationState to the sanctioned-geode-core-serializables.txt. 
That is why we don't see a failure for that class.

We really should not ever use java serialization in the product. Unfortunately 
because we have already released this code with java serialization, we may have 
to simply add SerializableRegionRedundancyStatusImpl to the 
sanctioned-geode-core-serializables.txt.

There is a test to reproduce this issue here - 
https://github.com/upthewaterspout/geode/pull/new/feature/restore-serializable-filter-block-GEODE-9463
 

> Default serialization filter rejects SerializableRegionRedundancyStatusImpl
> ---
>
> Key: GEODE-9463
> URL: https://issues.apache.org/jira/browse/GEODE-9463
> Project: Geode
>  Issue Type: Bug
>  Components: serialization
>Affects Versions: 1.13.0, 1.14.0
>Reporter: Aaron Lindsey
>Assignee: Eric Shu
>Priority: Major
>  Labels: GeodeOperationAPI, blocks-1.14.0​
> Attachments: logs-1.tgz, logs-2.tgz
>
>
> When validate-serializable-objects=true, there are exceptions in the logs 
> related to serializing the class SerializableRegionRedundancyStatusImpl. This 
> is an internal class which should be allowed by the default serializable 
> object filter.
> We saw this issue happen on Kubernetes while invoking rebalance and restore 
> redundancy operations on the cluster. I attached logs from 2 separate test 
> failures due to this issue.
> {code:java}
> [fatal 2021/07/22 00:14:31.392 GMT system-test-gemfire-locator-1 
>  tid=0x51] Serialization filter is rejecting class 
> org.apache.geode.internal.cache.control.SerializableRegionRedundancyStatusImpljava.lang.Exception:
>  at 
> org.apache.geode.internal.ObjectInputStreamFilterWrapper.lambda$createSerializationFilter$0(ObjectInputStreamFilterWrapper.java:234)
> at com.sun.proxy.$Proxy23.checkInput(Unknown Source)at 
> java.base/java.io.ObjectInputStream.filterCheck(ObjectInputStream.java:1336)  
>   at 
> java.base/java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:2005)
> at 
> java.base/java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1862)
> at 
> java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2169)
> at 
> java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1679)  
>   at 
> java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:493)
> at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:451) 
>at java.base/java.util.HashMap.readObject(HashMap.java:1460)at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
> Method)at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.base/java.lang.reflect.Method.invoke(Method.java:566)at 
> java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1175)
> at 
> java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2325)
> at 
> java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2196)
> at 
> java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1679)  
>   at 
> java.base/java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2464)
> at 
> java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2358)
> at 
> java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2196)
> at 
> java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1679)  
>   at 
> java.base/java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2464)
> at 
> java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2358)
> at 
> java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2196)
> at 
> java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1679)  
>   at 
> java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:493)
> at java.base/java.io.ObjectInputStre

[jira] [Updated] (GEODE-9483) StartLocatorCommandIntegrationTest creates unnecessary processes and leaves them running

2021-07-30 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-9483?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated GEODE-9483:
--
Labels: pull-request-available  (was: )

> StartLocatorCommandIntegrationTest creates unnecessary processes and leaves 
> them running
> 
>
> Key: GEODE-9483
> URL: https://issues.apache.org/jira/browse/GEODE-9483
> Project: Geode
>  Issue Type: Test
>  Components: tests
>Reporter: Dale Emery
>Assignee: Dale Emery
>Priority: Major
>  Labels: pull-request-available
>
> Two of the tests in {{StartLocatorCommandIntegrationTest}} launch a locator 
> process that binds to the default HTTP service port (7070). Tests should not 
> use the default port for any service.
> Neither test actually needs the launched locator for any purpose. Neither 
> test makes a single assertion about the locator. When the tests exit, they 
> leave the locator running. In fact, the locator typically finishes launching 
> well after the tests have all exited.
> Rather than fix the port assignment, we should instead change the tests so 
> that they do not actually launch a locator. Two of the tests in this class 
> already do this.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (GEODE-9483) StartLocatorCommandIntegrationTest creates unnecessary processes and leaves them running

2021-07-30 Thread Dale Emery (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-9483?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dale Emery reassigned GEODE-9483:
-

Assignee: Dale Emery

> StartLocatorCommandIntegrationTest creates unnecessary processes and leaves 
> them running
> 
>
> Key: GEODE-9483
> URL: https://issues.apache.org/jira/browse/GEODE-9483
> Project: Geode
>  Issue Type: Test
>  Components: tests
>Reporter: Dale Emery
>Assignee: Dale Emery
>Priority: Major
>
> Two of the tests in {{StartLocatorCommandIntegrationTest}} launch a locator 
> process that binds to the default HTTP service port (7070). Tests should not 
> use the default port for any service.
> Neither test actually needs the launched locator for any purpose. Neither 
> test makes a single assertion about the locator. When the tests exit, they 
> leave the locator running. In fact, the locator typically finishes launching 
> well after the tests have all exited.
> Rather than fix the port assignment, we should instead change the tests so 
> that they do not actually launch a locator. Two of the tests in this class 
> already do this.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (GEODE-9483) StartLocatorCommandIntegrationTest creates unnecessary processes and leaves them running

2021-07-30 Thread Dale Emery (Jira)
Dale Emery created GEODE-9483:
-

 Summary: StartLocatorCommandIntegrationTest creates unnecessary 
processes and leaves them running
 Key: GEODE-9483
 URL: https://issues.apache.org/jira/browse/GEODE-9483
 Project: Geode
  Issue Type: Test
  Components: tests
Reporter: Dale Emery


Two of the tests in {{StartLocatorCommandIntegrationTest}} launch a locator 
process that binds to the default HTTP service port (7070). Tests should not 
use the default port for any service.

Neither test actually needs the launched locator for any purpose. Neither test 
makes a single assertion about the locator. When the tests exit, they leave the 
locator running. In fact, the locator typically finishes launching well after 
the tests have all exited.

Rather than fix the port assignment, we should instead change the tests so that 
they do not actually launch a locator. Two of the tests in this class already 
do this.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Resolved] (GEODE-8772) Make tests assign necessary ports in test JVM [PERMANENT]

2021-07-30 Thread Dale Emery (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-8772?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dale Emery resolved GEODE-8772.
---
Fix Version/s: 1.15.0
   Resolution: Fixed

There may be additional tests that do not assign their ports explicitly, but 
the number is small enough that those tests can be addressed on individual 
tickets.

> Make tests assign necessary ports in test JVM [PERMANENT]
> -
>
> Key: GEODE-8772
> URL: https://issues.apache.org/jira/browse/GEODE-8772
> Project: Geode
>  Issue Type: Test
>  Components: tests
>Affects Versions: 1.14.0
>Reporter: Dale Emery
>Assignee: Dale Emery
>Priority: Major
>  Labels: GeodeOperationAPI, pull-request-available
> Fix For: 1.15.0
>
>
> *Make tests assign all necessary ports.* Many distributed tests and upgrade 
> tests (and sometimes others) launch members with default ports, especially 
> for JMX (1099) and HTTP service (7070). When run in parallel outside of 
> docker, these tests often fail because the default port is already in use in 
> another test.
> Except when specifically testing the product's use of the defaults, every 
> test should assign ports from a pool of ports known to be available. For many 
> tests, we can accomplish this by changing the test framework to assign 
> available ports. Other tests may require changes in the test code.
> *Assign ports only in test JVMs, and not in child VMs.* The 
> {{AvailablePortHelper}} class occasionally gains new features to improve its 
> assignment of ports when tests run in parallel. For these improvements to 
> work, each test must use the latest {{AvailablePortHelper}} implementation 
> for all port assignments. Child VMs that run older versions of Geode may not 
> include the latest implementation of {{AvailablePortHelper}}. For this 
> reason, tests should invoke {{AvailablePortHelper}} only in the test JVM and 
> not in child VMs.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Resolved] (GEODE-8728) Configure Gradle to run parallel tests in isolation without Docker [PERMANENT]

2021-07-30 Thread Dale Emery (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-8728?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dale Emery resolved GEODE-8728.
---
Fix Version/s: 1.15.0
   Resolution: Fixed

> Configure Gradle to run parallel tests in isolation without Docker [PERMANENT]
> --
>
> Key: GEODE-8728
> URL: https://issues.apache.org/jira/browse/GEODE-8728
> Project: Geode
>  Issue Type: Test
>  Components: tests
>Affects Versions: 1.14.0
>Reporter: Dale Emery
>Assignee: Dale Emery
>Priority: Major
>  Labels: GeodeOperationAPI, pull-request-available
> Fix For: 1.15.0
>
>
> For tests to behave well when run in parallel, each must refrain from using 
> ports and test files that are in use by other tests.
> Geode's Gradle build isolates concurrently executing tests by running each 
> test class in a Docker container. To do this, the build applies an open 
> source "Gradle Dockerized Test" plugin that is obsolete and appears to be 
> unmaintained.
> This ticket removes the obsolete plugin and replaces it with a small amount 
> of custom Gradle code and a few minor changes to Geode:
>  - Configure Gradle to assign each concurrently executing test JVM a unique 
> working directory and a distinct range of ports.
>  - Change Geode's "available port" feature to allocate ports only from the 
> ranges assigned by Gradle.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Resolved] (GEODE-9462) Dump call stacks from both Dockerized and non-Dockerized java processes

2021-07-30 Thread Dale Emery (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-9462?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dale Emery resolved GEODE-9462.
---
Fix Version/s: 1.15.0
   Resolution: Fixed

> Dump call stacks from both Dockerized and non-Dockerized java processes
> ---
>
> Key: GEODE-9462
> URL: https://issues.apache.org/jira/browse/GEODE-9462
> Project: Geode
>  Issue Type: Improvement
>  Components: build
>Reporter: Dale Emery
>Assignee: Dale Emery
>Priority: Major
>  Labels: GeodeOperationAPI, pull-request-available
> Fix For: 1.15.0
>
>
> Currently, {{ci/scripts/capture-call-stacks.sh}} assumes that if 
> {{PARALLEL_DUNIT}} is empty, tests were run in plain Java processes, and if 
> it is non-empty, tests were run in Docker containers.
> GEODE-8728 violates that assumption: It runs parallel tests in plain Java 
> processes, without Docker containers.
> Currently, the script looks in different places for Java processes, depending 
> on whether {{PARALLEL_DUNIT}} is empty. If it is empty, the script dumps 
> stacks from plain Java processes on the machine, and only those processes. If 
> it is non-empty, the script dumps stacks from Java processes running inside 
> Docker containers, and only those processes.
> This will not work in builds that include GEODE-8728.
> To allow the script to work both for newer builds that include GEODE-8728 and 
> older builds that do not, change it to dump call stacks from both places, 
> regardless of whether `PARALLEL_DUNIT` is empty. If `jps` reports any 
> processes, dump their stacks. And if `docker ps` reports any containers, dump 
> the stacks of the Java processes in each container.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-9356) Create CI pipeline for net-core

2021-07-30 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-9356?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17390768#comment-17390768
 ] 

ASF GitHub Bot commented on GEODE-9356:
---

echobravopapa commented on a change in pull request #836:
URL: https://github.com/apache/geode-native/pull/836#discussion_r680189681



##
File path: netcore/CMakeLists.txt
##
@@ -22,4 +22,7 @@ find_program(DOTNET dotnet)
 if(DOTNET AND INCLUDE_DOTNET)
   add_custom_target(netcore ALL COMMAND ${DOTNET} build --configuration 
$ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/NetCore VERBATIM)
   add_custom_target(netcore-test ALL COMMAND ${DOTNET} build --configuration 
$ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/NetCore.Test DEPENDS 
netcore VERBATIM)
+
+
+  install(FILES 
${CMAKE_CURRENT_SOURCE_DIR}/NetCore/bin/$/netcoreapp3.1/Apache.Geode.Netcore.dll
 DESTINATION netcore/$)

Review comment:
   This is true; its a bit verbose, but does ensure no one will confuse the 
two .Net libraries... 
   any suggestions on the naming?
   `Apache.Geode.Platinum.dll`
   `Apache.Geode.Modern.dll` 
   




-- 
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.

To unsubscribe, e-mail: notifications-unsubscr...@geode.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Create CI pipeline for net-core
> ---
>
> Key: GEODE-9356
> URL: https://issues.apache.org/jira/browse/GEODE-9356
> Project: Geode
>  Issue Type: Task
>  Components: native client
>Reporter: Ernest Burghardt
>Priority: Major
>  Labels: pull-request-available
>
> This pipeline will be hosted on the Apache publicly available Concourse and 
> publish to NuGet



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (GEODE-9389) Implement ZREVRANGEBYLEX Command

2021-07-30 Thread Donal Evans (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-9389?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Donal Evans reassigned GEODE-9389:
--

Assignee: Donal Evans

> Implement ZREVRANGEBYLEX Command
> 
>
> Key: GEODE-9389
> URL: https://issues.apache.org/jira/browse/GEODE-9389
> Project: Geode
>  Issue Type: New Feature
>  Components: redis
>Affects Versions: 1.15.0
>Reporter: Wayne
>Assignee: Donal Evans
>Priority: Major
>  Labels: redis
>
> Implement the [ZREVRANGEBYLEX|https://redis.io/commands/zrevrangebylex] 
> command without the LIMIT option.
>  
> +Acceptance Criteria+
> The ZREVRANGEBYLEX command has been implemented along with appropriate unit 
> tests.
> The  command has been added to the AbstractHitsMissesIntegrationTest.  The 
> command has been tested using the redis-cli tool.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-9452) The older version client should receive the AuthenticationRequiredException when authentication expires

2021-07-30 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-9452?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17390761#comment-17390761
 ] 

ASF subversion and git services commented on GEODE-9452:


Commit 340e8c627ea45f06e5edaebe823b3692de8544c3 in geode's branch 
refs/heads/expireAuthentication from Jinmei Liao
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=340e8c6 ]

GEODE-9456, GEODE-9452: Authentication Expiration (#6721)

* Add tests and throw AuthenticationExpiredException
Co-authored-by: Joris Melchior 

> The older version client should receive the AuthenticationRequiredException 
> when authentication expires
> ---
>
> Key: GEODE-9452
> URL: https://issues.apache.org/jira/browse/GEODE-9452
> Project: Geode
>  Issue Type: Sub-task
>  Components: core, security
>Reporter: Jinmei Liao
>Priority: Major
>  Labels: GeodeOperationAPI
>
> Currently, for older client, it's receiving a ClassNotFoundException, we need 
> to add the serialization code to convert the AuthenticationExpiredException 
> into this old exception type that the older clients can understand.
>  
> Note: when converting the exception, if we have the message to match what the 
> older client expects, it can do re-authentication automatically, but we lost 
> the original message that server has thrown. (Need to consult the PM on what 
> kind of behavior they want).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-9456) Create AuthenticationExpiredException and have the client handle that exception for re-authentication

2021-07-30 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-9456?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17390760#comment-17390760
 ] 

ASF subversion and git services commented on GEODE-9456:


Commit 340e8c627ea45f06e5edaebe823b3692de8544c3 in geode's branch 
refs/heads/expireAuthentication from Jinmei Liao
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=340e8c6 ]

GEODE-9456, GEODE-9452: Authentication Expiration (#6721)

* Add tests and throw AuthenticationExpiredException
Co-authored-by: Joris Melchior 

> Create AuthenticationExpiredException and have the client handle that 
> exception for re-authentication
> -
>
> Key: GEODE-9456
> URL: https://issues.apache.org/jira/browse/GEODE-9456
> Project: Geode
>  Issue Type: Sub-task
>  Components: core, security
>Reporter: Jinmei Liao
>Priority: Major
>  Labels: GeodeOperationAPI, pull-request-available
>
> Create AuthenticationExpiredException and have the client handle that 
> exception for re-authentication
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-9359) add net-core-session to geode-native

2021-07-30 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-9359?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17390749#comment-17390749
 ] 

ASF GitHub Bot commented on GEODE-9359:
---

pivotal-jbarrett commented on a change in pull request #834:
URL: https://github.com/apache/geode-native/pull/834#discussion_r680154554



##
File path: netcore/NetCore.Session/NetCoreSessionState.cs
##
@@ -0,0 +1,299 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+using Apache.Geode.Client;
+using Microsoft.Extensions.Caching.Distributed;
+using Microsoft.Extensions.Logging;
+using Microsoft.Extensions.Options;
+using System;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace Apache.Geode.Session {
+  public class GeodeSessionStateValue {
+public GeodeSessionStateValue() {}
+public GeodeSessionStateValue(byte[] value) {
+  FromByteArray(value);
+}
+
+public byte[] Value { get; set; }
+public DateTime LastAccessTimeUtc { get; set; }
+public DateTime ExpirationTimeUtc { get; set; } = DateTime.MinValue;
+public TimeSpan SpanUntilStale { get; set; } = TimeSpan.Zero;
+
+public byte[] ToByteArray() {
+  int neededBytes = 3 * sizeof(long) + Value.Length;
+  byte[] byteArray = new byte[neededBytes];
+  int byteIndex = 0;
+
+  Array.Copy(BitConverter.GetBytes(LastAccessTimeUtc.Ticks), 0, byteArray, 
byteIndex,
+ sizeof(long));
+  byteIndex += sizeof(long);
+
+  Array.Copy(BitConverter.GetBytes(ExpirationTimeUtc.Ticks), 0, byteArray, 
byteIndex,
+ sizeof(long));
+  byteIndex += sizeof(long);
+
+  Array.Copy(BitConverter.GetBytes(SpanUntilStale.Ticks), 0, byteArray, 
byteIndex,
+ sizeof(long));
+  byteIndex += sizeof(long);
+
+  Array.Copy(Value, 0, byteArray, byteIndex, Value.Length);
+  return byteArray;
+}
+
+public void FromByteArray(byte[] data) {
+  int byteIndex = 0;
+
+  LastAccessTimeUtc = DateTime.FromBinary(BitConverter.ToInt64(data, 
byteIndex));
+  byteIndex += sizeof(long);
+
+  ExpirationTimeUtc = DateTime.FromBinary(BitConverter.ToInt64(data, 
byteIndex));
+  byteIndex += sizeof(long);
+
+  SpanUntilStale = TimeSpan.FromTicks(BitConverter.ToInt64(data, 
byteIndex));
+  byteIndex += sizeof(long);
+
+  Value = new byte[data.Length - byteIndex];
+  Array.Copy(data, byteIndex, Value, 0, data.Length - byteIndex);
+}
+  }
+
+  public class GeodeSessionStateCache : GeodeNativeObject, IDistributedCache {
+private readonly IGeodeCache _cache;
+private ILogger _logger;
+private static Region _region;
+private string _logLevel;
+private string _logFile;
+private string _regionName;
+private readonly SemaphoreSlim _connectLock = new 
SemaphoreSlim(initialCount: 1, maxCount: 1);
+
+public GeodeSessionStateCache(IOptions 
optionsAccessor) {
+  var host = optionsAccessor.Value.Host;
+  var port = optionsAccessor.Value.Port;
+  _regionName = optionsAccessor.Value.RegionName;
+  _logLevel = optionsAccessor.Value.LogLevel;
+  _logFile = optionsAccessor.Value.LogFile;
+
+  _cache = CacheFactory.Create()
+   .SetProperty("log-level", _logLevel)
+   .SetProperty("log-file", _logFile)
+   .CreateCache();
+
+  _cache.PoolManager.CreatePoolFactory().AddLocator(host, 
port).CreatePool("pool");
+
+  var regionFactory = _cache.CreateRegionFactory(RegionShortcut.Proxy);
+  _region = regionFactory.CreateRegion(_regionName);
+}
+
+// Returns the SessionStateValue for key, or null if key doesn't exist
+public GeodeSessionStateValue GetValueForKey(string key) {
+  var cacheValue = _region.GetByteArray(key);
+
+  if (cacheValue != null) {
+return new GeodeSessionStateValue(cacheValue);
+  } else
+return null;
+}
+
+public byte[] Get(string key) {
+  if (key == null) {
+throw new ArgumentNullException(nameof(key));
+  }
+
+  Connect();
+
+  // Check for nonexistent key
+  GeodeSessionStateValue ssValue = GetValueForKey(key);


[jira] [Commented] (GEODE-9359) add net-core-session to geode-native

2021-07-30 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-9359?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17390746#comment-17390746
 ] 

ASF GitHub Bot commented on GEODE-9359:
---

mmartell commented on pull request #834:
URL: https://github.com/apache/geode-native/pull/834#issuecomment-890080462


   Last commit is to remove the examples/dotnetcore directory, which was added 
by accident.


-- 
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.

To unsubscribe, e-mail: notifications-unsubscr...@geode.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> add net-core-session to geode-native
> 
>
> Key: GEODE-9359
> URL: https://issues.apache.org/jira/browse/GEODE-9359
> Project: Geode
>  Issue Type: New Feature
>  Components: native client
>Reporter: Ernest Burghardt
>Priority: Major
>  Labels: pull-request-available
>
> net-core-session shall be added to the top level of geode-native repo and 
> will produce a separate binary that will be publishable to NuGet
> https://docs.microsoft.com/en-us/nuget/create-packages/package-authoring-best-practices



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-9359) add net-core-session to geode-native

2021-07-30 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-9359?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17390735#comment-17390735
 ] 

ASF GitHub Bot commented on GEODE-9359:
---

mmartell commented on a change in pull request #834:
URL: https://github.com/apache/geode-native/pull/834#discussion_r680142566



##
File path: 
netcore/NetCore.Session.IntegrationTests/SessionStateIntegrationTests.cs
##
@@ -0,0 +1,176 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+using System;
+using System.Text;
+using Xunit;
+using Apache.Geode.Client;
+using System.Linq;
+using Microsoft.Extensions.Caching.Distributed;
+using System.Threading.Tasks;
+
+namespace Apache.Geode.Session.IntegrationTests {
+  public class SessionStateIntegrationTests {
+private static string _regionName = "exampleRegion";
+
+[Fact]
+public void SetGet() {
+  var ssCacheOptions = new GeodeSessionStateCacheOptions();
+  ssCacheOptions.Host = "localhost";
+  ssCacheOptions.Port = 10334;
+  ssCacheOptions.RegionName = "exampleRegion";
+
+  using var ssCache = new GeodeSessionStateCache(ssCacheOptions);
+
+  var options = new DistributedCacheEntryOptions();
+  DateTime localTime = DateTime.Now.AddDays(1);
+  DateTimeOffset dateAndOffset =
+  new DateTimeOffset(localTime, 
TimeZoneInfo.Local.GetUtcOffset(localTime));
+  options.AbsoluteExpiration = dateAndOffset;
+  var testValue = new byte[] { 1, 2, 3, 4, 5 };
+  ssCache.Set("testKey", testValue, options);
+  byte[] value = ssCache.Get("testKey");

Review comment:
   Good catch. 




-- 
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.

To unsubscribe, e-mail: notifications-unsubscr...@geode.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> add net-core-session to geode-native
> 
>
> Key: GEODE-9359
> URL: https://issues.apache.org/jira/browse/GEODE-9359
> Project: Geode
>  Issue Type: New Feature
>  Components: native client
>Reporter: Ernest Burghardt
>Priority: Major
>  Labels: pull-request-available
>
> net-core-session shall be added to the top level of geode-native repo and 
> will produce a separate binary that will be publishable to NuGet
> https://docs.microsoft.com/en-us/nuget/create-packages/package-authoring-best-practices



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (GEODE-9480) KnownVersions class has 1.13.1 listed as the version for ordinal 121, but it should be 1.13.2

2021-07-30 Thread Owen Nichols (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-9480?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Owen Nichols updated GEODE-9480:

Labels: blocks-1.14.0​ pull-request-available  (was: pull-request-available)

> KnownVersions class has 1.13.1 listed as the version for ordinal 121, but it 
> should be 1.13.2
> -
>
> Key: GEODE-9480
> URL: https://issues.apache.org/jira/browse/GEODE-9480
> Project: Geode
>  Issue Type: Bug
>  Components: core
>Reporter: Dan Smith
>Assignee: Dan Smith
>Priority: Major
>  Labels: blocks-1.14.0​, pull-request-available
>
> KnownVersion.java on develop and Version.java in the support/1.13 branch have 
> 1.13.1 listed as the version in which the protocol ordinal changed to 121. 
> However, 1.13.1 doesn't actually use that ordinal, it reports itself as using 
> protocol ordinal 120 (the same as 1.13.0).
> This file should be changed to indicate that 1.13.2 is actually the version 
> in which the protocol changed.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-9359) add net-core-session to geode-native

2021-07-30 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-9359?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17390732#comment-17390732
 ] 

ASF GitHub Bot commented on GEODE-9359:
---

mmartell commented on a change in pull request #834:
URL: https://github.com/apache/geode-native/pull/834#discussion_r680137332



##
File path: 
netcore/NetCore.Session.IntegrationTests/NetCore.Session.IntegrationTests.csproj
##
@@ -0,0 +1,26 @@
+
+
+  
+netcoreapp3.1
+
+false
+
+x64
+  
+
+  
+   
+   
+

Review comment:
   Not sure how that private assets got set. Removed.




-- 
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.

To unsubscribe, e-mail: notifications-unsubscr...@geode.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> add net-core-session to geode-native
> 
>
> Key: GEODE-9359
> URL: https://issues.apache.org/jira/browse/GEODE-9359
> Project: Geode
>  Issue Type: New Feature
>  Components: native client
>Reporter: Ernest Burghardt
>Priority: Major
>  Labels: pull-request-available
>
> net-core-session shall be added to the top level of geode-native repo and 
> will produce a separate binary that will be publishable to NuGet
> https://docs.microsoft.com/en-us/nuget/create-packages/package-authoring-best-practices



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-9359) add net-core-session to geode-native

2021-07-30 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-9359?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17390707#comment-17390707
 ] 

ASF GitHub Bot commented on GEODE-9359:
---

pivotal-jbarrett commented on a change in pull request #834:
URL: https://github.com/apache/geode-native/pull/834#discussion_r680108376



##
File path: 
netcore/NetCore.Session.IntegrationTests/NetCore.Session.IntegrationTests.csproj
##
@@ -0,0 +1,26 @@
+
+
+  
+netcoreapp3.1
+
+false
+
+x64
+  
+
+  
+   
+   
+

Review comment:
   Spacing is not consistent.

##
File path: 
netcore/NetCore.Session.IntegrationTests/NetCore.Session.IntegrationTests.csproj
##
@@ -0,0 +1,26 @@
+
+
+  
+netcoreapp3.1
+
+false
+
+x64
+  
+
+  
+
+
+
+  all

Review comment:
   You have this one specifically tagged with this `PrivateAssets` tag but 
none of the others.

##
File path: 
netcore/NetCore.Session.IntegrationTests/SessionStateIntegrationTests.cs
##
@@ -0,0 +1,176 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+using System;
+using System.Text;
+using Xunit;
+using Apache.Geode.Client;
+using System.Linq;
+using Microsoft.Extensions.Caching.Distributed;
+using System.Threading.Tasks;
+
+namespace Apache.Geode.Session.IntegrationTests {
+  public class SessionStateIntegrationTests {
+private static string _regionName = "exampleRegion";
+
+[Fact]
+public void SetGet() {
+  var ssCacheOptions = new GeodeSessionStateCacheOptions();
+  ssCacheOptions.Host = "localhost";
+  ssCacheOptions.Port = 10334;
+  ssCacheOptions.RegionName = "exampleRegion";
+
+  using var ssCache = new GeodeSessionStateCache(ssCacheOptions);
+
+  var options = new DistributedCacheEntryOptions();
+  DateTime localTime = DateTime.Now.AddDays(1);
+  DateTimeOffset dateAndOffset =
+  new DateTimeOffset(localTime, 
TimeZoneInfo.Local.GetUtcOffset(localTime));
+  options.AbsoluteExpiration = dateAndOffset;
+  var testValue = new byte[] { 1, 2, 3, 4, 5 };
+  ssCache.Set("testKey", testValue, options);
+  byte[] value = ssCache.Get("testKey");

Review comment:
   There are numerous places where we are not using `var`.




-- 
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.

To unsubscribe, e-mail: notifications-unsubscr...@geode.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> add net-core-session to geode-native
> 
>
> Key: GEODE-9359
> URL: https://issues.apache.org/jira/browse/GEODE-9359
> Project: Geode
>  Issue Type: New Feature
>  Components: native client
>Reporter: Ernest Burghardt
>Priority: Major
>  Labels: pull-request-available
>
> net-core-session shall be added to the top level of geode-native repo and 
> will produce a separate binary that will be publishable to NuGet
> https://docs.microsoft.com/en-us/nuget/create-packages/package-authoring-best-practices



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (GEODE-9169) Remove Context Switch Between Netty and Command Queue Thread

2021-07-30 Thread Hale Bales (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-9169?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Hale Bales reassigned GEODE-9169:
-

Assignee: Hale Bales

> Remove Context Switch Between Netty and Command Queue Thread
> 
>
> Key: GEODE-9169
> URL: https://issues.apache.org/jira/browse/GEODE-9169
> Project: Geode
>  Issue Type: New Feature
>  Components: redis
>Reporter: Wayne
>Assignee: Hale Bales
>Priority: Major
>  Labels: performance, pull-request-available, redis
> Fix For: 1.15.0
>
>
> On the current develop branch, the Netty thread reads a message and then puts 
> it on a queue for another thread to process. Performing the region update 
> directly on the Netty thread significantly improved performance.
> The original behavior was there to support pub/sub use cases, where we need 
> to push updates to the Netty channel, as well as following Netty best 
> practices of not blocking the Netty thread. We need to see how we can make 
> this same change on develop to avoid the context switch while still 
> supporting pub/sub and not breaking other use cases.
> +Acceptance Criteria+
> The context switch between the Netty and command queue thread has been 
> removed for all commands that are not pub/sub related.
> Geode benchmarks perform better after this change for all non-pubsub commands.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-9356) Create CI pipeline for net-core

2021-07-30 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-9356?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17390676#comment-17390676
 ] 

ASF GitHub Bot commented on GEODE-9356:
---

pivotal-jbarrett commented on a change in pull request #836:
URL: https://github.com/apache/geode-native/pull/836#discussion_r680095158



##
File path: packer/build-windows-2016-vs-2017.json
##
@@ -92,7 +92,8 @@
 "choco install doxygen.install -confirm",
 "choco install openssl -confirm",
 "choco install strawberryperl -confirm",
-"choco install nuget.commandline -confirm"
+"choco install nuget.commandline -confirm",
+"choco install dotnet-5.0-sdk -confirm"

Review comment:
   You beat me to it.




-- 
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.

To unsubscribe, e-mail: notifications-unsubscr...@geode.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Create CI pipeline for net-core
> ---
>
> Key: GEODE-9356
> URL: https://issues.apache.org/jira/browse/GEODE-9356
> Project: Geode
>  Issue Type: Task
>  Components: native client
>Reporter: Ernest Burghardt
>Priority: Major
>  Labels: pull-request-available
>
> This pipeline will be hosted on the Apache publicly available Concourse and 
> publish to NuGet



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-9356) Create CI pipeline for net-core

2021-07-30 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-9356?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17390675#comment-17390675
 ] 

ASF GitHub Bot commented on GEODE-9356:
---

pivotal-jbarrett commented on a change in pull request #836:
URL: https://github.com/apache/geode-native/pull/836#discussion_r680094997



##
File path: netcore/CMakeLists.txt
##
@@ -22,4 +22,7 @@ find_program(DOTNET dotnet)
 if(DOTNET AND INCLUDE_DOTNET)
   add_custom_target(netcore ALL COMMAND ${DOTNET} build --configuration 
$ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/NetCore VERBATIM)
   add_custom_target(netcore-test ALL COMMAND ${DOTNET} build --configuration 
$ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/NetCore.Test DEPENDS 
netcore VERBATIM)
+
+
+  install(FILES 
${CMAKE_CURRENT_SOURCE_DIR}/NetCore/bin/$/netcoreapp3.1/Apache.Geode.Netcore.dll
 DESTINATION netcore/$)

Review comment:
   Why are we including the 'Netcore' name in our library name? We don't 
include the language/platform name in any of our other library names.




-- 
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.

To unsubscribe, e-mail: notifications-unsubscr...@geode.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Create CI pipeline for net-core
> ---
>
> Key: GEODE-9356
> URL: https://issues.apache.org/jira/browse/GEODE-9356
> Project: Geode
>  Issue Type: Task
>  Components: native client
>Reporter: Ernest Burghardt
>Priority: Major
>  Labels: pull-request-available
>
> This pipeline will be hosted on the Apache publicly available Concourse and 
> publish to NuGet



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-9356) Create CI pipeline for net-core

2021-07-30 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-9356?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17390674#comment-17390674
 ] 

ASF GitHub Bot commented on GEODE-9356:
---

pivotal-jbarrett commented on a change in pull request #836:
URL: https://github.com/apache/geode-native/pull/836#discussion_r680092961



##
File path: packer/build-windows-2016-vs-2017.json
##
@@ -92,7 +92,8 @@
 "choco install doxygen.install -confirm",
 "choco install openssl -confirm",
 "choco install strawberryperl -confirm",
-"choco install nuget.commandline -confirm"
+"choco install nuget.commandline -confirm",
+"choco install dotnet-5.0-sdk -confirm"

Review comment:
   Our target is .NET 3.1 LTS. Does 5.0 SDK allow you to target 3.1?

##
File path: netcore/CMakeLists.txt
##
@@ -15,7 +15,7 @@
 
 project(netcore LANGUAGES NONE)
 
-option(INCLUDE_DOTNET "" ON)
+option(INCLUDE_DOTNET "Dotnet 5" ON)

Review comment:
   `option(INCLUDE_DOTNET_CORE "Build .NET Core client." ON)`




-- 
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.

To unsubscribe, e-mail: notifications-unsubscr...@geode.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Create CI pipeline for net-core
> ---
>
> Key: GEODE-9356
> URL: https://issues.apache.org/jira/browse/GEODE-9356
> Project: Geode
>  Issue Type: Task
>  Components: native client
>Reporter: Ernest Burghardt
>Priority: Major
>  Labels: pull-request-available
>
> This pipeline will be hosted on the Apache publicly available Concourse and 
> publish to NuGet



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (GEODE-9480) KnownVersions class has 1.13.1 listed as the version for ordinal 121, but it should be 1.13.2

2021-07-30 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-9480?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated GEODE-9480:
--
Labels: pull-request-available  (was: )

> KnownVersions class has 1.13.1 listed as the version for ordinal 121, but it 
> should be 1.13.2
> -
>
> Key: GEODE-9480
> URL: https://issues.apache.org/jira/browse/GEODE-9480
> Project: Geode
>  Issue Type: Bug
>  Components: core
>Reporter: Dan Smith
>Assignee: Dan Smith
>Priority: Major
>  Labels: pull-request-available
>
> KnownVersion.java on develop and Version.java in the support/1.13 branch have 
> 1.13.1 listed as the version in which the protocol ordinal changed to 121. 
> However, 1.13.1 doesn't actually use that ordinal, it reports itself as using 
> protocol ordinal 120 (the same as 1.13.0).
> This file should be changed to indicate that 1.13.2 is actually the version 
> in which the protocol changed.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)