Code Monkey home page Code Monkey logo

Comments (10)

rabindragogoi avatar rabindragogoi commented on June 4, 2024

Any Update for this issue? @rusackas

from superset.

rusackas avatar rusackas commented on June 4, 2024

Nope, but I'm highly doubtful that many people have 20K values in their "in" clause. Normally you would keep that many values in a table, and just do a JOIN or other (far more terse) query. Is that possible in your case? You might just be sending far too much text to the SQL parser or something like that, causing some bottleneck/timeout, which seems like a rare and avoidable edge case.

Here's what GPT has to say about your issue, in case you want to investigate some more:

The error you're encountering in Apache Superset seems to be originating from an SSL error during the HTTPS connection attempt to your PrestoDB server. The error message "EOF occurred in violation of protocol" typically indicates a lower-level issue with the SSL/TLS handshake between Superset and your PrestoDB server.

Here are several steps and checks you can perform to troubleshoot and potentially resolve this issue:

  1. Verify SSL Configuration: Check the SSL configuration on the PrestoDB server. Ensure that the SSL certificate is correctly installed, valid, and not expired. Verify that the server is configured to use TLS protocols supported by the client (Superset in this case).
  2. Check Network Issues: Since the error message includes "Max retries exceeded," it's also worth checking if there are any network connectivity issues between the Superset instance and the PrestoDB server. You can test connectivity using tools like ping or curl to ensure there are no intermittent network issues or firewalls blocking the connection.
  3. Update Dependencies: Ensure that the Python libraries related to networking and HTTP requests (requests, urllib3) are up to date. Sometimes, older versions of these libraries might have bugs or incompatibilities with certain SSL/TLS configurations.
  4. Adjust SSL/TLS Settings in Superset: If the SSL issue persists, you can try adjusting the SSL settings in your Superset configuration. For example, you might adjust the SSL verification settings temporarily to see if that allows the connection to succeed (not recommended for production environments due to security concerns).
  5. Increase Timeout and Retries: The error mentions that maximum retries have been exceeded. You can increase the timeout and retry settings in Superset's configuration to allow more time for the connection to be established, especially if the server is under heavy load or slow to respond.
  6. Review Superset Logs: Further investigate any additional log entries around the time of the error to see if there are more detailed messages that might indicate the root cause. This could provide more context on why the SSL/TLS handshake is failing.
  7. Simplify the Query: Since the error occurs when a large number of values are used in the IN clause of your SQL query, test with a smaller set of values to determine if the issue is related to the size of the request. If the smaller query succeeds, the issue might be related to how large queries are handled or transmitted over the network.

To proceed, you might start with the simpler checks (like verifying network connectivity and SSL certificates) and then move towards more complex configurations and adjustments as needed.

from superset.

rabindragogoi avatar rabindragogoi commented on June 4, 2024

