You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
Test run job fails with ConfigurationException when countSharding is set
To Reproduce
Steps to reproduce the behaviour:
Marathon version 0.8.1
Set marathon config for android app from gradle plugin. Only set sharding:
shardingStrategy {
countSharding {
count = 2
}
}
Try running marathon job
Expected behavior
Job runs, no error, tests run 2 times
Devices (please complete the following information):
Device: android emulator (pixel 2, api 31)
OS: iOS12.6.1
Logs and reports
I 09:25:26.681 [main @coroutine#2] <com.malinskiy.marathon.Marathon> System Information:
I 09:25:26.681 [main @coroutine#2] <com.malinskiy.marathon.Marathon> java.specification.version: 18
I 09:25:26.681 [main @coroutine#2] <com.malinskiy.marathon.Marathon> java.vm.vendor: Homebrew
I 09:25:26.681 [main @coroutine#2] <com.malinskiy.marathon.Marathon> java.vendor.url: https://github.com/Homebrew/homebrew-core/issues
I 09:25:26.681 [main @coroutine#2] <com.malinskiy.marathon.Marathon> java.vm.specification.version: 18
I 09:25:26.681 [main @coroutine#2] <com.malinskiy.marathon.Marathon> os.name: Mac OS X
I 09:25:26.681 [main @coroutine#2] <com.malinskiy.marathon.Marathon> java.specification.vendor: Oracle Corporation
I 09:25:26.681 [main @coroutine#2] <com.malinskiy.marathon.Marathon> java.version.date: 2022-04-22
I 09:25:26.681 [main @coroutine#2] <com.malinskiy.marathon.Marathon> java.home: /opt/homebrew/Cellar/openjdk/18.0.1.1/libexec/openjdk.jdk/Contents/Home
I 09:25:26.681 [main @coroutine#2] <com.malinskiy.marathon.Marathon> java.vm.compressedOopsMode: Zero based
I 09:25:26.681 [main @coroutine#2] <com.malinskiy.marathon.Marathon> java.vm.specification.vendor: Oracle Corporation
I 09:25:26.681 [main @coroutine#2] <com.malinskiy.marathon.Marathon> java.specification.name: Java Platform API Specification
I 09:25:26.681 [main @coroutine#2] <com.malinskiy.marathon.Marathon> java.runtime.version: 18.0.1.1+0
I 09:25:26.681 [main @coroutine#2] <com.malinskiy.marathon.Marathon> os.version: 12.6.1
I 09:25:26.681 [main @coroutine#2] <com.malinskiy.marathon.Marathon> java.runtime.name: OpenJDK Runtime Environment
I 09:25:26.681 [main @coroutine#2] <com.malinskiy.marathon.Marathon> java.vm.name: OpenJDK 64-Bit Server VM
I 09:25:26.681 [main @coroutine#2] <com.malinskiy.marathon.Marathon> java.vendor.version: Homebrew
I 09:25:26.681 [main @coroutine#2] <com.malinskiy.marathon.Marathon> java.vendor.url.bug: https://github.com/Homebrew/homebrew-core/issues
I 09:25:26.681 [main @coroutine#2] <com.malinskiy.marathon.Marathon> java.io.tmpdir: /var/folders/zh/8_0_c55d1bb9wbg6vz585qmw0000gp/T/
I 09:25:26.681 [main @coroutine#2] <com.malinskiy.marathon.Marathon> java.version: 18.0.1.1
I 09:25:26.681 [main @coroutine#2] <com.malinskiy.marathon.Marathon> os.arch: aarch64
I 09:25:26.681 [main @coroutine#2] <com.malinskiy.marathon.Marathon> java.vm.specification.name: Java Virtual Machine Specification
I 09:25:26.681 [main @coroutine#2] <com.malinskiy.marathon.Marathon> java.library.path: /Users/sergey.shustov/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
I 09:25:26.681 [main @coroutine#2] <com.malinskiy.marathon.Marathon> java.vm.info: mixed mode, sharing
I 09:25:26.681 [main @coroutine#2] <com.malinskiy.marathon.Marathon> java.vendor: Homebrew
I 09:25:26.681 [main @coroutine#2] <com.malinskiy.marathon.Marathon> java.vm.version: 18.0.1.1+0
I 09:25:26.681 [main @coroutine#2] <com.malinskiy.marathon.Marathon> java.class.version: 62.0
E 09:25:26.686 [main @coroutine#1] <com.malinskiy.marathon.Marathon> kotlin.Unit
com.malinskiy.marathon.config.exceptions.ConfigurationException: Configuration is invalid: can't use complex sharding and any success execution strategy at the same time. Consult documentation for the any success execution logic
at com.malinskiy.marathon.config.LogicalConfigurationValidator.validate(LogicalConfigurationValidator.kt:37)
at com.malinskiy.marathon.Marathon.runAsync(Marathon.kt:102)
at com.malinskiy.marathon.Marathon$run$1$1.invokeSuspend(Marathon.kt:69)
(Coroutine boundary)
at com.malinskiy.marathon.Marathon$run$1.invokeSuspend(Marathon.kt:83)
Caused by: com.malinskiy.marathon.config.exceptions.ConfigurationException: Configuration is invalid: can't use complex sharding and any success execution strategy at the same time. Consult documentation for the any success execution logic
at com.malinskiy.marathon.config.LogicalConfigurationValidator.validate(LogicalConfigurationValidator.kt:37)
at com.malinskiy.marathon.Marathon.runAsync(Marathon.kt:102)
at com.malinskiy.marathon.Marathon$run$1$1.invokeSuspend(Marathon.kt:69)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:284)
at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38)
at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
at com.malinskiy.marathon.Marathon.run(Marathon.kt:65)
at com.malinskiy.marathon.cli.ApplicationViewKt.execute(ApplicationView.kt:80)
at com.malinskiy.marathon.cli.ApplicationViewKt.access$execute(ApplicationView.kt:1)
at com.malinskiy.marathon.cli.ApplicationViewKt$main$1.invoke(ApplicationView.kt:34)
at com.malinskiy.marathon.cli.ApplicationViewKt$main$1.invoke(ApplicationView.kt:34)
Caused by: com.malinskiy.marathon.config.exceptions.ConfigurationException: Configuration is invalid: can't use complex sharding and any success execution strategy at the same time. Consult documentation for the any success execution logic
at com.malinskiy.marathon.cli.args.MarathonCli.run(CliCommands.kt:42)
at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:198)
at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:18)
at com.github.ajalt.clikt.core.CliktCommand.parse(CliktCommand.kt:400)
at com.github.ajalt.clikt.core.CliktCommand.parse$default(CliktCommand.kt:397)
at com.github.ajalt.clikt.core.CliktCommand.main(CliktCommand.kt:415)
at com.github.ajalt.clikt.core.CliktCommand.main(CliktCommand.kt:440)
at com.malinskiy.marathon.cli.ApplicationViewKt.main(ApplicationView.kt:36)
Exception in thread "main @coroutine#2" kotlinx.coroutines.CompletionHandlerException: Exception in completion handler InvokeOnCompletion@e26af6[job@44065156] for "coroutine#2":DeferredCoroutine{Cancelled}@44065156
at kotlinx.coroutines.JobSupport.notifyCompletion(JobSupport.kt:1525)
at kotlinx.coroutines.JobSupport.completeStateFinalization(JobSupport.kt:323)
at kotlinx.coroutines.JobSupport.finalizeFinishingState(JobSupport.kt:240)
at kotlinx.coroutines.JobSupport.tryMakeCompletingSlowPath(JobSupport.kt:906)
at kotlinx.coroutines.JobSupport.tryMakeCompleting(JobSupport.kt:863)
at kotlinx.coroutines.JobSupport.makeCompletingOnce$kotlinx_coroutines_core(JobSupport.kt:828)
at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:100)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:284)
at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38)
at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
at com.malinskiy.marathon.Marathon.run(Marathon.kt:65)
at com.malinskiy.marathon.cli.ApplicationViewKt.execute(ApplicationView.kt:80)
at com.malinskiy.marathon.cli.ApplicationViewKt.access$execute(ApplicationView.kt:1)
at com.malinskiy.marathon.cli.ApplicationViewKt$main$1.invoke(ApplicationView.kt:34)
at com.malinskiy.marathon.cli.ApplicationViewKt$main$1.invoke(ApplicationView.kt:34)
at com.malinskiy.marathon.cli.args.MarathonCli.run(CliCommands.kt:42)
at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:198)
at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:18)
at com.github.ajalt.clikt.core.CliktCommand.parse(CliktCommand.kt:400)
at com.github.ajalt.clikt.core.CliktCommand.parse$default(CliktCommand.kt:397)
at com.github.ajalt.clikt.core.CliktCommand.main(CliktCommand.kt:415)
at com.github.ajalt.clikt.core.CliktCommand.main(CliktCommand.kt:440)
at com.malinskiy.marathon.cli.ApplicationViewKt.main(ApplicationView.kt:36)
Suppressed: kotlinx.coroutines.DiagnosticCoroutineContextException: [CoroutineId(2), "coroutine#2":DeferredCoroutine{Cancelled}@44065156, BlockingEventLoop@48976e6d]
Caused by: kotlin.UninitializedPropertyAccessException: lateinit property deviceEventsChannel has not been initialized
at com.malinskiy.marathon.android.adam.AdamDeviceProvider.terminate(AdamDeviceProvider.kt:201)
Caused by: kotlin.UninitializedPropertyAccessException: lateinit property deviceEventsChannel has not been initialized
at com.malinskiy.marathon.Marathon.onFinish(Marathon.kt:190)
at com.malinskiy.marathon.Marathon.access$onFinish(Marathon.kt:45)
at com.malinskiy.marathon.Marathon$run$1$2$1$1$1.invokeSuspend(Marathon.kt:78)
at com.malinskiy.marathon.Marathon$run$1$2$1$1$1.invoke(Marathon.kt)
at com.malinskiy.marathon.Marathon$run$1$2$1$1$1.invoke(Marathon.kt)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:169)
at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
at com.malinskiy.marathon.Marathon$run$1$2$1$1.invokeSuspend(Marathon.kt:77)
(Coroutine boundary)
at com.malinskiy.marathon.Marathon$run$1$2$1$1.invokeSuspend(Marathon.kt:77)
Caused by: kotlin.UninitializedPropertyAccessException: lateinit property deviceEventsChannel has not been initialized
at com.malinskiy.marathon.android.adam.AdamDeviceProvider.terminate(AdamDeviceProvider.kt:201)
at com.malinskiy.marathon.Marathon.onFinish(Marathon.kt:190)
at com.malinskiy.marathon.Marathon.access$onFinish(Marathon.kt:45)
at com.malinskiy.marathon.Marathon$run$1$2$1$1$1.invokeSuspend(Marathon.kt:78)
at com.malinskiy.marathon.Marathon$run$1$2$1$1$1.invoke(Marathon.kt)
at com.malinskiy.marathon.Marathon$run$1$2$1$1$1.invoke(Marathon.kt)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:169)
at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
at com.malinskiy.marathon.Marathon$run$1$2$1$1.invokeSuspend(Marathon.kt:77)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:284)
at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38)
at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
at com.malinskiy.marathon.Marathon$run$1$2$1.invoke(Marathon.kt:76)
at com.malinskiy.marathon.Marathon$run$1$2$1.invoke(Marathon.kt:73)
at kotlinx.coroutines.InvokeOnCompletion.invoke(JobSupport.kt:1392)
at kotlinx.coroutines.JobSupport.notifyCompletion(JobSupport.kt:1520)
at kotlinx.coroutines.JobSupport.completeStateFinalization(JobSupport.kt:323)
at kotlinx.coroutines.JobSupport.finalizeFinishingState(JobSupport.kt:240)
at kotlinx.coroutines.JobSupport.tryMakeCompletingSlowPath(JobSupport.kt:906)
at kotlinx.coroutines.JobSupport.tryMakeCompleting(JobSupport.kt:863)
at kotlinx.coroutines.JobSupport.makeCompletingOnce$kotlinx_coroutines_core(JobSupport.kt:828)
at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:100)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:284)
at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38)
at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
at com.malinskiy.marathon.Marathon.run(Marathon.kt:65)
at com.malinskiy.marathon.cli.ApplicationViewKt.execute(ApplicationView.kt:80)
at com.malinskiy.marathon.cli.ApplicationViewKt.access$execute(ApplicationView.kt:1)
at com.malinskiy.marathon.cli.ApplicationViewKt$main$1.invoke(ApplicationView.kt:34)
at com.malinskiy.marathon.cli.ApplicationViewKt$main$1.invoke(ApplicationView.kt:34)
at com.malinskiy.marathon.cli.args.MarathonCli.run(CliCommands.kt:42)
at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:198)
at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:18)
at com.github.ajalt.clikt.core.CliktCommand.parse(CliktCommand.kt:400)
at com.github.ajalt.clikt.core.CliktCommand.parse$default(CliktCommand.kt:397)
at com.github.ajalt.clikt.core.CliktCommand.main(CliktCommand.kt:415)
at com.github.ajalt.clikt.core.CliktCommand.main(CliktCommand.kt:440)
at com.malinskiy.marathon.cli.ApplicationViewKt.main(ApplicationView.kt:36)
Exception in thread "main" com.malinskiy.marathon.config.exceptions.ConfigurationException: Configuration is invalid: can't use complex sharding and any success execution strategy at the same time. Consult documentation for the any success execution logic
at com.malinskiy.marathon.config.LogicalConfigurationValidator.validate(LogicalConfigurationValidator.kt:37)
at com.malinskiy.marathon.Marathon.runAsync(Marathon.kt:102)
at com.malinskiy.marathon.Marathon$run$1$1.invokeSuspend(Marathon.kt:69)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:284)
at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38)
at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
at com.malinskiy.marathon.Marathon.run(Marathon.kt:65)
at com.malinskiy.marathon.cli.ApplicationViewKt.execute(ApplicationView.kt:80)
at com.malinskiy.marathon.cli.ApplicationViewKt.access$execute(ApplicationView.kt:1)
at com.malinskiy.marathon.cli.ApplicationViewKt$main$1.invoke(ApplicationView.kt:34)
at com.malinskiy.marathon.cli.ApplicationViewKt$main$1.invoke(ApplicationView.kt:34)
at com.malinskiy.marathon.cli.args.MarathonCli.run(CliCommands.kt:42)
at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:198)
at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:18)
at com.github.ajalt.clikt.core.CliktCommand.parse(CliktCommand.kt:400)
at com.github.ajalt.clikt.core.CliktCommand.parse$default(CliktCommand.kt:397)
at com.github.ajalt.clikt.core.CliktCommand.main(CliktCommand.kt:415)
at com.github.ajalt.clikt.core.CliktCommand.main(CliktCommand.kt:440)
at com.malinskiy.marathon.cli.ApplicationViewKt.main(ApplicationView.kt:36)
The text was updated successfully, but these errors were encountered:
UPD: seems to work fine with executionStrategy = new com.malinskiy.marathon.config.strategy.ExecutionStrategyConfiguration(com.malinskiy.marathon.config.strategy.ExecutionMode.ALL_SUCCESS, true). Maybe add it to countSharding doc?
This is documented here https://docs.marathonlabs.io/intro/configure#any-success and there is a message in the run output that clearly states that the execution mode doesnt work with sharding. Is this not sufficient? Do we need anothet section somewhere else?
Well, it's a new thing that wasn't there before 0.8.x, it's not that easy to find in documentation (or maybe I'm just dumb) and countSharding doesn't work with default executionStrategy, so you have to set executionStrategy if you use countSharding. I think it would be helpful to have this information in countSharding doc.
Describe the bug
Test run job fails with ConfigurationException when countSharding is set
To Reproduce
Steps to reproduce the behaviour:
Expected behavior
Job runs, no error, tests run 2 times
Devices (please complete the following information):
Logs and reports
The text was updated successfully, but these errors were encountered: