Uploaded image for project: 'RChain'
  1. RCHAIN-3753

assert error when receive a block with invalid block number

    Details

    • Type: Bug
    • Status: In Progress
    • Priority: Medium
    • Resolution: Unresolved
    • Affects versions: None
    • Fix versions: None
    • Components: None
    • Labels:
      None
    • Sprint:
      Sprint 37
    • Story Points:
      3

      Description

      When a node receive an invalid block, the node would catch a traceback instead of slashing the node.

      rchain-dnznn.bonded-validator-2: 08:39:08.857 [tl-dispatcher-server-send-74] WARN  coop.rchain.casper.Validate$ - Ignoring block 5d016a1e46... because block number 1000 is not one more than maximum parent number 0.
      rchain-dnznn.bonded-validator-2: 08:39:08.859 [tl-dispatcher-server-send-74] WARN  c.r.casper.MultiParentCasperImpl - Recording invalid block 5d016a1e46... for InvalidBlockNumber.
      rchain-dnznn.bonded-validator-2: java.lang.AssertionError: assertion failed
      rchain-dnznn.bonded-validator-2:        at scala.Predef$.assert(Predef.scala:208)
      rchain-dnznn.bonded-validator-2:        at coop.rchain.blockstorage.util.TopologicalSortUtil$.update(TopologicalSortUtil.scala:17)
      rchain-dnznn.bonded-validator-2:        at coop.rchain.blockstorage.BlockDagFileStorage.$anonfun$insert$14(BlockDagFileStorage.scala:491)
      rchain-dnznn.bonded-validator-2:        at coop.rchain.blockstorage.BlockDagFileStorage.$anonfun$modifyTopoSort$1(BlockDagFileStorage.scala:143)
      rchain-dnznn.bonded-validator-2:        at coop.rchain.shared.AtomicMonadState.$anonfun$modify$1(AtomicMonadState.scala:15)
      rchain-dnznn.bonded-validator-2:        at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
      rchain-dnznn.bonded-validator-2:        at monix.eval.internal.TaskRunLoop$.startFull(TaskRunLoop.scala:81)
      rchain-dnznn.bonded-validator-2:        at monix.eval.Task$.unsafeStartNow(Task.scala:4459)
      rchain-dnznn.bonded-validator-2:        at monix.eval.internal.TaskBracket$BaseStart$$anon$1.onSuccess(TaskBracket.scala:136)
      rchain-dnznn.bonded-validator-2:        at monix.eval.internal.TaskRunLoop$.startFull(TaskRunLoop.scala:164)
      rchain-dnznn.bonded-validator-2:        at monix.eval.Task$.unsafeStartNow(Task.scala:4459)
      rchain-dnznn.bonded-validator-2:        at monix.eval.internal.TaskBracket$BaseStart.apply(TaskBracket.scala:123)
      rchain-dnznn.bonded-validator-2:        at monix.eval.internal.TaskBracket$BaseStart.apply(TaskBracket.scala:113)
      rchain-dnznn.bonded-validator-2:        at monix.eval.internal.TaskRestartCallback.run(TaskRestartCallback.scala:65)
      rchain-dnznn.bonded-validator-2:        at monix.execution.internal.Trampoline.monix$execution$internal$Trampoline$$immediateLoop(Trampoline.scala:66)
      rchain-dnznn.bonded-validator-2:        at monix.execution.internal.Trampoline.startLoop(Trampoline.scala:32)
      rchain-dnznn.bonded-validator-2:        at monix.execution.schedulers.TrampolineExecutionContext$JVMOptimalTrampoline.startLoop(TrampolineExecutionContext.scala:143)
      rchain-dnznn.bonded-validator-2:        at monix.execution.internal.Trampoline.execute(Trampoline.scala:40)
      rchain-dnznn.bonded-validator-2:        at monix.execution.schedulers.TrampolineExecutionContext.execute(TrampolineExecutionContext.scala:63)
      rchain-dnznn.bonded-validator-2:        at monix.execution.schedulers.BatchingScheduler.execute(BatchingScheduler.scala:50)
      rchain-dnznn.bonded-validator-2:        at monix.execution.schedulers.BatchingScheduler.execute$(BatchingScheduler.scala:47)
      rchain-dnznn.bonded-validator-2:        at monix.execution.schedulers.ExecutorScheduler.execute(ExecutorScheduler.scala:37)
      rchain-dnznn.bonded-validator-2:        at monix.execution.Callback$Base.onSuccess(Callback.scala:224)
      rchain-dnznn.bonded-validator-2:        at monix.execution.Callback.apply(Callback.scala:48)
      rchain-dnznn.bonded-validator-2:        at monix.execution.Callback.apply(Callback.scala:40)
      rchain-dnznn.bonded-validator-2:        at cats.effect.internals.MVarConcurrent.unsafeRead(MVarConcurrent.scala:225)
      rchain-dnznn.bonded-validator-2:        at cats.effect.internals.MVarConcurrent.$anonfun$read$1(MVarConcurrent.scala:60)
      rchain-dnznn.bonded-validator-2:        at monix.eval.internal.TaskCreate$.$anonfun$cancelableEffect$1(TaskCreate.scala:72)
      rchain-dnznn.bonded-validator-2:        at monix.eval.internal.TaskCreate$Cancelable0Start.apply(TaskCreate.scala:53)
      rchain-dnznn.bonded-validator-2:        at monix.eval.internal.TaskCreate$Cancelable0Start.apply(TaskCreate.scala:41)
      rchain-dnznn.bonded-validator-2:        at monix.eval.internal.TaskRestartCallback.start(TaskRestartCallback.scala:58)
      rchain-dnznn.bonded-validator-2:        at monix.eval.internal.TaskRunLoop$.executeAsyncTask(TaskRunLoop.scala:583)
      rchain-dnznn.bonded-validator-2:        at monix.eval.internal.TaskRunLoop$.startFull(TaskRunLoop.scala:120)
      rchain-dnznn.bonded-validator-2:        at monix.eval.Task$.unsafeStartNow(Task.scala:4459)
      rchain-dnznn.bonded-validator-2:        at monix.eval.internal.TaskDoOnCancel$.$anonfun$apply$1(TaskDoOnCancel.scala:37)
      rchain-dnznn.bonded-validator-2:        at monix.eval.internal.TaskDoOnCancel$.$anonfun$apply$1$adapted(TaskDoOnCancel.scala:31)
      rchain-dnznn.bonded-validator-2:        at monix.eval.internal.TaskRestartCallback.start(TaskRestartCallback.scala:58)
      rchain-dnznn.bonded-validator-2:        at monix.eval.internal.TaskRunLoop$.executeAsyncTask(TaskRunLoop.scala:583)
      rchain-dnznn.bonded-validator-2:        at monix.eval.internal.TaskRunLoop$.goAsyncForLightCB(TaskRunLoop.scala:608)
      rchain-dnznn.bonded-validator-2:        at monix.eval.internal.TaskRunLoop$.startLight(TaskRunLoop.scala:310)
      rchain-dnznn.bonded-validator-2:        at monix.eval.Task.runAsyncOptF(Task.scala:805)
      rchain-dnznn.bonded-validator-2:        at monix.eval.Task.runAsyncOpt(Task.scala:705)
      rchain-dnznn.bonded-validator-2:        at monix.eval.Task.runAsync(Task.scala:656)
      rchain-dnznn.bonded-validator-2:        at monix.reactive.internal.operators.MapParallelUnorderedObservable$MapAsyncParallelSubscription.process(MapParallelUnorderedObservable.scala:127)
      rchain-dnznn.bonded-validator-2:        at monix.reactive.internal.operators.MapParallelUnorderedObservable$MapAsyncParallelSubscription.$anonfun$onNext$2(MapParallelUnorderedObservable.scala:156)
      rchain-dnznn.bonded-validator-2:        at monix.execution.Ack$$anon$1.run(Ack.scala:54)
      rchain-dnznn.bonded-validator-2:        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
      rchain-dnznn.bonded-validator-2:        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
      rchain-dnznn.bonded-validator-2:        at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
      rchain-dnznn.bonded-validator-2:        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
      rchain-dnznn.bonded-validator-2:        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
      rchain-dnznn.bonded-validator-2:        at java.base/java.lang.Thread.run(Thread.java:834)
      

        Attachments

          Issue links

            Activity

              People

              • Assignee:
                daniyar Daniyar Itegulov
                Reporter:
                157747074 Will Qiu
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated: