ConsoleDataWriter and LogFileDataWriter fail on gitlab pipeline

Gatling version: 3.12.0
gatling-maven-plugin: 4.10.0
Gatling flavor: java kotlin scala javascript typescript
Gatling build tool: [ X] maven gradle sbt bundle npm

our simulations are working correctly in local connected to local component.
our simulations are working correctly in local connected to our server performance env.
same simulations fail in gitlab for same performance env.

gatling.conf used :

gatling {
  charting {
    useGroupDurationMetric = true          # Switch group timings from cumulated response time to group duration.
  data {
    enableAnalytics = false                  # Anonymous Usage Analytics (no tracking), please support
  }
}

log in the pipeline :

e[0KRunning with gitlab-runner 16.4.0 (6e766faf)e[0;m
e[0K  on gitlab-runner-medium-77c7468bdf-l5jvg 6iRcmSpP, system ID: r_JaTDbF1VhL0ye[0;m
section_start:1727872886:prepare_executor
e[0Ke[0Ke[36;1mPreparing the "kubernetes" executore[0;me[0;m
e[0KUsing Kubernetes namespace: trv-gitlab-runnere[0;m
e[0KUsing Kubernetes executor with image finvmharborp01.finbel.intra/trv-gitlab-runner/maven:3.8.6-eclipse-temurin-17 ...e[0;m
e[0KUsing attach strategy to execute scripts...e[0;m
section_end:1727872886:prepare_executor
e[0Ksection_start:1727872886:prepare_script
e[0Ke[0Ke[36;1mPreparing environmente[0;me[0;m
Waiting for pod trv-gitlab-runner/runner-6ircmspp-project-177-concurrent-0-pa50q76m to be running, status is Pending
Waiting for pod trv-gitlab-runner/runner-6ircmspp-project-177-concurrent-0-pa50q76m to be running, status is Pending
	ContainersNotInitialized: "containers with incomplete status: [init-permissions]"
	ContainersNotReady: "containers with unready status: [build helper]"
	ContainersNotReady: "containers with unready status: [build helper]"
Running on runner-6ircmspp-project-177-concurrent-0-pa50q76m via gitlab-runner-medium-77c7468bdf-l5jvg...

section_end:1727872893:prepare_script
e[0Ksection_start:1727872893:get_sources
e[0Ke[0Ke[36;1mGetting source from Git repositorye[0;me[0;m
e[32;1mFetching changes...e[0;m
Initialized empty Git repository in /builds/xxx/xxx/xx/xxxxx/.git/
e[32;1mCreated fresh repository.e[0;m
e[32;1mChecking out 9d5e7910 as detached HEAD (ref is refs/merge-requests/339/head)...e[0;m

e[32;1mSkipping Git submodules setupe[0;m

section_end:1727872897:get_sources
e[0Ksection_start:1727872897:restore_cache
e[0Ke[0Ke[36;1mRestoring cachee[0;me[0;m
e[32;1mChecking cache for default-2-non_protected...e[0;m
Downloading cache from https://minio-vxrail.finbel.intra/runner-cache/gitlab_runner/project/177/default-2-non_protectede[0;m 
e[32;1mSuccessfully extracted cachee[0;m

section_end:1727872910:restore_cache
e[0Ksection_start:1727872910:step_script
e[0Ke[0Ke[36;1mExecuting "step_script" stage of the job scripte[0;me[0;m
e[32;1m$ keytool -importcert -trustcacerts -noprompt -alias dsl -file $DVT_DSL_CACERTS -cacerts -storepass changeit && ( [[ -n ${MVN_SETTINGS} ]] && echo ${MVN_SETTINGS} > /tmp/mvn-settings.xml || cp $DVT_MVN_SETTINGS_DSL /tmp/mvn-settings.xml )e[0;m
Certificate was added to keystore
e[32;1m$ mvn $MAVEN_CLI_OPTS test-compile gatling:test -DbaseUrl=${LOAD_TEST_BASE_URL?} -DmockBaseUrl=${LOAD_TEST_MOCK_BASE_URL?}e[0;m
966 [INFO] Scanning for projects...
1274 [INFO] 
1274 [INFO] ------------------< xx.xxxx.xxxx.xxxxx:xxx-xxxxxx >------------------
1274 [INFO] Building xxxx - xx Micro Service 0.0.1-SNAPSHOT
1274 [INFO] --------------------------------[ jar ]---------------------------------
2749 [INFO] 
2750 [INFO] --- jacoco-maven-plugin:0.8.7:prepare-agent (prepare-unit-tests) @ xx-service ---
2890 [INFO] surefireArgLine set to -javaagent:/builds/xxx/xxxxx/xx/xxxxx-dev/.m2/repository/org/jacoco/org.jacoco.agent/0.8.7/org.jacoco.agent-0.8.7-runtime.jar=destfile=/builds/xxx/xxxxx/xx/xx-xxx-dev/target/jacoco.exec,append=true
2890 [INFO] 
2890 [INFO] --- build-helper-maven-plugin:3.5.0:add-source (add-source) @ xx-service ---
2933 [INFO] Source directory: /builds/xxx/xxxxx/xx/xxxxx-dev/target/generated-sources/wsimport added.
2933 [INFO] 
2933 [INFO] --- fmt-maven-plugin:2.19:format (default) @ xx-service ---
[info] Processed 100 files (0 reformatted).
[info] Processed 200 files (0 reformatted).
[info] Processed 300 files (0 reformatted).
[info] Processed 400 files (0 reformatted).
[info] Processed 500 files (0 reformatted).
[info] Processed 600 files (0 reformatted).
[info] Processed 631 files (0 reformatted).
7471 [INFO] 
7471 [INFO] --- maven-resources-plugin:3.3.1:resources (default-resources) @ xx-service ---
7519 [INFO] Copying 2 resources from src/main/resources to target/classes
7544 [INFO] Copying 135 resources from src/main/resources to target/classes
7559 [INFO] 
7559 [INFO] --- maven-compiler-plugin:3.13.0:compile (default-compile) @ xx-service ---
7727 [INFO] Recompiling the module because of changed source code.
7738 [INFO] Compiling 458 source files with javac [debug parameters release 17] to target/classes
24490 [INFO] Hibernate compile-time tooling 6.5.0.Final
24491 [INFO] 
26069 [INFO] --- maven-resources-plugin:3.3.1:testResources (default-testResources) @ xx-service ---
26076 [INFO] Copying 229 resources from src/test/resources to target/test-classes
26095 [INFO] 
26095 [INFO] --- maven-compiler-plugin:3.13.0:testCompile (default-testCompile) @ xx-service ---
26114 [INFO] Recompiling the module because of changed dependency.
26118 [INFO] Compiling 173 source files with javac [debug parameters release 17] to target/test-classes
32096 [INFO] Hibernate compile-time tooling 6.5.0.Final
32096 [INFO] 
32096 [INFO] >>> gatling-maven-plugin:4.10.0:test (default-cli) > test-compile @ xx-service >>>
32098 [INFO] 
32098 [INFO] --- jacoco-maven-plugin:0.8.7:prepare-agent (prepare-unit-tests) @ xx-service ---
32100 [INFO] surefireArgLine set to -javaagent:/builds/xxx/xxxxx/xx/xxxxx-dev/.m2/repository/org/jacoco/org.jacoco.agent/0.8.7/org.jacoco.agent-0.8.7-runtime.jar=destfile=/builds/xxx/xxxxx/xx/xxxxx-dev/target/jacoco.exec,append=true
32100 [INFO] 
32100 [INFO] --- build-helper-maven-plugin:3.5.0:add-source (add-source) @ xx-service ---
32101 [INFO] Source directory: /builds/xxx/xxxxx/xx/xxxxx-dev/target/generated-sources/wsimport added.
32102 [INFO] 
32102 [INFO] --- fmt-maven-plugin:2.19:format (default) @ xx-service ---
[info] Processed 100 files (0 reformatted).
[info] Processed 200 files (0 reformatted).
[info] Processed 300 files (0 reformatted).
[info] Processed 400 files (0 reformatted).
[info] Processed 500 files (0 reformatted).
[info] Processed 600 files (0 reformatted).
[info] Processed 631 files (0 reformatted).
36461 [INFO] 
36462 [INFO] --- maven-resources-plugin:3.3.1:resources (default-resources) @ xx-service ---
36464 [INFO] Copying 2 resources from src/main/resources to target/classes
36565 [INFO] Copying 135 resources from src/main/resources to target/classes
36570 [INFO] 
36570 [INFO] --- maven-compiler-plugin:3.13.0:compile (default-compile) @ xx-service ---
36624 [INFO] Nothing to compile - all classes are up to date.
36624 [INFO] 
36624 [INFO] --- hibernate-enhance-maven-plugin:6.5.0.Final:enhance (default) @ xx-service ---
36639 [INFO] Starting Hibernate enhancement for classes on /builds/xxx/xxxxx/xx/xxxxx-dev/target/classes
36778 [INFO] 
36778 [INFO] --- maven-resources-plugin:3.3.1:testResources (default-testResources) @ xx-service ---
36784 [INFO] Copying 229 resources from src/test/resources to target/test-classes
36791 [INFO] 
36791 [INFO] --- maven-compiler-plugin:3.13.0:testCompile (default-testCompile) @ ga-service ---
36809 [INFO] Recompiling the module because of changed dependency.
36818 [INFO] Compiling 173 source files with javac [debug parameters release 17] to target/test-classes
42386 [INFO] Hibernate compile-time tooling 6.5.0.Final
42387 [INFO] 
42387 [INFO] <<< gatling-maven-plugin:4.10.0:test (default-cli) < test-compile @ xx-service <<<
42387 [INFO] 
42387 [INFO] 
42387 [INFO] --- gatling-maven-plugin:4.10.0:test (default-cli) @ xx-service ---
43297 [INFO] Running simulation xx.xxx.xxxxx.xx.simulations.XXSyncSimulation.
2024-10-02T12:42:35.863Z  INFO   --- [           main] i.g.core.config.GatlingConfiguration$    : Gatling will try to load 'gatling.conf' config file as ClassLoader resource.
Oct 02, 2024 12:42:36 PM java.util.prefs.FileSystemPreferences$1 run
INFO: Created user preferences directory.
Simulation bxx.xxx.xxxxx.xx.simulations.XXSyncSimulation started...
2024-10-02T12:42:47.013Z ERROR   --- [pool-1-thread-1] i.g.core.actor.AtomicRunnableActorRef    : Actor controller crashed when processing message 'Start(ScenarioFlows(List(Flow(io.gatling.core.scenario.Scenario@38dadf35,Set()), Flow(io.gatling.core.scenario.Scenario@6a8dc312,Set(Delete Wiremock Requests Start)), Flow(io.gatling.core.scenario.Scenario@3cd66009,Set(xx Load Test)))),Future(<not completed>))'

java.util.concurrent.TimeoutException: Future timed out after [5 seconds]
	at scala.concurrent.impl.Promise$DefaultPromise.tryAwait0(Promise.scala:248)
	at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:255)
	at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:104)
	at scala.concurrent.Await$.$anonfun$ready$1(package.scala:174)
	at scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:62)
	at scala.concurrent.Await$.ready(package.scala:124)
	at io.gatling.core.stats.DataWritersStatsEngine.start(DataWritersStatsEngine.scala:92)
	at io.gatling.core.controller.Controller.io$gatling$core$controller$Controller$$$anonfun$init$1(Controller.scala:74)
	at io.gatling.core.controller.Controller$$anonfun$init$5.apply(Controller.scala:64)
	at io.gatling.core.controller.Controller$$anonfun$init$5.apply(Controller.scala:64)
	at io.gatling.core.actor.AtomicRunnableActorRef.$anonfun$run$1(ActorSystem.scala:115)
	at io.netty.util.internal.shaded.org.jctools.queues.MessagePassingQueueUtil.drain(MessagePassingQueueUtil.java:39)
	at io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueue.drain(BaseMpscLinkedArrayQueue.java:638)
	at io.netty.util.internal.shaded.org.jctools.queues.MpscUnboundedArrayQueue.drain(MpscUnboundedArrayQueue.java:23)
	at io.gatling.core.actor.AtomicRunnableActorRef.run(ActorSystem.scala:120)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)

2024-10-02T12:42:47.016Z  INFO   --- [pool-1-thread-1] i.g.core.stats.writer.ConsoleDataWriter  : Dropping msg 'Init(List(Assertion(Details(List(Submit Valid OWD)),MeanRequestsPerSecond,Gte(10.0)), Assertion(Details(List(Submit Valid WOR)),MeanRequestsPerSecond,Gte(10.0)), Assertion(Details(List(Submit Invalid WOR)),MeanRequestsPerSecond,Gte(10.0)), Assertion(Details(List(Submit Valid WOR Invalidation)),MeanRequestsPerSecond,Gte(10.0)), Assertion(Details(List(Submit Invalid WOR Invalidation)),MeanRequestsPerSecond,Gte(10.0)), Assertion(Details(List(Submit Valid OWD)),Time(ResponseTime,Percentile(95.0)),Lt(500.0)), Assertion(Details(List(Submit Valid WOR)),Time(ResponseTime,Percentile(95.0)),Lt(500.0)), Assertion(Details(List(Submit Invalid WOR)),Time(ResponseTime,Percentile(95.0)),Lt(500.0)), Assertion(Details(List(Submit Valid WOR Invalidation)),Time(ResponseTime,Percentile(95.0)),Lt(500.0)), Assertion(Details(List(Submit Invalid WOR Invalidation)),Time(ResponseTime,Percentile(95.0)),Lt(500.0)), Assertion(Details(List(Submit Valid OWD)),Percent(FailedRequests),Lte(0.0)), Assertion(Details(List(Submit Valid WOR)),Percent(FailedRequests),Lte(0.0)), Assertion(Details(List(Submit Invalid WOR)),Percent(FailedRequests),Lte(0.0)), Assertion(Details(List(Submit Valid WOR Invalidation)),Percent(FailedRequests),Lte(0.0)), Assertion(Details(List(Submit Invalid WOR Invalidation)),Percent(FailedRequests),Lte(0.0))),RunMessage(xx.xxx.xxxxx.xx.simulations.XXSyncSimulation,xxsyncsimulation,1727872961562,,3.12.0,Z),List(ShortScenarioDescription(Delete Wiremock Requests Start,Some(1)), ShortScenarioDescription(XX Load Test,Some(4030)), ShortScenarioDescription(Delete Wiremock Requests End,Some(1))),Future(Failure(java.util.concurrent.TimeoutException)))' as actor is dead
2024-10-02T12:42:47.018Z  INFO   --- [pool-1-thread-1] i.g.core.stats.writer.LogFileDataWriter  : Dropping msg 'Init(List(Assertion(Details(List(Submit Valid OWD)),MeanRequestsPerSecond,Gte(10.0)), Assertion(Details(List(Submit Valid WOR)),MeanRequestsPerSecond,Gte(10.0)), Assertion(Details(List(Submit Invalid WOR)),MeanRequestsPerSecond,Gte(10.0)), Assertion(Details(List(Submit Valid WOR Invalidation)),MeanRequestsPerSecond,Gte(10.0)), Assertion(Details(List(Submit Invalid WOR Invalidation)),MeanRequestsPerSecond,Gte(10.0)), Assertion(Details(List(Submit Valid OWD)),Time(ResponseTime,Percentile(95.0)),Lt(500.0)), Assertion(Details(List(Submit Valid WOR)),Time(ResponseTime,Percentile(95.0)),Lt(500.0)), Assertion(Details(List(Submit Invalid WOR)),Time(ResponseTime,Percentile(95.0)),Lt(500.0)), Assertion(Details(List(Submit Valid WOR Invalidation)),Time(ResponseTime,Percentile(95.0)),Lt(500.0)), Assertion(Details(List(Submit Invalid WOR Invalidation)),Time(ResponseTime,Percentile(95.0)),Lt(500.0)), Assertion(Details(List(Submit Valid OWD)),Percent(FailedRequests),Lte(0.0)), Assertion(Details(List(Submit Valid WOR)),Percent(FailedRequests),Lte(0.0)), Assertion(Details(List(Submit Invalid WOR)),Percent(FailedRequests),Lte(0.0)), Assertion(Details(List(Submit Valid WOR Invalidation)),Percent(FailedRequests),Lte(0.0)), Assertion(Details(List(Submit Invalid WOR Invalidation)),Percent(FailedRequests),Lte(0.0))),RunMessage(xx.xxx.xxxxx.xx.simulations.XXSyncSimulation,xxsyncsimulation,1727872961562,,3.12.0,Z),List(ShortScenarioDescription(Delete Wiremock Requests Start,Some(1)), ShortScenarioDescription(XX Load Test,Some(4030)), ShortScenarioDescription(Delete Wiremock Requests End,Some(1))),Future(Failure(java.util.concurrent.TimeoutException)))' as actor is dead

Process hang here the process is stuck, and no hhtp call is made to our perf system.

if i change gatling.conf to :

gatling {
  charting {
    useGroupDurationMetric = true          # Switch group timings from cumulated response time to group duration.
  data {
    writers = []               # The list of DataWriters to which Gatling write simulation data (currently supported : console, file, graphite)
    enableAnalytics = false                  # Anonymous Usage Analytics (no tracking), please support
  }
}

…removing the writers, then our system receive the hhtp call correctly but of course it doesn’t log anything to the console and at the end it fail to to write data to the file

pom.xml config :

<dependencies>
		<dependency>
			<groupId>io.gatling.highcharts</groupId>
			<artifactId>gatling-charts-highcharts</artifactId>
			<version>3.12.0</version>
			<scope>test</scope>
		</dependency>
</dependencies>
<build>
		<plugins>
			<plugin>
				<groupId>io.gatling</groupId>
				<artifactId>gatling-maven-plugin</artifactId>
				<version>4.10.0</version>
				<configuration>
					<runMultipleSimulations>true</runMultipleSimulations>
					<simulationClass>xx.xxxx.xxx.xx.simulations.XxSyncSimulation</simulationClass>
				</configuration>
			</plugin>
		</plugins
<\build>

I’m unsure how i can provide you with a SSCCE since the simulation is working locally. but i could use some help, stack trace doesn’t help much to debug this

1 Like

Hello,

No idea what could go wrong as things work as expected locally on a standard machine and only run into an issue into your private Gitlab setup we know nothing about.

And we can’t investigate your private Gitlab setup, all the more as we provide an official Gitlab integration with Gatling Enterprise.

We would really need a SSCCE.

My2cent: your Gitlab setup is blocking stdout and/or file I/O.

removing the writers, then our system receive the hhtp call correctly but of course it doesn’t log anything to the console and at the end it fail to to write data to the file

I can’t reproduce any issue when the writers are empty.

% mvn gatling:test
[INFO] Scanning for projects...
[INFO]
[INFO] -----------< io.gatling.demo:gatling-maven-plugin-demo-java >-----------
[INFO] Building gatling-maven-plugin-demo-java 3.12.0
[INFO]   from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] >>> gatling:4.10.0:test (default-cli) > test-compile @ gatling-maven-plugin-demo-java >>>
[INFO]
[INFO] --- resources:3.3.1:resources (default-resources) @ gatling-maven-plugin-demo-java ---
[INFO] skip non existing resourceDirectory /Users/slandelle/Documents/dev/projects/gatling-03-samples/gatling-maven-plugin-demo-java/src/main/resources
[INFO]
[INFO] --- compiler:3.13.0:compile (default-compile) @ gatling-maven-plugin-demo-java ---
[INFO] No sources to compile
[INFO]
[INFO] --- resources:3.3.1:testResources (default-testResources) @ gatling-maven-plugin-demo-java ---
[INFO] Copying 3 resources from src/test/resources to target/test-classes
[INFO]
[INFO] --- compiler:3.13.0:testCompile (default-testCompile) @ gatling-maven-plugin-demo-java ---
[INFO] Recompiling the module because of changed source code.
[INFO] Compiling 1 source file with javac [debug release 11] to target/test-classes
[INFO]
[INFO] <<< gatling:4.10.0:test (default-cli) < test-compile @ gatling-maven-plugin-demo-java <<<
[INFO]
[INFO]
[INFO] --- gatling:4.10.0:test (default-cli) @ gatling-maven-plugin-demo-java ---
[INFO] Running simulation computerdatabase.ComputerDatabaseSimulation.
Simulation computerdatabase.ComputerDatabaseSimulation started...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  22.272 s
[INFO] Finished at: 2024-10-03T10:43:14+02:00
[INFO] ------------------------------------------------------------------------

Thanks for your reply.

I have tested with gitlab cli local and indeed version 3.12.0 is working with minimal configuration.

However when i use the version 3.10.5 on our real pipeline it’s working.
So something changed in your DataWritersStatsEngine in gatling lib after this version that make things fail.
And since the stacktrace is not really obvious i cannot tell you what unfortunately

1 Like

Again, sorry but we can’t help you this way.

You have the following options:

  • provide a SSCCE so we have everything necessary to investigate on our side
  • investigate yourself
  • become a Gatling Enterprise customer so you can get enterprise grade support

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.