[ 
https://issues.apache.org/jira/browse/IOTDB-105?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

EJTTianyu closed IOTDB-105.
---------------------------
    Resolution: Fixed

> IoTDB lock bug
> --------------
>
>                 Key: IOTDB-105
>                 URL: https://issues.apache.org/jira/browse/IOTDB-105
>             Project: Apache IoTDB
>          Issue Type: Bug
>            Reporter: EJTTianyu
>            Priority: Major
>              Labels: pull-request-available
>         Attachments: IoTDB restart Bug.docx
>
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> 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.14#76016)

Reply via email to