[ https://issues.apache.org/jira/browse/GEODE-2713?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15941220#comment-15941220 ]
ASF GitHub Bot commented on GEODE-2713: --------------------------------------- Github user pivotal-jbarrett commented on a diff in the pull request: https://github.com/apache/geode-native/pull/74#discussion_r108006260 --- Diff: src/cppcache/src/ThinClientPoolDM.hpp --- @@ -625,7 +626,7 @@ class OnRegionFunctionExecution : public PooledWork<GfErrType> { OnRegionFunctionExecution( const char* func, const Region* region, CacheablePtr args, CacheableHashSetPtr routingObj, uint8_t getResult, uint32_t timeout, - ThinClientPoolDM* poolDM, ACE_Recursive_Thread_Mutex* rCL, + ThinClientPoolDM* poolDM, std::shared_ptr<ACE_Recursive_Thread_Mutex> rCL, --- End diff -- See comment about about passing as `const &`. > Function execution can lead to passing the address of a stack variable > ---------------------------------------------------------------------- > > Key: GEODE-2713 > URL: https://issues.apache.org/jira/browse/GEODE-2713 > Project: Geode > Issue Type: Bug > Components: native client > Reporter: Michael Dodge > > In ThinClientRegion::executeFunctionSH(), the address of a stack variable > (the result collector lock) is passed to the workers. If an exception occurs > with any of the workers, the function will return, causing the stack variable > to be destructed. Since the workers have the raw address, it is now a > dangling pointer situation. -- This message was sent by Atlassian JIRA (v6.3.15#6346)