[
https://issues.apache.org/jira/browse/GEODE-9774?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alberto Gomez updated GEODE-9774:
---------------------------------
Description:
When executing a server function on a partitioned region, if a network hop is
done during the execution of the function to access data from another server,
the networkHop thread local variable on the PartitionedRegion instance will be
set to either 1 or 2. Nevertheless, when the function returns, the variable
will not be reset leaving a wrong value in it for subsequent requests.
As a result, subsequent requests handled by the same thread that executed the
previous function will see the networkHop thread local variable with the value
set previously by the function no matter if a network hop was required or not.
In case of get/put/destroy/invalidate, the server will return this information
to the client indicating that it should update the metadata when it should not.
This will cause unnecessary requests from the client to update the metadata
which could impact very negatively the performance of the system.
was:
When executing a server function on a partitioned region, if a network hop is
done during the execution of the function to access data from another server,
the networkHop thread local variable on the PartitionedRegion instance will be
set to either 1 or 2. Nevertheless, when the function returns, the variable
will not be reset leaving a wrong value in it for subsequent requests.
As a result, subsequent requests handled by the same thread that executed the
previous function will see the networkHop thread local variable with the value
set previously by the function no matter if a network hop was required or not.
In case of get/put/destroy/invalidate ,the server will return this information
to the client indicating that it should update the metadata when it should not.
These will cause unnecessary requests from the client to update the metadata
which could impact very negatively the performance of the system.
> Function execution on partition region does not clear networkHop on exit
> ------------------------------------------------------------------------
>
> Key: GEODE-9774
> URL: https://issues.apache.org/jira/browse/GEODE-9774
> Project: Geode
> Issue Type: Bug
> Components: functions
> Reporter: Alberto Gomez
> Assignee: Alberto Gomez
> Priority: Major
> Labels: needsTriage
>
> When executing a server function on a partitioned region, if a network hop is
> done during the execution of the function to access data from another server,
> the networkHop thread local variable on the PartitionedRegion instance will
> be set to either 1 or 2. Nevertheless, when the function returns, the
> variable will not be reset leaving a wrong value in it for subsequent
> requests.
> As a result, subsequent requests handled by the same thread that executed the
> previous function will see the networkHop thread local variable with the
> value set previously by the function no matter if a network hop was required
> or not. In case of get/put/destroy/invalidate, the server will return this
> information to the client indicating that it should update the metadata when
> it should not.
> This will cause unnecessary requests from the client to update the metadata
> which could impact very negatively the performance of the system.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)