Thanks @rusackas : I am trying to upgrade to superset-3.1.2 in the hope to over come both the Trino issue (#26768) and this SSLError issue.

Could you please provide me the requirements.txt file required for superset-3.1.2 ? This would be a great help.

Thanks in advance

from superset.

rabindragogoi avatar rabindragogoi commented on June 4, 2024

@rusackas : I tried with superset-3.1.2 but still I am getting the "SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:2427)')))""

One another point I would like to mention is :
---- The same query with 20k values in IN clause works perfect in superset-1.5.2
---- In Superset-3.1.2 the query works well with limited values say 2k values in IN clause. but fails with 20K values.

I am using the below requirement.txt file.

alembic==1.12.0
amqp==5.1.1
apache-superset==3.1.2
apispec==6.3.0
async-timeout==4.0.3
attrs==23.1.0
Babel==2.13.0
backoff==2.2.1
bcrypt==4.0.1
billiard==4.1.0
blinker==1.6.3
Brotli==1.1.0
#cachelib==0.8.0
cachelib==0.9.0
celery==5.3.4
certifi==2023.7.22
cffi==1.16.0
click==8.1.7
click-didyoumean==0.3.0
click-option-group==0.5.6
click-plugins==1.1.1
click-repl==0.3.0
colorama==0.4.6
convertdate==2.4.0
cron-descriptor==1.4.0
croniter==1.4.1
#cryptography==39.0.2
cryptography==42.0.4
Deprecated==1.2.14
deprecation==2.1.0
dnspython==2.4.2
email-validator==1.3.1
exceptiongroup==1.1.3
Flask==2.3.3
#Flask-AppBuilder==4.3.7
Flask-AppBuilder==4.4.1
Flask-Babel==2.0.0
#Flask-Caching==1.11.1
Flask-Caching==2.1.0
Flask-Compress==1.14
Flask-JWT-Extended==4.5.3
Flask-Login==0.6.2
Flask-LDAP==0.1.5
Flask-Migrate==3.1.0
Flask-SQLAlchemy==2.5.1
flask-talisman==1.1.0
Flask-WTF==1.2.1
Flask-SimpleLDAP==1.3.3
func-timeout==4.3.5
geographiclib==2.0
python-ldap==3.3.1
geopy==2.4.0
gevent==23.9.1
greenlet==3.0.0
#gunicorn==20.1.0
gunicorn==21.2.0
h11==0.14.0
hashids==1.3.1
hijri-converter==2.3.1
#holidays==0.23
holidays==0.25
humanize==4.8.0
idna==3.4
importlib-metadata==6.8.0
importlib-resources==6.1.0
isodate==0.6.1
itsdangerous==2.1.2
Jinja2==3.1.2
jsonschema==4.19.1
jsonschema-specifications==2023.7.1
kombu==5.3.2
korean-lunar-calendar==0.3.1
limits==3.6.0
Mako==1.2.4
Markdown==3.5
markdown-it-py==3.0.0
MarkupSafe==2.1.3
marshmallow==3.20.1
marshmallow-sqlalchemy==0.26.1
mdurl==0.1.2
msgpack==1.0.7
mysqlclient==2.1.0
nh3==0.2.14
numpy==1.23.5
ordered-set==4.1.0
outcome==1.2.0
packaging==21.3
#pandas==1.5.3
pandas==2.0.3
#paramiko==3.3.1
paramiko==3.4.0
parsedatetime==2.6
pgsanity==0.2.9
Pillow==10.0.1
polyline==2.0.1
prison==0.2.1
prompt-toolkit==3.0.39
#pyarrow==12.0.1
pyarrow==14.0.1
pycparser==2.21
Pygments==2.16.1
PyJWT==2.8.0
PyMeeus==0.5.12
PyNaCl==1.5.0
pyparsing==3.1.1
PySocks==1.7.1
python-dateutil==2.8.2
python-dotenv==1.0.0
python-geohash==0.8.5
pytz==2023.3.post1
PyYAML==6.0.1
redis==4.6.0
referencing==0.30.2
rich==13.6.0
rpds-py==0.10.4
selenium==4.9.1
shortid==0.1.2
simplejson==3.19.2
six==1.16.0
slack-sdk==3.23.0
sniffio==1.3.0
sortedcontainers==2.4.0
SQLAlchemy==1.4.49
SQLAlchemy-Utils==0.38.3
sqlparse==0.4.4
sshtunnel==0.4.0
tabulate==0.8.10
trio==0.22.2
trio-websocket==0.11.1
typing_extensions==4.8.0
tzdata==2023.3
#urllib3==2.0.6
urllib3==2.2.1
vine==5.0.0
wcwidth==0.2.8
Werkzeug==2.3.7
wrapt==1.15.0
wsproto==1.2.0
WTForms==3.0.1
WTForms-JSON==0.3.5
XlsxWriter==3.0.9
zipp==3.17.0
zope.event==5.0
zope.interface==6.1
environs==9.3.3
PyHive[presto]==0.6.4
pydruid==0.6.2
elasticsearch-dbapi==0.2.10
sqlalchemy-trino==0.5.0
thrift==0.16.0
trino==0.326.0
requests==2.31.0
requests-kerberos==0.14.0
pykerberos==1.2.4
pipdeptree==2.10.0

It would be great if you provide me the requirements.txt file required for superset-3.1.2.

Thanks in advance.

from superset.

rabindragogoi avatar rabindragogoi commented on June 4, 2024

@rusackas : Could you please help me with the compatible trino version with superset-3.1.2?

This is a compatible issue as suggested by chat gpt.

image

from superset.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.