[ 1s] Memory limit set to 21703604KB [ 1s] Using BUILD_ROOT=/var/tmp/build-root/openSUSE_Tumbleweed-x86_64 [ 1s] Using BUILD_ARCH=x86_64:i686:i586:i486:i386 [ 1s] [ 1s] [ 1s] stitny started "build python-etcd.spec" at Wed Aug 12 19:44:47 UTC 2020. [ 1s] [ 1s] [ 1s] processing recipe /home/matej/build/home:mcepl:branches:devel:CaaSP:Head:ControllerNode/python-etcd/python-etcd.spec ... [ 1s] running changelog2spec --target rpm --file /home/matej/build/home:mcepl:branches:devel:CaaSP:Head:ControllerNode/python-etcd/python-etcd.spec [ 1s] init_buildsystem --configdir /usr/lib/build/configs --cachedir /var/cache/build --rpmlist /tmp/rpmlist.zz757sul /home/matej/build/home:mcepl:branches:devel:CaaSP:Head:ControllerNode/python-etcd/python-etcd.spec ccache ... [ 1s] reordering...cycle: libncurses6 -> terminfo-base [ 1s] breaking dependency terminfo-base -> libncurses6 [ 1s] cycle: binutils -> libctf0 [ 1s] breaking dependency binutils -> libctf0 [ 1s] cycle: python38-base -> libpython3_8-1_0 [ 1s] breaking dependency python38-base -> libpython3_8-1_0 [ 1s] cycle: rpm -> rpm-config-SUSE [ 1s] breaking dependency rpm -> rpm-config-SUSE [ 1s] cycle: libtasn1-6 -> libtasn1 [ 1s] breaking dependency libtasn1 -> libtasn1-6 [ 1s] done [ 1s] querying package ids... [ 2s] [1/197] keeping file-magic-5.39-1.2 [ 2s] [2/197] keeping kernel-obs-build-5.8.0-1.1 [ 2s] [3/197] keeping libtirpc-netconfig-1.2.6-1.15 [ 2s] [4/197] keeping pkgconf-m4-1.7.3-1.2 [ 2s] [5/197] keeping python-rpm-macros-20200714.252de1f-1.1 [ 2s] [6/197] keeping system-user-root-20190513-1.20 [ 2s] [7/197] keeping vim-data-common-8.2.1253-1.1 [ 2s] [8/197] keeping filesystem-15.5-30.1 [ 2s] [9/197] keeping glibc-2.31-6.2 [ 2s] [10/197] keeping fdupes-1.61-3.15 [ 2s] [11/197] keeping fillup-1.42-275.2 [ 2s] [12/197] keeping libacl1-2.2.53-3.24 [ 2s] [13/197] keeping libapparmor1-2.13.4-5.1 [ 2s] [14/197] keeping libargon2-1-0.0+git20190520.62358ba-1.2 [ 2s] [15/197] keeping libatomic1-10.2.1+git501-1.1 [ 2s] [16/197] keeping libattr1-2.4.48-3.18 [ 2s] [17/197] keeping libaudit1-2.8.5-2.2 [ 2s] [18/197] keeping libblkid1-2.35.1-2.2 [ 2s] [19/197] keeping libblogger2-2.20-1.2 [ 2s] [20/197] keeping libbz2-1-1.0.8-2.19 [ 2s] [21/197] keeping libcap-ng0-0.7.10-1.15 [ 2s] [22/197] keeping libcap2-2.32-1.13 [ 2s] [23/197] keeping libcom_err2-1.45.6-1.18 [ 2s] [24/197] keeping libcrypt1-4.4.15-1.19 [ 2s] [25/197] keeping libeconf0-0.3.8+git20200710.5126fff-1.1 [ 2s] [26/197] keeping libexpat1-2.2.9-1.11 [ 2s] [27/197] keeping libffi8-3.3.git30-1.12 [ 2s] [28/197] keeping libgcc_s1-10.2.1+git501-1.1 [ 2s] [29/197] keeping libgdbm6-1.18.1-3.18 [ 2s] [30/197] keeping libgmp10-6.2.0-3.2 [ 2s] [31/197] keeping libgomp1-10.2.1+git501-1.1 [ 2s] [32/197] keeping libgpg-error0-1.38-1.2 [ 2s] [33/197] keeping libitm1-10.2.1+git501-1.1 [ 2s] [34/197] keeping libjson-c5-0.14-2.2 [ 2s] [35/197] keeping libkeyutils1-1.6-1.18 [ 2s] [36/197] keeping liblua5_3-5-5.3.5-2.21 [ 2s] [37/197] keeping liblz4-1-1.9.2-1.8 [ 2s] [38/197] keeping liblzma5-5.2.5-1.15 [ 2s] [39/197] keeping libmnl0-1.0.4-2.2 [ 2s] [40/197] keeping libnss_usrfiles2-2.27-2.3 [ 2s] [41/197] keeping libopenssl1_1-1.1.1g-2.12 [ 2s] [42/197] keeping libpcre1-8.44-1.18 [ 2s] [43/197] keeping libpcre2-8-0-10.35-1.3 [ 2s] [44/197] keeping libpkgconf3-1.7.3-1.2 [ 2s] [45/197] keeping libpopt0-1.16-32.18 [ 2s] [46/197] keeping libqrencode4-4.0.2-1.4 [ 2s] [47/197] keeping libseccomp2-2.4.3-1.2 [ 2s] [48/197] keeping libsepol1-3.0-2.16 [ 2s] [49/197] keeping libsmartcols1-2.35.1-2.2 [ 2s] [50/197] keeping libsqlite3-0-3.32.3-1.2 [ 2s] [51/197] keeping libtextstyle0-0.20.2-2.2 [ 2s] [52/197] keeping libudev1-245.6-3.1 [ 2s] [53/197] keeping libunistring2-0.9.10-2.7 [ 2s] [54/197] keeping libuuid1-2.35.1-2.2 [ 2s] [55/197] keeping libverto1-0.2.6-7.30 [ 2s] [56/197] keeping libz1-1.2.11-13.18 [ 2s] [57/197] keeping libzstd1-1.4.5-2.2 [ 2s] [58/197] keeping patch-2.7.6-3.28 [ 2s] [59/197] keeping rzsz-0.12.21~rc-3.2 [ 2s] [60/197] keeping update-alternatives-1.19.0.5-5.19 [ 2s] [61/197] keeping netcfg-11.6-7.1 [ 2s] [62/197] keeping attr-2.4.48-3.18 [ 2s] [63/197] keeping ccache-3.7.11-1.1 [ 2s] [64/197] keeping libctf-nobfd0-2.34-1.12 [ 2s] [65/197] keeping libelf1-0.179-1.15 [ 2s] [66/197] keeping libgcrypt20-1.8.6-1.2 [ 2s] [67/197] keeping libgdbm_compat4-1.18.1-3.18 [ 2s] [68/197] keeping libidn2-0-2.3.0-3.1 [ 2s] [69/197] keeping libisl22-0.22.1-1.15 [ 2s] [70/197] keeping libmpfr6-4.1.0-1.1 [ 2s] [71/197] keeping libp11-kit0-0.23.20-1.3 [ 2s] [72/197] keeping libselinux1-3.0-2.2 [ 2s] [73/197] keeping libstdc++6-10.2.1+git501-1.1 [ 2s] [74/197] keeping perl-base-5.30.1-4.2 [ 2s] [75/197] keeping pkgconf-1.7.3-1.2 [ 2s] [76/197] keeping chkstat-1550_20200727-19.1 [ 2s] [77/197] keeping libfdisk1-2.35.1-2.2 [ 2s] [78/197] keeping libxml2-2-2.9.10-4.2 [ 2s] [79/197] keeping libkmod2-27-2.1 [ 2s] [80/197] keeping libmagic1-5.39-1.2 [ 2s] [81/197] keeping build-mkbaselibs-20200520-1.3 [ 2s] [82/197] keeping rpm-build-perl-4.15.1-6.2 [ 2s] [83/197] keeping dwz-0.13-6.15 [ 2s] [84/197] keeping file-5.39-1.2 [ 2s] [85/197] keeping libasan6-10.2.1+git501-1.1 [ 2s] [86/197] keeping libdb-4_8-4.8.30-38.22 [ 2s] [87/197] keeping liblsan0-10.2.1+git501-1.1 [ 2s] [88/197] keeping libmount1-2.35.1-2.2 [ 2s] [89/197] keeping libmpc3-1.1.0-2.19 [ 2s] [90/197] keeping libtsan0-10.2.1+git501-1.1 [ 2s] [91/197] keeping libubsan1-10.2.1+git501-1.1 [ 2s] [92/197] keeping tar-1.32-3.4 [ 2s] [93/197] keeping libdw1-0.179-1.15 [ 2s] [94/197] keeping libsemanage1-3.0-2.2 [ 2s] [95/197] keeping krb5-1.18.2-2.1 [ 2s] [96/197] keeping libtirpc3-1.2.6-1.15 [ 2s] [97/197] keeping cpp10-10.2.1+git501-1.1 [ 2s] [98/197] keeping perl-5.30.1-4.2 [ 2s] [99/197] keeping brp-check-suse-84.87+git20200510.8ff16cf-1.3 [ 2s] [100/197] keeping libnsl2-1.3.0-1.2 [ 2s] [101/197] keeping terminfo-base-6.2.20200711-7.1 [ 2s] [102/197] keeping libncurses6-6.2.20200711-7.1 [ 2s] [103/197] keeping libreadline8-8.0-5.1 [ 2s] [104/197] keeping ncurses-utils-6.2.20200711-7.1 [ 2s] [105/197] keeping bash-5.0.11-8.1 [ 2s] [106/197] keeping cpio-2.12-9.20 [ 2s] [107/197] keeping cpp-10-1.14 [ 2s] [108/197] keeping diffutils-3.7-3.5 [ 2s] [109/197] keeping gzip-1.10-3.23 [ 2s] [110/197] keeping hostname-3.21-3.2 [ 2s] [111/197] keeping make-4.3-2.19 [ 2s] [112/197] keeping which-2.21-4.30 [ 2s] [113/197] keeping bzip2-1.0.8-2.19 [ 2s] [114/197] keeping findutils-4.7.0-3.2 [ 2s] [115/197] keeping gawk-5.1.0-1.22 [ 2s] [116/197] keeping grep-3.4-2.1 [ 2s] [117/197] keeping libtasn1-4.16.0-1.5 [ 2s] [118/197] keeping pkgconf-pkg-config-1.7.3-1.2 [ 2s] [119/197] keeping xz-5.2.5-1.15 [ 2s] [120/197] keeping less-562-1.2 [ 2s] [121/197] keeping libdevmapper1_03-1.02.163-12.2 [ 2s] [122/197] keeping sed-4.8-1.4 [ 2s] [123/197] keeping strace-5.7-1.2 [ 2s] [124/197] keeping gettext-runtime-0.20.2-2.2 [ 2s] [125/197] keeping iproute2-5.7.0-2.1 [ 2s] [126/197] keeping coreutils-8.32-4.1 [ 2s] [127/197] keeping binutils-2.34-1.12 [ 2s] [128/197] keeping vim-8.2.1253-1.1 [ 2s] [129/197] keeping python38-base-3.8.4-1.2 [ 2s] [130/197] keeping python3-appdirs-1.4.4-1.1 [ 2s] [131/197] keeping python3-asn1crypto-1.3.0-1.3 [ 2s] [132/197] keeping python3-attrs-19.3.0-2.1 [ 2s] [133/197] keeping python3-idna-2.10-1.2 [ 2s] [134/197] keeping python3-more-itertools-8.3.0-1.1 [ 2s] [135/197] keeping python3-ordered-set-3.1.1-3.3 [ 2s] [136/197] keeping python3-pluggy-0.13.1-1.3 [ 2s] [137/197] keeping python3-py-1.9.0-1.2 [ 2s] [138/197] keeping python3-pyasn1-0.4.8-1.4 [ 2s] [139/197] keeping python3-pycparser-2.20-1.4 [ 2s] [140/197] keeping python3-pyparsing-2.4.7-2.1 [ 2s] [141/197] keeping python3-wcwidth-0.2.5-1.1 [ 2s] [142/197] keeping rpm-build-python-4.15.1-6.2 [ 2s] [143/197] keeping systemd-rpm-macros-4-2.23 [ 2s] [144/197] keeping libpython3_8-1_0-3.8.4-1.2 [ 2s] [145/197] keeping libtasn1-6-4.16.0-1.5 [ 2s] [146/197] keeping libxcrypt-devel-4.4.15-1.19 [ 2s] [147/197] keeping linux-glibc-devel-5.7-1.2 [ 2s] [148/197] keeping python3-pycryptodome-3.9.8-1.1 [ 2s] [149/197] keeping python3-six-1.15.0-1.1 [ 2s] [150/197] keeping glibc-locale-base-2.31-6.2 [ 2s] [151/197] keeping libctf0-2.34-1.12 [ 2s] [152/197] keeping openssl-1_1-1.1.1g-2.12 [ 2s] [153/197] keeping blog-2.20-1.2 [ 2s] [154/197] keeping permissions-config-1550_20200727-19.1 [ 2s] [155/197] keeping python38-3.8.4-1.1 [ 2s] [156/197] keeping gettext-tools-0.20.2-2.2 [ 2s] [157/197] keeping libcryptsetup12-2.3.3-1.3 [ 2s] [158/197] keeping aaa_base-84.87+git20200507.e2243a4-4.1 [ 2s] [159/197] keeping rpm-4.15.1-6.2 [ 2s] [160/197] keeping aaa_base-malloccheck-84.87+git20200507.e2243a4-4.1 [ 2s] [161/197] keeping glibc-locale-2.31-6.2 [ 2s] [162/197] keeping permissions-20200727.1550-19.1 [ 2s] [163/197] keeping python3-ecdsa-0.15-1.3 [ 2s] [164/197] keeping rpm-config-SUSE-0.g56-1.1 [ 2s] [165/197] keeping p11-kit-0.23.20-1.3 [ 2s] [166/197] keeping p11-kit-tools-0.23.20-1.3 [ 2s] [167/197] keeping python3-packaging-20.4-1.1 [ 2s] [168/197] keeping sysvinit-tools-2.96-1.2 [ 2s] [169/197] keeping glibc-devel-2.31-6.2 [ 2s] [170/197] keeping python3-cffi-1.14.0-1.5 [ 2s] [171/197] keeping librpmbuild9-4.15.1-6.2 [ 2s] [172/197] keeping build-compare-20200727T175347.d95eb35-1.1 [ 2s] [173/197] keeping gdb-8.3.1-10.3 [ 2s] [174/197] keeping python3-dnspython-1.16.0-1.8 [ 2s] [175/197] keeping ca-certificates-2+git20200129.d1a437d-2.2 [ 2s] [176/197] keeping post-build-checks-84.87+git20200323.45c6eba-1.1 [ 2s] [177/197] keeping python3-setuptools-44.0.0-4.2 [ 2s] [178/197] keeping rpmlint-mini-1.10-20.4 [ 2s] [179/197] keeping pam-1.4.0-1.2 [ 2s] [180/197] keeping gcc10-10.2.1+git501-1.1 [ 2s] [181/197] keeping rpmlint-Factory-1.0-98.1 [ 2s] [182/197] keeping ca-certificates-mozilla-2.42-1.1 [ 2s] [183/197] keeping gcc-10-1.14 [ 2s] [184/197] keeping python3-cryptography-3.0-1.1 [ 2s] [185/197] keeping python3-pytest-5.4.3-2.1 [ 2s] [186/197] keeping shadow-4.8.1-2.2 [ 2s] [187/197] keeping gcc-PIE-10-1.14 [ 2s] [188/197] keeping sysuser-shadow-3.0-3.15 [ 2s] [189/197] keeping python3-certifi-2020.4.5.1-1.2 [ 2s] [190/197] keeping python3-pyOpenSSL-19.1.0-1.3 [ 2s] [191/197] keeping system-group-hardware-20170617-11.16 [ 2s] [192/197] keeping python3-urllib3-1.25.10-1.1 [ 2s] [193/197] keeping libutempter0-1.2.0-1.15 [ 2s] [194/197] keeping util-linux-2.35.1-2.2 [ 2s] [195/197] keeping systemd-245.6-3.1 [ 2s] [196/197] keeping rpm-build-4.15.1-6.2 [ 2s] [197/197] keeping etcd-3.4.3-2.2 [ 2s] now finalizing build dir... [ 2s] Installed ccache wrapper as /var/tmp/build-root/openSUSE_Tumbleweed-x86_64/var/lib/build/ccache/bin/cc [ 2s] Installed ccache wrapper as /var/tmp/build-root/openSUSE_Tumbleweed-x86_64/var/lib/build/ccache/bin/gcc [ 2s] Installed ccache wrapper as /var/tmp/build-root/openSUSE_Tumbleweed-x86_64/var/lib/build/ccache/bin/gcc-10 [ 2s] compression = true [ 2s] cp: -r not specified; omitting directory '/home/matej/build/home:mcepl:branches:devel:CaaSP:Head:ControllerNode/python-etcd/python-etcd-0.4.5' [ 3s] ----------------------------------------------------------------- [ 3s] I have the following modifications for python-etcd.spec: [ 3s] ----------------------------------------------------------------- [ 3s] ----- building python-etcd.spec (user abuild) [ 3s] ----------------------------------------------------------------- [ 3s] ----------------------------------------------------------------- [ 3s] + exec rpmbuild -ba --define '_srcdefattr (-,root,root)' --nosignature --define '_build_create_debug 1' /home/abuild/rpmbuild/SOURCES/python-etcd.spec [ 3s] sh: python2: command not found [ 3s] setting SOURCE_DATE_EPOCH=1597190400 [ 3s] Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.fZzex0 [ 3s] + umask 022 [ 3s] + cd /home/abuild/rpmbuild/BUILD [ 3s] + cd /home/abuild/rpmbuild/BUILD [ 3s] + rm -rf python-etcd-0.4.5 [ 3s] + /usr/bin/gzip -dc /home/abuild/rpmbuild/SOURCES/python-etcd-0.4.5.tar.gz [ 3s] + /usr/bin/tar -xof - [ 3s] + STATUS=0 [ 3s] + '[' 0 -ne 0 ']' [ 3s] + cd python-etcd-0.4.5 [ 3s] + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . [ 3s] + /usr/bin/cat /home/abuild/rpmbuild/SOURCES/remove_nose.patch [ 3s] + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch [ 3s] + RPM_EC=0 [ 3s] ++ jobs -p [ 3s] + exit 0 [ 3s] Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.j4S5N3 [ 3s] + umask 022 [ 3s] + cd /home/abuild/rpmbuild/BUILD [ 3s] + /usr/bin/rm -rf /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64 [ 3s] ++ dirname /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64 [ 3s] + /usr/bin/mkdir -p /home/abuild/rpmbuild/BUILDROOT [ 3s] + /usr/bin/mkdir /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64 [ 3s] + cd python-etcd-0.4.5 [ 3s] ++ '[' -f _current_flavor ']' [ 3s] ++ true [ 3s] + python_flavor= [ 3s] + '[' -z '' ']' [ 3s] + python_flavor=tmp [ 3s] + '[' tmp '!=' python3 ']' [ 3s] + '[' -d build ']' [ 3s] + '[' -d _build.python3 ']' [ 3s] + echo python3 [ 3s] + /usr/bin/python3 setup.py build '--executable=/usr/bin/python3 -s' [ 3s] running build [ 3s] running build_py [ 3s] creating build [ 3s] creating build/lib [ 3s] creating build/lib/etcd [ 3s] copying src/etcd/__init__.py -> build/lib/etcd [ 3s] copying src/etcd/auth.py -> build/lib/etcd [ 3s] copying src/etcd/client.py -> build/lib/etcd [ 3s] copying src/etcd/lock.py -> build/lib/etcd [ 3s] creating build/lib/etcd/tests [ 3s] copying src/etcd/tests/__init__.py -> build/lib/etcd/tests [ 3s] copying src/etcd/tests/test_auth.py -> build/lib/etcd/tests [ 3s] creating build/lib/etcd/tests/integration [ 3s] copying src/etcd/tests/integration/__init__.py -> build/lib/etcd/tests/integration [ 3s] copying src/etcd/tests/integration/helpers.py -> build/lib/etcd/tests/integration [ 3s] copying src/etcd/tests/integration/test_ssl.py -> build/lib/etcd/tests/integration [ 3s] copying src/etcd/tests/integration/test_simple.py -> build/lib/etcd/tests/integration [ 3s] creating build/lib/etcd/tests/unit [ 3s] copying src/etcd/tests/unit/__init__.py -> build/lib/etcd/tests/unit [ 3s] copying src/etcd/tests/unit/test_result.py -> build/lib/etcd/tests/unit [ 3s] copying src/etcd/tests/unit/test_client.py -> build/lib/etcd/tests/unit [ 3s] copying src/etcd/tests/unit/test_lock.py -> build/lib/etcd/tests/unit [ 3s] copying src/etcd/tests/unit/test_old_request.py -> build/lib/etcd/tests/unit [ 3s] copying src/etcd/tests/unit/test_request.py -> build/lib/etcd/tests/unit [ 3s] running egg_info [ 3s] writing src/python_etcd.egg-info/PKG-INFO [ 3s] writing dependency_links to src/python_etcd.egg-info/dependency_links.txt [ 3s] writing requirements to src/python_etcd.egg-info/requires.txt [ 3s] writing top-level names to src/python_etcd.egg-info/top_level.txt [ 3s] reading manifest file 'src/python_etcd.egg-info/SOURCES.txt' [ 3s] reading manifest template 'MANIFEST.in' [ 3s] writing manifest file 'src/python_etcd.egg-info/SOURCES.txt' [ 3s] + RPM_EC=0 [ 3s] ++ jobs -p [ 3s] + exit 0 [ 3s] Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.ILrqi2 [ 3s] + umask 022 [ 3s] + cd /home/abuild/rpmbuild/BUILD [ 3s] + cd python-etcd-0.4.5 [ 3s] ++ '[' -f _current_flavor ']' [ 3s] ++ cat _current_flavor [ 3s] + python_flavor=python3 [ 3s] + '[' -z python3 ']' [ 3s] + '[' python3 '!=' python3 ']' [ 3s] + echo python3 [ 3s] + /usr/bin/python3 setup.py install -O1 --skip-build --force --root /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64 --prefix /usr [ 3s] running install [ 3s] running install_lib [ 3s] creating /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr [ 3s] creating /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib [ 3s] creating /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8 [ 3s] creating /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages [ 3s] creating /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd [ 3s] copying build/lib/etcd/__init__.py -> /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd [ 3s] copying build/lib/etcd/auth.py -> /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd [ 3s] copying build/lib/etcd/client.py -> /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd [ 3s] copying build/lib/etcd/lock.py -> /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd [ 3s] creating /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests [ 3s] copying build/lib/etcd/tests/__init__.py -> /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests [ 3s] copying build/lib/etcd/tests/test_auth.py -> /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests [ 3s] creating /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/integration [ 3s] copying build/lib/etcd/tests/integration/__init__.py -> /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/integration [ 3s] copying build/lib/etcd/tests/integration/helpers.py -> /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/integration [ 3s] copying build/lib/etcd/tests/integration/test_ssl.py -> /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/integration [ 3s] copying build/lib/etcd/tests/integration/test_simple.py -> /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/integration [ 3s] creating /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/unit [ 3s] copying build/lib/etcd/tests/unit/__init__.py -> /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/unit [ 3s] copying build/lib/etcd/tests/unit/test_result.py -> /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/unit [ 3s] copying build/lib/etcd/tests/unit/test_client.py -> /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/unit [ 3s] copying build/lib/etcd/tests/unit/test_lock.py -> /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/unit [ 3s] copying build/lib/etcd/tests/unit/test_old_request.py -> /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/unit [ 3s] copying build/lib/etcd/tests/unit/test_request.py -> /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/unit [ 3s] byte-compiling /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/__init__.py to __init__.cpython-38.pyc [ 3s] byte-compiling /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/auth.py to auth.cpython-38.pyc [ 3s] byte-compiling /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/client.py to client.cpython-38.pyc [ 3s] byte-compiling /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/lock.py to lock.cpython-38.pyc [ 3s] byte-compiling /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/__init__.py to __init__.cpython-38.pyc [ 3s] byte-compiling /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/integration/__init__.py to __init__.cpython-38.pyc [ 3s] byte-compiling /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/integration/helpers.py to helpers.cpython-38.pyc [ 3s] byte-compiling /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/integration/test_simple.py to test_simple.cpython-38.pyc [ 3s] byte-compiling /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/integration/test_ssl.py to test_ssl.cpython-38.pyc [ 3s] byte-compiling /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/test_auth.py to test_auth.cpython-38.pyc [ 3s] byte-compiling /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/unit/__init__.py to __init__.cpython-38.pyc [ 3s] byte-compiling /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/unit/test_client.py to test_client.cpython-38.pyc [ 3s] byte-compiling /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/unit/test_lock.py to test_lock.cpython-38.pyc [ 3s] byte-compiling /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/unit/test_old_request.py to test_old_request.cpython-38.pyc [ 3s] byte-compiling /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/unit/test_request.py to test_request.cpython-38.pyc [ 3s] byte-compiling /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/unit/test_result.py to test_result.cpython-38.pyc [ 3s] writing byte-compilation script '/tmp/tmpym0bk98f.py' [ 3s] /usr/bin/python3 /tmp/tmpym0bk98f.py [ 3s] removing /tmp/tmpym0bk98f.py [ 3s] running install_egg_info [ 3s] running egg_info [ 3s] writing src/python_etcd.egg-info/PKG-INFO [ 3s] writing dependency_links to src/python_etcd.egg-info/dependency_links.txt [ 3s] writing requirements to src/python_etcd.egg-info/requires.txt [ 3s] writing top-level names to src/python_etcd.egg-info/top_level.txt [ 3s] reading manifest file 'src/python_etcd.egg-info/SOURCES.txt' [ 3s] reading manifest template 'MANIFEST.in' [ 3s] writing manifest file 'src/python_etcd.egg-info/SOURCES.txt' [ 3s] Copying src/python_etcd.egg-info to /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/python_etcd-0.4.5-py3.8.egg-info [ 3s] running install_scripts [ 3s] ++ '[' -f _current_flavor ']' [ 3s] ++ cat _current_flavor [ 3s] + python_flavor=python3 [ 3s] + '[' -z python3 ']' [ 3s] + '[' python3 '!=' python3 ']' [ 3s] + echo python3 [ 3s] + rm -rf /usr/lib/python3.8/site-packages/etcd/tests [ 3s] + _target= [ 3s] + _symlinks=0 [ 3s] + fdupes -q -p -n -H -o name -r /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages [ 3s] + read _file [ 3s] + test -z '' [ 3s] + _target=/home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/python_etcd-0.4.5-py3.8.egg-info/dependency_links.txt [ 3s] + read _file [ 3s] + test -z /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/python_etcd-0.4.5-py3.8.egg-info/dependency_links.txt [ 3s] + test -z /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/python_etcd-0.4.5-py3.8.egg-info/not-zip-safe [ 3s] + test 0 = 1 [ 3s] + ln -f /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/python_etcd-0.4.5-py3.8.egg-info/dependency_links.txt /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/python_etcd-0.4.5-py3.8.egg-info/not-zip-safe [ 3s] + read _file [ 3s] + test -z /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/python_etcd-0.4.5-py3.8.egg-info/dependency_links.txt [ 3s] + test -z '' [ 3s] + _target= [ 3s] + continue [ 3s] + read _file [ 3s] + test -z '' [ 3s] + _target=/home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/__pycache__/__init__.cpython-38.opt-1.pyc [ 3s] + read _file [ 3s] + test -z /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/__pycache__/__init__.cpython-38.opt-1.pyc [ 3s] + test -z /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/__pycache__/__init__.cpython-38.pyc [ 3s] + test 0 = 1 [ 3s] + ln -f /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/__pycache__/__init__.cpython-38.opt-1.pyc /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/__pycache__/__init__.cpython-38.pyc [ 3s] + read _file [ 3s] + test -z /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/__pycache__/__init__.cpython-38.opt-1.pyc [ 3s] + test -z '' [ 3s] + _target= [ 3s] + continue [ 3s] + read _file [ 3s] + test -z '' [ 3s] + _target=/home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/integration/__pycache__/__init__.cpython-38.opt-1.pyc [ 3s] + read _file [ 3s] + test -z /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/integration/__pycache__/__init__.cpython-38.opt-1.pyc [ 3s] + test -z /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/integration/__pycache__/__init__.cpython-38.pyc [ 3s] + test 0 = 1 [ 3s] + ln -f /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/integration/__pycache__/__init__.cpython-38.opt-1.pyc /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/integration/__pycache__/__init__.cpython-38.pyc [ 3s] + read _file [ 3s] + test -z /home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages/etcd/tests/integration/__pycache__/__init__.cpython-38.opt-1.pyc [ 3s] + test -z '' [ 3s] + _target= [ 3s] + continue [ 3s] + read _file [ 3s] + /usr/lib/rpm/find-debuginfo.sh -j8 --build-id-seed 0.4.5-0 --unique-debug-suffix -0.4.5-0.x86_64 --unique-debug-src-base python-etcd-0.4.5-0.x86_64 --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 50000000 -S debugsourcefiles.list /home/abuild/rpmbuild/BUILD/python-etcd-0.4.5 [ 3s] + /usr/lib/rpm/brp-compress [ 3s] + /usr/lib/rpm/brp-suse [ 3s] calling /usr/lib/rpm/brp-suse.d/brp-05-permissions [ 3s] calling /usr/lib/rpm/brp-suse.d/brp-15-strip-debug [ 3s] calling /usr/lib/rpm/brp-suse.d/brp-25-symlink [ 3s] calling /usr/lib/rpm/brp-suse.d/brp-40-rootfs [ 3s] calling /usr/lib/rpm/brp-suse.d/brp-45-tcl [ 3s] calling /usr/lib/rpm/brp-suse.d/brp-75-ar [ 3s] Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.yaZcy3 [ 3s] + umask 022 [ 3s] + cd /home/abuild/rpmbuild/BUILD [ 3s] + cd python-etcd-0.4.5 [ 3s] + export PATH=/usr/sbin:/var/lib/build/ccache/bin:/usr/local/bin:/usr/bin:/bin [ 3s] + PATH=/usr/sbin:/var/lib/build/ccache/bin:/usr/local/bin:/usr/bin:/bin [ 3s] ++ '[' -f _current_flavor ']' [ 3s] ++ cat _current_flavor [ 3s] + python_flavor=python3 [ 3s] + '[' -z python3 ']' [ 3s] + '[' python3 '!=' python3 ']' [ 3s] + echo python3 [ 3s] + PYTHONPATH=/home/abuild/rpmbuild/BUILDROOT/python-etcd-0.4.5-0.x86_64/usr/lib/python3.8/site-packages [ 3s] + PYTHONDONTWRITEBYTECODE=1 [ 3s] + pytest-3.8 --ignore=_build.python2 --ignore=_build.python3 --ignore=_build.pypy3 -v src/etcd/tests [ 4s] ============================= test session starts ============================== [ 4s] platform linux -- Python 3.8.4, pytest-5.4.3, py-1.9.0, pluggy-0.13.1 -- /usr/bin/python3 [ 4s] cachedir: .pytest_cache [ 4s] rootdir: /home/abuild/rpmbuild/BUILD/python-etcd-0.4.5 [ 4s] collecting ... collected 148 items [ 4s] [ 6s] src/etcd/tests/test_auth.py::EtcdUserTest::test_names FAILED [ 0%] [ 6s] src/etcd/tests/test_auth.py::EtcdUserTest::test_read FAILED [ 1%] [ 8s] src/etcd/tests/test_auth.py::EtcdUserTest::test_write_and_delete FAILED [ 2%] [ 10s] src/etcd/tests/test_auth.py::EtcdRoleTest::test_names FAILED [ 2%] [ 10s] src/etcd/tests/test_auth.py::EtcdRoleTest::test_read FAILED [ 3%] [ 12s] src/etcd/tests/test_auth.py::EtcdRoleTest::test_write_and_delete FAILED [ 4%] [ 19s] src/etcd/tests/integration/test_simple.py::TestSimple::test_directory_ttl_update FAILED [ 4%] [ 19s] src/etcd/tests/integration/test_simple.py::TestSimple::test_get_set_delete FAILED [ 5%] [ 19s] src/etcd/tests/integration/test_simple.py::TestSimple::test_leader FAILED [ 6%] [ 19s] src/etcd/tests/integration/test_simple.py::TestSimple::test_machines FAILED [ 6%] [ 19s] src/etcd/tests/integration/test_simple.py::TestSimple::test_retrieve_subkeys FAILED [ 7%] [ 25s] src/etcd/tests/integration/test_simple.py::TestSimple::test_update FAILED [ 8%] [ 31s] src/etcd/tests/integration/test_simple.py::TestErrors::test_creating_already_existing_directory FAILED [ 8%] [ 31s] src/etcd/tests/integration/test_simple.py::TestErrors::test_is_not_a_file FAILED [ 9%] [ 37s] src/etcd/tests/integration/test_simple.py::TestErrors::test_test_and_set FAILED [ 10%] [ 43s] src/etcd/tests/integration/test_simple.py::TestClusterFunctions::test_reconnect FAILED [ 10%] [ 57s] src/etcd/tests/integration/test_simple.py::TestClusterFunctions::test_reconnect_not_allowed PASSED [ 11%] [ 67s] src/etcd/tests/integration/test_simple.py::TestClusterFunctions::test_reconnect_with_several_hosts_passed FAILED [ 12%] [ 85s] src/etcd/tests/integration/test_simple.py::TestClusterFunctions::test_reconnet_fails FAILED [ 12%] [ 91s] src/etcd/tests/integration/test_simple.py::TestWatch::test_watch FAILED [ 13%] [ 92s] src/etcd/tests/integration/test_simple.py::TestWatch::test_watch_generator FAILED [ 14%] [ 92s] src/etcd/tests/integration/test_simple.py::TestWatch::test_watch_indexed FAILED [ 14%] [ 98s] src/etcd/tests/integration/test_simple.py::TestWatch::test_watch_indexed_generator FAILED [ 15%] [ 105s] src/etcd/tests/integration/test_ssl.py::TestEncryptedAccess::test_get_set_authenticated FAILED [ 16%] [ 105s] src/etcd/tests/integration/test_ssl.py::TestEncryptedAccess::test_get_set_unauthenticated PASSED [ 16%] [ 105s] src/etcd/tests/integration/test_ssl.py::TestEncryptedAccess::test_get_set_unauthenticated_missing_ca SKIPPED [ 17%] [ 111s] src/etcd/tests/integration/test_ssl.py::TestEncryptedAccess::test_get_set_unauthenticated_with_ca PASSED [ 18%] [ 119s] src/etcd/tests/integration/test_ssl.py::TestClientAuthenticatedAccess::test_get_set_authenticated SKIPPED [ 18%] [ 125s] src/etcd/tests/integration/test_ssl.py::TestClientAuthenticatedAccess::test_get_set_unauthenticated PASSED [ 19%] [ 125s] src/etcd/tests/unit/test_client.py::TestClient::test__set_version_info PASSED [ 20%] [ 125s] src/etcd/tests/unit/test_client.py::TestClient::test_allow_reconnect PASSED [ 20%] [ 125s] src/etcd/tests/unit/test_client.py::TestClient::test_cluster_version_property PASSED [ 21%] [ 125s] src/etcd/tests/unit/test_client.py::TestClient::test_default_allow_redirect PASSED [ 22%] [ 125s] src/etcd/tests/unit/test_client.py::TestClient::test_default_base_uri PASSED [ 22%] [ 125s] src/etcd/tests/unit/test_client.py::TestClient::test_default_host PASSED [ 23%] [ 125s] src/etcd/tests/unit/test_client.py::TestClient::test_default_password PASSED [ 24%] [ 125s] src/etcd/tests/unit/test_client.py::TestClient::test_default_port PASSED [ 25%] [ 125s] src/etcd/tests/unit/test_client.py::TestClient::test_default_prefix PASSED [ 25%] [ 125s] src/etcd/tests/unit/test_client.py::TestClient::test_default_protocol PASSED [ 26%] [ 125s] src/etcd/tests/unit/test_client.py::TestClient::test_default_read_timeout PASSED [ 27%] [ 125s] src/etcd/tests/unit/test_client.py::TestClient::test_default_username PASSED [ 27%] [ 125s] src/etcd/tests/unit/test_client.py::TestClient::test_discover PASSED [ 28%] [ 125s] src/etcd/tests/unit/test_client.py::TestClient::test_get_headers_with_auth PASSED [ 29%] [ 125s] src/etcd/tests/unit/test_client.py::TestClient::test_get_headers_without_auth PASSED [ 29%] [ 125s] src/etcd/tests/unit/test_client.py::TestClient::test_instantiate PASSED [ 30%] [ 125s] src/etcd/tests/unit/test_client.py::TestClient::test_set_allow_redirect PASSED [ 31%] [ 125s] src/etcd/tests/unit/test_client.py::TestClient::test_set_base_uri PASSED [ 31%] [ 125s] src/etcd/tests/unit/test_client.py::TestClient::test_set_host PASSED [ 32%] [ 125s] src/etcd/tests/unit/test_client.py::TestClient::test_set_password_only PASSED [ 33%] [ 125s] src/etcd/tests/unit/test_client.py::TestClient::test_set_port PASSED [ 33%] [ 125s] src/etcd/tests/unit/test_client.py::TestClient::test_set_prefix PASSED [ 34%] [ 125s] src/etcd/tests/unit/test_client.py::TestClient::test_set_protocol PASSED [ 35%] [ 125s] src/etcd/tests/unit/test_client.py::TestClient::test_set_read_timeout PASSED [ 35%] [ 125s] src/etcd/tests/unit/test_client.py::TestClient::test_set_use_proxies PASSED [ 36%] [ 125s] src/etcd/tests/unit/test_client.py::TestClient::test_set_username_only PASSED [ 37%] [ 125s] src/etcd/tests/unit/test_client.py::TestClient::test_set_username_password PASSED [ 37%] [ 125s] src/etcd/tests/unit/test_client.py::TestClient::test_version_property PASSED [ 38%] [ 125s] src/etcd/tests/unit/test_lock.py::TestClientLock::test_acquire PASSED [ 39%] [ 125s] src/etcd/tests/unit/test_lock.py::TestClientLock::test_acquired PASSED [ 39%] [ 125s] src/etcd/tests/unit/test_lock.py::TestClientLock::test_acquired_no_timeout PASSED [ 40%] [ 126s] src/etcd/tests/unit/test_lock.py::TestClientLock::test_find_lock PASSED [ 41%] [ 126s] src/etcd/tests/unit/test_lock.py::TestClientLock::test_get_locker PASSED [ 41%] [ 126s] src/etcd/tests/unit/test_lock.py::TestClientLock::test_initialization PASSED [ 42%] [ 126s] src/etcd/tests/unit/test_lock.py::TestClientLock::test_is_acquired PASSED [ 43%] [ 126s] src/etcd/tests/unit/test_lock.py::TestClientLock::test_is_not_acquired PASSED [ 43%] [ 126s] src/etcd/tests/unit/test_lock.py::TestClientLock::test_lock_key PASSED [ 44%] [ 126s] src/etcd/tests/unit/test_lock.py::TestClientLock::test_release PASSED [ 45%] [ 126s] src/etcd/tests/unit/test_lock.py::TestClientLock::test_set_sequence PASSED [ 45%] [ 126s] src/etcd/tests/unit/test_old_request.py::TestClientRequest::test_delete PASSED [ 46%] [ 126s] src/etcd/tests/unit/test_old_request.py::TestClientRequest::test_get PASSED [ 47%] [ 126s] src/etcd/tests/unit/test_old_request.py::TestClientRequest::test_get_multi PASSED [ 47%] [ 126s] src/etcd/tests/unit/test_old_request.py::TestClientRequest::test_get_subdirs PASSED [ 48%] [ 126s] src/etcd/tests/unit/test_old_request.py::TestClientRequest::test_in PASSED [ 49%] [ 126s] src/etcd/tests/unit/test_old_request.py::TestClientRequest::test_index_watch PASSED [ 50%] [ 126s] src/etcd/tests/unit/test_old_request.py::TestClientRequest::test_not_in PASSED [ 50%] [ 126s] src/etcd/tests/unit/test_old_request.py::TestClientRequest::test_set PASSED [ 51%] [ 126s] src/etcd/tests/unit/test_old_request.py::TestClientRequest::test_simple_watch PASSED [ 52%] [ 126s] src/etcd/tests/unit/test_old_request.py::TestClientRequest::test_test_and_set PASSED [ 52%] [ 126s] src/etcd/tests/unit/test_old_request.py::TestClientRequest::test_test_and_test_failure PASSED [ 53%] [ 126s] src/etcd/tests/unit/test_old_request.py::TestEventGenerator::test_eternal_watch XFAIL [ 54%] [ 126s] src/etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_delete PASSED [ 54%] [ 126s] src/etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_get PASSED [ 55%] [ 126s] src/etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_get_error PASSED [ 56%] [ 126s] src/etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_get_error_invalid PASSED [ 56%] [ 126s] src/etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_get_error_request_invalid PASSED [ 57%] [ 126s] src/etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_get_error_unknown PASSED [ 58%] [ 126s] src/etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_put PASSED [ 58%] [ 126s] src/etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_set_not_file_error PASSED [ 59%] [ 126s] src/etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_test_and_set_error PASSED [ 60%] [ 126s] src/etcd/tests/unit/test_request.py::TestClientApiInternals::test_read_custom_timeout PASSED [ 60%] [ 126s] src/etcd/tests/unit/test_request.py::TestClientApiInternals::test_read_default_timeout PASSED [ 61%] [ 126s] src/etcd/tests/unit/test_request.py::TestClientApiInternals::test_read_no_timeout PASSED [ 62%] [ 126s] src/etcd/tests/unit/test_request.py::TestClientApiInternals::test_write_no_params PASSED [ 62%] [ 126s] src/etcd/tests/unit/test_request.py::TestClientApiInterface::test_compare_and_swap PASSED [ 63%] [ 126s] src/etcd/tests/unit/test_request.py::TestClientApiInterface::test_compare_and_swap_failure PASSED [ 64%] [ 126s] src/etcd/tests/unit/test_request.py::TestClientApiInterface::test_delete PASSED [ 64%] [ 126s] src/etcd/tests/unit/test_request.py::TestClientApiInterface::test_get_dir PASSED [ 65%] [ 126s] src/etcd/tests/unit/test_request.py::TestClientApiInterface::test_in PASSED [ 66%] [ 126s] src/etcd/tests/unit/test_request.py::TestClientApiInterface::test_leader PASSED [ 66%] [ 126s] src/etcd/tests/unit/test_request.py::TestClientApiInterface::test_leader_stats PASSED [ 67%] [ 126s] src/etcd/tests/unit/test_request.py::TestClientApiInterface::test_machines PASSED [ 68%] [ 126s] src/etcd/tests/unit/test_request.py::TestClientApiInterface::test_members PASSED [ 68%] [ 126s] src/etcd/tests/unit/test_request.py::TestClientApiInterface::test_newkey PASSED [ 69%] [ 126s] src/etcd/tests/unit/test_request.py::TestClientApiInterface::test_not_found_response PASSED [ 70%] [ 126s] src/etcd/tests/unit/test_request.py::TestClientApiInterface::test_not_in PASSED [ 70%] [ 126s] src/etcd/tests/unit/test_request.py::TestClientApiInterface::test_pop PASSED [ 71%] [ 126s] src/etcd/tests/unit/test_request.py::TestClientApiInterface::test_read PASSED [ 72%] [ 126s] src/etcd/tests/unit/test_request.py::TestClientApiInterface::test_refresh PASSED [ 72%] [ 126s] src/etcd/tests/unit/test_request.py::TestClientApiInterface::test_self_stats PASSED [ 73%] [ 126s] src/etcd/tests/unit/test_request.py::TestClientApiInterface::test_set_append PASSED [ 74%] [ 126s] src/etcd/tests/unit/test_request.py::TestClientApiInterface::test_set_dir_with_value PASSED [ 75%] [ 126s] src/etcd/tests/unit/test_request.py::TestClientApiInterface::test_set_plain PASSED [ 75%] [ 126s] src/etcd/tests/unit/test_request.py::TestClientApiInterface::test_update PASSED [ 76%] [ 126s] src/etcd/tests/unit/test_request.py::TestClientApiInterface::test_use_proxies PASSED [ 77%] [ 126s] src/etcd/tests/unit/test_request.py::TestClientApiInterface::test_watch PASSED [ 77%] [ 126s] src/etcd/tests/unit/test_request.py::TestClientApiInterface::test_watch_index PASSED [ 78%] [ 126s] src/etcd/tests/unit/test_request.py::TestClientRequest::test_api_method_not_supported PASSED [ 79%] [ 126s] src/etcd/tests/unit/test_request.py::TestClientRequest::test_compare_and_swap PASSED [ 79%] [ 127s] src/etcd/tests/unit/test_request.py::TestClientRequest::test_compare_and_swap_failure PASSED [ 80%] [ 127s] src/etcd/tests/unit/test_request.py::TestClientRequest::test_delete PASSED [ 81%] [ 127s] src/etcd/tests/unit/test_request.py::TestClientRequest::test_get_dir PASSED [ 81%] [ 127s] src/etcd/tests/unit/test_request.py::TestClientRequest::test_in PASSED [ 82%] [ 127s] src/etcd/tests/unit/test_request.py::TestClientRequest::test_leader PASSED [ 83%] [ 127s] src/etcd/tests/unit/test_request.py::TestClientRequest::test_leader_stats PASSED [ 83%] [ 127s] src/etcd/tests/unit/test_request.py::TestClientRequest::test_machines PASSED [ 84%] [ 127s] src/etcd/tests/unit/test_request.py::TestClientRequest::test_members PASSED [ 85%] [ 127s] src/etcd/tests/unit/test_request.py::TestClientRequest::test_newkey PASSED [ 85%] [ 127s] src/etcd/tests/unit/test_request.py::TestClientRequest::test_not_found_response PASSED [ 86%] [ 127s] src/etcd/tests/unit/test_request.py::TestClientRequest::test_not_in PASSED [ 87%] [ 127s] src/etcd/tests/unit/test_request.py::TestClientRequest::test_path_without_trailing_slash PASSED [ 87%] [ 127s] src/etcd/tests/unit/test_request.py::TestClientRequest::test_pop PASSED [ 88%] [ 127s] src/etcd/tests/unit/test_request.py::TestClientRequest::test_read PASSED [ 89%] [ 127s] src/etcd/tests/unit/test_request.py::TestClientRequest::test_read_cluster_id_changed PASSED [ 89%] [ 127s] src/etcd/tests/unit/test_request.py::TestClientRequest::test_read_connection_error PASSED [ 90%] [ 127s] src/etcd/tests/unit/test_request.py::TestClientRequest::test_refresh PASSED [ 91%] [ 127s] src/etcd/tests/unit/test_request.py::TestClientRequest::test_self_stats PASSED [ 91%] [ 127s] src/etcd/tests/unit/test_request.py::TestClientRequest::test_set_append PASSED [ 92%] [ 127s] src/etcd/tests/unit/test_request.py::TestClientRequest::test_set_dir_with_value PASSED [ 93%] [ 127s] src/etcd/tests/unit/test_request.py::TestClientRequest::test_set_plain PASSED [ 93%] [ 127s] src/etcd/tests/unit/test_request.py::TestClientRequest::test_update PASSED [ 94%] [ 127s] src/etcd/tests/unit/test_request.py::TestClientRequest::test_update_fails PASSED [ 95%] [ 127s] src/etcd/tests/unit/test_request.py::TestClientRequest::test_use_proxies PASSED [ 95%] [ 127s] src/etcd/tests/unit/test_request.py::TestClientRequest::test_watch PASSED [ 96%] [ 127s] src/etcd/tests/unit/test_request.py::TestClientRequest::test_watch_index PASSED [ 97%] [ 127s] src/etcd/tests/unit/test_request.py::TestClientRequest::test_watch_timeout PASSED [ 97%] [ 127s] src/etcd/tests/unit/test_result.py::TestEtcdResult::test_get_subtree_1_level PASSED [ 98%] [ 127s] src/etcd/tests/unit/test_result.py::TestEtcdResult::test_get_subtree_2_level PASSED [ 99%] [ 127s] src/etcd/tests/unit/test_result.py::TestEtcdResult::test_get_subtree_3_level PASSED [100%] [ 127s] [ 127s] =================================== FAILURES =================================== [ 127s] ___________________________ EtcdUserTest.test_names ____________________________ [ 127s] [ 127s] self = [ 127s] [ 127s] def read(self): [ 127s] try: [ 127s] > response = self.client.api_execute(self.uri, self.client._MGET) [ 127s] [ 127s] src/etcd/auth.py:27: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] path = '/v2/auth/users/root', method = 'GET', params = None, timeout = 60 [ 127s] [ 127s] @wraps(payload) [ 127s] def wrapper(self, path, method, params=None, timeout=None): [ 127s] response = False [ 127s] [ 127s] if timeout is None: [ 127s] timeout = self.read_timeout [ 127s] [ 127s] if timeout == 0: [ 127s] timeout = None [ 127s] [ 127s] if not path.startswith('/'): [ 127s] raise ValueError('Path does not start with /') [ 127s] [ 127s] while not response: [ 127s] some_request_failed = False [ 127s] try: [ 127s] response = payload(self, path, method, [ 127s] params=params, timeout=timeout) [ 127s] # Check the cluster ID hasn't changed under us. We use [ 127s] # preload_content=False above so we can read the headers [ 127s] # before we wait for the content of a watch. [ 127s] self._check_cluster_id(response) [ 127s] # Now force the data to be preloaded in order to trigger any [ 127s] # IO-related errors in this method rather than when we try to [ 127s] # access it later. [ 127s] _ = response.data [ 127s] # urllib3 doesn't wrap all httplib exceptions and earlier versions [ 127s] # don't wrap socket errors either. [ 127s] except (HTTPError, HTTPException, socket.error) as e: [ 127s] if (isinstance(params, dict) and [ 127s] params.get("wait") == "true" and [ 127s] isinstance(e, ReadTimeoutError)): [ 127s] _log.debug("Watch timed out.") [ 127s] raise etcd.EtcdWatchTimedOut( [ 127s] "Watch timed out: %r" % e, [ 127s] cause=e [ 127s] ) [ 127s] _log.error("Request to server %s failed: %r", [ 127s] self._base_uri, e) [ 127s] if self._allow_reconnect: [ 127s] _log.info("Reconnection allowed, looking for another " [ 127s] "server.") [ 127s] # _next_server() raises EtcdException if there are no [ 127s] # machines left to try, breaking out of the loop. [ 127s] self._base_uri = self._next_server(cause=e) [ 127s] some_request_failed = True [ 127s] [ 127s] # if exception is raised on _ = response.data [ 127s] # the condition for while loop will be False [ 127s] # but we should retry [ 127s] response = False [ 127s] else: [ 127s] _log.debug("Reconnection disabled, giving up.") [ 127s] raise etcd.EtcdConnectionFailed( [ 127s] "Connection to etcd failed due to %r" % e, [ 127s] cause=e [ 127s] ) [ 127s] except etcd.EtcdClusterIdChanged as e: [ 127s] _log.warning(e) [ 127s] raise [ 127s] except: [ 127s] _log.exception("Unexpected request failure, re-raising.") [ 127s] raise [ 127s] [ 127s] if some_request_failed: [ 127s] if not self._use_proxies: [ 127s] # The cluster may have changed since last invocation [ 127s] self._machines_cache = self.machines [ 127s] self._machines_cache.remove(self._base_uri) [ 127s] > return self._handle_server_response(response) [ 127s] [ 127s] src/etcd/client.py:907: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] response = [ 127s] [ 127s] def _handle_server_response(self, response): [ 127s] """ Handles the server response """ [ 127s] if response.status in [200, 201]: [ 127s] return response [ 127s] [ 127s] else: [ 127s] resp = response.data.decode('utf-8') [ 127s] [ 127s] # throw the appropriate exception [ 127s] try: [ 127s] r = json.loads(resp) [ 127s] r['status'] = response.status [ 127s] except (TypeError, ValueError): [ 127s] # Bad JSON, make a response locally. [ 127s] r = {"message": "Bad response", [ 127s] "cause": str(resp)} [ 127s] > etcd.EtcdError.handle(r) [ 127s] [ 127s] src/etcd/client.py:987: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] cls = [ 127s] payload = {'cause': '404 page not found\n', 'message': 'Bad response'} [ 127s] [ 127s] @classmethod [ 127s] def handle(cls, payload): [ 127s] """ [ 127s] Decodes the error and throws the appropriate error message [ 127s] [ 127s] :param payload: The decoded JSON error payload as a dict. [ 127s] """ [ 127s] error_code = payload.get("errorCode") [ 127s] message = payload.get("message") [ 127s] cause = payload.get("cause") [ 127s] msg = '{} : {}'.format(message, cause) [ 127s] status = payload.get("status") [ 127s] # Some general status handling, as [ 127s] # not all endpoints return coherent error messages [ 127s] if status == 404: [ 127s] error_code = 100 [ 127s] elif status == 401: [ 127s] error_code = 110 [ 127s] exc = cls.error_exceptions.get(error_code, EtcdException) [ 127s] if issubclass(exc, EtcdException): [ 127s] > raise exc(msg, payload) [ 127s] E etcd.EtcdException: Bad response : 404 page not found [ 127s] [ 127s] src/etcd/__init__.py:306: EtcdException [ 127s] [ 127s] During handling of the above exception, another exception occurred: [ 127s] [ 127s] self = [ 127s] [ 127s] def setUp(self): [ 127s] # Sets up the root user, toggles auth [ 127s] u = auth.EtcdUser(self.client, 'root') [ 127s] u.password = 'testpass' [ 127s] > u.write() [ 127s] [ 127s] src/etcd/tests/test_auth.py:13: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] src/etcd/auth.py:46: in write [ 127s] r.read() [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] [ 127s] def read(self): [ 127s] try: [ 127s] response = self.client.api_execute(self.uri, self.client._MGET) [ 127s] except etcd.EtcdInsufficientPermissions as e: [ 127s] _log.error("Any action on the authorization requires the root role") [ 127s] raise [ 127s] except etcd.EtcdKeyNotFound: [ 127s] _log.info("%s '%s' not found", self.entity, self.name) [ 127s] raise [ 127s] except Exception as e: [ 127s] _log.error("Failed to fetch %s in %s%s: %r", [ 127s] self.entity, self.client._base_uri, [ 127s] self.client.version_prefix, e) [ 127s] > raise etcd.EtcdException( [ 127s] "Could not fetch {} '{}'".format(self.entity, self.name)) [ 127s] E etcd.EtcdException: Could not fetch user 'root' [ 127s] [ 127s] src/etcd/auth.py:38: EtcdException [ 127s] ---------------------------- Captured stderr setup ----------------------------- [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:44:50.638018 I | etcdmain: etcd Version: 3.4.3 [ 127s] 2020-08-12 19:44:50.638044 I | etcdmain: Git SHA: Not provided (use ./build instead of go build) [ 127s] 2020-08-12 19:44:50.638051 I | etcdmain: Go Version: go1.12.17 [ 127s] 2020-08-12 19:44:50.638056 I | etcdmain: Go OS/Arch: linux/amd64 [ 127s] 2020-08-12 19:44:50.638062 I | etcdmain: setting maximum number of CPUs to 8, total number of available CPUs is 8 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:44:50.638245 I | embed: name = test-node-0 [ 127s] 2020-08-12 19:44:50.638257 I | embed: data dir = /tmp/python-etcdmkct__zk/python-etcd.0-gqcum372 [ 127s] 2020-08-12 19:44:50.638263 I | embed: member dir = /tmp/python-etcdmkct__zk/python-etcd.0-gqcum372/member [ 127s] 2020-08-12 19:44:50.638268 I | embed: heartbeat = 100ms [ 127s] 2020-08-12 19:44:50.638273 I | embed: election = 1000ms [ 127s] 2020-08-12 19:44:50.638278 I | embed: snapshot count = 100000 [ 127s] 2020-08-12 19:44:50.638286 I | embed: advertise client URLs = http://127.0.0.1:6001 [ 127s] 2020-08-12 19:44:50.670540 I | etcdserver: starting member 1083aa28485d3319 in cluster b5408f6fd0e0239a [ 127s] raft2020/08/12 19:44:50 INFO: 1083aa28485d3319 switched to configuration voters=() [ 127s] raft2020/08/12 19:44:50 INFO: 1083aa28485d3319 became follower at term 0 [ 127s] raft2020/08/12 19:44:50 INFO: newRaft 1083aa28485d3319 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0] [ 127s] raft2020/08/12 19:44:50 INFO: 1083aa28485d3319 became follower at term 1 [ 127s] raft2020/08/12 19:44:50 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153) [ 127s] 2020-08-12 19:44:50.686369 W | auth: simple token is not cryptographically signed [ 127s] 2020-08-12 19:44:50.699548 I | etcdserver: starting server... [version: 3.4.3, cluster version: to_be_decided] [ 127s] 2020-08-12 19:44:50.700089 I | etcdserver: 1083aa28485d3319 as single-node; fast-forwarding 9 ticks (election ticks 10) [ 127s] raft2020/08/12 19:44:50 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153) [ 127s] 2020-08-12 19:44:50.700815 I | etcdserver/membership: added member 1083aa28485d3319 [http://127.0.0.1:8001] to cluster b5408f6fd0e0239a [ 127s] 2020-08-12 19:44:50.704610 I | embed: listening for peers on 127.0.0.1:8001 [ 127s] raft2020/08/12 19:44:50 INFO: 1083aa28485d3319 is starting a new election at term 1 [ 127s] raft2020/08/12 19:44:50 INFO: 1083aa28485d3319 became candidate at term 2 [ 127s] raft2020/08/12 19:44:50 INFO: 1083aa28485d3319 received MsgVoteResp from 1083aa28485d3319 at term 2 [ 127s] raft2020/08/12 19:44:50 INFO: 1083aa28485d3319 became leader at term 2 [ 127s] raft2020/08/12 19:44:50 INFO: raft.node: 1083aa28485d3319 elected leader 1083aa28485d3319 at term 2 [ 127s] 2020-08-12 19:44:50.971859 I | embed: ready to serve client requests [ 127s] 2020-08-12 19:44:50.972129 I | etcdserver: published {Name:test-node-0 ClientURLs:[http://127.0.0.1:6001]} to cluster b5408f6fd0e0239a [ 127s] 2020-08-12 19:44:50.972161 I | etcdserver: setting up the initial cluster version to 3.4 [ 127s] 2020-08-12 19:44:50.972720 N | embed: serving insecure client requests on 127.0.0.1:6001, this is strongly discouraged! [ 127s] 2020-08-12 19:44:50.974669 N | etcdserver/membership: set the initial cluster version to 3.4 [ 127s] 2020-08-12 19:44:50.974781 I | etcdserver/api: enabled capabilities for version 3.4 [ 127s] ------------------------------ Captured log call ------------------------------- [ 127s] WARNING etcd.client:client.py:956 etcd response did not contain a cluster ID [ 127s] ERROR etcd.auth:auth.py:35 Failed to fetch user in http://127.0.0.1:6001/v2: EtcdException('Bad response : 404 page not found\n') [ 127s] ____________________________ EtcdUserTest.test_read ____________________________ [ 127s] [ 127s] self = [ 127s] [ 127s] def read(self): [ 127s] try: [ 127s] > response = self.client.api_execute(self.uri, self.client._MGET) [ 127s] [ 127s] src/etcd/auth.py:27: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] path = '/v2/auth/users/root', method = 'GET', params = None, timeout = 60 [ 127s] [ 127s] @wraps(payload) [ 127s] def wrapper(self, path, method, params=None, timeout=None): [ 127s] response = False [ 127s] [ 127s] if timeout is None: [ 127s] timeout = self.read_timeout [ 127s] [ 127s] if timeout == 0: [ 127s] timeout = None [ 127s] [ 127s] if not path.startswith('/'): [ 127s] raise ValueError('Path does not start with /') [ 127s] [ 127s] while not response: [ 127s] some_request_failed = False [ 127s] try: [ 127s] response = payload(self, path, method, [ 127s] params=params, timeout=timeout) [ 127s] # Check the cluster ID hasn't changed under us. We use [ 127s] # preload_content=False above so we can read the headers [ 127s] # before we wait for the content of a watch. [ 127s] self._check_cluster_id(response) [ 127s] # Now force the data to be preloaded in order to trigger any [ 127s] # IO-related errors in this method rather than when we try to [ 127s] # access it later. [ 127s] _ = response.data [ 127s] # urllib3 doesn't wrap all httplib exceptions and earlier versions [ 127s] # don't wrap socket errors either. [ 127s] except (HTTPError, HTTPException, socket.error) as e: [ 127s] if (isinstance(params, dict) and [ 127s] params.get("wait") == "true" and [ 127s] isinstance(e, ReadTimeoutError)): [ 127s] _log.debug("Watch timed out.") [ 127s] raise etcd.EtcdWatchTimedOut( [ 127s] "Watch timed out: %r" % e, [ 127s] cause=e [ 127s] ) [ 127s] _log.error("Request to server %s failed: %r", [ 127s] self._base_uri, e) [ 127s] if self._allow_reconnect: [ 127s] _log.info("Reconnection allowed, looking for another " [ 127s] "server.") [ 127s] # _next_server() raises EtcdException if there are no [ 127s] # machines left to try, breaking out of the loop. [ 127s] self._base_uri = self._next_server(cause=e) [ 127s] some_request_failed = True [ 127s] [ 127s] # if exception is raised on _ = response.data [ 127s] # the condition for while loop will be False [ 127s] # but we should retry [ 127s] response = False [ 127s] else: [ 127s] _log.debug("Reconnection disabled, giving up.") [ 127s] raise etcd.EtcdConnectionFailed( [ 127s] "Connection to etcd failed due to %r" % e, [ 127s] cause=e [ 127s] ) [ 127s] except etcd.EtcdClusterIdChanged as e: [ 127s] _log.warning(e) [ 127s] raise [ 127s] except: [ 127s] _log.exception("Unexpected request failure, re-raising.") [ 127s] raise [ 127s] [ 127s] if some_request_failed: [ 127s] if not self._use_proxies: [ 127s] # The cluster may have changed since last invocation [ 127s] self._machines_cache = self.machines [ 127s] self._machines_cache.remove(self._base_uri) [ 127s] > return self._handle_server_response(response) [ 127s] [ 127s] src/etcd/client.py:907: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] response = [ 127s] [ 127s] def _handle_server_response(self, response): [ 127s] """ Handles the server response """ [ 127s] if response.status in [200, 201]: [ 127s] return response [ 127s] [ 127s] else: [ 127s] resp = response.data.decode('utf-8') [ 127s] [ 127s] # throw the appropriate exception [ 127s] try: [ 127s] r = json.loads(resp) [ 127s] r['status'] = response.status [ 127s] except (TypeError, ValueError): [ 127s] # Bad JSON, make a response locally. [ 127s] r = {"message": "Bad response", [ 127s] "cause": str(resp)} [ 127s] > etcd.EtcdError.handle(r) [ 127s] [ 127s] src/etcd/client.py:987: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] cls = [ 127s] payload = {'cause': '404 page not found\n', 'message': 'Bad response'} [ 127s] [ 127s] @classmethod [ 127s] def handle(cls, payload): [ 127s] """ [ 127s] Decodes the error and throws the appropriate error message [ 127s] [ 127s] :param payload: The decoded JSON error payload as a dict. [ 127s] """ [ 127s] error_code = payload.get("errorCode") [ 127s] message = payload.get("message") [ 127s] cause = payload.get("cause") [ 127s] msg = '{} : {}'.format(message, cause) [ 127s] status = payload.get("status") [ 127s] # Some general status handling, as [ 127s] # not all endpoints return coherent error messages [ 127s] if status == 404: [ 127s] error_code = 100 [ 127s] elif status == 401: [ 127s] error_code = 110 [ 127s] exc = cls.error_exceptions.get(error_code, EtcdException) [ 127s] if issubclass(exc, EtcdException): [ 127s] > raise exc(msg, payload) [ 127s] E etcd.EtcdException: Bad response : 404 page not found [ 127s] [ 127s] src/etcd/__init__.py:306: EtcdException [ 127s] [ 127s] During handling of the above exception, another exception occurred: [ 127s] [ 127s] self = [ 127s] [ 127s] def setUp(self): [ 127s] # Sets up the root user, toggles auth [ 127s] u = auth.EtcdUser(self.client, 'root') [ 127s] u.password = 'testpass' [ 127s] > u.write() [ 127s] [ 127s] src/etcd/tests/test_auth.py:13: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] src/etcd/auth.py:46: in write [ 127s] r.read() [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] [ 127s] def read(self): [ 127s] try: [ 127s] response = self.client.api_execute(self.uri, self.client._MGET) [ 127s] except etcd.EtcdInsufficientPermissions as e: [ 127s] _log.error("Any action on the authorization requires the root role") [ 127s] raise [ 127s] except etcd.EtcdKeyNotFound: [ 127s] _log.info("%s '%s' not found", self.entity, self.name) [ 127s] raise [ 127s] except Exception as e: [ 127s] _log.error("Failed to fetch %s in %s%s: %r", [ 127s] self.entity, self.client._base_uri, [ 127s] self.client.version_prefix, e) [ 127s] > raise etcd.EtcdException( [ 127s] "Could not fetch {} '{}'".format(self.entity, self.name)) [ 127s] E etcd.EtcdException: Could not fetch user 'root' [ 127s] [ 127s] src/etcd/auth.py:38: EtcdException [ 127s] ------------------------------ Captured log call ------------------------------- [ 127s] WARNING etcd.client:client.py:956 etcd response did not contain a cluster ID [ 127s] ERROR etcd.auth:auth.py:35 Failed to fetch user in http://127.0.0.1:6001/v2: EtcdException('Bad response : 404 page not found\n') [ 127s] ______________________ EtcdUserTest.test_write_and_delete ______________________ [ 127s] [ 127s] self = [ 127s] [ 127s] def read(self): [ 127s] try: [ 127s] > response = self.client.api_execute(self.uri, self.client._MGET) [ 127s] [ 127s] src/etcd/auth.py:27: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] path = '/v2/auth/users/root', method = 'GET', params = None, timeout = 60 [ 127s] [ 127s] @wraps(payload) [ 127s] def wrapper(self, path, method, params=None, timeout=None): [ 127s] response = False [ 127s] [ 127s] if timeout is None: [ 127s] timeout = self.read_timeout [ 127s] [ 127s] if timeout == 0: [ 127s] timeout = None [ 127s] [ 127s] if not path.startswith('/'): [ 127s] raise ValueError('Path does not start with /') [ 127s] [ 127s] while not response: [ 127s] some_request_failed = False [ 127s] try: [ 127s] response = payload(self, path, method, [ 127s] params=params, timeout=timeout) [ 127s] # Check the cluster ID hasn't changed under us. We use [ 127s] # preload_content=False above so we can read the headers [ 127s] # before we wait for the content of a watch. [ 127s] self._check_cluster_id(response) [ 127s] # Now force the data to be preloaded in order to trigger any [ 127s] # IO-related errors in this method rather than when we try to [ 127s] # access it later. [ 127s] _ = response.data [ 127s] # urllib3 doesn't wrap all httplib exceptions and earlier versions [ 127s] # don't wrap socket errors either. [ 127s] except (HTTPError, HTTPException, socket.error) as e: [ 127s] if (isinstance(params, dict) and [ 127s] params.get("wait") == "true" and [ 127s] isinstance(e, ReadTimeoutError)): [ 127s] _log.debug("Watch timed out.") [ 127s] raise etcd.EtcdWatchTimedOut( [ 127s] "Watch timed out: %r" % e, [ 127s] cause=e [ 127s] ) [ 127s] _log.error("Request to server %s failed: %r", [ 127s] self._base_uri, e) [ 127s] if self._allow_reconnect: [ 127s] _log.info("Reconnection allowed, looking for another " [ 127s] "server.") [ 127s] # _next_server() raises EtcdException if there are no [ 127s] # machines left to try, breaking out of the loop. [ 127s] self._base_uri = self._next_server(cause=e) [ 127s] some_request_failed = True [ 127s] [ 127s] # if exception is raised on _ = response.data [ 127s] # the condition for while loop will be False [ 127s] # but we should retry [ 127s] response = False [ 127s] else: [ 127s] _log.debug("Reconnection disabled, giving up.") [ 127s] raise etcd.EtcdConnectionFailed( [ 127s] "Connection to etcd failed due to %r" % e, [ 127s] cause=e [ 127s] ) [ 127s] except etcd.EtcdClusterIdChanged as e: [ 127s] _log.warning(e) [ 127s] raise [ 127s] except: [ 127s] _log.exception("Unexpected request failure, re-raising.") [ 127s] raise [ 127s] [ 127s] if some_request_failed: [ 127s] if not self._use_proxies: [ 127s] # The cluster may have changed since last invocation [ 127s] self._machines_cache = self.machines [ 127s] self._machines_cache.remove(self._base_uri) [ 127s] > return self._handle_server_response(response) [ 127s] [ 127s] src/etcd/client.py:907: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] response = [ 127s] [ 127s] def _handle_server_response(self, response): [ 127s] """ Handles the server response """ [ 127s] if response.status in [200, 201]: [ 127s] return response [ 127s] [ 127s] else: [ 127s] resp = response.data.decode('utf-8') [ 127s] [ 127s] # throw the appropriate exception [ 127s] try: [ 127s] r = json.loads(resp) [ 127s] r['status'] = response.status [ 127s] except (TypeError, ValueError): [ 127s] # Bad JSON, make a response locally. [ 127s] r = {"message": "Bad response", [ 127s] "cause": str(resp)} [ 127s] > etcd.EtcdError.handle(r) [ 127s] [ 127s] src/etcd/client.py:987: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] cls = [ 127s] payload = {'cause': '404 page not found\n', 'message': 'Bad response'} [ 127s] [ 127s] @classmethod [ 127s] def handle(cls, payload): [ 127s] """ [ 127s] Decodes the error and throws the appropriate error message [ 127s] [ 127s] :param payload: The decoded JSON error payload as a dict. [ 127s] """ [ 127s] error_code = payload.get("errorCode") [ 127s] message = payload.get("message") [ 127s] cause = payload.get("cause") [ 127s] msg = '{} : {}'.format(message, cause) [ 127s] status = payload.get("status") [ 127s] # Some general status handling, as [ 127s] # not all endpoints return coherent error messages [ 127s] if status == 404: [ 127s] error_code = 100 [ 127s] elif status == 401: [ 127s] error_code = 110 [ 127s] exc = cls.error_exceptions.get(error_code, EtcdException) [ 127s] if issubclass(exc, EtcdException): [ 127s] > raise exc(msg, payload) [ 127s] E etcd.EtcdException: Bad response : 404 page not found [ 127s] [ 127s] src/etcd/__init__.py:306: EtcdException [ 127s] [ 127s] During handling of the above exception, another exception occurred: [ 127s] [ 127s] self = [ 127s] [ 127s] def setUp(self): [ 127s] # Sets up the root user, toggles auth [ 127s] u = auth.EtcdUser(self.client, 'root') [ 127s] u.password = 'testpass' [ 127s] > u.write() [ 127s] [ 127s] src/etcd/tests/test_auth.py:13: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] src/etcd/auth.py:46: in write [ 127s] r.read() [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] [ 127s] def read(self): [ 127s] try: [ 127s] response = self.client.api_execute(self.uri, self.client._MGET) [ 127s] except etcd.EtcdInsufficientPermissions as e: [ 127s] _log.error("Any action on the authorization requires the root role") [ 127s] raise [ 127s] except etcd.EtcdKeyNotFound: [ 127s] _log.info("%s '%s' not found", self.entity, self.name) [ 127s] raise [ 127s] except Exception as e: [ 127s] _log.error("Failed to fetch %s in %s%s: %r", [ 127s] self.entity, self.client._base_uri, [ 127s] self.client.version_prefix, e) [ 127s] > raise etcd.EtcdException( [ 127s] "Could not fetch {} '{}'".format(self.entity, self.name)) [ 127s] E etcd.EtcdException: Could not fetch user 'root' [ 127s] [ 127s] src/etcd/auth.py:38: EtcdException [ 127s] ------------------------------ Captured log call ------------------------------- [ 127s] WARNING etcd.client:client.py:956 etcd response did not contain a cluster ID [ 127s] ERROR etcd.auth:auth.py:35 Failed to fetch user in http://127.0.0.1:6001/v2: EtcdException('Bad response : 404 page not found\n') [ 127s] ___________________________ EtcdRoleTest.test_names ____________________________ [ 127s] [ 127s] self = [ 127s] [ 127s] def read(self): [ 127s] try: [ 127s] > response = self.client.api_execute(self.uri, self.client._MGET) [ 127s] [ 127s] src/etcd/auth.py:27: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] path = '/v2/auth/users/root', method = 'GET', params = None, timeout = 60 [ 127s] [ 127s] @wraps(payload) [ 127s] def wrapper(self, path, method, params=None, timeout=None): [ 127s] response = False [ 127s] [ 127s] if timeout is None: [ 127s] timeout = self.read_timeout [ 127s] [ 127s] if timeout == 0: [ 127s] timeout = None [ 127s] [ 127s] if not path.startswith('/'): [ 127s] raise ValueError('Path does not start with /') [ 127s] [ 127s] while not response: [ 127s] some_request_failed = False [ 127s] try: [ 127s] response = payload(self, path, method, [ 127s] params=params, timeout=timeout) [ 127s] # Check the cluster ID hasn't changed under us. We use [ 127s] # preload_content=False above so we can read the headers [ 127s] # before we wait for the content of a watch. [ 127s] self._check_cluster_id(response) [ 127s] # Now force the data to be preloaded in order to trigger any [ 127s] # IO-related errors in this method rather than when we try to [ 127s] # access it later. [ 127s] _ = response.data [ 127s] # urllib3 doesn't wrap all httplib exceptions and earlier versions [ 127s] # don't wrap socket errors either. [ 127s] except (HTTPError, HTTPException, socket.error) as e: [ 127s] if (isinstance(params, dict) and [ 127s] params.get("wait") == "true" and [ 127s] isinstance(e, ReadTimeoutError)): [ 127s] _log.debug("Watch timed out.") [ 127s] raise etcd.EtcdWatchTimedOut( [ 127s] "Watch timed out: %r" % e, [ 127s] cause=e [ 127s] ) [ 127s] _log.error("Request to server %s failed: %r", [ 127s] self._base_uri, e) [ 127s] if self._allow_reconnect: [ 127s] _log.info("Reconnection allowed, looking for another " [ 127s] "server.") [ 127s] # _next_server() raises EtcdException if there are no [ 127s] # machines left to try, breaking out of the loop. [ 127s] self._base_uri = self._next_server(cause=e) [ 127s] some_request_failed = True [ 127s] [ 127s] # if exception is raised on _ = response.data [ 127s] # the condition for while loop will be False [ 127s] # but we should retry [ 127s] response = False [ 127s] else: [ 127s] _log.debug("Reconnection disabled, giving up.") [ 127s] raise etcd.EtcdConnectionFailed( [ 127s] "Connection to etcd failed due to %r" % e, [ 127s] cause=e [ 127s] ) [ 127s] except etcd.EtcdClusterIdChanged as e: [ 127s] _log.warning(e) [ 127s] raise [ 127s] except: [ 127s] _log.exception("Unexpected request failure, re-raising.") [ 127s] raise [ 127s] [ 127s] if some_request_failed: [ 127s] if not self._use_proxies: [ 127s] # The cluster may have changed since last invocation [ 127s] self._machines_cache = self.machines [ 127s] self._machines_cache.remove(self._base_uri) [ 127s] > return self._handle_server_response(response) [ 127s] [ 127s] src/etcd/client.py:907: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] response = [ 127s] [ 127s] def _handle_server_response(self, response): [ 127s] """ Handles the server response """ [ 127s] if response.status in [200, 201]: [ 127s] return response [ 127s] [ 127s] else: [ 127s] resp = response.data.decode('utf-8') [ 127s] [ 127s] # throw the appropriate exception [ 127s] try: [ 127s] r = json.loads(resp) [ 127s] r['status'] = response.status [ 127s] except (TypeError, ValueError): [ 127s] # Bad JSON, make a response locally. [ 127s] r = {"message": "Bad response", [ 127s] "cause": str(resp)} [ 127s] > etcd.EtcdError.handle(r) [ 127s] [ 127s] src/etcd/client.py:987: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] cls = [ 127s] payload = {'cause': '404 page not found\n', 'message': 'Bad response'} [ 127s] [ 127s] @classmethod [ 127s] def handle(cls, payload): [ 127s] """ [ 127s] Decodes the error and throws the appropriate error message [ 127s] [ 127s] :param payload: The decoded JSON error payload as a dict. [ 127s] """ [ 127s] error_code = payload.get("errorCode") [ 127s] message = payload.get("message") [ 127s] cause = payload.get("cause") [ 127s] msg = '{} : {}'.format(message, cause) [ 127s] status = payload.get("status") [ 127s] # Some general status handling, as [ 127s] # not all endpoints return coherent error messages [ 127s] if status == 404: [ 127s] error_code = 100 [ 127s] elif status == 401: [ 127s] error_code = 110 [ 127s] exc = cls.error_exceptions.get(error_code, EtcdException) [ 127s] if issubclass(exc, EtcdException): [ 127s] > raise exc(msg, payload) [ 127s] E etcd.EtcdException: Bad response : 404 page not found [ 127s] [ 127s] src/etcd/__init__.py:306: EtcdException [ 127s] [ 127s] During handling of the above exception, another exception occurred: [ 127s] [ 127s] self = [ 127s] [ 127s] def setUp(self): [ 127s] # Sets up the root user, toggles auth [ 127s] u = auth.EtcdUser(self.client, 'root') [ 127s] u.password = 'testpass' [ 127s] > u.write() [ 127s] [ 127s] src/etcd/tests/test_auth.py:13: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] src/etcd/auth.py:46: in write [ 127s] r.read() [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] [ 127s] def read(self): [ 127s] try: [ 127s] response = self.client.api_execute(self.uri, self.client._MGET) [ 127s] except etcd.EtcdInsufficientPermissions as e: [ 127s] _log.error("Any action on the authorization requires the root role") [ 127s] raise [ 127s] except etcd.EtcdKeyNotFound: [ 127s] _log.info("%s '%s' not found", self.entity, self.name) [ 127s] raise [ 127s] except Exception as e: [ 127s] _log.error("Failed to fetch %s in %s%s: %r", [ 127s] self.entity, self.client._base_uri, [ 127s] self.client.version_prefix, e) [ 127s] > raise etcd.EtcdException( [ 127s] "Could not fetch {} '{}'".format(self.entity, self.name)) [ 127s] E etcd.EtcdException: Could not fetch user 'root' [ 127s] [ 127s] src/etcd/auth.py:38: EtcdException [ 127s] ---------------------------- Captured stderr setup ----------------------------- [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:44:54.847206 I | etcdmain: etcd Version: 3.4.3 [ 127s] 2020-08-12 19:44:54.847247 I | etcdmain: Git SHA: Not provided (use ./build instead of go build) [ 127s] 2020-08-12 19:44:54.847261 I | etcdmain: Go Version: go1.12.17 [ 127s] 2020-08-12 19:44:54.847271 I | etcdmain: Go OS/Arch: linux/amd64 [ 127s] 2020-08-12 19:44:54.847281 I | etcdmain: setting maximum number of CPUs to 8, total number of available CPUs is 8 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:44:54.847562 I | embed: name = test-node-0 [ 127s] 2020-08-12 19:44:54.847578 I | embed: data dir = /tmp/python-etcd_y1gzj2n/python-etcd.0-2zpiidww [ 127s] 2020-08-12 19:44:54.847589 I | embed: member dir = /tmp/python-etcd_y1gzj2n/python-etcd.0-2zpiidww/member [ 127s] 2020-08-12 19:44:54.847598 I | embed: heartbeat = 100ms [ 127s] 2020-08-12 19:44:54.847608 I | embed: election = 1000ms [ 127s] 2020-08-12 19:44:54.847617 I | embed: snapshot count = 100000 [ 127s] 2020-08-12 19:44:54.847638 I | embed: advertise client URLs = http://127.0.0.1:6001 [ 127s] 2020-08-12 19:44:54.869101 I | etcdserver: starting member 1083aa28485d3319 in cluster b5408f6fd0e0239a [ 127s] raft2020/08/12 19:44:54 INFO: 1083aa28485d3319 switched to configuration voters=() [ 127s] raft2020/08/12 19:44:54 INFO: 1083aa28485d3319 became follower at term 0 [ 127s] raft2020/08/12 19:44:54 INFO: newRaft 1083aa28485d3319 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0] [ 127s] raft2020/08/12 19:44:54 INFO: 1083aa28485d3319 became follower at term 1 [ 127s] raft2020/08/12 19:44:54 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153) [ 127s] 2020-08-12 19:44:54.883790 W | auth: simple token is not cryptographically signed [ 127s] 2020-08-12 19:44:54.900451 I | etcdserver: starting server... [version: 3.4.3, cluster version: to_be_decided] [ 127s] 2020-08-12 19:44:54.901061 I | etcdserver: 1083aa28485d3319 as single-node; fast-forwarding 9 ticks (election ticks 10) [ 127s] raft2020/08/12 19:44:54 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153) [ 127s] 2020-08-12 19:44:54.901830 I | etcdserver/membership: added member 1083aa28485d3319 [http://127.0.0.1:8001] to cluster b5408f6fd0e0239a [ 127s] 2020-08-12 19:44:54.906057 I | embed: listening for peers on 127.0.0.1:8001 [ 127s] raft2020/08/12 19:44:55 INFO: 1083aa28485d3319 is starting a new election at term 1 [ 127s] raft2020/08/12 19:44:55 INFO: 1083aa28485d3319 became candidate at term 2 [ 127s] raft2020/08/12 19:44:55 INFO: 1083aa28485d3319 received MsgVoteResp from 1083aa28485d3319 at term 2 [ 127s] raft2020/08/12 19:44:55 INFO: 1083aa28485d3319 became leader at term 2 [ 127s] raft2020/08/12 19:44:55 INFO: raft.node: 1083aa28485d3319 elected leader 1083aa28485d3319 at term 2 [ 127s] 2020-08-12 19:44:55.871067 I | etcdserver: setting up the initial cluster version to 3.4 [ 127s] 2020-08-12 19:44:55.874412 N | etcdserver/membership: set the initial cluster version to 3.4 [ 127s] 2020-08-12 19:44:55.874497 I | embed: ready to serve client requests [ 127s] 2020-08-12 19:44:55.874579 I | etcdserver/api: enabled capabilities for version 3.4 [ 127s] 2020-08-12 19:44:55.874629 I | etcdserver: published {Name:test-node-0 ClientURLs:[http://127.0.0.1:6001]} to cluster b5408f6fd0e0239a [ 127s] 2020-08-12 19:44:55.876600 N | embed: serving insecure client requests on 127.0.0.1:6001, this is strongly discouraged! [ 127s] ------------------------------ Captured log call ------------------------------- [ 127s] WARNING etcd.client:client.py:956 etcd response did not contain a cluster ID [ 127s] ERROR etcd.auth:auth.py:35 Failed to fetch user in http://127.0.0.1:6001/v2: EtcdException('Bad response : 404 page not found\n') [ 127s] ____________________________ EtcdRoleTest.test_read ____________________________ [ 127s] [ 127s] self = [ 127s] [ 127s] def read(self): [ 127s] try: [ 127s] > response = self.client.api_execute(self.uri, self.client._MGET) [ 127s] [ 127s] src/etcd/auth.py:27: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] path = '/v2/auth/users/root', method = 'GET', params = None, timeout = 60 [ 127s] [ 127s] @wraps(payload) [ 127s] def wrapper(self, path, method, params=None, timeout=None): [ 127s] response = False [ 127s] [ 127s] if timeout is None: [ 127s] timeout = self.read_timeout [ 127s] [ 127s] if timeout == 0: [ 127s] timeout = None [ 127s] [ 127s] if not path.startswith('/'): [ 127s] raise ValueError('Path does not start with /') [ 127s] [ 127s] while not response: [ 127s] some_request_failed = False [ 127s] try: [ 127s] response = payload(self, path, method, [ 127s] params=params, timeout=timeout) [ 127s] # Check the cluster ID hasn't changed under us. We use [ 127s] # preload_content=False above so we can read the headers [ 127s] # before we wait for the content of a watch. [ 127s] self._check_cluster_id(response) [ 127s] # Now force the data to be preloaded in order to trigger any [ 127s] # IO-related errors in this method rather than when we try to [ 127s] # access it later. [ 127s] _ = response.data [ 127s] # urllib3 doesn't wrap all httplib exceptions and earlier versions [ 127s] # don't wrap socket errors either. [ 127s] except (HTTPError, HTTPException, socket.error) as e: [ 127s] if (isinstance(params, dict) and [ 127s] params.get("wait") == "true" and [ 127s] isinstance(e, ReadTimeoutError)): [ 127s] _log.debug("Watch timed out.") [ 127s] raise etcd.EtcdWatchTimedOut( [ 127s] "Watch timed out: %r" % e, [ 127s] cause=e [ 127s] ) [ 127s] _log.error("Request to server %s failed: %r", [ 127s] self._base_uri, e) [ 127s] if self._allow_reconnect: [ 127s] _log.info("Reconnection allowed, looking for another " [ 127s] "server.") [ 127s] # _next_server() raises EtcdException if there are no [ 127s] # machines left to try, breaking out of the loop. [ 127s] self._base_uri = self._next_server(cause=e) [ 127s] some_request_failed = True [ 127s] [ 127s] # if exception is raised on _ = response.data [ 127s] # the condition for while loop will be False [ 127s] # but we should retry [ 127s] response = False [ 127s] else: [ 127s] _log.debug("Reconnection disabled, giving up.") [ 127s] raise etcd.EtcdConnectionFailed( [ 127s] "Connection to etcd failed due to %r" % e, [ 127s] cause=e [ 127s] ) [ 127s] except etcd.EtcdClusterIdChanged as e: [ 127s] _log.warning(e) [ 127s] raise [ 127s] except: [ 127s] _log.exception("Unexpected request failure, re-raising.") [ 127s] raise [ 127s] [ 127s] if some_request_failed: [ 127s] if not self._use_proxies: [ 127s] # The cluster may have changed since last invocation [ 127s] self._machines_cache = self.machines [ 127s] self._machines_cache.remove(self._base_uri) [ 127s] > return self._handle_server_response(response) [ 127s] [ 127s] src/etcd/client.py:907: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] response = [ 127s] [ 127s] def _handle_server_response(self, response): [ 127s] """ Handles the server response """ [ 127s] if response.status in [200, 201]: [ 127s] return response [ 127s] [ 127s] else: [ 127s] resp = response.data.decode('utf-8') [ 127s] [ 127s] # throw the appropriate exception [ 127s] try: [ 127s] r = json.loads(resp) [ 127s] r['status'] = response.status [ 127s] except (TypeError, ValueError): [ 127s] # Bad JSON, make a response locally. [ 127s] r = {"message": "Bad response", [ 127s] "cause": str(resp)} [ 127s] > etcd.EtcdError.handle(r) [ 127s] [ 127s] src/etcd/client.py:987: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] cls = [ 127s] payload = {'cause': '404 page not found\n', 'message': 'Bad response'} [ 127s] [ 127s] @classmethod [ 127s] def handle(cls, payload): [ 127s] """ [ 127s] Decodes the error and throws the appropriate error message [ 127s] [ 127s] :param payload: The decoded JSON error payload as a dict. [ 127s] """ [ 127s] error_code = payload.get("errorCode") [ 127s] message = payload.get("message") [ 127s] cause = payload.get("cause") [ 127s] msg = '{} : {}'.format(message, cause) [ 127s] status = payload.get("status") [ 127s] # Some general status handling, as [ 127s] # not all endpoints return coherent error messages [ 127s] if status == 404: [ 127s] error_code = 100 [ 127s] elif status == 401: [ 127s] error_code = 110 [ 127s] exc = cls.error_exceptions.get(error_code, EtcdException) [ 127s] if issubclass(exc, EtcdException): [ 127s] > raise exc(msg, payload) [ 127s] E etcd.EtcdException: Bad response : 404 page not found [ 127s] [ 127s] src/etcd/__init__.py:306: EtcdException [ 127s] [ 127s] During handling of the above exception, another exception occurred: [ 127s] [ 127s] self = [ 127s] [ 127s] def setUp(self): [ 127s] # Sets up the root user, toggles auth [ 127s] u = auth.EtcdUser(self.client, 'root') [ 127s] u.password = 'testpass' [ 127s] > u.write() [ 127s] [ 127s] src/etcd/tests/test_auth.py:13: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] src/etcd/auth.py:46: in write [ 127s] r.read() [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] [ 127s] def read(self): [ 127s] try: [ 127s] response = self.client.api_execute(self.uri, self.client._MGET) [ 127s] except etcd.EtcdInsufficientPermissions as e: [ 127s] _log.error("Any action on the authorization requires the root role") [ 127s] raise [ 127s] except etcd.EtcdKeyNotFound: [ 127s] _log.info("%s '%s' not found", self.entity, self.name) [ 127s] raise [ 127s] except Exception as e: [ 127s] _log.error("Failed to fetch %s in %s%s: %r", [ 127s] self.entity, self.client._base_uri, [ 127s] self.client.version_prefix, e) [ 127s] > raise etcd.EtcdException( [ 127s] "Could not fetch {} '{}'".format(self.entity, self.name)) [ 127s] E etcd.EtcdException: Could not fetch user 'root' [ 127s] [ 127s] src/etcd/auth.py:38: EtcdException [ 127s] ------------------------------ Captured log call ------------------------------- [ 127s] WARNING etcd.client:client.py:956 etcd response did not contain a cluster ID [ 127s] ERROR etcd.auth:auth.py:35 Failed to fetch user in http://127.0.0.1:6001/v2: EtcdException('Bad response : 404 page not found\n') [ 127s] ______________________ EtcdRoleTest.test_write_and_delete ______________________ [ 127s] [ 127s] self = [ 127s] [ 127s] def read(self): [ 127s] try: [ 127s] > response = self.client.api_execute(self.uri, self.client._MGET) [ 127s] [ 127s] src/etcd/auth.py:27: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] path = '/v2/auth/users/root', method = 'GET', params = None, timeout = 60 [ 127s] [ 127s] @wraps(payload) [ 127s] def wrapper(self, path, method, params=None, timeout=None): [ 127s] response = False [ 127s] [ 127s] if timeout is None: [ 127s] timeout = self.read_timeout [ 127s] [ 127s] if timeout == 0: [ 127s] timeout = None [ 127s] [ 127s] if not path.startswith('/'): [ 127s] raise ValueError('Path does not start with /') [ 127s] [ 127s] while not response: [ 127s] some_request_failed = False [ 127s] try: [ 127s] response = payload(self, path, method, [ 127s] params=params, timeout=timeout) [ 127s] # Check the cluster ID hasn't changed under us. We use [ 127s] # preload_content=False above so we can read the headers [ 127s] # before we wait for the content of a watch. [ 127s] self._check_cluster_id(response) [ 127s] # Now force the data to be preloaded in order to trigger any [ 127s] # IO-related errors in this method rather than when we try to [ 127s] # access it later. [ 127s] _ = response.data [ 127s] # urllib3 doesn't wrap all httplib exceptions and earlier versions [ 127s] # don't wrap socket errors either. [ 127s] except (HTTPError, HTTPException, socket.error) as e: [ 127s] if (isinstance(params, dict) and [ 127s] params.get("wait") == "true" and [ 127s] isinstance(e, ReadTimeoutError)): [ 127s] _log.debug("Watch timed out.") [ 127s] raise etcd.EtcdWatchTimedOut( [ 127s] "Watch timed out: %r" % e, [ 127s] cause=e [ 127s] ) [ 127s] _log.error("Request to server %s failed: %r", [ 127s] self._base_uri, e) [ 127s] if self._allow_reconnect: [ 127s] _log.info("Reconnection allowed, looking for another " [ 127s] "server.") [ 127s] # _next_server() raises EtcdException if there are no [ 127s] # machines left to try, breaking out of the loop. [ 127s] self._base_uri = self._next_server(cause=e) [ 127s] some_request_failed = True [ 127s] [ 127s] # if exception is raised on _ = response.data [ 127s] # the condition for while loop will be False [ 127s] # but we should retry [ 127s] response = False [ 127s] else: [ 127s] _log.debug("Reconnection disabled, giving up.") [ 127s] raise etcd.EtcdConnectionFailed( [ 127s] "Connection to etcd failed due to %r" % e, [ 127s] cause=e [ 127s] ) [ 127s] except etcd.EtcdClusterIdChanged as e: [ 127s] _log.warning(e) [ 127s] raise [ 127s] except: [ 127s] _log.exception("Unexpected request failure, re-raising.") [ 127s] raise [ 127s] [ 127s] if some_request_failed: [ 127s] if not self._use_proxies: [ 127s] # The cluster may have changed since last invocation [ 127s] self._machines_cache = self.machines [ 127s] self._machines_cache.remove(self._base_uri) [ 127s] > return self._handle_server_response(response) [ 127s] [ 127s] src/etcd/client.py:907: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] response = [ 127s] [ 127s] def _handle_server_response(self, response): [ 127s] """ Handles the server response """ [ 127s] if response.status in [200, 201]: [ 127s] return response [ 127s] [ 127s] else: [ 127s] resp = response.data.decode('utf-8') [ 127s] [ 127s] # throw the appropriate exception [ 127s] try: [ 127s] r = json.loads(resp) [ 127s] r['status'] = response.status [ 127s] except (TypeError, ValueError): [ 127s] # Bad JSON, make a response locally. [ 127s] r = {"message": "Bad response", [ 127s] "cause": str(resp)} [ 127s] > etcd.EtcdError.handle(r) [ 127s] [ 127s] src/etcd/client.py:987: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] cls = [ 127s] payload = {'cause': '404 page not found\n', 'message': 'Bad response'} [ 127s] [ 127s] @classmethod [ 127s] def handle(cls, payload): [ 127s] """ [ 127s] Decodes the error and throws the appropriate error message [ 127s] [ 127s] :param payload: The decoded JSON error payload as a dict. [ 127s] """ [ 127s] error_code = payload.get("errorCode") [ 127s] message = payload.get("message") [ 127s] cause = payload.get("cause") [ 127s] msg = '{} : {}'.format(message, cause) [ 127s] status = payload.get("status") [ 127s] # Some general status handling, as [ 127s] # not all endpoints return coherent error messages [ 127s] if status == 404: [ 127s] error_code = 100 [ 127s] elif status == 401: [ 127s] error_code = 110 [ 127s] exc = cls.error_exceptions.get(error_code, EtcdException) [ 127s] if issubclass(exc, EtcdException): [ 127s] > raise exc(msg, payload) [ 127s] E etcd.EtcdException: Bad response : 404 page not found [ 127s] [ 127s] src/etcd/__init__.py:306: EtcdException [ 127s] [ 127s] During handling of the above exception, another exception occurred: [ 127s] [ 127s] self = [ 127s] [ 127s] def setUp(self): [ 127s] # Sets up the root user, toggles auth [ 127s] u = auth.EtcdUser(self.client, 'root') [ 127s] u.password = 'testpass' [ 127s] > u.write() [ 127s] [ 127s] src/etcd/tests/test_auth.py:13: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] src/etcd/auth.py:46: in write [ 127s] r.read() [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] [ 127s] def read(self): [ 127s] try: [ 127s] response = self.client.api_execute(self.uri, self.client._MGET) [ 127s] except etcd.EtcdInsufficientPermissions as e: [ 127s] _log.error("Any action on the authorization requires the root role") [ 127s] raise [ 127s] except etcd.EtcdKeyNotFound: [ 127s] _log.info("%s '%s' not found", self.entity, self.name) [ 127s] raise [ 127s] except Exception as e: [ 127s] _log.error("Failed to fetch %s in %s%s: %r", [ 127s] self.entity, self.client._base_uri, [ 127s] self.client.version_prefix, e) [ 127s] > raise etcd.EtcdException( [ 127s] "Could not fetch {} '{}'".format(self.entity, self.name)) [ 127s] E etcd.EtcdException: Could not fetch user 'root' [ 127s] [ 127s] src/etcd/auth.py:38: EtcdException [ 127s] ------------------------------ Captured log call ------------------------------- [ 127s] WARNING etcd.client:client.py:956 etcd response did not contain a cluster ID [ 127s] ERROR etcd.auth:auth.py:35 Failed to fetch user in http://127.0.0.1:6001/v2: EtcdException('Bad response : 404 page not found\n') [ 127s] _____________________ TestSimple.test_directory_ttl_update _____________________ [ 127s] [ 127s] self = [ 127s] [ 127s] def test_directory_ttl_update(self): [ 127s] """ INTEGRATION: should be able to update a dir TTL """ [ 127s] > self.client.write('/dir', None, dir=True, ttl=30) [ 127s] [ 127s] src/etcd/tests/integration/test_simple.py:126: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] src/etcd/client.py:500: in write [ 127s] response = self.api_execute(path, method, params=params) [ 127s] src/etcd/client.py:907: in wrapper [ 127s] return self._handle_server_response(response) [ 127s] src/etcd/client.py:987: in _handle_server_response [ 127s] etcd.EtcdError.handle(r) [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] cls = [ 127s] payload = {'cause': '404 page not found\n', 'message': 'Bad response'} [ 127s] [ 127s] @classmethod [ 127s] def handle(cls, payload): [ 127s] """ [ 127s] Decodes the error and throws the appropriate error message [ 127s] [ 127s] :param payload: The decoded JSON error payload as a dict. [ 127s] """ [ 127s] error_code = payload.get("errorCode") [ 127s] message = payload.get("message") [ 127s] cause = payload.get("cause") [ 127s] msg = '{} : {}'.format(message, cause) [ 127s] status = payload.get("status") [ 127s] # Some general status handling, as [ 127s] # not all endpoints return coherent error messages [ 127s] if status == 404: [ 127s] error_code = 100 [ 127s] elif status == 401: [ 127s] error_code = 110 [ 127s] exc = cls.error_exceptions.get(error_code, EtcdException) [ 127s] if issubclass(exc, EtcdException): [ 127s] > raise exc(msg, payload) [ 127s] E etcd.EtcdException: Bad response : 404 page not found [ 127s] [ 127s] src/etcd/__init__.py:306: EtcdException [ 127s] ---------------------------- Captured stderr setup ----------------------------- [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:44:58.995548 I | etcdmain: etcd Version: 3.4.3 [ 127s] 2020-08-12 19:44:58.995583 I | etcdmain: Git SHA: Not provided (use ./build instead of go build) [ 127s] 2020-08-12 19:44:58.995591 I | etcdmain: Go Version: go1.12.17 [ 127s] 2020-08-12 19:44:58.995597 I | etcdmain: Go OS/Arch: linux/amd64 [ 127s] 2020-08-12 19:44:58.995606 I | etcdmain: setting maximum number of CPUs to 8, total number of available CPUs is 8 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:44:58.995824 I | embed: name = test-node-0 [ 127s] 2020-08-12 19:44:58.995838 I | embed: data dir = /tmp/python-etcd50byu8v9/python-etcd.0-43mmvy24 [ 127s] 2020-08-12 19:44:58.995846 I | embed: member dir = /tmp/python-etcd50byu8v9/python-etcd.0-43mmvy24/member [ 127s] 2020-08-12 19:44:58.995852 I | embed: heartbeat = 100ms [ 127s] 2020-08-12 19:44:58.995858 I | embed: election = 1000ms [ 127s] 2020-08-12 19:44:58.995864 I | embed: snapshot count = 100000 [ 127s] 2020-08-12 19:44:58.995880 I | embed: advertise client URLs = http://127.0.0.1:6001 [ 127s] 2020-08-12 19:44:59.021605 I | etcdserver: starting member 1083aa28485d3319 in cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:44:59 INFO: 1083aa28485d3319 switched to configuration voters=() [ 127s] raft2020/08/12 19:44:59 INFO: 1083aa28485d3319 became follower at term 0 [ 127s] raft2020/08/12 19:44:59 INFO: newRaft 1083aa28485d3319 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0] [ 127s] raft2020/08/12 19:44:59 INFO: 1083aa28485d3319 became follower at term 1 [ 127s] raft2020/08/12 19:44:59 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153) [ 127s] raft2020/08/12 19:44:59 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965) [ 127s] raft2020/08/12 19:44:59 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:44:59.045132 W | auth: simple token is not cryptographically signed [ 127s] 2020-08-12 19:44:59.060069 I | rafthttp: starting peer 9ca0c7938a0c3dc5... [ 127s] 2020-08-12 19:44:59.060186 I | rafthttp: started HTTP pipelining with peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:44:59.063008 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (writer) [ 127s] 2020-08-12 19:44:59.063616 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (writer) [ 127s] 2020-08-12 19:44:59.067253 I | rafthttp: started peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:44:59.067368 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] 2020-08-12 19:44:59.067431 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:44:59.067598 I | rafthttp: added peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:44:59.067689 I | rafthttp: starting peer bc5472f61da31b5c... [ 127s] 2020-08-12 19:44:59.067779 I | rafthttp: started HTTP pipelining with peer bc5472f61da31b5c [ 127s] 2020-08-12 19:44:59.070361 I | rafthttp: started streaming with peer bc5472f61da31b5c (writer) [ 127s] 2020-08-12 19:44:59.072994 I | rafthttp: started streaming with peer bc5472f61da31b5c (writer) [ 127s] 2020-08-12 19:44:59.075635 I | rafthttp: started peer bc5472f61da31b5c [ 127s] 2020-08-12 19:44:59.075828 I | rafthttp: started streaming with peer bc5472f61da31b5c (stream Message reader) [ 127s] 2020-08-12 19:44:59.075981 I | rafthttp: added peer bc5472f61da31b5c [ 127s] 2020-08-12 19:44:59.076128 I | etcdserver: starting server... [version: 3.4.3, cluster version: to_be_decided] [ 127s] 2020-08-12 19:44:59.076183 I | rafthttp: started streaming with peer bc5472f61da31b5c (stream MsgApp v2 reader) [ 127s] raft2020/08/12 19:44:59 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:44:59.078985 I | etcdserver/membership: added member 1083aa28485d3319 [http://127.0.0.1:8001] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:44:59 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:44:59.079347 I | etcdserver/membership: added member 9ca0c7938a0c3dc5 [http://127.0.0.1:8002] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:44:59 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:44:59.079662 I | etcdserver/membership: added member bc5472f61da31b5c [http://127.0.0.1:8003] to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:44:59.082526 I | embed: listening for peers on 127.0.0.1:8001 [ 127s] raft2020/08/12 19:45:00 INFO: 1083aa28485d3319 is starting a new election at term 1 [ 127s] raft2020/08/12 19:45:00 INFO: 1083aa28485d3319 became candidate at term 2 [ 127s] raft2020/08/12 19:45:00 INFO: 1083aa28485d3319 received MsgVoteResp from 1083aa28485d3319 at term 2 [ 127s] raft2020/08/12 19:45:00 INFO: 1083aa28485d3319 [logterm: 1, index: 3] sent MsgVote request to 9ca0c7938a0c3dc5 at term 2 [ 127s] raft2020/08/12 19:45:00 INFO: 1083aa28485d3319 [logterm: 1, index: 3] sent MsgVote request to bc5472f61da31b5c at term 2 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:45:01.000917 I | etcdmain: etcd Version: 3.4.3 [ 127s] 2020-08-12 19:45:01.000945 I | etcdmain: Git SHA: Not provided (use ./build instead of go build) [ 127s] 2020-08-12 19:45:01.000954 I | etcdmain: Go Version: go1.12.17 [ 127s] 2020-08-12 19:45:01.000962 I | etcdmain: Go OS/Arch: linux/amd64 [ 127s] 2020-08-12 19:45:01.000970 I | etcdmain: setting maximum number of CPUs to 8, total number of available CPUs is 8 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:45:01.001232 I | embed: name = test-node-1 [ 127s] 2020-08-12 19:45:01.001249 I | embed: data dir = /tmp/python-etcd50byu8v9/python-etcd.1-bnauz6nh [ 127s] 2020-08-12 19:45:01.001257 I | embed: member dir = /tmp/python-etcd50byu8v9/python-etcd.1-bnauz6nh/member [ 127s] 2020-08-12 19:45:01.001265 I | embed: heartbeat = 100ms [ 127s] 2020-08-12 19:45:01.001273 I | embed: election = 1000ms [ 127s] 2020-08-12 19:45:01.001280 I | embed: snapshot count = 100000 [ 127s] 2020-08-12 19:45:01.001293 I | embed: advertise client URLs = http://127.0.0.1:6002 [ 127s] 2020-08-12 19:45:01.017806 I | etcdserver: starting member 9ca0c7938a0c3dc5 in cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:01 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=() [ 127s] raft2020/08/12 19:45:01 INFO: 9ca0c7938a0c3dc5 became follower at term 0 [ 127s] raft2020/08/12 19:45:01 INFO: newRaft 9ca0c7938a0c3dc5 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0] [ 127s] raft2020/08/12 19:45:01 INFO: 9ca0c7938a0c3dc5 became follower at term 1 [ 127s] raft2020/08/12 19:45:01 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153) [ 127s] raft2020/08/12 19:45:01 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965) [ 127s] raft2020/08/12 19:45:01 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:01.038358 W | auth: simple token is not cryptographically signed [ 127s] 2020-08-12 19:45:01.066609 I | rafthttp: starting peer 1083aa28485d3319... [ 127s] 2020-08-12 19:45:01.066745 I | rafthttp: started HTTP pipelining with peer 1083aa28485d3319 [ 127s] 2020-08-12 19:45:01.068468 I | rafthttp: started streaming with peer 1083aa28485d3319 (writer) [ 127s] 2020-08-12 19:45:01.069417 I | rafthttp: started streaming with peer 1083aa28485d3319 (writer) [ 127s] 2020-08-12 19:45:01.073267 I | rafthttp: started peer 1083aa28485d3319 [ 127s] 2020-08-12 19:45:01.073390 I | rafthttp: started streaming with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:45:01.073469 I | rafthttp: started streaming with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:01.073567 I | rafthttp: added peer 1083aa28485d3319 [ 127s] 2020-08-12 19:45:01.073675 I | rafthttp: starting peer bc5472f61da31b5c... [ 127s] 2020-08-12 19:45:01.073745 I | rafthttp: started HTTP pipelining with peer bc5472f61da31b5c [ 127s] 2020-08-12 19:45:01.074499 I | rafthttp: started streaming with peer bc5472f61da31b5c (writer) [ 127s] 2020-08-12 19:45:01.074995 I | rafthttp: peer 9ca0c7938a0c3dc5 became active [ 127s] 2020-08-12 19:45:01.075098 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message writer) [ 127s] 2020-08-12 19:45:01.075767 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:45:01.076699 I | rafthttp: peer 1083aa28485d3319 became active [ 127s] 2020-08-12 19:45:01.076842 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:01.077101 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:45:01.077450 I | rafthttp: started streaming with peer bc5472f61da31b5c (writer) [ 127s] 2020-08-12 19:45:01.082670 I | rafthttp: started peer bc5472f61da31b5c [ 127s] 2020-08-12 19:45:01.082740 I | rafthttp: started streaming with peer bc5472f61da31b5c (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:01.082853 I | rafthttp: started streaming with peer bc5472f61da31b5c (stream Message reader) [ 127s] 2020-08-12 19:45:01.082987 I | rafthttp: added peer bc5472f61da31b5c [ 127s] 2020-08-12 19:45:01.083096 I | etcdserver: starting server... [version: 3.4.3, cluster version: to_be_decided] [ 127s] raft2020/08/12 19:45:01 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:01.085305 I | etcdserver/membership: added member 1083aa28485d3319 [http://127.0.0.1:8001] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:01 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:01.085640 I | etcdserver/membership: added member 9ca0c7938a0c3dc5 [http://127.0.0.1:8002] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:01 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:01.085899 I | etcdserver/membership: added member bc5472f61da31b5c [http://127.0.0.1:8003] to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:45:01.090610 I | embed: listening for peers on 127.0.0.1:8002 [ 127s] 2020-08-12 19:45:01.091627 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:45:01.091661 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:01.091805 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] 2020-08-12 19:45:01.091883 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream Message writer) [ 127s] raft2020/08/12 19:45:01 INFO: 1083aa28485d3319 is starting a new election at term 2 [ 127s] raft2020/08/12 19:45:01 INFO: 1083aa28485d3319 became candidate at term 3 [ 127s] raft2020/08/12 19:45:01 INFO: 1083aa28485d3319 received MsgVoteResp from 1083aa28485d3319 at term 3 [ 127s] raft2020/08/12 19:45:01 INFO: 1083aa28485d3319 [logterm: 1, index: 3] sent MsgVote request to 9ca0c7938a0c3dc5 at term 3 [ 127s] raft2020/08/12 19:45:01 INFO: 1083aa28485d3319 [logterm: 1, index: 3] sent MsgVote request to bc5472f61da31b5c at term 3 [ 127s] raft2020/08/12 19:45:01 INFO: 9ca0c7938a0c3dc5 [term: 1] received a MsgVote message with higher term from 1083aa28485d3319 [term: 3] [ 127s] raft2020/08/12 19:45:01 INFO: 9ca0c7938a0c3dc5 became follower at term 3 [ 127s] raft2020/08/12 19:45:01 INFO: 9ca0c7938a0c3dc5 [logterm: 1, index: 3, vote: 0] cast MsgVote for 1083aa28485d3319 [logterm: 1, index: 3] at term 3 [ 127s] raft2020/08/12 19:45:01 INFO: 1083aa28485d3319 received MsgVoteResp from 9ca0c7938a0c3dc5 at term 3 [ 127s] raft2020/08/12 19:45:01 INFO: 1083aa28485d3319 has received 2 MsgVoteResp votes and 0 vote rejections [ 127s] raft2020/08/12 19:45:01 INFO: 1083aa28485d3319 became leader at term 3 [ 127s] raft2020/08/12 19:45:01 INFO: raft.node: 1083aa28485d3319 elected leader 1083aa28485d3319 at term 3 [ 127s] raft2020/08/12 19:45:01 INFO: raft.node: 9ca0c7938a0c3dc5 elected leader 1083aa28485d3319 at term 3 [ 127s] 2020-08-12 19:45:01.842434 W | etcdserver: failed to reach the peerURL(http://127.0.0.1:8003) of member bc5472f61da31b5c (Get http://127.0.0.1:8003/version: dial tcp 127.0.0.1:8003: connect: connection refused) [ 127s] 2020-08-12 19:45:01.842473 W | etcdserver: cannot get the version of member bc5472f61da31b5c (Get http://127.0.0.1:8003/version: dial tcp 127.0.0.1:8003: connect: connection refused) [ 127s] 2020-08-12 19:45:01.842544 I | etcdserver: setting up the initial cluster version to 3.0 [ 127s] 2020-08-12 19:45:01.849786 I | etcdserver: published {Name:test-node-0 ClientURLs:[http://127.0.0.1:6001]} to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:45:01.849903 I | embed: ready to serve client requests [ 127s] 2020-08-12 19:45:01.851273 N | embed: serving insecure client requests on 127.0.0.1:6001, this is strongly discouraged! [ 127s] 2020-08-12 19:45:01.852274 N | etcdserver/membership: set the initial cluster version to 3.0 [ 127s] 2020-08-12 19:45:01.852303 I | etcdserver: published {Name:test-node-1 ClientURLs:[http://127.0.0.1:6002]} to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:45:01.852346 I | embed: ready to serve client requests [ 127s] 2020-08-12 19:45:01.852382 I | etcdserver/api: enabled capabilities for version 3.0 [ 127s] 2020-08-12 19:45:01.852420 N | etcdserver/membership: set the initial cluster version to 3.0 [ 127s] 2020-08-12 19:45:01.852534 I | etcdserver/api: enabled capabilities for version 3.0 [ 127s] 2020-08-12 19:45:01.853654 N | embed: serving insecure client requests on 127.0.0.1:6002, this is strongly discouraged! [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:45:03.006400 I | etcdmain: etcd Version: 3.4.3 [ 127s] 2020-08-12 19:45:03.006434 I | etcdmain: Git SHA: Not provided (use ./build instead of go build) [ 127s] 2020-08-12 19:45:03.006445 I | etcdmain: Go Version: go1.12.17 [ 127s] 2020-08-12 19:45:03.006454 I | etcdmain: Go OS/Arch: linux/amd64 [ 127s] 2020-08-12 19:45:03.006465 I | etcdmain: setting maximum number of CPUs to 8, total number of available CPUs is 8 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:45:03.006763 I | embed: name = test-node-2 [ 127s] 2020-08-12 19:45:03.006778 I | embed: data dir = /tmp/python-etcd50byu8v9/python-etcd.2-rlh1wvyx [ 127s] 2020-08-12 19:45:03.006786 I | embed: member dir = /tmp/python-etcd50byu8v9/python-etcd.2-rlh1wvyx/member [ 127s] 2020-08-12 19:45:03.006792 I | embed: heartbeat = 100ms [ 127s] 2020-08-12 19:45:03.006798 I | embed: election = 1000ms [ 127s] 2020-08-12 19:45:03.006803 I | embed: snapshot count = 100000 [ 127s] 2020-08-12 19:45:03.006813 I | embed: advertise client URLs = http://127.0.0.1:6003 [ 127s] 2020-08-12 19:45:03.027875 I | etcdserver: starting member bc5472f61da31b5c in cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:03 INFO: bc5472f61da31b5c switched to configuration voters=() [ 127s] raft2020/08/12 19:45:03 INFO: bc5472f61da31b5c became follower at term 0 [ 127s] raft2020/08/12 19:45:03 INFO: newRaft bc5472f61da31b5c [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0] [ 127s] raft2020/08/12 19:45:03 INFO: bc5472f61da31b5c became follower at term 1 [ 127s] raft2020/08/12 19:45:03 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153) [ 127s] raft2020/08/12 19:45:03 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965) [ 127s] raft2020/08/12 19:45:03 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:03.043316 W | auth: simple token is not cryptographically signed [ 127s] 2020-08-12 19:45:03.056006 I | rafthttp: starting peer 1083aa28485d3319... [ 127s] 2020-08-12 19:45:03.056182 I | rafthttp: started HTTP pipelining with peer 1083aa28485d3319 [ 127s] 2020-08-12 19:45:03.056965 I | rafthttp: started streaming with peer 1083aa28485d3319 (writer) [ 127s] 2020-08-12 19:45:03.057433 I | rafthttp: started streaming with peer 1083aa28485d3319 (writer) [ 127s] 2020-08-12 19:45:03.065444 I | rafthttp: started peer 1083aa28485d3319 [ 127s] 2020-08-12 19:45:03.065587 I | rafthttp: added peer 1083aa28485d3319 [ 127s] 2020-08-12 19:45:03.065660 I | rafthttp: started streaming with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:45:03.065820 I | rafthttp: starting peer 9ca0c7938a0c3dc5... [ 127s] 2020-08-12 19:45:03.065945 I | rafthttp: started HTTP pipelining with peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:45:03.065996 I | rafthttp: started streaming with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:03.066814 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (writer) [ 127s] 2020-08-12 19:45:03.067339 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (writer) [ 127s] 2020-08-12 19:45:03.067455 I | rafthttp: peer bc5472f61da31b5c became active [ 127s] 2020-08-12 19:45:03.067547 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream Message writer) [ 127s] 2020-08-12 19:45:03.067639 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:45:03.070490 I | rafthttp: peer 1083aa28485d3319 became active [ 127s] 2020-08-12 19:45:03.070607 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:45:03.071534 I | rafthttp: started peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:45:03.071612 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:03.071712 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] 2020-08-12 19:45:03.071818 I | rafthttp: added peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:45:03.072084 I | etcdserver: starting server... [version: 3.4.3, cluster version: to_be_decided] [ 127s] 2020-08-12 19:45:03.075367 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:03.076952 I | rafthttp: peer bc5472f61da31b5c became active [ 127s] 2020-08-12 19:45:03.077053 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream Message writer) [ 127s] 2020-08-12 19:45:03.077340 I | rafthttp: peer 9ca0c7938a0c3dc5 became active [ 127s] 2020-08-12 19:45:03.077447 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] 2020-08-12 19:45:03.077816 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:03.078816 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream MsgApp v2 writer) [ 127s] raft2020/08/12 19:45:03 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:03.082320 I | etcdserver/membership: added member 1083aa28485d3319 [http://127.0.0.1:8001] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:03 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:03.082569 I | etcdserver/membership: added member 9ca0c7938a0c3dc5 [http://127.0.0.1:8002] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:03 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:03.082742 I | etcdserver/membership: added member bc5472f61da31b5c [http://127.0.0.1:8003] to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:45:03.086252 I | embed: listening for peers on 127.0.0.1:8003 [ 127s] raft2020/08/12 19:45:03 INFO: bc5472f61da31b5c [term: 1] received a MsgHeartbeat message with higher term from 1083aa28485d3319 [term: 3] [ 127s] 2020-08-12 19:45:03.087006 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message writer) [ 127s] raft2020/08/12 19:45:03 INFO: bc5472f61da31b5c became follower at term 3 [ 127s] raft2020/08/12 19:45:03 INFO: raft.node: bc5472f61da31b5c elected leader 1083aa28485d3319 at term 3 [ 127s] 2020-08-12 19:45:03.087074 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream Message writer) [ 127s] 2020-08-12 19:45:03.087136 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:03.087160 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:45:03.087167 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream Message reader) [ 127s] 2020-08-12 19:45:03.087631 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream Message reader) [ 127s] 2020-08-12 19:45:03.087669 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:03.087681 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:45:03.092056 I | etcdserver: 9ca0c7938a0c3dc5 initialized peer connection; fast-forwarding 8 ticks (election ticks 10) with 2 active peer(s) [ 127s] 2020-08-12 19:45:03.093534 N | etcdserver/membership: set the initial cluster version to 3.0 [ 127s] 2020-08-12 19:45:03.093610 I | etcdserver/api: enabled capabilities for version 3.0 [ 127s] 2020-08-12 19:45:03.096072 I | etcdserver: 1083aa28485d3319 initialized peer connection; fast-forwarding 8 ticks (election ticks 10) with 2 active peer(s) [ 127s] 2020-08-12 19:45:03.098597 I | etcdserver: published {Name:test-node-2 ClientURLs:[http://127.0.0.1:6003]} to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:45:03.098646 I | embed: ready to serve client requests [ 127s] 2020-08-12 19:45:03.099212 N | embed: serving insecure client requests on 127.0.0.1:6003, this is strongly discouraged! [ 127s] 2020-08-12 19:45:03.123311 I | etcdserver: bc5472f61da31b5c initialized peer connection; fast-forwarding 8 ticks (election ticks 10) with 2 active peer(s) [ 127s] ------------------------------ Captured log call ------------------------------- [ 127s] WARNING etcd.client:client.py:956 etcd response did not contain a cluster ID [ 127s] ________________________ TestSimple.test_get_set_delete ________________________ [ 127s] [ 127s] self = [ 127s] [ 127s] def test_get_set_delete(self): [ 127s] """ INTEGRATION: set a new value """ [ 127s] try: [ 127s] > get_result = self.client.get('/test_set') [ 127s] [ 127s] src/etcd/tests/integration/test_simple.py:74: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] src/etcd/client.py:740: in get [ 127s] return self.read(key) [ 127s] src/etcd/client.py:595: in read [ 127s] response = self.api_execute( [ 127s] src/etcd/client.py:907: in wrapper [ 127s] return self._handle_server_response(response) [ 127s] src/etcd/client.py:987: in _handle_server_response [ 127s] etcd.EtcdError.handle(r) [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] cls = [ 127s] payload = {'cause': '404 page not found\n', 'message': 'Bad response'} [ 127s] [ 127s] @classmethod [ 127s] def handle(cls, payload): [ 127s] """ [ 127s] Decodes the error and throws the appropriate error message [ 127s] [ 127s] :param payload: The decoded JSON error payload as a dict. [ 127s] """ [ 127s] error_code = payload.get("errorCode") [ 127s] message = payload.get("message") [ 127s] cause = payload.get("cause") [ 127s] msg = '{} : {}'.format(message, cause) [ 127s] status = payload.get("status") [ 127s] # Some general status handling, as [ 127s] # not all endpoints return coherent error messages [ 127s] if status == 404: [ 127s] error_code = 100 [ 127s] elif status == 401: [ 127s] error_code = 110 [ 127s] exc = cls.error_exceptions.get(error_code, EtcdException) [ 127s] if issubclass(exc, EtcdException): [ 127s] > raise exc(msg, payload) [ 127s] E etcd.EtcdException: Bad response : 404 page not found [ 127s] [ 127s] src/etcd/__init__.py:306: EtcdException [ 127s] ------------------------------ Captured log call ------------------------------- [ 127s] WARNING etcd.client:client.py:956 etcd response did not contain a cluster ID [ 127s] ____________________________ TestSimple.test_leader ____________________________ [ 127s] [ 127s] self = [ 127s] [ 127s] @property [ 127s] def leader(self): [ 127s] """ [ 127s] Returns: [ 127s] dict. the leader of the cluster. [ 127s] [ 127s] >>> print client.leader [ 127s] {"id":"ce2a822cea30bfca","name":"default","peerURLs":["http://localhost:2380","http://localhost:7001"],"clientURLs":["http://127.0.0.1:4001"]} [ 127s] """ [ 127s] try: [ 127s] [ 127s] leader = json.loads( [ 127s] > self.api_execute(self.version_prefix + '/stats/self', [ 127s] self._MGET).data.decode('utf-8')) [ 127s] [ 127s] src/etcd/client.py:355: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = , path = '/v2/stats/self' [ 127s] method = 'GET', params = None, timeout = 60 [ 127s] [ 127s] @wraps(payload) [ 127s] def wrapper(self, path, method, params=None, timeout=None): [ 127s] response = False [ 127s] [ 127s] if timeout is None: [ 127s] timeout = self.read_timeout [ 127s] [ 127s] if timeout == 0: [ 127s] timeout = None [ 127s] [ 127s] if not path.startswith('/'): [ 127s] raise ValueError('Path does not start with /') [ 127s] [ 127s] while not response: [ 127s] some_request_failed = False [ 127s] try: [ 127s] response = payload(self, path, method, [ 127s] params=params, timeout=timeout) [ 127s] # Check the cluster ID hasn't changed under us. We use [ 127s] # preload_content=False above so we can read the headers [ 127s] # before we wait for the content of a watch. [ 127s] self._check_cluster_id(response) [ 127s] # Now force the data to be preloaded in order to trigger any [ 127s] # IO-related errors in this method rather than when we try to [ 127s] # access it later. [ 127s] _ = response.data [ 127s] # urllib3 doesn't wrap all httplib exceptions and earlier versions [ 127s] # don't wrap socket errors either. [ 127s] except (HTTPError, HTTPException, socket.error) as e: [ 127s] if (isinstance(params, dict) and [ 127s] params.get("wait") == "true" and [ 127s] isinstance(e, ReadTimeoutError)): [ 127s] _log.debug("Watch timed out.") [ 127s] raise etcd.EtcdWatchTimedOut( [ 127s] "Watch timed out: %r" % e, [ 127s] cause=e [ 127s] ) [ 127s] _log.error("Request to server %s failed: %r", [ 127s] self._base_uri, e) [ 127s] if self._allow_reconnect: [ 127s] _log.info("Reconnection allowed, looking for another " [ 127s] "server.") [ 127s] # _next_server() raises EtcdException if there are no [ 127s] # machines left to try, breaking out of the loop. [ 127s] self._base_uri = self._next_server(cause=e) [ 127s] some_request_failed = True [ 127s] [ 127s] # if exception is raised on _ = response.data [ 127s] # the condition for while loop will be False [ 127s] # but we should retry [ 127s] response = False [ 127s] else: [ 127s] _log.debug("Reconnection disabled, giving up.") [ 127s] raise etcd.EtcdConnectionFailed( [ 127s] "Connection to etcd failed due to %r" % e, [ 127s] cause=e [ 127s] ) [ 127s] except etcd.EtcdClusterIdChanged as e: [ 127s] _log.warning(e) [ 127s] raise [ 127s] except: [ 127s] _log.exception("Unexpected request failure, re-raising.") [ 127s] raise [ 127s] [ 127s] if some_request_failed: [ 127s] if not self._use_proxies: [ 127s] # The cluster may have changed since last invocation [ 127s] self._machines_cache = self.machines [ 127s] self._machines_cache.remove(self._base_uri) [ 127s] > return self._handle_server_response(response) [ 127s] [ 127s] src/etcd/client.py:907: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] response = [ 127s] [ 127s] def _handle_server_response(self, response): [ 127s] """ Handles the server response """ [ 127s] if response.status in [200, 201]: [ 127s] return response [ 127s] [ 127s] else: [ 127s] resp = response.data.decode('utf-8') [ 127s] [ 127s] # throw the appropriate exception [ 127s] try: [ 127s] r = json.loads(resp) [ 127s] r['status'] = response.status [ 127s] except (TypeError, ValueError): [ 127s] # Bad JSON, make a response locally. [ 127s] r = {"message": "Bad response", [ 127s] "cause": str(resp)} [ 127s] > etcd.EtcdError.handle(r) [ 127s] [ 127s] src/etcd/client.py:987: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] cls = [ 127s] payload = {'cause': '404 page not found\n', 'message': 'Bad response'} [ 127s] [ 127s] @classmethod [ 127s] def handle(cls, payload): [ 127s] """ [ 127s] Decodes the error and throws the appropriate error message [ 127s] [ 127s] :param payload: The decoded JSON error payload as a dict. [ 127s] """ [ 127s] error_code = payload.get("errorCode") [ 127s] message = payload.get("message") [ 127s] cause = payload.get("cause") [ 127s] msg = '{} : {}'.format(message, cause) [ 127s] status = payload.get("status") [ 127s] # Some general status handling, as [ 127s] # not all endpoints return coherent error messages [ 127s] if status == 404: [ 127s] error_code = 100 [ 127s] elif status == 401: [ 127s] error_code = 110 [ 127s] exc = cls.error_exceptions.get(error_code, EtcdException) [ 127s] if issubclass(exc, EtcdException): [ 127s] > raise exc(msg, payload) [ 127s] E etcd.EtcdException: Bad response : 404 page not found [ 127s] [ 127s] src/etcd/__init__.py:306: EtcdException [ 127s] [ 127s] During handling of the above exception, another exception occurred: [ 127s] [ 127s] self = [ 127s] [ 127s] def test_leader(self): [ 127s] """ INTEGRATION: retrieve leader """ [ 127s] > self.assertIn(self.client.leader['clientURLs'][0], [ 127s] ['http://127.0.0.1:6001','http://127.0.0.1:6002','http://127.0.0.1:6003']) [ 127s] [ 127s] src/etcd/tests/integration/test_simple.py:68: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] [ 127s] @property [ 127s] def leader(self): [ 127s] """ [ 127s] Returns: [ 127s] dict. the leader of the cluster. [ 127s] [ 127s] >>> print client.leader [ 127s] {"id":"ce2a822cea30bfca","name":"default","peerURLs":["http://localhost:2380","http://localhost:7001"],"clientURLs":["http://127.0.0.1:4001"]} [ 127s] """ [ 127s] try: [ 127s] [ 127s] leader = json.loads( [ 127s] self.api_execute(self.version_prefix + '/stats/self', [ 127s] self._MGET).data.decode('utf-8')) [ 127s] return self.members[leader['leaderInfo']['leader']] [ 127s] except Exception as e: [ 127s] > raise etcd.EtcdException("Cannot get leader data: %s" % e) [ 127s] E etcd.EtcdException: Cannot get leader data: Bad response : 404 page not found [ 127s] [ 127s] src/etcd/client.py:359: EtcdException [ 127s] ------------------------------ Captured log call ------------------------------- [ 127s] WARNING etcd.client:client.py:956 etcd response did not contain a cluster ID [ 127s] ___________________________ TestSimple.test_machines ___________________________ [ 127s] [ 127s] self = [ 127s] [ 127s] def test_machines(self): [ 127s] """ INTEGRATION: retrieve machines """ [ 127s] > self.assertEqual(self.client.machines[0], 'http://127.0.0.1:6001') [ 127s] [ 127s] src/etcd/tests/integration/test_simple.py:64: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] src/etcd/client.py:305: in machines [ 127s] self._handle_server_response(response).data.decode('utf-8').split(',') [ 127s] src/etcd/client.py:987: in _handle_server_response [ 127s] etcd.EtcdError.handle(r) [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] cls = [ 127s] payload = {'cause': '404 page not found\n', 'message': 'Bad response'} [ 127s] [ 127s] @classmethod [ 127s] def handle(cls, payload): [ 127s] """ [ 127s] Decodes the error and throws the appropriate error message [ 127s] [ 127s] :param payload: The decoded JSON error payload as a dict. [ 127s] """ [ 127s] error_code = payload.get("errorCode") [ 127s] message = payload.get("message") [ 127s] cause = payload.get("cause") [ 127s] msg = '{} : {}'.format(message, cause) [ 127s] status = payload.get("status") [ 127s] # Some general status handling, as [ 127s] # not all endpoints return coherent error messages [ 127s] if status == 404: [ 127s] error_code = 100 [ 127s] elif status == 401: [ 127s] error_code = 110 [ 127s] exc = cls.error_exceptions.get(error_code, EtcdException) [ 127s] if issubclass(exc, EtcdException): [ 127s] > raise exc(msg, payload) [ 127s] E etcd.EtcdException: Bad response : 404 page not found [ 127s] [ 127s] src/etcd/__init__.py:306: EtcdException [ 127s] _______________________ TestSimple.test_retrieve_subkeys _______________________ [ 127s] [ 127s] self = [ 127s] [ 127s] def test_retrieve_subkeys(self): [ 127s] """ INTEGRATION: retrieve multiple subkeys """ [ 127s] > set_result = self.client.write('/subtree/test_set', 'test-key1') [ 127s] [ 127s] src/etcd/tests/integration/test_simple.py:117: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] src/etcd/client.py:500: in write [ 127s] response = self.api_execute(path, method, params=params) [ 127s] src/etcd/client.py:907: in wrapper [ 127s] return self._handle_server_response(response) [ 127s] src/etcd/client.py:987: in _handle_server_response [ 127s] etcd.EtcdError.handle(r) [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] cls = [ 127s] payload = {'cause': '404 page not found\n', 'message': 'Bad response'} [ 127s] [ 127s] @classmethod [ 127s] def handle(cls, payload): [ 127s] """ [ 127s] Decodes the error and throws the appropriate error message [ 127s] [ 127s] :param payload: The decoded JSON error payload as a dict. [ 127s] """ [ 127s] error_code = payload.get("errorCode") [ 127s] message = payload.get("message") [ 127s] cause = payload.get("cause") [ 127s] msg = '{} : {}'.format(message, cause) [ 127s] status = payload.get("status") [ 127s] # Some general status handling, as [ 127s] # not all endpoints return coherent error messages [ 127s] if status == 404: [ 127s] error_code = 100 [ 127s] elif status == 401: [ 127s] error_code = 110 [ 127s] exc = cls.error_exceptions.get(error_code, EtcdException) [ 127s] if issubclass(exc, EtcdException): [ 127s] > raise exc(msg, payload) [ 127s] E etcd.EtcdException: Bad response : 404 page not found [ 127s] [ 127s] src/etcd/__init__.py:306: EtcdException [ 127s] ------------------------------ Captured log call ------------------------------- [ 127s] WARNING etcd.client:client.py:956 etcd response did not contain a cluster ID [ 127s] ____________________________ TestSimple.test_update ____________________________ [ 127s] [ 127s] self = [ 127s] [ 127s] def test_update(self): [ 127s] """INTEGRATION: update a value""" [ 127s] > self.client.set('/foo', 3) [ 127s] [ 127s] src/etcd/tests/integration/test_simple.py:107: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] src/etcd/client.py:721: in set [ 127s] return self.write(key, value, ttl=ttl) [ 127s] src/etcd/client.py:500: in write [ 127s] response = self.api_execute(path, method, params=params) [ 127s] src/etcd/client.py:907: in wrapper [ 127s] return self._handle_server_response(response) [ 127s] src/etcd/client.py:987: in _handle_server_response [ 127s] etcd.EtcdError.handle(r) [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] cls = [ 127s] payload = {'cause': '404 page not found\n', 'message': 'Bad response'} [ 127s] [ 127s] @classmethod [ 127s] def handle(cls, payload): [ 127s] """ [ 127s] Decodes the error and throws the appropriate error message [ 127s] [ 127s] :param payload: The decoded JSON error payload as a dict. [ 127s] """ [ 127s] error_code = payload.get("errorCode") [ 127s] message = payload.get("message") [ 127s] cause = payload.get("cause") [ 127s] msg = '{} : {}'.format(message, cause) [ 127s] status = payload.get("status") [ 127s] # Some general status handling, as [ 127s] # not all endpoints return coherent error messages [ 127s] if status == 404: [ 127s] error_code = 100 [ 127s] elif status == 401: [ 127s] error_code = 110 [ 127s] exc = cls.error_exceptions.get(error_code, EtcdException) [ 127s] if issubclass(exc, EtcdException): [ 127s] > raise exc(msg, payload) [ 127s] E etcd.EtcdException: Bad response : 404 page not found [ 127s] [ 127s] src/etcd/__init__.py:306: EtcdException [ 127s] ------------------------------ Captured log call ------------------------------- [ 127s] WARNING etcd.client:client.py:956 etcd response did not contain a cluster ID [ 127s] --------------------------- Captured stderr teardown --------------------------- [ 127s] 2020-08-12 19:45:05.227733 W | rafthttp: lost the TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:05.227764 W | rafthttp: lost the TCP streaming connection with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:45:05.227783 E | rafthttp: failed to read 1083aa28485d3319 on stream MsgApp v2 (unexpected EOF) [ 127s] 2020-08-12 19:45:05.227795 E | rafthttp: failed to read 1083aa28485d3319 on stream Message (unexpected EOF) [ 127s] 2020-08-12 19:45:05.227800 I | rafthttp: peer 1083aa28485d3319 became inactive (message send to peer failed) [ 127s] 2020-08-12 19:45:05.227802 I | rafthttp: peer 1083aa28485d3319 became inactive (message send to peer failed) [ 127s] 2020-08-12 19:45:05.227811 W | rafthttp: lost the TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:05.227840 W | rafthttp: lost the TCP streaming connection with peer 1083aa28485d3319 (stream Message reader) [ 127s] raft2020/08/12 19:45:06 INFO: 9ca0c7938a0c3dc5 is starting a new election at term 3 [ 127s] raft2020/08/12 19:45:06 INFO: 9ca0c7938a0c3dc5 became candidate at term 4 [ 127s] raft2020/08/12 19:45:06 INFO: 9ca0c7938a0c3dc5 received MsgVoteResp from 9ca0c7938a0c3dc5 at term 4 [ 127s] raft2020/08/12 19:45:06 INFO: 9ca0c7938a0c3dc5 [logterm: 3, index: 8] sent MsgVote request to 1083aa28485d3319 at term 4 [ 127s] raft2020/08/12 19:45:06 INFO: 9ca0c7938a0c3dc5 [logterm: 3, index: 8] sent MsgVote request to bc5472f61da31b5c at term 4 [ 127s] raft2020/08/12 19:45:06 INFO: raft.node: 9ca0c7938a0c3dc5 lost leader 1083aa28485d3319 at term 4 [ 127s] raft2020/08/12 19:45:06 INFO: bc5472f61da31b5c [term: 3] received a MsgVote message with higher term from 9ca0c7938a0c3dc5 [term: 4] [ 127s] raft2020/08/12 19:45:06 INFO: bc5472f61da31b5c became follower at term 4 [ 127s] raft2020/08/12 19:45:06 INFO: bc5472f61da31b5c [logterm: 3, index: 8, vote: 0] cast MsgVote for 9ca0c7938a0c3dc5 [logterm: 3, index: 8] at term 4 [ 127s] raft2020/08/12 19:45:06 INFO: raft.node: bc5472f61da31b5c lost leader 1083aa28485d3319 at term 4 [ 127s] raft2020/08/12 19:45:06 INFO: 9ca0c7938a0c3dc5 received MsgVoteResp from bc5472f61da31b5c at term 4 [ 127s] raft2020/08/12 19:45:06 INFO: 9ca0c7938a0c3dc5 has received 2 MsgVoteResp votes and 0 vote rejections [ 127s] raft2020/08/12 19:45:06 INFO: 9ca0c7938a0c3dc5 became leader at term 4 [ 127s] raft2020/08/12 19:45:06 INFO: raft.node: 9ca0c7938a0c3dc5 elected leader 9ca0c7938a0c3dc5 at term 4 [ 127s] raft2020/08/12 19:45:06 INFO: raft.node: bc5472f61da31b5c elected leader 9ca0c7938a0c3dc5 at term 4 [ 127s] 2020-08-12 19:45:06.539722 W | etcdserver: failed to reach the peerURL(http://127.0.0.1:8001) of member 1083aa28485d3319 (Get http://127.0.0.1:8001/version: dial tcp 127.0.0.1:8001: connect: connection refused) [ 127s] 2020-08-12 19:45:06.539786 W | etcdserver: cannot get the version of member 1083aa28485d3319 (Get http://127.0.0.1:8001/version: dial tcp 127.0.0.1:8001: connect: connection refused) [ 127s] 2020-08-12 19:45:06.719571 W | rafthttp: lost the TCP streaming connection with peer 1083aa28485d3319 (stream Message writer) [ 127s] 2020-08-12 19:45:07.235001 W | rafthttp: lost the TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:07.235087 E | rafthttp: failed to read 9ca0c7938a0c3dc5 on stream MsgApp v2 (unexpected EOF) [ 127s] 2020-08-12 19:45:07.235117 I | rafthttp: peer 9ca0c7938a0c3dc5 became inactive (message send to peer failed) [ 127s] 2020-08-12 19:45:07.235211 W | rafthttp: lost the TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] 2020-08-12 19:45:08.065904 W | rafthttp: health check for peer 1083aa28485d3319 could not connect: dial tcp 127.0.0.1:8001: connect: connection refused [ 127s] 2020-08-12 19:45:08.065987 W | rafthttp: health check for peer 1083aa28485d3319 could not connect: dial tcp 127.0.0.1:8001: connect: connection refused [ 127s] raft2020/08/12 19:45:08 INFO: bc5472f61da31b5c is starting a new election at term 4 [ 127s] raft2020/08/12 19:45:08 INFO: bc5472f61da31b5c became candidate at term 5 [ 127s] raft2020/08/12 19:45:08 INFO: bc5472f61da31b5c received MsgVoteResp from bc5472f61da31b5c at term 5 [ 127s] raft2020/08/12 19:45:08 INFO: bc5472f61da31b5c [logterm: 4, index: 9] sent MsgVote request to 1083aa28485d3319 at term 5 [ 127s] raft2020/08/12 19:45:08 INFO: bc5472f61da31b5c [logterm: 4, index: 9] sent MsgVote request to 9ca0c7938a0c3dc5 at term 5 [ 127s] raft2020/08/12 19:45:08 INFO: raft.node: bc5472f61da31b5c lost leader 9ca0c7938a0c3dc5 at term 5 [ 127s] _____________ TestErrors.test_creating_already_existing_directory ______________ [ 127s] [ 127s] self = [ 127s] [ 127s] def test_creating_already_existing_directory(self): [ 127s] """ INTEGRATION: creating an already existing directory without [ 127s] `prevExist=True` should fail """ [ 127s] > self.client.write('/mydir', None, dir=True) [ 127s] [ 127s] src/etcd/tests/integration/test_simple.py:159: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] src/etcd/client.py:500: in write [ 127s] response = self.api_execute(path, method, params=params) [ 127s] src/etcd/client.py:907: in wrapper [ 127s] return self._handle_server_response(response) [ 127s] src/etcd/client.py:987: in _handle_server_response [ 127s] etcd.EtcdError.handle(r) [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] cls = [ 127s] payload = {'cause': '404 page not found\n', 'message': 'Bad response'} [ 127s] [ 127s] @classmethod [ 127s] def handle(cls, payload): [ 127s] """ [ 127s] Decodes the error and throws the appropriate error message [ 127s] [ 127s] :param payload: The decoded JSON error payload as a dict. [ 127s] """ [ 127s] error_code = payload.get("errorCode") [ 127s] message = payload.get("message") [ 127s] cause = payload.get("cause") [ 127s] msg = '{} : {}'.format(message, cause) [ 127s] status = payload.get("status") [ 127s] # Some general status handling, as [ 127s] # not all endpoints return coherent error messages [ 127s] if status == 404: [ 127s] error_code = 100 [ 127s] elif status == 401: [ 127s] error_code = 110 [ 127s] exc = cls.error_exceptions.get(error_code, EtcdException) [ 127s] if issubclass(exc, EtcdException): [ 127s] > raise exc(msg, payload) [ 127s] E etcd.EtcdException: Bad response : 404 page not found [ 127s] [ 127s] src/etcd/__init__.py:306: EtcdException [ 127s] ---------------------------- Captured stderr setup ----------------------------- [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:45:11.280577 I | etcdmain: etcd Version: 3.4.3 [ 127s] 2020-08-12 19:45:11.280614 I | etcdmain: Git SHA: Not provided (use ./build instead of go build) [ 127s] 2020-08-12 19:45:11.280622 I | etcdmain: Go Version: go1.12.17 [ 127s] 2020-08-12 19:45:11.280628 I | etcdmain: Go OS/Arch: linux/amd64 [ 127s] 2020-08-12 19:45:11.280637 I | etcdmain: setting maximum number of CPUs to 8, total number of available CPUs is 8 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:45:11.280857 I | embed: name = test-node-0 [ 127s] 2020-08-12 19:45:11.280872 I | embed: data dir = /tmp/python-etcdh5os1v9y/python-etcd.0-z7zqvwko [ 127s] 2020-08-12 19:45:11.280879 I | embed: member dir = /tmp/python-etcdh5os1v9y/python-etcd.0-z7zqvwko/member [ 127s] 2020-08-12 19:45:11.280886 I | embed: heartbeat = 100ms [ 127s] 2020-08-12 19:45:11.280892 I | embed: election = 1000ms [ 127s] 2020-08-12 19:45:11.280898 I | embed: snapshot count = 100000 [ 127s] 2020-08-12 19:45:11.280908 I | embed: advertise client URLs = http://127.0.0.1:6001 [ 127s] 2020-08-12 19:45:11.302493 I | etcdserver: starting member 1083aa28485d3319 in cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:11 INFO: 1083aa28485d3319 switched to configuration voters=() [ 127s] raft2020/08/12 19:45:11 INFO: 1083aa28485d3319 became follower at term 0 [ 127s] raft2020/08/12 19:45:11 INFO: newRaft 1083aa28485d3319 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0] [ 127s] raft2020/08/12 19:45:11 INFO: 1083aa28485d3319 became follower at term 1 [ 127s] raft2020/08/12 19:45:11 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153) [ 127s] raft2020/08/12 19:45:11 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965) [ 127s] raft2020/08/12 19:45:11 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:11.320956 W | auth: simple token is not cryptographically signed [ 127s] 2020-08-12 19:45:11.333771 I | rafthttp: starting peer 9ca0c7938a0c3dc5... [ 127s] 2020-08-12 19:45:11.333910 I | rafthttp: started HTTP pipelining with peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:45:11.337285 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (writer) [ 127s] 2020-08-12 19:45:11.337416 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (writer) [ 127s] 2020-08-12 19:45:11.342197 I | rafthttp: started peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:45:11.342275 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:11.342351 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] 2020-08-12 19:45:11.342425 I | rafthttp: added peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:45:11.342492 I | rafthttp: starting peer bc5472f61da31b5c... [ 127s] 2020-08-12 19:45:11.342554 I | rafthttp: started HTTP pipelining with peer bc5472f61da31b5c [ 127s] 2020-08-12 19:45:11.345392 I | rafthttp: started streaming with peer bc5472f61da31b5c (writer) [ 127s] 2020-08-12 19:45:11.346967 I | rafthttp: started streaming with peer bc5472f61da31b5c (writer) [ 127s] 2020-08-12 19:45:11.350091 I | rafthttp: started peer bc5472f61da31b5c [ 127s] 2020-08-12 19:45:11.350223 I | rafthttp: started streaming with peer bc5472f61da31b5c (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:11.350495 I | rafthttp: started streaming with peer bc5472f61da31b5c (stream Message reader) [ 127s] 2020-08-12 19:45:11.350680 I | rafthttp: added peer bc5472f61da31b5c [ 127s] 2020-08-12 19:45:11.350768 I | etcdserver: starting server... [version: 3.4.3, cluster version: to_be_decided] [ 127s] raft2020/08/12 19:45:11 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:11.352392 I | etcdserver/membership: added member 1083aa28485d3319 [http://127.0.0.1:8001] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:11 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:11.352970 I | etcdserver/membership: added member 9ca0c7938a0c3dc5 [http://127.0.0.1:8002] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:11 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:11.353243 I | etcdserver/membership: added member bc5472f61da31b5c [http://127.0.0.1:8003] to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:45:11.355780 I | embed: listening for peers on 127.0.0.1:8001 [ 127s] raft2020/08/12 19:45:12 INFO: 1083aa28485d3319 is starting a new election at term 1 [ 127s] raft2020/08/12 19:45:12 INFO: 1083aa28485d3319 became candidate at term 2 [ 127s] raft2020/08/12 19:45:12 INFO: 1083aa28485d3319 received MsgVoteResp from 1083aa28485d3319 at term 2 [ 127s] raft2020/08/12 19:45:12 INFO: 1083aa28485d3319 [logterm: 1, index: 3] sent MsgVote request to 9ca0c7938a0c3dc5 at term 2 [ 127s] raft2020/08/12 19:45:12 INFO: 1083aa28485d3319 [logterm: 1, index: 3] sent MsgVote request to bc5472f61da31b5c at term 2 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:45:13.288886 I | etcdmain: etcd Version: 3.4.3 [ 127s] 2020-08-12 19:45:13.288920 I | etcdmain: Git SHA: Not provided (use ./build instead of go build) [ 127s] 2020-08-12 19:45:13.288929 I | etcdmain: Go Version: go1.12.17 [ 127s] 2020-08-12 19:45:13.288937 I | etcdmain: Go OS/Arch: linux/amd64 [ 127s] 2020-08-12 19:45:13.288946 I | etcdmain: setting maximum number of CPUs to 8, total number of available CPUs is 8 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:45:13.289278 I | embed: name = test-node-1 [ 127s] 2020-08-12 19:45:13.289297 I | embed: data dir = /tmp/python-etcdh5os1v9y/python-etcd.1-9gugbqba [ 127s] 2020-08-12 19:45:13.289306 I | embed: member dir = /tmp/python-etcdh5os1v9y/python-etcd.1-9gugbqba/member [ 127s] 2020-08-12 19:45:13.289314 I | embed: heartbeat = 100ms [ 127s] 2020-08-12 19:45:13.289321 I | embed: election = 1000ms [ 127s] 2020-08-12 19:45:13.289328 I | embed: snapshot count = 100000 [ 127s] 2020-08-12 19:45:13.289345 I | embed: advertise client URLs = http://127.0.0.1:6002 [ 127s] 2020-08-12 19:45:13.309838 I | etcdserver: starting member 9ca0c7938a0c3dc5 in cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:13 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=() [ 127s] raft2020/08/12 19:45:13 INFO: 9ca0c7938a0c3dc5 became follower at term 0 [ 127s] raft2020/08/12 19:45:13 INFO: newRaft 9ca0c7938a0c3dc5 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0] [ 127s] raft2020/08/12 19:45:13 INFO: 9ca0c7938a0c3dc5 became follower at term 1 [ 127s] raft2020/08/12 19:45:13 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153) [ 127s] raft2020/08/12 19:45:13 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965) [ 127s] raft2020/08/12 19:45:13 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:13.323151 W | auth: simple token is not cryptographically signed [ 127s] 2020-08-12 19:45:13.346027 I | rafthttp: starting peer 1083aa28485d3319... [ 127s] 2020-08-12 19:45:13.346218 I | rafthttp: started HTTP pipelining with peer 1083aa28485d3319 [ 127s] 2020-08-12 19:45:13.347105 I | rafthttp: started streaming with peer 1083aa28485d3319 (writer) [ 127s] 2020-08-12 19:45:13.347477 I | rafthttp: started streaming with peer 1083aa28485d3319 (writer) [ 127s] 2020-08-12 19:45:13.354996 I | rafthttp: started peer 1083aa28485d3319 [ 127s] 2020-08-12 19:45:13.355088 I | rafthttp: added peer 1083aa28485d3319 [ 127s] 2020-08-12 19:45:13.355125 I | rafthttp: started streaming with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:13.355191 I | rafthttp: started streaming with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:45:13.355392 I | rafthttp: starting peer bc5472f61da31b5c... [ 127s] 2020-08-12 19:45:13.355522 I | rafthttp: started HTTP pipelining with peer bc5472f61da31b5c [ 127s] 2020-08-12 19:45:13.356479 I | rafthttp: peer 9ca0c7938a0c3dc5 became active [ 127s] 2020-08-12 19:45:13.356593 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message writer) [ 127s] 2020-08-12 19:45:13.357201 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:45:13.357874 I | rafthttp: peer 1083aa28485d3319 became active [ 127s] 2020-08-12 19:45:13.358035 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:45:13.358098 I | rafthttp: started streaming with peer bc5472f61da31b5c (writer) [ 127s] 2020-08-12 19:45:13.358268 I | rafthttp: started streaming with peer bc5472f61da31b5c (writer) [ 127s] 2020-08-12 19:45:13.358306 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:13.363120 I | rafthttp: started peer bc5472f61da31b5c [ 127s] 2020-08-12 19:45:13.363194 I | rafthttp: started streaming with peer bc5472f61da31b5c (stream Message reader) [ 127s] 2020-08-12 19:45:13.363324 I | rafthttp: added peer bc5472f61da31b5c [ 127s] 2020-08-12 19:45:13.363420 I | etcdserver: starting server... [version: 3.4.3, cluster version: to_be_decided] [ 127s] 2020-08-12 19:45:13.363601 I | rafthttp: started streaming with peer bc5472f61da31b5c (stream MsgApp v2 reader) [ 127s] raft2020/08/12 19:45:13 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:13.366776 I | etcdserver/membership: added member 1083aa28485d3319 [http://127.0.0.1:8001] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:13 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:13.367073 I | etcdserver/membership: added member 9ca0c7938a0c3dc5 [http://127.0.0.1:8002] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:13 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:13.367298 I | etcdserver/membership: added member bc5472f61da31b5c [http://127.0.0.1:8003] to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:45:13.369822 I | embed: listening for peers on 127.0.0.1:8002 [ 127s] 2020-08-12 19:45:13.370617 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream Message writer) [ 127s] 2020-08-12 19:45:13.370703 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] 2020-08-12 19:45:13.370739 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:45:13.370803 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] raft2020/08/12 19:45:14 INFO: 1083aa28485d3319 is starting a new election at term 2 [ 127s] raft2020/08/12 19:45:14 INFO: 1083aa28485d3319 became candidate at term 3 [ 127s] raft2020/08/12 19:45:14 INFO: 1083aa28485d3319 received MsgVoteResp from 1083aa28485d3319 at term 3 [ 127s] raft2020/08/12 19:45:14 INFO: 1083aa28485d3319 [logterm: 1, index: 3] sent MsgVote request to 9ca0c7938a0c3dc5 at term 3 [ 127s] raft2020/08/12 19:45:14 INFO: 1083aa28485d3319 [logterm: 1, index: 3] sent MsgVote request to bc5472f61da31b5c at term 3 [ 127s] raft2020/08/12 19:45:14 INFO: 9ca0c7938a0c3dc5 [term: 1] received a MsgVote message with higher term from 1083aa28485d3319 [term: 3] [ 127s] raft2020/08/12 19:45:14 INFO: 9ca0c7938a0c3dc5 became follower at term 3 [ 127s] raft2020/08/12 19:45:14 INFO: 9ca0c7938a0c3dc5 [logterm: 1, index: 3, vote: 0] cast MsgVote for 1083aa28485d3319 [logterm: 1, index: 3] at term 3 [ 127s] raft2020/08/12 19:45:14 INFO: 1083aa28485d3319 received MsgVoteResp from 9ca0c7938a0c3dc5 at term 3 [ 127s] raft2020/08/12 19:45:14 INFO: 1083aa28485d3319 has received 2 MsgVoteResp votes and 0 vote rejections [ 127s] raft2020/08/12 19:45:14 INFO: 1083aa28485d3319 became leader at term 3 [ 127s] raft2020/08/12 19:45:14 INFO: raft.node: 1083aa28485d3319 elected leader 1083aa28485d3319 at term 3 [ 127s] raft2020/08/12 19:45:14 INFO: raft.node: 9ca0c7938a0c3dc5 elected leader 1083aa28485d3319 at term 3 [ 127s] 2020-08-12 19:45:14.431499 W | etcdserver: failed to reach the peerURL(http://127.0.0.1:8003) of member bc5472f61da31b5c (Get http://127.0.0.1:8003/version: dial tcp 127.0.0.1:8003: connect: connection refused) [ 127s] 2020-08-12 19:45:14.431602 W | etcdserver: cannot get the version of member bc5472f61da31b5c (Get http://127.0.0.1:8003/version: dial tcp 127.0.0.1:8003: connect: connection refused) [ 127s] 2020-08-12 19:45:14.431782 I | etcdserver: setting up the initial cluster version to 3.0 [ 127s] 2020-08-12 19:45:14.440158 I | etcdserver: published {Name:test-node-0 ClientURLs:[http://127.0.0.1:6001]} to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:45:14.440322 I | embed: ready to serve client requests [ 127s] 2020-08-12 19:45:14.442725 N | embed: serving insecure client requests on 127.0.0.1:6001, this is strongly discouraged! [ 127s] 2020-08-12 19:45:14.450136 I | embed: ready to serve client requests [ 127s] 2020-08-12 19:45:14.450203 N | etcdserver/membership: set the initial cluster version to 3.0 [ 127s] 2020-08-12 19:45:14.450480 I | etcdserver: published {Name:test-node-1 ClientURLs:[http://127.0.0.1:6002]} to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:45:14.450618 N | etcdserver/membership: set the initial cluster version to 3.0 [ 127s] 2020-08-12 19:45:14.450802 I | etcdserver/api: enabled capabilities for version 3.0 [ 127s] 2020-08-12 19:45:14.450915 I | etcdserver/api: enabled capabilities for version 3.0 [ 127s] 2020-08-12 19:45:14.453468 N | embed: serving insecure client requests on 127.0.0.1:6002, this is strongly discouraged! [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:45:15.270833 I | etcdmain: etcd Version: 3.4.3 [ 127s] 2020-08-12 19:45:15.270848 I | etcdmain: Git SHA: Not provided (use ./build instead of go build) [ 127s] 2020-08-12 19:45:15.270852 I | etcdmain: Go Version: go1.12.17 [ 127s] 2020-08-12 19:45:15.270860 I | etcdmain: Go OS/Arch: linux/amd64 [ 127s] 2020-08-12 19:45:15.270865 I | etcdmain: setting maximum number of CPUs to 8, total number of available CPUs is 8 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:45:15.271008 I | embed: name = test-node-2 [ 127s] 2020-08-12 19:45:15.271016 I | embed: data dir = /tmp/python-etcdh5os1v9y/python-etcd.2-ihs0bs0x [ 127s] 2020-08-12 19:45:15.271020 I | embed: member dir = /tmp/python-etcdh5os1v9y/python-etcd.2-ihs0bs0x/member [ 127s] 2020-08-12 19:45:15.271024 I | embed: heartbeat = 100ms [ 127s] 2020-08-12 19:45:15.271028 I | embed: election = 1000ms [ 127s] 2020-08-12 19:45:15.271032 I | embed: snapshot count = 100000 [ 127s] 2020-08-12 19:45:15.271038 I | embed: advertise client URLs = http://127.0.0.1:6003 [ 127s] 2020-08-12 19:45:15.297007 I | etcdserver: starting member bc5472f61da31b5c in cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:15 INFO: bc5472f61da31b5c switched to configuration voters=() [ 127s] raft2020/08/12 19:45:15 INFO: bc5472f61da31b5c became follower at term 0 [ 127s] raft2020/08/12 19:45:15 INFO: newRaft bc5472f61da31b5c [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0] [ 127s] raft2020/08/12 19:45:15 INFO: bc5472f61da31b5c became follower at term 1 [ 127s] raft2020/08/12 19:45:15 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153) [ 127s] raft2020/08/12 19:45:15 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965) [ 127s] raft2020/08/12 19:45:15 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:15.308880 W | auth: simple token is not cryptographically signed [ 127s] 2020-08-12 19:45:15.319408 I | rafthttp: starting peer 1083aa28485d3319... [ 127s] 2020-08-12 19:45:15.319438 I | rafthttp: started HTTP pipelining with peer 1083aa28485d3319 [ 127s] 2020-08-12 19:45:15.319907 I | rafthttp: started streaming with peer 1083aa28485d3319 (writer) [ 127s] 2020-08-12 19:45:15.320030 I | rafthttp: started streaming with peer 1083aa28485d3319 (writer) [ 127s] 2020-08-12 19:45:15.320958 I | rafthttp: started peer 1083aa28485d3319 [ 127s] 2020-08-12 19:45:15.320978 I | rafthttp: added peer 1083aa28485d3319 [ 127s] 2020-08-12 19:45:15.320986 I | rafthttp: started streaming with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:15.321003 I | rafthttp: started streaming with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:45:15.321022 I | rafthttp: starting peer 9ca0c7938a0c3dc5... [ 127s] 2020-08-12 19:45:15.321043 I | rafthttp: started HTTP pipelining with peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:45:15.321697 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (writer) [ 127s] 2020-08-12 19:45:15.321759 I | rafthttp: peer bc5472f61da31b5c became active [ 127s] 2020-08-12 19:45:15.321783 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream Message writer) [ 127s] 2020-08-12 19:45:15.321899 I | rafthttp: peer 1083aa28485d3319 became active [ 127s] 2020-08-12 19:45:15.321919 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:45:15.322053 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (writer) [ 127s] 2020-08-12 19:45:15.322190 I | rafthttp: started peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:45:15.322192 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:45:15.322229 I | rafthttp: added peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:45:15.322252 I | etcdserver: starting server... [version: 3.4.3, cluster version: to_be_decided] [ 127s] 2020-08-12 19:45:15.322340 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:15.322482 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] 2020-08-12 19:45:15.323232 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] raft2020/08/12 19:45:15 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:15.323501 I | etcdserver/membership: added member 1083aa28485d3319 [http://127.0.0.1:8001] to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:45:15.323820 I | rafthttp: peer 9ca0c7938a0c3dc5 became active [ 127s] 2020-08-12 19:45:15.323849 I | rafthttp: peer bc5472f61da31b5c became active [ 127s] 2020-08-12 19:45:15.323877 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:45:15.323877 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] raft2020/08/12 19:45:15 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:15.324079 I | etcdserver/membership: added member 9ca0c7938a0c3dc5 [http://127.0.0.1:8002] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:15 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:15.324160 I | etcdserver/membership: added member bc5472f61da31b5c [http://127.0.0.1:8003] to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:45:15.324191 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream Message writer) [ 127s] 2020-08-12 19:45:15.324203 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] 2020-08-12 19:45:15.325067 I | embed: listening for peers on 127.0.0.1:8003 [ 127s] raft2020/08/12 19:45:15 INFO: bc5472f61da31b5c [term: 1] received a MsgHeartbeat message with higher term from 1083aa28485d3319 [term: 3] [ 127s] raft2020/08/12 19:45:15 INFO: bc5472f61da31b5c became follower at term 3 [ 127s] raft2020/08/12 19:45:15 INFO: raft.node: bc5472f61da31b5c elected leader 1083aa28485d3319 at term 3 [ 127s] 2020-08-12 19:45:15.330266 N | etcdserver/membership: set the initial cluster version to 3.0 [ 127s] 2020-08-12 19:45:15.330319 I | etcdserver/api: enabled capabilities for version 3.0 [ 127s] 2020-08-12 19:45:15.337506 I | embed: ready to serve client requests [ 127s] 2020-08-12 19:45:15.337546 I | etcdserver: published {Name:test-node-2 ClientURLs:[http://127.0.0.1:6003]} to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:45:15.337957 N | embed: serving insecure client requests on 127.0.0.1:6003, this is strongly discouraged! [ 127s] 2020-08-12 19:45:15.352098 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:15.352112 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:45:15.352253 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream Message writer) [ 127s] 2020-08-12 19:45:15.352266 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream Message reader) [ 127s] 2020-08-12 19:45:15.364660 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message writer) [ 127s] 2020-08-12 19:45:15.364680 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream Message reader) [ 127s] 2020-08-12 19:45:15.366218 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:15.366229 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:45:15.370399 I | etcdserver: 1083aa28485d3319 initialized peer connection; fast-forwarding 8 ticks (election ticks 10) with 2 active peer(s) [ 127s] 2020-08-12 19:45:15.371743 I | etcdserver: 9ca0c7938a0c3dc5 initialized peer connection; fast-forwarding 8 ticks (election ticks 10) with 2 active peer(s) [ 127s] 2020-08-12 19:45:15.373574 I | etcdserver: bc5472f61da31b5c initialized peer connection; fast-forwarding 8 ticks (election ticks 10) with 2 active peer(s) [ 127s] ------------------------------ Captured log call ------------------------------- [ 127s] WARNING etcd.client:client.py:956 etcd response did not contain a cluster ID [ 127s] ________________________ TestErrors.test_is_not_a_file _________________________ [ 127s] [ 127s] self = [ 127s] [ 127s] def test_is_not_a_file(self): [ 127s] """ INTEGRATION: try to write value to an existing directory """ [ 127s] [ 127s] > self.client.set('/directory/test-key', 'test-value') [ 127s] [ 127s] src/etcd/tests/integration/test_simple.py:141: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] src/etcd/client.py:721: in set [ 127s] return self.write(key, value, ttl=ttl) [ 127s] src/etcd/client.py:500: in write [ 127s] response = self.api_execute(path, method, params=params) [ 127s] src/etcd/client.py:907: in wrapper [ 127s] return self._handle_server_response(response) [ 127s] src/etcd/client.py:987: in _handle_server_response [ 127s] etcd.EtcdError.handle(r) [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] cls = [ 127s] payload = {'cause': '404 page not found\n', 'message': 'Bad response'} [ 127s] [ 127s] @classmethod [ 127s] def handle(cls, payload): [ 127s] """ [ 127s] Decodes the error and throws the appropriate error message [ 127s] [ 127s] :param payload: The decoded JSON error payload as a dict. [ 127s] """ [ 127s] error_code = payload.get("errorCode") [ 127s] message = payload.get("message") [ 127s] cause = payload.get("cause") [ 127s] msg = '{} : {}'.format(message, cause) [ 127s] status = payload.get("status") [ 127s] # Some general status handling, as [ 127s] # not all endpoints return coherent error messages [ 127s] if status == 404: [ 127s] error_code = 100 [ 127s] elif status == 401: [ 127s] error_code = 110 [ 127s] exc = cls.error_exceptions.get(error_code, EtcdException) [ 127s] if issubclass(exc, EtcdException): [ 127s] > raise exc(msg, payload) [ 127s] E etcd.EtcdException: Bad response : 404 page not found [ 127s] [ 127s] src/etcd/__init__.py:306: EtcdException [ 127s] ------------------------------ Captured log call ------------------------------- [ 127s] WARNING etcd.client:client.py:956 etcd response did not contain a cluster ID [ 127s] _________________________ TestErrors.test_test_and_set _________________________ [ 127s] [ 127s] self = [ 127s] [ 127s] def test_test_and_set(self): [ 127s] """ INTEGRATION: try test_and_set operation """ [ 127s] [ 127s] > set_result = self.client.set('/test-key', 'old-test-value') [ 127s] [ 127s] src/etcd/tests/integration/test_simple.py:147: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] src/etcd/client.py:721: in set [ 127s] return self.write(key, value, ttl=ttl) [ 127s] src/etcd/client.py:500: in write [ 127s] response = self.api_execute(path, method, params=params) [ 127s] src/etcd/client.py:907: in wrapper [ 127s] return self._handle_server_response(response) [ 127s] src/etcd/client.py:987: in _handle_server_response [ 127s] etcd.EtcdError.handle(r) [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] cls = [ 127s] payload = {'cause': '404 page not found\n', 'message': 'Bad response'} [ 127s] [ 127s] @classmethod [ 127s] def handle(cls, payload): [ 127s] """ [ 127s] Decodes the error and throws the appropriate error message [ 127s] [ 127s] :param payload: The decoded JSON error payload as a dict. [ 127s] """ [ 127s] error_code = payload.get("errorCode") [ 127s] message = payload.get("message") [ 127s] cause = payload.get("cause") [ 127s] msg = '{} : {}'.format(message, cause) [ 127s] status = payload.get("status") [ 127s] # Some general status handling, as [ 127s] # not all endpoints return coherent error messages [ 127s] if status == 404: [ 127s] error_code = 100 [ 127s] elif status == 401: [ 127s] error_code = 110 [ 127s] exc = cls.error_exceptions.get(error_code, EtcdException) [ 127s] if issubclass(exc, EtcdException): [ 127s] > raise exc(msg, payload) [ 127s] E etcd.EtcdException: Bad response : 404 page not found [ 127s] [ 127s] src/etcd/__init__.py:306: EtcdException [ 127s] ------------------------------ Captured log call ------------------------------- [ 127s] WARNING etcd.client:client.py:956 etcd response did not contain a cluster ID [ 127s] --------------------------- Captured stderr teardown --------------------------- [ 127s] 2020-08-12 19:45:17.418830 W | rafthttp: lost the TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:17.418892 E | rafthttp: failed to read 1083aa28485d3319 on stream MsgApp v2 (unexpected EOF) [ 127s] 2020-08-12 19:45:17.418900 W | rafthttp: lost the TCP streaming connection with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:45:17.418919 I | rafthttp: peer 1083aa28485d3319 became inactive (message send to peer failed) [ 127s] 2020-08-12 19:45:17.418934 E | rafthttp: failed to read 1083aa28485d3319 on stream Message (unexpected EOF) [ 127s] 2020-08-12 19:45:17.418945 I | rafthttp: peer 1083aa28485d3319 became inactive (message send to peer failed) [ 127s] 2020-08-12 19:45:17.418983 W | rafthttp: lost the TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:17.419001 W | rafthttp: lost the TCP streaming connection with peer 1083aa28485d3319 (stream Message reader) [ 127s] raft2020/08/12 19:45:18 INFO: bc5472f61da31b5c is starting a new election at term 3 [ 127s] raft2020/08/12 19:45:18 INFO: bc5472f61da31b5c became candidate at term 4 [ 127s] raft2020/08/12 19:45:18 INFO: bc5472f61da31b5c received MsgVoteResp from bc5472f61da31b5c at term 4 [ 127s] raft2020/08/12 19:45:18 INFO: bc5472f61da31b5c [logterm: 3, index: 8] sent MsgVote request to 1083aa28485d3319 at term 4 [ 127s] raft2020/08/12 19:45:18 INFO: bc5472f61da31b5c [logterm: 3, index: 8] sent MsgVote request to 9ca0c7938a0c3dc5 at term 4 [ 127s] raft2020/08/12 19:45:18 INFO: raft.node: bc5472f61da31b5c lost leader 1083aa28485d3319 at term 4 [ 127s] raft2020/08/12 19:45:19 INFO: 9ca0c7938a0c3dc5 [term: 3] received a MsgVote message with higher term from bc5472f61da31b5c [term: 4] [ 127s] raft2020/08/12 19:45:19 INFO: 9ca0c7938a0c3dc5 became follower at term 4 [ 127s] raft2020/08/12 19:45:19 INFO: 9ca0c7938a0c3dc5 [logterm: 3, index: 8, vote: 0] cast MsgVote for bc5472f61da31b5c [logterm: 3, index: 8] at term 4 [ 127s] raft2020/08/12 19:45:19 INFO: raft.node: 9ca0c7938a0c3dc5 lost leader 1083aa28485d3319 at term 4 [ 127s] raft2020/08/12 19:45:19 INFO: bc5472f61da31b5c received MsgVoteResp from 9ca0c7938a0c3dc5 at term 4 [ 127s] raft2020/08/12 19:45:19 INFO: bc5472f61da31b5c has received 2 MsgVoteResp votes and 0 vote rejections [ 127s] raft2020/08/12 19:45:19 INFO: bc5472f61da31b5c became leader at term 4 [ 127s] raft2020/08/12 19:45:19 INFO: raft.node: bc5472f61da31b5c elected leader bc5472f61da31b5c at term 4 [ 127s] raft2020/08/12 19:45:19 INFO: raft.node: 9ca0c7938a0c3dc5 elected leader bc5472f61da31b5c at term 4 [ 127s] 2020-08-12 19:45:19.024319 W | etcdserver: failed to reach the peerURL(http://127.0.0.1:8001) of member 1083aa28485d3319 (Get http://127.0.0.1:8001/version: dial tcp 127.0.0.1:8001: connect: connection refused) [ 127s] 2020-08-12 19:45:19.024383 W | etcdserver: cannot get the version of member 1083aa28485d3319 (Get http://127.0.0.1:8001/version: dial tcp 127.0.0.1:8001: connect: connection refused) [ 127s] 2020-08-12 19:45:19.198358 W | rafthttp: lost the TCP streaming connection with peer 1083aa28485d3319 (stream Message writer) [ 127s] 2020-08-12 19:45:19.425895 W | rafthttp: lost the TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:19.426051 W | rafthttp: lost the TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] 2020-08-12 19:45:19.426462 E | rafthttp: failed to read 9ca0c7938a0c3dc5 on stream MsgApp v2 (unexpected EOF) [ 127s] 2020-08-12 19:45:19.426494 I | rafthttp: peer 9ca0c7938a0c3dc5 became inactive (message send to peer failed) [ 127s] 2020-08-12 19:45:19.798377 W | rafthttp: lost the TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message writer) [ 127s] 2020-08-12 19:45:20.321288 W | rafthttp: health check for peer 1083aa28485d3319 could not connect: dial tcp 127.0.0.1:8001: connect: connection refused [ 127s] 2020-08-12 19:45:20.321399 W | rafthttp: health check for peer 1083aa28485d3319 could not connect: dial tcp 127.0.0.1:8001: connect: connection refused [ 127s] raft2020/08/12 19:45:20 WARN: bc5472f61da31b5c stepped down to follower since quorum is not active [ 127s] raft2020/08/12 19:45:20 INFO: bc5472f61da31b5c became follower at term 4 [ 127s] raft2020/08/12 19:45:20 INFO: raft.node: bc5472f61da31b5c lost leader bc5472f61da31b5c at term 4 [ 127s] _____________________ TestClusterFunctions.test_reconnect ______________________ [ 127s] [ 127s] self = [ 127s] [ 127s] def test_reconnect(self): [ 127s] """ INTEGRATION: get key after the server we're connected fails. """ [ 127s] self.processHelper.stop() [ 127s] self.processHelper.run(number=3) [ 127s] > self.client = etcd.Client(port=6001, allow_reconnect=True) [ 127s] [ 127s] src/etcd/tests/integration/test_simple.py:183: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] src/etcd/client.py:203: in __init__ [ 127s] set(self.machines)) [ 127s] src/etcd/client.py:305: in machines [ 127s] self._handle_server_response(response).data.decode('utf-8').split(',') [ 127s] src/etcd/client.py:987: in _handle_server_response [ 127s] etcd.EtcdError.handle(r) [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] cls = [ 127s] payload = {'cause': '404 page not found\n', 'message': 'Bad response'} [ 127s] [ 127s] @classmethod [ 127s] def handle(cls, payload): [ 127s] """ [ 127s] Decodes the error and throws the appropriate error message [ 127s] [ 127s] :param payload: The decoded JSON error payload as a dict. [ 127s] """ [ 127s] error_code = payload.get("errorCode") [ 127s] message = payload.get("message") [ 127s] cause = payload.get("cause") [ 127s] msg = '{} : {}'.format(message, cause) [ 127s] status = payload.get("status") [ 127s] # Some general status handling, as [ 127s] # not all endpoints return coherent error messages [ 127s] if status == 404: [ 127s] error_code = 100 [ 127s] elif status == 401: [ 127s] error_code = 110 [ 127s] exc = cls.error_exceptions.get(error_code, EtcdException) [ 127s] if issubclass(exc, EtcdException): [ 127s] > raise exc(msg, payload) [ 127s] E etcd.EtcdException: Bad response : 404 page not found [ 127s] [ 127s] src/etcd/__init__.py:306: EtcdException [ 127s] ----------------------------- Captured stderr call ----------------------------- [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:45:23.472544 I | etcdmain: etcd Version: 3.4.3 [ 127s] 2020-08-12 19:45:23.472606 I | etcdmain: Git SHA: Not provided (use ./build instead of go build) [ 127s] 2020-08-12 19:45:23.472616 I | etcdmain: Go Version: go1.12.17 [ 127s] 2020-08-12 19:45:23.472625 I | etcdmain: Go OS/Arch: linux/amd64 [ 127s] 2020-08-12 19:45:23.472635 I | etcdmain: setting maximum number of CPUs to 8, total number of available CPUs is 8 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:45:23.472873 I | embed: name = test-node-0 [ 127s] 2020-08-12 19:45:23.472887 I | embed: data dir = /tmp/python-etcd2q2emda0/python-etcd.0-j8jhqo2z [ 127s] 2020-08-12 19:45:23.472896 I | embed: member dir = /tmp/python-etcd2q2emda0/python-etcd.0-j8jhqo2z/member [ 127s] 2020-08-12 19:45:23.472907 I | embed: heartbeat = 100ms [ 127s] 2020-08-12 19:45:23.472916 I | embed: election = 1000ms [ 127s] 2020-08-12 19:45:23.472925 I | embed: snapshot count = 100000 [ 127s] 2020-08-12 19:45:23.472944 I | embed: advertise client URLs = http://127.0.0.1:6001 [ 127s] 2020-08-12 19:45:23.499082 I | etcdserver: starting member 1083aa28485d3319 in cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:23 INFO: 1083aa28485d3319 switched to configuration voters=() [ 127s] raft2020/08/12 19:45:23 INFO: 1083aa28485d3319 became follower at term 0 [ 127s] raft2020/08/12 19:45:23 INFO: newRaft 1083aa28485d3319 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0] [ 127s] raft2020/08/12 19:45:23 INFO: 1083aa28485d3319 became follower at term 1 [ 127s] raft2020/08/12 19:45:23 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153) [ 127s] raft2020/08/12 19:45:23 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965) [ 127s] raft2020/08/12 19:45:23 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:23.530620 W | auth: simple token is not cryptographically signed [ 127s] 2020-08-12 19:45:23.548043 I | rafthttp: starting peer 9ca0c7938a0c3dc5... [ 127s] 2020-08-12 19:45:23.548191 I | rafthttp: started HTTP pipelining with peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:45:23.549075 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (writer) [ 127s] 2020-08-12 19:45:23.549534 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (writer) [ 127s] 2020-08-12 19:45:23.553668 I | rafthttp: started peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:45:23.553946 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] 2020-08-12 19:45:23.554107 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:23.554249 I | rafthttp: added peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:45:23.554355 I | rafthttp: starting peer bc5472f61da31b5c... [ 127s] 2020-08-12 19:45:23.554430 I | rafthttp: started HTTP pipelining with peer bc5472f61da31b5c [ 127s] 2020-08-12 19:45:23.556473 I | rafthttp: started streaming with peer bc5472f61da31b5c (writer) [ 127s] 2020-08-12 19:45:23.557011 I | rafthttp: started streaming with peer bc5472f61da31b5c (writer) [ 127s] 2020-08-12 19:45:23.558663 I | rafthttp: started peer bc5472f61da31b5c [ 127s] 2020-08-12 19:45:23.558830 I | rafthttp: added peer bc5472f61da31b5c [ 127s] 2020-08-12 19:45:23.558917 I | etcdserver: starting server... [version: 3.4.3, cluster version: to_be_decided] [ 127s] 2020-08-12 19:45:23.559448 I | rafthttp: started streaming with peer bc5472f61da31b5c (stream Message reader) [ 127s] 2020-08-12 19:45:23.560055 I | rafthttp: started streaming with peer bc5472f61da31b5c (stream MsgApp v2 reader) [ 127s] raft2020/08/12 19:45:23 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:23.561524 I | etcdserver/membership: added member 1083aa28485d3319 [http://127.0.0.1:8001] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:23 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:23.562182 I | etcdserver/membership: added member 9ca0c7938a0c3dc5 [http://127.0.0.1:8002] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:23 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:23.562636 I | etcdserver/membership: added member bc5472f61da31b5c [http://127.0.0.1:8003] to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:45:23.571030 I | embed: listening for peers on 127.0.0.1:8001 [ 127s] raft2020/08/12 19:45:24 INFO: 1083aa28485d3319 is starting a new election at term 1 [ 127s] raft2020/08/12 19:45:24 INFO: 1083aa28485d3319 became candidate at term 2 [ 127s] raft2020/08/12 19:45:24 INFO: 1083aa28485d3319 received MsgVoteResp from 1083aa28485d3319 at term 2 [ 127s] raft2020/08/12 19:45:24 INFO: 1083aa28485d3319 [logterm: 1, index: 3] sent MsgVote request to 9ca0c7938a0c3dc5 at term 2 [ 127s] raft2020/08/12 19:45:24 INFO: 1083aa28485d3319 [logterm: 1, index: 3] sent MsgVote request to bc5472f61da31b5c at term 2 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:45:25.484156 I | etcdmain: etcd Version: 3.4.3 [ 127s] 2020-08-12 19:45:25.484179 I | etcdmain: Git SHA: Not provided (use ./build instead of go build) [ 127s] 2020-08-12 19:45:25.484186 I | etcdmain: Go Version: go1.12.17 [ 127s] 2020-08-12 19:45:25.484193 I | etcdmain: Go OS/Arch: linux/amd64 [ 127s] 2020-08-12 19:45:25.484200 I | etcdmain: setting maximum number of CPUs to 8, total number of available CPUs is 8 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:45:25.484401 I | embed: name = test-node-1 [ 127s] 2020-08-12 19:45:25.484415 I | embed: data dir = /tmp/python-etcd2q2emda0/python-etcd.1-mkloce9y [ 127s] 2020-08-12 19:45:25.484423 I | embed: member dir = /tmp/python-etcd2q2emda0/python-etcd.1-mkloce9y/member [ 127s] 2020-08-12 19:45:25.484429 I | embed: heartbeat = 100ms [ 127s] 2020-08-12 19:45:25.484435 I | embed: election = 1000ms [ 127s] 2020-08-12 19:45:25.484441 I | embed: snapshot count = 100000 [ 127s] 2020-08-12 19:45:25.484452 I | embed: advertise client URLs = http://127.0.0.1:6002 [ 127s] 2020-08-12 19:45:25.499040 I | etcdserver: starting member 9ca0c7938a0c3dc5 in cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:25 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=() [ 127s] raft2020/08/12 19:45:25 INFO: 9ca0c7938a0c3dc5 became follower at term 0 [ 127s] raft2020/08/12 19:45:25 INFO: newRaft 9ca0c7938a0c3dc5 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0] [ 127s] raft2020/08/12 19:45:25 INFO: 9ca0c7938a0c3dc5 became follower at term 1 [ 127s] raft2020/08/12 19:45:25 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153) [ 127s] raft2020/08/12 19:45:25 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965) [ 127s] raft2020/08/12 19:45:25 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:25.514075 W | auth: simple token is not cryptographically signed [ 127s] 2020-08-12 19:45:25.544322 I | rafthttp: starting peer 1083aa28485d3319... [ 127s] 2020-08-12 19:45:25.544504 I | rafthttp: started HTTP pipelining with peer 1083aa28485d3319 [ 127s] 2020-08-12 19:45:25.545564 I | rafthttp: started streaming with peer 1083aa28485d3319 (writer) [ 127s] 2020-08-12 19:45:25.546271 I | rafthttp: started streaming with peer 1083aa28485d3319 (writer) [ 127s] 2020-08-12 19:45:25.551538 I | rafthttp: started peer 1083aa28485d3319 [ 127s] 2020-08-12 19:45:25.551675 I | rafthttp: added peer 1083aa28485d3319 [ 127s] 2020-08-12 19:45:25.551704 I | rafthttp: started streaming with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:25.551868 I | rafthttp: starting peer bc5472f61da31b5c... [ 127s] 2020-08-12 19:45:25.552057 I | rafthttp: started HTTP pipelining with peer bc5472f61da31b5c [ 127s] 2020-08-12 19:45:25.552105 I | rafthttp: started streaming with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:45:25.553705 I | rafthttp: peer 9ca0c7938a0c3dc5 became active [ 127s] 2020-08-12 19:45:25.553710 I | rafthttp: peer 1083aa28485d3319 became active [ 127s] 2020-08-12 19:45:25.553825 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:45:25.553891 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:25.554886 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message writer) [ 127s] 2020-08-12 19:45:25.554949 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:45:25.555396 I | rafthttp: started streaming with peer bc5472f61da31b5c (writer) [ 127s] 2020-08-12 19:45:25.556789 I | rafthttp: started streaming with peer bc5472f61da31b5c (writer) [ 127s] 2020-08-12 19:45:25.560393 I | rafthttp: started peer bc5472f61da31b5c [ 127s] 2020-08-12 19:45:25.560620 I | rafthttp: started streaming with peer bc5472f61da31b5c (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:25.560856 I | rafthttp: started streaming with peer bc5472f61da31b5c (stream Message reader) [ 127s] 2020-08-12 19:45:25.562097 I | rafthttp: added peer bc5472f61da31b5c [ 127s] 2020-08-12 19:45:25.562207 I | etcdserver: starting server... [version: 3.4.3, cluster version: to_be_decided] [ 127s] raft2020/08/12 19:45:25 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:25.564735 I | etcdserver/membership: added member 1083aa28485d3319 [http://127.0.0.1:8001] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:25 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:25.565500 I | etcdserver/membership: added member 9ca0c7938a0c3dc5 [http://127.0.0.1:8002] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:25 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:25.565844 I | etcdserver/membership: added member bc5472f61da31b5c [http://127.0.0.1:8003] to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:45:25.569355 I | embed: listening for peers on 127.0.0.1:8002 [ 127s] 2020-08-12 19:45:25.570295 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:45:25.570295 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:25.570377 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream Message writer) [ 127s] 2020-08-12 19:45:25.570407 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] raft2020/08/12 19:45:26 INFO: 1083aa28485d3319 is starting a new election at term 2 [ 127s] raft2020/08/12 19:45:26 INFO: 1083aa28485d3319 became candidate at term 3 [ 127s] raft2020/08/12 19:45:26 INFO: 1083aa28485d3319 received MsgVoteResp from 1083aa28485d3319 at term 3 [ 127s] raft2020/08/12 19:45:26 INFO: 1083aa28485d3319 [logterm: 1, index: 3] sent MsgVote request to 9ca0c7938a0c3dc5 at term 3 [ 127s] raft2020/08/12 19:45:26 INFO: 1083aa28485d3319 [logterm: 1, index: 3] sent MsgVote request to bc5472f61da31b5c at term 3 [ 127s] raft2020/08/12 19:45:26 INFO: 9ca0c7938a0c3dc5 [term: 1] received a MsgVote message with higher term from 1083aa28485d3319 [term: 3] [ 127s] raft2020/08/12 19:45:26 INFO: 9ca0c7938a0c3dc5 became follower at term 3 [ 127s] raft2020/08/12 19:45:26 INFO: 9ca0c7938a0c3dc5 [logterm: 1, index: 3, vote: 0] cast MsgVote for 1083aa28485d3319 [logterm: 1, index: 3] at term 3 [ 127s] raft2020/08/12 19:45:26 INFO: 1083aa28485d3319 received MsgVoteResp from 9ca0c7938a0c3dc5 at term 3 [ 127s] raft2020/08/12 19:45:26 INFO: 1083aa28485d3319 has received 2 MsgVoteResp votes and 0 vote rejections [ 127s] raft2020/08/12 19:45:26 INFO: 1083aa28485d3319 became leader at term 3 [ 127s] raft2020/08/12 19:45:26 INFO: raft.node: 1083aa28485d3319 elected leader 1083aa28485d3319 at term 3 [ 127s] raft2020/08/12 19:45:26 INFO: raft.node: 9ca0c7938a0c3dc5 elected leader 1083aa28485d3319 at term 3 [ 127s] 2020-08-12 19:45:26.219770 W | etcdserver: failed to reach the peerURL(http://127.0.0.1:8003) of member bc5472f61da31b5c (Get http://127.0.0.1:8003/version: dial tcp 127.0.0.1:8003: connect: connection refused) [ 127s] 2020-08-12 19:45:26.219865 W | etcdserver: cannot get the version of member bc5472f61da31b5c (Get http://127.0.0.1:8003/version: dial tcp 127.0.0.1:8003: connect: connection refused) [ 127s] 2020-08-12 19:45:26.220035 I | etcdserver: setting up the initial cluster version to 3.0 [ 127s] 2020-08-12 19:45:26.226545 I | etcdserver: published {Name:test-node-0 ClientURLs:[http://127.0.0.1:6001]} to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:45:26.226626 I | embed: ready to serve client requests [ 127s] 2020-08-12 19:45:26.228888 N | embed: serving insecure client requests on 127.0.0.1:6001, this is strongly discouraged! [ 127s] 2020-08-12 19:45:26.229361 I | etcdserver: published {Name:test-node-1 ClientURLs:[http://127.0.0.1:6002]} to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:45:26.229440 I | embed: ready to serve client requests [ 127s] 2020-08-12 19:45:26.229448 N | etcdserver/membership: set the initial cluster version to 3.0 [ 127s] 2020-08-12 19:45:26.229660 I | etcdserver/api: enabled capabilities for version 3.0 [ 127s] 2020-08-12 19:45:26.230055 N | etcdserver/membership: set the initial cluster version to 3.0 [ 127s] 2020-08-12 19:45:26.230363 I | etcdserver/api: enabled capabilities for version 3.0 [ 127s] 2020-08-12 19:45:26.231617 N | embed: serving insecure client requests on 127.0.0.1:6002, this is strongly discouraged! [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:45:27.491704 I | etcdmain: etcd Version: 3.4.3 [ 127s] 2020-08-12 19:45:27.491734 I | etcdmain: Git SHA: Not provided (use ./build instead of go build) [ 127s] 2020-08-12 19:45:27.491743 I | etcdmain: Go Version: go1.12.17 [ 127s] 2020-08-12 19:45:27.491751 I | etcdmain: Go OS/Arch: linux/amd64 [ 127s] 2020-08-12 19:45:27.491759 I | etcdmain: setting maximum number of CPUs to 8, total number of available CPUs is 8 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:45:27.492055 I | embed: name = test-node-2 [ 127s] 2020-08-12 19:45:27.492077 I | embed: data dir = /tmp/python-etcd2q2emda0/python-etcd.2-a6k9aunb [ 127s] 2020-08-12 19:45:27.492086 I | embed: member dir = /tmp/python-etcd2q2emda0/python-etcd.2-a6k9aunb/member [ 127s] 2020-08-12 19:45:27.492094 I | embed: heartbeat = 100ms [ 127s] 2020-08-12 19:45:27.492101 I | embed: election = 1000ms [ 127s] 2020-08-12 19:45:27.492109 I | embed: snapshot count = 100000 [ 127s] 2020-08-12 19:45:27.492122 I | embed: advertise client URLs = http://127.0.0.1:6003 [ 127s] 2020-08-12 19:45:27.508608 I | etcdserver: starting member bc5472f61da31b5c in cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:27 INFO: bc5472f61da31b5c switched to configuration voters=() [ 127s] raft2020/08/12 19:45:27 INFO: bc5472f61da31b5c became follower at term 0 [ 127s] raft2020/08/12 19:45:27 INFO: newRaft bc5472f61da31b5c [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0] [ 127s] raft2020/08/12 19:45:27 INFO: bc5472f61da31b5c became follower at term 1 [ 127s] raft2020/08/12 19:45:27 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153) [ 127s] raft2020/08/12 19:45:27 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965) [ 127s] raft2020/08/12 19:45:27 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:27.523415 W | auth: simple token is not cryptographically signed [ 127s] 2020-08-12 19:45:27.536326 I | rafthttp: starting peer 1083aa28485d3319... [ 127s] 2020-08-12 19:45:27.536433 I | rafthttp: started HTTP pipelining with peer 1083aa28485d3319 [ 127s] 2020-08-12 19:45:27.538534 I | rafthttp: started streaming with peer 1083aa28485d3319 (writer) [ 127s] 2020-08-12 19:45:27.538847 I | rafthttp: started streaming with peer 1083aa28485d3319 (writer) [ 127s] 2020-08-12 19:45:27.541197 I | rafthttp: started peer 1083aa28485d3319 [ 127s] 2020-08-12 19:45:27.541312 I | rafthttp: added peer 1083aa28485d3319 [ 127s] 2020-08-12 19:45:27.541378 I | rafthttp: starting peer 9ca0c7938a0c3dc5... [ 127s] 2020-08-12 19:45:27.541449 I | rafthttp: started HTTP pipelining with peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:45:27.541482 I | rafthttp: started streaming with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:27.544849 I | rafthttp: started streaming with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:45:27.545081 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (writer) [ 127s] 2020-08-12 19:45:27.546732 I | rafthttp: peer bc5472f61da31b5c became active [ 127s] 2020-08-12 19:45:27.546846 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream Message writer) [ 127s] 2020-08-12 19:45:27.548124 I | rafthttp: peer 1083aa28485d3319 became active [ 127s] 2020-08-12 19:45:27.548299 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:45:27.548440 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (writer) [ 127s] 2020-08-12 19:45:27.548655 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:45:27.548774 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:27.551630 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:27.551765 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] 2020-08-12 19:45:27.551938 I | rafthttp: started peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:45:27.552056 I | rafthttp: added peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:45:27.552147 I | etcdserver: starting server... [version: 3.4.3, cluster version: to_be_decided] [ 127s] raft2020/08/12 19:45:27 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:27.553894 I | rafthttp: peer bc5472f61da31b5c became active [ 127s] 2020-08-12 19:45:27.553964 I | rafthttp: peer 9ca0c7938a0c3dc5 became active [ 127s] 2020-08-12 19:45:27.553996 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream Message writer) [ 127s] 2020-08-12 19:45:27.554055 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] 2020-08-12 19:45:27.554127 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:45:27.554134 I | etcdserver/membership: added member 1083aa28485d3319 [http://127.0.0.1:8001] to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:45:27.554280 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] raft2020/08/12 19:45:27 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:27.555573 I | etcdserver/membership: added member 9ca0c7938a0c3dc5 [http://127.0.0.1:8002] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:27 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:27.556009 I | etcdserver/membership: added member bc5472f61da31b5c [http://127.0.0.1:8003] to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:45:27.559032 I | embed: listening for peers on 127.0.0.1:8003 [ 127s] raft2020/08/12 19:45:27 INFO: bc5472f61da31b5c [term: 1] received a MsgHeartbeat message with higher term from 1083aa28485d3319 [term: 3] [ 127s] raft2020/08/12 19:45:27 INFO: bc5472f61da31b5c became follower at term 3 [ 127s] raft2020/08/12 19:45:27 INFO: raft.node: bc5472f61da31b5c elected leader 1083aa28485d3319 at term 3 [ 127s] 2020-08-12 19:45:27.561917 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream Message writer) [ 127s] 2020-08-12 19:45:27.561981 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream Message reader) [ 127s] 2020-08-12 19:45:27.563040 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message writer) [ 127s] 2020-08-12 19:45:27.563068 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream Message reader) [ 127s] 2020-08-12 19:45:27.563225 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:27.565450 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:27.568619 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:45:27.572189 N | etcdserver/membership: set the initial cluster version to 3.0 [ 127s] 2020-08-12 19:45:27.572209 I | etcdserver: 9ca0c7938a0c3dc5 initialized peer connection; fast-forwarding 8 ticks (election ticks 10) with 2 active peer(s) [ 127s] 2020-08-12 19:45:27.572460 I | etcdserver/api: enabled capabilities for version 3.0 [ 127s] 2020-08-12 19:45:27.572758 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:45:27.575245 I | embed: ready to serve client requests [ 127s] 2020-08-12 19:45:27.575368 I | etcdserver: published {Name:test-node-2 ClientURLs:[http://127.0.0.1:6003]} to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:45:27.576966 N | embed: serving insecure client requests on 127.0.0.1:6003, this is strongly discouraged! [ 127s] 2020-08-12 19:45:27.578769 I | etcdserver: 1083aa28485d3319 initialized peer connection; fast-forwarding 8 ticks (election ticks 10) with 2 active peer(s) [ 127s] 2020-08-12 19:45:27.602856 I | etcdserver: bc5472f61da31b5c initialized peer connection; fast-forwarding 8 ticks (election ticks 10) with 2 active peer(s) [ 127s] ________ TestClusterFunctions.test_reconnect_with_several_hosts_passed _________ [ 127s] [ 127s] self = [ 127s] [ 127s] def _new_conn(self): [ 127s] """ Establish a socket connection and set nodelay settings on it. [ 127s] [ 127s] :return: New socket connection. [ 127s] """ [ 127s] extra_kw = {} [ 127s] if self.source_address: [ 127s] extra_kw["source_address"] = self.source_address [ 127s] [ 127s] if self.socket_options: [ 127s] extra_kw["socket_options"] = self.socket_options [ 127s] [ 127s] try: [ 127s] > conn = connection.create_connection( [ 127s] (self._dns_host, self.port), self.timeout, **extra_kw [ 127s] ) [ 127s] [ 127s] /usr/lib/python3.8/site-packages/urllib3/connection.py:159: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] address = ('127.0.0.1', 6004), timeout = 60, source_address = None [ 127s] socket_options = [(6, 1, 1)] [ 127s] [ 127s] def create_connection( [ 127s] address, [ 127s] timeout=socket._GLOBAL_DEFAULT_TIMEOUT, [ 127s] source_address=None, [ 127s] socket_options=None, [ 127s] ): [ 127s] """Connect to *address* and return the socket object. [ 127s] [ 127s] Convenience function. Connect to *address* (a 2-tuple ``(host, [ 127s] port)``) and return the socket object. Passing the optional [ 127s] *timeout* parameter will set the timeout on the socket instance [ 127s] before attempting to connect. If no *timeout* is supplied, the [ 127s] global default timeout setting returned by :func:`getdefaulttimeout` [ 127s] is used. If *source_address* is set it must be a tuple of (host, port) [ 127s] for the socket to bind as a source address before making the connection. [ 127s] An host of '' or port 0 tells the OS to use the default. [ 127s] """ [ 127s] [ 127s] host, port = address [ 127s] if host.startswith("["): [ 127s] host = host.strip("[]") [ 127s] err = None [ 127s] [ 127s] # Using the value from allowed_gai_family() in the context of getaddrinfo lets [ 127s] # us select whether to work with IPv4 DNS records, IPv6 records, or both. [ 127s] # The original create_connection function always returns all records. [ 127s] family = allowed_gai_family() [ 127s] [ 127s] for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): [ 127s] af, socktype, proto, canonname, sa = res [ 127s] sock = None [ 127s] try: [ 127s] sock = socket.socket(af, socktype, proto) [ 127s] [ 127s] # If provided, set socket level options before connecting. [ 127s] _set_socket_options(sock, socket_options) [ 127s] [ 127s] if timeout is not socket._GLOBAL_DEFAULT_TIMEOUT: [ 127s] sock.settimeout(timeout) [ 127s] if source_address: [ 127s] sock.bind(source_address) [ 127s] sock.connect(sa) [ 127s] return sock [ 127s] [ 127s] except socket.error as e: [ 127s] err = e [ 127s] if sock is not None: [ 127s] sock.close() [ 127s] sock = None [ 127s] [ 127s] if err is not None: [ 127s] > raise err [ 127s] [ 127s] /usr/lib/python3.8/site-packages/urllib3/util/connection.py:84: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] address = ('127.0.0.1', 6004), timeout = 60, source_address = None [ 127s] socket_options = [(6, 1, 1)] [ 127s] [ 127s] def create_connection( [ 127s] address, [ 127s] timeout=socket._GLOBAL_DEFAULT_TIMEOUT, [ 127s] source_address=None, [ 127s] socket_options=None, [ 127s] ): [ 127s] """Connect to *address* and return the socket object. [ 127s] [ 127s] Convenience function. Connect to *address* (a 2-tuple ``(host, [ 127s] port)``) and return the socket object. Passing the optional [ 127s] *timeout* parameter will set the timeout on the socket instance [ 127s] before attempting to connect. If no *timeout* is supplied, the [ 127s] global default timeout setting returned by :func:`getdefaulttimeout` [ 127s] is used. If *source_address* is set it must be a tuple of (host, port) [ 127s] for the socket to bind as a source address before making the connection. [ 127s] An host of '' or port 0 tells the OS to use the default. [ 127s] """ [ 127s] [ 127s] host, port = address [ 127s] if host.startswith("["): [ 127s] host = host.strip("[]") [ 127s] err = None [ 127s] [ 127s] # Using the value from allowed_gai_family() in the context of getaddrinfo lets [ 127s] # us select whether to work with IPv4 DNS records, IPv6 records, or both. [ 127s] # The original create_connection function always returns all records. [ 127s] family = allowed_gai_family() [ 127s] [ 127s] for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): [ 127s] af, socktype, proto, canonname, sa = res [ 127s] sock = None [ 127s] try: [ 127s] sock = socket.socket(af, socktype, proto) [ 127s] [ 127s] # If provided, set socket level options before connecting. [ 127s] _set_socket_options(sock, socket_options) [ 127s] [ 127s] if timeout is not socket._GLOBAL_DEFAULT_TIMEOUT: [ 127s] sock.settimeout(timeout) [ 127s] if source_address: [ 127s] sock.bind(source_address) [ 127s] > sock.connect(sa) [ 127s] E ConnectionRefusedError: [Errno 111] Connection refused [ 127s] [ 127s] /usr/lib/python3.8/site-packages/urllib3/util/connection.py:74: ConnectionRefusedError [ 127s] [ 127s] During handling of the above exception, another exception occurred: [ 127s] [ 127s] self = [ 127s] method = 'GET', url = '/v2/machines', body = None, headers = {} [ 127s] retries = Retry(total=0, connect=None, read=None, redirect=None, status=None) [ 127s] redirect = False, assert_same_host = False, timeout = 60, pool_timeout = None [ 127s] release_conn = True, chunked = False, body_pos = None [ 127s] response_kw = {'request_url': 'http://127.0.0.1:6004/v2/machines'}, conn = None [ 127s] release_this_conn = True, err = None, clean_exit = False [ 127s] timeout_obj = Timeout(connect=60, read=60, total=None) [ 127s] is_new_proxy_conn = False [ 127s] [ 127s] def urlopen( [ 127s] self, [ 127s] method, [ 127s] url, [ 127s] body=None, [ 127s] headers=None, [ 127s] retries=None, [ 127s] redirect=True, [ 127s] assert_same_host=True, [ 127s] timeout=_Default, [ 127s] pool_timeout=None, [ 127s] release_conn=None, [ 127s] chunked=False, [ 127s] body_pos=None, [ 127s] **response_kw [ 127s] ): [ 127s] """ [ 127s] Get a connection from the pool and perform an HTTP request. This is the [ 127s] lowest level call for making a request, so you'll need to specify all [ 127s] the raw details. [ 127s] [ 127s] .. note:: [ 127s] [ 127s] More commonly, it's appropriate to use a convenience method provided [ 127s] by :class:`.RequestMethods`, such as :meth:`request`. [ 127s] [ 127s] .. note:: [ 127s] [ 127s] `release_conn` will only behave as expected if [ 127s] `preload_content=False` because we want to make [ 127s] `preload_content=False` the default behaviour someday soon without [ 127s] breaking backwards compatibility. [ 127s] [ 127s] :param method: [ 127s] HTTP request method (such as GET, POST, PUT, etc.) [ 127s] [ 127s] :param body: [ 127s] Data to send in the request body (useful for creating [ 127s] POST requests, see HTTPConnectionPool.post_url for [ 127s] more convenience). [ 127s] [ 127s] :param headers: [ 127s] Dictionary of custom headers to send, such as User-Agent, [ 127s] If-None-Match, etc. If None, pool headers are used. If provided, [ 127s] these headers completely replace any pool-specific headers. [ 127s] [ 127s] :param retries: [ 127s] Configure the number of retries to allow before raising a [ 127s] :class:`~urllib3.exceptions.MaxRetryError` exception. [ 127s] [ 127s] Pass ``None`` to retry until you receive a response. Pass a [ 127s] :class:`~urllib3.util.retry.Retry` object for fine-grained control [ 127s] over different types of retries. [ 127s] Pass an integer number to retry connection errors that many times, [ 127s] but no other types of errors. Pass zero to never retry. [ 127s] [ 127s] If ``False``, then retries are disabled and any exception is raised [ 127s] immediately. Also, instead of raising a MaxRetryError on redirects, [ 127s] the redirect response will be returned. [ 127s] [ 127s] :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. [ 127s] [ 127s] :param redirect: [ 127s] If True, automatically handle redirects (status codes 301, 302, [ 127s] 303, 307, 308). Each redirect counts as a retry. Disabling retries [ 127s] will disable redirect, too. [ 127s] [ 127s] :param assert_same_host: [ 127s] If ``True``, will make sure that the host of the pool requests is [ 127s] consistent else will raise HostChangedError. When False, you can [ 127s] use the pool on an HTTP proxy and request foreign hosts. [ 127s] [ 127s] :param timeout: [ 127s] If specified, overrides the default timeout for this one [ 127s] request. It may be a float (in seconds) or an instance of [ 127s] :class:`urllib3.util.Timeout`. [ 127s] [ 127s] :param pool_timeout: [ 127s] If set and the pool is set to block=True, then this method will [ 127s] block for ``pool_timeout`` seconds and raise EmptyPoolError if no [ 127s] connection is available within the time period. [ 127s] [ 127s] :param release_conn: [ 127s] If False, then the urlopen call will not release the connection [ 127s] back into the pool once a response is received (but will release if [ 127s] you read the entire contents of the response such as when [ 127s] `preload_content=True`). This is useful if you're not preloading [ 127s] the response's content immediately. You will need to call [ 127s] ``r.release_conn()`` on the response ``r`` to return the connection [ 127s] back into the pool. If None, it takes the value of [ 127s] ``response_kw.get('preload_content', True)``. [ 127s] [ 127s] :param chunked: [ 127s] If True, urllib3 will send the body using chunked transfer [ 127s] encoding. Otherwise, urllib3 will send the body using the standard [ 127s] content-length form. Defaults to False. [ 127s] [ 127s] :param int body_pos: [ 127s] Position to seek to in file-like body in the event of a retry or [ 127s] redirect. Typically this won't need to be set because urllib3 will [ 127s] auto-populate the value when needed. [ 127s] [ 127s] :param \\**response_kw: [ 127s] Additional parameters are passed to [ 127s] :meth:`urllib3.response.HTTPResponse.from_httplib` [ 127s] """ [ 127s] if headers is None: [ 127s] headers = self.headers [ 127s] [ 127s] if not isinstance(retries, Retry): [ 127s] retries = Retry.from_int(retries, redirect=redirect, default=self.retries) [ 127s] [ 127s] if release_conn is None: [ 127s] release_conn = response_kw.get("preload_content", True) [ 127s] [ 127s] # Check host [ 127s] if assert_same_host and not self.is_same_host(url): [ 127s] raise HostChangedError(self, url, retries) [ 127s] [ 127s] # Ensure that the URL we're connecting to is properly encoded [ 127s] if url.startswith("/"): [ 127s] url = six.ensure_str(_encode_target(url)) [ 127s] else: [ 127s] url = six.ensure_str(parse_url(url).url) [ 127s] [ 127s] conn = None [ 127s] [ 127s] # Track whether `conn` needs to be released before [ 127s] # returning/raising/recursing. Update this variable if necessary, and [ 127s] # leave `release_conn` constant throughout the function. That way, if [ 127s] # the function recurses, the original value of `release_conn` will be [ 127s] # passed down into the recursive call, and its value will be respected. [ 127s] # [ 127s] # See issue #651 [1] for details. [ 127s] # [ 127s] # [1] [ 127s] release_this_conn = release_conn [ 127s] [ 127s] # Merge the proxy headers. Only do this in HTTP. We have to copy the [ 127s] # headers dict so we can safely change it without those changes being [ 127s] # reflected in anyone else's copy. [ 127s] if self.scheme == "http": [ 127s] headers = headers.copy() [ 127s] headers.update(self.proxy_headers) [ 127s] [ 127s] # Must keep the exception bound to a separate variable or else Python 3 [ 127s] # complains about UnboundLocalError. [ 127s] err = None [ 127s] [ 127s] # Keep track of whether we cleanly exited the except block. This [ 127s] # ensures we do proper cleanup in finally. [ 127s] clean_exit = False [ 127s] [ 127s] # Rewind body position, if needed. Record current position [ 127s] # for future rewinds in the event of a redirect/retry. [ 127s] body_pos = set_file_position(body, body_pos) [ 127s] [ 127s] try: [ 127s] # Request a connection from the queue. [ 127s] timeout_obj = self._get_timeout(timeout) [ 127s] conn = self._get_conn(timeout=pool_timeout) [ 127s] [ 127s] conn.timeout = timeout_obj.connect_timeout [ 127s] [ 127s] is_new_proxy_conn = self.proxy is not None and not getattr( [ 127s] conn, "sock", None [ 127s] ) [ 127s] if is_new_proxy_conn: [ 127s] self._prepare_proxy(conn) [ 127s] [ 127s] # Make the request on the httplib connection object. [ 127s] > httplib_response = self._make_request( [ 127s] conn, [ 127s] method, [ 127s] url, [ 127s] timeout=timeout_obj, [ 127s] body=body, [ 127s] headers=headers, [ 127s] chunked=chunked, [ 127s] ) [ 127s] [ 127s] /usr/lib/python3.8/site-packages/urllib3/connectionpool.py:670: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] conn = [ 127s] method = 'GET', url = '/v2/machines' [ 127s] timeout = Timeout(connect=60, read=60, total=None), chunked = False [ 127s] httplib_request_kw = {'body': None, 'headers': {}} [ 127s] timeout_obj = Timeout(connect=60, read=60, total=None) [ 127s] [ 127s] def _make_request( [ 127s] self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw [ 127s] ): [ 127s] """ [ 127s] Perform a request on a given urllib connection object taken from our [ 127s] pool. [ 127s] [ 127s] :param conn: [ 127s] a connection from one of our connection pools [ 127s] [ 127s] :param timeout: [ 127s] Socket timeout in seconds for the request. This can be a [ 127s] float or integer, which will set the same timeout value for [ 127s] the socket connect and the socket read, or an instance of [ 127s] :class:`urllib3.util.Timeout`, which gives you more fine-grained [ 127s] control over your timeouts. [ 127s] """ [ 127s] self.num_requests += 1 [ 127s] [ 127s] timeout_obj = self._get_timeout(timeout) [ 127s] timeout_obj.start_connect() [ 127s] conn.timeout = timeout_obj.connect_timeout [ 127s] [ 127s] # Trigger any extra validation we need to do. [ 127s] try: [ 127s] self._validate_conn(conn) [ 127s] except (SocketTimeout, BaseSSLError) as e: [ 127s] # Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout. [ 127s] self._raise_timeout(err=e, url=url, timeout_value=conn.timeout) [ 127s] raise [ 127s] [ 127s] # conn.request() calls httplib.*.request, not the method in [ 127s] # urllib3.request. It also calls makefile (recv) on the socket. [ 127s] if chunked: [ 127s] conn.request_chunked(method, url, **httplib_request_kw) [ 127s] else: [ 127s] > conn.request(method, url, **httplib_request_kw) [ 127s] [ 127s] /usr/lib/python3.8/site-packages/urllib3/connectionpool.py:392: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] method = 'GET', url = '/v2/machines', body = None, headers = {} [ 127s] [ 127s] def request(self, method, url, body=None, headers={}, *, [ 127s] encode_chunked=False): [ 127s] """Send a complete request to the server.""" [ 127s] > self._send_request(method, url, body, headers, encode_chunked) [ 127s] [ 127s] /usr/lib64/python3.8/http/client.py:1240: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] method = 'GET', url = '/v2/machines', body = None, headers = {} [ 127s] encode_chunked = False [ 127s] [ 127s] def _send_request(self, method, url, body, headers, encode_chunked): [ 127s] # Honor explicitly requested Host: and Accept-Encoding: headers. [ 127s] header_names = frozenset(k.lower() for k in headers) [ 127s] skips = {} [ 127s] if 'host' in header_names: [ 127s] skips['skip_host'] = 1 [ 127s] if 'accept-encoding' in header_names: [ 127s] skips['skip_accept_encoding'] = 1 [ 127s] [ 127s] self.putrequest(method, url, **skips) [ 127s] [ 127s] # chunked encoding will happen if HTTP/1.1 is used and either [ 127s] # the caller passes encode_chunked=True or the following [ 127s] # conditions hold: [ 127s] # 1. content-length has not been explicitly set [ 127s] # 2. the body is a file or iterable, but not a str or bytes-like [ 127s] # 3. Transfer-Encoding has NOT been explicitly set by the caller [ 127s] [ 127s] if 'content-length' not in header_names: [ 127s] # only chunk body if not explicitly set for backwards [ 127s] # compatibility, assuming the client code is already handling the [ 127s] # chunking [ 127s] if 'transfer-encoding' not in header_names: [ 127s] # if content-length cannot be automatically determined, fall [ 127s] # back to chunked encoding [ 127s] encode_chunked = False [ 127s] content_length = self._get_content_length(body, method) [ 127s] if content_length is None: [ 127s] if body is not None: [ 127s] if self.debuglevel > 0: [ 127s] print('Unable to determine size of %r' % body) [ 127s] encode_chunked = True [ 127s] self.putheader('Transfer-Encoding', 'chunked') [ 127s] else: [ 127s] self.putheader('Content-Length', str(content_length)) [ 127s] else: [ 127s] encode_chunked = False [ 127s] [ 127s] for hdr, value in headers.items(): [ 127s] self.putheader(hdr, value) [ 127s] if isinstance(body, str): [ 127s] # RFC 2616 Section 3.7.1 says that text default has a [ 127s] # default charset of iso-8859-1. [ 127s] body = _encode(body, 'body') [ 127s] > self.endheaders(body, encode_chunked=encode_chunked) [ 127s] [ 127s] /usr/lib64/python3.8/http/client.py:1286: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] message_body = None [ 127s] [ 127s] def endheaders(self, message_body=None, *, encode_chunked=False): [ 127s] """Indicate that the last header line has been sent to the server. [ 127s] [ 127s] This method sends the request to the server. The optional message_body [ 127s] argument can be used to pass a message body associated with the [ 127s] request. [ 127s] """ [ 127s] if self.__state == _CS_REQ_STARTED: [ 127s] self.__state = _CS_REQ_SENT [ 127s] else: [ 127s] raise CannotSendHeader() [ 127s] > self._send_output(message_body, encode_chunked=encode_chunked) [ 127s] [ 127s] /usr/lib64/python3.8/http/client.py:1235: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] message_body = None, encode_chunked = False [ 127s] [ 127s] def _send_output(self, message_body=None, encode_chunked=False): [ 127s] """Send the currently buffered request and clear the buffer. [ 127s] [ 127s] Appends an extra \\r\\n to the buffer. [ 127s] A message_body may be specified, to be appended to the request. [ 127s] """ [ 127s] self._buffer.extend((b"", b"")) [ 127s] msg = b"\r\n".join(self._buffer) [ 127s] del self._buffer[:] [ 127s] > self.send(msg) [ 127s] [ 127s] /usr/lib64/python3.8/http/client.py:1006: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] data = b'GET /v2/machines HTTP/1.1\r\nHost: 127.0.0.1:6004\r\nAccept-Encoding: identity\r\n\r\n' [ 127s] [ 127s] def send(self, data): [ 127s] """Send `data' to the server. [ 127s] ``data`` can be a string object, a bytes object, an array object, a [ 127s] file-like object that supports a .read() method, or an iterable object. [ 127s] """ [ 127s] [ 127s] if self.sock is None: [ 127s] if self.auto_open: [ 127s] > self.connect() [ 127s] [ 127s] /usr/lib64/python3.8/http/client.py:946: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] [ 127s] def connect(self): [ 127s] > conn = self._new_conn() [ 127s] [ 127s] /usr/lib/python3.8/site-packages/urllib3/connection.py:187: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] [ 127s] def _new_conn(self): [ 127s] """ Establish a socket connection and set nodelay settings on it. [ 127s] [ 127s] :return: New socket connection. [ 127s] """ [ 127s] extra_kw = {} [ 127s] if self.source_address: [ 127s] extra_kw["source_address"] = self.source_address [ 127s] [ 127s] if self.socket_options: [ 127s] extra_kw["socket_options"] = self.socket_options [ 127s] [ 127s] try: [ 127s] conn = connection.create_connection( [ 127s] (self._dns_host, self.port), self.timeout, **extra_kw [ 127s] ) [ 127s] [ 127s] except SocketTimeout: [ 127s] raise ConnectTimeoutError( [ 127s] self, [ 127s] "Connection to %s timed out. (connect timeout=%s)" [ 127s] % (self.host, self.timeout), [ 127s] ) [ 127s] [ 127s] except SocketError as e: [ 127s] > raise NewConnectionError( [ 127s] self, "Failed to establish a new connection: %s" % e [ 127s] ) [ 127s] E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused [ 127s] [ 127s] /usr/lib/python3.8/site-packages/urllib3/connection.py:171: NewConnectionError [ 127s] [ 127s] During handling of the above exception, another exception occurred: [ 127s] [ 127s] self = [ 127s] [ 127s] @property [ 127s] def machines(self): [ 127s] """ [ 127s] Members of the cluster. [ 127s] [ 127s] Returns: [ 127s] list. str with all the nodes in the cluster. [ 127s] [ 127s] >>> print client.machines [ 127s] ['http://127.0.0.1:4001', 'http://127.0.0.1:4002'] [ 127s] """ [ 127s] # We can't use api_execute here, or it causes a logical loop [ 127s] try: [ 127s] uri = self._base_uri + self.version_prefix + '/machines' [ 127s] > response = self.http.request( [ 127s] self._MGET, [ 127s] uri, [ 127s] headers=self._get_headers(), [ 127s] timeout=self.read_timeout, [ 127s] redirect=self.allow_redirect) [ 127s] [ 127s] src/etcd/client.py:296: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] method = 'GET', url = 'http://127.0.0.1:6004/v2/machines', fields = None [ 127s] headers = {} [ 127s] urlopen_kw = {'redirect': True, 'request_url': 'http://127.0.0.1:6004/v2/machines', 'timeout': 60} [ 127s] [ 127s] def request(self, method, url, fields=None, headers=None, **urlopen_kw): [ 127s] """ [ 127s] Make a request using :meth:`urlopen` with the appropriate encoding of [ 127s] ``fields`` based on the ``method`` used. [ 127s] [ 127s] This is a convenience method that requires the least amount of manual [ 127s] effort. It can be used in most situations, while still having the [ 127s] option to drop down to more specific methods when necessary, such as [ 127s] :meth:`request_encode_url`, :meth:`request_encode_body`, [ 127s] or even the lowest level :meth:`urlopen`. [ 127s] """ [ 127s] method = method.upper() [ 127s] [ 127s] urlopen_kw["request_url"] = url [ 127s] [ 127s] if method in self._encode_url_methods: [ 127s] > return self.request_encode_url( [ 127s] method, url, fields=fields, headers=headers, **urlopen_kw [ 127s] ) [ 127s] [ 127s] /usr/lib/python3.8/site-packages/urllib3/request.py:75: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] method = 'GET', url = 'http://127.0.0.1:6004/v2/machines', fields = None [ 127s] headers = {} [ 127s] urlopen_kw = {'redirect': True, 'request_url': 'http://127.0.0.1:6004/v2/machines', 'timeout': 60} [ 127s] extra_kw = {'headers': {}, 'redirect': True, 'request_url': 'http://127.0.0.1:6004/v2/machines', 'timeout': 60} [ 127s] [ 127s] def request_encode_url(self, method, url, fields=None, headers=None, **urlopen_kw): [ 127s] """ [ 127s] Make a request using :meth:`urlopen` with the ``fields`` encoded in [ 127s] the url. This is useful for request methods like GET, HEAD, DELETE, etc. [ 127s] """ [ 127s] if headers is None: [ 127s] headers = self.headers [ 127s] [ 127s] extra_kw = {"headers": headers} [ 127s] extra_kw.update(urlopen_kw) [ 127s] [ 127s] if fields: [ 127s] url += "?" + urlencode(fields) [ 127s] [ 127s] > return self.urlopen(method, url, **extra_kw) [ 127s] [ 127s] /usr/lib/python3.8/site-packages/urllib3/request.py:97: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] method = 'GET', url = 'http://127.0.0.1:6004/v2/machines', redirect = True [ 127s] kw = {'assert_same_host': False, 'headers': {}, 'redirect': False, 'request_url': 'http://127.0.0.1:6004/v2/machines', ...} [ 127s] u = Url(scheme='http', auth=None, host='127.0.0.1', port=6004, path='/v2/machines', query=None, fragment=None) [ 127s] conn = [ 127s] [ 127s] def urlopen(self, method, url, redirect=True, **kw): [ 127s] """ [ 127s] Same as :meth:`urllib3.connectionpool.HTTPConnectionPool.urlopen` [ 127s] with custom cross-host redirect logic and only sends the request-uri [ 127s] portion of the ``url``. [ 127s] [ 127s] The given ``url`` parameter must be absolute, such that an appropriate [ 127s] :class:`urllib3.connectionpool.ConnectionPool` can be chosen for it. [ 127s] """ [ 127s] u = parse_url(url) [ 127s] conn = self.connection_from_host(u.host, port=u.port, scheme=u.scheme) [ 127s] [ 127s] kw["assert_same_host"] = False [ 127s] kw["redirect"] = False [ 127s] [ 127s] if "headers" not in kw: [ 127s] kw["headers"] = self.headers.copy() [ 127s] [ 127s] if self.proxy is not None and u.scheme == "http": [ 127s] response = conn.urlopen(method, url, **kw) [ 127s] else: [ 127s] > response = conn.urlopen(method, u.request_uri, **kw) [ 127s] [ 127s] /usr/lib/python3.8/site-packages/urllib3/poolmanager.py:336: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] method = 'GET', url = '/v2/machines', body = None, headers = {} [ 127s] retries = Retry(total=2, connect=None, read=None, redirect=None, status=None) [ 127s] redirect = False, assert_same_host = False, timeout = 60, pool_timeout = None [ 127s] release_conn = True, chunked = False, body_pos = None [ 127s] response_kw = {'request_url': 'http://127.0.0.1:6004/v2/machines'}, conn = None [ 127s] release_this_conn = True [ 127s] err = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') [ 127s] clean_exit = False, timeout_obj = Timeout(connect=60, read=60, total=None) [ 127s] is_new_proxy_conn = False [ 127s] [ 127s] def urlopen( [ 127s] self, [ 127s] method, [ 127s] url, [ 127s] body=None, [ 127s] headers=None, [ 127s] retries=None, [ 127s] redirect=True, [ 127s] assert_same_host=True, [ 127s] timeout=_Default, [ 127s] pool_timeout=None, [ 127s] release_conn=None, [ 127s] chunked=False, [ 127s] body_pos=None, [ 127s] **response_kw [ 127s] ): [ 127s] """ [ 127s] Get a connection from the pool and perform an HTTP request. This is the [ 127s] lowest level call for making a request, so you'll need to specify all [ 127s] the raw details. [ 127s] [ 127s] .. note:: [ 127s] [ 127s] More commonly, it's appropriate to use a convenience method provided [ 127s] by :class:`.RequestMethods`, such as :meth:`request`. [ 127s] [ 127s] .. note:: [ 127s] [ 127s] `release_conn` will only behave as expected if [ 127s] `preload_content=False` because we want to make [ 127s] `preload_content=False` the default behaviour someday soon without [ 127s] breaking backwards compatibility. [ 127s] [ 127s] :param method: [ 127s] HTTP request method (such as GET, POST, PUT, etc.) [ 127s] [ 127s] :param body: [ 127s] Data to send in the request body (useful for creating [ 127s] POST requests, see HTTPConnectionPool.post_url for [ 127s] more convenience). [ 127s] [ 127s] :param headers: [ 127s] Dictionary of custom headers to send, such as User-Agent, [ 127s] If-None-Match, etc. If None, pool headers are used. If provided, [ 127s] these headers completely replace any pool-specific headers. [ 127s] [ 127s] :param retries: [ 127s] Configure the number of retries to allow before raising a [ 127s] :class:`~urllib3.exceptions.MaxRetryError` exception. [ 127s] [ 127s] Pass ``None`` to retry until you receive a response. Pass a [ 127s] :class:`~urllib3.util.retry.Retry` object for fine-grained control [ 127s] over different types of retries. [ 127s] Pass an integer number to retry connection errors that many times, [ 127s] but no other types of errors. Pass zero to never retry. [ 127s] [ 127s] If ``False``, then retries are disabled and any exception is raised [ 127s] immediately. Also, instead of raising a MaxRetryError on redirects, [ 127s] the redirect response will be returned. [ 127s] [ 127s] :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. [ 127s] [ 127s] :param redirect: [ 127s] If True, automatically handle redirects (status codes 301, 302, [ 127s] 303, 307, 308). Each redirect counts as a retry. Disabling retries [ 127s] will disable redirect, too. [ 127s] [ 127s] :param assert_same_host: [ 127s] If ``True``, will make sure that the host of the pool requests is [ 127s] consistent else will raise HostChangedError. When False, you can [ 127s] use the pool on an HTTP proxy and request foreign hosts. [ 127s] [ 127s] :param timeout: [ 127s] If specified, overrides the default timeout for this one [ 127s] request. It may be a float (in seconds) or an instance of [ 127s] :class:`urllib3.util.Timeout`. [ 127s] [ 127s] :param pool_timeout: [ 127s] If set and the pool is set to block=True, then this method will [ 127s] block for ``pool_timeout`` seconds and raise EmptyPoolError if no [ 127s] connection is available within the time period. [ 127s] [ 127s] :param release_conn: [ 127s] If False, then the urlopen call will not release the connection [ 127s] back into the pool once a response is received (but will release if [ 127s] you read the entire contents of the response such as when [ 127s] `preload_content=True`). This is useful if you're not preloading [ 127s] the response's content immediately. You will need to call [ 127s] ``r.release_conn()`` on the response ``r`` to return the connection [ 127s] back into the pool. If None, it takes the value of [ 127s] ``response_kw.get('preload_content', True)``. [ 127s] [ 127s] :param chunked: [ 127s] If True, urllib3 will send the body using chunked transfer [ 127s] encoding. Otherwise, urllib3 will send the body using the standard [ 127s] content-length form. Defaults to False. [ 127s] [ 127s] :param int body_pos: [ 127s] Position to seek to in file-like body in the event of a retry or [ 127s] redirect. Typically this won't need to be set because urllib3 will [ 127s] auto-populate the value when needed. [ 127s] [ 127s] :param \\**response_kw: [ 127s] Additional parameters are passed to [ 127s] :meth:`urllib3.response.HTTPResponse.from_httplib` [ 127s] """ [ 127s] if headers is None: [ 127s] headers = self.headers [ 127s] [ 127s] if not isinstance(retries, Retry): [ 127s] retries = Retry.from_int(retries, redirect=redirect, default=self.retries) [ 127s] [ 127s] if release_conn is None: [ 127s] release_conn = response_kw.get("preload_content", True) [ 127s] [ 127s] # Check host [ 127s] if assert_same_host and not self.is_same_host(url): [ 127s] raise HostChangedError(self, url, retries) [ 127s] [ 127s] # Ensure that the URL we're connecting to is properly encoded [ 127s] if url.startswith("/"): [ 127s] url = six.ensure_str(_encode_target(url)) [ 127s] else: [ 127s] url = six.ensure_str(parse_url(url).url) [ 127s] [ 127s] conn = None [ 127s] [ 127s] # Track whether `conn` needs to be released before [ 127s] # returning/raising/recursing. Update this variable if necessary, and [ 127s] # leave `release_conn` constant throughout the function. That way, if [ 127s] # the function recurses, the original value of `release_conn` will be [ 127s] # passed down into the recursive call, and its value will be respected. [ 127s] # [ 127s] # See issue #651 [1] for details. [ 127s] # [ 127s] # [1] [ 127s] release_this_conn = release_conn [ 127s] [ 127s] # Merge the proxy headers. Only do this in HTTP. We have to copy the [ 127s] # headers dict so we can safely change it without those changes being [ 127s] # reflected in anyone else's copy. [ 127s] if self.scheme == "http": [ 127s] headers = headers.copy() [ 127s] headers.update(self.proxy_headers) [ 127s] [ 127s] # Must keep the exception bound to a separate variable or else Python 3 [ 127s] # complains about UnboundLocalError. [ 127s] err = None [ 127s] [ 127s] # Keep track of whether we cleanly exited the except block. This [ 127s] # ensures we do proper cleanup in finally. [ 127s] clean_exit = False [ 127s] [ 127s] # Rewind body position, if needed. Record current position [ 127s] # for future rewinds in the event of a redirect/retry. [ 127s] body_pos = set_file_position(body, body_pos) [ 127s] [ 127s] try: [ 127s] # Request a connection from the queue. [ 127s] timeout_obj = self._get_timeout(timeout) [ 127s] conn = self._get_conn(timeout=pool_timeout) [ 127s] [ 127s] conn.timeout = timeout_obj.connect_timeout [ 127s] [ 127s] is_new_proxy_conn = self.proxy is not None and not getattr( [ 127s] conn, "sock", None [ 127s] ) [ 127s] if is_new_proxy_conn: [ 127s] self._prepare_proxy(conn) [ 127s] [ 127s] # Make the request on the httplib connection object. [ 127s] httplib_response = self._make_request( [ 127s] conn, [ 127s] method, [ 127s] url, [ 127s] timeout=timeout_obj, [ 127s] body=body, [ 127s] headers=headers, [ 127s] chunked=chunked, [ 127s] ) [ 127s] [ 127s] # If we're going to release the connection in ``finally:``, then [ 127s] # the response doesn't need to know about the connection. Otherwise [ 127s] # it will also try to release it and we'll have a double-release [ 127s] # mess. [ 127s] response_conn = conn if not release_conn else None [ 127s] [ 127s] # Pass method to Response for length checking [ 127s] response_kw["request_method"] = method [ 127s] [ 127s] # Import httplib's response into our own wrapper object [ 127s] response = self.ResponseCls.from_httplib( [ 127s] httplib_response, [ 127s] pool=self, [ 127s] connection=response_conn, [ 127s] retries=retries, [ 127s] **response_kw [ 127s] ) [ 127s] [ 127s] # Everything went great! [ 127s] clean_exit = True [ 127s] [ 127s] except EmptyPoolError: [ 127s] # Didn't get a connection from the pool, no need to clean up [ 127s] clean_exit = True [ 127s] release_this_conn = False [ 127s] raise [ 127s] [ 127s] except ( [ 127s] TimeoutError, [ 127s] HTTPException, [ 127s] SocketError, [ 127s] ProtocolError, [ 127s] BaseSSLError, [ 127s] SSLError, [ 127s] CertificateError, [ 127s] ) as e: [ 127s] # Discard the connection for these exceptions. It will be [ 127s] # replaced during the next _get_conn() call. [ 127s] clean_exit = False [ 127s] if isinstance(e, (BaseSSLError, CertificateError)): [ 127s] e = SSLError(e) [ 127s] elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy: [ 127s] e = ProxyError("Cannot connect to proxy.", e) [ 127s] elif isinstance(e, (SocketError, HTTPException)): [ 127s] e = ProtocolError("Connection aborted.", e) [ 127s] [ 127s] retries = retries.increment( [ 127s] method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2] [ 127s] ) [ 127s] retries.sleep() [ 127s] [ 127s] # Keep track of the error for the retry warning. [ 127s] err = e [ 127s] [ 127s] finally: [ 127s] if not clean_exit: [ 127s] # We hit some kind of exception, handled or otherwise. We need [ 127s] # to throw the connection away unless explicitly told not to. [ 127s] # Close the connection, set the variable to None, and make sure [ 127s] # we put the None back in the pool to avoid leaking it. [ 127s] conn = conn and conn.close() [ 127s] release_this_conn = True [ 127s] [ 127s] if release_this_conn: [ 127s] # Put the connection back to be reused. If the connection is [ 127s] # expired then it will be None, which will get replaced with a [ 127s] # fresh connection during _get_conn. [ 127s] self._put_conn(conn) [ 127s] [ 127s] if not conn: [ 127s] # Try again [ 127s] log.warning( [ 127s] "Retrying (%r) after connection broken by '%r': %s", retries, err, url [ 127s] ) [ 127s] > return self.urlopen( [ 127s] method, [ 127s] url, [ 127s] body, [ 127s] headers, [ 127s] retries, [ 127s] redirect, [ 127s] assert_same_host, [ 127s] timeout=timeout, [ 127s] pool_timeout=pool_timeout, [ 127s] release_conn=release_conn, [ 127s] chunked=chunked, [ 127s] body_pos=body_pos, [ 127s] **response_kw [ 127s] ) [ 127s] [ 127s] /usr/lib/python3.8/site-packages/urllib3/connectionpool.py:754: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] method = 'GET', url = '/v2/machines', body = None, headers = {} [ 127s] retries = Retry(total=1, connect=None, read=None, redirect=None, status=None) [ 127s] redirect = False, assert_same_host = False, timeout = 60, pool_timeout = None [ 127s] release_conn = True, chunked = False, body_pos = None [ 127s] response_kw = {'request_url': 'http://127.0.0.1:6004/v2/machines'}, conn = None [ 127s] release_this_conn = True [ 127s] err = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') [ 127s] clean_exit = False, timeout_obj = Timeout(connect=60, read=60, total=None) [ 127s] is_new_proxy_conn = False [ 127s] [ 127s] def urlopen( [ 127s] self, [ 127s] method, [ 127s] url, [ 127s] body=None, [ 127s] headers=None, [ 127s] retries=None, [ 127s] redirect=True, [ 127s] assert_same_host=True, [ 127s] timeout=_Default, [ 127s] pool_timeout=None, [ 127s] release_conn=None, [ 127s] chunked=False, [ 127s] body_pos=None, [ 127s] **response_kw [ 127s] ): [ 127s] """ [ 127s] Get a connection from the pool and perform an HTTP request. This is the [ 127s] lowest level call for making a request, so you'll need to specify all [ 127s] the raw details. [ 127s] [ 127s] .. note:: [ 127s] [ 127s] More commonly, it's appropriate to use a convenience method provided [ 127s] by :class:`.RequestMethods`, such as :meth:`request`. [ 127s] [ 127s] .. note:: [ 127s] [ 127s] `release_conn` will only behave as expected if [ 127s] `preload_content=False` because we want to make [ 127s] `preload_content=False` the default behaviour someday soon without [ 127s] breaking backwards compatibility. [ 127s] [ 127s] :param method: [ 127s] HTTP request method (such as GET, POST, PUT, etc.) [ 127s] [ 127s] :param body: [ 127s] Data to send in the request body (useful for creating [ 127s] POST requests, see HTTPConnectionPool.post_url for [ 127s] more convenience). [ 127s] [ 127s] :param headers: [ 127s] Dictionary of custom headers to send, such as User-Agent, [ 127s] If-None-Match, etc. If None, pool headers are used. If provided, [ 127s] these headers completely replace any pool-specific headers. [ 127s] [ 127s] :param retries: [ 127s] Configure the number of retries to allow before raising a [ 127s] :class:`~urllib3.exceptions.MaxRetryError` exception. [ 127s] [ 127s] Pass ``None`` to retry until you receive a response. Pass a [ 127s] :class:`~urllib3.util.retry.Retry` object for fine-grained control [ 127s] over different types of retries. [ 127s] Pass an integer number to retry connection errors that many times, [ 127s] but no other types of errors. Pass zero to never retry. [ 127s] [ 127s] If ``False``, then retries are disabled and any exception is raised [ 127s] immediately. Also, instead of raising a MaxRetryError on redirects, [ 127s] the redirect response will be returned. [ 127s] [ 127s] :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. [ 127s] [ 127s] :param redirect: [ 127s] If True, automatically handle redirects (status codes 301, 302, [ 127s] 303, 307, 308). Each redirect counts as a retry. Disabling retries [ 127s] will disable redirect, too. [ 127s] [ 127s] :param assert_same_host: [ 127s] If ``True``, will make sure that the host of the pool requests is [ 127s] consistent else will raise HostChangedError. When False, you can [ 127s] use the pool on an HTTP proxy and request foreign hosts. [ 127s] [ 127s] :param timeout: [ 127s] If specified, overrides the default timeout for this one [ 127s] request. It may be a float (in seconds) or an instance of [ 127s] :class:`urllib3.util.Timeout`. [ 127s] [ 127s] :param pool_timeout: [ 127s] If set and the pool is set to block=True, then this method will [ 127s] block for ``pool_timeout`` seconds and raise EmptyPoolError if no [ 127s] connection is available within the time period. [ 127s] [ 127s] :param release_conn: [ 127s] If False, then the urlopen call will not release the connection [ 127s] back into the pool once a response is received (but will release if [ 127s] you read the entire contents of the response such as when [ 127s] `preload_content=True`). This is useful if you're not preloading [ 127s] the response's content immediately. You will need to call [ 127s] ``r.release_conn()`` on the response ``r`` to return the connection [ 127s] back into the pool. If None, it takes the value of [ 127s] ``response_kw.get('preload_content', True)``. [ 127s] [ 127s] :param chunked: [ 127s] If True, urllib3 will send the body using chunked transfer [ 127s] encoding. Otherwise, urllib3 will send the body using the standard [ 127s] content-length form. Defaults to False. [ 127s] [ 127s] :param int body_pos: [ 127s] Position to seek to in file-like body in the event of a retry or [ 127s] redirect. Typically this won't need to be set because urllib3 will [ 127s] auto-populate the value when needed. [ 127s] [ 127s] :param \\**response_kw: [ 127s] Additional parameters are passed to [ 127s] :meth:`urllib3.response.HTTPResponse.from_httplib` [ 127s] """ [ 127s] if headers is None: [ 127s] headers = self.headers [ 127s] [ 127s] if not isinstance(retries, Retry): [ 127s] retries = Retry.from_int(retries, redirect=redirect, default=self.retries) [ 127s] [ 127s] if release_conn is None: [ 127s] release_conn = response_kw.get("preload_content", True) [ 127s] [ 127s] # Check host [ 127s] if assert_same_host and not self.is_same_host(url): [ 127s] raise HostChangedError(self, url, retries) [ 127s] [ 127s] # Ensure that the URL we're connecting to is properly encoded [ 127s] if url.startswith("/"): [ 127s] url = six.ensure_str(_encode_target(url)) [ 127s] else: [ 127s] url = six.ensure_str(parse_url(url).url) [ 127s] [ 127s] conn = None [ 127s] [ 127s] # Track whether `conn` needs to be released before [ 127s] # returning/raising/recursing. Update this variable if necessary, and [ 127s] # leave `release_conn` constant throughout the function. That way, if [ 127s] # the function recurses, the original value of `release_conn` will be [ 127s] # passed down into the recursive call, and its value will be respected. [ 127s] # [ 127s] # See issue #651 [1] for details. [ 127s] # [ 127s] # [1] [ 127s] release_this_conn = release_conn [ 127s] [ 127s] # Merge the proxy headers. Only do this in HTTP. We have to copy the [ 127s] # headers dict so we can safely change it without those changes being [ 127s] # reflected in anyone else's copy. [ 127s] if self.scheme == "http": [ 127s] headers = headers.copy() [ 127s] headers.update(self.proxy_headers) [ 127s] [ 127s] # Must keep the exception bound to a separate variable or else Python 3 [ 127s] # complains about UnboundLocalError. [ 127s] err = None [ 127s] [ 127s] # Keep track of whether we cleanly exited the except block. This [ 127s] # ensures we do proper cleanup in finally. [ 127s] clean_exit = False [ 127s] [ 127s] # Rewind body position, if needed. Record current position [ 127s] # for future rewinds in the event of a redirect/retry. [ 127s] body_pos = set_file_position(body, body_pos) [ 127s] [ 127s] try: [ 127s] # Request a connection from the queue. [ 127s] timeout_obj = self._get_timeout(timeout) [ 127s] conn = self._get_conn(timeout=pool_timeout) [ 127s] [ 127s] conn.timeout = timeout_obj.connect_timeout [ 127s] [ 127s] is_new_proxy_conn = self.proxy is not None and not getattr( [ 127s] conn, "sock", None [ 127s] ) [ 127s] if is_new_proxy_conn: [ 127s] self._prepare_proxy(conn) [ 127s] [ 127s] # Make the request on the httplib connection object. [ 127s] httplib_response = self._make_request( [ 127s] conn, [ 127s] method, [ 127s] url, [ 127s] timeout=timeout_obj, [ 127s] body=body, [ 127s] headers=headers, [ 127s] chunked=chunked, [ 127s] ) [ 127s] [ 127s] # If we're going to release the connection in ``finally:``, then [ 127s] # the response doesn't need to know about the connection. Otherwise [ 127s] # it will also try to release it and we'll have a double-release [ 127s] # mess. [ 127s] response_conn = conn if not release_conn else None [ 127s] [ 127s] # Pass method to Response for length checking [ 127s] response_kw["request_method"] = method [ 127s] [ 127s] # Import httplib's response into our own wrapper object [ 127s] response = self.ResponseCls.from_httplib( [ 127s] httplib_response, [ 127s] pool=self, [ 127s] connection=response_conn, [ 127s] retries=retries, [ 127s] **response_kw [ 127s] ) [ 127s] [ 127s] # Everything went great! [ 127s] clean_exit = True [ 127s] [ 127s] except EmptyPoolError: [ 127s] # Didn't get a connection from the pool, no need to clean up [ 127s] clean_exit = True [ 127s] release_this_conn = False [ 127s] raise [ 127s] [ 127s] except ( [ 127s] TimeoutError, [ 127s] HTTPException, [ 127s] SocketError, [ 127s] ProtocolError, [ 127s] BaseSSLError, [ 127s] SSLError, [ 127s] CertificateError, [ 127s] ) as e: [ 127s] # Discard the connection for these exceptions. It will be [ 127s] # replaced during the next _get_conn() call. [ 127s] clean_exit = False [ 127s] if isinstance(e, (BaseSSLError, CertificateError)): [ 127s] e = SSLError(e) [ 127s] elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy: [ 127s] e = ProxyError("Cannot connect to proxy.", e) [ 127s] elif isinstance(e, (SocketError, HTTPException)): [ 127s] e = ProtocolError("Connection aborted.", e) [ 127s] [ 127s] retries = retries.increment( [ 127s] method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2] [ 127s] ) [ 127s] retries.sleep() [ 127s] [ 127s] # Keep track of the error for the retry warning. [ 127s] err = e [ 127s] [ 127s] finally: [ 127s] if not clean_exit: [ 127s] # We hit some kind of exception, handled or otherwise. We need [ 127s] # to throw the connection away unless explicitly told not to. [ 127s] # Close the connection, set the variable to None, and make sure [ 127s] # we put the None back in the pool to avoid leaking it. [ 127s] conn = conn and conn.close() [ 127s] release_this_conn = True [ 127s] [ 127s] if release_this_conn: [ 127s] # Put the connection back to be reused. If the connection is [ 127s] # expired then it will be None, which will get replaced with a [ 127s] # fresh connection during _get_conn. [ 127s] self._put_conn(conn) [ 127s] [ 127s] if not conn: [ 127s] # Try again [ 127s] log.warning( [ 127s] "Retrying (%r) after connection broken by '%r': %s", retries, err, url [ 127s] ) [ 127s] > return self.urlopen( [ 127s] method, [ 127s] url, [ 127s] body, [ 127s] headers, [ 127s] retries, [ 127s] redirect, [ 127s] assert_same_host, [ 127s] timeout=timeout, [ 127s] pool_timeout=pool_timeout, [ 127s] release_conn=release_conn, [ 127s] chunked=chunked, [ 127s] body_pos=body_pos, [ 127s] **response_kw [ 127s] ) [ 127s] [ 127s] /usr/lib/python3.8/site-packages/urllib3/connectionpool.py:754: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] method = 'GET', url = '/v2/machines', body = None, headers = {} [ 127s] retries = Retry(total=0, connect=None, read=None, redirect=None, status=None) [ 127s] redirect = False, assert_same_host = False, timeout = 60, pool_timeout = None [ 127s] release_conn = True, chunked = False, body_pos = None [ 127s] response_kw = {'request_url': 'http://127.0.0.1:6004/v2/machines'}, conn = None [ 127s] release_this_conn = True [ 127s] err = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') [ 127s] clean_exit = False, timeout_obj = Timeout(connect=60, read=60, total=None) [ 127s] is_new_proxy_conn = False [ 127s] [ 127s] def urlopen( [ 127s] self, [ 127s] method, [ 127s] url, [ 127s] body=None, [ 127s] headers=None, [ 127s] retries=None, [ 127s] redirect=True, [ 127s] assert_same_host=True, [ 127s] timeout=_Default, [ 127s] pool_timeout=None, [ 127s] release_conn=None, [ 127s] chunked=False, [ 127s] body_pos=None, [ 127s] **response_kw [ 127s] ): [ 127s] """ [ 127s] Get a connection from the pool and perform an HTTP request. This is the [ 127s] lowest level call for making a request, so you'll need to specify all [ 127s] the raw details. [ 127s] [ 127s] .. note:: [ 127s] [ 127s] More commonly, it's appropriate to use a convenience method provided [ 127s] by :class:`.RequestMethods`, such as :meth:`request`. [ 127s] [ 127s] .. note:: [ 127s] [ 127s] `release_conn` will only behave as expected if [ 127s] `preload_content=False` because we want to make [ 127s] `preload_content=False` the default behaviour someday soon without [ 127s] breaking backwards compatibility. [ 127s] [ 127s] :param method: [ 127s] HTTP request method (such as GET, POST, PUT, etc.) [ 127s] [ 127s] :param body: [ 127s] Data to send in the request body (useful for creating [ 127s] POST requests, see HTTPConnectionPool.post_url for [ 127s] more convenience). [ 127s] [ 127s] :param headers: [ 127s] Dictionary of custom headers to send, such as User-Agent, [ 127s] If-None-Match, etc. If None, pool headers are used. If provided, [ 127s] these headers completely replace any pool-specific headers. [ 127s] [ 127s] :param retries: [ 127s] Configure the number of retries to allow before raising a [ 127s] :class:`~urllib3.exceptions.MaxRetryError` exception. [ 127s] [ 127s] Pass ``None`` to retry until you receive a response. Pass a [ 127s] :class:`~urllib3.util.retry.Retry` object for fine-grained control [ 127s] over different types of retries. [ 127s] Pass an integer number to retry connection errors that many times, [ 127s] but no other types of errors. Pass zero to never retry. [ 127s] [ 127s] If ``False``, then retries are disabled and any exception is raised [ 127s] immediately. Also, instead of raising a MaxRetryError on redirects, [ 127s] the redirect response will be returned. [ 127s] [ 127s] :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. [ 127s] [ 127s] :param redirect: [ 127s] If True, automatically handle redirects (status codes 301, 302, [ 127s] 303, 307, 308). Each redirect counts as a retry. Disabling retries [ 127s] will disable redirect, too. [ 127s] [ 127s] :param assert_same_host: [ 127s] If ``True``, will make sure that the host of the pool requests is [ 127s] consistent else will raise HostChangedError. When False, you can [ 127s] use the pool on an HTTP proxy and request foreign hosts. [ 127s] [ 127s] :param timeout: [ 127s] If specified, overrides the default timeout for this one [ 127s] request. It may be a float (in seconds) or an instance of [ 127s] :class:`urllib3.util.Timeout`. [ 127s] [ 127s] :param pool_timeout: [ 127s] If set and the pool is set to block=True, then this method will [ 127s] block for ``pool_timeout`` seconds and raise EmptyPoolError if no [ 127s] connection is available within the time period. [ 127s] [ 127s] :param release_conn: [ 127s] If False, then the urlopen call will not release the connection [ 127s] back into the pool once a response is received (but will release if [ 127s] you read the entire contents of the response such as when [ 127s] `preload_content=True`). This is useful if you're not preloading [ 127s] the response's content immediately. You will need to call [ 127s] ``r.release_conn()`` on the response ``r`` to return the connection [ 127s] back into the pool. If None, it takes the value of [ 127s] ``response_kw.get('preload_content', True)``. [ 127s] [ 127s] :param chunked: [ 127s] If True, urllib3 will send the body using chunked transfer [ 127s] encoding. Otherwise, urllib3 will send the body using the standard [ 127s] content-length form. Defaults to False. [ 127s] [ 127s] :param int body_pos: [ 127s] Position to seek to in file-like body in the event of a retry or [ 127s] redirect. Typically this won't need to be set because urllib3 will [ 127s] auto-populate the value when needed. [ 127s] [ 127s] :param \\**response_kw: [ 127s] Additional parameters are passed to [ 127s] :meth:`urllib3.response.HTTPResponse.from_httplib` [ 127s] """ [ 127s] if headers is None: [ 127s] headers = self.headers [ 127s] [ 127s] if not isinstance(retries, Retry): [ 127s] retries = Retry.from_int(retries, redirect=redirect, default=self.retries) [ 127s] [ 127s] if release_conn is None: [ 127s] release_conn = response_kw.get("preload_content", True) [ 127s] [ 127s] # Check host [ 127s] if assert_same_host and not self.is_same_host(url): [ 127s] raise HostChangedError(self, url, retries) [ 127s] [ 127s] # Ensure that the URL we're connecting to is properly encoded [ 127s] if url.startswith("/"): [ 127s] url = six.ensure_str(_encode_target(url)) [ 127s] else: [ 127s] url = six.ensure_str(parse_url(url).url) [ 127s] [ 127s] conn = None [ 127s] [ 127s] # Track whether `conn` needs to be released before [ 127s] # returning/raising/recursing. Update this variable if necessary, and [ 127s] # leave `release_conn` constant throughout the function. That way, if [ 127s] # the function recurses, the original value of `release_conn` will be [ 127s] # passed down into the recursive call, and its value will be respected. [ 127s] # [ 127s] # See issue #651 [1] for details. [ 127s] # [ 127s] # [1] [ 127s] release_this_conn = release_conn [ 127s] [ 127s] # Merge the proxy headers. Only do this in HTTP. We have to copy the [ 127s] # headers dict so we can safely change it without those changes being [ 127s] # reflected in anyone else's copy. [ 127s] if self.scheme == "http": [ 127s] headers = headers.copy() [ 127s] headers.update(self.proxy_headers) [ 127s] [ 127s] # Must keep the exception bound to a separate variable or else Python 3 [ 127s] # complains about UnboundLocalError. [ 127s] err = None [ 127s] [ 127s] # Keep track of whether we cleanly exited the except block. This [ 127s] # ensures we do proper cleanup in finally. [ 127s] clean_exit = False [ 127s] [ 127s] # Rewind body position, if needed. Record current position [ 127s] # for future rewinds in the event of a redirect/retry. [ 127s] body_pos = set_file_position(body, body_pos) [ 127s] [ 127s] try: [ 127s] # Request a connection from the queue. [ 127s] timeout_obj = self._get_timeout(timeout) [ 127s] conn = self._get_conn(timeout=pool_timeout) [ 127s] [ 127s] conn.timeout = timeout_obj.connect_timeout [ 127s] [ 127s] is_new_proxy_conn = self.proxy is not None and not getattr( [ 127s] conn, "sock", None [ 127s] ) [ 127s] if is_new_proxy_conn: [ 127s] self._prepare_proxy(conn) [ 127s] [ 127s] # Make the request on the httplib connection object. [ 127s] httplib_response = self._make_request( [ 127s] conn, [ 127s] method, [ 127s] url, [ 127s] timeout=timeout_obj, [ 127s] body=body, [ 127s] headers=headers, [ 127s] chunked=chunked, [ 127s] ) [ 127s] [ 127s] # If we're going to release the connection in ``finally:``, then [ 127s] # the response doesn't need to know about the connection. Otherwise [ 127s] # it will also try to release it and we'll have a double-release [ 127s] # mess. [ 127s] response_conn = conn if not release_conn else None [ 127s] [ 127s] # Pass method to Response for length checking [ 127s] response_kw["request_method"] = method [ 127s] [ 127s] # Import httplib's response into our own wrapper object [ 127s] response = self.ResponseCls.from_httplib( [ 127s] httplib_response, [ 127s] pool=self, [ 127s] connection=response_conn, [ 127s] retries=retries, [ 127s] **response_kw [ 127s] ) [ 127s] [ 127s] # Everything went great! [ 127s] clean_exit = True [ 127s] [ 127s] except EmptyPoolError: [ 127s] # Didn't get a connection from the pool, no need to clean up [ 127s] clean_exit = True [ 127s] release_this_conn = False [ 127s] raise [ 127s] [ 127s] except ( [ 127s] TimeoutError, [ 127s] HTTPException, [ 127s] SocketError, [ 127s] ProtocolError, [ 127s] BaseSSLError, [ 127s] SSLError, [ 127s] CertificateError, [ 127s] ) as e: [ 127s] # Discard the connection for these exceptions. It will be [ 127s] # replaced during the next _get_conn() call. [ 127s] clean_exit = False [ 127s] if isinstance(e, (BaseSSLError, CertificateError)): [ 127s] e = SSLError(e) [ 127s] elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy: [ 127s] e = ProxyError("Cannot connect to proxy.", e) [ 127s] elif isinstance(e, (SocketError, HTTPException)): [ 127s] e = ProtocolError("Connection aborted.", e) [ 127s] [ 127s] retries = retries.increment( [ 127s] method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2] [ 127s] ) [ 127s] retries.sleep() [ 127s] [ 127s] # Keep track of the error for the retry warning. [ 127s] err = e [ 127s] [ 127s] finally: [ 127s] if not clean_exit: [ 127s] # We hit some kind of exception, handled or otherwise. We need [ 127s] # to throw the connection away unless explicitly told not to. [ 127s] # Close the connection, set the variable to None, and make sure [ 127s] # we put the None back in the pool to avoid leaking it. [ 127s] conn = conn and conn.close() [ 127s] release_this_conn = True [ 127s] [ 127s] if release_this_conn: [ 127s] # Put the connection back to be reused. If the connection is [ 127s] # expired then it will be None, which will get replaced with a [ 127s] # fresh connection during _get_conn. [ 127s] self._put_conn(conn) [ 127s] [ 127s] if not conn: [ 127s] # Try again [ 127s] log.warning( [ 127s] "Retrying (%r) after connection broken by '%r': %s", retries, err, url [ 127s] ) [ 127s] > return self.urlopen( [ 127s] method, [ 127s] url, [ 127s] body, [ 127s] headers, [ 127s] retries, [ 127s] redirect, [ 127s] assert_same_host, [ 127s] timeout=timeout, [ 127s] pool_timeout=pool_timeout, [ 127s] release_conn=release_conn, [ 127s] chunked=chunked, [ 127s] body_pos=body_pos, [ 127s] **response_kw [ 127s] ) [ 127s] [ 127s] /usr/lib/python3.8/site-packages/urllib3/connectionpool.py:754: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = [ 127s] method = 'GET', url = '/v2/machines', body = None, headers = {} [ 127s] retries = Retry(total=0, connect=None, read=None, redirect=None, status=None) [ 127s] redirect = False, assert_same_host = False, timeout = 60, pool_timeout = None [ 127s] release_conn = True, chunked = False, body_pos = None [ 127s] response_kw = {'request_url': 'http://127.0.0.1:6004/v2/machines'}, conn = None [ 127s] release_this_conn = True, err = None, clean_exit = False [ 127s] timeout_obj = Timeout(connect=60, read=60, total=None) [ 127s] is_new_proxy_conn = False [ 127s] [ 127s] def urlopen( [ 127s] self, [ 127s] method, [ 127s] url, [ 127s] body=None, [ 127s] headers=None, [ 127s] retries=None, [ 127s] redirect=True, [ 127s] assert_same_host=True, [ 127s] timeout=_Default, [ 127s] pool_timeout=None, [ 127s] release_conn=None, [ 127s] chunked=False, [ 127s] body_pos=None, [ 127s] **response_kw [ 127s] ): [ 127s] """ [ 127s] Get a connection from the pool and perform an HTTP request. This is the [ 127s] lowest level call for making a request, so you'll need to specify all [ 127s] the raw details. [ 127s] [ 127s] .. note:: [ 127s] [ 127s] More commonly, it's appropriate to use a convenience method provided [ 127s] by :class:`.RequestMethods`, such as :meth:`request`. [ 127s] [ 127s] .. note:: [ 127s] [ 127s] `release_conn` will only behave as expected if [ 127s] `preload_content=False` because we want to make [ 127s] `preload_content=False` the default behaviour someday soon without [ 127s] breaking backwards compatibility. [ 127s] [ 127s] :param method: [ 127s] HTTP request method (such as GET, POST, PUT, etc.) [ 127s] [ 127s] :param body: [ 127s] Data to send in the request body (useful for creating [ 127s] POST requests, see HTTPConnectionPool.post_url for [ 127s] more convenience). [ 127s] [ 127s] :param headers: [ 127s] Dictionary of custom headers to send, such as User-Agent, [ 127s] If-None-Match, etc. If None, pool headers are used. If provided, [ 127s] these headers completely replace any pool-specific headers. [ 127s] [ 127s] :param retries: [ 127s] Configure the number of retries to allow before raising a [ 127s] :class:`~urllib3.exceptions.MaxRetryError` exception. [ 127s] [ 127s] Pass ``None`` to retry until you receive a response. Pass a [ 127s] :class:`~urllib3.util.retry.Retry` object for fine-grained control [ 127s] over different types of retries. [ 127s] Pass an integer number to retry connection errors that many times, [ 127s] but no other types of errors. Pass zero to never retry. [ 127s] [ 127s] If ``False``, then retries are disabled and any exception is raised [ 127s] immediately. Also, instead of raising a MaxRetryError on redirects, [ 127s] the redirect response will be returned. [ 127s] [ 127s] :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. [ 127s] [ 127s] :param redirect: [ 127s] If True, automatically handle redirects (status codes 301, 302, [ 127s] 303, 307, 308). Each redirect counts as a retry. Disabling retries [ 127s] will disable redirect, too. [ 127s] [ 127s] :param assert_same_host: [ 127s] If ``True``, will make sure that the host of the pool requests is [ 127s] consistent else will raise HostChangedError. When False, you can [ 127s] use the pool on an HTTP proxy and request foreign hosts. [ 127s] [ 127s] :param timeout: [ 127s] If specified, overrides the default timeout for this one [ 127s] request. It may be a float (in seconds) or an instance of [ 127s] :class:`urllib3.util.Timeout`. [ 127s] [ 127s] :param pool_timeout: [ 127s] If set and the pool is set to block=True, then this method will [ 127s] block for ``pool_timeout`` seconds and raise EmptyPoolError if no [ 127s] connection is available within the time period. [ 127s] [ 127s] :param release_conn: [ 127s] If False, then the urlopen call will not release the connection [ 127s] back into the pool once a response is received (but will release if [ 127s] you read the entire contents of the response such as when [ 127s] `preload_content=True`). This is useful if you're not preloading [ 127s] the response's content immediately. You will need to call [ 127s] ``r.release_conn()`` on the response ``r`` to return the connection [ 127s] back into the pool. If None, it takes the value of [ 127s] ``response_kw.get('preload_content', True)``. [ 127s] [ 127s] :param chunked: [ 127s] If True, urllib3 will send the body using chunked transfer [ 127s] encoding. Otherwise, urllib3 will send the body using the standard [ 127s] content-length form. Defaults to False. [ 127s] [ 127s] :param int body_pos: [ 127s] Position to seek to in file-like body in the event of a retry or [ 127s] redirect. Typically this won't need to be set because urllib3 will [ 127s] auto-populate the value when needed. [ 127s] [ 127s] :param \\**response_kw: [ 127s] Additional parameters are passed to [ 127s] :meth:`urllib3.response.HTTPResponse.from_httplib` [ 127s] """ [ 127s] if headers is None: [ 127s] headers = self.headers [ 127s] [ 127s] if not isinstance(retries, Retry): [ 127s] retries = Retry.from_int(retries, redirect=redirect, default=self.retries) [ 127s] [ 127s] if release_conn is None: [ 127s] release_conn = response_kw.get("preload_content", True) [ 127s] [ 127s] # Check host [ 127s] if assert_same_host and not self.is_same_host(url): [ 127s] raise HostChangedError(self, url, retries) [ 127s] [ 127s] # Ensure that the URL we're connecting to is properly encoded [ 127s] if url.startswith("/"): [ 127s] url = six.ensure_str(_encode_target(url)) [ 127s] else: [ 127s] url = six.ensure_str(parse_url(url).url) [ 127s] [ 127s] conn = None [ 127s] [ 127s] # Track whether `conn` needs to be released before [ 127s] # returning/raising/recursing. Update this variable if necessary, and [ 127s] # leave `release_conn` constant throughout the function. That way, if [ 127s] # the function recurses, the original value of `release_conn` will be [ 127s] # passed down into the recursive call, and its value will be respected. [ 127s] # [ 127s] # See issue #651 [1] for details. [ 127s] # [ 127s] # [1] [ 127s] release_this_conn = release_conn [ 127s] [ 127s] # Merge the proxy headers. Only do this in HTTP. We have to copy the [ 127s] # headers dict so we can safely change it without those changes being [ 127s] # reflected in anyone else's copy. [ 127s] if self.scheme == "http": [ 127s] headers = headers.copy() [ 127s] headers.update(self.proxy_headers) [ 127s] [ 127s] # Must keep the exception bound to a separate variable or else Python 3 [ 127s] # complains about UnboundLocalError. [ 127s] err = None [ 127s] [ 127s] # Keep track of whether we cleanly exited the except block. This [ 127s] # ensures we do proper cleanup in finally. [ 127s] clean_exit = False [ 127s] [ 127s] # Rewind body position, if needed. Record current position [ 127s] # for future rewinds in the event of a redirect/retry. [ 127s] body_pos = set_file_position(body, body_pos) [ 127s] [ 127s] try: [ 127s] # Request a connection from the queue. [ 127s] timeout_obj = self._get_timeout(timeout) [ 127s] conn = self._get_conn(timeout=pool_timeout) [ 127s] [ 127s] conn.timeout = timeout_obj.connect_timeout [ 127s] [ 127s] is_new_proxy_conn = self.proxy is not None and not getattr( [ 127s] conn, "sock", None [ 127s] ) [ 127s] if is_new_proxy_conn: [ 127s] self._prepare_proxy(conn) [ 127s] [ 127s] # Make the request on the httplib connection object. [ 127s] httplib_response = self._make_request( [ 127s] conn, [ 127s] method, [ 127s] url, [ 127s] timeout=timeout_obj, [ 127s] body=body, [ 127s] headers=headers, [ 127s] chunked=chunked, [ 127s] ) [ 127s] [ 127s] # If we're going to release the connection in ``finally:``, then [ 127s] # the response doesn't need to know about the connection. Otherwise [ 127s] # it will also try to release it and we'll have a double-release [ 127s] # mess. [ 127s] response_conn = conn if not release_conn else None [ 127s] [ 127s] # Pass method to Response for length checking [ 127s] response_kw["request_method"] = method [ 127s] [ 127s] # Import httplib's response into our own wrapper object [ 127s] response = self.ResponseCls.from_httplib( [ 127s] httplib_response, [ 127s] pool=self, [ 127s] connection=response_conn, [ 127s] retries=retries, [ 127s] **response_kw [ 127s] ) [ 127s] [ 127s] # Everything went great! [ 127s] clean_exit = True [ 127s] [ 127s] except EmptyPoolError: [ 127s] # Didn't get a connection from the pool, no need to clean up [ 127s] clean_exit = True [ 127s] release_this_conn = False [ 127s] raise [ 127s] [ 127s] except ( [ 127s] TimeoutError, [ 127s] HTTPException, [ 127s] SocketError, [ 127s] ProtocolError, [ 127s] BaseSSLError, [ 127s] SSLError, [ 127s] CertificateError, [ 127s] ) as e: [ 127s] # Discard the connection for these exceptions. It will be [ 127s] # replaced during the next _get_conn() call. [ 127s] clean_exit = False [ 127s] if isinstance(e, (BaseSSLError, CertificateError)): [ 127s] e = SSLError(e) [ 127s] elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy: [ 127s] e = ProxyError("Cannot connect to proxy.", e) [ 127s] elif isinstance(e, (SocketError, HTTPException)): [ 127s] e = ProtocolError("Connection aborted.", e) [ 127s] [ 127s] > retries = retries.increment( [ 127s] method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2] [ 127s] ) [ 127s] [ 127s] /usr/lib/python3.8/site-packages/urllib3/connectionpool.py:726: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] self = Retry(total=0, connect=None, read=None, redirect=None, status=None) [ 127s] method = 'GET', url = '/v2/machines', response = None [ 127s] error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') [ 127s] _pool = [ 127s] _stacktrace = [ 127s] [ 127s] def increment( [ 127s] self, [ 127s] method=None, [ 127s] url=None, [ 127s] response=None, [ 127s] error=None, [ 127s] _pool=None, [ 127s] _stacktrace=None, [ 127s] ): [ 127s] """ Return a new Retry object with incremented retry counters. [ 127s] [ 127s] :param response: A response object, or None, if the server did not [ 127s] return a response. [ 127s] :type response: :class:`~urllib3.response.HTTPResponse` [ 127s] :param Exception error: An error encountered during the request, or [ 127s] None if the response was received successfully. [ 127s] [ 127s] :return: A new ``Retry`` object. [ 127s] """ [ 127s] if self.total is False and error: [ 127s] # Disabled, indicate to re-raise the error. [ 127s] raise six.reraise(type(error), error, _stacktrace) [ 127s] [ 127s] total = self.total [ 127s] if total is not None: [ 127s] total -= 1 [ 127s] [ 127s] connect = self.connect [ 127s] read = self.read [ 127s] redirect = self.redirect [ 127s] status_count = self.status [ 127s] cause = "unknown" [ 127s] status = None [ 127s] redirect_location = None [ 127s] [ 127s] if error and self._is_connection_error(error): [ 127s] # Connect retry? [ 127s] if connect is False: [ 127s] raise six.reraise(type(error), error, _stacktrace) [ 127s] elif connect is not None: [ 127s] connect -= 1 [ 127s] [ 127s] elif error and self._is_read_error(error): [ 127s] # Read retry? [ 127s] if read is False or not self._is_method_retryable(method): [ 127s] raise six.reraise(type(error), error, _stacktrace) [ 127s] elif read is not None: [ 127s] read -= 1 [ 127s] [ 127s] elif response and response.get_redirect_location(): [ 127s] # Redirect retry? [ 127s] if redirect is not None: [ 127s] redirect -= 1 [ 127s] cause = "too many redirects" [ 127s] redirect_location = response.get_redirect_location() [ 127s] status = response.status [ 127s] [ 127s] else: [ 127s] # Incrementing because of a server error like a 500 in [ 127s] # status_forcelist and a the given method is in the whitelist [ 127s] cause = ResponseError.GENERIC_ERROR [ 127s] if response and response.status: [ 127s] if status_count is not None: [ 127s] status_count -= 1 [ 127s] cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) [ 127s] status = response.status [ 127s] [ 127s] history = self.history + ( [ 127s] RequestHistory(method, url, error, status, redirect_location), [ 127s] ) [ 127s] [ 127s] new_retry = self.new( [ 127s] total=total, [ 127s] connect=connect, [ 127s] read=read, [ 127s] redirect=redirect, [ 127s] status=status_count, [ 127s] history=history, [ 127s] ) [ 127s] [ 127s] if new_retry.is_exhausted(): [ 127s] > raise MaxRetryError(_pool, url, error or ResponseError(cause)) [ 127s] E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='127.0.0.1', port=6004): Max retries exceeded with url: /v2/machines (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) [ 127s] [ 127s] /usr/lib/python3.8/site-packages/urllib3/util/retry.py:439: MaxRetryError [ 127s] [ 127s] During handling of the above exception, another exception occurred: [ 127s] [ 127s] self = [ 127s] [ 127s] def test_reconnect_with_several_hosts_passed(self): [ 127s] """ INTEGRATION: receive several hosts at connection setup. """ [ 127s] self.processHelper.stop() [ 127s] self.processHelper.run(number=3) [ 127s] > self.client = etcd.Client( [ 127s] host=( [ 127s] ('127.0.0.1', 6004), [ 127s] ('127.0.0.1', 6001)), [ 127s] allow_reconnect=True) [ 127s] [ 127s] src/etcd/tests/integration/test_simple.py:198: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] src/etcd/client.py:203: in __init__ [ 127s] set(self.machines)) [ 127s] src/etcd/client.py:318: in machines [ 127s] return self.machines [ 127s] src/etcd/client.py:305: in machines [ 127s] self._handle_server_response(response).data.decode('utf-8').split(',') [ 127s] src/etcd/client.py:987: in _handle_server_response [ 127s] etcd.EtcdError.handle(r) [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] cls = [ 127s] payload = {'cause': '404 page not found\n', 'message': 'Bad response'} [ 127s] [ 127s] @classmethod [ 127s] def handle(cls, payload): [ 127s] """ [ 127s] Decodes the error and throws the appropriate error message [ 127s] [ 127s] :param payload: The decoded JSON error payload as a dict. [ 127s] """ [ 127s] error_code = payload.get("errorCode") [ 127s] message = payload.get("message") [ 127s] cause = payload.get("cause") [ 127s] msg = '{} : {}'.format(message, cause) [ 127s] status = payload.get("status") [ 127s] # Some general status handling, as [ 127s] # not all endpoints return coherent error messages [ 127s] if status == 404: [ 127s] error_code = 100 [ 127s] elif status == 401: [ 127s] error_code = 110 [ 127s] exc = cls.error_exceptions.get(error_code, EtcdException) [ 127s] if issubclass(exc, EtcdException): [ 127s] > raise exc(msg, payload) [ 127s] E etcd.EtcdException: Bad response : 404 page not found [ 127s] [ 127s] src/etcd/__init__.py:306: EtcdException [ 127s] ----------------------------- Captured stderr call ----------------------------- [ 127s] 2020-08-12 19:45:43.586144 W | rafthttp: lost the TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:43.586276 E | rafthttp: failed to read 9ca0c7938a0c3dc5 on stream MsgApp v2 (unexpected EOF) [ 127s] 2020-08-12 19:45:43.586338 I | rafthttp: peer 9ca0c7938a0c3dc5 became inactive (message send to peer failed) [ 127s] 2020-08-12 19:45:43.586362 W | rafthttp: lost the TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] 2020-08-12 19:45:44.639262 W | rafthttp: health check for peer 1083aa28485d3319 could not connect: dial tcp 127.0.0.1:8001: connect: connection refused [ 127s] 2020-08-12 19:45:44.639404 W | rafthttp: health check for peer 1083aa28485d3319 could not connect: dial tcp 127.0.0.1:8001: connect: connection refused [ 127s] 2020-08-12 19:45:44.643165 W | rafthttp: health check for peer 9ca0c7938a0c3dc5 could not connect: dial tcp 127.0.0.1:8002: connect: connection refused [ 127s] 2020-08-12 19:45:44.643255 W | rafthttp: health check for peer 9ca0c7938a0c3dc5 could not connect: dial tcp 127.0.0.1:8002: connect: connection refused [ 127s] raft2020/08/12 19:45:45 INFO: bc5472f61da31b5c is starting a new election at term 4 [ 127s] raft2020/08/12 19:45:45 INFO: bc5472f61da31b5c became candidate at term 5 [ 127s] raft2020/08/12 19:45:45 INFO: bc5472f61da31b5c received MsgVoteResp from bc5472f61da31b5c at term 5 [ 127s] raft2020/08/12 19:45:45 INFO: bc5472f61da31b5c [logterm: 4, index: 9] sent MsgVote request to 1083aa28485d3319 at term 5 [ 127s] raft2020/08/12 19:45:45 INFO: bc5472f61da31b5c [logterm: 4, index: 9] sent MsgVote request to 9ca0c7938a0c3dc5 at term 5 [ 127s] raft2020/08/12 19:45:45 INFO: raft.node: bc5472f61da31b5c lost leader 9ca0c7938a0c3dc5 at term 5 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:45:47.627322 I | etcdmain: etcd Version: 3.4.3 [ 127s] 2020-08-12 19:45:47.627352 I | etcdmain: Git SHA: Not provided (use ./build instead of go build) [ 127s] 2020-08-12 19:45:47.627361 I | etcdmain: Go Version: go1.12.17 [ 127s] 2020-08-12 19:45:47.627369 I | etcdmain: Go OS/Arch: linux/amd64 [ 127s] 2020-08-12 19:45:47.627377 I | etcdmain: setting maximum number of CPUs to 8, total number of available CPUs is 8 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:45:47.627674 I | embed: name = test-node-0 [ 127s] 2020-08-12 19:45:47.627689 I | embed: data dir = /tmp/python-etcd2q2emda0/python-etcd.0-xdj6cw5y [ 127s] 2020-08-12 19:45:47.627696 I | embed: member dir = /tmp/python-etcd2q2emda0/python-etcd.0-xdj6cw5y/member [ 127s] 2020-08-12 19:45:47.627703 I | embed: heartbeat = 100ms [ 127s] 2020-08-12 19:45:47.627709 I | embed: election = 1000ms [ 127s] 2020-08-12 19:45:47.627715 I | embed: snapshot count = 100000 [ 127s] 2020-08-12 19:45:47.627726 I | embed: advertise client URLs = http://127.0.0.1:6001 [ 127s] 2020-08-12 19:45:47.649338 I | etcdserver: starting member 1083aa28485d3319 in cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:47 INFO: 1083aa28485d3319 switched to configuration voters=() [ 127s] raft2020/08/12 19:45:47 INFO: 1083aa28485d3319 became follower at term 0 [ 127s] raft2020/08/12 19:45:47 INFO: newRaft 1083aa28485d3319 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0] [ 127s] raft2020/08/12 19:45:47 INFO: 1083aa28485d3319 became follower at term 1 [ 127s] raft2020/08/12 19:45:47 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153) [ 127s] raft2020/08/12 19:45:47 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965) [ 127s] raft2020/08/12 19:45:47 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:47.665229 W | auth: simple token is not cryptographically signed [ 127s] 2020-08-12 19:45:47.677846 I | rafthttp: starting peer 9ca0c7938a0c3dc5... [ 127s] 2020-08-12 19:45:47.677981 I | rafthttp: started HTTP pipelining with peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:45:47.679800 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (writer) [ 127s] 2020-08-12 19:45:47.682879 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (writer) [ 127s] 2020-08-12 19:45:47.683950 I | rafthttp: started peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:45:47.684114 I | rafthttp: added peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:45:47.684197 I | rafthttp: starting peer bc5472f61da31b5c... [ 127s] 2020-08-12 19:45:47.684238 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] 2020-08-12 19:45:47.684439 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:47.684793 I | rafthttp: started HTTP pipelining with peer bc5472f61da31b5c [ 127s] 2020-08-12 19:45:47.685829 I | rafthttp: started streaming with peer bc5472f61da31b5c (writer) [ 127s] 2020-08-12 19:45:47.686377 I | rafthttp: started streaming with peer bc5472f61da31b5c (writer) [ 127s] 2020-08-12 19:45:47.687148 I | rafthttp: started peer bc5472f61da31b5c [ 127s] 2020-08-12 19:45:47.687549 I | rafthttp: started streaming with peer bc5472f61da31b5c (stream Message reader) [ 127s] 2020-08-12 19:45:47.687673 I | rafthttp: started streaming with peer bc5472f61da31b5c (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:47.687832 I | rafthttp: added peer bc5472f61da31b5c [ 127s] 2020-08-12 19:45:47.687936 I | etcdserver: starting server... [version: 3.4.3, cluster version: to_be_decided] [ 127s] raft2020/08/12 19:45:47 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:47.690896 I | etcdserver/membership: added member 1083aa28485d3319 [http://127.0.0.1:8001] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:47 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:47.691616 I | etcdserver/membership: added member 9ca0c7938a0c3dc5 [http://127.0.0.1:8002] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:47 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:47.692325 I | etcdserver/membership: added member bc5472f61da31b5c [http://127.0.0.1:8003] to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:45:47.701899 I | embed: listening for peers on 127.0.0.1:8001 [ 127s] raft2020/08/12 19:45:49 INFO: 1083aa28485d3319 is starting a new election at term 1 [ 127s] raft2020/08/12 19:45:49 INFO: 1083aa28485d3319 became candidate at term 2 [ 127s] raft2020/08/12 19:45:49 INFO: 1083aa28485d3319 received MsgVoteResp from 1083aa28485d3319 at term 2 [ 127s] raft2020/08/12 19:45:49 INFO: 1083aa28485d3319 [logterm: 1, index: 3] sent MsgVote request to 9ca0c7938a0c3dc5 at term 2 [ 127s] raft2020/08/12 19:45:49 INFO: 1083aa28485d3319 [logterm: 1, index: 3] sent MsgVote request to bc5472f61da31b5c at term 2 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:45:49.638672 I | etcdmain: etcd Version: 3.4.3 [ 127s] 2020-08-12 19:45:49.638695 I | etcdmain: Git SHA: Not provided (use ./build instead of go build) [ 127s] 2020-08-12 19:45:49.638702 I | etcdmain: Go Version: go1.12.17 [ 127s] 2020-08-12 19:45:49.638708 I | etcdmain: Go OS/Arch: linux/amd64 [ 127s] 2020-08-12 19:45:49.638715 I | etcdmain: setting maximum number of CPUs to 8, total number of available CPUs is 8 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:45:49.638957 I | embed: name = test-node-1 [ 127s] 2020-08-12 19:45:49.638971 I | embed: data dir = /tmp/python-etcd2q2emda0/python-etcd.1-34j_7i6_ [ 127s] 2020-08-12 19:45:49.638978 I | embed: member dir = /tmp/python-etcd2q2emda0/python-etcd.1-34j_7i6_/member [ 127s] 2020-08-12 19:45:49.638984 I | embed: heartbeat = 100ms [ 127s] 2020-08-12 19:45:49.638990 I | embed: election = 1000ms [ 127s] 2020-08-12 19:45:49.638996 I | embed: snapshot count = 100000 [ 127s] 2020-08-12 19:45:49.639006 I | embed: advertise client URLs = http://127.0.0.1:6002 [ 127s] 2020-08-12 19:45:49.654029 I | etcdserver: starting member 9ca0c7938a0c3dc5 in cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:49 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=() [ 127s] raft2020/08/12 19:45:49 INFO: 9ca0c7938a0c3dc5 became follower at term 0 [ 127s] raft2020/08/12 19:45:49 INFO: newRaft 9ca0c7938a0c3dc5 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0] [ 127s] raft2020/08/12 19:45:49 INFO: 9ca0c7938a0c3dc5 became follower at term 1 [ 127s] raft2020/08/12 19:45:49 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153) [ 127s] raft2020/08/12 19:45:49 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965) [ 127s] raft2020/08/12 19:45:49 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:49.670327 W | auth: simple token is not cryptographically signed [ 127s] 2020-08-12 19:45:49.688024 I | rafthttp: starting peer 1083aa28485d3319... [ 127s] 2020-08-12 19:45:49.688172 I | rafthttp: started HTTP pipelining with peer 1083aa28485d3319 [ 127s] 2020-08-12 19:45:49.690584 I | rafthttp: started streaming with peer 1083aa28485d3319 (writer) [ 127s] 2020-08-12 19:45:49.690843 I | rafthttp: started streaming with peer 1083aa28485d3319 (writer) [ 127s] 2020-08-12 19:45:49.694561 I | rafthttp: started peer 1083aa28485d3319 [ 127s] 2020-08-12 19:45:49.694812 I | rafthttp: added peer 1083aa28485d3319 [ 127s] 2020-08-12 19:45:49.695118 I | rafthttp: started streaming with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:49.695165 I | rafthttp: starting peer bc5472f61da31b5c... [ 127s] 2020-08-12 19:45:49.695322 I | rafthttp: started HTTP pipelining with peer bc5472f61da31b5c [ 127s] 2020-08-12 19:45:49.695373 I | rafthttp: started streaming with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:45:49.699273 I | rafthttp: started streaming with peer bc5472f61da31b5c (writer) [ 127s] 2020-08-12 19:45:49.699962 I | rafthttp: peer 9ca0c7938a0c3dc5 became active [ 127s] 2020-08-12 19:45:49.700064 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:45:49.700452 I | rafthttp: peer 1083aa28485d3319 became active [ 127s] 2020-08-12 19:45:49.700684 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:49.701167 I | rafthttp: started streaming with peer bc5472f61da31b5c (writer) [ 127s] 2020-08-12 19:45:49.701787 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message writer) [ 127s] 2020-08-12 19:45:49.702082 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:45:49.702697 I | rafthttp: started streaming with peer bc5472f61da31b5c (stream Message reader) [ 127s] 2020-08-12 19:45:49.703032 I | rafthttp: started peer bc5472f61da31b5c [ 127s] 2020-08-12 19:45:49.703109 I | rafthttp: started streaming with peer bc5472f61da31b5c (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:49.703178 I | rafthttp: added peer bc5472f61da31b5c [ 127s] 2020-08-12 19:45:49.703285 I | etcdserver: starting server... [version: 3.4.3, cluster version: to_be_decided] [ 127s] raft2020/08/12 19:45:49 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:49.705900 I | etcdserver/membership: added member 1083aa28485d3319 [http://127.0.0.1:8001] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:49 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:49.706288 I | etcdserver/membership: added member 9ca0c7938a0c3dc5 [http://127.0.0.1:8002] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:49 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:49.706586 I | etcdserver/membership: added member bc5472f61da31b5c [http://127.0.0.1:8003] to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:45:49.711147 I | embed: listening for peers on 127.0.0.1:8002 [ 127s] 2020-08-12 19:45:49.711964 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream Message writer) [ 127s] 2020-08-12 19:45:49.712062 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:49.712068 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:45:49.712230 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] raft2020/08/12 19:45:50 INFO: 1083aa28485d3319 is starting a new election at term 2 [ 127s] raft2020/08/12 19:45:50 INFO: 1083aa28485d3319 became candidate at term 3 [ 127s] raft2020/08/12 19:45:50 INFO: 1083aa28485d3319 received MsgVoteResp from 1083aa28485d3319 at term 3 [ 127s] raft2020/08/12 19:45:50 INFO: 1083aa28485d3319 [logterm: 1, index: 3] sent MsgVote request to 9ca0c7938a0c3dc5 at term 3 [ 127s] raft2020/08/12 19:45:50 INFO: 1083aa28485d3319 [logterm: 1, index: 3] sent MsgVote request to bc5472f61da31b5c at term 3 [ 127s] raft2020/08/12 19:45:50 INFO: 9ca0c7938a0c3dc5 [term: 1] received a MsgVote message with higher term from 1083aa28485d3319 [term: 3] [ 127s] raft2020/08/12 19:45:50 INFO: 9ca0c7938a0c3dc5 became follower at term 3 [ 127s] raft2020/08/12 19:45:50 INFO: 9ca0c7938a0c3dc5 [logterm: 1, index: 3, vote: 0] cast MsgVote for 1083aa28485d3319 [logterm: 1, index: 3] at term 3 [ 127s] raft2020/08/12 19:45:50 INFO: 1083aa28485d3319 received MsgVoteResp from 9ca0c7938a0c3dc5 at term 3 [ 127s] raft2020/08/12 19:45:50 INFO: 1083aa28485d3319 has received 2 MsgVoteResp votes and 0 vote rejections [ 127s] raft2020/08/12 19:45:50 INFO: 1083aa28485d3319 became leader at term 3 [ 127s] raft2020/08/12 19:45:50 INFO: raft.node: 1083aa28485d3319 elected leader 1083aa28485d3319 at term 3 [ 127s] raft2020/08/12 19:45:50 INFO: raft.node: 9ca0c7938a0c3dc5 elected leader 1083aa28485d3319 at term 3 [ 127s] 2020-08-12 19:45:50.678322 W | etcdserver: failed to reach the peerURL(http://127.0.0.1:8003) of member bc5472f61da31b5c (Get http://127.0.0.1:8003/version: dial tcp 127.0.0.1:8003: connect: connection refused) [ 127s] 2020-08-12 19:45:50.678387 W | etcdserver: cannot get the version of member bc5472f61da31b5c (Get http://127.0.0.1:8003/version: dial tcp 127.0.0.1:8003: connect: connection refused) [ 127s] 2020-08-12 19:45:50.678463 I | etcdserver: setting up the initial cluster version to 3.0 [ 127s] 2020-08-12 19:45:50.683223 I | etcdserver: published {Name:test-node-0 ClientURLs:[http://127.0.0.1:6001]} to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:45:50.683313 I | embed: ready to serve client requests [ 127s] 2020-08-12 19:45:50.684923 N | embed: serving insecure client requests on 127.0.0.1:6001, this is strongly discouraged! [ 127s] 2020-08-12 19:45:50.686094 I | etcdserver: published {Name:test-node-1 ClientURLs:[http://127.0.0.1:6002]} to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:45:50.686169 I | embed: ready to serve client requests [ 127s] 2020-08-12 19:45:50.686858 N | etcdserver/membership: set the initial cluster version to 3.0 [ 127s] 2020-08-12 19:45:50.687034 I | etcdserver/api: enabled capabilities for version 3.0 [ 127s] 2020-08-12 19:45:50.687131 N | etcdserver/membership: set the initial cluster version to 3.0 [ 127s] 2020-08-12 19:45:50.687288 I | etcdserver/api: enabled capabilities for version 3.0 [ 127s] 2020-08-12 19:45:50.687790 N | embed: serving insecure client requests on 127.0.0.1:6002, this is strongly discouraged! [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:45:51.646424 I | etcdmain: etcd Version: 3.4.3 [ 127s] 2020-08-12 19:45:51.646456 I | etcdmain: Git SHA: Not provided (use ./build instead of go build) [ 127s] 2020-08-12 19:45:51.646464 I | etcdmain: Go Version: go1.12.17 [ 127s] 2020-08-12 19:45:51.646472 I | etcdmain: Go OS/Arch: linux/amd64 [ 127s] 2020-08-12 19:45:51.646480 I | etcdmain: setting maximum number of CPUs to 8, total number of available CPUs is 8 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:45:51.646758 I | embed: name = test-node-2 [ 127s] 2020-08-12 19:45:51.646772 I | embed: data dir = /tmp/python-etcd2q2emda0/python-etcd.2-2nq9jjic [ 127s] 2020-08-12 19:45:51.646779 I | embed: member dir = /tmp/python-etcd2q2emda0/python-etcd.2-2nq9jjic/member [ 127s] 2020-08-12 19:45:51.646785 I | embed: heartbeat = 100ms [ 127s] 2020-08-12 19:45:51.646791 I | embed: election = 1000ms [ 127s] 2020-08-12 19:45:51.646802 I | embed: snapshot count = 100000 [ 127s] 2020-08-12 19:45:51.646816 I | embed: advertise client URLs = http://127.0.0.1:6003 [ 127s] 2020-08-12 19:45:51.666469 I | etcdserver: starting member bc5472f61da31b5c in cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:51 INFO: bc5472f61da31b5c switched to configuration voters=() [ 127s] raft2020/08/12 19:45:51 INFO: bc5472f61da31b5c became follower at term 0 [ 127s] raft2020/08/12 19:45:51 INFO: newRaft bc5472f61da31b5c [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0] [ 127s] raft2020/08/12 19:45:51 INFO: bc5472f61da31b5c became follower at term 1 [ 127s] raft2020/08/12 19:45:51 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153) [ 127s] raft2020/08/12 19:45:51 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965) [ 127s] raft2020/08/12 19:45:51 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:51.679522 W | auth: simple token is not cryptographically signed [ 127s] 2020-08-12 19:45:51.694453 I | rafthttp: starting peer 1083aa28485d3319... [ 127s] 2020-08-12 19:45:51.694584 I | rafthttp: started HTTP pipelining with peer 1083aa28485d3319 [ 127s] 2020-08-12 19:45:51.697097 I | rafthttp: started streaming with peer 1083aa28485d3319 (writer) [ 127s] 2020-08-12 19:45:51.697167 I | rafthttp: started streaming with peer 1083aa28485d3319 (writer) [ 127s] 2020-08-12 19:45:51.699855 I | rafthttp: started peer 1083aa28485d3319 [ 127s] 2020-08-12 19:45:51.699928 I | rafthttp: started streaming with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:51.700042 I | rafthttp: started streaming with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:45:51.700110 I | rafthttp: added peer 1083aa28485d3319 [ 127s] 2020-08-12 19:45:51.700211 I | rafthttp: starting peer 9ca0c7938a0c3dc5... [ 127s] 2020-08-12 19:45:51.700277 I | rafthttp: started HTTP pipelining with peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:45:51.703360 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (writer) [ 127s] 2020-08-12 19:45:51.704086 I | rafthttp: peer bc5472f61da31b5c became active [ 127s] 2020-08-12 19:45:51.704185 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:45:51.704592 I | rafthttp: peer 1083aa28485d3319 became active [ 127s] 2020-08-12 19:45:51.704732 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:51.705029 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream Message writer) [ 127s] 2020-08-12 19:45:51.705122 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:45:51.706755 I | etcdserver: 1083aa28485d3319 initialized peer connection; fast-forwarding 8 ticks (election ticks 10) with 2 active peer(s) [ 127s] 2020-08-12 19:45:51.707993 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (writer) [ 127s] 2020-08-12 19:45:51.708719 I | rafthttp: started peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:45:51.709017 I | rafthttp: added peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:45:51.709137 I | etcdserver: starting server... [version: 3.4.3, cluster version: to_be_decided] [ 127s] 2020-08-12 19:45:51.712957 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:51.714046 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] raft2020/08/12 19:45:51 INFO: bc5472f61da31b5c [term: 1] received a MsgHeartbeat message with higher term from 1083aa28485d3319 [term: 3] [ 127s] raft2020/08/12 19:45:51 INFO: bc5472f61da31b5c became follower at term 3 [ 127s] raft2020/08/12 19:45:51 INFO: raft.node: bc5472f61da31b5c elected leader 1083aa28485d3319 at term 3 [ 127s] 2020-08-12 19:45:51.717121 I | rafthttp: peer bc5472f61da31b5c became active [ 127s] 2020-08-12 19:45:51.717188 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:45:51.717405 I | rafthttp: peer 9ca0c7938a0c3dc5 became active [ 127s] 2020-08-12 19:45:51.717425 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream Message writer) [ 127s] raft2020/08/12 19:45:51 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:51.717466 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:51.717693 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] 2020-08-12 19:45:51.717774 I | etcdserver/membership: added member 1083aa28485d3319 [http://127.0.0.1:8001] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:51 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:51.718061 I | etcdserver/membership: added member 9ca0c7938a0c3dc5 [http://127.0.0.1:8002] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:51 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:51.718290 I | etcdserver/membership: added member bc5472f61da31b5c [http://127.0.0.1:8003] to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:45:51.721760 I | embed: listening for peers on 127.0.0.1:8003 [ 127s] 2020-08-12 19:45:51.722347 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream Message writer) [ 127s] 2020-08-12 19:45:51.722379 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream Message reader) [ 127s] 2020-08-12 19:45:51.722459 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message writer) [ 127s] 2020-08-12 19:45:51.722661 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream Message reader) [ 127s] 2020-08-12 19:45:51.722930 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:51.723375 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:45:51.723558 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:51.723573 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:45:51.732988 N | etcdserver/membership: set the initial cluster version to 3.0 [ 127s] 2020-08-12 19:45:51.733049 I | etcdserver/api: enabled capabilities for version 3.0 [ 127s] 2020-08-12 19:45:51.738265 I | etcdserver: published {Name:test-node-2 ClientURLs:[http://127.0.0.1:6003]} to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:45:51.738318 I | embed: ready to serve client requests [ 127s] 2020-08-12 19:45:51.738858 N | embed: serving insecure client requests on 127.0.0.1:6003, this is strongly discouraged! [ 127s] 2020-08-12 19:45:51.765033 I | etcdserver: 9ca0c7938a0c3dc5 initialized peer connection; fast-forwarding 8 ticks (election ticks 10) with 2 active peer(s) [ 127s] 2020-08-12 19:45:51.765411 I | etcdserver: bc5472f61da31b5c initialized peer connection; fast-forwarding 8 ticks (election ticks 10) with 2 active peer(s) [ 127s] ------------------------------ Captured log call ------------------------------- [ 127s] WARNING urllib3.connectionpool:connectionpool.py:751 Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')': /v2/machines [ 127s] WARNING urllib3.connectionpool:connectionpool.py:751 Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')': /v2/machines [ 127s] WARNING urllib3.connectionpool:connectionpool.py:751 Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')': /v2/machines [ 127s] ERROR etcd.client:client.py:312 Failed to get list of machines from http://127.0.0.1:6004/v2: MaxRetryError("HTTPConnectionPool(host='127.0.0.1', port=6004): Max retries exceeded with url: /v2/machines (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))") [ 127s] ___________________ TestClusterFunctions.test_reconnet_fails ___________________ [ 127s] [ 127s] self = [ 127s] [ 127s] def test_reconnet_fails(self): [ 127s] """ INTEGRATION: fails to reconnect if no available machines """ [ 127s] self.processHelper.stop() [ 127s] # Start with three instances (0, 1, 2) [ 127s] self.processHelper.run(number=3) [ 127s] # Connect to instance 0 [ 127s] > self.client = etcd.Client(port=6001, allow_reconnect=True) [ 127s] [ 127s] src/etcd/tests/integration/test_simple.py:228: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] src/etcd/client.py:203: in __init__ [ 127s] set(self.machines)) [ 127s] src/etcd/client.py:305: in machines [ 127s] self._handle_server_response(response).data.decode('utf-8').split(',') [ 127s] src/etcd/client.py:987: in _handle_server_response [ 127s] etcd.EtcdError.handle(r) [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] cls = [ 127s] payload = {'cause': '404 page not found\n', 'message': 'Bad response'} [ 127s] [ 127s] @classmethod [ 127s] def handle(cls, payload): [ 127s] """ [ 127s] Decodes the error and throws the appropriate error message [ 127s] [ 127s] :param payload: The decoded JSON error payload as a dict. [ 127s] """ [ 127s] error_code = payload.get("errorCode") [ 127s] message = payload.get("message") [ 127s] cause = payload.get("cause") [ 127s] msg = '{} : {}'.format(message, cause) [ 127s] status = payload.get("status") [ 127s] # Some general status handling, as [ 127s] # not all endpoints return coherent error messages [ 127s] if status == 404: [ 127s] error_code = 100 [ 127s] elif status == 401: [ 127s] error_code = 110 [ 127s] exc = cls.error_exceptions.get(error_code, EtcdException) [ 127s] if issubclass(exc, EtcdException): [ 127s] > raise exc(msg, payload) [ 127s] E etcd.EtcdException: Bad response : 404 page not found [ 127s] [ 127s] src/etcd/__init__.py:306: EtcdException [ 127s] ----------------------------- Captured stderr call ----------------------------- [ 127s] 2020-08-12 19:45:53.794913 W | rafthttp: lost the TCP streaming connection with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:45:53.794947 E | rafthttp: failed to read 1083aa28485d3319 on stream Message (unexpected EOF) [ 127s] 2020-08-12 19:45:53.794963 W | rafthttp: lost the TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:53.794993 I | rafthttp: peer 1083aa28485d3319 became inactive (message send to peer failed) [ 127s] 2020-08-12 19:45:53.795022 W | rafthttp: lost the TCP streaming connection with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:45:53.795041 W | rafthttp: lost the TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:53.795067 E | rafthttp: failed to read 1083aa28485d3319 on stream Message (unexpected EOF) [ 127s] 2020-08-12 19:45:53.795078 I | rafthttp: peer 1083aa28485d3319 became inactive (message send to peer failed) [ 127s] raft2020/08/12 19:45:55 INFO: 9ca0c7938a0c3dc5 is starting a new election at term 3 [ 127s] raft2020/08/12 19:45:55 INFO: 9ca0c7938a0c3dc5 became candidate at term 4 [ 127s] raft2020/08/12 19:45:55 INFO: 9ca0c7938a0c3dc5 received MsgVoteResp from 9ca0c7938a0c3dc5 at term 4 [ 127s] raft2020/08/12 19:45:55 INFO: 9ca0c7938a0c3dc5 [logterm: 3, index: 8] sent MsgVote request to 1083aa28485d3319 at term 4 [ 127s] raft2020/08/12 19:45:55 INFO: 9ca0c7938a0c3dc5 [logterm: 3, index: 8] sent MsgVote request to bc5472f61da31b5c at term 4 [ 127s] raft2020/08/12 19:45:55 INFO: raft.node: 9ca0c7938a0c3dc5 lost leader 1083aa28485d3319 at term 4 [ 127s] raft2020/08/12 19:45:55 INFO: bc5472f61da31b5c [term: 3] received a MsgVote message with higher term from 9ca0c7938a0c3dc5 [term: 4] [ 127s] raft2020/08/12 19:45:55 INFO: bc5472f61da31b5c became follower at term 4 [ 127s] raft2020/08/12 19:45:55 INFO: bc5472f61da31b5c [logterm: 3, index: 8, vote: 0] cast MsgVote for 9ca0c7938a0c3dc5 [logterm: 3, index: 8] at term 4 [ 127s] raft2020/08/12 19:45:55 INFO: raft.node: bc5472f61da31b5c lost leader 1083aa28485d3319 at term 4 [ 127s] raft2020/08/12 19:45:55 INFO: 9ca0c7938a0c3dc5 received MsgVoteResp from bc5472f61da31b5c at term 4 [ 127s] raft2020/08/12 19:45:55 INFO: 9ca0c7938a0c3dc5 has received 2 MsgVoteResp votes and 0 vote rejections [ 127s] raft2020/08/12 19:45:55 INFO: 9ca0c7938a0c3dc5 became leader at term 4 [ 127s] raft2020/08/12 19:45:55 INFO: raft.node: 9ca0c7938a0c3dc5 elected leader 9ca0c7938a0c3dc5 at term 4 [ 127s] raft2020/08/12 19:45:55 INFO: raft.node: bc5472f61da31b5c elected leader 9ca0c7938a0c3dc5 at term 4 [ 127s] 2020-08-12 19:45:55.278704 W | etcdserver: failed to reach the peerURL(http://127.0.0.1:8001) of member 1083aa28485d3319 (Get http://127.0.0.1:8001/version: dial tcp 127.0.0.1:8001: connect: connection refused) [ 127s] 2020-08-12 19:45:55.278777 W | etcdserver: cannot get the version of member 1083aa28485d3319 (Get http://127.0.0.1:8001/version: dial tcp 127.0.0.1:8001: connect: connection refused) [ 127s] 2020-08-12 19:45:55.455655 W | rafthttp: lost the TCP streaming connection with peer 1083aa28485d3319 (stream Message writer) [ 127s] 2020-08-12 19:45:55.801974 W | rafthttp: lost the TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:55.802084 E | rafthttp: failed to read 9ca0c7938a0c3dc5 on stream MsgApp v2 (unexpected EOF) [ 127s] 2020-08-12 19:45:55.802115 I | rafthttp: peer 9ca0c7938a0c3dc5 became inactive (message send to peer failed) [ 127s] 2020-08-12 19:45:55.802137 W | rafthttp: lost the TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] 2020-08-12 19:45:56.700264 W | rafthttp: health check for peer 1083aa28485d3319 could not connect: dial tcp 127.0.0.1:8001: connect: connection refused [ 127s] 2020-08-12 19:45:56.700389 W | rafthttp: health check for peer 1083aa28485d3319 could not connect: dial tcp 127.0.0.1:8001: connect: connection refused [ 127s] raft2020/08/12 19:45:57 INFO: bc5472f61da31b5c is starting a new election at term 4 [ 127s] raft2020/08/12 19:45:57 INFO: bc5472f61da31b5c became candidate at term 5 [ 127s] raft2020/08/12 19:45:57 INFO: bc5472f61da31b5c received MsgVoteResp from bc5472f61da31b5c at term 5 [ 127s] raft2020/08/12 19:45:57 INFO: bc5472f61da31b5c [logterm: 4, index: 9] sent MsgVote request to 1083aa28485d3319 at term 5 [ 127s] raft2020/08/12 19:45:57 INFO: bc5472f61da31b5c [logterm: 4, index: 9] sent MsgVote request to 9ca0c7938a0c3dc5 at term 5 [ 127s] raft2020/08/12 19:45:57 INFO: raft.node: bc5472f61da31b5c lost leader 9ca0c7938a0c3dc5 at term 5 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:45:59.847757 I | etcdmain: etcd Version: 3.4.3 [ 127s] 2020-08-12 19:45:59.847785 I | etcdmain: Git SHA: Not provided (use ./build instead of go build) [ 127s] 2020-08-12 19:45:59.847794 I | etcdmain: Go Version: go1.12.17 [ 127s] 2020-08-12 19:45:59.847802 I | etcdmain: Go OS/Arch: linux/amd64 [ 127s] 2020-08-12 19:45:59.847810 I | etcdmain: setting maximum number of CPUs to 8, total number of available CPUs is 8 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:45:59.848080 I | embed: name = test-node-0 [ 127s] 2020-08-12 19:45:59.848098 I | embed: data dir = /tmp/python-etcd2q2emda0/python-etcd.0-n1s6q0r_ [ 127s] 2020-08-12 19:45:59.848106 I | embed: member dir = /tmp/python-etcd2q2emda0/python-etcd.0-n1s6q0r_/member [ 127s] 2020-08-12 19:45:59.848114 I | embed: heartbeat = 100ms [ 127s] 2020-08-12 19:45:59.848121 I | embed: election = 1000ms [ 127s] 2020-08-12 19:45:59.848129 I | embed: snapshot count = 100000 [ 127s] 2020-08-12 19:45:59.848142 I | embed: advertise client URLs = http://127.0.0.1:6001 [ 127s] 2020-08-12 19:45:59.869935 I | etcdserver: starting member 1083aa28485d3319 in cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:59 INFO: 1083aa28485d3319 switched to configuration voters=() [ 127s] raft2020/08/12 19:45:59 INFO: 1083aa28485d3319 became follower at term 0 [ 127s] raft2020/08/12 19:45:59 INFO: newRaft 1083aa28485d3319 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0] [ 127s] raft2020/08/12 19:45:59 INFO: 1083aa28485d3319 became follower at term 1 [ 127s] raft2020/08/12 19:45:59 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153) [ 127s] raft2020/08/12 19:45:59 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965) [ 127s] raft2020/08/12 19:45:59 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:59.886729 W | auth: simple token is not cryptographically signed [ 127s] 2020-08-12 19:45:59.900410 I | rafthttp: starting peer 9ca0c7938a0c3dc5... [ 127s] 2020-08-12 19:45:59.900525 I | rafthttp: started HTTP pipelining with peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:45:59.903789 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (writer) [ 127s] 2020-08-12 19:45:59.904193 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (writer) [ 127s] 2020-08-12 19:45:59.907905 I | rafthttp: started peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:45:59.908136 I | rafthttp: added peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:45:59.908199 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:59.908585 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] 2020-08-12 19:45:59.908818 I | rafthttp: starting peer bc5472f61da31b5c... [ 127s] 2020-08-12 19:45:59.908935 I | rafthttp: started HTTP pipelining with peer bc5472f61da31b5c [ 127s] 2020-08-12 19:45:59.911218 I | rafthttp: started streaming with peer bc5472f61da31b5c (writer) [ 127s] 2020-08-12 19:45:59.912956 I | rafthttp: started streaming with peer bc5472f61da31b5c (writer) [ 127s] 2020-08-12 19:45:59.915514 I | rafthttp: started peer bc5472f61da31b5c [ 127s] 2020-08-12 19:45:59.915619 I | rafthttp: started streaming with peer bc5472f61da31b5c (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:45:59.915764 I | rafthttp: started streaming with peer bc5472f61da31b5c (stream Message reader) [ 127s] 2020-08-12 19:45:59.915843 I | rafthttp: added peer bc5472f61da31b5c [ 127s] 2020-08-12 19:45:59.916070 I | etcdserver: starting server... [version: 3.4.3, cluster version: to_be_decided] [ 127s] raft2020/08/12 19:45:59 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:59.917879 I | etcdserver/membership: added member 1083aa28485d3319 [http://127.0.0.1:8001] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:59 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:59.918476 I | etcdserver/membership: added member 9ca0c7938a0c3dc5 [http://127.0.0.1:8002] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:45:59 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:45:59.918933 I | etcdserver/membership: added member bc5472f61da31b5c [http://127.0.0.1:8003] to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:45:59.923506 I | embed: listening for peers on 127.0.0.1:8001 [ 127s] raft2020/08/12 19:46:01 INFO: 1083aa28485d3319 is starting a new election at term 1 [ 127s] raft2020/08/12 19:46:01 INFO: 1083aa28485d3319 became candidate at term 2 [ 127s] raft2020/08/12 19:46:01 INFO: 1083aa28485d3319 received MsgVoteResp from 1083aa28485d3319 at term 2 [ 127s] raft2020/08/12 19:46:01 INFO: 1083aa28485d3319 [logterm: 1, index: 3] sent MsgVote request to 9ca0c7938a0c3dc5 at term 2 [ 127s] raft2020/08/12 19:46:01 INFO: 1083aa28485d3319 [logterm: 1, index: 3] sent MsgVote request to bc5472f61da31b5c at term 2 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:46:01.846994 I | etcdmain: etcd Version: 3.4.3 [ 127s] 2020-08-12 19:46:01.847018 I | etcdmain: Git SHA: Not provided (use ./build instead of go build) [ 127s] 2020-08-12 19:46:01.847025 I | etcdmain: Go Version: go1.12.17 [ 127s] 2020-08-12 19:46:01.847032 I | etcdmain: Go OS/Arch: linux/amd64 [ 127s] 2020-08-12 19:46:01.847040 I | etcdmain: setting maximum number of CPUs to 8, total number of available CPUs is 8 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:46:01.847255 I | embed: name = test-node-1 [ 127s] 2020-08-12 19:46:01.847269 I | embed: data dir = /tmp/python-etcd2q2emda0/python-etcd.1-o9h9g2c2 [ 127s] 2020-08-12 19:46:01.847277 I | embed: member dir = /tmp/python-etcd2q2emda0/python-etcd.1-o9h9g2c2/member [ 127s] 2020-08-12 19:46:01.847283 I | embed: heartbeat = 100ms [ 127s] 2020-08-12 19:46:01.847290 I | embed: election = 1000ms [ 127s] 2020-08-12 19:46:01.847296 I | embed: snapshot count = 100000 [ 127s] 2020-08-12 19:46:01.847307 I | embed: advertise client URLs = http://127.0.0.1:6002 [ 127s] 2020-08-12 19:46:01.872007 I | etcdserver: starting member 9ca0c7938a0c3dc5 in cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:46:01 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=() [ 127s] raft2020/08/12 19:46:01 INFO: 9ca0c7938a0c3dc5 became follower at term 0 [ 127s] raft2020/08/12 19:46:01 INFO: newRaft 9ca0c7938a0c3dc5 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0] [ 127s] raft2020/08/12 19:46:01 INFO: 9ca0c7938a0c3dc5 became follower at term 1 [ 127s] raft2020/08/12 19:46:01 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153) [ 127s] raft2020/08/12 19:46:01 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965) [ 127s] raft2020/08/12 19:46:01 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:01.890795 W | auth: simple token is not cryptographically signed [ 127s] 2020-08-12 19:46:01.904110 I | rafthttp: starting peer 1083aa28485d3319... [ 127s] 2020-08-12 19:46:01.904231 I | rafthttp: started HTTP pipelining with peer 1083aa28485d3319 [ 127s] 2020-08-12 19:46:01.905143 I | rafthttp: started streaming with peer 1083aa28485d3319 (writer) [ 127s] 2020-08-12 19:46:01.905661 I | rafthttp: started streaming with peer 1083aa28485d3319 (writer) [ 127s] 2020-08-12 19:46:01.913331 I | rafthttp: started peer 1083aa28485d3319 [ 127s] 2020-08-12 19:46:01.913475 I | rafthttp: started streaming with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:01.913614 I | rafthttp: added peer 1083aa28485d3319 [ 127s] 2020-08-12 19:46:01.913697 I | rafthttp: starting peer bc5472f61da31b5c... [ 127s] 2020-08-12 19:46:01.913741 I | rafthttp: started streaming with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:46:01.914269 I | rafthttp: started HTTP pipelining with peer bc5472f61da31b5c [ 127s] 2020-08-12 19:46:01.915754 I | rafthttp: peer 9ca0c7938a0c3dc5 became active [ 127s] 2020-08-12 19:46:01.915844 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message writer) [ 127s] 2020-08-12 19:46:01.915968 I | rafthttp: peer 1083aa28485d3319 became active [ 127s] 2020-08-12 19:46:01.916087 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:46:01.916200 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:01.916814 I | rafthttp: started streaming with peer bc5472f61da31b5c (writer) [ 127s] 2020-08-12 19:46:01.917289 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:46:01.919636 I | rafthttp: started streaming with peer bc5472f61da31b5c (writer) [ 127s] 2020-08-12 19:46:01.927620 I | rafthttp: started peer bc5472f61da31b5c [ 127s] 2020-08-12 19:46:01.927766 I | rafthttp: added peer bc5472f61da31b5c [ 127s] 2020-08-12 19:46:01.927831 I | etcdserver: starting server... [version: 3.4.3, cluster version: to_be_decided] [ 127s] 2020-08-12 19:46:01.928580 I | rafthttp: started streaming with peer bc5472f61da31b5c (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:01.929199 I | rafthttp: started streaming with peer bc5472f61da31b5c (stream Message reader) [ 127s] raft2020/08/12 19:46:01 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:01.931892 I | etcdserver/membership: added member 1083aa28485d3319 [http://127.0.0.1:8001] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:46:01 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:01.932425 I | etcdserver/membership: added member 9ca0c7938a0c3dc5 [http://127.0.0.1:8002] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:46:01 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:01.932768 I | etcdserver/membership: added member bc5472f61da31b5c [http://127.0.0.1:8003] to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:46:01.936823 I | embed: listening for peers on 127.0.0.1:8002 [ 127s] 2020-08-12 19:46:01.937174 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream Message writer) [ 127s] 2020-08-12 19:46:01.937258 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:46:01.937274 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:01.937383 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] raft2020/08/12 19:46:02 INFO: 9ca0c7938a0c3dc5 is starting a new election at term 1 [ 127s] raft2020/08/12 19:46:02 INFO: 9ca0c7938a0c3dc5 became candidate at term 2 [ 127s] raft2020/08/12 19:46:02 INFO: 9ca0c7938a0c3dc5 received MsgVoteResp from 9ca0c7938a0c3dc5 at term 2 [ 127s] raft2020/08/12 19:46:02 INFO: 9ca0c7938a0c3dc5 [logterm: 1, index: 3] sent MsgVote request to 1083aa28485d3319 at term 2 [ 127s] raft2020/08/12 19:46:02 INFO: 9ca0c7938a0c3dc5 [logterm: 1, index: 3] sent MsgVote request to bc5472f61da31b5c at term 2 [ 127s] raft2020/08/12 19:46:02 INFO: 1083aa28485d3319 [logterm: 1, index: 3, vote: 1083aa28485d3319] rejected MsgVote from 9ca0c7938a0c3dc5 [logterm: 1, index: 3] at term 2 [ 127s] raft2020/08/12 19:46:02 INFO: 9ca0c7938a0c3dc5 received MsgVoteResp rejection from 1083aa28485d3319 at term 2 [ 127s] raft2020/08/12 19:46:02 INFO: 9ca0c7938a0c3dc5 has received 1 MsgVoteResp votes and 1 vote rejections [ 127s] raft2020/08/12 19:46:03 INFO: 1083aa28485d3319 is starting a new election at term 2 [ 127s] raft2020/08/12 19:46:03 INFO: 1083aa28485d3319 became candidate at term 3 [ 127s] raft2020/08/12 19:46:03 INFO: 1083aa28485d3319 received MsgVoteResp from 1083aa28485d3319 at term 3 [ 127s] raft2020/08/12 19:46:03 INFO: 1083aa28485d3319 [logterm: 1, index: 3] sent MsgVote request to 9ca0c7938a0c3dc5 at term 3 [ 127s] raft2020/08/12 19:46:03 INFO: 1083aa28485d3319 [logterm: 1, index: 3] sent MsgVote request to bc5472f61da31b5c at term 3 [ 127s] raft2020/08/12 19:46:03 INFO: 9ca0c7938a0c3dc5 [term: 2] received a MsgVote message with higher term from 1083aa28485d3319 [term: 3] [ 127s] raft2020/08/12 19:46:03 INFO: 9ca0c7938a0c3dc5 became follower at term 3 [ 127s] raft2020/08/12 19:46:03 INFO: 9ca0c7938a0c3dc5 [logterm: 1, index: 3, vote: 0] cast MsgVote for 1083aa28485d3319 [logterm: 1, index: 3] at term 3 [ 127s] raft2020/08/12 19:46:03 INFO: 1083aa28485d3319 received MsgVoteResp from 9ca0c7938a0c3dc5 at term 3 [ 127s] raft2020/08/12 19:46:03 INFO: 1083aa28485d3319 has received 2 MsgVoteResp votes and 0 vote rejections [ 127s] raft2020/08/12 19:46:03 INFO: 1083aa28485d3319 became leader at term 3 [ 127s] raft2020/08/12 19:46:03 INFO: raft.node: 1083aa28485d3319 elected leader 1083aa28485d3319 at term 3 [ 127s] raft2020/08/12 19:46:03 INFO: raft.node: 9ca0c7938a0c3dc5 elected leader 1083aa28485d3319 at term 3 [ 127s] 2020-08-12 19:46:03.292964 W | etcdserver: failed to reach the peerURL(http://127.0.0.1:8003) of member bc5472f61da31b5c (Get http://127.0.0.1:8003/version: dial tcp 127.0.0.1:8003: connect: connection refused) [ 127s] 2020-08-12 19:46:03.293061 W | etcdserver: cannot get the version of member bc5472f61da31b5c (Get http://127.0.0.1:8003/version: dial tcp 127.0.0.1:8003: connect: connection refused) [ 127s] 2020-08-12 19:46:03.293154 I | etcdserver: setting up the initial cluster version to 3.0 [ 127s] 2020-08-12 19:46:03.300192 I | etcdserver: published {Name:test-node-0 ClientURLs:[http://127.0.0.1:6001]} to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:46:03.300260 I | embed: ready to serve client requests [ 127s] 2020-08-12 19:46:03.301981 N | embed: serving insecure client requests on 127.0.0.1:6001, this is strongly discouraged! [ 127s] 2020-08-12 19:46:03.302881 N | etcdserver/membership: set the initial cluster version to 3.0 [ 127s] 2020-08-12 19:46:03.302979 I | etcdserver: published {Name:test-node-1 ClientURLs:[http://127.0.0.1:6002]} to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:46:03.303070 I | embed: ready to serve client requests [ 127s] 2020-08-12 19:46:03.303088 I | etcdserver/api: enabled capabilities for version 3.0 [ 127s] 2020-08-12 19:46:03.303362 N | etcdserver/membership: set the initial cluster version to 3.0 [ 127s] 2020-08-12 19:46:03.303647 I | etcdserver/api: enabled capabilities for version 3.0 [ 127s] 2020-08-12 19:46:03.304924 N | embed: serving insecure client requests on 127.0.0.1:6002, this is strongly discouraged! [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:46:03.861997 I | etcdmain: etcd Version: 3.4.3 [ 127s] 2020-08-12 19:46:03.862021 I | etcdmain: Git SHA: Not provided (use ./build instead of go build) [ 127s] 2020-08-12 19:46:03.862028 I | etcdmain: Go Version: go1.12.17 [ 127s] 2020-08-12 19:46:03.862034 I | etcdmain: Go OS/Arch: linux/amd64 [ 127s] 2020-08-12 19:46:03.862041 I | etcdmain: setting maximum number of CPUs to 8, total number of available CPUs is 8 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:46:03.862278 I | embed: name = test-node-2 [ 127s] 2020-08-12 19:46:03.862292 I | embed: data dir = /tmp/python-etcd2q2emda0/python-etcd.2-4m7lwp24 [ 127s] 2020-08-12 19:46:03.862299 I | embed: member dir = /tmp/python-etcd2q2emda0/python-etcd.2-4m7lwp24/member [ 127s] 2020-08-12 19:46:03.862305 I | embed: heartbeat = 100ms [ 127s] 2020-08-12 19:46:03.862311 I | embed: election = 1000ms [ 127s] 2020-08-12 19:46:03.862317 I | embed: snapshot count = 100000 [ 127s] 2020-08-12 19:46:03.862326 I | embed: advertise client URLs = http://127.0.0.1:6003 [ 127s] 2020-08-12 19:46:03.878316 I | etcdserver: starting member bc5472f61da31b5c in cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:46:03 INFO: bc5472f61da31b5c switched to configuration voters=() [ 127s] raft2020/08/12 19:46:03 INFO: bc5472f61da31b5c became follower at term 0 [ 127s] raft2020/08/12 19:46:03 INFO: newRaft bc5472f61da31b5c [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0] [ 127s] raft2020/08/12 19:46:03 INFO: bc5472f61da31b5c became follower at term 1 [ 127s] raft2020/08/12 19:46:03 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153) [ 127s] raft2020/08/12 19:46:03 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965) [ 127s] raft2020/08/12 19:46:03 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:03.893058 W | auth: simple token is not cryptographically signed [ 127s] 2020-08-12 19:46:03.906105 I | rafthttp: starting peer 1083aa28485d3319... [ 127s] 2020-08-12 19:46:03.906295 I | rafthttp: started HTTP pipelining with peer 1083aa28485d3319 [ 127s] 2020-08-12 19:46:03.908872 I | rafthttp: started streaming with peer 1083aa28485d3319 (writer) [ 127s] 2020-08-12 19:46:03.908954 I | rafthttp: started streaming with peer 1083aa28485d3319 (writer) [ 127s] 2020-08-12 19:46:03.913405 I | rafthttp: started peer 1083aa28485d3319 [ 127s] 2020-08-12 19:46:03.913491 I | rafthttp: started streaming with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:03.913549 I | rafthttp: started streaming with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:46:03.913627 I | rafthttp: added peer 1083aa28485d3319 [ 127s] 2020-08-12 19:46:03.913724 I | rafthttp: starting peer 9ca0c7938a0c3dc5... [ 127s] 2020-08-12 19:46:03.913799 I | rafthttp: started HTTP pipelining with peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:46:03.915937 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (writer) [ 127s] 2020-08-12 19:46:03.917129 I | rafthttp: peer bc5472f61da31b5c became active [ 127s] 2020-08-12 19:46:03.917234 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream Message writer) [ 127s] 2020-08-12 19:46:03.917677 I | rafthttp: peer 1083aa28485d3319 became active [ 127s] 2020-08-12 19:46:03.917816 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:46:03.917972 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:03.918166 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:46:03.918145 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (writer) [ 127s] 2020-08-12 19:46:03.919993 I | rafthttp: started peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:46:03.920162 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] 2020-08-12 19:46:03.920333 I | rafthttp: added peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:46:03.920377 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:03.921291 I | etcdserver: starting server... [version: 3.4.3, cluster version: to_be_decided] [ 127s] raft2020/08/12 19:46:03 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:03.923264 I | etcdserver/membership: added member 1083aa28485d3319 [http://127.0.0.1:8001] to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:46:03.923524 I | rafthttp: peer bc5472f61da31b5c became active [ 127s] 2020-08-12 19:46:03.923618 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream Message writer) [ 127s] 2020-08-12 19:46:03.923612 I | rafthttp: peer 9ca0c7938a0c3dc5 became active [ 127s] 2020-08-12 19:46:03.923709 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] raft2020/08/12 19:46:03 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:03.924333 I | etcdserver/membership: added member 9ca0c7938a0c3dc5 [http://127.0.0.1:8002] to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:46:03.924392 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:03.924401 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream MsgApp v2 writer) [ 127s] raft2020/08/12 19:46:03 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:03.924774 I | etcdserver/membership: added member bc5472f61da31b5c [http://127.0.0.1:8003] to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:46:03.933524 I | embed: listening for peers on 127.0.0.1:8003 [ 127s] raft2020/08/12 19:46:03 INFO: bc5472f61da31b5c [term: 1] received a MsgHeartbeat message with higher term from 1083aa28485d3319 [term: 3] [ 127s] raft2020/08/12 19:46:03 INFO: bc5472f61da31b5c became follower at term 3 [ 127s] raft2020/08/12 19:46:03 INFO: raft.node: bc5472f61da31b5c elected leader 1083aa28485d3319 at term 3 [ 127s] 2020-08-12 19:46:03.934341 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:46:03.934379 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:03.934467 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:03.934514 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream Message reader) [ 127s] 2020-08-12 19:46:03.934619 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream Message writer) [ 127s] 2020-08-12 19:46:03.934863 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:46:03.935024 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message writer) [ 127s] 2020-08-12 19:46:03.935049 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream Message reader) [ 127s] 2020-08-12 19:46:03.935323 I | etcdserver: 1083aa28485d3319 initialized peer connection; fast-forwarding 8 ticks (election ticks 10) with 2 active peer(s) [ 127s] 2020-08-12 19:46:03.937625 I | etcdserver: 9ca0c7938a0c3dc5 initialized peer connection; fast-forwarding 8 ticks (election ticks 10) with 2 active peer(s) [ 127s] 2020-08-12 19:46:03.941168 N | etcdserver/membership: set the initial cluster version to 3.0 [ 127s] 2020-08-12 19:46:03.941248 I | etcdserver/api: enabled capabilities for version 3.0 [ 127s] 2020-08-12 19:46:03.946489 I | embed: ready to serve client requests [ 127s] 2020-08-12 19:46:03.946557 I | etcdserver: published {Name:test-node-2 ClientURLs:[http://127.0.0.1:6003]} to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:46:03.947182 N | embed: serving insecure client requests on 127.0.0.1:6003, this is strongly discouraged! [ 127s] 2020-08-12 19:46:03.974597 I | etcdserver: bc5472f61da31b5c initialized peer connection; fast-forwarding 8 ticks (election ticks 10) with 2 active peer(s) [ 127s] --------------------------- Captured stderr teardown --------------------------- [ 127s] 2020-08-12 19:46:05.900051 W | rafthttp: lost the TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:05.900089 E | rafthttp: failed to read 1083aa28485d3319 on stream MsgApp v2 (unexpected EOF) [ 127s] 2020-08-12 19:46:05.900112 I | rafthttp: peer 1083aa28485d3319 became inactive (message send to peer failed) [ 127s] 2020-08-12 19:46:05.900120 W | rafthttp: lost the TCP streaming connection with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:46:05.900138 W | rafthttp: lost the TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:05.900154 E | rafthttp: failed to read 1083aa28485d3319 on stream Message (unexpected EOF) [ 127s] 2020-08-12 19:46:05.900163 I | rafthttp: peer 1083aa28485d3319 became inactive (message send to peer failed) [ 127s] 2020-08-12 19:46:05.900209 W | rafthttp: lost the TCP streaming connection with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:46:06.913733 W | rafthttp: health check for peer 1083aa28485d3319 could not connect: dial tcp 127.0.0.1:8001: connect: connection refused [ 127s] 2020-08-12 19:46:06.913855 W | rafthttp: health check for peer 1083aa28485d3319 could not connect: dial tcp 127.0.0.1:8001: connect: connection refused [ 127s] raft2020/08/12 19:46:06 INFO: 9ca0c7938a0c3dc5 is starting a new election at term 3 [ 127s] raft2020/08/12 19:46:06 INFO: 9ca0c7938a0c3dc5 became candidate at term 4 [ 127s] raft2020/08/12 19:46:06 INFO: 9ca0c7938a0c3dc5 received MsgVoteResp from 9ca0c7938a0c3dc5 at term 4 [ 127s] raft2020/08/12 19:46:06 INFO: 9ca0c7938a0c3dc5 [logterm: 3, index: 8] sent MsgVote request to 1083aa28485d3319 at term 4 [ 127s] raft2020/08/12 19:46:06 INFO: 9ca0c7938a0c3dc5 [logterm: 3, index: 8] sent MsgVote request to bc5472f61da31b5c at term 4 [ 127s] raft2020/08/12 19:46:06 INFO: raft.node: 9ca0c7938a0c3dc5 lost leader 1083aa28485d3319 at term 4 [ 127s] raft2020/08/12 19:46:06 INFO: bc5472f61da31b5c [term: 3] received a MsgVote message with higher term from 9ca0c7938a0c3dc5 [term: 4] [ 127s] raft2020/08/12 19:46:06 INFO: bc5472f61da31b5c became follower at term 4 [ 127s] raft2020/08/12 19:46:06 INFO: bc5472f61da31b5c [logterm: 3, index: 8, vote: 0] cast MsgVote for 9ca0c7938a0c3dc5 [logterm: 3, index: 8] at term 4 [ 127s] raft2020/08/12 19:46:06 INFO: raft.node: bc5472f61da31b5c lost leader 1083aa28485d3319 at term 4 [ 127s] raft2020/08/12 19:46:06 INFO: 9ca0c7938a0c3dc5 received MsgVoteResp from bc5472f61da31b5c at term 4 [ 127s] raft2020/08/12 19:46:06 INFO: 9ca0c7938a0c3dc5 has received 2 MsgVoteResp votes and 0 vote rejections [ 127s] raft2020/08/12 19:46:06 INFO: 9ca0c7938a0c3dc5 became leader at term 4 [ 127s] raft2020/08/12 19:46:06 INFO: raft.node: 9ca0c7938a0c3dc5 elected leader 9ca0c7938a0c3dc5 at term 4 [ 127s] raft2020/08/12 19:46:06 INFO: raft.node: bc5472f61da31b5c elected leader 9ca0c7938a0c3dc5 at term 4 [ 127s] 2020-08-12 19:46:06.990330 W | etcdserver: failed to reach the peerURL(http://127.0.0.1:8001) of member 1083aa28485d3319 (Get http://127.0.0.1:8001/version: dial tcp 127.0.0.1:8001: connect: connection refused) [ 127s] 2020-08-12 19:46:06.990407 W | etcdserver: cannot get the version of member 1083aa28485d3319 (Get http://127.0.0.1:8001/version: dial tcp 127.0.0.1:8001: connect: connection refused) [ 127s] 2020-08-12 19:46:07.174336 W | rafthttp: lost the TCP streaming connection with peer 1083aa28485d3319 (stream Message writer) [ 127s] 2020-08-12 19:46:07.907438 W | rafthttp: lost the TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] 2020-08-12 19:46:07.907529 W | rafthttp: lost the TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:07.907594 E | rafthttp: failed to read 9ca0c7938a0c3dc5 on stream Message (unexpected EOF) [ 127s] 2020-08-12 19:46:07.907628 I | rafthttp: peer 9ca0c7938a0c3dc5 became inactive (message send to peer failed) [ 127s] 2020-08-12 19:46:08.913767 W | rafthttp: health check for peer 1083aa28485d3319 could not connect: dial tcp 127.0.0.1:8001: connect: connection refused [ 127s] 2020-08-12 19:46:08.913878 W | rafthttp: health check for peer 1083aa28485d3319 could not connect: dial tcp 127.0.0.1:8001: connect: connection refused [ 127s] 2020-08-12 19:46:08.921025 W | rafthttp: health check for peer 9ca0c7938a0c3dc5 could not connect: dial tcp 127.0.0.1:8002: connect: connection refused [ 127s] 2020-08-12 19:46:08.921378 W | rafthttp: health check for peer 9ca0c7938a0c3dc5 could not connect: dial tcp 127.0.0.1:8002: connect: connection refused [ 127s] raft2020/08/12 19:46:08 INFO: bc5472f61da31b5c is starting a new election at term 4 [ 127s] raft2020/08/12 19:46:08 INFO: bc5472f61da31b5c became candidate at term 5 [ 127s] raft2020/08/12 19:46:08 INFO: bc5472f61da31b5c received MsgVoteResp from bc5472f61da31b5c at term 5 [ 127s] raft2020/08/12 19:46:08 INFO: bc5472f61da31b5c [logterm: 4, index: 9] sent MsgVote request to 1083aa28485d3319 at term 5 [ 127s] raft2020/08/12 19:46:08 INFO: bc5472f61da31b5c [logterm: 4, index: 9] sent MsgVote request to 9ca0c7938a0c3dc5 at term 5 [ 127s] raft2020/08/12 19:46:08 INFO: raft.node: bc5472f61da31b5c lost leader 9ca0c7938a0c3dc5 at term 5 [ 127s] _____________________________ TestWatch.test_watch _____________________________ [ 127s] [ 127s] self = [ 127s] [ 127s] def test_watch(self): [ 127s] """ INTEGRATION: Receive a watch event from other process """ [ 127s] [ 127s] > set_result = self.client.set('/test-key', 'test-value') [ 127s] [ 127s] src/etcd/tests/integration/test_simple.py:244: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] src/etcd/client.py:721: in set [ 127s] return self.write(key, value, ttl=ttl) [ 127s] src/etcd/client.py:500: in write [ 127s] response = self.api_execute(path, method, params=params) [ 127s] src/etcd/client.py:907: in wrapper [ 127s] return self._handle_server_response(response) [ 127s] src/etcd/client.py:987: in _handle_server_response [ 127s] etcd.EtcdError.handle(r) [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] cls = [ 127s] payload = {'cause': '404 page not found\n', 'message': 'Bad response'} [ 127s] [ 127s] @classmethod [ 127s] def handle(cls, payload): [ 127s] """ [ 127s] Decodes the error and throws the appropriate error message [ 127s] [ 127s] :param payload: The decoded JSON error payload as a dict. [ 127s] """ [ 127s] error_code = payload.get("errorCode") [ 127s] message = payload.get("message") [ 127s] cause = payload.get("cause") [ 127s] msg = '{} : {}'.format(message, cause) [ 127s] status = payload.get("status") [ 127s] # Some general status handling, as [ 127s] # not all endpoints return coherent error messages [ 127s] if status == 404: [ 127s] error_code = 100 [ 127s] elif status == 401: [ 127s] error_code = 110 [ 127s] exc = cls.error_exceptions.get(error_code, EtcdException) [ 127s] if issubclass(exc, EtcdException): [ 127s] > raise exc(msg, payload) [ 127s] E etcd.EtcdException: Bad response : 404 page not found [ 127s] [ 127s] src/etcd/__init__.py:306: EtcdException [ 127s] ---------------------------- Captured stderr setup ----------------------------- [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:46:11.924713 I | etcdmain: etcd Version: 3.4.3 [ 127s] 2020-08-12 19:46:11.924738 I | etcdmain: Git SHA: Not provided (use ./build instead of go build) [ 127s] 2020-08-12 19:46:11.924744 I | etcdmain: Go Version: go1.12.17 [ 127s] 2020-08-12 19:46:11.924749 I | etcdmain: Go OS/Arch: linux/amd64 [ 127s] 2020-08-12 19:46:11.924754 I | etcdmain: setting maximum number of CPUs to 8, total number of available CPUs is 8 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:46:11.924916 I | embed: name = test-node-0 [ 127s] 2020-08-12 19:46:11.924926 I | embed: data dir = /tmp/python-etcdszvplmpg/python-etcd.0-szt1g_da [ 127s] 2020-08-12 19:46:11.924932 I | embed: member dir = /tmp/python-etcdszvplmpg/python-etcd.0-szt1g_da/member [ 127s] 2020-08-12 19:46:11.924937 I | embed: heartbeat = 100ms [ 127s] 2020-08-12 19:46:11.924941 I | embed: election = 1000ms [ 127s] 2020-08-12 19:46:11.924946 I | embed: snapshot count = 100000 [ 127s] 2020-08-12 19:46:11.924953 I | embed: advertise client URLs = http://127.0.0.1:6001 [ 127s] 2020-08-12 19:46:11.939946 I | etcdserver: starting member 1083aa28485d3319 in cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:46:11 INFO: 1083aa28485d3319 switched to configuration voters=() [ 127s] raft2020/08/12 19:46:11 INFO: 1083aa28485d3319 became follower at term 0 [ 127s] raft2020/08/12 19:46:11 INFO: newRaft 1083aa28485d3319 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0] [ 127s] raft2020/08/12 19:46:11 INFO: 1083aa28485d3319 became follower at term 1 [ 127s] raft2020/08/12 19:46:11 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153) [ 127s] raft2020/08/12 19:46:11 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965) [ 127s] raft2020/08/12 19:46:11 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:11.953007 W | auth: simple token is not cryptographically signed [ 127s] 2020-08-12 19:46:11.966049 I | rafthttp: starting peer 9ca0c7938a0c3dc5... [ 127s] 2020-08-12 19:46:11.966177 I | rafthttp: started HTTP pipelining with peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:46:11.967042 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (writer) [ 127s] 2020-08-12 19:46:11.967517 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (writer) [ 127s] 2020-08-12 19:46:11.973921 I | rafthttp: started peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:46:11.974042 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:11.974152 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] 2020-08-12 19:46:11.974292 I | rafthttp: added peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:46:11.974369 I | rafthttp: starting peer bc5472f61da31b5c... [ 127s] 2020-08-12 19:46:11.974505 I | rafthttp: started HTTP pipelining with peer bc5472f61da31b5c [ 127s] 2020-08-12 19:46:11.977145 I | rafthttp: started streaming with peer bc5472f61da31b5c (writer) [ 127s] 2020-08-12 19:46:11.977682 I | rafthttp: started streaming with peer bc5472f61da31b5c (writer) [ 127s] 2020-08-12 19:46:11.979167 I | rafthttp: started peer bc5472f61da31b5c [ 127s] 2020-08-12 19:46:11.979494 I | rafthttp: added peer bc5472f61da31b5c [ 127s] 2020-08-12 19:46:11.979572 I | etcdserver: starting server... [version: 3.4.3, cluster version: to_be_decided] [ 127s] 2020-08-12 19:46:11.981065 I | rafthttp: started streaming with peer bc5472f61da31b5c (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:11.981788 I | rafthttp: started streaming with peer bc5472f61da31b5c (stream Message reader) [ 127s] raft2020/08/12 19:46:11 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:11.984824 I | etcdserver/membership: added member 1083aa28485d3319 [http://127.0.0.1:8001] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:46:11 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:11.985197 I | etcdserver/membership: added member 9ca0c7938a0c3dc5 [http://127.0.0.1:8002] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:46:11 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:11.985587 I | etcdserver/membership: added member bc5472f61da31b5c [http://127.0.0.1:8003] to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:46:11.989301 I | embed: listening for peers on 127.0.0.1:8001 [ 127s] raft2020/08/12 19:46:13 INFO: 1083aa28485d3319 is starting a new election at term 1 [ 127s] raft2020/08/12 19:46:13 INFO: 1083aa28485d3319 became candidate at term 2 [ 127s] raft2020/08/12 19:46:13 INFO: 1083aa28485d3319 received MsgVoteResp from 1083aa28485d3319 at term 2 [ 127s] raft2020/08/12 19:46:13 INFO: 1083aa28485d3319 [logterm: 1, index: 3] sent MsgVote request to 9ca0c7938a0c3dc5 at term 2 [ 127s] raft2020/08/12 19:46:13 INFO: 1083aa28485d3319 [logterm: 1, index: 3] sent MsgVote request to bc5472f61da31b5c at term 2 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:46:13.949684 I | etcdmain: etcd Version: 3.4.3 [ 127s] 2020-08-12 19:46:13.949710 I | etcdmain: Git SHA: Not provided (use ./build instead of go build) [ 127s] 2020-08-12 19:46:13.949717 I | etcdmain: Go Version: go1.12.17 [ 127s] 2020-08-12 19:46:13.949724 I | etcdmain: Go OS/Arch: linux/amd64 [ 127s] 2020-08-12 19:46:13.949731 I | etcdmain: setting maximum number of CPUs to 8, total number of available CPUs is 8 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:46:13.949993 I | embed: name = test-node-1 [ 127s] 2020-08-12 19:46:13.950008 I | embed: data dir = /tmp/python-etcdszvplmpg/python-etcd.1-8pv64usw [ 127s] 2020-08-12 19:46:13.950016 I | embed: member dir = /tmp/python-etcdszvplmpg/python-etcd.1-8pv64usw/member [ 127s] 2020-08-12 19:46:13.950023 I | embed: heartbeat = 100ms [ 127s] 2020-08-12 19:46:13.950029 I | embed: election = 1000ms [ 127s] 2020-08-12 19:46:13.950036 I | embed: snapshot count = 100000 [ 127s] 2020-08-12 19:46:13.950047 I | embed: advertise client URLs = http://127.0.0.1:6002 [ 127s] 2020-08-12 19:46:13.966283 I | etcdserver: starting member 9ca0c7938a0c3dc5 in cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:46:13 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=() [ 127s] raft2020/08/12 19:46:13 INFO: 9ca0c7938a0c3dc5 became follower at term 0 [ 127s] raft2020/08/12 19:46:13 INFO: newRaft 9ca0c7938a0c3dc5 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0] [ 127s] raft2020/08/12 19:46:13 INFO: 9ca0c7938a0c3dc5 became follower at term 1 [ 127s] raft2020/08/12 19:46:13 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153) [ 127s] raft2020/08/12 19:46:13 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965) [ 127s] raft2020/08/12 19:46:13 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:13.983412 W | auth: simple token is not cryptographically signed [ 127s] 2020-08-12 19:46:13.996963 I | rafthttp: starting peer 1083aa28485d3319... [ 127s] 2020-08-12 19:46:13.997386 I | rafthttp: started HTTP pipelining with peer 1083aa28485d3319 [ 127s] 2020-08-12 19:46:14.001087 I | rafthttp: started streaming with peer 1083aa28485d3319 (writer) [ 127s] 2020-08-12 19:46:14.001234 I | rafthttp: started streaming with peer 1083aa28485d3319 (writer) [ 127s] 2020-08-12 19:46:14.004886 I | rafthttp: started peer 1083aa28485d3319 [ 127s] 2020-08-12 19:46:14.004977 I | rafthttp: added peer 1083aa28485d3319 [ 127s] 2020-08-12 19:46:14.005033 I | rafthttp: starting peer bc5472f61da31b5c... [ 127s] 2020-08-12 19:46:14.005059 I | rafthttp: started streaming with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:46:14.005199 I | rafthttp: started streaming with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:14.005404 I | rafthttp: started HTTP pipelining with peer bc5472f61da31b5c [ 127s] 2020-08-12 19:46:14.008049 I | rafthttp: started streaming with peer bc5472f61da31b5c (writer) [ 127s] 2020-08-12 19:46:14.009198 I | rafthttp: peer 9ca0c7938a0c3dc5 became active [ 127s] 2020-08-12 19:46:14.009298 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:46:14.009335 I | rafthttp: peer 1083aa28485d3319 became active [ 127s] 2020-08-12 19:46:14.009451 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message writer) [ 127s] 2020-08-12 19:46:14.009608 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:14.010148 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:46:14.012085 I | rafthttp: started streaming with peer bc5472f61da31b5c (writer) [ 127s] 2020-08-12 19:46:14.014695 I | rafthttp: started peer bc5472f61da31b5c [ 127s] 2020-08-12 19:46:14.014778 I | rafthttp: started streaming with peer bc5472f61da31b5c (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:14.014880 I | rafthttp: started streaming with peer bc5472f61da31b5c (stream Message reader) [ 127s] 2020-08-12 19:46:14.014956 I | rafthttp: added peer bc5472f61da31b5c [ 127s] 2020-08-12 19:46:14.015035 I | etcdserver: starting server... [version: 3.4.3, cluster version: to_be_decided] [ 127s] raft2020/08/12 19:46:14 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:14.017240 I | etcdserver/membership: added member 1083aa28485d3319 [http://127.0.0.1:8001] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:46:14 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:14.017651 I | etcdserver/membership: added member 9ca0c7938a0c3dc5 [http://127.0.0.1:8002] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:46:14 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:14.018051 I | etcdserver/membership: added member bc5472f61da31b5c [http://127.0.0.1:8003] to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:46:14.021353 I | embed: listening for peers on 127.0.0.1:8002 [ 127s] 2020-08-12 19:46:14.022183 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream Message writer) [ 127s] 2020-08-12 19:46:14.022339 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] 2020-08-12 19:46:14.022934 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:14.023239 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 writer) [ 127s] raft2020/08/12 19:46:14 INFO: 1083aa28485d3319 is starting a new election at term 2 [ 127s] raft2020/08/12 19:46:14 INFO: 1083aa28485d3319 became candidate at term 3 [ 127s] raft2020/08/12 19:46:14 INFO: 1083aa28485d3319 received MsgVoteResp from 1083aa28485d3319 at term 3 [ 127s] raft2020/08/12 19:46:14 INFO: 1083aa28485d3319 [logterm: 1, index: 3] sent MsgVote request to 9ca0c7938a0c3dc5 at term 3 [ 127s] raft2020/08/12 19:46:14 INFO: 1083aa28485d3319 [logterm: 1, index: 3] sent MsgVote request to bc5472f61da31b5c at term 3 [ 127s] raft2020/08/12 19:46:14 INFO: 9ca0c7938a0c3dc5 [term: 1] received a MsgVote message with higher term from 1083aa28485d3319 [term: 3] [ 127s] raft2020/08/12 19:46:14 INFO: 9ca0c7938a0c3dc5 became follower at term 3 [ 127s] raft2020/08/12 19:46:14 INFO: 9ca0c7938a0c3dc5 [logterm: 1, index: 3, vote: 0] cast MsgVote for 1083aa28485d3319 [logterm: 1, index: 3] at term 3 [ 127s] raft2020/08/12 19:46:14 INFO: 1083aa28485d3319 received MsgVoteResp from 9ca0c7938a0c3dc5 at term 3 [ 127s] raft2020/08/12 19:46:14 INFO: 1083aa28485d3319 has received 2 MsgVoteResp votes and 0 vote rejections [ 127s] raft2020/08/12 19:46:14 INFO: 1083aa28485d3319 became leader at term 3 [ 127s] raft2020/08/12 19:46:14 INFO: raft.node: 1083aa28485d3319 elected leader 1083aa28485d3319 at term 3 [ 127s] raft2020/08/12 19:46:14 INFO: raft.node: 9ca0c7938a0c3dc5 elected leader 1083aa28485d3319 at term 3 [ 127s] 2020-08-12 19:46:14.863062 W | etcdserver: failed to reach the peerURL(http://127.0.0.1:8003) of member bc5472f61da31b5c (Get http://127.0.0.1:8003/version: dial tcp 127.0.0.1:8003: connect: connection refused) [ 127s] 2020-08-12 19:46:14.863132 W | etcdserver: cannot get the version of member bc5472f61da31b5c (Get http://127.0.0.1:8003/version: dial tcp 127.0.0.1:8003: connect: connection refused) [ 127s] 2020-08-12 19:46:14.863252 I | etcdserver: setting up the initial cluster version to 3.0 [ 127s] 2020-08-12 19:46:14.870320 I | etcdserver: published {Name:test-node-0 ClientURLs:[http://127.0.0.1:6001]} to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:46:14.870393 I | embed: ready to serve client requests [ 127s] 2020-08-12 19:46:14.871986 N | embed: serving insecure client requests on 127.0.0.1:6001, this is strongly discouraged! [ 127s] 2020-08-12 19:46:14.873455 N | etcdserver/membership: set the initial cluster version to 3.0 [ 127s] 2020-08-12 19:46:14.873702 N | etcdserver/membership: set the initial cluster version to 3.0 [ 127s] 2020-08-12 19:46:14.873751 I | etcdserver/api: enabled capabilities for version 3.0 [ 127s] 2020-08-12 19:46:14.873919 I | etcdserver/api: enabled capabilities for version 3.0 [ 127s] 2020-08-12 19:46:14.873971 I | etcdserver: published {Name:test-node-1 ClientURLs:[http://127.0.0.1:6002]} to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:46:14.874038 I | embed: ready to serve client requests [ 127s] 2020-08-12 19:46:14.875676 N | embed: serving insecure client requests on 127.0.0.1:6002, this is strongly discouraged! [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:46:15.962939 I | etcdmain: etcd Version: 3.4.3 [ 127s] 2020-08-12 19:46:15.962968 I | etcdmain: Git SHA: Not provided (use ./build instead of go build) [ 127s] 2020-08-12 19:46:15.962977 I | etcdmain: Go Version: go1.12.17 [ 127s] 2020-08-12 19:46:15.962985 I | etcdmain: Go OS/Arch: linux/amd64 [ 127s] 2020-08-12 19:46:15.962992 I | etcdmain: setting maximum number of CPUs to 8, total number of available CPUs is 8 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:46:15.963260 I | embed: name = test-node-2 [ 127s] 2020-08-12 19:46:15.963278 I | embed: data dir = /tmp/python-etcdszvplmpg/python-etcd.2-51bllzb7 [ 127s] 2020-08-12 19:46:15.963296 I | embed: member dir = /tmp/python-etcdszvplmpg/python-etcd.2-51bllzb7/member [ 127s] 2020-08-12 19:46:15.963304 I | embed: heartbeat = 100ms [ 127s] 2020-08-12 19:46:15.963312 I | embed: election = 1000ms [ 127s] 2020-08-12 19:46:15.963324 I | embed: snapshot count = 100000 [ 127s] 2020-08-12 19:46:15.963339 I | embed: advertise client URLs = http://127.0.0.1:6003 [ 127s] 2020-08-12 19:46:15.983270 I | etcdserver: starting member bc5472f61da31b5c in cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:46:15 INFO: bc5472f61da31b5c switched to configuration voters=() [ 127s] raft2020/08/12 19:46:15 INFO: bc5472f61da31b5c became follower at term 0 [ 127s] raft2020/08/12 19:46:15 INFO: newRaft bc5472f61da31b5c [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0] [ 127s] raft2020/08/12 19:46:15 INFO: bc5472f61da31b5c became follower at term 1 [ 127s] raft2020/08/12 19:46:15 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153) [ 127s] raft2020/08/12 19:46:15 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965) [ 127s] raft2020/08/12 19:46:15 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:15.996159 W | auth: simple token is not cryptographically signed [ 127s] 2020-08-12 19:46:16.008618 I | rafthttp: starting peer 1083aa28485d3319... [ 127s] 2020-08-12 19:46:16.008710 I | rafthttp: started HTTP pipelining with peer 1083aa28485d3319 [ 127s] 2020-08-12 19:46:16.010709 I | rafthttp: started streaming with peer 1083aa28485d3319 (writer) [ 127s] 2020-08-12 19:46:16.011506 I | rafthttp: started streaming with peer 1083aa28485d3319 (writer) [ 127s] 2020-08-12 19:46:16.015510 I | rafthttp: started peer 1083aa28485d3319 [ 127s] 2020-08-12 19:46:16.015619 I | rafthttp: started streaming with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:16.015739 I | rafthttp: started streaming with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:46:16.015893 I | rafthttp: added peer 1083aa28485d3319 [ 127s] 2020-08-12 19:46:16.015995 I | rafthttp: starting peer 9ca0c7938a0c3dc5... [ 127s] 2020-08-12 19:46:16.016088 I | rafthttp: started HTTP pipelining with peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:46:16.019414 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (writer) [ 127s] 2020-08-12 19:46:16.019837 I | rafthttp: peer bc5472f61da31b5c became active [ 127s] 2020-08-12 19:46:16.019936 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:46:16.019935 I | rafthttp: peer 1083aa28485d3319 became active [ 127s] 2020-08-12 19:46:16.019990 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream Message writer) [ 127s] 2020-08-12 19:46:16.020080 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:46:16.020397 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:16.022261 I | rafthttp: started peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:46:16.022657 I | rafthttp: added peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:46:16.022861 I | etcdserver: starting server... [version: 3.4.3, cluster version: to_be_decided] [ 127s] 2020-08-12 19:46:16.023581 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:16.023640 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (writer) [ 127s] 2020-08-12 19:46:16.023720 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] raft2020/08/12 19:46:16 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:16.026000 I | rafthttp: peer 9ca0c7938a0c3dc5 became active [ 127s] 2020-08-12 19:46:16.026080 I | etcdserver/membership: added member 1083aa28485d3319 [http://127.0.0.1:8001] to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:46:16.026243 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] raft2020/08/12 19:46:16 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:16.026424 I | rafthttp: peer bc5472f61da31b5c became active [ 127s] 2020-08-12 19:46:16.026501 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:46:16.026530 I | etcdserver/membership: added member 9ca0c7938a0c3dc5 [http://127.0.0.1:8002] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:46:16 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:16.026875 I | etcdserver/membership: added member bc5472f61da31b5c [http://127.0.0.1:8003] to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:46:16.027010 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream Message writer) [ 127s] 2020-08-12 19:46:16.027108 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] 2020-08-12 19:46:16.030853 I | embed: listening for peers on 127.0.0.1:8003 [ 127s] 2020-08-12 19:46:16.031955 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream Message reader) [ 127s] 2020-08-12 19:46:16.032067 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream Message reader) [ 127s] 2020-08-12 19:46:16.032143 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:16.032728 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:16.031826 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream Message writer) [ 127s] 2020-08-12 19:46:16.035888 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:46:16.037283 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message writer) [ 127s] 2020-08-12 19:46:16.037361 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 writer) [ 127s] raft2020/08/12 19:46:16 INFO: bc5472f61da31b5c [term: 1] received a MsgHeartbeat message with higher term from 1083aa28485d3319 [term: 3] [ 127s] raft2020/08/12 19:46:16 INFO: bc5472f61da31b5c became follower at term 3 [ 127s] raft2020/08/12 19:46:16 INFO: raft.node: bc5472f61da31b5c elected leader 1083aa28485d3319 at term 3 [ 127s] 2020-08-12 19:46:16.044893 N | etcdserver/membership: set the initial cluster version to 3.0 [ 127s] 2020-08-12 19:46:16.044963 I | etcdserver/api: enabled capabilities for version 3.0 [ 127s] 2020-08-12 19:46:16.050263 I | embed: ready to serve client requests [ 127s] 2020-08-12 19:46:16.050414 I | etcdserver: published {Name:test-node-2 ClientURLs:[http://127.0.0.1:6003]} to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:46:16.051313 N | embed: serving insecure client requests on 127.0.0.1:6003, this is strongly discouraged! [ 127s] 2020-08-12 19:46:16.051749 I | etcdserver: 1083aa28485d3319 initialized peer connection; fast-forwarding 8 ticks (election ticks 10) with 2 active peer(s) [ 127s] 2020-08-12 19:46:16.074253 I | etcdserver: 9ca0c7938a0c3dc5 initialized peer connection; fast-forwarding 8 ticks (election ticks 10) with 2 active peer(s) [ 127s] 2020-08-12 19:46:16.074453 I | etcdserver: bc5472f61da31b5c initialized peer connection; fast-forwarding 8 ticks (election ticks 10) with 2 active peer(s) [ 127s] ------------------------------ Captured log call ------------------------------- [ 127s] WARNING etcd.client:client.py:956 etcd response did not contain a cluster ID [ 127s] ________________________ TestWatch.test_watch_generator ________________________ [ 127s] [ 127s] self = [ 127s] [ 127s] def test_watch_generator(self): [ 127s] """ INTEGRATION: Receive a watch event from other process (gen) """ [ 127s] [ 127s] > set_result = self.client.set('/test-key', 'test-value') [ 127s] [ 127s] src/etcd/tests/integration/test_simple.py:316: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] src/etcd/client.py:721: in set [ 127s] return self.write(key, value, ttl=ttl) [ 127s] src/etcd/client.py:500: in write [ 127s] response = self.api_execute(path, method, params=params) [ 127s] src/etcd/client.py:907: in wrapper [ 127s] return self._handle_server_response(response) [ 127s] src/etcd/client.py:987: in _handle_server_response [ 127s] etcd.EtcdError.handle(r) [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] cls = [ 127s] payload = {'cause': '404 page not found\n', 'message': 'Bad response'} [ 127s] [ 127s] @classmethod [ 127s] def handle(cls, payload): [ 127s] """ [ 127s] Decodes the error and throws the appropriate error message [ 127s] [ 127s] :param payload: The decoded JSON error payload as a dict. [ 127s] """ [ 127s] error_code = payload.get("errorCode") [ 127s] message = payload.get("message") [ 127s] cause = payload.get("cause") [ 127s] msg = '{} : {}'.format(message, cause) [ 127s] status = payload.get("status") [ 127s] # Some general status handling, as [ 127s] # not all endpoints return coherent error messages [ 127s] if status == 404: [ 127s] error_code = 100 [ 127s] elif status == 401: [ 127s] error_code = 110 [ 127s] exc = cls.error_exceptions.get(error_code, EtcdException) [ 127s] if issubclass(exc, EtcdException): [ 127s] > raise exc(msg, payload) [ 127s] E etcd.EtcdException: Bad response : 404 page not found [ 127s] [ 127s] src/etcd/__init__.py:306: EtcdException [ 127s] ------------------------------ Captured log call ------------------------------- [ 127s] WARNING etcd.client:client.py:956 etcd response did not contain a cluster ID [ 127s] _________________________ TestWatch.test_watch_indexed _________________________ [ 127s] [ 127s] self = [ 127s] [ 127s] def test_watch_indexed(self): [ 127s] """ INTEGRATION: Receive a watch event from other process, indexed """ [ 127s] [ 127s] > set_result = self.client.set('/test-key', 'test-value') [ 127s] [ 127s] src/etcd/tests/integration/test_simple.py:276: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] src/etcd/client.py:721: in set [ 127s] return self.write(key, value, ttl=ttl) [ 127s] src/etcd/client.py:500: in write [ 127s] response = self.api_execute(path, method, params=params) [ 127s] src/etcd/client.py:907: in wrapper [ 127s] return self._handle_server_response(response) [ 127s] src/etcd/client.py:987: in _handle_server_response [ 127s] etcd.EtcdError.handle(r) [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] cls = [ 127s] payload = {'cause': '404 page not found\n', 'message': 'Bad response'} [ 127s] [ 127s] @classmethod [ 127s] def handle(cls, payload): [ 127s] """ [ 127s] Decodes the error and throws the appropriate error message [ 127s] [ 127s] :param payload: The decoded JSON error payload as a dict. [ 127s] """ [ 127s] error_code = payload.get("errorCode") [ 127s] message = payload.get("message") [ 127s] cause = payload.get("cause") [ 127s] msg = '{} : {}'.format(message, cause) [ 127s] status = payload.get("status") [ 127s] # Some general status handling, as [ 127s] # not all endpoints return coherent error messages [ 127s] if status == 404: [ 127s] error_code = 100 [ 127s] elif status == 401: [ 127s] error_code = 110 [ 127s] exc = cls.error_exceptions.get(error_code, EtcdException) [ 127s] if issubclass(exc, EtcdException): [ 127s] > raise exc(msg, payload) [ 127s] E etcd.EtcdException: Bad response : 404 page not found [ 127s] [ 127s] src/etcd/__init__.py:306: EtcdException [ 127s] ------------------------------ Captured log call ------------------------------- [ 127s] WARNING etcd.client:client.py:956 etcd response did not contain a cluster ID [ 127s] ____________________ TestWatch.test_watch_indexed_generator ____________________ [ 127s] [ 127s] self = [ 127s] [ 127s] def test_watch_indexed_generator(self): [ 127s] """ INTEGRATION: Receive a watch event from other process, ixd, (2) """ [ 127s] [ 127s] > set_result = self.client.set('/test-key', 'test-value') [ 127s] [ 127s] src/etcd/tests/integration/test_simple.py:354: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] src/etcd/client.py:721: in set [ 127s] return self.write(key, value, ttl=ttl) [ 127s] src/etcd/client.py:500: in write [ 127s] response = self.api_execute(path, method, params=params) [ 127s] src/etcd/client.py:907: in wrapper [ 127s] return self._handle_server_response(response) [ 127s] src/etcd/client.py:987: in _handle_server_response [ 127s] etcd.EtcdError.handle(r) [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] cls = [ 127s] payload = {'cause': '404 page not found\n', 'message': 'Bad response'} [ 127s] [ 127s] @classmethod [ 127s] def handle(cls, payload): [ 127s] """ [ 127s] Decodes the error and throws the appropriate error message [ 127s] [ 127s] :param payload: The decoded JSON error payload as a dict. [ 127s] """ [ 127s] error_code = payload.get("errorCode") [ 127s] message = payload.get("message") [ 127s] cause = payload.get("cause") [ 127s] msg = '{} : {}'.format(message, cause) [ 127s] status = payload.get("status") [ 127s] # Some general status handling, as [ 127s] # not all endpoints return coherent error messages [ 127s] if status == 404: [ 127s] error_code = 100 [ 127s] elif status == 401: [ 127s] error_code = 110 [ 127s] exc = cls.error_exceptions.get(error_code, EtcdException) [ 127s] if issubclass(exc, EtcdException): [ 127s] > raise exc(msg, payload) [ 127s] E etcd.EtcdException: Bad response : 404 page not found [ 127s] [ 127s] src/etcd/__init__.py:306: EtcdException [ 127s] ------------------------------ Captured log call ------------------------------- [ 127s] WARNING etcd.client:client.py:956 etcd response did not contain a cluster ID [ 127s] --------------------------- Captured stderr teardown --------------------------- [ 127s] 2020-08-12 19:46:18.128572 W | rafthttp: lost the TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:18.128614 W | rafthttp: lost the TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:18.128621 E | rafthttp: failed to read 1083aa28485d3319 on stream MsgApp v2 (unexpected EOF) [ 127s] 2020-08-12 19:46:18.128649 E | rafthttp: failed to read 1083aa28485d3319 on stream MsgApp v2 (unexpected EOF) [ 127s] 2020-08-12 19:46:18.128652 I | rafthttp: peer 1083aa28485d3319 became inactive (message send to peer failed) [ 127s] 2020-08-12 19:46:18.128661 I | rafthttp: peer 1083aa28485d3319 became inactive (message send to peer failed) [ 127s] 2020-08-12 19:46:18.128729 W | rafthttp: lost the TCP streaming connection with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:46:18.128799 W | rafthttp: lost the TCP streaming connection with peer 1083aa28485d3319 (stream Message reader) [ 127s] raft2020/08/12 19:46:19 INFO: 9ca0c7938a0c3dc5 is starting a new election at term 3 [ 127s] raft2020/08/12 19:46:19 INFO: 9ca0c7938a0c3dc5 became candidate at term 4 [ 127s] raft2020/08/12 19:46:19 INFO: 9ca0c7938a0c3dc5 received MsgVoteResp from 9ca0c7938a0c3dc5 at term 4 [ 127s] raft2020/08/12 19:46:19 INFO: 9ca0c7938a0c3dc5 [logterm: 3, index: 8] sent MsgVote request to 1083aa28485d3319 at term 4 [ 127s] raft2020/08/12 19:46:19 INFO: 9ca0c7938a0c3dc5 [logterm: 3, index: 8] sent MsgVote request to bc5472f61da31b5c at term 4 [ 127s] raft2020/08/12 19:46:19 INFO: raft.node: 9ca0c7938a0c3dc5 lost leader 1083aa28485d3319 at term 4 [ 127s] raft2020/08/12 19:46:19 INFO: bc5472f61da31b5c [term: 3] received a MsgVote message with higher term from 9ca0c7938a0c3dc5 [term: 4] [ 127s] raft2020/08/12 19:46:19 INFO: bc5472f61da31b5c became follower at term 4 [ 127s] raft2020/08/12 19:46:19 INFO: bc5472f61da31b5c [logterm: 3, index: 8, vote: 0] cast MsgVote for 9ca0c7938a0c3dc5 [logterm: 3, index: 8] at term 4 [ 127s] raft2020/08/12 19:46:19 INFO: raft.node: bc5472f61da31b5c lost leader 1083aa28485d3319 at term 4 [ 127s] raft2020/08/12 19:46:19 INFO: 9ca0c7938a0c3dc5 received MsgVoteResp from bc5472f61da31b5c at term 4 [ 127s] raft2020/08/12 19:46:19 INFO: 9ca0c7938a0c3dc5 has received 2 MsgVoteResp votes and 0 vote rejections [ 127s] raft2020/08/12 19:46:19 INFO: 9ca0c7938a0c3dc5 became leader at term 4 [ 127s] raft2020/08/12 19:46:19 INFO: raft.node: 9ca0c7938a0c3dc5 elected leader 9ca0c7938a0c3dc5 at term 4 [ 127s] raft2020/08/12 19:46:19 INFO: raft.node: bc5472f61da31b5c elected leader 9ca0c7938a0c3dc5 at term 4 [ 127s] 2020-08-12 19:46:19.103880 W | etcdserver: failed to reach the peerURL(http://127.0.0.1:8001) of member 1083aa28485d3319 (Get http://127.0.0.1:8001/version: dial tcp 127.0.0.1:8001: connect: connection refused) [ 127s] 2020-08-12 19:46:19.103967 W | etcdserver: cannot get the version of member 1083aa28485d3319 (Get http://127.0.0.1:8001/version: dial tcp 127.0.0.1:8001: connect: connection refused) [ 127s] 2020-08-12 19:46:19.270330 W | rafthttp: lost the TCP streaming connection with peer 1083aa28485d3319 (stream Message writer) [ 127s] 2020-08-12 19:46:20.135662 W | rafthttp: lost the TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] 2020-08-12 19:46:20.135769 E | rafthttp: failed to read 9ca0c7938a0c3dc5 on stream Message (unexpected EOF) [ 127s] 2020-08-12 19:46:20.135802 I | rafthttp: peer 9ca0c7938a0c3dc5 became inactive (message send to peer failed) [ 127s] 2020-08-12 19:46:20.135822 W | rafthttp: lost the TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:21.015898 W | rafthttp: health check for peer 1083aa28485d3319 could not connect: dial tcp 127.0.0.1:8001: connect: connection refused [ 127s] 2020-08-12 19:46:21.016021 W | rafthttp: health check for peer 1083aa28485d3319 could not connect: dial tcp 127.0.0.1:8001: connect: connection refused [ 127s] raft2020/08/12 19:46:21 INFO: bc5472f61da31b5c is starting a new election at term 4 [ 127s] raft2020/08/12 19:46:21 INFO: bc5472f61da31b5c became candidate at term 5 [ 127s] raft2020/08/12 19:46:21 INFO: bc5472f61da31b5c received MsgVoteResp from bc5472f61da31b5c at term 5 [ 127s] raft2020/08/12 19:46:21 INFO: bc5472f61da31b5c [logterm: 4, index: 9] sent MsgVote request to 1083aa28485d3319 at term 5 [ 127s] raft2020/08/12 19:46:21 INFO: bc5472f61da31b5c [logterm: 4, index: 9] sent MsgVote request to 9ca0c7938a0c3dc5 at term 5 [ 127s] raft2020/08/12 19:46:21 INFO: raft.node: bc5472f61da31b5c lost leader 9ca0c7938a0c3dc5 at term 5 [ 127s] ________________ TestEncryptedAccess.test_get_set_authenticated ________________ [ 127s] [ 127s] self = [ 127s] [ 127s] def test_get_set_authenticated(self): [ 127s] """ INTEGRATION: set/get a new value authenticated """ [ 127s] [ 127s] client = etcd.Client( [ 127s] port=6001, protocol='https', ca_cert=self.ca_cert_path) [ 127s] [ 127s] > set_result = client.set('/test_set', 'test-key') [ 127s] [ 127s] src/etcd/tests/integration/test_ssl.py:92: [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] src/etcd/client.py:721: in set [ 127s] return self.write(key, value, ttl=ttl) [ 127s] src/etcd/client.py:500: in write [ 127s] response = self.api_execute(path, method, params=params) [ 127s] src/etcd/client.py:907: in wrapper [ 127s] return self._handle_server_response(response) [ 127s] src/etcd/client.py:987: in _handle_server_response [ 127s] etcd.EtcdError.handle(r) [ 127s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [ 127s] [ 127s] cls = [ 127s] payload = {'cause': '404 page not found\n', 'message': 'Bad response'} [ 127s] [ 127s] @classmethod [ 127s] def handle(cls, payload): [ 127s] """ [ 127s] Decodes the error and throws the appropriate error message [ 127s] [ 127s] :param payload: The decoded JSON error payload as a dict. [ 127s] """ [ 127s] error_code = payload.get("errorCode") [ 127s] message = payload.get("message") [ 127s] cause = payload.get("cause") [ 127s] msg = '{} : {}'.format(message, cause) [ 127s] status = payload.get("status") [ 127s] # Some general status handling, as [ 127s] # not all endpoints return coherent error messages [ 127s] if status == 404: [ 127s] error_code = 100 [ 127s] elif status == 401: [ 127s] error_code = 110 [ 127s] exc = cls.error_exceptions.get(error_code, EtcdException) [ 127s] if issubclass(exc, EtcdException): [ 127s] > raise exc(msg, payload) [ 127s] E etcd.EtcdException: Bad response : 404 page not found [ 127s] [ 127s] src/etcd/__init__.py:306: EtcdException [ 127s] ---------------------------- Captured stderr setup ----------------------------- [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:46:25.113352 I | etcdmain: etcd Version: 3.4.3 [ 127s] 2020-08-12 19:46:25.113375 I | etcdmain: Git SHA: Not provided (use ./build instead of go build) [ 127s] 2020-08-12 19:46:25.113380 I | etcdmain: Go Version: go1.12.17 [ 127s] 2020-08-12 19:46:25.113384 I | etcdmain: Go OS/Arch: linux/amd64 [ 127s] 2020-08-12 19:46:25.113389 I | etcdmain: setting maximum number of CPUs to 8, total number of available CPUs is 8 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:46:25.113565 I | embed: name = test-node-0 [ 127s] 2020-08-12 19:46:25.113575 I | embed: data dir = /tmp/python-etcd1x580l7f/python-etcd.0-q1yzyx2v [ 127s] 2020-08-12 19:46:25.113580 I | embed: member dir = /tmp/python-etcd1x580l7f/python-etcd.0-q1yzyx2v/member [ 127s] 2020-08-12 19:46:25.113584 I | embed: heartbeat = 100ms [ 127s] 2020-08-12 19:46:25.113588 I | embed: election = 1000ms [ 127s] 2020-08-12 19:46:25.113592 I | embed: snapshot count = 100000 [ 127s] 2020-08-12 19:46:25.113600 I | embed: advertise client URLs = https://127.0.0.1:6001 [ 127s] 2020-08-12 19:46:25.144192 I | etcdserver: starting member 1083aa28485d3319 in cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:46:25 INFO: 1083aa28485d3319 switched to configuration voters=() [ 127s] raft2020/08/12 19:46:25 INFO: 1083aa28485d3319 became follower at term 0 [ 127s] raft2020/08/12 19:46:25 INFO: newRaft 1083aa28485d3319 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0] [ 127s] raft2020/08/12 19:46:25 INFO: 1083aa28485d3319 became follower at term 1 [ 127s] raft2020/08/12 19:46:25 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153) [ 127s] raft2020/08/12 19:46:25 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965) [ 127s] raft2020/08/12 19:46:25 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:25.160027 W | auth: simple token is not cryptographically signed [ 127s] 2020-08-12 19:46:25.173203 I | rafthttp: starting peer 9ca0c7938a0c3dc5... [ 127s] 2020-08-12 19:46:25.173361 I | rafthttp: started HTTP pipelining with peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:46:25.174338 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (writer) [ 127s] 2020-08-12 19:46:25.174913 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (writer) [ 127s] 2020-08-12 19:46:25.180292 I | rafthttp: started peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:46:25.180499 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] 2020-08-12 19:46:25.180962 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:25.181053 I | rafthttp: added peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:46:25.181167 I | rafthttp: starting peer bc5472f61da31b5c... [ 127s] 2020-08-12 19:46:25.181246 I | rafthttp: started HTTP pipelining with peer bc5472f61da31b5c [ 127s] 2020-08-12 19:46:25.183324 I | rafthttp: started streaming with peer bc5472f61da31b5c (writer) [ 127s] 2020-08-12 19:46:25.183695 I | rafthttp: started streaming with peer bc5472f61da31b5c (writer) [ 127s] 2020-08-12 19:46:25.184875 I | rafthttp: started peer bc5472f61da31b5c [ 127s] 2020-08-12 19:46:25.184997 I | rafthttp: added peer bc5472f61da31b5c [ 127s] 2020-08-12 19:46:25.185056 I | etcdserver: starting server... [version: 3.4.3, cluster version: to_be_decided] [ 127s] 2020-08-12 19:46:25.189828 I | rafthttp: started streaming with peer bc5472f61da31b5c (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:25.189946 I | rafthttp: started streaming with peer bc5472f61da31b5c (stream Message reader) [ 127s] raft2020/08/12 19:46:25 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:25.190981 I | etcdserver/membership: added member 1083aa28485d3319 [http://127.0.0.1:8001] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:46:25 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:25.191741 I | etcdserver/membership: added member 9ca0c7938a0c3dc5 [http://127.0.0.1:8002] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:46:25 INFO: 1083aa28485d3319 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:25.192369 I | etcdserver/membership: added member bc5472f61da31b5c [http://127.0.0.1:8003] to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:46:25.199121 I | embed: ClientTLS: cert = /tmp/python-etcd1x580l7f/server.crt, key = /tmp/python-etcd1x580l7f/server.key, trusted-ca = , client-cert-auth = false, crl-file = [ 127s] 2020-08-12 19:46:25.199345 I | embed: listening for peers on 127.0.0.1:8001 [ 127s] raft2020/08/12 19:46:26 INFO: 1083aa28485d3319 is starting a new election at term 1 [ 127s] raft2020/08/12 19:46:26 INFO: 1083aa28485d3319 became candidate at term 2 [ 127s] raft2020/08/12 19:46:26 INFO: 1083aa28485d3319 received MsgVoteResp from 1083aa28485d3319 at term 2 [ 127s] raft2020/08/12 19:46:26 INFO: 1083aa28485d3319 [logterm: 1, index: 3] sent MsgVote request to 9ca0c7938a0c3dc5 at term 2 [ 127s] raft2020/08/12 19:46:26 INFO: 1083aa28485d3319 [logterm: 1, index: 3] sent MsgVote request to bc5472f61da31b5c at term 2 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:46:27.142054 I | etcdmain: etcd Version: 3.4.3 [ 127s] 2020-08-12 19:46:27.142077 I | etcdmain: Git SHA: Not provided (use ./build instead of go build) [ 127s] 2020-08-12 19:46:27.142084 I | etcdmain: Go Version: go1.12.17 [ 127s] 2020-08-12 19:46:27.142090 I | etcdmain: Go OS/Arch: linux/amd64 [ 127s] 2020-08-12 19:46:27.142096 I | etcdmain: setting maximum number of CPUs to 8, total number of available CPUs is 8 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:46:27.142315 I | embed: name = test-node-1 [ 127s] 2020-08-12 19:46:27.142329 I | embed: data dir = /tmp/python-etcd1x580l7f/python-etcd.1-dii86z30 [ 127s] 2020-08-12 19:46:27.142337 I | embed: member dir = /tmp/python-etcd1x580l7f/python-etcd.1-dii86z30/member [ 127s] 2020-08-12 19:46:27.142343 I | embed: heartbeat = 100ms [ 127s] 2020-08-12 19:46:27.142349 I | embed: election = 1000ms [ 127s] 2020-08-12 19:46:27.142355 I | embed: snapshot count = 100000 [ 127s] 2020-08-12 19:46:27.142373 I | embed: advertise client URLs = https://127.0.0.1:6002 [ 127s] 2020-08-12 19:46:27.162110 I | etcdserver: starting member 9ca0c7938a0c3dc5 in cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:46:27 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=() [ 127s] raft2020/08/12 19:46:27 INFO: 9ca0c7938a0c3dc5 became follower at term 0 [ 127s] raft2020/08/12 19:46:27 INFO: newRaft 9ca0c7938a0c3dc5 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0] [ 127s] raft2020/08/12 19:46:27 INFO: 9ca0c7938a0c3dc5 became follower at term 1 [ 127s] raft2020/08/12 19:46:27 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153) [ 127s] raft2020/08/12 19:46:27 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965) [ 127s] raft2020/08/12 19:46:27 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:27.176413 W | auth: simple token is not cryptographically signed [ 127s] 2020-08-12 19:46:27.189977 I | rafthttp: starting peer 1083aa28485d3319... [ 127s] 2020-08-12 19:46:27.190099 I | rafthttp: started HTTP pipelining with peer 1083aa28485d3319 [ 127s] 2020-08-12 19:46:27.190904 I | rafthttp: started streaming with peer 1083aa28485d3319 (writer) [ 127s] 2020-08-12 19:46:27.191533 I | rafthttp: started streaming with peer 1083aa28485d3319 (writer) [ 127s] 2020-08-12 19:46:27.196366 I | rafthttp: started peer 1083aa28485d3319 [ 127s] 2020-08-12 19:46:27.196516 I | rafthttp: added peer 1083aa28485d3319 [ 127s] 2020-08-12 19:46:27.196576 I | rafthttp: started streaming with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:27.196668 I | rafthttp: started streaming with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:46:27.196781 I | rafthttp: starting peer bc5472f61da31b5c... [ 127s] 2020-08-12 19:46:27.196926 I | rafthttp: started HTTP pipelining with peer bc5472f61da31b5c [ 127s] 2020-08-12 19:46:27.198840 I | rafthttp: peer 9ca0c7938a0c3dc5 became active [ 127s] 2020-08-12 19:46:27.198827 I | rafthttp: peer 1083aa28485d3319 became active [ 127s] 2020-08-12 19:46:27.198917 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:46:27.199083 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:27.199771 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message writer) [ 127s] 2020-08-12 19:46:27.199834 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:46:27.200387 I | rafthttp: started streaming with peer bc5472f61da31b5c (writer) [ 127s] 2020-08-12 19:46:27.200926 I | rafthttp: started streaming with peer bc5472f61da31b5c (writer) [ 127s] 2020-08-12 19:46:27.207622 I | rafthttp: started peer bc5472f61da31b5c [ 127s] 2020-08-12 19:46:27.207854 I | rafthttp: started streaming with peer bc5472f61da31b5c (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:27.207937 I | rafthttp: started streaming with peer bc5472f61da31b5c (stream Message reader) [ 127s] 2020-08-12 19:46:27.208120 I | rafthttp: added peer bc5472f61da31b5c [ 127s] 2020-08-12 19:46:27.208247 I | etcdserver: starting server... [version: 3.4.3, cluster version: to_be_decided] [ 127s] raft2020/08/12 19:46:27 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:27.211338 I | etcdserver/membership: added member 1083aa28485d3319 [http://127.0.0.1:8001] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:46:27 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:27.211588 I | etcdserver/membership: added member 9ca0c7938a0c3dc5 [http://127.0.0.1:8002] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:46:27 INFO: 9ca0c7938a0c3dc5 switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:27.211773 I | etcdserver/membership: added member bc5472f61da31b5c [http://127.0.0.1:8003] to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:46:27.214794 I | embed: ClientTLS: cert = /tmp/python-etcd1x580l7f/server.crt, key = /tmp/python-etcd1x580l7f/server.key, trusted-ca = , client-cert-auth = false, crl-file = [ 127s] 2020-08-12 19:46:27.214869 I | embed: listening for peers on 127.0.0.1:8002 [ 127s] 2020-08-12 19:46:27.215392 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream Message writer) [ 127s] 2020-08-12 19:46:27.215468 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] 2020-08-12 19:46:27.215510 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:46:27.215576 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] raft2020/08/12 19:46:27 INFO: 1083aa28485d3319 is starting a new election at term 2 [ 127s] raft2020/08/12 19:46:27 INFO: 1083aa28485d3319 became candidate at term 3 [ 127s] raft2020/08/12 19:46:27 INFO: 1083aa28485d3319 received MsgVoteResp from 1083aa28485d3319 at term 3 [ 127s] raft2020/08/12 19:46:27 INFO: 1083aa28485d3319 [logterm: 1, index: 3] sent MsgVote request to 9ca0c7938a0c3dc5 at term 3 [ 127s] raft2020/08/12 19:46:27 INFO: 1083aa28485d3319 [logterm: 1, index: 3] sent MsgVote request to bc5472f61da31b5c at term 3 [ 127s] raft2020/08/12 19:46:27 INFO: 9ca0c7938a0c3dc5 [term: 1] received a MsgVote message with higher term from 1083aa28485d3319 [term: 3] [ 127s] raft2020/08/12 19:46:27 INFO: 9ca0c7938a0c3dc5 became follower at term 3 [ 127s] raft2020/08/12 19:46:27 INFO: 9ca0c7938a0c3dc5 [logterm: 1, index: 3, vote: 0] cast MsgVote for 1083aa28485d3319 [logterm: 1, index: 3] at term 3 [ 127s] raft2020/08/12 19:46:27 INFO: 1083aa28485d3319 received MsgVoteResp from 9ca0c7938a0c3dc5 at term 3 [ 127s] raft2020/08/12 19:46:27 INFO: 1083aa28485d3319 has received 2 MsgVoteResp votes and 0 vote rejections [ 127s] raft2020/08/12 19:46:27 INFO: 1083aa28485d3319 became leader at term 3 [ 127s] raft2020/08/12 19:46:27 INFO: raft.node: 1083aa28485d3319 elected leader 1083aa28485d3319 at term 3 [ 127s] raft2020/08/12 19:46:27 INFO: raft.node: 9ca0c7938a0c3dc5 elected leader 1083aa28485d3319 at term 3 [ 127s] 2020-08-12 19:46:27.966457 W | etcdserver: failed to reach the peerURL(http://127.0.0.1:8003) of member bc5472f61da31b5c (Get http://127.0.0.1:8003/version: dial tcp 127.0.0.1:8003: connect: connection refused) [ 127s] 2020-08-12 19:46:27.966525 W | etcdserver: cannot get the version of member bc5472f61da31b5c (Get http://127.0.0.1:8003/version: dial tcp 127.0.0.1:8003: connect: connection refused) [ 127s] 2020-08-12 19:46:27.966599 I | etcdserver: setting up the initial cluster version to 3.0 [ 127s] 2020-08-12 19:46:27.983069 I | embed: ready to serve client requests [ 127s] 2020-08-12 19:46:27.984709 I | etcdserver: published {Name:test-node-0 ClientURLs:[https://127.0.0.1:6001]} to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:46:27.986729 N | etcdserver/membership: set the initial cluster version to 3.0 [ 127s] 2020-08-12 19:46:27.986982 I | etcdserver/api: enabled capabilities for version 3.0 [ 127s] 2020-08-12 19:46:27.987089 N | etcdserver/membership: set the initial cluster version to 3.0 [ 127s] 2020-08-12 19:46:27.987191 I | embed: ready to serve client requests [ 127s] 2020-08-12 19:46:27.987274 I | etcdserver/api: enabled capabilities for version 3.0 [ 127s] 2020-08-12 19:46:27.987340 I | etcdserver: published {Name:test-node-1 ClientURLs:[https://127.0.0.1:6002]} to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:46:27.989960 I | embed: serving client requests on 127.0.0.1:6001 [ 127s] 2020-08-12 19:46:27.992542 I | embed: serving client requests on 127.0.0.1:6002 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:46:29.133347 I | etcdmain: etcd Version: 3.4.3 [ 127s] 2020-08-12 19:46:29.133369 I | etcdmain: Git SHA: Not provided (use ./build instead of go build) [ 127s] 2020-08-12 19:46:29.133376 I | etcdmain: Go Version: go1.12.17 [ 127s] 2020-08-12 19:46:29.133382 I | etcdmain: Go OS/Arch: linux/amd64 [ 127s] 2020-08-12 19:46:29.133395 I | etcdmain: setting maximum number of CPUs to 8, total number of available CPUs is 8 [ 127s] [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead [ 127s] 2020-08-12 19:46:29.133617 I | embed: name = test-node-2 [ 127s] 2020-08-12 19:46:29.133631 I | embed: data dir = /tmp/python-etcd1x580l7f/python-etcd.2-ufua7_qd [ 127s] 2020-08-12 19:46:29.133638 I | embed: member dir = /tmp/python-etcd1x580l7f/python-etcd.2-ufua7_qd/member [ 127s] 2020-08-12 19:46:29.133644 I | embed: heartbeat = 100ms [ 127s] 2020-08-12 19:46:29.133650 I | embed: election = 1000ms [ 127s] 2020-08-12 19:46:29.133657 I | embed: snapshot count = 100000 [ 127s] 2020-08-12 19:46:29.133667 I | embed: advertise client URLs = https://127.0.0.1:6003 [ 127s] 2020-08-12 19:46:29.158915 I | etcdserver: starting member bc5472f61da31b5c in cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:46:29 INFO: bc5472f61da31b5c switched to configuration voters=() [ 127s] raft2020/08/12 19:46:29 INFO: bc5472f61da31b5c became follower at term 0 [ 127s] raft2020/08/12 19:46:29 INFO: newRaft bc5472f61da31b5c [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0] [ 127s] raft2020/08/12 19:46:29 INFO: bc5472f61da31b5c became follower at term 1 [ 127s] raft2020/08/12 19:46:29 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153) [ 127s] raft2020/08/12 19:46:29 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965) [ 127s] raft2020/08/12 19:46:29 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:29.174369 W | auth: simple token is not cryptographically signed [ 127s] 2020-08-12 19:46:29.186905 I | rafthttp: starting peer 1083aa28485d3319... [ 127s] 2020-08-12 19:46:29.187033 I | rafthttp: started HTTP pipelining with peer 1083aa28485d3319 [ 127s] 2020-08-12 19:46:29.187876 I | rafthttp: started streaming with peer 1083aa28485d3319 (writer) [ 127s] 2020-08-12 19:46:29.188358 I | rafthttp: started streaming with peer 1083aa28485d3319 (writer) [ 127s] 2020-08-12 19:46:29.193570 I | rafthttp: started peer 1083aa28485d3319 [ 127s] 2020-08-12 19:46:29.193661 I | rafthttp: added peer 1083aa28485d3319 [ 127s] 2020-08-12 19:46:29.193703 I | rafthttp: started streaming with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:29.193879 I | rafthttp: starting peer 9ca0c7938a0c3dc5... [ 127s] 2020-08-12 19:46:29.194077 I | rafthttp: started HTTP pipelining with peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:46:29.194217 I | rafthttp: started streaming with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:46:29.195839 I | rafthttp: peer bc5472f61da31b5c became active [ 127s] 2020-08-12 19:46:29.195833 I | rafthttp: peer 1083aa28485d3319 became active [ 127s] 2020-08-12 19:46:29.195917 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:46:29.195971 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:29.196662 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream Message writer) [ 127s] 2020-08-12 19:46:29.196762 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream Message reader) [ 127s] 2020-08-12 19:46:29.196834 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (writer) [ 127s] 2020-08-12 19:46:29.197475 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (writer) [ 127s] 2020-08-12 19:46:29.202099 I | rafthttp: started peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:46:29.202411 I | rafthttp: added peer 9ca0c7938a0c3dc5 [ 127s] 2020-08-12 19:46:29.202547 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] 2020-08-12 19:46:29.202673 I | rafthttp: started streaming with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:29.203254 I | etcdserver: starting server... [version: 3.4.3, cluster version: to_be_decided] [ 127s] 2020-08-12 19:46:29.205803 I | rafthttp: peer bc5472f61da31b5c became active [ 127s] 2020-08-12 19:46:29.205829 I | rafthttp: peer 9ca0c7938a0c3dc5 became active [ 127s] 2020-08-12 19:46:29.205905 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:46:29.205945 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream Message writer) [ 127s] 2020-08-12 19:46:29.205985 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:29.206783 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message reader) [ 127s] raft2020/08/12 19:46:29 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:29.207512 I | etcdserver/membership: added member 1083aa28485d3319 [http://127.0.0.1:8001] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:46:29 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:29.207869 I | etcdserver/membership: added member 9ca0c7938a0c3dc5 [http://127.0.0.1:8002] to cluster 45be1d319ab9ab98 [ 127s] raft2020/08/12 19:46:29 INFO: bc5472f61da31b5c switched to configuration voters=(1189981816545424153 11286240102680640965 13570597978558896988) [ 127s] 2020-08-12 19:46:29.208160 I | etcdserver/membership: added member bc5472f61da31b5c [http://127.0.0.1:8003] to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:46:29.208486 I | etcdserver: 1083aa28485d3319 initialized peer connection; fast-forwarding 8 ticks (election ticks 10) with 2 active peer(s) [ 127s] raft2020/08/12 19:46:29 INFO: bc5472f61da31b5c [term: 1] received a MsgHeartbeat message with higher term from 1083aa28485d3319 [term: 3] [ 127s] raft2020/08/12 19:46:29 INFO: bc5472f61da31b5c became follower at term 3 [ 127s] raft2020/08/12 19:46:29 INFO: raft.node: bc5472f61da31b5c elected leader 1083aa28485d3319 at term 3 [ 127s] 2020-08-12 19:46:29.211591 I | embed: ClientTLS: cert = /tmp/python-etcd1x580l7f/server.crt, key = /tmp/python-etcd1x580l7f/server.key, trusted-ca = , client-cert-auth = false, crl-file = [ 127s] 2020-08-12 19:46:29.211755 I | embed: listening for peers on 127.0.0.1:8003 [ 127s] 2020-08-12 19:46:29.212579 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:29.212670 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:46:29.213199 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream Message writer) [ 127s] 2020-08-12 19:46:29.213246 I | rafthttp: established a TCP streaming connection with peer 9ca0c7938a0c3dc5 (stream Message writer) [ 127s] 2020-08-12 19:46:29.213272 I | rafthttp: established a TCP streaming connection with peer 1083aa28485d3319 (stream MsgApp v2 writer) [ 127s] 2020-08-12 19:46:29.213223 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream Message reader) [ 127s] 2020-08-12 19:46:29.213472 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream Message reader) [ 127s] 2020-08-12 19:46:29.213617 I | rafthttp: established a TCP streaming connection with peer bc5472f61da31b5c (stream MsgApp v2 reader) [ 127s] 2020-08-12 19:46:29.214084 N | etcdserver/membership: set the initial cluster version to 3.0 [ 127s] 2020-08-12 19:46:29.214261 I | etcdserver/api: enabled capabilities for version 3.0 [ 127s] 2020-08-12 19:46:29.216823 I | etcdserver: 9ca0c7938a0c3dc5 initialized peer connection; fast-forwarding 8 ticks (election ticks 10) with 2 active peer(s) [ 127s] 2020-08-12 19:46:29.222443 I | embed: ready to serve client requests [ 127s] 2020-08-12 19:46:29.222639 I | etcdserver: published {Name:test-node-2 ClientURLs:[https://127.0.0.1:6003]} to cluster 45be1d319ab9ab98 [ 127s] 2020-08-12 19:46:29.227403 I | embed: serving client requests on 127.0.0.1:6003 [ 127s] 2020-08-12 19:46:29.255469 I | etcdserver: bc5472f61da31b5c initialized peer connection; fast-forwarding 8 ticks (election ticks 10) with 2 active peer(s) [ 127s] ------------------------------ Captured log call ------------------------------- [ 127s] WARNING etcd.client:client.py:956 etcd response did not contain a cluster ID [ 127s] =============================== warnings summary =============================== [ 127s] src/etcd/tests/unit/test_old_request.py:243 [ 127s] src/etcd/tests/unit/test_old_request.py:243: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_eternal_watch will be ignored [ 127s] def test_eternal_watch(self): [ 127s] [ 127s] src/etcd/tests/unit/test_lock.py::TestClientLock::test_is_not_acquired [ 127s] /home/abuild/rpmbuild/BUILD/python-etcd-0.4.5/src/etcd/lock.py:53: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead [ 127s] _log.warn("Lock was supposedly taken, but we cannot find it") [ 127s] [ 127s] -- Docs: https://docs.pytest.org/en/latest/warnings.html [ 127s] =========================== short test summary info ============================ [ 127s] FAILED src/etcd/tests/test_auth.py::EtcdUserTest::test_names - etcd.EtcdExcep... [ 127s] FAILED src/etcd/tests/test_auth.py::EtcdUserTest::test_read - etcd.EtcdExcept... [ 127s] FAILED src/etcd/tests/test_auth.py::EtcdUserTest::test_write_and_delete - etc... [ 127s] FAILED src/etcd/tests/test_auth.py::EtcdRoleTest::test_names - etcd.EtcdExcep... [ 127s] FAILED src/etcd/tests/test_auth.py::EtcdRoleTest::test_read - etcd.EtcdExcept... [ 127s] FAILED src/etcd/tests/test_auth.py::EtcdRoleTest::test_write_and_delete - etc... [ 127s] FAILED src/etcd/tests/integration/test_simple.py::TestSimple::test_directory_ttl_update [ 127s] FAILED src/etcd/tests/integration/test_simple.py::TestSimple::test_get_set_delete [ 127s] FAILED src/etcd/tests/integration/test_simple.py::TestSimple::test_leader - e... [ 127s] FAILED src/etcd/tests/integration/test_simple.py::TestSimple::test_machines [ 127s] FAILED src/etcd/tests/integration/test_simple.py::TestSimple::test_retrieve_subkeys [ 127s] FAILED src/etcd/tests/integration/test_simple.py::TestSimple::test_update - e... [ 127s] FAILED src/etcd/tests/integration/test_simple.py::TestErrors::test_creating_already_existing_directory [ 127s] FAILED src/etcd/tests/integration/test_simple.py::TestErrors::test_is_not_a_file [ 127s] FAILED src/etcd/tests/integration/test_simple.py::TestErrors::test_test_and_set [ 127s] FAILED src/etcd/tests/integration/test_simple.py::TestClusterFunctions::test_reconnect [ 127s] FAILED src/etcd/tests/integration/test_simple.py::TestClusterFunctions::test_reconnect_with_several_hosts_passed [ 127s] FAILED src/etcd/tests/integration/test_simple.py::TestClusterFunctions::test_reconnet_fails [ 127s] FAILED src/etcd/tests/integration/test_simple.py::TestWatch::test_watch - etc... [ 127s] FAILED src/etcd/tests/integration/test_simple.py::TestWatch::test_watch_generator [ 127s] FAILED src/etcd/tests/integration/test_simple.py::TestWatch::test_watch_indexed [ 127s] FAILED src/etcd/tests/integration/test_simple.py::TestWatch::test_watch_indexed_generator [ 127s] FAILED src/etcd/tests/integration/test_ssl.py::TestEncryptedAccess::test_get_set_authenticated [ 127s] = 23 failed, 122 passed, 2 skipped, 1 xfailed, 2 warnings in 123.47s (0:02:03) = [ 127s] error: Bad exit status from /var/tmp/rpm-tmp.yaZcy3 (%check) [ 127s] [ 127s] [ 127s] RPM build errors: [ 127s] Bad exit status from /var/tmp/rpm-tmp.yaZcy3 (%check) [ 127s] [ 127s] stitny failed "build python-etcd.spec" at Wed Aug 12 19:46:53 UTC 2020. [ 127s]