You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Udo Kohlmeyer (Jira)" <ji...@apache.org> on 2021/04/19 20:28:00 UTC

[jira] [Resolved] (GEODE-9121) Regression Introduced Through GEODE-8905

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

Udo Kohlmeyer resolved GEODE-9121.
----------------------------------
    Resolution: Won't Fix

This issue seems to have been resolved with the commit of GEODE-9065

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