Comments (6)
The changes worked great! Thank you very much, I don't think this fix is necessary anymore.
from gosnowflake.
Thanks for filing an issue. I'll look into this tomorrow morning or earlier.
from gosnowflake.
It appeared the driver method Ping
is called only after the connection is success. Hence the context is not honored if the connection fails. In that sense, the functionality of Ping
is not really to check the connectivity rather making sure the connected database is functional.
Anyway I believe the goal here is when an invalid account name is specified, how quickly connection failure can be detected and raises an error to the user, right?
I see the issue is LoginTimeout is not honored if it is less than 60 seconds and the connection hangs. But I get 403 back as soon as it founds the endpoint doesn't exist, e.g., https://foobar-somewhere.snowflakecomputing.com/, so LoginTimeout works.
Do you experience something different to me? such as hanging and waiting for 60 seconds on every connection failure?
from gosnowflake.
@smtakeda as described in my code sample, the LoginTimeout
works just fine. The context not being respected is the reason for this bug report, as I tried this method before I discovered the LoginTimeout
config.
As far as what to do for an invalid account, I agree with you that it would be much preferred that we identify that condition much more quickly as it's currently indistinguishable from a network error.
from gosnowflake.
Thanks for confirmation. At the moment, I cannot do much for the behavior of Ping with context due to what I discovered. But the driver could raise an error as soon as HTTP 403 is returned in authentication. The only reason why the driver retries for 403 is because AWS S3 endpoints sometimes return 403 and retry often works, but since the authentication won't involve AWS S3 endpoints, I believe it should be fine. Working on the fix.
from gosnowflake.
@dominicbarnes can you please try the latest code? e1f17ec
from gosnowflake.
Related Issues (20)
- Using bool type parmeter failed with error code = 100132 in multi statements query HOT 3
- Array binding support for filtering parameter HOT 2
- SNOW-938672 Snyk: gosnowflake google.golang.org/grpc v1.49.0 | Snyk ID - SNYK-GOLANG-GOOGLEGOLANGORGGRPC-5953328 HOT 3
- Segfault from s3_storage_client.go:96 HOT 6
- WithMultiStatement - creates an extra process for all queries that doesn't resolve until all queries are resolved. Takes up extra space and blocks other requests. HOT 2
- SNOW-995607 Snyk: gosnowflake golang.org/x/crypto v0.15.0 | Snyk ID - SNYK-GOLANG-GOLANGORGXCRYPTOSSH-6130669 HOT 3
- SNOW-995714 SNOW-998050 Calling stored procedure returning a table in multi-statements query fail with code = 100132 HOT 2
- SNOW-996366 Snyk: gosnowflake github.com/dvsekhvalnov/jose2go 1.5.0 | Snyk ID - SNYK-GOLANG-GITHUBCOMDVSEKHVALNOVJOSE2GO-6137739 HOT 4
- Snyk: gosnowflake golang.org/x/net v0.8.0 | Snyk ID - SNYK-GOLANG-GOLANGORGXNETHTTP2-5953327 HOT 3
- Snyk: gosnowflake google.golang.org/grpc v1.49.0 | Snyk ID - SNYK-GOLANG-GOOGLEGOLANGORGGRPC-5953328 HOT 3
- interface conversion: interface is nil, not gosnowflake.SnowflakeRows HOT 9
- SNOW-961482 High CPU usage in gosnowflake OCSP module HOT 7
- Support Describe Only through SnowflakeConn HOT 3
- Gosnowflake unable to use because aws sdk update. HOT 20
- s3_storage_client.go: cannot use out.ContentLength (variable of type *int64) as int64 value in struct literal HOT 1
- WithStreamDownloader flag causes some errors to be dropped HOT 7
- Snyk: gosnowflake google.golang.org/grpc v1.49.0 | Snyk ID - SNYK-GOLANG-GOOGLEGOLANGORGGRPC-6085451 HOT 2
- Nil pointer access due to empty chunk returned from gosnowflake.buildFirstArrowChunk HOT 10
- Expecting OBJECT but got VARCHAR when inserting a JSON value. HOT 3
- #993 Causes ambiguous error to be thrown when result is nil HOT 13
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gosnowflake.