Skip to content

mailgun/etcd3-slim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

0463547 · Jan 15, 2020

History

49 Commits
Jan 14, 2020
Feb 8, 2019
Nov 9, 2018
Jul 11, 2018
May 15, 2019
Feb 8, 2019
Jul 11, 2018
Aug 28, 2018
Aug 30, 2018
Aug 30, 2018
Jan 15, 2020

Repository files navigation

etcd3-slim

Build Status Coverage Status

Thin wrapper around Etcd3 gRPC stubs

gRPC Limitations

Due to a limitation in the C binding which python uses to make gRPC calls you may not interact with etcd3-slim after forking. This includes any use of the multiprocess module for preforming asynchronous CPU intensive work. To use etcd3-slim in an multiprocess environment correctly fork() must be called before etcd3-slim is initialized and gRPC connections have been established.

If you do interact with etcd3-slim after forking you might see the following error

E0820 22:02:35.823169413   14446 ssl_transport_security.cc:470] Corruption detected.
E0820 22:02:35.823242229   14446 ssl_transport_security.cc:446] error:1e000065:Cipher functions:OPENSSL_internal:BAD_DECRYPT
E0820 22:02:35.823256466   14446 ssl_transport_security.cc:446] error:1000008b:SSL routines:OPENSSL_internal:DECRYPTION_FAILED_OR_BAD_RECORD_MAC
E0820 22:02:35.823261537   14446 secure_endpoint.cc:181]     Decryption error: TSI_DATA_CORRUPTED
E0820 22:02:35.823302859   14446 ssl_transport_security.cc:497] SSL_write failed with error SSL_ERROR_SSL.

See grpc/grpc#15334 to follow updates to fork() support in gRPC.

Dockerized Server For Local Development

To build a Docker image with etcd server for local development:

$ ./build-docker.sh

The image will be named etcd3-slim-dev.