[info] welcome to sbt 1.9.8 (Ubuntu Java 11.0.21) [info] loading settings for project choam-build from build.sbt,plugins.sbt ... [info] loading project definition from /home/Evgeniy.Moiseenko/projects/scala/choam/project [info] loading settings for project choam from build.sbt ... [info] resolving key references (44380 settings) ... [info] set scmInfo to https://github.com/durban/choam [info] set current project to choam (in build file:/home/Evgeniy.Moiseenko/projects/scala/choam/) [info] compiling 2 Scala sources to /home/Evgeniy.Moiseenko/projects/scala/choam/mcas/jvm/target/scala-2.13/classes ... [info] done compiling [info] compiling 6 Scala sources to /home/Evgeniy.Moiseenko/projects/scala/choam/mcas/jvm/target/scala-2.13/test-classes ... [info] compiling 2 Scala sources to /home/Evgeniy.Moiseenko/projects/scala/choam/core/jvm/target/scala-2.13/classes ... [info] done compiling [info] done compiling [info] compiling 1 Scala source to /home/Evgeniy.Moiseenko/projects/scala/choam/core/jvm/target/scala-2.13/test-classes ... [info] done compiling [info] compiling 1 Scala source to /home/Evgeniy.Moiseenko/projects/scala/choam/stress/stress-linchk/target/scala-2.13/test-classes ... [info] done compiling dev.tauri.choam.data.TtrieModelTest: ==> i dev.tauri.choam.data.TtrieModelTest.Model checking Ttrie.apply ignored 0.0s ==> X dev.tauri.choam.data.TtrieModelTest.Model checking Ttrie.skipListBased 8.793s java.lang.IllegalStateException: Non-determinism found. Probably caused by non-deterministic code (WeakHashMap, Object.hashCode, etc). == Reporting the first execution without execution trace == = The algorithm should be non-blocking, but an active lock is detected = | --------------------------------------------------------------- | | Thread 1 | Thread 2 | | --------------------------------------------------------------- | | insert(Ve, hF1iwXTfVYhRYXG) | | | lookup(ez) | | | --------------------------------------------------------------- | | lookup(zE) | lookup(2W8) | | lookup(q3_) | lookup(Pvx) | | lookup(hDjR) | insert(S3Qwv, t4m5fQnVDGfvpd8) | | --------------------------------------------------------------- | | insert(7bSl3, OOfbSFKGKWr0c x) | | | --------------------------------------------------------------- | == Reporting the second execution == = The execution failed with an unexpected exception = | --------------------------------------------------------------- | | Thread 1 | Thread 2 | | --------------------------------------------------------------- | | insert(Ve, hF1iwXTfVYhRYXG) | | | lookup(ez) | | | --------------------------------------------------------------- | | lookup(zE) | lookup(2W8) | | lookup(q3_) | lookup(Pvx) | | lookup(hDjR) | insert(S3Qwv, t4m5fQnVDGfvpd8) | | --------------------------------------------------------------- | | insert(7bSl3, OOfbSFKGKWr0c x) | | | --------------------------------------------------------------- | java.lang.IllegalArgumentException: Internal error at org.jetbrains.kotlinx.lincheck.strategy.managed.ManagedStrategy$ReplayModeLoopDetectorHelper.onNextExecution(ManagedStrategy.kt:1197) at org.jetbrains.kotlinx.lincheck.strategy.managed.ManagedStrategy$LoopDetector.onNextExecutionPoint(ManagedStrategy.kt:1051) at org.jetbrains.kotlinx.lincheck.strategy.managed.ManagedStrategy$LoopDetector.onThreadFinish(ManagedStrategy.kt:1010) at org.jetbrains.kotlinx.lincheck.strategy.managed.ManagedStrategy.onFinish(ManagedStrategy.kt:379) at org.jetbrains.kotlinx.lincheck.strategy.managed.ManagedStrategyRunner.onFinish(ManagedStrategy.kt:1251) at org.jetbrains.kotlinx.lincheck.runner.TestThreadExecution26.run(Unknown Source) at org.jetbrains.kotlinx.lincheck.runner.FixedActiveThreadsExecutor.testThreadRunnable$lambda$8(FixedActiveThreadsExecutor.kt:151) at java.base/java.lang.Thread.run(Thread.java:829) The following interleaving leads to the error: | -------------------------------------- | | Thread 1 | Thread 2 | | -------------------------------------- | | insert(Ve, hF1iwXTfVYhRYXG) | | | lookup(ez) | | | -------------------------------------- | | lookup(zE) | | | lookup(q3_) | | | lookup(hDjR) | | | -------------------------------------- | Detailed trace: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Thread 1 | Thread 2 | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | insert(Ve, hF1iwXTfVYhRYXG) | | | unsafePerform(Tuple2@1,Emcas@1,StrategySpin@1): None$@1 at TtrieModelTest$AbstractTestState.insert(TtrieModelTest.scala:61) | | | interpret(): None$@1 at Rxn.unsafePerform(Rxn.scala:260) | | | currentContext(): EmcasThreadContext@1 at Rxn$InterpreterState.interpret(Rxn.scala:1545) | | | currentContextInternal(): EmcasThreadContext@1 at Emcas.currentContext(Emcas.scala:699) | | | newThreadContext(): EmcasThreadContext@1 at GlobalContext.currentContextInternal(GlobalContext.scala:60) | | | (Emcas@1,38) at GlobalContext.newThreadContext(GlobalContext.scala:53) | | | () at EmcasThreadContext.(EmcasThreadContext.scala:29) | | | empty(): EmptyMap$@1 at EmcasThreadContextBase.(EmcasThreadContextBase.java:54) | | | put(38,WeakReference@1): None$@1 at GlobalContext.currentContextInternal(GlobalContext.scala:64) | | | doPut(38,WeakReference@1,false,ThreadLocalRandom@1): None$@1 at SkipListMap.put(SkipListMap.scala:147) | | | getAcquire(): Index@1 at SkipListMap.doPut(SkipListMap.scala:295) | | | walkRight(Index@1,38): Index@1 at SkipListMap.doPut(SkipListMap.scala:311) | | | getAcquire(): null at SkipListMap.walkRight(SkipListMap.scala:104) | | | getAcquire(Index@1): null at AtomicReference.getAcquire(AtomicReference.java:333) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$getNext(): Node@1 at SkipListMap.doPut(SkipListMap.scala:332) | | | getAcquire(): Node@1 at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$getNext(SkipListMap.scala:75) | | | getAcquire(Node@2): Node@1 at AtomicReference.getAcquire(AtomicReference.java:333) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$getValue(): WeakReference@2 at SkipListMap.doPut(SkipListMap.scala:341) | | | getAcquire(): WeakReference@2 at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$getValue(SkipListMap.scala:83) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$getNext(): null at SkipListMap.doPut(SkipListMap.scala:332) | | | getAcquire(): null at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$getNext(SkipListMap.scala:75) | | | getAcquire(Node@1): null at AtomicReference.getAcquire(AtomicReference.java:333) | | | (SkipListMap@1,38,WeakReference@1,null) at SkipListMap.doPut(SkipListMap.scala:359) | | | (WeakReference@1) at SkipListMap$Node.(SkipListMap.scala:63) | | | (SkipListMap@1,38,AtomicReference@1,null) at SkipListMap$Node.(SkipListMap.scala:63) | | | (null) at SkipListMap$Node.(SkipListMap.scala:60) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$casNext(null,Node@3): true at SkipListMap.doPut(SkipListMap.scala:360) | | | compareAndSet(null,Node@3): true at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$casNext(SkipListMap.scala:79) | | | compareAndSet(Node@1,null,Node@3): true at AtomicReference.compareAndSet(AtomicReference.java:122) | | | random.READ: Random@1 at SkipListMap.doPut(SkipListMap.scala:370) | | | maybeGcThreadContexts(ThreadLocalRandom@1) at GlobalContext.currentContextInternal(GlobalContext.scala:66) | | | random.READ: Random@1 at GlobalContext.maybeGcThreadContexts(GlobalContext.scala:188) | | | interpretWithContext(EmcasThreadContext@1): None$@1 at Rxn$InterpreterState.interpret(Rxn.scala:1545) | | | loop(FlatMapF@1): None$@1 at Rxn$InterpreterState.interpretWithContext(Rxn.scala:1552) | | | apply(BoxedUnit@1): FlatMapF@2 at Rxn$InterpreterState.loop(Rxn.scala:1310) | | | apply(): FlatMapF@2 at Axn$unsafe$.$anonfun$delay$1(Axn.scala:36) | | | unsafe(Init$@1): RefP1@1 at Ttrie.$anonfun$getRefWithKey$1(Ttrie.scala:107) | | | unsafePadded(Init$@1): RefP1@1 at Ref$.unsafe(Ref.scala:128) | | | random.READ: Random@1 at Ref$.unsafePadded(Ref.scala:132) | | | random.READ: Random@1 at Ref$.unsafePadded(Ref.scala:132) | | | random.READ: Random@1 at Ref$.unsafePadded(Ref.scala:132) | | | random.READ: Random@1 at Ref$.unsafePadded(Ref.scala:132) | | | putIfAbsent(Ve,RefP1@1): None$@1 at Ttrie.$anonfun$getRefWithKey$1(Ttrie.scala:108) | | | doPut(Ve,RefP1@1,true,ThreadLocalRandom@1): None$@1 at SkipListMap.putIfAbsent(SkipListMap.scala:152) | | | getAcquire(): Index@2 at SkipListMap.doPut(SkipListMap.scala:295) | | | walkRight(Index@2,Ve): Index@2 at SkipListMap.doPut(SkipListMap.scala:311) | | | getAcquire(): null at SkipListMap.walkRight(SkipListMap.scala:104) | | | getAcquire(Index@2): null at AtomicReference.getAcquire(AtomicReference.java:333) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$getNext(): null at SkipListMap.doPut(SkipListMap.scala:332) | | | getAcquire(): null at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$getNext(SkipListMap.scala:75) | | | getAcquire(Node@4): null at AtomicReference.getAcquire(AtomicReference.java:333) | | | (SkipListMap@2,Ve,RefP1@1,null) at SkipListMap.doPut(SkipListMap.scala:359) | | | (RefP1@1) at SkipListMap$Node.(SkipListMap.scala:63) | | | (SkipListMap@2,Ve,AtomicReference@2,null) at SkipListMap$Node.(SkipListMap.scala:63) | | | (null) at SkipListMap$Node.(SkipListMap.scala:60) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$casNext(null,Node@5): true at SkipListMap.doPut(SkipListMap.scala:360) | | | compareAndSet(null,Node@5): true at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$casNext(SkipListMap.scala:79) | | | compareAndSet(Node@4,null,Node@5): true at AtomicReference.compareAndSet(AtomicReference.java:122) | | | random.READ: Random@1 at SkipListMap.doPut(SkipListMap.scala:370) | | | readMaybeFromLog(RefP1@1): HalfWordDescriptor@1 at Rxn$InterpreterState.loop(Rxn.scala:1464) | | | desc(): Descriptor@1 at Rxn$InterpreterState.readMaybeFromLog(Rxn.scala:1205) | | | start(): Descriptor@1 at Rxn$InterpreterState.desc(Rxn.scala:928) | | | getCommitTs(): -9223372036854775807 at EmcasThreadContext.start(EmcasThreadContext.scala:134) | | | commitTs.READ: -9223372036854775807 at GlobalContextBase.getCommitTs(GlobalContextBase.java:43) | | | readIntoHwd(RefP1@1): HalfWordDescriptor@1 at Rxn$InterpreterState.readMaybeFromLog(Rxn.scala:1208) | | | readValue(RefP1@1,EmcasThreadContext@1,true): HalfWordDescriptor@1 at EmcasThreadContext.readIntoHwd(EmcasThreadContext.scala:125) | | | unsafeGetVersionVolatile(): -9223372036854775808 at Emcas.readValue(Emcas.scala:272) | | | version.READ: -9223372036854775808 at RefP1.unsafeGetVersionVolatile(RefP1.java:105) | | | go$1(null,-9223372036854775808,RefP1@1,EmcasThreadContext@1,true): HalfWordDescriptor@1 at Emcas.readValue(Emcas.scala:272) | | | unsafeGetVolatile(): Init$@1 at Emcas.go$1(Emcas.scala:212) | | | value.READ: Init$@1 at RefP1.unsafeGetVolatile(RefP1.java:75) | | | unsafeGetVersionVolatile(): -9223372036854775808 at Emcas.go$1(Emcas.scala:263) | | | version.READ: -9223372036854775808 at RefP1.unsafeGetVersionVolatile(RefP1.java:105) | | | forceValidate(null): true at Rxn$InterpreterState.loop(Rxn.scala:1494) | | | validateAndTryExtend(Descriptor@2,null): Descriptor@2 at Rxn$InterpreterState.forceValidate(Rxn.scala:1231) | | | getCommitTs(): -9223372036854775807 at EmcasThreadContext.validateAndTryExtend(EmcasThreadContext.scala:143) | | | commitTs.READ: -9223372036854775807 at GlobalContextBase.getCommitTs(GlobalContextBase.java:43) | | | casLoop(): true at Rxn$InterpreterState.loop(Rxn.scala:1273) | | | tryPerform(Descriptor@3): 9223372036854775805 at Rxn$InterpreterState.casLoop(Rxn.scala:1245) | | | tryPerform$(EmcasThreadContext@1,Descriptor@3): 9223372036854775805 at EmcasThreadContext.tryPerform(EmcasThreadContext.scala:26) | | | tryPerform(Descriptor@3): 9223372036854775805 at Mcas$ThreadContext.tryPerform$(Mcas.scala:158) | | | tryPerformInternal(Descriptor@3): 9223372036854775805 at Mcas$ThreadContext.tryPerform(Mcas.scala:169) | | | tryPerformDebug(Descriptor@3,EmcasThreadContext@1): 9223372036854775805 at EmcasThreadContext.tryPerformInternal(EmcasThreadContext.scala:119) | | | MCAS(EmcasDescriptor@1,EmcasThreadContext@1): -9223372036854775806 at Emcas.tryPerformDebug(Emcas.scala:711) | | | go$2(Iterator@1,EmcasThreadContext@1,EmcasDescriptor@1): 9223372036854775805 at Emcas.MCAS(Emcas.scala:563) | | | tryWord$1(WordDescriptor@1,EmcasThreadContext@1,EmcasDescriptor@1): 9223372036854775805 at Emcas.go$2(Emcas.scala:543) | | | unsafeGetVersionVolatile(): -9223372036854775808 at Emcas.tryWord$1(Emcas.scala:382) | | | version.READ: -9223372036854775808 at RefP1.unsafeGetVersionVolatile(RefP1.java:105) | | | unsafeGetVolatile(): Init$@1 at Emcas.tryWord$1(Emcas.scala:393) | | | value.READ: Init$@1 at RefP1.unsafeGetVolatile(RefP1.java:75) | | | unsafeGetVersionVolatile(): -9223372036854775808 at Emcas.tryWord$1(Emcas.scala:461) | | | version.READ: -9223372036854775808 at RefP1.unsafeGetVersionVolatile(RefP1.java:105) | | | unsafeGetMarkerVolatile(): null at Emcas.tryWord$1(Emcas.scala:465) | | | marker.READ: null at RefP1.unsafeGetMarkerVolatile(RefP1.java:120) | | | unsafeCasMarkerVolatile(null,WeakReference@3): true at Emcas.tryWord$1(Emcas.scala:512) | | | compareAndSet(RefP1@1,null,WeakReference@3): true at RefP1.unsafeCasMarkerVolatile(RefP1.java:125) | | | unsafeCasVolatile(Init$@1,WordDescriptor@1): true at Emcas.tryWord$1(Emcas.scala:525) | | | compareAndSet(RefP1@1,Init$@1,WordDescriptor@1): true at RefP1.unsafeCasVolatile(RefP1.java:95) | | | retrieveFreshTs(): -9223372036854775806 at Emcas.MCAS(Emcas.scala:612) | | | getCommitTs(): -9223372036854775807 at Emcas.retrieveFreshTs(Emcas.scala:677) | | | commitTs.READ: -9223372036854775807 at GlobalContextBase.getCommitTs(GlobalContextBase.java:43) | | | getCommitTs(): -9223372036854775807 at Emcas.retrieveFreshTs(Emcas.scala:678) | | | commitTs.READ: -9223372036854775807 at GlobalContextBase.getCommitTs(GlobalContextBase.java:43) | | | cmpxchgCommitTs(-9223372036854775807,-9223372036854775806): -9223372036854775807 at Emcas.retrieveFreshTs(Emcas.scala:686) | | | compareAndExchange(Emcas@1,-9223372036854775807,-9223372036854775806): -9223372036854775807 at GlobalContextBase.cmpxchgCommitTs(GlobalContextBase.java:47) | | | cmpxchgStatus(9223372036854775806,-9223372036854775806): 9223372036854775806 at Emcas.MCAS(Emcas.scala:616) | | | compareAndExchange(EmcasDescriptor@1,9223372036854775806,-9223372036854775806): 9223372036854775806 at EmcasDescriptorBase.cmpxchgStatus(EmcasDescriptorBase.java:52) | | | wasFinalized() at Emcas.MCAS(Emcas.scala:619) | | | WRITE(null) at EmcasDescriptor.wasFinalized(EmcasDescriptor.scala:74) | | | lookup(ez) | | | unsafePerform(ez,Emcas@1,StrategySpin@1): None$@1 at TtrieModelTest$AbstractTestState.lookup(TtrieModelTest.scala:71) | | | interpret(): None$@1 at Rxn.unsafePerform(Rxn.scala:260) | | | interpretWithContext(EmcasThreadContext@1): None$@1 at Rxn$InterpreterState.interpret(Rxn.scala:1545) | | | loop(Computed@1): None$@1 at Rxn$InterpreterState.interpretWithContext(Rxn.scala:1552) | | | apply(BoxedUnit@1): FlatMapF@3 at Rxn$InterpreterState.loop(Rxn.scala:1310) | | | apply(): FlatMapF@3 at Axn$unsafe$.$anonfun$delay$1(Axn.scala:36) | | | unsafe(Init$@1): RefP1@2 at Ttrie.$anonfun$getRefWithKey$1(Ttrie.scala:107) | | | unsafePadded(Init$@1): RefP1@2 at Ref$.unsafe(Ref.scala:128) | | | random.READ: Random@1 at Ref$.unsafePadded(Ref.scala:132) | | | random.READ: Random@1 at Ref$.unsafePadded(Ref.scala:132) | | | random.READ: Random@1 at Ref$.unsafePadded(Ref.scala:132) | | | random.READ: Random@1 at Ref$.unsafePadded(Ref.scala:132) | | | putIfAbsent(ez,RefP1@2): None$@1 at Ttrie.$anonfun$getRefWithKey$1(Ttrie.scala:108) | | | doPut(ez,RefP1@2,true,ThreadLocalRandom@1): None$@1 at SkipListMap.putIfAbsent(SkipListMap.scala:152) | | | getAcquire(): Index@2 at SkipListMap.doPut(SkipListMap.scala:295) | | | walkRight(Index@2,ez): Index@2 at SkipListMap.doPut(SkipListMap.scala:311) | | | getAcquire(): null at SkipListMap.walkRight(SkipListMap.scala:104) | | | getAcquire(Index@2): null at AtomicReference.getAcquire(AtomicReference.java:333) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$getNext(): Node@5 at SkipListMap.doPut(SkipListMap.scala:332) | | | getAcquire(): Node@5 at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$getNext(SkipListMap.scala:75) | | | getAcquire(Node@4): Node@5 at AtomicReference.getAcquire(AtomicReference.java:333) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$getValue(): RefP1@1 at SkipListMap.doPut(SkipListMap.scala:341) | | | getAcquire(): RefP1@1 at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$getValue(SkipListMap.scala:83) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$getNext(): null at SkipListMap.doPut(SkipListMap.scala:332) | | | getAcquire(): null at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$getNext(SkipListMap.scala:75) | | | getAcquire(Node@5): null at AtomicReference.getAcquire(AtomicReference.java:333) | | | (SkipListMap@2,ez,RefP1@2,null) at SkipListMap.doPut(SkipListMap.scala:359) | | | (RefP1@2) at SkipListMap$Node.(SkipListMap.scala:63) | | | (SkipListMap@2,ez,AtomicReference@3,null) at SkipListMap$Node.(SkipListMap.scala:63) | | | (null) at SkipListMap$Node.(SkipListMap.scala:60) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$casNext(null,Node@6): true at SkipListMap.doPut(SkipListMap.scala:360) | | | compareAndSet(null,Node@6): true at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$casNext(SkipListMap.scala:79) | | | compareAndSet(Node@5,null,Node@6): true at AtomicReference.compareAndSet(AtomicReference.java:122) | | | random.READ: Random@1 at SkipListMap.doPut(SkipListMap.scala:370) | | | readMaybeFromLog(RefP1@2): HalfWordDescriptor@2 at Rxn$InterpreterState.loop(Rxn.scala:1464) | | | desc(): Descriptor@4 at Rxn$InterpreterState.readMaybeFromLog(Rxn.scala:1205) | | | start(): Descriptor@4 at Rxn$InterpreterState.desc(Rxn.scala:928) | | | getCommitTs(): -9223372036854775806 at EmcasThreadContext.start(EmcasThreadContext.scala:134) | | | commitTs.READ: -9223372036854775806 at GlobalContextBase.getCommitTs(GlobalContextBase.java:43) | | | readIntoHwd(RefP1@2): HalfWordDescriptor@2 at Rxn$InterpreterState.readMaybeFromLog(Rxn.scala:1208) | | | readValue(RefP1@2,EmcasThreadContext@1,true): HalfWordDescriptor@2 at EmcasThreadContext.readIntoHwd(EmcasThreadContext.scala:125) | | | unsafeGetVersionVolatile(): -9223372036854775808 at Emcas.readValue(Emcas.scala:272) | | | version.READ: -9223372036854775808 at RefP1.unsafeGetVersionVolatile(RefP1.java:105) | | | go$1(null,-9223372036854775808,RefP1@2,EmcasThreadContext@1,true): HalfWordDescriptor@2 at Emcas.readValue(Emcas.scala:272) | | | unsafeGetVolatile(): Init$@1 at Emcas.go$1(Emcas.scala:212) | | | value.READ: Init$@1 at RefP1.unsafeGetVolatile(RefP1.java:75) | | | unsafeGetVersionVolatile(): -9223372036854775808 at Emcas.go$1(Emcas.scala:263) | | | version.READ: -9223372036854775808 at RefP1.unsafeGetVersionVolatile(RefP1.java:105) | | | forceValidate(null): true at Rxn$InterpreterState.loop(Rxn.scala:1494) | | | validateAndTryExtend(Descriptor@5,null): Descriptor@5 at Rxn$InterpreterState.forceValidate(Rxn.scala:1231) | | | getCommitTs(): -9223372036854775806 at EmcasThreadContext.validateAndTryExtend(EmcasThreadContext.scala:143) | | | commitTs.READ: -9223372036854775806 at GlobalContextBase.getCommitTs(GlobalContextBase.java:43) | | | casLoop(): true at Rxn$InterpreterState.loop(Rxn.scala:1273) | | | tryPerform(Descriptor@6): 9223372036854775805 at Rxn$InterpreterState.casLoop(Rxn.scala:1245) | | | tryPerform$(EmcasThreadContext@1,Descriptor@6): 9223372036854775805 at EmcasThreadContext.tryPerform(EmcasThreadContext.scala:26) | | | tryPerform(Descriptor@6): 9223372036854775805 at Mcas$ThreadContext.tryPerform$(Mcas.scala:158) | | | tryPerformInternal(Descriptor@6): 9223372036854775805 at Mcas$ThreadContext.tryPerform(Mcas.scala:169) | | | tryPerformDebug(Descriptor@6,EmcasThreadContext@1): 9223372036854775805 at EmcasThreadContext.tryPerformInternal(EmcasThreadContext.scala:119) | | | MCAS(EmcasDescriptor@2,EmcasThreadContext@1): -9223372036854775805 at Emcas.tryPerformDebug(Emcas.scala:711) | | | go$2(Iterator@2,EmcasThreadContext@1,EmcasDescriptor@2): 9223372036854775805 at Emcas.MCAS(Emcas.scala:563) | | | tryWord$1(WordDescriptor@2,EmcasThreadContext@1,EmcasDescriptor@2): 9223372036854775805 at Emcas.go$2(Emcas.scala:543) | | | unsafeGetVersionVolatile(): -9223372036854775808 at Emcas.tryWord$1(Emcas.scala:382) | | | version.READ: -9223372036854775808 at RefP1.unsafeGetVersionVolatile(RefP1.java:105) | | | unsafeGetVolatile(): Init$@1 at Emcas.tryWord$1(Emcas.scala:393) | | | value.READ: Init$@1 at RefP1.unsafeGetVolatile(RefP1.java:75) | | | unsafeGetVersionVolatile(): -9223372036854775808 at Emcas.tryWord$1(Emcas.scala:461) | | | version.READ: -9223372036854775808 at RefP1.unsafeGetVersionVolatile(RefP1.java:105) | | | unsafeGetMarkerVolatile(): null at Emcas.tryWord$1(Emcas.scala:465) | | | marker.READ: null at RefP1.unsafeGetMarkerVolatile(RefP1.java:120) | | | unsafeCasMarkerVolatile(null,WeakReference@3): true at Emcas.tryWord$1(Emcas.scala:512) | | | compareAndSet(RefP1@2,null,WeakReference@3): true at RefP1.unsafeCasMarkerVolatile(RefP1.java:125) | | | unsafeCasVolatile(Init$@1,WordDescriptor@2): true at Emcas.tryWord$1(Emcas.scala:525) | | | compareAndSet(RefP1@2,Init$@1,WordDescriptor@2): true at RefP1.unsafeCasVolatile(RefP1.java:95) | | | retrieveFreshTs(): -9223372036854775805 at Emcas.MCAS(Emcas.scala:612) | | | getCommitTs(): -9223372036854775806 at Emcas.retrieveFreshTs(Emcas.scala:677) | | | commitTs.READ: -9223372036854775806 at GlobalContextBase.getCommitTs(GlobalContextBase.java:43) | | | getCommitTs(): -9223372036854775806 at Emcas.retrieveFreshTs(Emcas.scala:678) | | | commitTs.READ: -9223372036854775806 at GlobalContextBase.getCommitTs(GlobalContextBase.java:43) | | | cmpxchgCommitTs(-9223372036854775806,-9223372036854775805): -9223372036854775806 at Emcas.retrieveFreshTs(Emcas.scala:686) | | | compareAndExchange(Emcas@1,-9223372036854775806,-9223372036854775805): -9223372036854775806 at GlobalContextBase.cmpxchgCommitTs(GlobalContextBase.java:47) | | | cmpxchgStatus(9223372036854775806,-9223372036854775805): 9223372036854775806 at Emcas.MCAS(Emcas.scala:616) | | | compareAndExchange(EmcasDescriptor@2,9223372036854775806,-9223372036854775805): 9223372036854775806 at EmcasDescriptorBase.cmpxchgStatus(EmcasDescriptorBase.java:52) | | | wasFinalized() at Emcas.MCAS(Emcas.scala:619) | | | WRITE(null) at EmcasDescriptor.wasFinalized(EmcasDescriptor.scala:74) | | | readDirect(RefP1@2): End$@1 at Rxn$InterpreterState.loop(Rxn.scala:1356) | | | readDirect(RefP1@2,EmcasThreadContext@1): End$@1 at EmcasThreadContext.readDirect(EmcasThreadContext.scala:122) | | | readValue(RefP1@2,EmcasThreadContext@1,true): HalfWordDescriptor@3 at Emcas.readDirect(Emcas.scala:338) | | | unsafeGetVersionVolatile(): -9223372036854775808 at Emcas.readValue(Emcas.scala:272) | | | version.READ: -9223372036854775808 at RefP1.unsafeGetVersionVolatile(RefP1.java:105) | | | go$1(null,-9223372036854775808,RefP1@2,EmcasThreadContext@1,true): HalfWordDescriptor@3 at Emcas.readValue(Emcas.scala:272) | | | unsafeGetVolatile(): WordDescriptor@2 at Emcas.go$1(Emcas.scala:212) | | | value.READ: WordDescriptor@2 at RefP1.unsafeGetVolatile(RefP1.java:75) | | | unsafeGetMarkerVolatile(): WeakReference@3 at Emcas.go$1(Emcas.scala:216) | | | marker.READ: WeakReference@3 at RefP1.unsafeGetMarkerVolatile(RefP1.java:120) | | | unsafeGetVolatile(): WordDescriptor@2 at Emcas.go$1(Emcas.scala:212) | | | value.READ: WordDescriptor@2 at RefP1.unsafeGetVolatile(RefP1.java:75) | | | getStatus(): -9223372036854775805 at Emcas.go$1(Emcas.scala:250) | | | _status.READ: -9223372036854775805 at EmcasDescriptorBase.getStatus(EmcasDescriptorBase.java:44) | | | apply(EmcasThreadContext@1): BoxedUnit@1 at Rxn$InterpreterState.loop(Rxn.scala:1400) | | | $anonfun$cleanupLater$2(Ttrie@1,ez,RefP1@2,EmcasThreadContext@1) at Ttrie.$anonfun$cleanupLater$2$adapted(Ttrie.scala:160) | | | unsafeDelRef(ez,RefP1@2,EmcasThreadContext@1) at Ttrie.$anonfun$cleanupLater$2(Ttrie.scala:160) | | | readDirect(RefP1@2): End$@1 at Ttrie.unsafeDelRef(Ttrie.scala:144) | | | readDirect(RefP1@2,EmcasThreadContext@1): End$@1 at EmcasThreadContext.readDirect(EmcasThreadContext.scala:122) | | | readValue(RefP1@2,EmcasThreadContext@1,true): HalfWordDescriptor@4 at Emcas.readDirect(Emcas.scala:338) | | | unsafeGetVersionVolatile(): -9223372036854775808 at Emcas.readValue(Emcas.scala:272) | | | version.READ: -9223372036854775808 at RefP1.unsafeGetVersionVolatile(RefP1.java:105) | | | go$1(null,-9223372036854775808,RefP1@2,EmcasThreadContext@1,true): HalfWordDescriptor@4 at Emcas.readValue(Emcas.scala:272) | | | unsafeGetVolatile(): WordDescriptor@2 at Emcas.go$1(Emcas.scala:212) | | | value.READ: WordDescriptor@2 at RefP1.unsafeGetVolatile(RefP1.java:75) | | | unsafeGetMarkerVolatile(): WeakReference@3 at Emcas.go$1(Emcas.scala:216) | | | marker.READ: WeakReference@3 at RefP1.unsafeGetMarkerVolatile(RefP1.java:120) | | | unsafeGetVolatile(): WordDescriptor@2 at Emcas.go$1(Emcas.scala:212) | | | value.READ: WordDescriptor@2 at RefP1.unsafeGetVolatile(RefP1.java:75) | | | getStatus(): -9223372036854775805 at Emcas.go$1(Emcas.scala:250) | | | _status.READ: -9223372036854775805 at EmcasDescriptorBase.getStatus(EmcasDescriptorBase.java:44) | | | remove(ez,RefP1@2): true at Ttrie.unsafeDelRef(Ttrie.scala:150) | | | doRemove(ez,RefP1@2): true at SkipListMap.remove(SkipListMap.scala:176) | | | findPredecessor(ez): Node@4 at SkipListMap.doRemove(SkipListMap.scala:575) | | | getAcquire(): Index@2 at SkipListMap.findPredecessor(SkipListMap.scala:802) | | | walkRight(Index@2,ez): Index@2 at SkipListMap.findPredecessor(SkipListMap.scala:808) | | | getAcquire(): null at SkipListMap.walkRight(SkipListMap.scala:104) | | | getAcquire(Index@2): null at AtomicReference.getAcquire(AtomicReference.java:333) | | | getAcquire(): Node@5 at SkipListMap.doRemove(SkipListMap.scala:75) | | | getAcquire(Node@4): Node@5 at AtomicReference.getAcquire(AtomicReference.java:333) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$getValue(): RefP1@1 at SkipListMap.doRemove(SkipListMap.scala:586) | | | getAcquire(): RefP1@1 at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$getValue(SkipListMap.scala:83) | | | getAcquire(): Node@6 at SkipListMap.doRemove(SkipListMap.scala:75) | | | getAcquire(Node@5): Node@6 at AtomicReference.getAcquire(AtomicReference.java:333) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$getValue(): RefP1@2 at SkipListMap.doRemove(SkipListMap.scala:586) | | | getAcquire(): RefP1@2 at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$getValue(SkipListMap.scala:83) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$casValue(RefP1@2,Object@1): true at SkipListMap.doRemove(SkipListMap.scala:599) | | | compareAndSet(RefP1@2,Object@1): true at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$casValue(SkipListMap.scala:87) | | | unlinkNode(Node@5,Node@6) at SkipListMap.doRemove(SkipListMap.scala:601) | | | mark$1(Node@6): null at SkipListMap.unlinkNode(SkipListMap.scala:855) | | | getAcquire(): null at SkipListMap.mark$1(SkipListMap.scala:75) | | | getAcquire(Node@6): null at AtomicReference.getAcquire(AtomicReference.java:333) | | | (SkipListMap@2,Object@2,Object@1,null) at SkipListMap.mark$1(SkipListMap.scala:848) | | | (Object@1) at SkipListMap$Node.(SkipListMap.scala:63) | | | (SkipListMap@2,Object@2,AtomicReference@4,null) at SkipListMap$Node.(SkipListMap.scala:63) | | | (null) at SkipListMap$Node.(SkipListMap.scala:60) | | | compareAndSet(null,Node@7): true at SkipListMap.mark$1(SkipListMap.scala:79) | | | compareAndSet(Node@6,null,Node@7): true at AtomicReference.compareAndSet(AtomicReference.java:122) | | | compareAndSet(Node@6,null): true at SkipListMap.unlinkNode(SkipListMap.scala:79) | | | compareAndSet(Node@5,Node@6,null): true at AtomicReference.compareAndSet(AtomicReference.java:122) | | | findPredecessor(ez): Node@4 at SkipListMap.doRemove(SkipListMap.scala:602) | | | getAcquire(): Index@2 at SkipListMap.findPredecessor(SkipListMap.scala:802) | | | walkRight(Index@2,ez): Index@2 at SkipListMap.findPredecessor(SkipListMap.scala:808) | | | getAcquire(): null at SkipListMap.walkRight(SkipListMap.scala:104) | | | getAcquire(Index@2): null at AtomicReference.getAcquire(AtomicReference.java:333) | | | tryReduceLevel() at SkipListMap.doRemove(SkipListMap.scala:603) | | | getAcquire(): Index@2 at SkipListMap.tryReduceLevel(SkipListMap.scala:889) | | | getAcquire(): null at SkipListMap.tryReduceLevel(SkipListMap.scala:104) | | | getAcquire(Index@2): null at AtomicReference.getAcquire(AtomicReference.java:333) | | | casLoop(): true at Rxn$InterpreterState.loop(Rxn.scala:1273) | | | desc(): Descriptor@7 at Rxn$InterpreterState.casLoop(Rxn.scala:1245) | | | start(): Descriptor@7 at Rxn$InterpreterState.desc(Rxn.scala:928) | | | getCommitTs(): -9223372036854775805 at EmcasThreadContext.start(EmcasThreadContext.scala:134) | | | commitTs.READ: -9223372036854775805 at GlobalContextBase.getCommitTs(GlobalContextBase.java:43) | | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | lookup(zE) | | | unsafePerform(zE,Emcas@1,StrategySpin@1): None$@1 at TtrieModelTest$AbstractTestState.lookup(TtrieModelTest.scala:71) | | | interpret(): None$@1 at Rxn.unsafePerform(Rxn.scala:260) | | | interpretWithContext(EmcasThreadContext@1): None$@1 at Rxn$InterpreterState.interpret(Rxn.scala:1545) | | | loop(Computed@2): None$@1 at Rxn$InterpreterState.interpretWithContext(Rxn.scala:1552) | | | apply(BoxedUnit@1): FlatMapF@4 at Rxn$InterpreterState.loop(Rxn.scala:1310) | | | apply(): FlatMapF@4 at Axn$unsafe$.$anonfun$delay$1(Axn.scala:36) | | | unsafe(Init$@1): RefP1@3 at Ttrie.$anonfun$getRefWithKey$1(Ttrie.scala:107) | | | unsafePadded(Init$@1): RefP1@3 at Ref$.unsafe(Ref.scala:128) | | | random.READ: Random@1 at Ref$.unsafePadded(Ref.scala:132) | | | random.READ: Random@1 at Ref$.unsafePadded(Ref.scala:132) | | | random.READ: Random@1 at Ref$.unsafePadded(Ref.scala:132) | | | random.READ: Random@1 at Ref$.unsafePadded(Ref.scala:132) | | | putIfAbsent(zE,RefP1@3): None$@1 at Ttrie.$anonfun$getRefWithKey$1(Ttrie.scala:108) | | | doPut(zE,RefP1@3,true,ThreadLocalRandom@1): None$@1 at SkipListMap.putIfAbsent(SkipListMap.scala:152) | | | getAcquire(): Index@2 at SkipListMap.doPut(SkipListMap.scala:295) | | | walkRight(Index@2,zE): Index@2 at SkipListMap.doPut(SkipListMap.scala:311) | | | getAcquire(): null at SkipListMap.walkRight(SkipListMap.scala:104) | | | getAcquire(Index@2): null at AtomicReference.getAcquire(AtomicReference.java:333) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$getNext(): Node@5 at SkipListMap.doPut(SkipListMap.scala:332) | | | getAcquire(): Node@5 at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$getNext(SkipListMap.scala:75) | | | getAcquire(Node@4): Node@5 at AtomicReference.getAcquire(AtomicReference.java:333) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$getValue(): RefP1@1 at SkipListMap.doPut(SkipListMap.scala:341) | | | getAcquire(): RefP1@1 at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$getValue(SkipListMap.scala:83) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$getNext(): null at SkipListMap.doPut(SkipListMap.scala:332) | | | getAcquire(): null at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$getNext(SkipListMap.scala:75) | | | getAcquire(Node@5): null at AtomicReference.getAcquire(AtomicReference.java:333) | | | (SkipListMap@2,zE,RefP1@3,null) at SkipListMap.doPut(SkipListMap.scala:359) | | | (RefP1@3) at SkipListMap$Node.(SkipListMap.scala:63) | | | (SkipListMap@2,zE,AtomicReference@5,null) at SkipListMap$Node.(SkipListMap.scala:63) | | | (null) at SkipListMap$Node.(SkipListMap.scala:60) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$casNext(null,Node@8): true at SkipListMap.doPut(SkipListMap.scala:360) | | | compareAndSet(null,Node@8): true at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$casNext(SkipListMap.scala:79) | | | compareAndSet(Node@5,null,Node@8): true at AtomicReference.compareAndSet(AtomicReference.java:122) | | | random.READ: Random@1 at SkipListMap.doPut(SkipListMap.scala:370) | | | readMaybeFromLog(RefP1@3): HalfWordDescriptor@5 at Rxn$InterpreterState.loop(Rxn.scala:1464) | | | desc(): Descriptor@8 at Rxn$InterpreterState.readMaybeFromLog(Rxn.scala:1205) | | | start(): Descriptor@8 at Rxn$InterpreterState.desc(Rxn.scala:928) | | | getCommitTs(): -9223372036854775805 at EmcasThreadContext.start(EmcasThreadContext.scala:134) | | | commitTs.READ: -9223372036854775805 at GlobalContextBase.getCommitTs(GlobalContextBase.java:43) | | | readIntoHwd(RefP1@3): HalfWordDescriptor@5 at Rxn$InterpreterState.readMaybeFromLog(Rxn.scala:1208) | | | readValue(RefP1@3,EmcasThreadContext@1,true): HalfWordDescriptor@5 at EmcasThreadContext.readIntoHwd(EmcasThreadContext.scala:125) | | | unsafeGetVersionVolatile(): -9223372036854775808 at Emcas.readValue(Emcas.scala:272) | | | version.READ: -9223372036854775808 at RefP1.unsafeGetVersionVolatile(RefP1.java:105) | | | go$1(null,-9223372036854775808,RefP1@3,EmcasThreadContext@1,true): HalfWordDescriptor@5 at Emcas.readValue(Emcas.scala:272) | | | unsafeGetVolatile(): Init$@1 at Emcas.go$1(Emcas.scala:212) | | | value.READ: Init$@1 at RefP1.unsafeGetVolatile(RefP1.java:75) | | | unsafeGetVersionVolatile(): -9223372036854775808 at Emcas.go$1(Emcas.scala:263) | | | version.READ: -9223372036854775808 at RefP1.unsafeGetVersionVolatile(RefP1.java:105) | | | forceValidate(null): true at Rxn$InterpreterState.loop(Rxn.scala:1494) | | | validateAndTryExtend(Descriptor@9,null): Descriptor@9 at Rxn$InterpreterState.forceValidate(Rxn.scala:1231) | | | getCommitTs(): -9223372036854775805 at EmcasThreadContext.validateAndTryExtend(EmcasThreadContext.scala:143) | | | commitTs.READ: -9223372036854775805 at GlobalContextBase.getCommitTs(GlobalContextBase.java:43) | | | casLoop(): true at Rxn$InterpreterState.loop(Rxn.scala:1273) | | | tryPerform(Descriptor@10): 9223372036854775805 at Rxn$InterpreterState.casLoop(Rxn.scala:1245) | | | tryPerform$(EmcasThreadContext@1,Descriptor@10): 9223372036854775805 at EmcasThreadContext.tryPerform(EmcasThreadContext.scala:26) | | | tryPerform(Descriptor@10): 9223372036854775805 at Mcas$ThreadContext.tryPerform$(Mcas.scala:158) | | | tryPerformInternal(Descriptor@10): 9223372036854775805 at Mcas$ThreadContext.tryPerform(Mcas.scala:169) | | | tryPerformDebug(Descriptor@10,EmcasThreadContext@1): 9223372036854775805 at EmcasThreadContext.tryPerformInternal(EmcasThreadContext.scala:119) | | | MCAS(EmcasDescriptor@3,EmcasThreadContext@1): -9223372036854775804 at Emcas.tryPerformDebug(Emcas.scala:711) | | | go$2(Iterator@3,EmcasThreadContext@1,EmcasDescriptor@3): 9223372036854775805 at Emcas.MCAS(Emcas.scala:563) | | | tryWord$1(WordDescriptor@3,EmcasThreadContext@1,EmcasDescriptor@3): 9223372036854775805 at Emcas.go$2(Emcas.scala:543) | | | unsafeGetVersionVolatile(): -9223372036854775808 at Emcas.tryWord$1(Emcas.scala:382) | | | version.READ: -9223372036854775808 at RefP1.unsafeGetVersionVolatile(RefP1.java:105) | | | unsafeGetVolatile(): Init$@1 at Emcas.tryWord$1(Emcas.scala:393) | | | value.READ: Init$@1 at RefP1.unsafeGetVolatile(RefP1.java:75) | | | unsafeGetVersionVolatile(): -9223372036854775808 at Emcas.tryWord$1(Emcas.scala:461) | | | version.READ: -9223372036854775808 at RefP1.unsafeGetVersionVolatile(RefP1.java:105) | | | unsafeGetMarkerVolatile(): null at Emcas.tryWord$1(Emcas.scala:465) | | | marker.READ: null at RefP1.unsafeGetMarkerVolatile(RefP1.java:120) | | | unsafeCasMarkerVolatile(null,WeakReference@3): true at Emcas.tryWord$1(Emcas.scala:512) | | | compareAndSet(RefP1@3,null,WeakReference@3): true at RefP1.unsafeCasMarkerVolatile(RefP1.java:125) | | | unsafeCasVolatile(Init$@1,WordDescriptor@3): true at Emcas.tryWord$1(Emcas.scala:525) | | | compareAndSet(RefP1@3,Init$@1,WordDescriptor@3): true at RefP1.unsafeCasVolatile(RefP1.java:95) | | | retrieveFreshTs(): -9223372036854775804 at Emcas.MCAS(Emcas.scala:612) | | | getCommitTs(): -9223372036854775805 at Emcas.retrieveFreshTs(Emcas.scala:677) | | | commitTs.READ: -9223372036854775805 at GlobalContextBase.getCommitTs(GlobalContextBase.java:43) | | | getCommitTs(): -9223372036854775805 at Emcas.retrieveFreshTs(Emcas.scala:678) | | | commitTs.READ: -9223372036854775805 at GlobalContextBase.getCommitTs(GlobalContextBase.java:43) | | | cmpxchgCommitTs(-9223372036854775805,-9223372036854775804): -9223372036854775805 at Emcas.retrieveFreshTs(Emcas.scala:686) | | | compareAndExchange(Emcas@1,-9223372036854775805,-9223372036854775804): -9223372036854775805 at GlobalContextBase.cmpxchgCommitTs(GlobalContextBase.java:47) | | | cmpxchgStatus(9223372036854775806,-9223372036854775804): 9223372036854775806 at Emcas.MCAS(Emcas.scala:616) | | | compareAndExchange(EmcasDescriptor@3,9223372036854775806,-9223372036854775804): 9223372036854775806 at EmcasDescriptorBase.cmpxchgStatus(EmcasDescriptorBase.java:52) | | | wasFinalized() at Emcas.MCAS(Emcas.scala:619) | | | WRITE(null) at EmcasDescriptor.wasFinalized(EmcasDescriptor.scala:74) | | | readDirect(RefP1@3): End$@1 at Rxn$InterpreterState.loop(Rxn.scala:1356) | | | readDirect(RefP1@3,EmcasThreadContext@1): End$@1 at EmcasThreadContext.readDirect(EmcasThreadContext.scala:122) | | | readValue(RefP1@3,EmcasThreadContext@1,true): HalfWordDescriptor@6 at Emcas.readDirect(Emcas.scala:338) | | | unsafeGetVersionVolatile(): -9223372036854775808 at Emcas.readValue(Emcas.scala:272) | | | version.READ: -9223372036854775808 at RefP1.unsafeGetVersionVolatile(RefP1.java:105) | | | go$1(null,-9223372036854775808,RefP1@3,EmcasThreadContext@1,true): HalfWordDescriptor@6 at Emcas.readValue(Emcas.scala:272) | | | unsafeGetVolatile(): WordDescriptor@3 at Emcas.go$1(Emcas.scala:212) | | | value.READ: WordDescriptor@3 at RefP1.unsafeGetVolatile(RefP1.java:75) | | | unsafeGetMarkerVolatile(): WeakReference@3 at Emcas.go$1(Emcas.scala:216) | | | marker.READ: WeakReference@3 at RefP1.unsafeGetMarkerVolatile(RefP1.java:120) | | | unsafeGetVolatile(): WordDescriptor@3 at Emcas.go$1(Emcas.scala:212) | | | value.READ: WordDescriptor@3 at RefP1.unsafeGetVolatile(RefP1.java:75) | | | getStatus(): -9223372036854775804 at Emcas.go$1(Emcas.scala:250) | | | _status.READ: -9223372036854775804 at EmcasDescriptorBase.getStatus(EmcasDescriptorBase.java:44) | | | apply(EmcasThreadContext@1): BoxedUnit@1 at Rxn$InterpreterState.loop(Rxn.scala:1400) | | | $anonfun$cleanupLater$2(Ttrie@1,zE,RefP1@3,EmcasThreadContext@1) at Ttrie.$anonfun$cleanupLater$2$adapted(Ttrie.scala:160) | | | unsafeDelRef(zE,RefP1@3,EmcasThreadContext@1) at Ttrie.$anonfun$cleanupLater$2(Ttrie.scala:160) | | | readDirect(RefP1@3): End$@1 at Ttrie.unsafeDelRef(Ttrie.scala:144) | | | readDirect(RefP1@3,EmcasThreadContext@1): End$@1 at EmcasThreadContext.readDirect(EmcasThreadContext.scala:122) | | | readValue(RefP1@3,EmcasThreadContext@1,true): HalfWordDescriptor@7 at Emcas.readDirect(Emcas.scala:338) | | | unsafeGetVersionVolatile(): -9223372036854775808 at Emcas.readValue(Emcas.scala:272) | | | version.READ: -9223372036854775808 at RefP1.unsafeGetVersionVolatile(RefP1.java:105) | | | go$1(null,-9223372036854775808,RefP1@3,EmcasThreadContext@1,true): HalfWordDescriptor@7 at Emcas.readValue(Emcas.scala:272) | | | unsafeGetVolatile(): WordDescriptor@3 at Emcas.go$1(Emcas.scala:212) | | | value.READ: WordDescriptor@3 at RefP1.unsafeGetVolatile(RefP1.java:75) | | | unsafeGetMarkerVolatile(): WeakReference@3 at Emcas.go$1(Emcas.scala:216) | | | marker.READ: WeakReference@3 at RefP1.unsafeGetMarkerVolatile(RefP1.java:120) | | | unsafeGetVolatile(): WordDescriptor@3 at Emcas.go$1(Emcas.scala:212) | | | value.READ: WordDescriptor@3 at RefP1.unsafeGetVolatile(RefP1.java:75) | | | getStatus(): -9223372036854775804 at Emcas.go$1(Emcas.scala:250) | | | _status.READ: -9223372036854775804 at EmcasDescriptorBase.getStatus(EmcasDescriptorBase.java:44) | | | remove(zE,RefP1@3): true at Ttrie.unsafeDelRef(Ttrie.scala:150) | | | doRemove(zE,RefP1@3): true at SkipListMap.remove(SkipListMap.scala:176) | | | findPredecessor(zE): Node@4 at SkipListMap.doRemove(SkipListMap.scala:575) | | | getAcquire(): Index@2 at SkipListMap.findPredecessor(SkipListMap.scala:802) | | | walkRight(Index@2,zE): Index@2 at SkipListMap.findPredecessor(SkipListMap.scala:808) | | | getAcquire(): null at SkipListMap.walkRight(SkipListMap.scala:104) | | | getAcquire(Index@2): null at AtomicReference.getAcquire(AtomicReference.java:333) | | | getAcquire(): Node@5 at SkipListMap.doRemove(SkipListMap.scala:75) | | | getAcquire(Node@4): Node@5 at AtomicReference.getAcquire(AtomicReference.java:333) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$getValue(): RefP1@1 at SkipListMap.doRemove(SkipListMap.scala:586) | | | getAcquire(): RefP1@1 at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$getValue(SkipListMap.scala:83) | | | getAcquire(): Node@8 at SkipListMap.doRemove(SkipListMap.scala:75) | | | getAcquire(Node@5): Node@8 at AtomicReference.getAcquire(AtomicReference.java:333) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$getValue(): RefP1@3 at SkipListMap.doRemove(SkipListMap.scala:586) | | | getAcquire(): RefP1@3 at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$getValue(SkipListMap.scala:83) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$casValue(RefP1@3,Object@1): true at SkipListMap.doRemove(SkipListMap.scala:599) | | | compareAndSet(RefP1@3,Object@1): true at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$casValue(SkipListMap.scala:87) | | | unlinkNode(Node@5,Node@8) at SkipListMap.doRemove(SkipListMap.scala:601) | | | mark$1(Node@8): null at SkipListMap.unlinkNode(SkipListMap.scala:855) | | | getAcquire(): null at SkipListMap.mark$1(SkipListMap.scala:75) | | | getAcquire(Node@8): null at AtomicReference.getAcquire(AtomicReference.java:333) | | | (SkipListMap@2,Object@2,Object@1,null) at SkipListMap.mark$1(SkipListMap.scala:848) | | | (Object@1) at SkipListMap$Node.(SkipListMap.scala:63) | | | (SkipListMap@2,Object@2,AtomicReference@6,null) at SkipListMap$Node.(SkipListMap.scala:63) | | | (null) at SkipListMap$Node.(SkipListMap.scala:60) | | | compareAndSet(null,Node@9): true at SkipListMap.mark$1(SkipListMap.scala:79) | | | compareAndSet(Node@8,null,Node@9): true at AtomicReference.compareAndSet(AtomicReference.java:122) | | | compareAndSet(Node@8,null): true at SkipListMap.unlinkNode(SkipListMap.scala:79) | | | compareAndSet(Node@5,Node@8,null): true at AtomicReference.compareAndSet(AtomicReference.java:122) | | | findPredecessor(zE): Node@4 at SkipListMap.doRemove(SkipListMap.scala:602) | | | getAcquire(): Index@2 at SkipListMap.findPredecessor(SkipListMap.scala:802) | | | walkRight(Index@2,zE): Index@2 at SkipListMap.findPredecessor(SkipListMap.scala:808) | | | getAcquire(): null at SkipListMap.walkRight(SkipListMap.scala:104) | | | getAcquire(Index@2): null at AtomicReference.getAcquire(AtomicReference.java:333) | | | tryReduceLevel() at SkipListMap.doRemove(SkipListMap.scala:603) | | | getAcquire(): Index@2 at SkipListMap.tryReduceLevel(SkipListMap.scala:889) | | | getAcquire(): null at SkipListMap.tryReduceLevel(SkipListMap.scala:104) | | | getAcquire(Index@2): null at AtomicReference.getAcquire(AtomicReference.java:333) | | | casLoop(): true at Rxn$InterpreterState.loop(Rxn.scala:1273) | | | desc(): Descriptor@11 at Rxn$InterpreterState.casLoop(Rxn.scala:1245) | | | start(): Descriptor@11 at Rxn$InterpreterState.desc(Rxn.scala:928) | | | getCommitTs(): -9223372036854775804 at EmcasThreadContext.start(EmcasThreadContext.scala:134) | | | commitTs.READ: -9223372036854775804 at GlobalContextBase.getCommitTs(GlobalContextBase.java:43) | | | lookup(q3_) | | | unsafePerform(q3_,Emcas@1,StrategySpin@1): None$@1 at TtrieModelTest$AbstractTestState.lookup(TtrieModelTest.scala:71) | | | interpret(): None$@1 at Rxn.unsafePerform(Rxn.scala:260) | | | interpretWithContext(EmcasThreadContext@1): None$@1 at Rxn$InterpreterState.interpret(Rxn.scala:1545) | | | loop(Computed@3): None$@1 at Rxn$InterpreterState.interpretWithContext(Rxn.scala:1552) | | | apply(BoxedUnit@1): FlatMapF@5 at Rxn$InterpreterState.loop(Rxn.scala:1310) | | | apply(): FlatMapF@5 at Axn$unsafe$.$anonfun$delay$1(Axn.scala:36) | | | unsafe(Init$@1): RefP1@4 at Ttrie.$anonfun$getRefWithKey$1(Ttrie.scala:107) | | | unsafePadded(Init$@1): RefP1@4 at Ref$.unsafe(Ref.scala:128) | | | random.READ: Random@1 at Ref$.unsafePadded(Ref.scala:132) | | | random.READ: Random@1 at Ref$.unsafePadded(Ref.scala:132) | | | random.READ: Random@1 at Ref$.unsafePadded(Ref.scala:132) | | | random.READ: Random@1 at Ref$.unsafePadded(Ref.scala:132) | | | putIfAbsent(q3_,RefP1@4): None$@1 at Ttrie.$anonfun$getRefWithKey$1(Ttrie.scala:108) | | | doPut(q3_,RefP1@4,true,ThreadLocalRandom@1): None$@1 at SkipListMap.putIfAbsent(SkipListMap.scala:152) | | | getAcquire(): Index@2 at SkipListMap.doPut(SkipListMap.scala:295) | | | walkRight(Index@2,q3_): Index@2 at SkipListMap.doPut(SkipListMap.scala:311) | | | getAcquire(): null at SkipListMap.walkRight(SkipListMap.scala:104) | | | getAcquire(Index@2): null at AtomicReference.getAcquire(AtomicReference.java:333) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$getNext(): Node@5 at SkipListMap.doPut(SkipListMap.scala:332) | | | getAcquire(): Node@5 at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$getNext(SkipListMap.scala:75) | | | getAcquire(Node@4): Node@5 at AtomicReference.getAcquire(AtomicReference.java:333) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$getValue(): RefP1@1 at SkipListMap.doPut(SkipListMap.scala:341) | | | getAcquire(): RefP1@1 at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$getValue(SkipListMap.scala:83) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$getNext(): null at SkipListMap.doPut(SkipListMap.scala:332) | | | getAcquire(): null at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$getNext(SkipListMap.scala:75) | | | getAcquire(Node@5): null at AtomicReference.getAcquire(AtomicReference.java:333) | | | (SkipListMap@2,q3_,RefP1@4,null) at SkipListMap.doPut(SkipListMap.scala:359) | | | (RefP1@4) at SkipListMap$Node.(SkipListMap.scala:63) | | | (SkipListMap@2,q3_,AtomicReference@7,null) at SkipListMap$Node.(SkipListMap.scala:63) | | | (null) at SkipListMap$Node.(SkipListMap.scala:60) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$casNext(null,Node@10): true at SkipListMap.doPut(SkipListMap.scala:360) | | | compareAndSet(null,Node@10): true at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$casNext(SkipListMap.scala:79) | | | compareAndSet(Node@5,null,Node@10): true at AtomicReference.compareAndSet(AtomicReference.java:122) | | | random.READ: Random@1 at SkipListMap.doPut(SkipListMap.scala:370) | | | readMaybeFromLog(RefP1@4): HalfWordDescriptor@8 at Rxn$InterpreterState.loop(Rxn.scala:1464) | | | desc(): Descriptor@12 at Rxn$InterpreterState.readMaybeFromLog(Rxn.scala:1205) | | | start(): Descriptor@12 at Rxn$InterpreterState.desc(Rxn.scala:928) | | | getCommitTs(): -9223372036854775804 at EmcasThreadContext.start(EmcasThreadContext.scala:134) | | | commitTs.READ: -9223372036854775804 at GlobalContextBase.getCommitTs(GlobalContextBase.java:43) | | | readIntoHwd(RefP1@4): HalfWordDescriptor@8 at Rxn$InterpreterState.readMaybeFromLog(Rxn.scala:1208) | | | readValue(RefP1@4,EmcasThreadContext@1,true): HalfWordDescriptor@8 at EmcasThreadContext.readIntoHwd(EmcasThreadContext.scala:125) | | | unsafeGetVersionVolatile(): -9223372036854775808 at Emcas.readValue(Emcas.scala:272) | | | version.READ: -9223372036854775808 at RefP1.unsafeGetVersionVolatile(RefP1.java:105) | | | go$1(null,-9223372036854775808,RefP1@4,EmcasThreadContext@1,true): HalfWordDescriptor@8 at Emcas.readValue(Emcas.scala:272) | | | unsafeGetVolatile(): Init$@1 at Emcas.go$1(Emcas.scala:212) | | | value.READ: Init$@1 at RefP1.unsafeGetVolatile(RefP1.java:75) | | | unsafeGetVersionVolatile(): -9223372036854775808 at Emcas.go$1(Emcas.scala:263) | | | version.READ: -9223372036854775808 at RefP1.unsafeGetVersionVolatile(RefP1.java:105) | | | forceValidate(null): true at Rxn$InterpreterState.loop(Rxn.scala:1494) | | | validateAndTryExtend(Descriptor@13,null): Descriptor@13 at Rxn$InterpreterState.forceValidate(Rxn.scala:1231) | | | getCommitTs(): -9223372036854775804 at EmcasThreadContext.validateAndTryExtend(EmcasThreadContext.scala:143) | | | commitTs.READ: -9223372036854775804 at GlobalContextBase.getCommitTs(GlobalContextBase.java:43) | | | casLoop(): true at Rxn$InterpreterState.loop(Rxn.scala:1273) | | | tryPerform(Descriptor@14): 9223372036854775805 at Rxn$InterpreterState.casLoop(Rxn.scala:1245) | | | tryPerform$(EmcasThreadContext@1,Descriptor@14): 9223372036854775805 at EmcasThreadContext.tryPerform(EmcasThreadContext.scala:26) | | | tryPerform(Descriptor@14): 9223372036854775805 at Mcas$ThreadContext.tryPerform$(Mcas.scala:158) | | | tryPerformInternal(Descriptor@14): 9223372036854775805 at Mcas$ThreadContext.tryPerform(Mcas.scala:169) | | | tryPerformDebug(Descriptor@14,EmcasThreadContext@1): 9223372036854775805 at EmcasThreadContext.tryPerformInternal(EmcasThreadContext.scala:119) | | | MCAS(EmcasDescriptor@4,EmcasThreadContext@1): -9223372036854775803 at Emcas.tryPerformDebug(Emcas.scala:711) | | | go$2(Iterator@4,EmcasThreadContext@1,EmcasDescriptor@4): 9223372036854775805 at Emcas.MCAS(Emcas.scala:563) | | | tryWord$1(WordDescriptor@4,EmcasThreadContext@1,EmcasDescriptor@4): 9223372036854775805 at Emcas.go$2(Emcas.scala:543) | | | unsafeGetVersionVolatile(): -9223372036854775808 at Emcas.tryWord$1(Emcas.scala:382) | | | version.READ: -9223372036854775808 at RefP1.unsafeGetVersionVolatile(RefP1.java:105) | | | unsafeGetVolatile(): Init$@1 at Emcas.tryWord$1(Emcas.scala:393) | | | value.READ: Init$@1 at RefP1.unsafeGetVolatile(RefP1.java:75) | | | unsafeGetVersionVolatile(): -9223372036854775808 at Emcas.tryWord$1(Emcas.scala:461) | | | version.READ: -9223372036854775808 at RefP1.unsafeGetVersionVolatile(RefP1.java:105) | | | unsafeGetMarkerVolatile(): null at Emcas.tryWord$1(Emcas.scala:465) | | | marker.READ: null at RefP1.unsafeGetMarkerVolatile(RefP1.java:120) | | | unsafeCasMarkerVolatile(null,WeakReference@3): true at Emcas.tryWord$1(Emcas.scala:512) | | | compareAndSet(RefP1@4,null,WeakReference@3): true at RefP1.unsafeCasMarkerVolatile(RefP1.java:125) | | | unsafeCasVolatile(Init$@1,WordDescriptor@4): true at Emcas.tryWord$1(Emcas.scala:525) | | | compareAndSet(RefP1@4,Init$@1,WordDescriptor@4): true at RefP1.unsafeCasVolatile(RefP1.java:95) | | | retrieveFreshTs(): -9223372036854775803 at Emcas.MCAS(Emcas.scala:612) | | | getCommitTs(): -9223372036854775804 at Emcas.retrieveFreshTs(Emcas.scala:677) | | | commitTs.READ: -9223372036854775804 at GlobalContextBase.getCommitTs(GlobalContextBase.java:43) | | | getCommitTs(): -9223372036854775804 at Emcas.retrieveFreshTs(Emcas.scala:678) | | | commitTs.READ: -9223372036854775804 at GlobalContextBase.getCommitTs(GlobalContextBase.java:43) | | | cmpxchgCommitTs(-9223372036854775804,-9223372036854775803): -9223372036854775804 at Emcas.retrieveFreshTs(Emcas.scala:686) | | | compareAndExchange(Emcas@1,-9223372036854775804,-9223372036854775803): -9223372036854775804 at GlobalContextBase.cmpxchgCommitTs(GlobalContextBase.java:47) | | | cmpxchgStatus(9223372036854775806,-9223372036854775803): 9223372036854775806 at Emcas.MCAS(Emcas.scala:616) | | | compareAndExchange(EmcasDescriptor@4,9223372036854775806,-9223372036854775803): 9223372036854775806 at EmcasDescriptorBase.cmpxchgStatus(EmcasDescriptorBase.java:52) | | | wasFinalized() at Emcas.MCAS(Emcas.scala:619) | | | WRITE(null) at EmcasDescriptor.wasFinalized(EmcasDescriptor.scala:74) | | | readDirect(RefP1@4): End$@1 at Rxn$InterpreterState.loop(Rxn.scala:1356) | | | readDirect(RefP1@4,EmcasThreadContext@1): End$@1 at EmcasThreadContext.readDirect(EmcasThreadContext.scala:122) | | | readValue(RefP1@4,EmcasThreadContext@1,true): HalfWordDescriptor@9 at Emcas.readDirect(Emcas.scala:338) | | | unsafeGetVersionVolatile(): -9223372036854775808 at Emcas.readValue(Emcas.scala:272) | | | version.READ: -9223372036854775808 at RefP1.unsafeGetVersionVolatile(RefP1.java:105) | | | go$1(null,-9223372036854775808,RefP1@4,EmcasThreadContext@1,true): HalfWordDescriptor@9 at Emcas.readValue(Emcas.scala:272) | | | unsafeGetVolatile(): WordDescriptor@4 at Emcas.go$1(Emcas.scala:212) | | | value.READ: WordDescriptor@4 at RefP1.unsafeGetVolatile(RefP1.java:75) | | | unsafeGetMarkerVolatile(): WeakReference@3 at Emcas.go$1(Emcas.scala:216) | | | marker.READ: WeakReference@3 at RefP1.unsafeGetMarkerVolatile(RefP1.java:120) | | | unsafeGetVolatile(): WordDescriptor@4 at Emcas.go$1(Emcas.scala:212) | | | value.READ: WordDescriptor@4 at RefP1.unsafeGetVolatile(RefP1.java:75) | | | getStatus(): -9223372036854775803 at Emcas.go$1(Emcas.scala:250) | | | _status.READ: -9223372036854775803 at EmcasDescriptorBase.getStatus(EmcasDescriptorBase.java:44) | | | apply(EmcasThreadContext@1): BoxedUnit@1 at Rxn$InterpreterState.loop(Rxn.scala:1400) | | | $anonfun$cleanupLater$2(Ttrie@1,q3_,RefP1@4,EmcasThreadContext@1) at Ttrie.$anonfun$cleanupLater$2$adapted(Ttrie.scala:160) | | | unsafeDelRef(q3_,RefP1@4,EmcasThreadContext@1) at Ttrie.$anonfun$cleanupLater$2(Ttrie.scala:160) | | | readDirect(RefP1@4): End$@1 at Ttrie.unsafeDelRef(Ttrie.scala:144) | | | readDirect(RefP1@4,EmcasThreadContext@1): End$@1 at EmcasThreadContext.readDirect(EmcasThreadContext.scala:122) | | | readValue(RefP1@4,EmcasThreadContext@1,true): HalfWordDescriptor@10 at Emcas.readDirect(Emcas.scala:338) | | | unsafeGetVersionVolatile(): -9223372036854775808 at Emcas.readValue(Emcas.scala:272) | | | version.READ: -9223372036854775808 at RefP1.unsafeGetVersionVolatile(RefP1.java:105) | | | go$1(null,-9223372036854775808,RefP1@4,EmcasThreadContext@1,true): HalfWordDescriptor@10 at Emcas.readValue(Emcas.scala:272) | | | unsafeGetVolatile(): WordDescriptor@4 at Emcas.go$1(Emcas.scala:212) | | | value.READ: WordDescriptor@4 at RefP1.unsafeGetVolatile(RefP1.java:75) | | | unsafeGetMarkerVolatile(): WeakReference@3 at Emcas.go$1(Emcas.scala:216) | | | marker.READ: WeakReference@3 at RefP1.unsafeGetMarkerVolatile(RefP1.java:120) | | | unsafeGetVolatile(): WordDescriptor@4 at Emcas.go$1(Emcas.scala:212) | | | value.READ: WordDescriptor@4 at RefP1.unsafeGetVolatile(RefP1.java:75) | | | getStatus(): -9223372036854775803 at Emcas.go$1(Emcas.scala:250) | | | _status.READ: -9223372036854775803 at EmcasDescriptorBase.getStatus(EmcasDescriptorBase.java:44) | | | remove(q3_,RefP1@4): true at Ttrie.unsafeDelRef(Ttrie.scala:150) | | | doRemove(q3_,RefP1@4): true at SkipListMap.remove(SkipListMap.scala:176) | | | findPredecessor(q3_): Node@4 at SkipListMap.doRemove(SkipListMap.scala:575) | | | getAcquire(): Index@2 at SkipListMap.findPredecessor(SkipListMap.scala:802) | | | walkRight(Index@2,q3_): Index@2 at SkipListMap.findPredecessor(SkipListMap.scala:808) | | | getAcquire(): null at SkipListMap.walkRight(SkipListMap.scala:104) | | | getAcquire(Index@2): null at AtomicReference.getAcquire(AtomicReference.java:333) | | | getAcquire(): Node@5 at SkipListMap.doRemove(SkipListMap.scala:75) | | | getAcquire(Node@4): Node@5 at AtomicReference.getAcquire(AtomicReference.java:333) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$getValue(): RefP1@1 at SkipListMap.doRemove(SkipListMap.scala:586) | | | getAcquire(): RefP1@1 at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$getValue(SkipListMap.scala:83) | | | getAcquire(): Node@10 at SkipListMap.doRemove(SkipListMap.scala:75) | | | getAcquire(Node@5): Node@10 at AtomicReference.getAcquire(AtomicReference.java:333) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$getValue(): RefP1@4 at SkipListMap.doRemove(SkipListMap.scala:586) | | | getAcquire(): RefP1@4 at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$getValue(SkipListMap.scala:83) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$casValue(RefP1@4,Object@1): true at SkipListMap.doRemove(SkipListMap.scala:599) | | | compareAndSet(RefP1@4,Object@1): true at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$casValue(SkipListMap.scala:87) | | | unlinkNode(Node@5,Node@10) at SkipListMap.doRemove(SkipListMap.scala:601) | | | mark$1(Node@10): null at SkipListMap.unlinkNode(SkipListMap.scala:855) | | | getAcquire(): null at SkipListMap.mark$1(SkipListMap.scala:75) | | | getAcquire(Node@10): null at AtomicReference.getAcquire(AtomicReference.java:333) | | | (SkipListMap@2,Object@2,Object@1,null) at SkipListMap.mark$1(SkipListMap.scala:848) | | | (Object@1) at SkipListMap$Node.(SkipListMap.scala:63) | | | (SkipListMap@2,Object@2,AtomicReference@8,null) at SkipListMap$Node.(SkipListMap.scala:63) | | | (null) at SkipListMap$Node.(SkipListMap.scala:60) | | | compareAndSet(null,Node@11): true at SkipListMap.mark$1(SkipListMap.scala:79) | | | compareAndSet(Node@10,null,Node@11): true at AtomicReference.compareAndSet(AtomicReference.java:122) | | | compareAndSet(Node@10,null): true at SkipListMap.unlinkNode(SkipListMap.scala:79) | | | compareAndSet(Node@5,Node@10,null): true at AtomicReference.compareAndSet(AtomicReference.java:122) | | | findPredecessor(q3_): Node@4 at SkipListMap.doRemove(SkipListMap.scala:602) | | | getAcquire(): Index@2 at SkipListMap.findPredecessor(SkipListMap.scala:802) | | | walkRight(Index@2,q3_): Index@2 at SkipListMap.findPredecessor(SkipListMap.scala:808) | | | getAcquire(): null at SkipListMap.walkRight(SkipListMap.scala:104) | | | getAcquire(Index@2): null at AtomicReference.getAcquire(AtomicReference.java:333) | | | tryReduceLevel() at SkipListMap.doRemove(SkipListMap.scala:603) | | | getAcquire(): Index@2 at SkipListMap.tryReduceLevel(SkipListMap.scala:889) | | | getAcquire(): null at SkipListMap.tryReduceLevel(SkipListMap.scala:104) | | | getAcquire(Index@2): null at AtomicReference.getAcquire(AtomicReference.java:333) | | | casLoop(): true at Rxn$InterpreterState.loop(Rxn.scala:1273) | | | desc(): Descriptor@15 at Rxn$InterpreterState.casLoop(Rxn.scala:1245) | | | start(): Descriptor@15 at Rxn$InterpreterState.desc(Rxn.scala:928) | | | getCommitTs(): -9223372036854775803 at EmcasThreadContext.start(EmcasThreadContext.scala:134) | | | commitTs.READ: -9223372036854775803 at GlobalContextBase.getCommitTs(GlobalContextBase.java:43) | | | lookup(hDjR) | | | unsafePerform(hDjR,Emcas@1,StrategySpin@1): None$@1 at TtrieModelTest$AbstractTestState.lookup(TtrieModelTest.scala:71) | | | interpret(): None$@1 at Rxn.unsafePerform(Rxn.scala:260) | | | interpretWithContext(EmcasThreadContext@1): None$@1 at Rxn$InterpreterState.interpret(Rxn.scala:1545) | | | loop(Computed@4): None$@1 at Rxn$InterpreterState.interpretWithContext(Rxn.scala:1552) | | | apply(BoxedUnit@1): FlatMapF@6 at Rxn$InterpreterState.loop(Rxn.scala:1310) | | | apply(): FlatMapF@6 at Axn$unsafe$.$anonfun$delay$1(Axn.scala:36) | | | unsafe(Init$@1): RefP1@5 at Ttrie.$anonfun$getRefWithKey$1(Ttrie.scala:107) | | | unsafePadded(Init$@1): RefP1@5 at Ref$.unsafe(Ref.scala:128) | | | random.READ: Random@1 at Ref$.unsafePadded(Ref.scala:132) | | | random.READ: Random@1 at Ref$.unsafePadded(Ref.scala:132) | | | random.READ: Random@1 at Ref$.unsafePadded(Ref.scala:132) | | | random.READ: Random@1 at Ref$.unsafePadded(Ref.scala:132) | | | putIfAbsent(hDjR,RefP1@5): None$@1 at Ttrie.$anonfun$getRefWithKey$1(Ttrie.scala:108) | | | doPut(hDjR,RefP1@5,true,ThreadLocalRandom@1): None$@1 at SkipListMap.putIfAbsent(SkipListMap.scala:152) | | | getAcquire(): Index@2 at SkipListMap.doPut(SkipListMap.scala:295) | | | walkRight(Index@2,hDjR): Index@2 at SkipListMap.doPut(SkipListMap.scala:311) | | | getAcquire(): null at SkipListMap.walkRight(SkipListMap.scala:104) | | | getAcquire(Index@2): null at AtomicReference.getAcquire(AtomicReference.java:333) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$getNext(): Node@5 at SkipListMap.doPut(SkipListMap.scala:332) | | | getAcquire(): Node@5 at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$getNext(SkipListMap.scala:75) | | | getAcquire(Node@4): Node@5 at AtomicReference.getAcquire(AtomicReference.java:333) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$getValue(): RefP1@1 at SkipListMap.doPut(SkipListMap.scala:341) | | | getAcquire(): RefP1@1 at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$getValue(SkipListMap.scala:83) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$getNext(): null at SkipListMap.doPut(SkipListMap.scala:332) | | | getAcquire(): null at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$getNext(SkipListMap.scala:75) | | | getAcquire(Node@5): null at AtomicReference.getAcquire(AtomicReference.java:333) | | | (SkipListMap@2,hDjR,RefP1@5,null) at SkipListMap.doPut(SkipListMap.scala:359) | | | (RefP1@5) at SkipListMap$Node.(SkipListMap.scala:63) | | | (SkipListMap@2,hDjR,AtomicReference@9,null) at SkipListMap$Node.(SkipListMap.scala:63) | | | (null) at SkipListMap$Node.(SkipListMap.scala:60) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$casNext(null,Node@12): true at SkipListMap.doPut(SkipListMap.scala:360) | | | compareAndSet(null,Node@12): true at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$casNext(SkipListMap.scala:79) | | | compareAndSet(Node@5,null,Node@12): true at AtomicReference.compareAndSet(AtomicReference.java:122) | | | random.READ: Random@1 at SkipListMap.doPut(SkipListMap.scala:370) | | | readMaybeFromLog(RefP1@5): HalfWordDescriptor@11 at Rxn$InterpreterState.loop(Rxn.scala:1464) | | | desc(): Descriptor@16 at Rxn$InterpreterState.readMaybeFromLog(Rxn.scala:1205) | | | start(): Descriptor@16 at Rxn$InterpreterState.desc(Rxn.scala:928) | | | getCommitTs(): -9223372036854775803 at EmcasThreadContext.start(EmcasThreadContext.scala:134) | | | commitTs.READ: -9223372036854775803 at GlobalContextBase.getCommitTs(GlobalContextBase.java:43) | | | readIntoHwd(RefP1@5): HalfWordDescriptor@11 at Rxn$InterpreterState.readMaybeFromLog(Rxn.scala:1208) | | | readValue(RefP1@5,EmcasThreadContext@1,true): HalfWordDescriptor@11 at EmcasThreadContext.readIntoHwd(EmcasThreadContext.scala:125) | | | unsafeGetVersionVolatile(): -9223372036854775808 at Emcas.readValue(Emcas.scala:272) | | | version.READ: -9223372036854775808 at RefP1.unsafeGetVersionVolatile(RefP1.java:105) | | | go$1(null,-9223372036854775808,RefP1@5,EmcasThreadContext@1,true): HalfWordDescriptor@11 at Emcas.readValue(Emcas.scala:272) | | | unsafeGetVolatile(): Init$@1 at Emcas.go$1(Emcas.scala:212) | | | value.READ: Init$@1 at RefP1.unsafeGetVolatile(RefP1.java:75) | | | unsafeGetVersionVolatile(): -9223372036854775808 at Emcas.go$1(Emcas.scala:263) | | | version.READ: -9223372036854775808 at RefP1.unsafeGetVersionVolatile(RefP1.java:105) | | | forceValidate(null): true at Rxn$InterpreterState.loop(Rxn.scala:1494) | | | validateAndTryExtend(Descriptor@17,null): Descriptor@17 at Rxn$InterpreterState.forceValidate(Rxn.scala:1231) | | | getCommitTs(): -9223372036854775803 at EmcasThreadContext.validateAndTryExtend(EmcasThreadContext.scala:143) | | | commitTs.READ: -9223372036854775803 at GlobalContextBase.getCommitTs(GlobalContextBase.java:43) | | | casLoop(): true at Rxn$InterpreterState.loop(Rxn.scala:1273) | | | tryPerform(Descriptor@18): 9223372036854775805 at Rxn$InterpreterState.casLoop(Rxn.scala:1245) | | | tryPerform$(EmcasThreadContext@1,Descriptor@18): 9223372036854775805 at EmcasThreadContext.tryPerform(EmcasThreadContext.scala:26) | | | tryPerform(Descriptor@18): 9223372036854775805 at Mcas$ThreadContext.tryPerform$(Mcas.scala:158) | | | tryPerformInternal(Descriptor@18): 9223372036854775805 at Mcas$ThreadContext.tryPerform(Mcas.scala:169) | | | tryPerformDebug(Descriptor@18,EmcasThreadContext@1): 9223372036854775805 at EmcasThreadContext.tryPerformInternal(EmcasThreadContext.scala:119) | | | MCAS(EmcasDescriptor@5,EmcasThreadContext@1): -9223372036854775802 at Emcas.tryPerformDebug(Emcas.scala:711) | | | go$2(Iterator@5,EmcasThreadContext@1,EmcasDescriptor@5): 9223372036854775805 at Emcas.MCAS(Emcas.scala:563) | | | tryWord$1(WordDescriptor@5,EmcasThreadContext@1,EmcasDescriptor@5): 9223372036854775805 at Emcas.go$2(Emcas.scala:543) | | | unsafeGetVersionVolatile(): -9223372036854775808 at Emcas.tryWord$1(Emcas.scala:382) | | | version.READ: -9223372036854775808 at RefP1.unsafeGetVersionVolatile(RefP1.java:105) | | | unsafeGetVolatile(): Init$@1 at Emcas.tryWord$1(Emcas.scala:393) | | | value.READ: Init$@1 at RefP1.unsafeGetVolatile(RefP1.java:75) | | | unsafeGetVersionVolatile(): -9223372036854775808 at Emcas.tryWord$1(Emcas.scala:461) | | | version.READ: -9223372036854775808 at RefP1.unsafeGetVersionVolatile(RefP1.java:105) | | | unsafeGetMarkerVolatile(): null at Emcas.tryWord$1(Emcas.scala:465) | | | marker.READ: null at RefP1.unsafeGetMarkerVolatile(RefP1.java:120) | | | unsafeCasMarkerVolatile(null,WeakReference@3): true at Emcas.tryWord$1(Emcas.scala:512) | | | compareAndSet(RefP1@5,null,WeakReference@3): true at RefP1.unsafeCasMarkerVolatile(RefP1.java:125) | | | unsafeCasVolatile(Init$@1,WordDescriptor@5): true at Emcas.tryWord$1(Emcas.scala:525) | | | compareAndSet(RefP1@5,Init$@1,WordDescriptor@5): true at RefP1.unsafeCasVolatile(RefP1.java:95) | | | retrieveFreshTs(): -9223372036854775802 at Emcas.MCAS(Emcas.scala:612) | | | getCommitTs(): -9223372036854775803 at Emcas.retrieveFreshTs(Emcas.scala:677) | | | commitTs.READ: -9223372036854775803 at GlobalContextBase.getCommitTs(GlobalContextBase.java:43) | | | getCommitTs(): -9223372036854775803 at Emcas.retrieveFreshTs(Emcas.scala:678) | | | commitTs.READ: -9223372036854775803 at GlobalContextBase.getCommitTs(GlobalContextBase.java:43) | | | cmpxchgCommitTs(-9223372036854775803,-9223372036854775802): -9223372036854775803 at Emcas.retrieveFreshTs(Emcas.scala:686) | | | compareAndExchange(Emcas@1,-9223372036854775803,-9223372036854775802): -9223372036854775803 at GlobalContextBase.cmpxchgCommitTs(GlobalContextBase.java:47) | | | cmpxchgStatus(9223372036854775806,-9223372036854775802): 9223372036854775806 at Emcas.MCAS(Emcas.scala:616) | | | compareAndExchange(EmcasDescriptor@5,9223372036854775806,-9223372036854775802): 9223372036854775806 at EmcasDescriptorBase.cmpxchgStatus(EmcasDescriptorBase.java:52) | | | wasFinalized() at Emcas.MCAS(Emcas.scala:619) | | | WRITE(null) at EmcasDescriptor.wasFinalized(EmcasDescriptor.scala:74) | | | readDirect(RefP1@5): End$@1 at Rxn$InterpreterState.loop(Rxn.scala:1356) | | | readDirect(RefP1@5,EmcasThreadContext@1): End$@1 at EmcasThreadContext.readDirect(EmcasThreadContext.scala:122) | | | readValue(RefP1@5,EmcasThreadContext@1,true): HalfWordDescriptor@12 at Emcas.readDirect(Emcas.scala:338) | | | unsafeGetVersionVolatile(): -9223372036854775808 at Emcas.readValue(Emcas.scala:272) | | | version.READ: -9223372036854775808 at RefP1.unsafeGetVersionVolatile(RefP1.java:105) | | | go$1(null,-9223372036854775808,RefP1@5,EmcasThreadContext@1,true): HalfWordDescriptor@12 at Emcas.readValue(Emcas.scala:272) | | | unsafeGetVolatile(): WordDescriptor@5 at Emcas.go$1(Emcas.scala:212) | | | value.READ: WordDescriptor@5 at RefP1.unsafeGetVolatile(RefP1.java:75) | | | unsafeGetMarkerVolatile(): WeakReference@3 at Emcas.go$1(Emcas.scala:216) | | | marker.READ: WeakReference@3 at RefP1.unsafeGetMarkerVolatile(RefP1.java:120) | | | unsafeGetVolatile(): WordDescriptor@5 at Emcas.go$1(Emcas.scala:212) | | | value.READ: WordDescriptor@5 at RefP1.unsafeGetVolatile(RefP1.java:75) | | | getStatus(): -9223372036854775802 at Emcas.go$1(Emcas.scala:250) | | | _status.READ: -9223372036854775802 at EmcasDescriptorBase.getStatus(EmcasDescriptorBase.java:44) | | | apply(EmcasThreadContext@1): BoxedUnit@1 at Rxn$InterpreterState.loop(Rxn.scala:1400) | | | $anonfun$cleanupLater$2(Ttrie@1,hDjR,RefP1@5,EmcasThreadContext@1) at Ttrie.$anonfun$cleanupLater$2$adapted(Ttrie.scala:160) | | | unsafeDelRef(hDjR,RefP1@5,EmcasThreadContext@1) at Ttrie.$anonfun$cleanupLater$2(Ttrie.scala:160) | | | readDirect(RefP1@5): End$@1 at Ttrie.unsafeDelRef(Ttrie.scala:144) | | | readDirect(RefP1@5,EmcasThreadContext@1): End$@1 at EmcasThreadContext.readDirect(EmcasThreadContext.scala:122) | | | readValue(RefP1@5,EmcasThreadContext@1,true): HalfWordDescriptor@13 at Emcas.readDirect(Emcas.scala:338) | | | unsafeGetVersionVolatile(): -9223372036854775808 at Emcas.readValue(Emcas.scala:272) | | | version.READ: -9223372036854775808 at RefP1.unsafeGetVersionVolatile(RefP1.java:105) | | | go$1(null,-9223372036854775808,RefP1@5,EmcasThreadContext@1,true): HalfWordDescriptor@13 at Emcas.readValue(Emcas.scala:272) | | | unsafeGetVolatile(): WordDescriptor@5 at Emcas.go$1(Emcas.scala:212) | | | value.READ: WordDescriptor@5 at RefP1.unsafeGetVolatile(RefP1.java:75) | | | unsafeGetMarkerVolatile(): WeakReference@3 at Emcas.go$1(Emcas.scala:216) | | | marker.READ: WeakReference@3 at RefP1.unsafeGetMarkerVolatile(RefP1.java:120) | | | unsafeGetVolatile(): WordDescriptor@5 at Emcas.go$1(Emcas.scala:212) | | | value.READ: WordDescriptor@5 at RefP1.unsafeGetVolatile(RefP1.java:75) | | | getStatus(): -9223372036854775802 at Emcas.go$1(Emcas.scala:250) | | | _status.READ: -9223372036854775802 at EmcasDescriptorBase.getStatus(EmcasDescriptorBase.java:44) | | | remove(hDjR,RefP1@5): true at Ttrie.unsafeDelRef(Ttrie.scala:150) | | | doRemove(hDjR,RefP1@5): true at SkipListMap.remove(SkipListMap.scala:176) | | | findPredecessor(hDjR): Node@4 at SkipListMap.doRemove(SkipListMap.scala:575) | | | getAcquire(): Index@2 at SkipListMap.findPredecessor(SkipListMap.scala:802) | | | walkRight(Index@2,hDjR): Index@2 at SkipListMap.findPredecessor(SkipListMap.scala:808) | | | getAcquire(): null at SkipListMap.walkRight(SkipListMap.scala:104) | | | getAcquire(Index@2): null at AtomicReference.getAcquire(AtomicReference.java:333) | | | getAcquire(): Node@5 at SkipListMap.doRemove(SkipListMap.scala:75) | | | getAcquire(Node@4): Node@5 at AtomicReference.getAcquire(AtomicReference.java:333) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$getValue(): RefP1@1 at SkipListMap.doRemove(SkipListMap.scala:586) | | | getAcquire(): RefP1@1 at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$getValue(SkipListMap.scala:83) | | | getAcquire(): Node@12 at SkipListMap.doRemove(SkipListMap.scala:75) | | | getAcquire(Node@5): Node@12 at AtomicReference.getAcquire(AtomicReference.java:333) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$getValue(): RefP1@5 at SkipListMap.doRemove(SkipListMap.scala:586) | | | getAcquire(): RefP1@5 at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$getValue(SkipListMap.scala:83) | | | dev$tauri$choam$internal$skiplist$SkipListMap$$casValue(RefP1@5,Object@1): true at SkipListMap.doRemove(SkipListMap.scala:599) | | | compareAndSet(RefP1@5,Object@1): true at SkipListMap$Node.dev$tauri$choam$internal$skiplist$SkipListMap$$casValue(SkipListMap.scala:87) | | | unlinkNode(Node@5,Node@12) at SkipListMap.doRemove(SkipListMap.scala:601) | | | mark$1(Node@12): null at SkipListMap.unlinkNode(SkipListMap.scala:855) | | | getAcquire(): null at SkipListMap.mark$1(SkipListMap.scala:75) | | | getAcquire(Node@12): null at AtomicReference.getAcquire(AtomicReference.java:333) | | | (SkipListMap@2,Object@2,Object@1,null) at SkipListMap.mark$1(SkipListMap.scala:848) | | | (Object@1) at SkipListMap$Node.(SkipListMap.scala:63) | | | (SkipListMap@2,Object@2,AtomicReference@10,null) at SkipListMap$Node.(SkipListMap.scala:63) | | | (null) at SkipListMap$Node.(SkipListMap.scala:60) | | | compareAndSet(null,Node@13): true at SkipListMap.mark$1(SkipListMap.scala:79) | | | compareAndSet(Node@12,null,Node@13): true at AtomicReference.compareAndSet(AtomicReference.java:122) | | | compareAndSet(Node@12,null): true at SkipListMap.unlinkNode(SkipListMap.scala:79) | | | compareAndSet(Node@5,Node@12,null): true at AtomicReference.compareAndSet(AtomicReference.java:122) | | | findPredecessor(hDjR): Node@4 at SkipListMap.doRemove(SkipListMap.scala:602) | | | getAcquire(): Index@2 at SkipListMap.findPredecessor(SkipListMap.scala:802) | | | walkRight(Index@2,hDjR): Index@2 at SkipListMap.findPredecessor(SkipListMap.scala:808) | | | getAcquire(): null at SkipListMap.walkRight(SkipListMap.scala:104) | | | getAcquire(Index@2): null at AtomicReference.getAcquire(AtomicReference.java:333) | | | tryReduceLevel() at SkipListMap.doRemove(SkipListMap.scala:603) | | | getAcquire(): Index@2 at SkipListMap.tryReduceLevel(SkipListMap.scala:889) | | | getAcquire(): null at SkipListMap.tryReduceLevel(SkipListMap.scala:104) | | | getAcquire(Index@2): null at AtomicReference.getAcquire(AtomicReference.java:333) | | | casLoop(): true at Rxn$InterpreterState.loop(Rxn.scala:1273) | | | desc(): Descriptor@19 at Rxn$InterpreterState.casLoop(Rxn.scala:1245) | | | start(): Descriptor@19 at Rxn$InterpreterState.desc(Rxn.scala:928) | | | getCommitTs(): -9223372036854775802 at EmcasThreadContext.start(EmcasThreadContext.scala:134) | | | commitTs.READ: -9223372036854775802 at GlobalContextBase.getCommitTs(GlobalContextBase.java:43) | | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |  at org.jetbrains.kotlinx.lincheck.strategy.managed.ManagedStrategy.collectTrace(ManagedStrategy.kt:230)  at org.jetbrains.kotlinx.lincheck.strategy.managed.ManagedStrategy.checkResult(ManagedStrategy.kt:194)  at org.jetbrains.kotlinx.lincheck.strategy.managed.modelchecking.ModelCheckingStrategy.runImpl(ModelCheckingStrategy.kt:70)  at org.jetbrains.kotlinx.lincheck.strategy.managed.ManagedStrategy.run(ManagedStrategy.kt:131)  at org.jetbrains.kotlinx.lincheck.LinChecker.run(LinChecker.kt:126)  at org.jetbrains.kotlinx.lincheck.LinChecker.checkImpl(LinChecker.kt:80)  at org.jetbrains.kotlinx.lincheck.LinChecker.checkImpl$lincheck(LinChecker.kt:52)  at org.jetbrains.kotlinx.lincheck.LinChecker.check(LinChecker.kt:42)  at org.jetbrains.kotlinx.lincheck.LinChecker$Companion.check(LinChecker.kt:149)  at org.jetbrains.kotlinx.lincheck.LinChecker.check(LinChecker.kt)  at dev.tauri.choam.data.TtrieModelTest.$anonfun$ttrieModelCheck$1(TtrieModelTest.scala:43)  at dev.tauri.choam.data.TtrieModelTest.ttrieModelCheck(TtrieModelTest.scala:31)  at dev.tauri.choam.data.TtrieModelTest.$anonfun$new$2(TtrieModelTest.scala:38)  at dev.tauri.choam.BaseLinchkSpec.$anonfun$test$2(BaseLinchkSpec.scala:41) [error] Failed: Total 1, Failed 1, Errors 0, Passed 0, Ignored 1 [error] Failed tests: [error] dev.tauri.choam.data.TtrieModelTest [error] (stressLinchk / Test / testOnly) sbt.TestsFailedException: Tests unsuccessful [error] Total time: 20 s, completed Feb 20, 2024, 1:04:47 AM