-
Notifications
You must be signed in to change notification settings - Fork 17
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
[BUG] OpenSearch ODBC client will not connect to OpenSearch cluster #8
Comments
We currently are working on the release of ODBC and JDBC drivers for OpenSearch. The release should be working fine with your opensearch cluster. Another workaround is to get the latest installer directly from the source code / GitHub actions cicd workflows, which is not a stable and officially released one though. |
@chloe-zh I'm glad it's being worked, but I pulled the installer that was created at 3pm EST yesterday (commit 65f449b) in the "OpenSearch ODBC Driver" workflow -- same result. The config dialog had a version 1.2.0.0. The logs on the Windows side show nothing different. |
Could you check the error log from opensearch side, that would be helpful! Thanks! |
I turned logging up to TRACE
in log42j.properties ... and got these two messages in the cluster.log:
I can find no other trace of the attempt ... but again, I verified that there was data exchanged between the two systems using tcpdump. Are there any other logging settings I should adjust, or additional places to look? |
UPDATE: I spun up a new cluster for testing purposes, and disabled SSL on the public API (port 9200) -- the ODBC driver connected just fine -- so it is an SSL issue. I turn on SSL and it behaves as described before. I have loaded (and verified) the CA for the server certificate into the Windows trusted authorities keystore:
So -- it appears that the ODBC driver SSL routines are not respecting/using the system CA store? Am I missing something? |
I'm having the same problems in an open distro cluster. Waiting for solution |
I'm been experiencing this SSL connection problem since to many OpenDistro versions before. |
@chloe-zh - Is there any more information I can provide that will help narrow this down? |
We have a release for the SQL Drivers including the ODBC client that is launching this week- that is expected to resolve this bug |
@davidcui1225 - if you want me to test, let me know when there is something I can download -- I'd love to get this issue fixed! |
@davidcui1225 - How far down the queue is this to work on? I just downloaded the latest artifact and get the same errors. |
The new ODBC driver links are available on https://opensearch.org/artifacts, you can download it here:
The SSL issue is separate and possibly related to #19 |
Unfortunately, I'm not seeing any action on resolving either of these issues (this one or #19) -- is there anything I can do to assist? |
It is a bug related to ssl, you can fix it with the following configuration in opensearch.yml: |
Not totally sure what this does, but it seems that it would either disable SSL for the client connection or disable authentication (or both) -- neither of which is acceptable in my environment. Is this truly the only solution? |
we are prioritizing this for an immediate fix and release |
Fix in opensearch-project/sql#449 |
@penghuo - I don't see anything in opensearch-project/sql#449 that would have impacted this issue. First, I'm not even to the point where I can use Power BI -- and the issue isn't whether I can validate with a certificate, it's whether SSL is even used for the connection. Am I missing something? |
…pensearch-project#696 and 317 all together. Signed-off-by: Yury Fridlyand <yuryf@bitquilltech.com>
opensearch-project/sql#449 has a fix for the Power BI connector. |
…pensearch-project#696 and 317 all together. Signed-off-by: Yury Fridlyand <yuryf@bitquilltech.com>
…oject#302, opensearch-project#783, opensearch-project#696 and 317 all together. Signed-off-by: Yury Fridlyand <yuryf@bitquilltech.com>
…pensearch-project#696 and 317 all together. Signed-off-by: Yury Fridlyand <yuryf@bitquilltech.com>
…gether. (#479) Signed-off-by: Yury Fridlyand <yuryf@bitquilltech.com>
What is the expected release date for a new ODBC driver? I still see the 1.1.0.1 version available on the downloads page. |
linking release issue: opensearch-project/opensearch-build#1872 |
the new drivers (1.4.0.0) are released under bottom of https://opensearch.org/artifacts, let us know if they still have issues |
Hello @joshuali925 I am using Opensearch version is 1.2.4 but still facing issue . |
works correctly |
@atarhel did you have the config |
No, I have also tested it with the AWS opensearch service in the cloud, it works without problems. |
Further testing on the ODBC driver version 1.4.0.0 has highlighted some UI issues around the UseSSL flag. When using the prefix Driver connecting to SSL enabled node with UseSSL flag set: Driver connecting to SSL enabled node with UseSSL flag not set: |
Thanks @forestmvey @atarhel seems like a UI issue, not a config or setup issue.
|
My preferences is option 2 -- it's the most user-friendly. While we are there, HostVerification should be disabled unless HTTPS is used. |
Thanks @forestmvey that's helpful. So basically "UseSSL" is ignored right now, as a workaround user just have to use consistent protocol in host and node set up I agree with option 2 as well, since UseSSL seems redundant if user already put |
Having same issue with current setup: What I want to point out is that I could not use the sql plugin from my lambda function since the path was actually '_opendistro/_sql' not '_plugins/_sql' as it should be.. Maybe this is related somehow? |
It should be checking |
@joshuali925 I have created a demo for the fix on this issue with PR-653 odbc_ssl_compliance_fix_demo.mp4 |
* Disable flaky test in JdbcTestIT. (#475) Signed-off-by: penghuo <penghuo@gmail.com> * Update dependency opensearch-ml-client group name (#477) Signed-off-by: jackieyanghan <jkhanjob@gmail.com> * Collected fixes related to bugs #280, #302, #783, #696 and 317 all together. (#479) Signed-off-by: Yury Fridlyand <yuryf@bitquilltech.com> * Add JDK 8 to CI Matrix (#483) (#484) * fixed references in java 8 and added to ci matrix * filter test that fails due to jdk 8 bug * use different degree to radian conversion for difference in jdk * skip date time format tests that cause error due to jdk bug * only disable DateTime unit test on Java 8 Bypassing failed DCO check Signed-off-by: David Cui <davidcui@amazon.com> (cherry picked from commit b6fccbd) Co-authored-by: David Cui <53581635+davidcui1225@users.noreply.github.com> * Add parse docs to PPL commands index (#486) (#487) Signed-off-by: Joshua Li <joshuali925@gmail.com> * Add 1.3.0 release notes (#492) Signed-off-by: Eugene Lee <eugenesk@amazon.com> * Add Kmeans and AD command documentation (#493) (#497) Signed-off-by: jackieyanghan <jkhanjob@gmail.com> (cherry picked from commit ee4bce0) * Bump version to 1.3.1 Signed-off-by: Sayali Gaikawad <gaiksaya@amazon.com> * Bump ml Signed-off-by: Sayali Gaikawad <gaiksaya@amazon.com> * Add new zip Signed-off-by: Sayali Gaikawad <gaiksaya@amazon.com> * Updated release drafter Signed-off-by: Sayali Gaikawad <gaiksaya@amazon.com> * Remove checked-in ml-commons dependency (#529) Signed-off-by: jackieyanghan <jkhanjob@gmail.com> * Bump workbench to 1.3.1 (#540) Signed-off-by: Joshua Li <joshuali925@gmail.com> * Bug Fix, return default ID when log4j ThreadContext is empty (#538) (#539) (#543) Signed-off-by: penghuo <penghuo@gmail.com> (cherry picked from commit 54b7257) * Incremented version to 1.3.2. (#593) Signed-off-by: Zelin Hao <zelinhao@amazon.com> Signed-off-by: Joshua Li <joshuali925@gmail.com> Co-authored-by: Joshua Li <joshuali925@gmail.com> * Version bump 1.3.3 Signed-off-by: pgodithi <pgodithi@amazon.com> * [1.3] Bump spring-beans to 5.2.20 (#632) Signed-off-by: Joshua Li <joshuali925@gmail.com> * Version bump 1.3.3 Signed-off-by: pgodithi <pgodithi@amazon.com> * Incremented version to 1.3.4. (#681) * Incremented version to 1.3.4. Signed-off-by: Zelin Hao <zelinhao@amazon.com> * bump jackson to 2.13.2 Signed-off-by: Joshua Li <joshuali925@gmail.com> Co-authored-by: Joshua Li <joshuali925@gmail.com> Co-authored-by: Peng Huo <penghuo@gmail.com> Co-authored-by: Jackie Han <41348518+jackiehanyang@users.noreply.github.com> Co-authored-by: Yury-Fridlyand <88679692+Yury-Fridlyand@users.noreply.github.com> Co-authored-by: opensearch-trigger-bot[bot] <98922864+opensearch-trigger-bot[bot]@users.noreply.github.com> Co-authored-by: David Cui <53581635+davidcui1225@users.noreply.github.com> Co-authored-by: Eugene Lee <eugenesk@amazon.com> Co-authored-by: Sayali Gaikawad <gaiksaya@amazon.com> Co-authored-by: Sayali Gaikawad <61760125+gaiksaya@users.noreply.github.com> Co-authored-by: Joshua Li <joshuali925@gmail.com> Co-authored-by: Zelin Hao <87548827+zelinh@users.noreply.github.com> Co-authored-by: pgodithi <pgodithi@amazon.com> Co-authored-by: Anirudha (Ani) Jadhav <anirudha@nyu.edu>
I'm having this problem with AWS Managed OpenSearch, both on OpenDistro clusters as well as OpenSearch clusters (7.10 and 1.3 respectively).
The above error shows up regardless of whether or not I configure the connection to use ssl or not. I can access the endpoint via HTTP just fine, but the ODBC connection always fails. Is there a workaround or alternate odbc driver I can use? |
Im having issues while using Amazon Opensearch Service 1.3 and opensearch-sql-odbc-driver 1.5. Ive tried everything from using Domain endpoint (VPC) name, custom url, using ports 443/9200/none, using http/https/none, enabling/disabling SSL, host verification on/off and no matter what I get: |
The solution described above worked for me: using "https://" and UseSSL flag. But only for V1.4.0.0. It didn't work for me with V1.5.0.0. |
There is still some issue with version 1.5.0 as described in here: |
Describe the bug
OpenSearch ODBC client will not connect to OpenSearch cluster.
Using the 'Test' button in the ODBC Data Sources Configuration dialog, I get the "Connection error: SQL plugin is not available, please install the SQL plugin to use this driver" error message. Using curl with the same parameters in a WSL window on the same system works as expected.
Tracing through the code, this message is generated in the CheckSQLPluginAvailability() method in opensearch_communication.cpp. Based on what I can see in the log on the Windows side (see below), it is being triggered by an exception thrown in the ParseErrorResponse() method -- which probably means it is getting a non-JSON response to parse. The problem is, I can't see what that response is -- I can only sometimes get the OpenSearch logs to show a connection (though communication is confirmed using tcpdump on the server side), much less tell me what it is sending back. The root log level of the node I'm trying to connect to is set to DEBUG ... I've tried to set to TRACE, but couldn't sift any additional useful information out -- but if y'all can tell me what to search for, I'll set it to TRACE again and send the results.
When using curl to test, I can see messages from o.o.s.l.p.RestSqlAction showing the query received, but not when I test the ODBC driver -- which makes me wonder if the driver is sending the appropriate API call at all? Again, I can't see enough in the logs to answer this question.
I see similar issues raised in several different threads in the forums, with the frequent cause being SSL configuration, possible certificate issues, but (as you see below) I've worked through those issues to make sure I've got those bases covered. I installed the cluster's Root CA in the windows trusted authorities keystore, and verified using a browser that the cluster's cert is accepted.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The ODBC driver should connect with the OpenSearch cluster
Plugins
These are the plugins currently installed:
Screenshots
Configuration Dialog:
Error Dialog:
Windows Log:
Host/Environment (please complete the following information):
Client - Windows 10 (latest updates)
ODBC Driver - tested with versions 1.1.0.1 and 1.2 - same behavior
Cluster - OpenSearch 1.1.0 (tarball) running on Debian 11 & Fedora 34 hosts (the host parameter was pointed to a Debian host)
Additional context
I'm curious if the 299 Deprecation warning is interfering with the exchange between the ODBC driver and the cluster, but I cannot find a way to shut it off to validate that hypothesis.
The text was updated successfully, but these errors were encountered: