EJTTianyu created IOTDB-105:
-------------------------------

             Summary: IoTDB lock bug
                 Key: IOTDB-105
                 URL: https://issues.apache.org/jira/browse/IOTDB-105
             Project: Apache IoTDB
          Issue Type: Bug
            Reporter: EJTTianyu
         Attachments: IoTDB restart Bug.docx

We conducted a long-term test using benchmark with the test parameters as:
 * client:50
 * device:2000
 * sensor:100

IoTDB throws an exception in the test. When we would like to restart the IoTDB, 
in the procedure of merge overflow data, exception occured when merge process 
was about to end like following:
{code:java}
ERROR org.apache.iotdb.db.concurrent.IoTDBDefaultThreadExceptionHandler:31 - 
Exception in thread main-1
java.lang.IllegalMonitorStateException: null
at 
java.util.concurrent.locks.ReentrantReadWriteLock$Sync.tryRelease(ReentrantReadWriteLock.java:371)
at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.release(AbstractQueuedSynchronizer.java:1261)
at 
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock(ReentrantReadWriteLock.java:1131)
at org.apache.iotdb.db.engine.Processor.writeUnlock(Processor.java:75)
at 
org.apache.iotdb.db.engine.filenode.FileNodeManager.recovery(FileNodeManager.java:263)
at org.apache.iotdb.db.service.IoTDB.setUp(IoTDB.java:85)
at org.apache.iotdb.db.service.IoTDB.active(IoTDB.java:69)
at org.apache.iotdb.db.service.IoTDB.main(IoTDB.java:55)
{code}
We found the exception file: 
org/apache/iotdb/db/engine/filenode/FileNodeManager.java

The exception reason is that we unlock the unlocked files.

We used the try-catch and merged the overflow data. Then IoTDB could be 
restarted successfully with the delete thread exception which not influence the 
function of IoTDB(actually, we test the query and insert function).The delete 
thread exception is like following:
{code:java}
ERROR org.apache.iotdb.db.monitor.StatMonitor$StatBackLoop:372 - Error occurred 
in Stat Monitor thread
java.lang.NullPointerException: null
at 
org.apache.iotdb.db.engine.filenode.FileNodeManager.delete(FileNodeManager.java:546)
at 
org.apache.iotdb.db.monitor.StatMonitor$StatBackLoop.run(StatMonitor.java:357)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to