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

ASF subversion and git services commented on IMPALA-11176:
----------------------------------------------------------

Commit f9dfd1f954f3b3123082fa483adf4dc806f0c31a in impala's branch 
refs/heads/master from Yida Wu
[ https://gitbox.apache.org/repos/asf?p=impala.git;h=f9dfd1f ]

IMPALA-11196 Fix ClientCacheTest ASAN and TSAN build failure

The testcase succeeds in DEBUG and RELEASE, but fails in ASAN and
TSAN build.

In the testcase's logic, it monitors whether there is a change
of the process vm size or not after several new and deletion of
objects in the system, because ASAN has replaced the alloc/free
interface, it may not guarantee the memory must be released to
the system immediately in ASAN. Similar case in TSAN.

The fix disables the testcase running in ASAN and TSAN, and the
running of this testcase in the DEBUG and RELEASE builds should
be enough for the verification of the memory leak problem in
IMPALA-11176.

Tests:
Reran testcase in ASAN and TSAN without errors.

Change-Id: Id40a2ae184bba670a3538dedfb8ff25d24dc9b6c
Reviewed-on: http://gerrit.cloudera.org:8080/18342
Reviewed-by: Impala Public Jenkins <[email protected]>
Tested-by: Impala Public Jenkins <[email protected]>


> Memory leak in ClientCacheHelper
> --------------------------------
>
>                 Key: IMPALA-11176
>                 URL: https://issues.apache.org/jira/browse/IMPALA-11176
>             Project: IMPALA
>          Issue Type: Bug
>          Components: Backend
>    Affects Versions: Impala 4.0.0, Impala 3.4.0
>            Reporter: Yida Wu
>            Assignee: Yida Wu
>            Priority: Critical
>             Fix For: Impala 4.1.0
>
>
> ClientCacheHelper::CreateClient uses a function pointer "factory_method" to 
> create a new ThriftClientImpl object and store it in a share pointer of type 
> ThriftClientImpl.
> However, in the implementation of the function pointer, which uses 
> ClientCache::MakeClient, it creates a derived object of ThriftClientImpl and 
> return the pointer as the base object pointer ThriftClientImpl*. When the 
> ClientCacheHelper::CreateClient uses the returned pointer to create a base 
> shared pointer, it can't recognize that the pointer is from a derived object, 
> therefore something goes wrong that the shared pointer couldn't release all 
> the memory occupied by the derived object.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to