Uploaded image for project: 'Apache IoTDB'
  1. Apache IoTDB
  2. IOTDB-4320

[WAL] Recover insert row with null value throw NPE

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.13.2
    • 0.13.3
    • None
    • 2022-9-Cluster

    Description

      execute:

       

      create ALIGNED timeseries root.sg1(isa boolean encoding=RLE,isb boolean encoding=RLE);
      insert into root.sg1(timestamp,isa,isb) aligned VALUES (NOW(),False,null); 
      

      Restart IOTDB and report:

      2022-09-02 14:56:14,415 [pool-10-IoTDB-Recovery-Thread-Pool-1] ERROR o.a.i.d.w.i.SingleFileLogReader:108 - Cannot read more PhysicalPlans from 0, successfully read index is /var/lib/iotdb/data/wal/root.ceshi.p1.s_1/0-1662101750410-1-0-0.tsfile/wal1. The reason is
      java.nio.BufferUnderflowException: null
              at java.base/java.nio.Buffer.nextGetIndex(Buffer.java:647)
              at java.base/java.nio.HeapByteBuffer.getInt(HeapByteBuffer.java:388)
              at org.apache.iotdb.tsfile.utils.ReadWriteIOUtils.readInt(ReadWriteIOUtils.java:519)
              at org.apache.iotdb.db.qp.physical.crud.InsertRowPlan.fillValues(InsertRowPlan.java:459)
              at org.apache.iotdb.db.qp.physical.crud.InsertRowPlan.deserializeMeasurementsAndValues(InsertRowPlan.java:533)
              at org.apache.iotdb.db.qp.physical.crud.InsertRowPlan.deserialize(InsertRowPlan.java:518)
              at org.apache.iotdb.db.qp.physical.PhysicalPlan$Factory.create(PhysicalPlan.java:497)
              at org.apache.iotdb.db.writelog.io.BatchLogReader.readLogs(BatchLogReader.java:55)
              at org.apache.iotdb.db.writelog.io.BatchLogReader.<init>(BatchLogReader.java:47)
              at org.apache.iotdb.db.writelog.io.SingleFileLogReader.hasNext(SingleFileLogReader.java:100)
              at org.apache.iotdb.db.writelog.io.MultiFileLogReader.hasNext(MultiFileLogReader.java:57)
              at org.apache.iotdb.db.writelog.recover.LogReplayer.replayLogs(LogReplayer.java:105)
              at org.apache.iotdb.db.writelog.recover.TsFileRecoverPerformer.redoLogs(TsFileRecoverPerformer.java:290)
              at org.apache.iotdb.db.writelog.recover.TsFileRecoverPerformer.recover(TsFileRecoverPerformer.java:143)
              at org.apache.iotdb.db.engine.storagegroup.VirtualStorageGroupProcessor.recoverTsFiles(VirtualStorageGroupProcessor.java:786)
              at org.apache.iotdb.db.engine.storagegroup.VirtualStorageGroupProcessor.recover(VirtualStorageGroupProcessor.java:527)
              at org.apache.iotdb.db.engine.storagegroup.VirtualStorageGroupProcessor.<init>(VirtualStorageGroupProcessor.java:404)
              at org.apache.iotdb.db.engine.StorageEngine.buildNewStorageGroupProcessor(StorageEngine.java:707)
              at org.apache.iotdb.db.engine.storagegroup.virtualSg.StorageGroupManager.lambda$asyncRecover$0(StorageGroupManager.java:244)
              at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
              at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
              at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
              at java.base/java.lang.Thread.run(Thread.java:834)
       

      Attachments

        Issue Links

          Activity

            People

              cpaulyz yanze chen
              cpaulyz yanze chen
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: