-
Notifications
You must be signed in to change notification settings - Fork 21
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
Cannot invoke "java.lang.Comparable.compareTo(Object)" because "a[runHi]" is null #152
Comments
@bilelncq Thanks for the report. I'm wondering does each of zipped elements share database connection or does each get different connection? |
hello @ttddyy thank you for your reply, |
Hm, that is strange. Also, please make sure the r2dbc-proxy |
Sorry for the late reply i didn't have time to recheck, but in my test im using the r2dbc spring boot starter which has the default configuration and i have another implementation with my own connection factory implementation since we have multi tenancy and the issue occurs in both implementations. |
Most likely this is the same issue as micrometer-metrics/micrometer#4356 |
Hello @ttddyy i can confirm that the new version 1.14.2 of micrometer fixed the issue, thank you for your help. |
Bug Report
Versions
r2dbc-proxy 1.1.4.RELEASE and 1.1.5.RELEASE
postgresql: 1.14.3
OS: linux
Current Behavior
im using spring boot 3.2.5 and i have a service that has multiple monos inside of Mono.zip these monos call a repository methods thats a query that returns an object or returns Mono.error with an exception then in my service i do on error resume based on that exception to set some attributes
under load with a flux of 1000 monos i get randomly a null pointer exception that cancels my flux
i get this error in the console
Stacktrace
Table schema
Input Code
Expected behavior/code
I expect the flux to finish successfully
Possible Solution
as a workaround for now we set r2dbc.observation.enabled=false to stop the observation
Additional context
When debugging the KeyValues map i see that it has the size 2 but it has only one element with the key r2dbc.query[0]
it looks like concurrency issue but im not sure.
Here in the screen shot the key value object in io.micrometer.common.KeyValues method the parameter passed is still being initialized in the SimpleObservation class stop method which calls the convention.getHighCardinalityKeyValues(context) method related to io.r2dbc.proxy.observation.QueryObservationConvention
The text was updated successfully, but these errors were encountered: