Skip to content

Fixed flaky test for play-2.8: Source directory '.../routes' is not a directory.#9328

Merged
AlexeyKuznetsov-DD merged 9 commits intomasterfrom
alexeyk/play-not-a-directory-fix
Aug 11, 2025
Merged

Fixed flaky test for play-2.8: Source directory '.../routes' is not a directory.#9328
AlexeyKuznetsov-DD merged 9 commits intomasterfrom
alexeyk/play-not-a-directory-fix

Conversation

@AlexeyKuznetsov-DD
Copy link
Copy Markdown
Contributor

@AlexeyKuznetsov-DD AlexeyKuznetsov-DD commented Aug 6, 2025

What Does This Do

Fix for flaky test: Source directory '/dd-smoke-tests/play-2.8/build/src/play/routes' is not a directory.

Motivation

Smoke test for play 2.8 is failing very often on GitLab.

Additional Notes

After investigation and reading Gradle sources I was not able to find a real root cause, but it looks like somehow a file created instead of folder somehow (maybe GitLab CI is doing that?).
But from Gradle sources it is clear,
that exception will be thrown only if file exists:

if (!srcDir.isDirectory() && srcDir.exists()) {
 throw new InvalidUserDataException(String.format("Source directory '%s' is not a directory.", srcDir));
}

@AlexeyKuznetsov-DD AlexeyKuznetsov-DD self-assigned this Aug 6, 2025
@AlexeyKuznetsov-DD AlexeyKuznetsov-DD added comp: testing Testing tag: no release notes Changes to exclude from release notes labels Aug 6, 2025
@AlexeyKuznetsov-DD AlexeyKuznetsov-DD marked this pull request as ready for review August 6, 2025 20:32
@AlexeyKuznetsov-DD AlexeyKuznetsov-DD requested a review from a team as a code owner August 6, 2025 20:32
@pr-commenter
Copy link
Copy Markdown

