Duplicate class definition for name: "org/slf4j/impl/StaticLoggerBinder"

Abierto
#135 1 comentario 0 reacciones 1 asignado Ver en GitHub

@DaniilStepanov ya está trabajando en esto.

Desde el 23/11/2023.

Evaluación

Este issue todavía no se ha evaluado.

Descripción

bug

Run ContestEstimator with the following settings:

timeLimit = 60
methodFilter = "io.seata.core.protocol.MergedWarpMessage.doDecode"
projectFilter = listOf("seata-core-0.5.0")

USVM instrumentation fails before method under test call with following errors (second error is then repeated over 100 times):

16:52:08.950 | WARN  | Execution failed before method under test call on (id:23)io.seata.core.protocol.MergedWarpMessage#doDecode(java.nio.ByteBuffer)
java.lang.LinkageError: loader (instance of  org/usvm/instrumentation/classloader/WorkerClassLoader): attempted  duplicate class definition for name: "org/slf4j/impl/StaticLoggerBinder"
	at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150) ~[slf4j-api-1.7.36.jar:1.7.36]
	at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124) ~[slf4j-api-1.7.36.jar:1.7.36]
	at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:417) ~[slf4j-api-1.7.36.jar:1.7.36]
	at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:362) ~[slf4j-api-1.7.36.jar:1.7.36]
	at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:388) ~[slf4j-api-1.7.36.jar:1.7.36]
	at io.seata.core.protocol.MergedWarpMessage.<clinit>(MergedWarpMessage.java:44) ~[?:?]
	at java.lang.Class.forName0(Native Method) ~[?:1.8.0_392]
	at java.lang.Class.forName(Class.java:348) ~[?:1.8.0_392]
	at org.usvm.instrumentation.util.JacodbKt.findClassInLoader(Jacodb.kt:112) ~[usvm-jvm-instrumentation-comp-231122-1058.jar:?]
	at org.usvm.instrumentation.util.JacodbKt.toJavaClass(Jacodb.kt:108) ~[usvm-jvm-instrumentation-comp-231122-1058.jar:?]
16:52:09.157 | WARN  | Execution failed before method under test call on (id:23)io.seata.core.protocol.MergedWarpMessage#doDecode(java.nio.ByteBuffer)
java.lang.NoClassDefFoundError: Could not initialize class io.seata.core.protocol.MergedWarpMessage
	at java.lang.Class.forName0(Native Method) ~[?:1.8.0_392]
	at java.lang.Class.forName(Class.java:348) ~[?:1.8.0_392]
	at org.usvm.instrumentation.util.JacodbKt.findClassInLoader(Jacodb.kt:112) ~[usvm-jvm-instrumentation-comp-231122-1058.jar:?]
	at org.usvm.instrumentation.util.JacodbKt.toJavaClass(Jacodb.kt:108) ~[usvm-jvm-instrumentation-comp-231122-1058.jar:?]
	at org.usvm.instrumentation.util.JacodbKt.toJavaClass(Jacodb.kt:54) ~[usvm-jvm-instrumentation-comp-231122-1058.jar:?]
	at org.usvm.instrumentation.testcase.executor.UTestExpressionExecutor.executeUTestAllocateMemoryCall(UTestExpressionExecutor.kt:157) ~[usvm-jvm-instrumentation-comp-231122-1058.jar:?]
	at org.usvm.instrumentation.testcase.executor.UTestExpressionExecutor.exec(UTestExpressionExecutor.kt:63) ~[usvm-jvm-instrumentation-comp-231122-1058.jar:?]
	at org.usvm.instrumentation.testcase.executor.UTestExpressionExecutor.executeUTestSetFieldStatement(UTestExpressionExecutor.kt:233) ~[usvm-jvm-instrumentation-comp-231122-1058.jar:?]
	at org.usvm.instrumentation.testcase.executor.UTestExpressionExecutor.exec(UTestExpressionExecutor.kt:73) ~[usvm-jvm-instrumentation-comp-231122-1058.jar:?]
	at org.usvm.instrumentation.testcase.executor.UTestExpressionExecutor.executeUTestInst-IoAF18A(UTestExpressionExecutor.kt:39) ~[usvm-jvm-instrumentation-comp-231122-1058.jar:?]
Lenguaje dominante
Kotlin
Estrellas
33
Forks
27
Merge medio
4 d 3 h
PR fusionados (30 d)
15

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de UnitTestBot/usvm

Todos los issues de UnitTestBot/usvm

Issues similares

Más issues de Kotlin

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.