apache / apache/iotdb

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

オープン
#13,728 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Java
スター
6.4k
フォーク
1.2k
平均マージ
1日 23時間
マージ済み PR(30日)
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 に対して 3 つのクエリを再現し、次にトレースに示されている CLI および JDBC のエントリポイント(AbstractCli.executeQuery と IoTDBConnection.reconnect を含む)から調査を始めます。time-and-t1 の複合クエリを追跡し、接続を閉じたり報告されたトランスポートエラーを発生させたりせずに、挿入したデータが返されることを確認します。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java, sql
領域
cli, databases
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
38/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。