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]