proven-mozdemir opened a new issue #2683: URL: https://github.com/apache/iotdb/issues/2683
**Describe the bug** Cannot replicate data with IoTDB 0.12.0-SNAPSHOT. Lots of "TTransportException: null" exceptions seen on logs. **To Reproduce** Steps to reproduce the behavior: 1. Download source code ``` git clone https://github.com/apache/iotdb.git mv iotdb iotdb-github ``` 2. Compile with maven ``` cd iotdb-github/ ./mvnw.sh clean package -DskipTests cp cluster/target/cluster-0.12.0-SNAPSHOT.zip . ``` 3. Extract zip from target into node1 ``` unzip cluster-0.12.0-SNAPSHOT.zip mkdir node1 mv lib node1/ mv sbin/ node1/ mv tools/ node1/ mv conf/ node1/ ``` 4. Copy node2 and node3 from node1 ``` cp -rf node1/ node2 cp -rf node1/ node3 ``` 5. Change ports for node2 and node3 ``` sed -i -e 's/6667/6668/g' node2/conf/iotdb-engine.properties sed -i -e 's/6667/6669/g' node3/conf/iotdb-engine.properties sed -i -e 's/31999/32000/g' node2/conf/iotdb-env.sh sed -i -e 's/31999/32001/g' node3/conf/iotdb-env.sh ``` 6. Start each nodes one by one in seperate terminals ``` cd node1/sbin start-server.sh & cd ../../node2/sbin start-server.sh -internal_meta_port 9005 -internal_data_port 40012 -cluster_rpc_port 55561 & cd ../../node3/sbin start-server.sh -internal_meta_port 9007 -internal_data_port 40014 -cluster_rpc_port 55562 & ``` 7. Download IoTDB Benchmark tool `git clone https://github.com/thulab/iotdb-benchmark.git` 8. Open with IDE (mine is IntelliJ Ultimate) 9. Add new maven module as iotdb-0.12 10. Copy all files from iotdb-0.11 module and replace version in pom file 0.12.0-SNAPSHOT and class package as "cn.edu.tsinghua.iotdb.benchmark.iotdb012" 11. Replace artifactId as iotdb-0.12 and name Benchmark IoTDB 0.12 in pom.xml 12. Replace dependency version as 0.12.0-SNAPSHOT for dependencies; iotdb-jdbc and iotdb-session 13. Add new version class names in cn.edu.tsinghua.iotdb.benchmark.conf.Constants class; ``` public static final String IOTDB012_JDBC_CLASS = "cn.edu.tsinghua.iotdb.benchmark.iotdb012.IoTDB"; public static final String IOTDB012_SESSION_CLASS = "cn.edu.tsinghua.iotdb.benchmark.iotdb012.IoTDBSession"; ``` 14. Add version 0.12 support in cn.edu.tsinghua.iotdb.benchmark.tsdb.DBFactory class; ``` case "0.12.0": if(config.getINSERT_MODE().equals(Constants.INSERT_USE_JDBC)) { dbClass = Constants.IOTDB012_JDBC_CLASS; } else { dbClass = Constants.IOTDB012_SESSION_CLASS; } break; case "0.11.0": .... ``` 15. Create dist-dependencies folder in iotdb-0.12 module directory 16. Create jdbc, service-rpc, session, thrift, tsfile folders into dist-dependencies folder 17. copy pom.xml and jar files from iotdb-github folder into jdbc, service-rpc, session, thrift, tsfile folders 18. Manually install SNAPSHOT builds into local maven repository; ``` cd iotdb-github/dist-dependencies mvn install:install-file -Dpackaging=pom -Dfile=./pom.xml -DpomFile=./pom.xml mvn install:install-file -Dfile=./jdbc/target/iotdb-jdbc-0.12.0-SNAPSHOT.jar -Dpackaging=jar -DpomFile=./jdbc/pom.xml mvn install:install-file -Dfile=./session/target/iotdb-session-0.12.0-SNAPSHOT.jar -Dpackaging=jar -DpomFile=./session/pom.xml mvn install:install-file -Dfile=./service-rpc/target/service-rpc-0.12.0-SNAPSHOT.jar -Dpackaging=jar -DpomFile=./service-rpc/pom.xml mvn install:install-file -Dfile=./thrift/target/iotdb-thrift-0.12.0-SNAPSHOT.jar -Dpackaging=jar -DpomFile=./thrift/pom.xml mvn install:install-file -Dfile=./tsfile/target/tsfile-0.12.0-SNAPSHOT.jar -Dpackaging=jar -DpomFile=./tsfile/pom.xml ``` 19. Change iotdb-benchmark tool config.properties file as given below, other parameters are left as default; ``` HOST=<lan ip of your server> PORT=6667 DB_SWITCH=IoTDB DB_NAME=plant BENCHMARK_WORK_MODE=testWithDefaultPath IS_DELETE_DATA=true #Whether to create the schema before writing CREATE_SCHEMA=true #Write data start time START_TIME=2021-02-01T00:00:00+03:00 VERSION=0.12.0 OPERATION_PROPORTION=1:0:0:0:0:0:0:0:0 INSERT_MODE=session ``` 20. maven clean and install iotdb-benchmark tool 21. Execute test **Expected behavior** I expect data is replicated into all nodes; ``` cd iotdb-github cli/sbin/start-cli.sh -p 6667 select s_0 from root.group_1.d_1 LIMIT 3; <data exists> cli/sbin/start-cli.sh -p 6668 select s_0 from root.group_1.d_1 LIMIT 3; <NO data exists> cli/sbin/start-cli.sh -p 6669 select s_0 from root.group_1.d_1 LIMIT 3; <NO data exists> ``` I get some errors which given under "Additional Context" title I found an FAQ document on this link; https://github.com/apache/iotdb/issues/2270 Translated it into English with Google Translate: https://translate.google.com/translate?sl=auto&tl=en&u=https://github.com/apache/iotdb/issues/2270 According to item one i changed port as 55560 in conf/config.properties file under iotdb-benchmark tool and tried to ingest again, this time i got Connection Refused exception as given below; ``` 11:39:08.999 [main] ERROR cn.edu.tsinghua.iotdb.benchmark.iotdb012.IoTDBSession - Failed to add session org.apache.iotdb.rpc.IoTDBConnectionException: org.apache.thrift.transport.TTransportException: java.net.ConnectException: Connection refused at org.apache.iotdb.session.SessionConnection.init(SessionConnection.java:91) at org.apache.iotdb.session.SessionConnection.<init>(SessionConnection.java:79) at org.apache.iotdb.session.Session.constructSessionConnection(Session.java:212) at org.apache.iotdb.session.Session.open(Session.java:181) at org.apache.iotdb.session.Session.open(Session.java:166) at cn.edu.tsinghua.iotdb.benchmark.iotdb012.IoTDBSession.<init>(IoTDBSession.java:38) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500) at java.base/java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:124) at java.base/jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:346) at java.base/java.lang.Class.newInstance(Class.java:604) at cn.edu.tsinghua.iotdb.benchmark.tsdb.DBFactory.getDatabase(DBFactory.java:74) at cn.edu.tsinghua.iotdb.benchmark.tsdb.DBWrapper.<init>(DBWrapper.java:33) at cn.edu.tsinghua.iotdb.benchmark.App.testWithDefaultPath(App.java:98) at cn.edu.tsinghua.iotdb.benchmark.App.main(App.java:68) Caused by: org.apache.thrift.transport.TTransportException: java.net.ConnectException: Connection refused at org.apache.thrift.transport.TSocket.open(TSocket.java:226) at org.apache.iotdb.rpc.TElasticFramedTransport.open(TElasticFramedTransport.java:87) at org.apache.iotdb.session.SessionConnection.init(SessionConnection.java:89) ... 16 common frames omitted ``` Whenever i try to insert using Command Line interface as given below; ``` cd iotdb-github cli/sbin/start-cli.sh -p 55560 insert into root.group_d1.d_1(timestamp,value) values(1612126801000,87.74); # i get data for; select * from root.group_d1.d_1; ``` And also i get data by connecting 55561 and 55562 port numbers. Interestingly when i ingest more data only node1's data folder size is getting larger than node2 and node3 ones. This means data is actually stored only under node1 data folder. **Ingest Replicated Data with IotDb benchmark tool** At the end of the day i am looking for the correct way to replicate ingest operation to other nodes of cluster with iotdb-benchmark tool. **Desktop (please complete the following information):** - OS: Centos Linux - Version: 8 with kernel 4.18.0-240.10.1.el8_3.x86_64 **Additional context** Exceptions seen in error log file: ``` 2021-02-15 11:48:51,749 [pool-8-IoTDB-RPC-Client-thread-2] ERROR org.apache.thrift.server.TThreadPoolServer$WorkerProcess:315 - Thrift error occurred during processing of message. org.apache.thrift.transport.TTransportException: null at org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:132) at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86) at org.apache.iotdb.rpc.TElasticFramedTransport.readFrame(TElasticFramedTransport.java:108) at org.apache.iotdb.rpc.TElasticFramedTransport.read(TElasticFramedTransport.java:103) at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86) at org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:425) at org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:321) at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:225) at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:27) at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:310) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) at java.base/java.lang.Thread.run(Thread.java:832) ``` ---------------------------------------------------------------- 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. For queries about this service, please contact Infrastructure at: [email protected]
