You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Please answer these questions before submitting your issue.
In order to accurately debug the issue this information is required. Thanks!
What version of JDBC driver are you using?
3.19.0
What operating system and processor architecture are you using?
OS X 14.6.1 (arm64)
What version of Java are you using?
Java 11
What did you do?
When using snowflake driver in an application, we experienced crashes we were able to attribute to use of conscrypt native library.
After inspection we realized that snowflake driver packages a relocated version of conscrypt (and grpc) but none of the native libraries bundled with those two artifacts are relocated themselves, and because of it there's a chance that snowflake driver may load a different version of the native library than the one bundled with snowflake
Netty (and by extension grpc-netty-shaded) has a builtin mechanism to detect relocation, and as long as the native libraries use the same relocation pattern (with dots (.) replaced with underscores (_)), netty classes do not need to be rewritten.
Conscrypt on the other hand does not seem to have a builtin mechanism, and along with the native libraries being renamed, the NativeCryptoJni class should be rewritten to change the prefix to search for.
What did you expect to see?
Application crashed (was expecting no crash)
Can you set logging to DEBUG and collect the logs?
No
The text was updated successfully, but these errors were encountered:
Does your application crashes when you are using it via the JDBC API standard interfaces?
Are you using explicitly any class from net.snowflake.client.jdbc.internal.** in your application? Those classes we consider internal and should not be used explicitly.
Have you tried snowflake-jdbc-thin? It does not shade google-cloud-storage (any many others) dependencies and then relocation issues should not happen.
For CLAAssistant check in PR to be fixed I think you should post first the comment that you read and signed CLA, recheck should be the second comment
Please rebase your PR if you still want it to be reviewed, tested and merged
1. Does your application crashes when you are using it via the JDBC API standard interfaces?
Yes, we do use it via the JDBC API
2. Are you using explicitly any class from `net.snowflake.client.jdbc.internal.**` in your application? Those classes we consider internal and should not be used explicitly.
No, we are not using using directly any snowflake internal classes
3. Have you tried snowflake-jdbc-thin? It does not shade google-cloud-storage (any many others) dependencies and then relocation issues should not happen.
I haven't but independently of me using it, I still do think the relocation issue on the main driver should be fixed
4. For CLAAssistant check in PR to be fixed I think you should post first the comment that you read and signed CLA, recheck should be the second comment
👍
5. Please rebase your PR if you still want it to be reviewed, tested and merged
Please answer these questions before submitting your issue.
In order to accurately debug the issue this information is required. Thanks!
3.19.0
OS X 14.6.1 (arm64)
Java 11
When using snowflake driver in an application, we experienced crashes we were able to attribute to use of
conscrypt
native library.After inspection we realized that snowflake driver packages a relocated version of conscrypt (and grpc) but none of the native libraries bundled with those two artifacts are relocated themselves, and because of it there's a chance that snowflake driver may load a different version of the native library than the one bundled with snowflake
Netty (and by extension
grpc-netty-shaded
) has a builtin mechanism to detect relocation, and as long as the native libraries use the same relocation pattern (with dots (.
) replaced with underscores (_
)), netty classes do not need to be rewritten.Conscrypt on the other hand does not seem to have a builtin mechanism, and along with the native libraries being renamed, the
NativeCryptoJni
class should be rewritten to change the prefix to search for.Application crashed (was expecting no crash)
No
The text was updated successfully, but these errors were encountered: