diff options
| author | Georgios Andreadis <info@gandreadis.com> | 2020-07-20 22:11:01 +0200 |
|---|---|---|
| committer | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2020-08-24 19:48:14 +0200 |
| commit | 04686bf5cef4aea51fd613a158aa8b155763d0e7 (patch) | |
| tree | 2a246fd3cc3dba41871938b72423390bae55f5f8 /simulator/opendc/opendc-experiments-sc20/src | |
| parent | 791b5d1e443f97adc756264878c3aae41ca0f748 (diff) | |
| parent | dba8ee7e56896924f63c86f88400f3f6ced2d80a (diff) | |
Merge pull request #10 from atlarge-research/bug/experiment-reporting
Fix reporting of experiment failures
Diffstat (limited to 'simulator/opendc/opendc-experiments-sc20/src')
3 files changed, 12 insertions, 6 deletions
diff --git a/simulator/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/reporter/ConsoleExperimentReporter.kt b/simulator/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/reporter/ConsoleExperimentReporter.kt index f59402d5..b446abc8 100644 --- a/simulator/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/reporter/ConsoleExperimentReporter.kt +++ b/simulator/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/reporter/ConsoleExperimentReporter.kt @@ -30,6 +30,7 @@ import com.atlarge.opendc.experiments.sc20.runner.execution.ExperimentExecutionL import com.atlarge.opendc.experiments.sc20.runner.execution.ExperimentExecutionResult import me.tongfei.progressbar.ProgressBar import me.tongfei.progressbar.ProgressBarBuilder +import mu.KotlinLogging /** * A reporter that reports the experiment progress to the console. @@ -46,6 +47,11 @@ public class ConsoleExperimentReporter : ExperimentExecutionListener { private var total = 0 /** + * The logger for this reporter. + */ + private val logger = KotlinLogging.logger {} + + /** * The progress bar to keep track of the progress. */ private val pb: ProgressBar = ProgressBarBuilder() @@ -69,6 +75,10 @@ public class ConsoleExperimentReporter : ExperimentExecutionListener { pb.close() } } + + if (result is ExperimentExecutionResult.Failed) { + logger.warn(result.throwable) { "Descriptor $descriptor failed" } + } } override fun executionStarted(descriptor: ExperimentDescriptor) {} diff --git a/simulator/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/runner/execution/ExperimentScheduler.kt b/simulator/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/runner/execution/ExperimentScheduler.kt index 0346a7f8..96678abf 100644 --- a/simulator/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/runner/execution/ExperimentScheduler.kt +++ b/simulator/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/runner/execution/ExperimentScheduler.kt @@ -49,11 +49,10 @@ interface ExperimentScheduler : Closeable { * * @param descriptor The descriptor to execute. * @param context The context to execute the descriptor in. - * @return The results of the experiment trial. */ suspend operator fun invoke( descriptor: ExperimentDescriptor, context: ExperimentExecutionContext - ): ExperimentExecutionResult + ) } } diff --git a/simulator/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/runner/execution/ThreadPoolExperimentScheduler.kt b/simulator/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/runner/execution/ThreadPoolExperimentScheduler.kt index a7c8ba4d..a8ee59a8 100644 --- a/simulator/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/runner/execution/ThreadPoolExperimentScheduler.kt +++ b/simulator/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/runner/execution/ThreadPoolExperimentScheduler.kt @@ -47,7 +47,7 @@ class ThreadPoolExperimentScheduler(parallelism: Int = Runtime.getRuntime().avai override suspend fun invoke( descriptor: ExperimentDescriptor, context: ExperimentExecutionContext - ): ExperimentExecutionResult = supervisorScope { + ) = supervisorScope { val listener = object : ExperimentExecutionListener { override fun descriptorRegistered(descriptor: ExperimentDescriptor) { @@ -70,10 +70,7 @@ class ThreadPoolExperimentScheduler(parallelism: Int = Runtime.getRuntime().avai try { withContext(dispatcher) { descriptor(newContext) - ExperimentExecutionResult.Success } - } catch (e: Throwable) { - ExperimentExecutionResult.Failed(e) } finally { tickets.release() } |
