TeslaCN opened a new issue #12985:
URL: https://github.com/apache/shardingsphere/issues/12985


   ## Bug Report
   
   ### Which version of ShardingSphere did you use?
   master 1beb26125aff7ea315ec9e23f8aee5d9f2878052
   
   ### Which project did you use? ShardingSphere-JDBC or ShardingSphere-Proxy?
   Proxy
   
   ### Expected behavior
   
   ### Actual behavior
   
   ```
   -Xms256m -Xmx256m -Xmn128m -XX:+HeapDumpOnOutOfMemoryError
   ```
   
   ```
   [INFO ] 2021-10-11 15:40:45.674 [Connection-2-ThreadExecutor] 
ShardingSphere-SQL - Logic SQL: SELECT count(*) AS low_stock FROM (    SELECT 
s_w_id, s_i_id, s_quantity         FROM bmsql_stock         WHERE s_w_id = ? 
AND s_quantity < ? AND s_i_id IN (            SELECT ol_i_id                 
FROM bmsql_district                 JOIN bmsql_order_line ON ol_w_id = d_w_id   
               AND ol_d_id = d_id                  AND ol_o_id >= d_next_o_id - 
20                  AND ol_o_id < d_next_o_id                 WHERE d_w_id = ? 
AND d_id = ?         )     ) AS L
   [INFO ] 2021-10-11 15:40:45.674 [Connection-2-ThreadExecutor] 
ShardingSphere-SQL - SQLStatement: 
PostgreSQLSelectStatement(limit=Optional.empty, lock=Optional.empty, 
window=Optional.empty)
   [INFO ] 2021-10-11 15:40:45.674 [Connection-2-ThreadExecutor] 
ShardingSphere-SQL - Actual SQL: ds_0 ::: SELECT count(*) AS low_stock FROM (   
 SELECT s_w_id, s_i_id, s_quantity         FROM bmsql_stock         WHERE 
s_w_id = ? AND s_quantity < ? AND s_i_id IN (            SELECT ol_i_id         
        FROM bmsql_district                 JOIN bmsql_order_line ON ol_w_id = 
d_w_id                  AND ol_d_id = d_id                  AND ol_o_id >= 
d_next_o_id - 20                  AND ol_o_id < d_next_o_id                 
WHERE d_w_id = ? AND d_id = ?         )     ) AS L ::: [20, 15, 20, 7]
   [INFO ] 2021-10-11 15:40:45.674 [Connection-2-ThreadExecutor] 
ShardingSphere-SQL - Actual SQL: ds_1 ::: SELECT count(*) AS low_stock FROM (   
 SELECT s_w_id, s_i_id, s_quantity         FROM bmsql_stock         WHERE 
s_w_id = ? AND s_quantity < ? AND s_i_id IN (            SELECT ol_i_id         
        FROM bmsql_district                 JOIN bmsql_order_line ON ol_w_id = 
d_w_id                  AND ol_d_id = d_id                  AND ol_o_id >= 
d_next_o_id - 20                  AND ol_o_id < d_next_o_id                 
WHERE d_w_id = ? AND d_id = ?         )     ) AS L ::: [20, 15, 20, 7]
   [INFO ] 2021-10-11 15:40:45.674 [Connection-2-ThreadExecutor] 
ShardingSphere-SQL - Actual SQL: ds_2 ::: SELECT count(*) AS low_stock FROM (   
 SELECT s_w_id, s_i_id, s_quantity         FROM bmsql_stock         WHERE 
s_w_id = ? AND s_quantity < ? AND s_i_id IN (            SELECT ol_i_id         
        FROM bmsql_district                 JOIN bmsql_order_line ON ol_w_id = 
d_w_id                  AND ol_d_id = d_id                  AND ol_o_id >= 
d_next_o_id - 20                  AND ol_o_id < d_next_o_id                 
WHERE d_w_id = ? AND d_id = ?         )     ) AS L ::: [20, 15, 20, 7]
   [INFO ] 2021-10-11 15:40:45.674 [Connection-2-ThreadExecutor] 
ShardingSphere-SQL - Actual SQL: ds_3 ::: SELECT count(*) AS low_stock FROM (   
 SELECT s_w_id, s_i_id, s_quantity         FROM bmsql_stock         WHERE 
s_w_id = ? AND s_quantity < ? AND s_i_id IN (            SELECT ol_i_id         
        FROM bmsql_district                 JOIN bmsql_order_line ON ol_w_id = 
d_w_id                  AND ol_d_id = d_id                  AND ol_o_id >= 
d_next_o_id - 20                  AND ol_o_id < d_next_o_id                 
WHERE d_w_id = ? AND d_id = ?         )     ) AS L ::: [20, 15, 20, 7]
   java.lang.OutOfMemoryError: Java heap space
   Dumping heap to java_pid58369.hprof ...
   Heap dump file created [484944992 bytes in 1.617 secs]
   Exception in thread "Connection-2-ThreadExecutor" 
java.lang.OutOfMemoryError: Java heap space
        at java.base/java.lang.Integer.valueOf(Integer.java:1081)
        at 
org.postgresql.jdbc.PgResultSet.internalGetObject(PgResultSet.java:183)
        at org.postgresql.jdbc.PgResultSet.getObject(PgResultSet.java:2572)
        at 
com.zaxxer.hikari.pool.HikariProxyResultSet.getObject(HikariProxyResultSet.java)
        at 
org.apache.shardingsphere.infra.executor.sql.execute.result.query.impl.driver.jdbc.type.stream.JDBCStreamQueryResult.getValue(JDBCStreamQueryResult.java:87)
        at 
org.apache.shardingsphere.infra.executor.sql.federate.original.row.FilterableRowEnumerator.setCurrentRow(FilterableRowEnumerator.java:79)
        at 
org.apache.shardingsphere.infra.executor.sql.federate.original.row.FilterableRowEnumerator.moveNext0(FilterableRowEnumerator.java:64)
        at 
org.apache.shardingsphere.infra.executor.sql.federate.original.row.FilterableRowEnumerator.moveNext(FilterableRowEnumerator.java:56)
        at 
org.apache.calcite.linq4j.EnumerableDefaults$17$1.moveNext(EnumerableDefaults.java:2821)
        at 
org.apache.calcite.linq4j.TransformedEnumerator.moveNext(TransformedEnumerator.java:35)
        at 
org.apache.calcite.linq4j.EnumerableDefaults.toLookup_(EnumerableDefaults.java:3602)
        at 
org.apache.calcite.linq4j.EnumerableDefaults.toLookup(EnumerableDefaults.java:3594)
        at 
org.apache.calcite.linq4j.EnumerableDefaults.toLookup(EnumerableDefaults.java:3570)
        at 
org.apache.calcite.linq4j.DefaultEnumerable.toLookup(DefaultEnumerable.java:748)
        at 
org.apache.calcite.linq4j.EnumerableDefaults$7.enumerator(EnumerableDefaults.java:1422)
        at 
org.apache.calcite.linq4j.EnumerableDefaults.groupBy_(EnumerableDefaults.java:978)
        at 
org.apache.calcite.linq4j.EnumerableDefaults.groupBy(EnumerableDefaults.java:781)
        at 
org.apache.calcite.linq4j.DefaultEnumerable.groupBy(DefaultEnumerable.java:311)
        at Baz.bind(Unknown Source)
        at 
org.apache.calcite.jdbc.CalcitePrepare$CalciteSignature.enumerable(CalcitePrepare.java:363)
        at 
org.apache.calcite.jdbc.CalciteConnectionImpl.enumerable(CalciteConnectionImpl.java:333)
        at 
org.apache.calcite.jdbc.CalciteMetaImpl._createIterable(CalciteMetaImpl.java:578)
        at 
org.apache.calcite.jdbc.CalciteMetaImpl.createIterable(CalciteMetaImpl.java:569)
        at 
org.apache.calcite.avatica.AvaticaResultSet.execute(AvaticaResultSet.java:182)
        at 
org.apache.calcite.jdbc.CalciteResultSet.execute(CalciteResultSet.java:64)
        at 
org.apache.calcite.jdbc.CalciteResultSet.execute(CalciteResultSet.java:43)
        at 
org.apache.calcite.avatica.AvaticaConnection.executeQueryInternal(AvaticaConnection.java:573)
        at 
org.apache.calcite.avatica.AvaticaPreparedStatement.executeQuery(AvaticaPreparedStatement.java:137)
        at 
org.apache.shardingsphere.infra.executor.sql.federate.original.OriginalFilterableExecutor.execute(OriginalFilterableExecutor.java:87)
        at 
org.apache.shardingsphere.infra.executor.sql.federate.original.OriginalFilterableExecutor.executeQuery(OriginalFilterableExecutor.java:77)
        at 
org.apache.shardingsphere.proxy.backend.communication.ProxySQLExecutor.federateExecute(ProxySQLExecutor.java:162)
        at 
org.apache.shardingsphere.proxy.backend.communication.ProxySQLExecutor.execute(ProxySQLExecutor.java:134)
   ```
   
   ### Reason analyze (If you can)
   
   This SQL was not executed by calcite before.
   Each `bmsql_stock` contains 600,000 rows and each `bmsql_order_line` 
contains about 2,300,000 rows.
   
   ### Steps to reproduce the behavior, such as: SQL to execute, sharding rule 
configuration, when exception occur etc.
   Testing PostgreSQL Proxy with BenchmarkSQL.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to