-
Notifications
You must be signed in to change notification settings - Fork 321
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
Add guard against invalid end timestamps #3363
Conversation
/test |
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.
good catch !
@SylvainJuge I've removed the test-on-windows label, because there are no other, new issues which are unrelated to this PR: I'll come back to the windows tests next week and see if they are still having problems. |
* 'main' of https://github.com/elastic/apm-agent-java: (35 commits) buildkite: opentelemetry+elastic agent overhead benchmark on a weekly basis (elastic#3371) ci(action): remove unrequired action (elastic#3387) Bump org.springframework.boot:spring-boot-dependencies from 2.7.16 to 3.1.5 (elastic#3380) ci(action): archive benchmarks.jar (elastic#3386) remove noise (elastic#3385) Process otel benchmark (elastic#3384) Update tests for Jedis 5 (elastic#3382) added entry to community plugins (elastic#3383) added capturing s3 otel attributes from lamba S3Event (elastic#3364) Bump version.log4j from 2.12.4 to 2.21.0 (elastic#3366) Fix aws sdk instrumentation (elastic#3373) action: remove leftover from Jenkins (elastic#3368) Bump org.apache.logging.log4j:log4j-bom from 2.20.0 to 2.21.0 (elastic#3367) Bump io.micrometer:micrometer-core from 1.11.4 to 1.11.5 (elastic#3360) Add guard against invalid end timestamps (elastic#3363) Added otel to dependabot config, upgraded dependencies (elastic#3359) Bump version.byte-buddy from 1.14.8 to 1.14.9 (elastic#3361) Fix off-by-one error in tests which effectively disabled recycling validation (elastic#3357) Fix multiple spans being created for HTTPUrlConnection HEAD requests (elastic#3353) Bump org.ow2.asm:asm-tree from 9.5 to 9.6 (elastic#3349) ...
What does this PR do?
Recently our windows tests have been failing:
The problematic test manually sets the start-timestamp, but uses the agent built-in clock via
end()
for the end timestamp. Because those two methods could use two different "bases" for convertingSystem.nanoTime()
to micros, this potentially causes an end-timestamp which is lower than the start timestamp.I assume we only observed this issue on windows because the precision of *nix
System.currentTimeMillis()
is higher and therefore makes this issue much less likely.This PR adds a sanitization to the end-timestamp, as it is possible via manual instrumentation to give invalid timestamps.
Checklist
Added an API method or config option? Document in which version this will be introducedI have made corresponding changes to the documentation