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

Udo Kohlmeyer reassigned GEODE-9121:
------------------------------------

    Assignee: Udo Kohlmeyer

> Regression Introduced Through GEODE-8905
> ----------------------------------------
>
>                 Key: GEODE-9121
>                 URL: https://issues.apache.org/jira/browse/GEODE-9121
>             Project: Geode
>          Issue Type: Bug
>          Components: client/server
>    Affects Versions: 1.15.0
>            Reporter: Juan Ramos
>            Assignee: Udo Kohlmeyer
>            Priority: Major
>         Attachments: workspace.zip
>
>
> The new implementation of the {{JarDeploymentService}} seems to be deleting 
> resources when a member is gracefully shutdown, which in turns generates a 
> race condition if there are functions being executed on the member during 
> that time.
>  In previous versions, a client application would simply retry the operation 
> and no exception or loss of availability would be seen, right now the 
> following exception is thrown on the client instead:
> {noformat}
> Exception in thread "main" org.apache.geode.cache.execute.FunctionException: 
> org.apache.geode.cache.client.ServerOperationException: remote server on 
> 192.168.0.73(3985:loner):49836:c9f57ea7: The function, XXXXXXXX, has not been 
> registered
>         at 
> org.apache.geode.internal.cache.execute.ServerRegionFunctionExecutor.executeOnServer(ServerRegionFunctionExecutor.java:237)
>         at 
> org.apache.geode.internal.cache.execute.ServerRegionFunctionExecutor.executeFunction(ServerRegionFunctionExecutor.java:184)
>         at 
> org.apache.geode.internal.cache.execute.ServerRegionFunctionExecutor.execute(ServerRegionFunctionExecutor.java:388)
>         at 
> org.apache.geode.internal.cache.execute.ServerRegionFunctionExecutor.execute(ServerRegionFunctionExecutor.java:351)
>         at test.TestClient.main(TestClient.java:20)
> Caused by: org.apache.geode.cache.client.ServerOperationException: remote 
> server on 192.168.0.73(3985:loner):49836:c9f57ea7: The function, XXXXXXXX, 
> has not been registered
>         at 
> org.apache.geode.cache.client.internal.ExecuteRegionFunctionSingleHopOp$ExecuteRegionFunctionSingleHopOpImpl.processResponse(ExecuteRegionFunctionSingleHopOp.java:370)
>         at 
> org.apache.geode.cache.client.internal.AbstractOp.processResponse(AbstractOp.java:224)
>         at 
> org.apache.geode.cache.client.internal.AbstractOp.attemptReadResponse(AbstractOp.java:197)
>         at 
> org.apache.geode.cache.client.internal.AbstractOp.attempt(AbstractOp.java:384)
>         at 
> org.apache.geode.cache.client.internal.AbstractOpWithTimeout.attempt(AbstractOpWithTimeout.java:45)
>         at 
> org.apache.geode.cache.client.internal.ConnectionImpl.execute(ConnectionImpl.java:284)
>         at 
> org.apache.geode.cache.client.internal.pooling.PooledConnection.execute(PooledConnection.java:355)
>         at 
> org.apache.geode.cache.client.internal.OpExecutorImpl.executeWithPossibleReAuthentication(OpExecutorImpl.java:756)
>         at 
> org.apache.geode.cache.client.internal.OpExecutorImpl.executeOnServer(OpExecutorImpl.java:335)
>         at 
> org.apache.geode.cache.client.internal.OpExecutorImpl.executeOn(OpExecutorImpl.java:304)
>         at 
> org.apache.geode.cache.client.internal.PoolImpl.executeOn(PoolImpl.java:840)
>         at 
> org.apache.geode.cache.client.internal.SingleHopOperationCallable.call(SingleHopOperationCallable.java:49)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>         at java.lang.Thread.run(Thread.java:748)
> {noformat}
> This seems to be a regression introduced through GEODE-8905. I've tested the 
> same scenario with version {{1.13.2}} (released), branch {{support/1.14}} and 
> commit [b80094ec5e|https://github.com/apache/geode/commit/b80094ec5e] with no 
> problems at all. When testing using commit 
> [6f764a7046|https://github.com/apache/geode/commit/6f764a7046], on the other 
> hand, the problem is easily reproducible.
> —
> How to reproduce the issue:
> 1. Download and extract {{workspace.zip}}.
>  2. Execute the {{reproduce.sh}} script and follow the instructions on screen.
> The version of {{Geode}} to use on server side can be changed through the 
> {{GEMFIRE}} variable within the {{reproduce.sh}} script.
>  The version of {{Geode}} to use on client side can be changed through the 
> {{GEODE_VERSION}} variable within the {{launch_client.sh}} script.
> The client application simply executes the {{TestFunction}} forever. When 
> running the scenario using a version of {{Geode}} that doesn't include commit 
> [6f764a7046|https://github.com/apache/geode/commit/6f764a7046], the client 
> simply retries under the hood and no exception is thrown. When using the 
> current {{develop}} branch, however, an exception is thrown and the client 
> application terminates as soon as a server is restarted.
> [~ukohlmeyer], [~pjohnson]: I'm tagging you both as you were both working on 
> this feature, feel free to assign the ticket to however you consider 
> necessary.



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

Reply via email to