pr-commenter Bot commented Aug 6, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master alexeyk/play-not-a-directory-fix
git_commit_date 1754661579 1754853881
git_commit_sha 5ed2f59 6556191
release_version 1.53.0-SNAPSHOT~5ed2f5961b 1.53.0-SNAPSHOT~6556191861
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1754855805 1754855805
ci_job_id 1073001385 1073001385
ci_pipeline_id 73222221 73222221
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-0-fuj6egj4 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-0-fuj6egj4 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
module Agent Agent
parent None None

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 48 metrics, 11 unstable metrics.

Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.53.0-SNAPSHOT~6556191861, baseline=1.53.0-SNAPSHOT~5ed2f5961b

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.043 s) : 0, 1042849
Total [baseline] (8.577 s) : 0, 8576771
Agent [candidate] (1.046 s) : 0, 1045783
Total [candidate] (8.653 s) : 0, 8652603
section iast
Agent [baseline] (1.18 s) : 0, 1180357
Total [baseline] (9.333 s) : 0, 9333124
Agent [candidate] (1.193 s) : 0, 1192998
Total [candidate] (9.308 s) : 0, 9307731
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.043 s -
Agent iast 1.18 s 137.508 ms (13.2%)
Total tracing 8.577 s -
Total iast 9.333 s 756.353 ms (8.8%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.046 s -
Agent iast 1.193 s 147.215 ms (14.1%)
Total tracing 8.653 s -
Total iast 9.308 s 655.129 ms (7.6%)
gantt
    title insecure-bank - break down per module: candidate=1.53.0-SNAPSHOT~6556191861, baseline=1.53.0-SNAPSHOT~5ed2f5961b

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.43 ms) : 0, 1430
crashtracking [candidate] (1.423 ms) : 0, 1423
BytebuddyAgent [baseline] (730.501 ms) : 0, 730501
BytebuddyAgent [candidate] (730.916 ms) : 0, 730916
GlobalTracer [baseline] (241.726 ms) : 0, 241726
GlobalTracer [candidate] (242.946 ms) : 0, 242946
AppSec [baseline] (30.004 ms) : 0, 30004
AppSec [candidate] (30.27 ms) : 0, 30270
Debugger [baseline] (6.11 ms) : 0, 6110
Debugger [candidate] (6.047 ms) : 0, 6047
Remote Config [baseline] (654.228 µs) : 0, 654
Remote Config [candidate] (652.44 µs) : 0, 652
Telemetry [baseline] (11.416 ms) : 0, 11416
Telemetry [candidate] (12.6 ms) : 0, 12600
section iast
crashtracking [baseline] (1.423 ms) : 0, 1423
crashtracking [candidate] (1.446 ms) : 0, 1446
BytebuddyAgent [baseline] (851.47 ms) : 0, 851470
BytebuddyAgent [candidate] (863.011 ms) : 0, 863011
GlobalTracer [baseline] (233.774 ms) : 0, 233774
GlobalTracer [candidate] (234.483 ms) : 0, 234483
AppSec [baseline] (28.509 ms) : 0, 28509
AppSec [candidate] (29.234 ms) : 0, 29234
Debugger [baseline] (5.82 ms) : 0, 5820
Debugger [candidate] (5.868 ms) : 0, 5868
Remote Config [baseline] (580.497 µs) : 0, 580
Remote Config [candidate] (594.722 µs) : 0, 595
Telemetry [baseline] (8.505 ms) : 0, 8505
Telemetry [candidate] (8.491 ms) : 0, 8491
IAST [baseline] (29.261 ms) : 0, 29261
IAST [candidate] (28.659 ms) : 0, 28659
Loading
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.53.0-SNAPSHOT~6556191861, baseline=1.53.0-SNAPSHOT~5ed2f5961b

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.037 s) : 0, 1036815
Total [baseline] (10.642 s) : 0, 10642349
Agent [candidate] (1.043 s) : 0, 1042603
Total [candidate] (10.696 s) : 0, 10695518
section appsec
Agent [baseline] (1.219 s) : 0, 1218776
Total [baseline] (10.738 s) : 0, 10738333
Agent [candidate] (1.217 s) : 0, 1216655
Total [candidate] (10.803 s) : 0, 10803305
section iast
Agent [baseline] (1.176 s) : 0, 1175744
Total [baseline] (10.897 s) : 0, 10896843
Agent [candidate] (1.184 s) : 0, 1184483
Total [candidate] (10.956 s) : 0, 10955756
section profiling
Agent [baseline] (1.191 s) : 0, 1190668
Total [baseline] (10.842 s) : 0, 10842174
Agent [candidate] (1.191 s) : 0, 1191443
Total [candidate] (10.969 s) : 0, 10968813
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.037 s -
Agent appsec 1.219 s 181.961 ms (17.6%)
Agent iast 1.176 s 138.929 ms (13.4%)
Agent profiling 1.191 s 153.853 ms (14.8%)
Total tracing 10.642 s -
Total appsec 10.738 s 95.984 ms (0.9%)
Total iast 10.897 s 254.494 ms (2.4%)
Total profiling 10.842 s 199.826 ms (1.9%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.043 s -
Agent appsec 1.217 s 174.051 ms (16.7%)
Agent iast 1.184 s 141.88 ms (13.6%)
Agent profiling 1.191 s 148.84 ms (14.3%)
Total tracing 10.696 s -
Total appsec 10.803 s 107.787 ms (1.0%)
Total iast 10.956 s 260.238 ms (2.4%)
Total profiling 10.969 s 273.295 ms (2.6%)
gantt
    title petclinic - break down per module: candidate=1.53.0-SNAPSHOT~6556191861, baseline=1.53.0-SNAPSHOT~5ed2f5961b

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.415 ms) : 0, 1415
crashtracking [candidate] (1.421 ms) : 0, 1421
BytebuddyAgent [baseline] (726.691 ms) : 0, 726691
BytebuddyAgent [candidate] (729.593 ms) : 0, 729593
GlobalTracer [baseline] (240.686 ms) : 0, 240686
GlobalTracer [candidate] (241.377 ms) : 0, 241377
AppSec [baseline] (29.769 ms) : 0, 29769
AppSec [candidate] (29.827 ms) : 0, 29827
Debugger [baseline] (5.989 ms) : 0, 5989
Debugger [candidate] (6.035 ms) : 0, 6035
Remote Config [baseline] (641.387 µs) : 0, 641
Remote Config [candidate] (643.144 µs) : 0, 643
Telemetry [baseline] (10.68 ms) : 0, 10680
Telemetry [candidate] (12.727 ms) : 0, 12727
section appsec
crashtracking [baseline] (1.428 ms) : 0, 1428
crashtracking [candidate] (1.425 ms) : 0, 1425
BytebuddyAgent [baseline] (752.346 ms) : 0, 752346
BytebuddyAgent [candidate] (751.277 ms) : 0, 751277
GlobalTracer [baseline] (234.245 ms) : 0, 234245
GlobalTracer [candidate] (233.858 ms) : 0, 233858
AppSec [baseline] (169.275 ms) : 0, 169275
AppSec [candidate] (168.118 ms) : 0, 168118
Debugger [baseline] (6.43 ms) : 0, 6430
Debugger [candidate] (8.623 ms) : 0, 8623
Remote Config [baseline] (628.014 µs) : 0, 628
Remote Config [candidate] (604.34 µs) : 0, 604
Telemetry [baseline] (9.832 ms) : 0, 9832
Telemetry [candidate] (8.339 ms) : 0, 8339
IAST [baseline] (23.59 ms) : 0, 23590
IAST [candidate] (23.449 ms) : 0, 23449
section iast
crashtracking [baseline] (1.424 ms) : 0, 1424
crashtracking [candidate] (1.434 ms) : 0, 1434
BytebuddyAgent [baseline] (849.07 ms) : 0, 849070
BytebuddyAgent [candidate] (856.084 ms) : 0, 856084
GlobalTracer [baseline] (232.511 ms) : 0, 232511
GlobalTracer [candidate] (233.497 ms) : 0, 233497
AppSec [baseline] (26.546 ms) : 0, 26546
AppSec [candidate] (28.401 ms) : 0, 28401
Debugger [baseline] (5.727 ms) : 0, 5727
Debugger [candidate] (7.413 ms) : 0, 7413
Remote Config [baseline] (573.788 µs) : 0, 574
Remote Config [candidate] (584.379 µs) : 0, 584
Telemetry [baseline] (8.297 ms) : 0, 8297
Telemetry [candidate] (8.444 ms) : 0, 8444
IAST [baseline] (30.553 ms) : 0, 30553
IAST [candidate] (27.505 ms) : 0, 27505
section profiling
crashtracking [baseline] (1.388 ms) : 0, 1388
crashtracking [candidate] (1.396 ms) : 0, 1396
BytebuddyAgent [baseline] (759.034 ms) : 0, 759034
BytebuddyAgent [candidate] (757.858 ms) : 0, 757858
GlobalTracer [baseline] (221.248 ms) : 0, 221248
GlobalTracer [candidate] (221.543 ms) : 0, 221543
AppSec [baseline] (29.707 ms) : 0, 29707
AppSec [candidate] (29.707 ms) : 0, 29707
Debugger [baseline] (6.24 ms) : 0, 6240
Debugger [candidate] (6.331 ms) : 0, 6331
Remote Config [baseline] (668.823 µs) : 0, 669
Remote Config [candidate] (671.056 µs) : 0, 671
Telemetry [baseline] (14.869 ms) : 0, 14869
Telemetry [candidate] (16.454 ms) : 0, 16454
ProfilingAgent [baseline] (108.098 ms) : 0, 108098
ProfilingAgent [candidate] (108.091 ms) : 0, 108091
Profiling [baseline] (108.748 ms) : 0, 108748
Profiling [candidate] (108.748 ms) : 0, 108748
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master alexeyk/play-not-a-directory-fix
git_commit_date 1754661579 1754853881
git_commit_sha 5ed2f59 6556191
release_version 1.53.0-SNAPSHOT~5ed2f5961b 1.53.0-SNAPSHOT~6556191861
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1754855301 1754855301
ci_job_id 1073001386 1073001386
ci_pipeline_id 73222221 73222221
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-0-1vy6tj1e 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-0-1vy6tj1e 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

Found 1 performance improvements and 2 performance regressions! Performance is the same for 9 metrics, 12 unstable metrics.

scenario Δ mean http_req_duration Δ mean throughput candidate mean http_req_duration candidate mean throughput baseline mean http_req_duration baseline mean throughput
scenario:load:insecure-bank:profiling:high_load worse
[+400.358µs; +703.786µs] or [+4.680%; +8.228%]
unstable
[-98.401op/s; +33.338op/s] or [-18.144%; +6.147%]
9.106ms 509.812op/s 8.554ms 542.344op/s
scenario:load:petclinic:code_origins:high_load worse
[+1.056ms; +1.887ms] or [+2.391%; +4.274%]
unstable
[-10.702op/s; +4.027op/s] or [-10.098%; +3.800%]
45.622ms 102.638op/s 44.150ms 105.975op/s
scenario:load:petclinic:iast:high_load better
[-2.410ms; -1.564ms] or [-5.135%; -3.334%]
unstable
[-2.633op/s; +11.458op/s] or [-2.641%; +11.491%]
44.939ms 104.125op/s 46.926ms 99.713op/s
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.53.0-SNAPSHOT~6556191861, baseline=1.53.0-SNAPSHOT~5ed2f5961b
    dateFormat X
    axisFormat %s
section baseline
no_agent (4.364 ms) : 4308, 4419
.   : milestone, 4364,
iast (9.222 ms) : 9070, 9374
.   : milestone, 9222,
iast_FULL (13.891 ms) : 13611, 14170
.   : milestone, 13891,
iast_GLOBAL (9.83 ms) : 9660, 10000
.   : milestone, 9830,
profiling (8.554 ms) : 8422, 8685
.   : milestone, 8554,
tracing (7.546 ms) : 7438, 7653
.   : milestone, 7546,
section candidate
no_agent (4.366 ms) : 4313, 4418
.   : milestone, 4366,
iast (9.226 ms) : 9071, 9380
.   : milestone, 9226,
iast_FULL (13.669 ms) : 13400, 13938
.   : milestone, 13669,
iast_GLOBAL (10.093 ms) : 9919, 10267
.   : milestone, 10093,
profiling (9.106 ms) : 8956, 9256
.   : milestone, 9106,
tracing (7.57 ms) : 7464, 7676
.   : milestone, 7570,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 4.364 ms [4.308 ms, 4.419 ms] -
iast 9.222 ms [9.07 ms, 9.374 ms] 4.858 ms (111.3%)
iast_FULL 13.891 ms [13.611 ms, 14.17 ms] 9.527 ms (218.3%)
iast_GLOBAL 9.83 ms [9.66 ms, 10.0 ms] 5.466 ms (125.3%)
profiling 8.554 ms [8.422 ms, 8.685 ms] 4.19 ms (96.0%)
tracing 7.546 ms [7.438 ms, 7.653 ms] 3.182 ms (72.9%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 4.366 ms [4.313 ms, 4.418 ms] -
iast 9.226 ms [9.071 ms, 9.38 ms] 4.86 ms (111.3%)
iast_FULL 13.669 ms [13.4 ms, 13.938 ms] 9.304 ms (213.1%)
iast_GLOBAL 10.093 ms [9.919 ms, 10.267 ms] 5.727 ms (131.2%)
profiling 9.106 ms [8.956 ms, 9.256 ms] 4.74 ms (108.6%)
tracing 7.57 ms [7.464 ms, 7.676 ms] 3.205 ms (73.4%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.53.0-SNAPSHOT~6556191861, baseline=1.53.0-SNAPSHOT~5ed2f5961b
    dateFormat X
    axisFormat %s
section baseline
no_agent (37.088 ms) : 36793, 37383
.   : milestone, 37088,
appsec (45.318 ms) : 44923, 45713
.   : milestone, 45318,
code_origins (44.15 ms) : 43783, 44518
.   : milestone, 44150,
iast (46.926 ms) : 46525, 47327
.   : milestone, 46926,
profiling (52.487 ms) : 51959, 53015
.   : milestone, 52487,
tracing (44.141 ms) : 43765, 44517
.   : milestone, 44141,
section candidate
no_agent (36.684 ms) : 36388, 36980
.   : milestone, 36684,
appsec (46.446 ms) : 46021, 46872
.   : milestone, 46446,
code_origins (45.622 ms) : 45217, 46026
.   : milestone, 45622,
iast (44.939 ms) : 44555, 45323
.   : milestone, 44939,
profiling (51.743 ms) : 51220, 52266
.   : milestone, 51743,
tracing (43.389 ms) : 43025, 43754
.   : milestone, 43389,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 37.088 ms [36.793 ms, 37.383 ms] -
appsec 45.318 ms [44.923 ms, 45.713 ms] 8.23 ms (22.2%)
code_origins 44.15 ms [43.783 ms, 44.518 ms] 7.062 ms (19.0%)
iast 46.926 ms [46.525 ms, 47.327 ms] 9.838 ms (26.5%)
profiling 52.487 ms [51.959 ms, 53.015 ms] 15.399 ms (41.5%)
tracing 44.141 ms [43.765 ms, 44.517 ms] 7.053 ms (19.0%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 36.684 ms [36.388 ms, 36.98 ms] -
appsec 46.446 ms [46.021 ms, 46.872 ms] 9.762 ms (26.6%)
code_origins 45.622 ms [45.217 ms, 46.026 ms] 8.937 ms (24.4%)
iast 44.939 ms [44.555 ms, 45.323 ms] 8.254 ms (22.5%)
profiling 51.743 ms [51.22 ms, 52.266 ms] 15.059 ms (41.0%)
tracing 43.389 ms [43.025 ms, 43.754 ms] 6.705 ms (18.3%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master alexeyk/play-not-a-directory-fix
git_commit_date 1754661579 1754853881
git_commit_sha 5ed2f59 6556191
release_version 1.53.0-SNAPSHOT~5ed2f5961b 1.53.0-SNAPSHOT~6556191861
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1754855967 1754855967
ci_job_id 1073001387 1073001387
ci_pipeline_id 73222221 73222221
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-1-lacn7pwd 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-1-lacn7pwd 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 11 metrics, 1 unstable metrics.

Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.53.0-SNAPSHOT~6556191861, baseline=1.53.0-SNAPSHOT~5ed2f5961b
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.538 s) : 15538000, 15538000
.   : milestone, 15538000,
appsec (14.893 s) : 14893000, 14893000
.   : milestone, 14893000,
iast (18.441 s) : 18441000, 18441000
.   : milestone, 18441000,
iast_GLOBAL (17.9 s) : 17900000, 17900000
.   : milestone, 17900000,
profiling (15.224 s) : 15224000, 15224000
.   : milestone, 15224000,
tracing (14.906 s) : 14906000, 14906000
.   : milestone, 14906000,
section candidate
no_agent (15.335 s) : 15335000, 15335000
.   : milestone, 15335000,
appsec (14.876 s) : 14876000, 14876000
.   : milestone, 14876000,
iast (18.596 s) : 18596000, 18596000
.   : milestone, 18596000,
iast_GLOBAL (18.23 s) : 18230000, 18230000
.   : milestone, 18230000,
profiling (15.728 s) : 15728000, 15728000
.   : milestone, 15728000,
tracing (15.096 s) : 15096000, 15096000
.   : milestone, 15096000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.538 s [15.538 s, 15.538 s] -
appsec 14.893 s [14.893 s, 14.893 s] -645.0 ms (-4.2%)
iast 18.441 s [18.441 s, 18.441 s] 2.903 s (18.7%)
iast_GLOBAL 17.9 s [17.9 s, 17.9 s] 2.362 s (15.2%)
profiling 15.224 s [15.224 s, 15.224 s] -314.0 ms (-2.0%)
tracing 14.906 s [14.906 s, 14.906 s] -632.0 ms (-4.1%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.335 s [15.335 s, 15.335 s] -
appsec 14.876 s [14.876 s, 14.876 s] -459.0 ms (-3.0%)
iast 18.596 s [18.596 s, 18.596 s] 3.261 s (21.3%)
iast_GLOBAL 18.23 s [18.23 s, 18.23 s] 2.895 s (18.9%)
profiling 15.728 s [15.728 s, 15.728 s] 393.0 ms (2.6%)
tracing 15.096 s [15.096 s, 15.096 s] -239.0 ms (-1.6%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.53.0-SNAPSHOT~6556191861, baseline=1.53.0-SNAPSHOT~5ed2f5961b
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.483 ms) : 1471, 1494
.   : milestone, 1483,
appsec (2.495 ms) : 2441, 2549
.   : milestone, 2495,
iast (2.213 ms) : 2150, 2275
.   : milestone, 2213,
iast_GLOBAL (2.254 ms) : 2190, 2317
.   : milestone, 2254,
profiling (2.052 ms) : 2002, 2103
.   : milestone, 2052,
tracing (2.023 ms) : 1974, 2071
.   : milestone, 2023,
section candidate
no_agent (1.484 ms) : 1472, 1496
.   : milestone, 1484,
appsec (3.678 ms) : 3462, 3894
.   : milestone, 3678,
iast (2.21 ms) : 2147, 2273
.   : milestone, 2210,
iast_GLOBAL (2.241 ms) : 2178, 2304
.   : milestone, 2241,
profiling (2.054 ms) : 2003, 2104
.   : milestone, 2054,
tracing (2.022 ms) : 1974, 2071
.   : milestone, 2022,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.483 ms [1.471 ms, 1.494 ms] -
appsec 2.495 ms [2.441 ms, 2.549 ms] 1.012 ms (68.3%)
iast 2.213 ms [2.15 ms, 2.275 ms] 730.136 µs (49.2%)
iast_GLOBAL 2.254 ms [2.19 ms, 2.317 ms] 771.078 µs (52.0%)
profiling 2.052 ms [2.002 ms, 2.103 ms] 569.534 µs (38.4%)
tracing 2.023 ms [1.974 ms, 2.071 ms] 540.116 µs (36.4%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.484 ms [1.472 ms, 1.496 ms] -
appsec 3.678 ms [3.462 ms, 3.894 ms] 2.194 ms (147.9%)
iast 2.21 ms [2.147 ms, 2.273 ms] 726.123 µs (48.9%)
iast_GLOBAL 2.241 ms [2.178 ms, 2.304 ms] 756.891 µs (51.0%)
profiling 2.054 ms [2.003 ms, 2.104 ms] 569.464 µs (38.4%)
tracing 2.022 ms [1.974 ms, 2.071 ms] 537.98 µs (36.3%)

Copy link
Copy Markdown
Contributor

@sarahchen6 sarahchen6 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Strange.. I wonder if anything depends on the "directory" existing

Copy link
Copy Markdown
Contributor

@mcculls mcculls left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is it only dd-smoke-tests/play-2.8 that's affected? should we proactively apply this to all the play smoke-tests?

@AlexeyKuznetsov-DD
Copy link
Copy Markdown
Contributor Author

is it only dd-smoke-tests/play-2.8 that's affected? should we proactively apply this to all the play smoke-tests?

@mcculls For now I see only play-2.8 affected. In case I will see other modules failed, I will apply same fix.

@AlexeyKuznetsov-DD AlexeyKuznetsov-DD requested a review from a team as a code owner August 7, 2025 01:00
@AlexeyKuznetsov-DD AlexeyKuznetsov-DD requested review from TonyCTHsu and removed request for a team August 7, 2025 01:00
@datadog-official
Copy link
Copy Markdown
Contributor

datadog-official Bot commented Aug 7, 2025

No data reported at this time.
This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 6556191 | Docs | Was this helpful? Give us feedback!

@AlexeyKuznetsov-DD AlexeyKuznetsov-DD changed the title Fix for flaky error: Source directory '/dd-smoke-tests/play-2.8/build/src/play/routes' is not a directory. Fixed flaky test for play-2.8: Source directory '.../routes' is not a directory. Aug 7, 2025
@bric3
Copy link
Copy Markdown
Contributor

bric3 commented Aug 7, 2025

After investigation and reading Gradle sources I was not able to find a real root cause, but it looks like somehow a file created instead of folder somehow (maybe GitLab CI is doing that?).
But from Gradle sources it is clear, that exception will be thrown only if file exists:

@AlexeyKuznetsov-DD Could that be caused by the org.gradle.playframework ? I haven't seen something like that.

Also, I believe this plugin can be updated.

Copy link
Copy Markdown
Contributor

@bric3 bric3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, I left a few other suggestions, feel free to apply them.

Comment thread dd-smoke-tests/play-2.8/build.gradle Outdated
Comment thread dd-smoke-tests/play-2.8/build.gradle Outdated
Comment on lines +80 to +91
tasks.register('fixPlayRoutesDirectory') {
description = 'Deletes routes path if it is a file instead of directory'
group = 'build cleanup'

doFirst {
def routesPath = layout.buildDirectory.dir('src/play/routes').get().asFile
if (routesPath.exists() && !routesPath.isDirectory()) {
logger.lifecycle("Removing file that blocks routes directory: ${routesPath}")
routesPath.delete()
}
}
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: I suggest using project.delete(routesPath)

Also, declaring the input outputs.

Suggested change
tasks.register('fixPlayRoutesDirectory') {
description = 'Deletes routes path if it is a file instead of directory'
group = 'build cleanup'
doFirst {
def routesPath = layout.buildDirectory.dir('src/play/routes').get().asFile
if (routesPath.exists() && !routesPath.isDirectory()) {
logger.lifecycle("Removing file that blocks routes directory: ${routesPath}")
routesPath.delete()
}
}
}
tasks.register('fixPlayRoutesDirectory') {
description = 'Deletes routes path if it is a file instead of directory'
group = 'build cleanup'
def routesPath = layout.buildDirectory.dir('src/play/routes')
input.dir(routesPath)
destroyables.register(routesPath)
doFirst {
def routesPathFile = routesPath.get().asFile
if (routesPathFile.exists() && !routesPathFile.isDirectory()) {
logger.lifecycle("Removing file that blocks routes directory: ${routesPathFile}")
project.delete(routesPathFile)
}
}
}

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Applied, but Gradle complains Task :dd-smoke-tests:play-2.8:fixPlayRoutesDirectory has both inputs and destroyables defined. A task can define either inputs or destroyables, but not both.
So I keep destroyables only.

Comment thread dd-smoke-tests/play-2.8/build.gradle Outdated
Comment on lines +93 to +94
tasks.named('compileScala') {
dependsOn tasks.named('fixPlayRoutesDirectory')
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: I suggest instead to declare the routes path as input rather than using dependsOn. That said I don;t know the behavior of this when using destroyables, I believe this work the same way.

FYI using dependsOn is considered bad practice, instead wiring should use task input / output declarations with providers, Gradle identifies the needed task to run.
That's also why tasks with overlapping outputs are very bad. All of that contributes to the ability of gradle to be incremental, and have reproducible builds.


I haven't looked at the failure, but I saw there's a compileRoutes, maybe this should be this task rather than compileScala ? But unsure at this point.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I removed dependsOn. Do you think current script with destroyables declared would work properly?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think so. I believe this can be checked by looking at task status with verbose console.

@AlexeyKuznetsov-DD AlexeyKuznetsov-DD merged commit 893780c into master Aug 11, 2025
504 checks passed
@AlexeyKuznetsov-DD AlexeyKuznetsov-DD deleted the alexeyk/play-not-a-directory-fix branch August 11, 2025 12:13
@github-actions github-actions Bot added this to the 1.53.0 milestone Aug 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp: testing Testing tag: no release notes Changes to exclude from release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants