-
Notifications
You must be signed in to change notification settings - Fork 291
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[🍒 7403] Fix unresolved field error when instrumenting Kafka 3.7 with Quarkus native #7421
[🍒 7403] Fix unresolved field error when instrumenting Kafka 3.7 with Quarkus native #7421
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Report approval of #7403 here
41c9104
to
cff2552
Compare
… an instrumentation fails Co-authored-by: luneo7 <luneo7@gmail.com>
cff2552
to
4fd92fc
Compare
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 51 metrics, 12 unstable metrics. Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.39.0-SNAPSHOT~4fd92fc50f, baseline=1.39.0-SNAPSHOT~d81dc1416e
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.049 s) : 0, 1049223
Total [baseline] (8.513 s) : 0, 8513442
Agent [candidate] (1.045 s) : 0, 1044982
Total [candidate] (8.489 s) : 0, 8489348
section iast
Agent [baseline] (1.175 s) : 0, 1175038
Total [baseline] (8.999 s) : 0, 8998505
Agent [candidate] (1.175 s) : 0, 1174963
Total [candidate] (8.99 s) : 0, 8990314
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.175 s) : 0, 1175344
Total [baseline] (9.004 s) : 0, 9003806
Agent [candidate] (1.177 s) : 0, 1176537
Total [candidate] (9.004 s) : 0, 9003713
section iast_TELEMETRY_OFF
Agent [baseline] (1.174 s) : 0, 1173902
Total [baseline] (9.006 s) : 0, 9006172
Agent [candidate] (1.18 s) : 0, 1180476
Total [candidate] (9.001 s) : 0, 9001465
gantt
title insecure-bank - break down per module: candidate=1.39.0-SNAPSHOT~4fd92fc50f, baseline=1.39.0-SNAPSHOT~d81dc1416e
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (669.267 ms) : 0, 669267
BytebuddyAgent [candidate] (667.82 ms) : 0, 667820
GlobalTracer [baseline] (307.036 ms) : 0, 307036
GlobalTracer [candidate] (305.448 ms) : 0, 305448
AppSec [baseline] (51.304 ms) : 0, 51304
AppSec [candidate] (50.214 ms) : 0, 50214
Remote Config [baseline] (688.003 µs) : 0, 688
Remote Config [candidate] (685.616 µs) : 0, 686
Telemetry [baseline] (7.508 ms) : 0, 7508
Telemetry [candidate] (7.39 ms) : 0, 7390
section iast
BytebuddyAgent [baseline] (783.679 ms) : 0, 783679
BytebuddyAgent [candidate] (783.908 ms) : 0, 783908
GlobalTracer [baseline] (296.046 ms) : 0, 296046
GlobalTracer [candidate] (295.052 ms) : 0, 295052
AppSec [baseline] (50.771 ms) : 0, 50771
AppSec [candidate] (52.421 ms) : 0, 52421
Remote Config [baseline] (571.144 µs) : 0, 571
Remote Config [candidate] (578.888 µs) : 0, 579
Telemetry [baseline] (7.132 ms) : 0, 7132
Telemetry [candidate] (7.82 ms) : 0, 7820
IAST [baseline] (23.4 ms) : 0, 23400
IAST [candidate] (21.681 ms) : 0, 21681
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (781.811 ms) : 0, 781811
BytebuddyAgent [candidate] (784.262 ms) : 0, 784262
GlobalTracer [baseline] (296.878 ms) : 0, 296878
GlobalTracer [candidate] (295.98 ms) : 0, 295980
AppSec [baseline] (48.83 ms) : 0, 48830
AppSec [candidate] (52.461 ms) : 0, 52461
Remote Config [baseline] (580.585 µs) : 0, 581
Remote Config [candidate] (578.332 µs) : 0, 578
Telemetry [baseline] (8.759 ms) : 0, 8759
Telemetry [candidate] (7.091 ms) : 0, 7091
IAST [baseline] (25.001 ms) : 0, 25001
IAST [candidate] (22.605 ms) : 0, 22605
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (781.48 ms) : 0, 781480
BytebuddyAgent [candidate] (786.154 ms) : 0, 786154
GlobalTracer [baseline] (297.46 ms) : 0, 297460
GlobalTracer [candidate] (297.931 ms) : 0, 297931
AppSec [baseline] (49.106 ms) : 0, 49106
AppSec [candidate] (47.196 ms) : 0, 47196
Remote Config [baseline] (612.709 µs) : 0, 613
Remote Config [candidate] (624.027 µs) : 0, 624
Telemetry [baseline] (7.108 ms) : 0, 7108
Telemetry [candidate] (6.965 ms) : 0, 6965
IAST [baseline] (24.604 ms) : 0, 24604
IAST [candidate] (27.975 ms) : 0, 27975
Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.39.0-SNAPSHOT~4fd92fc50f, baseline=1.39.0-SNAPSHOT~d81dc1416e
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.06 s) : 0, 1060459
Total [baseline] (10.477 s) : 0, 10476574
Agent [candidate] (1.047 s) : 0, 1046664
Total [candidate] (10.338 s) : 0, 10337709
section appsec
Agent [baseline] (1.176 s) : 0, 1176411
Total [baseline] (10.534 s) : 0, 10533637
Agent [candidate] (1.165 s) : 0, 1165361
Total [candidate] (10.507 s) : 0, 10506505
section iast
Agent [baseline] (1.177 s) : 0, 1176710
Total [baseline] (10.866 s) : 0, 10866087
Agent [candidate] (1.17 s) : 0, 1170160
Total [candidate] (10.842 s) : 0, 10841597
section profiling
Agent [baseline] (1.252 s) : 0, 1252465
Total [baseline] (10.648 s) : 0, 10647815
Agent [candidate] (1.256 s) : 0, 1256119
Total [candidate] (10.714 s) : 0, 10713588
gantt
title petclinic - break down per module: candidate=1.39.0-SNAPSHOT~4fd92fc50f, baseline=1.39.0-SNAPSHOT~d81dc1416e
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (677.865 ms) : 0, 677865
BytebuddyAgent [candidate] (669.215 ms) : 0, 669215
GlobalTracer [baseline] (309.177 ms) : 0, 309177
GlobalTracer [candidate] (305.729 ms) : 0, 305729
AppSec [baseline] (51.562 ms) : 0, 51562
AppSec [candidate] (50.223 ms) : 0, 50223
Remote Config [baseline] (690.602 µs) : 0, 691
Remote Config [candidate] (679.194 µs) : 0, 679
Telemetry [baseline] (7.555 ms) : 0, 7555
Telemetry [candidate] (7.386 ms) : 0, 7386
section appsec
BytebuddyAgent [baseline] (681.656 ms) : 0, 681656
BytebuddyAgent [candidate] (677.911 ms) : 0, 677911
GlobalTracer [baseline] (302.962 ms) : 0, 302962
GlobalTracer [candidate] (299.489 ms) : 0, 299489
AppSec [baseline] (157.487 ms) : 0, 157487
AppSec [candidate] (155.115 ms) : 0, 155115
Remote Config [baseline] (608.117 µs) : 0, 608
Remote Config [candidate] (601.974 µs) : 0, 602
Telemetry [baseline] (9.447 ms) : 0, 9447
Telemetry [candidate] (8.266 ms) : 0, 8266
IAST [baseline] (21.423 ms) : 0, 21423
IAST [candidate] (20.963 ms) : 0, 20963
section iast
BytebuddyAgent [baseline] (783.657 ms) : 0, 783657
BytebuddyAgent [candidate] (780.924 ms) : 0, 780924
GlobalTracer [baseline] (296.753 ms) : 0, 296753
GlobalTracer [candidate] (294.406 ms) : 0, 294406
AppSec [baseline] (51.806 ms) : 0, 51806
AppSec [candidate] (51.023 ms) : 0, 51023
Remote Config [baseline] (579.811 µs) : 0, 580
Remote Config [candidate] (579.999 µs) : 0, 580
Telemetry [baseline] (7.982 ms) : 0, 7982
Telemetry [candidate] (7.086 ms) : 0, 7086
IAST [baseline] (22.439 ms) : 0, 22439
IAST [candidate] (22.667 ms) : 0, 22667
section profiling
BytebuddyAgent [baseline] (665.902 ms) : 0, 665902
BytebuddyAgent [candidate] (669.786 ms) : 0, 669786
GlobalTracer [baseline] (392.429 ms) : 0, 392429
GlobalTracer [candidate] (392.456 ms) : 0, 392456
AppSec [baseline] (52.735 ms) : 0, 52735
AppSec [candidate] (52.199 ms) : 0, 52199
Remote Config [baseline] (684.21 µs) : 0, 684
Remote Config [candidate] (696.328 µs) : 0, 696
Telemetry [baseline] (7.451 ms) : 0, 7451
Telemetry [candidate] (7.327 ms) : 0, 7327
ProfilingAgent [baseline] (95.987 ms) : 0, 95987
ProfilingAgent [candidate] (96.098 ms) : 0, 96098
Profiling [baseline] (96.011 ms) : 0, 96011
Profiling [candidate] (96.124 ms) : 0, 96124
LoadParameters
See matching parameters
SummaryFound 1 performance improvements and 0 performance regressions! Performance is the same for 10 metrics, 17 unstable metrics.
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.39.0-SNAPSHOT~4fd92fc50f, baseline=1.39.0-SNAPSHOT~d81dc1416e
dateFormat X
axisFormat %s
section baseline
no_agent (1.336 ms) : 1316, 1355
. : milestone, 1336,
appsec (1.711 ms) : 1688, 1735
. : milestone, 1711,
appsec_no_iast (1.715 ms) : 1691, 1739
. : milestone, 1715,
iast (1.495 ms) : 1473, 1517
. : milestone, 1495,
profiling (1.56 ms) : 1535, 1585
. : milestone, 1560,
tracing (1.457 ms) : 1432, 1482
. : milestone, 1457,
section candidate
no_agent (1.33 ms) : 1310, 1351
. : milestone, 1330,
appsec (1.69 ms) : 1665, 1715
. : milestone, 1690,
appsec_no_iast (1.729 ms) : 1705, 1753
. : milestone, 1729,
iast (1.468 ms) : 1445, 1491
. : milestone, 1468,
profiling (1.483 ms) : 1458, 1507
. : milestone, 1483,
tracing (1.474 ms) : 1449, 1498
. : milestone, 1474,
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.39.0-SNAPSHOT~4fd92fc50f, baseline=1.39.0-SNAPSHOT~d81dc1416e
dateFormat X
axisFormat %s
section baseline
no_agent (369.804 µs) : 349, 391
. : milestone, 370,
iast (479.21 µs) : 458, 501
. : milestone, 479,
iast_FULL (549.039 µs) : 526, 572
. : milestone, 549,
iast_GLOBAL (506.543 µs) : 485, 528
. : milestone, 507,
iast_HARDCODED_SECRET_DISABLED (475.352 µs) : 455, 496
. : milestone, 475,
iast_INACTIVE (457.34 µs) : 434, 480
. : milestone, 457,
iast_TELEMETRY_OFF (472.783 µs) : 452, 494
. : milestone, 473,
tracing (437.043 µs) : 416, 458
. : milestone, 437,
section candidate
no_agent (368.629 µs) : 348, 389
. : milestone, 369,
iast (481.695 µs) : 460, 503
. : milestone, 482,
iast_FULL (547.422 µs) : 526, 569
. : milestone, 547,
iast_GLOBAL (501.159 µs) : 480, 522
. : milestone, 501,
iast_HARDCODED_SECRET_DISABLED (482.783 µs) : 462, 504
. : milestone, 483,
iast_INACTIVE (452.991 µs) : 431, 475
. : milestone, 453,
iast_TELEMETRY_OFF (471.106 µs) : 450, 492
. : milestone, 471,
tracing (439.013 µs) : 419, 459
. : milestone, 439,
DacapoParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 0 unstable metrics. Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.39.0-SNAPSHOT~4fd92fc50f, baseline=1.39.0-SNAPSHOT~d81dc1416e
dateFormat X
axisFormat %s
section baseline
no_agent (21.29 s) : 21290000, 21290000
. : milestone, 21290000,
appsec (22.163 s) : 22163000, 22163000
. : milestone, 22163000,
iast (25.263 s) : 25263000, 25263000
. : milestone, 25263000,
iast_GLOBAL (24.882 s) : 24882000, 24882000
. : milestone, 24882000,
profiling (21.66 s) : 21660000, 21660000
. : milestone, 21660000,
tracing (21.469 s) : 21469000, 21469000
. : milestone, 21469000,
section candidate
no_agent (21.31 s) : 21310000, 21310000
. : milestone, 21310000,
appsec (21.759 s) : 21759000, 21759000
. : milestone, 21759000,
iast (24.825 s) : 24825000, 24825000
. : milestone, 24825000,
iast_GLOBAL (25.047 s) : 25047000, 25047000
. : milestone, 25047000,
profiling (20.907 s) : 20907000, 20907000
. : milestone, 20907000,
tracing (21.044 s) : 21044000, 21044000
. : milestone, 21044000,
Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.39.0-SNAPSHOT~4fd92fc50f, baseline=1.39.0-SNAPSHOT~d81dc1416e
dateFormat X
axisFormat %s
section baseline
no_agent (1.544 ms) : 1531, 1556
. : milestone, 1544,
appsec (2.715 ms) : 2653, 2777
. : milestone, 2715,
iast (2.366 ms) : 2293, 2439
. : milestone, 2366,
iast_GLOBAL (2.429 ms) : 2353, 2504
. : milestone, 2429,
profiling (2.24 ms) : 2176, 2305
. : milestone, 2240,
tracing (2.187 ms) : 2127, 2247
. : milestone, 2187,
section candidate
no_agent (1.54 ms) : 1527, 1552
. : milestone, 1540,
appsec (2.709 ms) : 2646, 2771
. : milestone, 2709,
iast (2.384 ms) : 2310, 2457
. : milestone, 2384,
iast_GLOBAL (2.426 ms) : 2351, 2501
. : milestone, 2426,
profiling (2.212 ms) : 2151, 2273
. : milestone, 2212,
tracing (2.184 ms) : 2125, 2243
. : milestone, 2184,
|
What Does This Do
When an instrumentation fails the
visitEnd
method inFieldBackedContextInjector
may not be called. This method is responsible for removing a thread local which collects the store ids injected so far, across all field-injectors of a class.If the thread-local is not removed then collected store ids may leak across to another class, leading to getters/setters referring to a non-existent field. This doesn't cause an issue with most JVMs because that particular generated branch will never be called (since the class is not expected to hold that store). But it leads to an unresolved field on GraalVM/Quarkus because the native-image builder performs additional checks that fields exist.
Additional Notes
The instrumentation failure in Kafka 3.7 that exposed this bug was:
This will be fixed in a separate PR.
Jira ticket: APMS-12871