apache / apache/iotdb

[Bug] Querying both the Time field and the t1 field triggers a crash bug.

未关闭
#13,728 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Java
星标
6.4k
派生
1.2k
平均合并
1 天 23 小时
30 天内合并 PR
115

描述

### Search before asking

- [X] I searched in the [issues](https://github.com/apache/iotdb/issues) and found nothing similar.

### Version

1.3.2

### Describe the bug and provide the minimal reproduce step

```
DROP DATABASE root.db0
CREATE DATABASE root.db0

INSERT INTO root.db0(timestamp,t1) VALUES(1724497540136, true)

# query 1 success
SELECT time FROM root.db0
SELECT t1 FROM root.db0

# query 2 error
SELECT time, t1 FROM root.db0
```

### What did you expect to see?

Query 1.1 returns "No Results," while Query 1.2 can retrieve all the data. Query 2 should correctly return all the data.

### What did you see instead?

Query 2 reports the following error:
```
4668710 [main] WARN o.a.t.transport.TIOStreamTransport - Error closing output stream.
java.net.SocketException: Socket closed
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:118)
at java.net.SocketOutputStream.write(SocketOutputStream.java:155)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
at java.io.FilterOutputStream.close(FilterOutputStream.java:158)
at org.apache.thrift.transport.TIOStreamTransport.close(TIOStreamTransport.java:156)
at org.apache.thrift.transport.TSocket.close(TSocket.java:252)
at org.apache.iotdb.rpc.TElasticFramedTransport.close(TElasticFramedTransport.java:106)
at org.apache.iotdb.jdbc.IoTDBConnection.reconnect(IoTDBConnection.java:545)
at org.apache.iotdb.jdbc.IoTDBStatement.reConnect(IoTDBStatement.java:705)
at org.apache.iotdb.jdbc.IoTDBStatement.requestStmtId(IoTDBStatement.java:690)
at org.apache.iotdb.jdbc.IoTDBStatement.(IoTDBStatement.java:93)
at org.apache.iotdb.jdbc.IoTDBStatement.(IoTDBStatement.java:127)
at org.apache.iotdb.jdbc.IoTDBConnection.createStatement(IoTDBConnection.java:202)
at org.apache.iotdb.cli.AbstractCli.executeQuery(AbstractCli.java:549)
at org.apache.iotdb.cli.AbstractCli.handleInputCmd(AbstractCli.java:435)
at org.apache.iotdb.cli.AbstractCli.processCommand(AbstractCli.java:811)
at org.apache.iotdb.cli.Cli.readerReadLine(Cli.java:216)
at org.apache.iotdb.cli.Cli.receiveCommands(Cli.java:199)
at org.apache.iotdb.cli.Cli.serve(Cli.java:163)
at org.apache.iotdb.cli.Cli.runCli(Cli.java:101)
at org.apache.iotdb.cli.Cli.main(Cli.java:60)
Msg: java.sql.SQLException: org.apache.thrift.transport.TTransportException: Socket is closed by peer.
```

### Anything else?

Dear IoTDB team, I believe this should be classified as a crash bug. If it is a bug, please mark this issue as "bug". Thank you!

### Are you willing to submit a PR?

- [x] I'm willing to submit a PR!

贡献指南

打开贡献指南

调研方向

在 IoTDB 1.3.2 上重现这三个查询,然后从 trace 中显示的 CLI 和 JDBC 入口点开始,包括 AbstractCli.executeQuery 和 IoTDBConnection.reconnect。跟踪组合的 time-and-t1 查询,并验证它在不关闭连接且不引发报告的传输错误的情况下返回已插入的数据。

由索引模型根据 Issue 内容生成。

评估

技术栈
java, sql
领域
cli, databases
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
38/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。