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
Regressions comparing with 0.1 #35
Comments
Thanks for reporting this, @dstepanov. We have a pull request that will restore support for Java Boolean to NUMBER and byte[] to RAW mappings. The pull request is here: #31. In the PR, I added some test cases to catch regressions for Boolean and byte[] bind values. We can depend on these mappings to remain supported going forward. Please note that while Oracle R2DBC will support byte[] bind values, it is not guaranteed that all R2DBC drivers will also support this. The R2DBC 0.9 Specification lists ByteBuffer as the type mapping guideline. For portability across all drivers, ByteBuffer might be a safer choice. BTW: For some reason, GitHub didn't send me a notification email for this issue. Sorry for the slow response; I didn't see this until today. |
Thanks, @Michael-A-McMahon I will wait for the next release to upgrade. Regarding BTW: I'm trying to enable the tests for 0.1 and there is some kind of deadlock micronaut-projects/micronaut-data#1081
|
@dstepanov I'd like to investigate this deadlock, but I can't tell what I should be looking at. Is there a particular test you have that can recreate the deadlock? ResultSet.getObject(int, byte[].class) should be supported for columns of type RAW (aka: BINARY, VARBINARY) and LONG RAW (aka: LONGVARBINARY). This is specified in Table B-5 of the JDBC 4.3 Specification. Can you let me know how to recreate the failure? I work on the Oracle JDBC driver too, so if there's a bug I can fix it. |
Regarding I'm getting an exception:
Regarding the deadlock I think it's only happening at the CI, you can try it yourself by running |
I have tried to run the tests locally and they pass but on the Github actions it's stuck at the beginning where tables are created:
I'm now sure what would it cause. |
Link to the code that does create tables etc: |
Looks like 0.2 fixed the create table deadlock, tests are running and failing at the regressions reported.
The json test is stuck with log:
|
Thanks for sharing these details. The BLOB to byte[] mapping should be fixed by #36. I'll try running the json test to see where the things are getting locked up. I should have time to do that over the next few days. |
Thanks, it’s only happening when it’s run on the github actions so I cannot dump the stack |
In the JSON case, I believe the cause is a bug in Oracle R2DBC 0.2.0 where cancelling the Subscription to a Blob/Clob.stream() causes a thread to become blocked. This bug will be fixed with #33.
When creating tables, it looks like micronaut has a Flux.flatMap operator that allows a single Connection to be shared between multiple threads. I see this here: The use of Flux.concatMap rather than flatMap might be one way to handle this. While the flatMap operator allows concurrent subscriptions to flat mapped Publishers, the concatMap operator serially subscribes to each flat mapped Publisher. |
I'm hitting a lot of errors trying to upgrade the dependency to 0.2 in Micronaut R2dbc integration
NUMBER(3)
and it used to work, now it fails because every boolean is expected to beBOOLEAN
type which we don't have in version 18, the only one available officially at https://hub.docker.com/r/gvenzl/oracle-xebyte[]
type is not supported anymore andByteBuffer
is the only one supportedThe text was updated successfully, but these errors were encountered: