You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "James Taylor (JIRA)" <ji...@apache.org> on 2016/01/04 20:02:39 UTC

[jira] [Commented] (PHOENIX-2556) Subqueries with nested joins may not free hash cache

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

James Taylor commented on PHOENIX-2556:
---------------------------------------

Excellent, thanks, [~maryannxue]. Would you mind also commenting back in the FIXME code in ConnectionQueryServicesTestImpl so that at a minimum, we check for each test suite run?
{code}
    @Override
    public void close() throws SQLException {
        try {
            Set<PhoenixConnection> connections = this.connections;
            this.connections = Sets.newHashSet();
            SQLCloseables.closeAll(connections);
            long unfreedBytes = clearCache();
            // FIXME: once PHOENIX-2556 is fixed, comment this back in
            // assertEquals(0,unfreedBytes);
        } finally {
            super.close();
        }
    }
{code}
+1 with that change to 4.x and master branches.

> Subqueries with nested joins may not free hash cache
> ----------------------------------------------------
>
>                 Key: PHOENIX-2556
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-2556
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: James Taylor
>            Assignee: Maryann Xue
>             Fix For: 4.7.0
>
>         Attachments: PHOENIX-2556.patch, PHOENIX-2556_wip.patch
>
>
> Subqueries with nested joins are only freeing some of the server-side hash cache memory, leading to essentially a kind of memory leak.
> This problem occurs with the existing test case in SubqueryIT:
> {code}
>  SELECT name from Join.CustomerTable 
>  WHERE "customer_id" IN 
>     (SELECT "customer_id" FROM Join.ItemTable i
>      JOIN Join.OrderTable o 
>      ON o."item_id" = i."item_id"
>      WHERE i.name = 'T2'
>      OR quantity >
>          (SELECT avg(quantity) FROM Join.OrderTable q
>           WHERE o."item_id" = q."item_id"))
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)