Skip to content
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

0.5.5 SSL issues #766

Closed
pjenvey opened this issue Aug 6, 2020 · 7 comments
Closed

0.5.5 SSL issues #766

pjenvey opened this issue Aug 6, 2020 · 7 comments
Labels
bug Something isn't working p1 Stuff we gotta do before we ship!

Comments

@pjenvey
Copy link
Member

pjenvey commented Aug 6, 2020

The features=[ "openssl"] causes SSL issues, seen on stage logs:

2020-08-06T19:42:59.394543836Z Corruption detected. E 
2020-08-06T19:42:59.394603261Z error:14187180:SSL routines:ssl_do_config:bad value E 
2020-08-06T19:42:59.394609172Z     Decryption error: TSI_DATA_CORRUPTED E 

One might assume the target_vendor="ubuntu" wouldn't affect the debian:buster-slim docker env we use, but there's no other reason this would begin happening on 0.5.5.

@pjenvey pjenvey added bug Something isn't working p1 Stuff we gotta do before we ship! labels Aug 6, 2020
@jrconlin
Copy link
Member

jrconlin commented Aug 7, 2020

Prior to this version, the app would fail during init because of conflicts in openssl and the grpcio included boringssl.

It's targeted to ubuntu because I was unaware of it impacting anything else, but there appears to be a different issue at play.

Does it make sense to just set feature="openssl" universally?

@jrconlin
Copy link
Member

jrconlin commented Aug 7, 2020

Huh, are we terminating TLS on our machines or on an ELB equivalent? I'm guessing we're doing it on each server and we run a round-robin load balancer?

@pjenvey
Copy link
Member Author

pjenvey commented Aug 7, 2020

Does it make sense to just set feature="openssl" universally?

I doubt that would affect the docker build since I'm guessing the ubuntu target is being triggered. Did we confirm it's being enabled on there from cargo tree -e features?

Huh, are we terminating TLS on our machines or on an ELB equivalent? I'm guessing we're doing it on each server and we run a round-robin load balancer?

We don't terminate TLS, the LB does. The GRPC connections to Spanner are over TLS though.

@pjenvey
Copy link
Member Author

pjenvey commented Aug 8, 2020

JR confirmed the grpcio openssl feature is not being picked up on the Docker build, so it's not the cause.

(also rustc --print=cfg shows what the current env's vendor is).

All we know is this started happening in 0.5.5 on stage. It first occurred an hour after it was deployed. There's very little difference between 0.5.4 and 0.5.5

0.5.4...0.5.5

0.5.4 was on stage for a couple days before 0.5.5 (there wasn't a lot of traffic, but neither was there on 0.5.5). I can't easily tell if the libssl-dev install on the docker changed in between the 2 releases (the docker step for it was "skipped" with no log output because it hit the docker layer caching) but it shouldn't matter because grpcio's using boringssl underneath anyway.

@jrconlin
Copy link
Member

I'm also not able to replicate the problem locally using a docker build. I built an image using the Dockerfile and was able to use grpcio to connect to spanner remotely without the above error. I don't think this may be a problem with the docker image building built on circleci, but at this point, I don't have any ideas.

@pjenvey
Copy link
Member Author

pjenvey commented Aug 10, 2020

See #774 (comment) for the likely culprit

@pjenvey
Copy link
Member Author

pjenvey commented Aug 17, 2020

Confirmed this went away on stage w/ #774's fix (in 0.5.6)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working p1 Stuff we gotta do before we ship!
Projects
None yet
Development

No branches or pull requests

2 participants