# Run sent to worker: doanac-reckless == 2018-08-07 19:18:48.935340: Setting up runner on worker == 2018-08-07 19:18:50.077333: Steps to recreate inside simulator mkdir /tmp/sim-run cd /tmp/sim-run wget -O runner https://api.gavelci.us/runner # wget'ing the .rundef.json file may required the --header flag if the # jobserv API requires authentication. wget -O rundef.json https://api.gavelci.us/projects/jobserv/builds/6/runs/unit-test/.rundef.json # open rundef.json and update values for secrets PYTHONPATH=./runner python3 -m jobserv_runner.simulator -w `pwd` rundef.json == 2018-08-07 19:18:50.286468: Pulling container: python:3.5-alpine 3.5-alpine: Pulling from library/python Digest: sha256:60e3f407db6c8bb98a11d25dad2e35a4584060c270d990492c0a45e39e156934 Status: Image is up to date for python:3.5-alpine == 2018-08-07 19:18:52.166807: Preparing bind mounts 2018-08-07 19:18:52.166892: INFO Creating secret: webhook-key 2018-08-07 19:18:52.166981: INFO Creating secret: githubtok == 2018-08-07 19:18:52.354642: Creating container .netrc file 2018-08-07 19:18:52.354717: INFO Creating token for jobserv run access 2018-08-07 19:18:52.354746: INFO Creating a github token entry == 2018-08-07 19:18:52.563881: Preparing script == 2018-08-07 19:18:52.767058: Cloning git repository 2018-08-07 19:18:52.767075: INFO Clone_url: https://github.com/doanac/jobserv.git 2018-08-07 19:18:52.767085: INFO Using an HTTP token for cloning Cloning into '/srv/gavelci-worker/runs/tmpxy69ro92/repo'... 2018-08-07 19:18:53.728046: INFO Checking out: 26a25af7238f5da8759536eeb24e6fec4d336b9a Switched to branch 'jobserv-run' == 2018-08-07 19:18:54.337351: Setting up container environment 2018-08-07 19:18:54.337385: INFO Container environment variables: H_BUILD=6 GH_REPO=jobserv GIT_URL=https://github.com/doanac/jobserv.git H_RUN=unit-test GH_STATUS_URL=https://api.github.com/repos/OpenSourceFoundries/jobserv/statuses/26a25af7238f5da8759536eeb24e6fec4d336b9a GH_PRNUM=37 GH_TARGET_REPO=https://github.com/OpenSourceFoundries/jobserv.git GIT_SHA=26a25af7238f5da8759536eeb24e6fec4d336b9a GIT_SHA_BASE=0a78e0687c245051801a74539941c9b3a3bf49f6 H_WORKER=doanac-reckless GH_OWNER=OpenSourceFoundries H_PROJECT=jobserv == 2018-08-07 19:18:54.552501: Running script inside container + apk --no-cache add git python3-dev musl-dev gcc openssl libffi-dev openssl-dev fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz (1/23) Installing binutils (2.30-r5) (2/23) Installing gmp (6.1.2-r1) (3/23) Installing isl (0.18-r0) (4/23) Installing libgomp (6.4.0-r8) (5/23) Installing libatomic (6.4.0-r8) (6/23) Installing pkgconf (1.5.3-r0) (7/23) Installing libgcc (6.4.0-r8) (8/23) Installing mpfr3 (3.1.5-r1) (9/23) Installing mpc1 (1.0.3-r1) (10/23) Installing libstdc++ (6.4.0-r8) (11/23) Installing gcc (6.4.0-r8) (12/23) Installing nghttp2-libs (1.32.0-r0) (13/23) Installing libssh2 (1.8.0-r3) (14/23) Installing libcurl (7.61.0-r0) (15/23) Installing pcre2 (10.31-r0) (16/23) Installing git (2.18.0-r0) (17/23) Installing libffi-dev (3.2.1-r4) (18/23) Installing musl-dev (1.1.19-r10) (19/23) Installing openssl (1.0.2o-r2) (20/23) Installing zlib-dev (1.2.11-r1) (21/23) Installing openssl-dev (1.0.2o-r2) (22/23) Installing python3 (3.6.4-r1) (23/23) Installing python3-dev (3.6.4-r1) Executing busybox-1.28.4-r0.trigger Executing ca-certificates-20171114-r3.trigger OK: 208 MiB in 50 packages + git config --global user.email cibot@example.com + git config --global user.name cibot + ./unit-test.sh + readlink -f ./unit-test.sh + dirname /repo/unit-test.sh + HERE=/repo + cd /repo + mktemp -d + VENV=/tmp/tmp.dDfBGB + trap 'rm -rf /tmp/tmp.dDfBGB' EXIT + python3 -m venv /tmp/tmp.dDfBGB + /tmp/tmp.dDfBGB/bin/pip3 install -U pip Collecting pip Downloading https://files.pythonhosted.org/packages/5f/25/e52d3f31441505a5f3af41213346e5b6c221c9e086a166f3703d2ddaf940/pip-18.0-py2.py3-none-any.whl (1.3MB) Installing collected packages: pip Found existing installation: pip 9.0.1 Uninstalling pip-9.0.1: Successfully uninstalled pip-9.0.1 Successfully installed pip-18.0 + /tmp/tmp.dDfBGB/bin/pip3 install -U setuptools Collecting setuptools Downloading https://files.pythonhosted.org/packages/ff/f4/385715ccc461885f3cedf57a41ae3c12b5fec3f35cce4c8706b1a112a133/setuptools-40.0.0-py2.py3-none-any.whl (567kB) Installing collected packages: setuptools Found existing installation: setuptools 28.8.0 Uninstalling setuptools-28.8.0: Successfully uninstalled setuptools-28.8.0 Successfully installed setuptools-40.0.0 + /tmp/tmp.dDfBGB/bin/pip3 install -r requirements.txt Collecting flask==1.0.2 (from -r requirements.txt (line 1)) Downloading https://files.pythonhosted.org/packages/7f/e7/08578774ed4536d3242b14dacb4696386634607af824ea997202cd0edb4b/Flask-1.0.2-py2.py3-none-any.whl (91kB) Collecting Flask-SQLAlchemy==2.3.2 (from -r requirements.txt (line 2)) Downloading https://files.pythonhosted.org/packages/a1/44/294fb7f6bf49cc7224417cd0637018db9fee0729b4fe166e43e2bbb1f1c8/Flask_SQLAlchemy-2.3.2-py2.py3-none-any.whl Collecting Flask-Migrate==2.2.1 (from -r requirements.txt (line 3)) Downloading https://files.pythonhosted.org/packages/59/97/f681c9e43d2e2ace4881fa588d847cc25f47cc98f7400e237805d20d6f79/Flask_Migrate-2.2.1-py2.py3-none-any.whl Collecting Flask-Testing==0.7.1 (from -r requirements.txt (line 4)) Downloading https://files.pythonhosted.org/packages/04/78/c8cd18b08f2f1ca3eaea56a3f2f53bc0d146f7c8faed8c64a93bc09e586a/Flask-Testing-0.7.1.tar.gz (43kB) Collecting google_cloud_storage==1.10.0 (from -r requirements.txt (line 5)) Downloading https://files.pythonhosted.org/packages/d4/1a/8238dda1547b9b6156f4cfc7923558bb67d6c608a28d677d0dc070babd31/google_cloud_storage-1.10.0-py2.py3-none-any.whl (52kB) Collecting gunicorn==19.9.0 (from -r requirements.txt (line 6)) Downloading https://files.pythonhosted.org/packages/8c/da/b8dd8deb741bff556db53902d4706774c8e1e67265f69528c14c003644e6/gunicorn-19.9.0-py2.py3-none-any.whl (112kB) Collecting PyYAML==3.13 (from -r requirements.txt (line 7)) Downloading https://files.pythonhosted.org/packages/9e/a3/1d13970c3f36777c583f136c136f804d70f500168edc1edea6daa7200769/PyYAML-3.13.tar.gz (270kB) Collecting requests==2.19.1 (from -r requirements.txt (line 8)) Downloading https://files.pythonhosted.org/packages/65/47/7e02164a2a3db50ed6d8a6ab1d6d60b69c4c3fdf57a284257925dfc12bda/requests-2.19.1-py2.py3-none-any.whl (91kB) Collecting PyMySQL==0.9.2 (from -r requirements.txt (line 9)) Downloading https://files.pythonhosted.org/packages/a7/7d/682c4a7da195a678047c8f1c51bb7682aaedee1dca7547883c3993ca9282/PyMySQL-0.9.2-py2.py3-none-any.whl (47kB) Collecting wheel==0.31.1 (from -r requirements.txt (line 10)) Downloading https://files.pythonhosted.org/packages/81/30/e935244ca6165187ae8be876b6316ae201b71485538ffac1d718843025a9/wheel-0.31.1-py2.py3-none-any.whl (41kB) Collecting pykwalify==1.6.1 (from -r requirements.txt (line 11)) Downloading https://files.pythonhosted.org/packages/ce/d2/550d30b645425fd11e503d6e04fc19e91719941faf0e4e08a58d278b6345/pykwalify-1.6.1-py2.py3-none-any.whl Collecting python-dateutil==2.7.3 (from -r requirements.txt (line 12)) Downloading https://files.pythonhosted.org/packages/cf/f5/af2b09c957ace60dcfac112b669c45c8c97e32f94aa8b56da4c6d1682825/python_dateutil-2.7.3-py2.py3-none-any.whl (211kB) Collecting pytz==2018.5 (from -r requirements.txt (line 13)) Downloading https://files.pythonhosted.org/packages/30/4e/27c34b62430286c6d59177a0842ed90dc789ce5d1ed740887653b898779a/pytz-2018.5-py2.py3-none-any.whl (510kB) Collecting setproctitle==1.1.10 (from -r requirements.txt (line 14)) Downloading https://files.pythonhosted.org/packages/5a/0d/dc0d2234aacba6cf1a729964383e3452c52096dc695581248b548786f2b3/setproctitle-1.1.10.tar.gz Collecting cryptography==2.3 (from -r requirements.txt (line 15)) Downloading https://files.pythonhosted.org/packages/79/a2/61c8625f96c8582d3053f89368c483ba62e56233d055e58e372f94a393f0/cryptography-2.3.tar.gz (449kB) Collecting itsdangerous>=0.24 (from flask==1.0.2->-r requirements.txt (line 1)) Downloading https://files.pythonhosted.org/packages/dc/b4/a60bcdba945c00f6d608d8975131ab3f25b22f2bcfe1dab221165194b2d4/itsdangerous-0.24.tar.gz (46kB) Collecting Werkzeug>=0.14 (from flask==1.0.2->-r requirements.txt (line 1)) Downloading https://files.pythonhosted.org/packages/20/c4/12e3e56473e52375aa29c4764e70d1b8f3efa6682bef8d0aae04fe335243/Werkzeug-0.14.1-py2.py3-none-any.whl (322kB) Collecting Jinja2>=2.10 (from flask==1.0.2->-r requirements.txt (line 1)) Downloading https://files.pythonhosted.org/packages/7f/ff/ae64bacdfc95f27a016a7bed8e8686763ba4d277a78ca76f32659220a731/Jinja2-2.10-py2.py3-none-any.whl (126kB) Collecting click>=5.1 (from flask==1.0.2->-r requirements.txt (line 1)) Downloading https://files.pythonhosted.org/packages/34/c1/8806f99713ddb993c5366c362b2f908f18269f8d792aff1abfd700775a77/click-6.7-py2.py3-none-any.whl (71kB) Collecting SQLAlchemy>=0.8.0 (from Flask-SQLAlchemy==2.3.2->-r requirements.txt (line 2)) Downloading https://files.pythonhosted.org/packages/8a/c2/29491103fd971f3988e90ee3a77bb58bad2ae2acd6e8ea30a6d1432c33a3/SQLAlchemy-1.2.10.tar.gz (5.6MB) Collecting alembic>=0.7 (from Flask-Migrate==2.2.1->-r requirements.txt (line 3)) Downloading https://files.pythonhosted.org/packages/96/c7/a4129db460c3e0ea8fea0c9eb5de6680d38ea6b6dcffcb88898ae42e170a/alembic-1.0.0-py2.py3-none-any.whl (158kB) Collecting google-resumable-media>=0.3.1 (from google_cloud_storage==1.10.0->-r requirements.txt (line 5)) Downloading https://files.pythonhosted.org/packages/77/95/2e4020a54366423ddba715f89fb7ca456c8f048b15cada6cd6a54cf10e8c/google_resumable_media-0.3.1-py2.py3-none-any.whl Collecting google-cloud-core<0.29dev,>=0.28.0 (from google_cloud_storage==1.10.0->-r requirements.txt (line 5)) Downloading https://files.pythonhosted.org/packages/0f/41/ae2418b4003a14cf21c1c46d61d1b044bf02cf0f8f91598af572b9216515/google_cloud_core-0.28.1-py2.py3-none-any.whl Collecting google-api-core<2.0.0dev,>=0.1.1 (from google_cloud_storage==1.10.0->-r requirements.txt (line 5)) Downloading https://files.pythonhosted.org/packages/ab/d0/8393a844c1a4cf9f74908ca1b1a137665519157643e15e112a4a21b71d56/google_api_core-1.3.0-py2.py3-none-any.whl (51kB) Collecting urllib3<1.24,>=1.21.1 (from requests==2.19.1->-r requirements.txt (line 8)) Downloading https://files.pythonhosted.org/packages/bd/c9/6fdd990019071a4a32a5e7cb78a1d92c53851ef4f56f62a3486e6a7d8ffb/urllib3-1.23-py2.py3-none-any.whl (133kB) Collecting certifi>=2017.4.17 (from requests==2.19.1->-r requirements.txt (line 8)) Downloading https://files.pythonhosted.org/packages/7c/e6/92ad559b7192d846975fc916b65f667c7b8c3a32bea7372340bfe9a15fa5/certifi-2018.4.16-py2.py3-none-any.whl (150kB) Collecting idna<2.8,>=2.5 (from requests==2.19.1->-r requirements.txt (line 8)) Downloading https://files.pythonhosted.org/packages/4b/2a/0276479a4b3caeb8a8c1af2f8e4355746a97fab05a372e4a2c6a6b876165/idna-2.7-py2.py3-none-any.whl (58kB) Collecting chardet<3.1.0,>=3.0.2 (from requests==2.19.1->-r requirements.txt (line 8)) Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133kB) Collecting docopt>=0.6.2 (from pykwalify==1.6.1->-r requirements.txt (line 11)) Downloading https://files.pythonhosted.org/packages/a2/55/8f8cab2afd404cf578136ef2cc5dfb50baa1761b68c9da1fb1e4eed343c9/docopt-0.6.2.tar.gz Collecting six>=1.5 (from python-dateutil==2.7.3->-r requirements.txt (line 12)) Downloading https://files.pythonhosted.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl Collecting asn1crypto>=0.21.0 (from cryptography==2.3->-r requirements.txt (line 15)) Downloading https://files.pythonhosted.org/packages/ea/cd/35485615f45f30a510576f1a56d1e0a7ad7bd8ab5ed7cdc600ef7cd06222/asn1crypto-0.24.0-py2.py3-none-any.whl (101kB) Collecting cffi!=1.11.3,>=1.7 (from cryptography==2.3->-r requirements.txt (line 15)) Downloading https://files.pythonhosted.org/packages/e7/a7/4cd50e57cc6f436f1cc3a7e8fa700ff9b8b4d471620629074913e3735fb2/cffi-1.11.5.tar.gz (438kB) Collecting MarkupSafe>=0.23 (from Jinja2>=2.10->flask==1.0.2->-r requirements.txt (line 1)) Downloading https://files.pythonhosted.org/packages/4d/de/32d741db316d8fdb7680822dd37001ef7a448255de9699ab4bfcbdf4172b/MarkupSafe-1.0.tar.gz Collecting Mako (from alembic>=0.7->Flask-Migrate==2.2.1->-r requirements.txt (line 3)) Downloading https://files.pythonhosted.org/packages/eb/f3/67579bb486517c0d49547f9697e36582cd19dafb5df9e687ed8e22de57fa/Mako-1.0.7.tar.gz (564kB) Collecting python-editor>=0.3 (from alembic>=0.7->Flask-Migrate==2.2.1->-r requirements.txt (line 3)) Downloading https://files.pythonhosted.org/packages/65/1e/adf6e000ea5dc909aa420352d6ba37f16434c8a3c2fa030445411a1ed545/python-editor-1.0.3.tar.gz Collecting protobuf>=3.0.0 (from google-api-core<2.0.0dev,>=0.1.1->google_cloud_storage==1.10.0->-r requirements.txt (line 5)) Downloading https://files.pythonhosted.org/packages/85/f8/d09e4bf21c4de65405ce053e90542e728c5b7cf296b9df36b0bf0488f534/protobuf-3.6.0-py2.py3-none-any.whl (390kB) Collecting google-auth<2.0.0dev,>=0.4.0 (from google-api-core<2.0.0dev,>=0.1.1->google_cloud_storage==1.10.0->-r requirements.txt (line 5)) Downloading https://files.pythonhosted.org/packages/58/cb/96dbb4e50e7a9d856e89cc9c8e36ab1055f9774f7d85f37e2156c1d79d9f/google_auth-1.5.1-py2.py3-none-any.whl (65kB) Collecting googleapis-common-protos<2.0dev,>=1.5.3 (from google-api-core<2.0.0dev,>=0.1.1->google_cloud_storage==1.10.0->-r requirements.txt (line 5)) Downloading https://files.pythonhosted.org/packages/00/03/d25bed04ec8d930bcfa488ba81a2ecbf7eb36ae3ffd7e8f5be0d036a89c9/googleapis-common-protos-1.5.3.tar.gz Requirement already satisfied: setuptools>=34.0.0 in /tmp/tmp.dDfBGB/lib/python3.5/site-packages (from google-api-core<2.0.0dev,>=0.1.1->google_cloud_storage==1.10.0->-r requirements.txt (line 5)) (40.0.0) Collecting pycparser (from cffi!=1.11.3,>=1.7->cryptography==2.3->-r requirements.txt (line 15)) Downloading https://files.pythonhosted.org/packages/8c/2d/aad7f16146f4197a11f8e91fb81df177adcc2073d36a17b1491fd09df6ed/pycparser-2.18.tar.gz (245kB) Collecting pyasn1-modules>=0.2.1 (from google-auth<2.0.0dev,>=0.4.0->google-api-core<2.0.0dev,>=0.1.1->google_cloud_storage==1.10.0->-r requirements.txt (line 5)) Downloading https://files.pythonhosted.org/packages/19/02/fa63f7ba30a0d7b925ca29d034510fc1ffde53264b71b4155022ddf3ab5d/pyasn1_modules-0.2.2-py2.py3-none-any.whl (62kB) Collecting rsa>=3.1.4 (from google-auth<2.0.0dev,>=0.4.0->google-api-core<2.0.0dev,>=0.1.1->google_cloud_storage==1.10.0->-r requirements.txt (line 5)) Downloading https://files.pythonhosted.org/packages/e1/ae/baedc9cb175552e95f3395c43055a6a5e125ae4d48a1d7a924baca83e92e/rsa-3.4.2-py2.py3-none-any.whl (46kB) Collecting cachetools>=2.0.0 (from google-auth<2.0.0dev,>=0.4.0->google-api-core<2.0.0dev,>=0.1.1->google_cloud_storage==1.10.0->-r requirements.txt (line 5)) Downloading https://files.pythonhosted.org/packages/0a/58/cbee863250b31d80f47401d04f34038db6766f95dea1cc909ea099c7e571/cachetools-2.1.0-py2.py3-none-any.whl Collecting pyasn1<0.5.0,>=0.4.1 (from pyasn1-modules>=0.2.1->google-auth<2.0.0dev,>=0.4.0->google-api-core<2.0.0dev,>=0.1.1->google_cloud_storage==1.10.0->-r requirements.txt (line 5)) Downloading https://files.pythonhosted.org/packages/d1/a1/7790cc85db38daa874f6a2e6308131b9953feb1367f2ae2d1123bb93a9f5/pyasn1-0.4.4-py2.py3-none-any.whl (72kB) Installing collected packages: itsdangerous, Werkzeug, MarkupSafe, Jinja2, click, flask, SQLAlchemy, Flask-SQLAlchemy, Mako, python-editor, six, python-dateutil, alembic, Flask-Migrate, Flask-Testing, google-resumable-media, protobuf, pyasn1, pyasn1-modules, rsa, cachetools, google-auth, googleapis-common-protos, pytz, urllib3, certifi, idna, chardet, requests, google-api-core, google-cloud-core, google-cloud-storage, gunicorn, PyYAML, asn1crypto, pycparser, cffi, cryptography, PyMySQL, wheel, docopt, pykwalify, setproctitle Running setup.py install for itsdangerous: started Running setup.py install for itsdangerous: finished with status 'done' Running setup.py install for MarkupSafe: started Running setup.py install for MarkupSafe: finished with status 'done' Running setup.py install for SQLAlchemy: started Running setup.py install for SQLAlchemy: finished with status 'done' Running setup.py install for Mako: started Running setup.py install for Mako: finished with status 'done' Running setup.py install for python-editor: started Running setup.py install for python-editor: finished with status 'done' Running setup.py install for Flask-Testing: started Running setup.py install for Flask-Testing: finished with status 'done' Running setup.py install for googleapis-common-protos: started Running setup.py install for googleapis-common-protos: finished with status 'done' Running setup.py install for PyYAML: started Running setup.py install for PyYAML: finished with status 'done' Running setup.py install for pycparser: started Running setup.py install for pycparser: finished with status 'done' Running setup.py install for cffi: started Running setup.py install for cffi: finished with status 'done' Running setup.py install for cryptography: started Running setup.py install for cryptography: finished with status 'done' Running setup.py install for docopt: started Running setup.py install for docopt: finished with status 'done' Running setup.py install for setproctitle: started Running setup.py install for setproctitle: finished with status 'done' Successfully installed Flask-Migrate-2.2.1 Flask-SQLAlchemy-2.3.2 Flask-Testing-0.7.1 Jinja2-2.10 Mako-1.0.7 MarkupSafe-1.0 PyMySQL-0.9.2 PyYAML-3.13 SQLAlchemy-1.2.10 Werkzeug-0.14.1 alembic-1.0.0 asn1crypto-0.24.0 cachetools-2.1.0 certifi-2018.4.16 cffi-1.11.5 chardet-3.0.4 click-6.7 cryptography-2.3 docopt-0.6.2 flask-1.0.2 google-api-core-1.3.0 google-auth-1.5.1 google-cloud-core-0.28.1 google-cloud-storage-1.10.0 google-resumable-media-0.3.1 googleapis-common-protos-1.5.3 gunicorn-19.9.0 idna-2.7 itsdangerous-0.24 protobuf-3.6.0 pyasn1-0.4.4 pyasn1-modules-0.2.2 pycparser-2.18 pykwalify-1.6.1 python-dateutil-2.7.3 python-editor-1.0.3 pytz-2018.5 requests-2.19.1 rsa-3.4.2 setproctitle-1.1.10 six-1.11.0 urllib3-1.23 wheel-0.31.1 + PYTHONPATH=./ /tmp/tmp.dDfBGB/bin/python3 -m unittest discover -v test_prepare_mounts (tests.runner.test_handler_git.GitPollerHandlerTest) Ensure we can clone a repo and check it the proper sha. ... Initialized empty Git repository in /tmp/tmpum3qq0hl/repo-src/.git/ [master (root-commit) 3854333] 1 1 file changed, 1 insertion(+) create mode 100644 file1.txt [master 68a370c] 2 1 file changed, 1 insertion(+) Cloning into '/tmp/tmpum3qq0hl/run/repo'... done. Switched to branch 'jobserv-run' ok test_prepare_mounts_bad_clone (tests.runner.test_handler_git.GitPollerHandlerTest) Ensure we can clone a repo and check it the proper sha. ... fatal: repository '/tmp/foo-bar-does-not-existz' does not exist ok test_prepare_mounts_bad_sha (tests.runner.test_handler_git.GitPollerHandlerTest) Ensure we can clone a repo and check it the proper sha. ... Initialized empty Git repository in /tmp/tmpaqrj5laj/repo-src/.git/ [master (root-commit) 3854333] 1 1 file changed, 1 insertion(+) create mode 100644 file1.txt [master 68a370c] 2 1 file changed, 1 insertion(+) Cloning into '/tmp/tmpaqrj5laj/run/repo'... done. fatal: Not a valid object name: 'badbeef'. ok test_prepare_mounts (tests.runner.test_handler_lava.LavaHandlerTest) Ensure we create lava scripts and secrets. ... /repo/tests/runner/test_handler_lava.py:51: ResourceWarning: unclosed file <_io.TextIOWrapper name='/tmp/tmpjjex8xe9/run/secrets/H_RUN_URL' mode='r' encoding='UTF-8'> self.assertEqual(val, open(p).read()) /repo/tests/runner/test_handler_lava.py:51: ResourceWarning: unclosed file <_io.TextIOWrapper name='/tmp/tmpjjex8xe9/run/secrets/H_RUN_TOKEN' mode='r' encoding='UTF-8'> self.assertEqual(val, open(p).read()) ok test_requires_tokens (tests.runner.test_handler_lava.LavaHandlerTest) Ensure runs exit if missing lava tokens. ... ok test_prepare_mounts (tests.runner.test_handler_lava_pr.LavaPRHandlerTest) Ensure we create lava scripts and secrets. ... /repo/tests/runner/test_handler_lava_pr.py:61: ResourceWarning: unclosed file <_io.TextIOWrapper name='/tmp/tmpw4p9i2cy/run/secrets/H_RUN_URL' mode='r' encoding='UTF-8'> self.assertEqual(val, open(p).read()) /repo/tests/runner/test_handler_lava_pr.py:61: ResourceWarning: unclosed file <_io.TextIOWrapper name='/tmp/tmpw4p9i2cy/run/secrets/H_RUN_TOKEN' mode='r' encoding='UTF-8'> self.assertEqual(val, open(p).read()) ok test_requires_tokens (tests.runner.test_handler_lava_pr.LavaPRHandlerTest) Ensure runs exit if missing lava tokens. ... ok test_docker_login (tests.runner.test_handler_simple.SimpleHandlerTest) Ensure we handle private containers. ... ok test_docker_pull_fails (tests.runner.test_handler_simple.SimpleHandlerTest) Ensure we handle a bad container pull properly. ... ok test_docker_run (tests.runner.test_handler_simple.SimpleHandlerTest) Sort of a long test, but it really executes the whole thing. ... skipped 'Docker not available' test_exec (tests.runner.test_handler_simple.SimpleHandlerTest) ... == 2018-08-07 19:19:53.502072: test-execzZZ ok test_execute_expected (tests.runner.test_handler_simple.SimpleHandlerTest) Ensure we do proper logging for for HandlerErrors. ... ok test_execute_success (tests.runner.test_handler_simple.SimpleHandlerTest) Ensure we do proper logging of a run that passes ... ok test_execute_unexpected (tests.runner.test_handler_simple.SimpleHandlerTest) Ensure we do proper logging for unexpected errors. ... ok test_prepare_mounts (tests.runner.test_handler_simple.SimpleHandlerTest) Ensure we create mount directories as needed ... /repo/tests/runner/test_handler_simple.py:153: ResourceWarning: unclosed file <_io.TextIOWrapper name='/tmp/tmpy1s2z8r_/run/secrets/foo' mode='r' encoding='UTF-8'> self.assertEqual('foo-secret-value', open(secret_file).read()) ok test_prepare_mounts_null (tests.runner.test_handler_simple.SimpleHandlerTest) Ensure we can handle Null values ... ok test_prepare_mounts_unexpected (tests.runner.test_handler_simple.SimpleHandlerTest) Ensure the run is failed upon unexpected prepare_mounts error ... ok test_prepare_script_repo (tests.runner.test_handler_simple.SimpleHandlerTest) Ensure we set up a proper environment for script-repo runs. ... Cloning into '/tmp/tmpw4qfy40b/run/script-repo'... done. Branch 'master' set up to track remote branch 'master' from 'origin'. Switched to a new branch 'master' ok test_error (tests.runner.test_logging.LoggerTest) ... 2018-08-07 19:19:53.531196: ERROR foo bar ok test_info (tests.runner.test_logging.LoggerTest) ... 2018-08-07 19:19:53.531334: INFO foo bar ok test_warn (tests.runner.test_logging.LoggerTest) ... 2018-08-07 19:19:53.531407: WARN foo bar ok test_build_get (tests.test_api_build.BuildAPITest) ... ok test_build_get_definition (tests.test_api_build.BuildAPITest) ... ok test_build_get_latest (tests.test_api_build.BuildAPITest) ... ok test_build_list (tests.test_api_build.BuildAPITest) ... ok test_build_list_paginate (tests.test_api_build.BuildAPITest) ... ok test_build_trigger_fails (tests.test_api_build.BuildAPITest) ... 2018-08-07 19:19:53,721 ERROR: Unexpected error caught in BP error handler Traceback (most recent call last): File "/tmp/tmp.dDfBGB/lib/python3.5/site-packages/flask/app.py", line 1813, in full_dispatch_request rv = self.dispatch_request() File "/tmp/tmp.dDfBGB/lib/python3.5/site-packages/flask/app.py", line 1799, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "/repo/jobserv/api/build.py", line 32, in build_create d.get('project-definition')) File "/repo/jobserv/trigger.py", line 73, in trigger_build proj_def = ProjectDefinition.validate_data(proj_def) File "/repo/jobserv/project.py", line 195, in validate_data c = Core(source_data=data, schema_files=[schema]) File "/tmp/tmp.dDfBGB/lib/python3.5/site-packages/pykwalify/core.py", line 114, in __init__ raise CoreError(u"No source file/data was loaded") pykwalify.errors.CoreError: ok test_no_builds (tests.test_api_build.BuildAPITest) ... ok test_promote_get (tests.test_api_build.BuildAPITest) ... ok test_promote_list (tests.test_api_build.BuildAPITest) ... ok test_promote_list_empty (tests.test_api_build.BuildAPITest) ... ok test_promote_post (tests.test_api_build.BuildAPITest) ... ok test_find_target_sha (tests.test_api_github.ApiTest) Ensure we return an ApiError on a failed GET ... ok test_get_proj_def_heracles (tests.test_api_github.ApiTest) Ensure no grossly bad python for the .jobserv.yml case ... ok test_get_proj_def_repo (tests.test_api_github.ApiTest) Ensure no grossly bad python for the definition_repo case ... ok test_run_health (tests.test_api_health.HealthApiTest) ... ok test_no_projects (tests.test_api_project.ProjectAPITest) ... ok test_project_create (tests.test_api_project.ProjectAPITest) ... ok test_project_create_denied (tests.test_api_project.ProjectAPITest) ... ok test_project_get (tests.test_api_project.ProjectAPITest) ... ok test_project_get_404 (tests.test_api_project.ProjectAPITest) ... ok test_project_list (tests.test_api_project.ProjectAPITest) ... ok test_project_permission (tests.test_api_project.ProjectAPITest) ... ok test_list_triggers (tests.test_api_project_triggers.ProjectTriggerAPITest) ... ok test_list_triggers_empty (tests.test_api_project_triggers.ProjectTriggerAPITest) ... ok test_list_triggers_no_auth (tests.test_api_project_triggers.ProjectTriggerAPITest) ... ok test_build_complete_email (tests.test_api_run.RunAPITest) ... ok test_build_complete_email_skip (tests.test_api_run.RunAPITest) ... /tmp/tmp.dDfBGB/lib/python3.5/site-packages/yaml/scanner.py:283: ResourceWarning: unclosed file <_io.TextIOWrapper name='/dev/null' mode='w' encoding='UTF-8'> for level in list(self.possible_simple_keys): ok test_build_complete_triggers (tests.test_api_run.RunAPITest) ... ok test_get_stream (tests.test_api_run.RunAPITest) ... /usr/local/lib/python3.5/unittest/mock.py:1159: ResourceWarning: unclosed file <_io.BufferedReader name='/tmp/tmp4dozi3pr/proj-1/1/run0/console.log'> return func(*args, **keywargs) ok test_no_runs (tests.test_api_run.RunAPITest) ... ok /tmp/tmp.dDfBGB/lib/python3.5/site-packages/werkzeug/routing.py:696: ResourceWarning: unclosed file <_io.TextIOWrapper name='/dev/null' mode='w' encoding='UTF-8'> return self.map.converters[converter_name](self.map, *args, **kwargs) test_run_complete_tests (tests.test_api_run.RunAPITest) ... ok test_run_complete_tests_default (tests.test_api_run.RunAPITest) ... ok test_run_complete_triggers (tests.test_api_run.RunAPITest) ... ok /usr/local/lib/python3.5/re.py:246: ResourceWarning: unclosed file <_io.TextIOWrapper name='/dev/null' mode='w' encoding='UTF-8'> s = list(pattern) test_run_complete_triggers_name_error (tests.test_api_run.RunAPITest) ... 2018-08-07 19:19:54,322 ERROR: Caught integrity error and failed run: 1 Traceback (most recent call last): File "/repo/jobserv/api/run.py", line 102, in _handle_triggers secrets, rt.get('triggers', [])) File "/repo/jobserv/api/run.py", line 60, in _create_triggers trigger_runs(storage, projdef, build, trigger, params, secrets) File "/repo/jobserv/trigger.py", line 30, in trigger_runs raise ValueError('A run named "%s" already exists' % name) ValueError: A run named "collision-name" already exists ok test_run_get (tests.test_api_run.RunAPITest) ... ok test_run_get_definition (tests.test_api_run.RunAPITest) Ensure unauthenticated requests redact the secrets ... ok test_run_list (tests.test_api_run.RunAPITest) ... ok test_run_metadata (tests.test_api_run.RunAPITest) ... ok test_run_stream (tests.test_api_run.RunAPITest) ... ok test_run_stream_not_authenticated (tests.test_api_run.RunAPITest) ... ok test_upload (tests.test_api_run.RunAPITest) ... ok test_find_incomplete (tests.test_api_test.TestAPITest) ... ok test_test_create (tests.test_api_test.TestAPITest) ... ok test_test_find (tests.test_api_test.TestAPITest) ... ok test_test_get (tests.test_api_test.TestAPITest) ... ok test_test_list (tests.test_api_test.TestAPITest) ... ok test_test_update (tests.test_api_test.TestAPITest) ... ok test_test_update_duplicate (tests.test_api_test.TestAPITest) Ensure tests with same name can filter by context. ... ok test_test_update_multiple (tests.test_api_test.TestAPITest) ... /tmp/tmp.dDfBGB/lib/python3.5/site-packages/sqlalchemy/orm/query.py:3835: ResourceWarning: unclosed file <_io.TextIOWrapper name='/dev/null' mode='w' encoding='UTF-8'> polymorphic_discriminator=self._polymorphic_discriminator ok test_test_update_with_results (tests.test_api_test.TestAPITest) ... ok test_worker_bad_auth (tests.test_api_worker.WorkerAPITest) ... ok test_worker_create (tests.test_api_worker.WorkerAPITest) ... ok test_worker_create_bad (tests.test_api_worker.WorkerAPITest) ... ok test_worker_get (tests.test_api_worker.WorkerAPITest) ... ok test_worker_get_run (tests.test_api_worker.WorkerAPITest) ... ok test_worker_list (tests.test_api_worker.WorkerAPITest) ... ok test_worker_log_event (tests.test_api_worker.WorkerAPITest) ... ok test_worker_needs_auth (tests.test_api_worker.WorkerAPITest) ... ok test_worker_ping (tests.test_api_worker.WorkerAPITest) ... 2018-08-07 19:19:55,019 ERROR: Unable to update metrics for w1 Traceback (most recent call last): File "/repo/jobserv/stats/carbon.py", line 52, in worker_ping v = int(v[0]) ValueError: invalid literal for int() with base 10: 'bar' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/repo/jobserv/models.py", line 667, in ping c.worker_ping(self, now, kwargs) File "/repo/jobserv/stats/carbon.py", line 54, in worker_ping v = float(v[0]) ValueError: could not convert string to float: 'bar' ok test_worker_update (tests.test_api_worker.WorkerAPITest) ... ok test_get_refs (tests.test_git_poller.TestGitPoller) ... ok test_get_refs_fatal (tests.test_git_poller.TestGitPoller) ... 2018-08-07 19:19:55,046 ERROR: Unable to check doesnot matter.git/info/refs?service=git-upload-pack for changes: 500 ok test_poll_add (tests.test_git_poller.TestGitPoller) ... 2018-08-07 19:19:55,046 INFO: Adding foo to poller list ok test_poll_remove (tests.test_git_poller.TestGitPoller) ... 2018-08-07 19:19:55,051 INFO: Removing foo from poller list ok test_poll_updated (tests.test_git_poller.TestGitPoller) ... 2018-08-07 19:19:55,052 INFO: Updating foo ok test_repo_changes_changed (tests.test_git_poller.TestGitPoller) ... 2018-08-07 19:19:55,053 INFO: Looking for changes to: url1 2018-08-07 19:19:55,054 INFO: url1 ref1 change oldsha->sha1 ok test_repo_changes_first_run (tests.test_git_poller.TestGitPoller) ... 2018-08-07 19:19:55,054 INFO: Looking for changes to: url1 2018-08-07 19:19:55,054 INFO: First run detected for url1 - ref1 2018-08-07 19:19:55,054 INFO: Looking for changes to: url1 2018-08-07 19:19:55,054 INFO: First run detected for url1 - ref2 ok test_check_run_fail (tests.test_lava_reactor.LavaReactorTest) ... 2018-08-07 19:19:55,068 INFO: Found completed test lava-id(12): test-url ok test_check_run_incomplete (tests.test_lava_reactor.LavaReactorTest) ... 2018-08-07 19:19:55,089 INFO: Found completed test lava-id(12): test-url ok test_check_run_norun (tests.test_lava_reactor.LavaReactorTest) ... ok test_check_run_pass (tests.test_lava_reactor.LavaReactorTest) ... 2018-08-07 19:19:55,131 INFO: Found completed test lava-id(12): test-url ok test_check_run_running (tests.test_lava_reactor.LavaReactorTest) ... ok test_download (tests.test_local_storage.LocalStorageTest) ... /usr/local/lib/python3.5/unittest/mock.py:1159: ResourceWarning: unclosed file <_io.BufferedReader name='/tmp/tmpk0bufudr/local-1/1/run1/file1.txt'> return func(*args, **keywargs) ok test_list (tests.test_local_storage.LocalStorageTest) ... ok test_list_empty (tests.test_local_storage.LocalStorageTest) ... ok test_upload (tests.test_local_storage.LocalStorageTest) ... /usr/local/lib/python3.5/unittest/mock.py:1159: ResourceWarning: unclosed file <_io.BufferedReader name='/tmp/tmp_ty7du_8/local-1/1/run1/foo.txt'> return func(*args, **keywargs) ok test_build_events (tests.test_models.BuildTest) ... ok test_create_build (tests.test_models.BuildTest) ... ok test_create_build_concurrency (tests.test_models.BuildTest) ... ok test_simple (tests.test_models.BuildTest) ... ok test_unique_build_id (tests.test_models.BuildTest) ... ok test_project_unique (tests.test_models.ProjectTest) ... ok test_simple (tests.test_models.ProjectTest) ... ok test_build_status_failed (tests.test_models.RunTest) ... ok test_build_status_passed (tests.test_models.RunTest) ... ok test_build_status_queued (tests.test_models.RunTest) ... ok test_build_status_running (tests.test_models.RunTest) ... ok test_build_status_running_failed (tests.test_models.RunTest) ... ok test_run_name (tests.test_models.RunTest) ... ok test_simple (tests.test_models.RunTest) ... ok test_complete (tests.test_models.TestsTest) ... ok test_empty (tests.test_models.TestsTest) ... ok test_not_complete (tests.test_models.TestsTest) ... ok test_not_queued (tests.test_models.TestsTest) Tests should never set a Run to the QUEUED state ... ok test_same_name (tests.test_models.TestsTest) ... ok test_bad_container_auth (tests.test_project.ProjectSchemaTest) ... ok test_bad_script (tests.test_project.ProjectSchemaTest) ... ok test_bad_script_mutual_exclusion (tests.test_project.ProjectSchemaTest) ... ok test_bad_script_repo (tests.test_project.ProjectSchemaTest) ... ok test_bad_trigger (tests.test_project.ProjectSchemaTest) ... ok test_examples (tests.test_project.ProjectSchemaTest) ... ok test_host_tag_rundef (tests.test_project.ProjectSchemaTest) ... ok test_host_tag_rundef_loopon (tests.test_project.ProjectSchemaTest) ... ok test_host_tag_rundef_loopon_bad (tests.test_project.ProjectSchemaTest) ... ok test_loop_on (tests.test_project.ProjectSchemaTest) ... ok test_recursive_build_trigger (tests.test_project.ProjectSchemaTest) ... ok test_recursive_run_trigger (tests.test_project.ProjectSchemaTest) ... ok test_run_name_too_long (tests.test_project.ProjectSchemaTest) ... ok test_script_repo_rundef (tests.test_project.ProjectSchemaTest) ... ok test_script_repo_token (tests.test_project.ProjectSchemaTest) ... ok test_simple_bad (tests.test_project.ProjectSchemaTest) ... 2018-08-07 19:19:56,567 ERROR: validation.invalid 2018-08-07 19:19:56,567 ERROR: --- All found errors --- 2018-08-07 19:19:56,567 ERROR: ["Cannot find required key 'timeout'. Path: ''"] ok test_get_build_stats (tests.test_sendmail.SendmailTest) ... ok test_notify_build_complete (tests.test_sendmail.SendmailTest) ... ok test_offline (tests.test_worker.TestWorkerMonitor) ... 2018-08-07 19:19:56,682 INFO: marking w1 offline 81s without a check-in ok test_offline_no_pings (tests.test_worker.TestWorkerMonitor) ... 2018-08-07 19:19:56,702 INFO: marking w1 offline (no pings log) ok test_rotate (tests.test_worker.TestWorkerMonitor) ... 2018-08-07 19:19:56,725 INFO: rotating pings log to: /tmp/tmpo00ir9ye/w1/pings.log.1533669596 ok test_surge_complex (tests.test_worker.TestWorkerMonitor) ... 2018-08-07 19:19:56,755 INFO: Entering surge support for armhf: count=1 2018-08-07 19:19:56,764 INFO: Exiting surge support for armhf 2018-08-07 19:19:56,764 INFO: Entering surge support for amd64: count=2 2018-08-07 19:19:56,766 INFO: Entering surge support for armhf: count=3 ok test_surge_simple (tests.test_worker.TestWorkerMonitor) ... 2018-08-07 19:19:56,793 INFO: Entering surge support for amd64: count=1 2018-08-07 19:19:56,798 INFO: Exiting surge support for amd64 ok ---------------------------------------------------------------------- Ran 139 tests in 9.366s OK (skipped=1) Unexpected Runner Error: Traceback (most recent call last): File "/repo/tests/runner/../../runner/jobserv_runner/handlers/simple.py", line 434, in execute h = clazz(worker_dir, run_dir, jobserv, rundef) File "/repo/tests/runner/test_handler_simple.py", line 21, in __init__ self.action() TypeError: 'NoneType' object is not callable ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_got_registered_once', '_static_folder', '_static_url_path', 'add_app_template_filter', 'add_app_template_global', 'add_app_template_test', 'add_url_rule', 'after_app_request', 'after_request', 'app_context_processor', 'app_errorhandler', 'app_template_filter', 'app_template_global', 'app_template_test', 'app_url_defaults', 'app_url_value_preprocessor', 'before_app_first_request', 'before_app_request', 'before_request', 'context_processor', 'deferred_functions', 'endpoint', 'errorhandler', 'get_send_file_max_age', 'has_static_folder', 'import_name', 'jinja_loader', 'json_decoder', 'json_encoder', 'make_setup_state', 'name', 'open_resource', 'record', 'record_once', 'register', 'register_error_handler', 'root_path', 'route', 'send_static_file', 'static_folder', 'static_url_path', 'subdomain', 'teardown_app_request', 'teardown_request', 'template_folder', 'url_defaults', 'url_prefix', 'url_value_preprocessor', 'url_values_defaults', 'warn_on_modifications'] + rm -rf /tmp/tmp.dDfBGB Script completed == 2018-08-07 19:19:57.597740: Finding artifacts to upload Uploading 0 items 0 bytes == 2018-08-07 19:19:58.046446: Runner has completed _ _ | \/ | \__|____|__/ | o o| Thumbs Up |___\/_|_____||_ | _____|__| | | |______| | | | | | | | | |_| |_|