You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@iotdb.apache.org by "lisijia (Jira)" <ji...@apache.org> on 2021/08/30 08:05:00 UTC

[jira] [Commented] (IOTDB-1582) Check-log-applier failed in cluster version

    [ https://issues.apache.org/jira/browse/IOTDB-1582?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17406610#comment-17406610 ] 

lisijia commented on IOTDB-1582:
--------------------------------

This question seems caused by concurrency.

 

When _check-log-applier-Node_ try to get __ log in _commitedEntries_, values of _commitedEntries_ might be changed by _compactLog._

There just some logs of error level, but does not affect the function.

 

Maybe we can fix it when refactor the code later.  Otherwise, This revision makes no sense that we just catch the exception and do nothing,or try to add a lock in _check-log-applier-Node that_ may affect efficiency of _commitTo_.  

> Check-log-applier failed in cluster version
> -------------------------------------------
>
>                 Key: IOTDB-1582
>                 URL: https://issues.apache.org/jira/browse/IOTDB-1582
>             Project: Apache IoTDB
>          Issue Type: Bug
>          Components: Core/Cluster
>    Affects Versions: master branch, 0.12.0
>            Reporter: lisijia
>            Priority: Minor
>
> In released v0.12, three nodes and three replications. And i have 20 strorage group,100000 devices,and each device has 30 sensors.Write continuously for a few minutes at a time, then stop for a few minutes and continue writing. This is the abnormal information in the server log. 
>  
> {code:java}
> 2021-08-10 13:23:02,335 [check-log-applier-Node(internalIp: x.x.x.x, metaPort:9003, nodeIdentifier:185043799, dataPort:40010, clientPort:6667, clientIp:0.0.0.0)] ERROR o.a.i.c.l.m.RaftLogManager:918 - Node(internalIp: x.x.x.x, metaPort:9003, nodeIdentifier:185043799, dataPort:40010, clientPort:6667, clientIp:0.0.0.0), an exception occurred when checking the applied log index
> java.lang.IndexOutOfBoundsException: Index: 1965, Size: 1001
>  at java.util.ArrayList.rangeCheck(ArrayList.java:657)
>  at java.util.ArrayList.get(ArrayList.java:433)
>  at java.util.Collections$SynchronizedList.get(Collections.java:2417)
>  at org.apache.iotdb.cluster.log.manage.CommittedEntryManager.getEntry(CommittedEntryManager.java:188)
>  at org.apache.iotdb.cluster.log.manage.RaftLogManager.doCheckAppliedLogIndex(RaftLogManager.java:937)
>  at org.apache.iotdb.cluster.log.manage.RaftLogManager.checkAppliedLogIndex(RaftLogManager.java:916)
>  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>  at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>  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 problem does not affect the client side, but the server side is confusing.  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)