Exporting environment variables Exporting TERM Exporting PAGER Exporting DISPLAY Exporting CI Exporting SEMAPHORE Exporting SEMAPHORE_PROJECT_NAME Exporting SEMAPHORE_PROJECT_ID Exporting SEMAPHORE_JOB_NAME Exporting SEMAPHORE_JOB_ID Exporting SEMAPHORE_AGENT_MACHINE_TYPE Exporting SEMAPHORE_AGENT_MACHINE_OS_IMAGE Exporting SEMAPHORE_AGENT_MACHINE_ENVIRONMENT_TYPE Exporting SEMAPHORE_ORGANIZATION_URL Exporting SEMAPHORE_ARTIFACT_TOKEN Exporting SSH_PRIVATE_KEY_PATH Exporting SEMAPHORE_CACHE_PRIVATE_KEY_PATH Exporting SEMAPHORE_CACHE_USERNAME Exporting SEMAPHORE_CACHE_URL Exporting SEMAPHORE_GIT_URL Exporting SEMAPHORE_GIT_DIR Exporting SEMAPHORE_GIT_SHA Exporting SEMAPHORE_GIT_REPO_SLUG Exporting SEMAPHORE_GIT_REF Exporting SEMAPHORE_GIT_COMMIT_RANGE Exporting SEMAPHORE_GIT_REF_TYPE Exporting SEMAPHORE_GIT_BRANCH Exporting SEMAPHORE_GIT_PR_SLUG Exporting SEMAPHORE_GIT_PR_SHA Exporting SEMAPHORE_GIT_PR_NUMBER Exporting SEMAPHORE_GIT_PR_NAME Exporting SEMAPHORE_GIT_PR_BRANCH Exporting SEMAPHORE_WORKFLOW_ID Exporting SEMAPHORE_WORKFLOW_NUMBER Exporting SEMAPHORE_WORKFLOW_RERUN Exporting SEMAPHORE_WORKFLOW_TRIGGERED_BY_HOOK Exporting SEMAPHORE_WORKFLOW_HOOK_SOURCE Exporting SEMAPHORE_WORKFLOW_TRIGGERED_BY_SCHEDULE Exporting SEMAPHORE_WORKFLOW_TRIGGERED_BY_API Exporting SEMAPHORE_PIPELINE_ARTEFACT_ID Exporting SEMAPHORE_PIPELINE_ID Exporting SEMAPHORE_PIPELINE_RERUN Exporting SEMAPHORE_PIPELINE_PROMOTION Exporting SEMAPHORE_PIPELINE_PROMOTED_BY Exporting SEMAPHORE_PIPELINE_0_ARTEFACT_ID Exporting DATABASE_URL Exporting DURATION Exporting CONCURRENCIES Exporting ROUTES Injecting Files Injecting /home/semaphore/.ssh/semaphore_cache_key with file mode 0600 Injecting .ssh/id_rsa with file mode 0600 Setting up the Semaphore toolbox Running: dowloadPath=$(curl -s -L --retry 5 http://packages.semaphoreci.com/toolbox/linux) && echo $dowloadPath && curl -s -L --retry 5 --connect-timeout 3 $dowloadPath -o /tmp/toolbox.tar && tar -xvf /tmp/toolbox.tar && mv toolbox ~/.toolbox && bash ~/.toolbox/install-toolbox && source ~/.toolbox/toolbox && echo 'source ~/.toolbox/toolbox' >> ~/.bash_profile && if [ -f /etc/init.d/xvfb ]; then /etc/init.d/xvfb start; fi https://github.com/semaphoreci/toolbox/releases/download/v1.8.2/linux.tar toolbox/ toolbox/when toolbox/sem-dockerize toolbox/libchecksum toolbox/README.md toolbox/ssh-session-cli toolbox/test-results toolbox/retry toolbox/spc toolbox/sem-service toolbox/system-metrics-collector toolbox/artifact toolbox/sem-install toolbox/install-package toolbox/sem-version toolbox/sem-service-check-params toolbox/cache toolbox/toolbox toolbox/install-toolbox toolbox/libcheckout retry installed ssh-session-cli installed cache installed sem-service installed sem-dockerize installed sem-service-check-params installed install-package installed Installing the artifacts CLI artifacts installed Installing the test results CLI test-results installed Installing the SPC CLI spc installed Installing the when CLI when installed Starting to collect System Metrics in /tmp/system-metrics Starting virtual X frame buffer: Xvfb. Starting an ssh-agent Running: eval `ssh-agent` && echo 'eval $(ssh-agent) >/dev/null' >> ~/.bash_profile && echo 'yes' > /tmp/sempahore-user-commands-have-started Agent pid 2436 Connecting to cache Running: ssh-keyscan -p 29920 -H 94.130.123.200 >> /home/semaphore/.ssh/known_hosts && ssh-add /home/semaphore/.ssh/semaphore_cache_key # 94.130.123.200:29920 SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3 # 94.130.123.200:29920 SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3 # 94.130.123.200:29920 SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3 Identity added: /home/semaphore/.ssh/semaphore_cache_key (/home/semaphore/.ssh/semaphore_cache_key) cache restore $SEMAPHORE_GIT_SHA HIT: c9e8490b080abd87f1daf0d47df221a623ec2874, using key c9e8490b080abd87f1daf0d47df221a623ec2874 Cache download time: 2 seconds Restored: ./ cache restore wrk HIT: wrk, using key wrk Cache download time: 3 seconds Restored: wrk sudo install wrk /usr/local/bin cache restore bin MISS: bin cache restore built-in MISS: built-in sem-service start postgres Starting postgres...done. PostgreSQL 9.6 is running at 0.0.0.0:5432 To access it use username 'postgres' and blank password. createdb -U postgres -h 0.0.0.0 benchmark psql -U postgres -h 0.0.0.0 -d benchmark < dump.sql SET SET SET SET SET set_config ------------ (1 row) SET SET SET SET SET SET CREATE TABLE ALTER TABLE CREATE TABLE ALTER TABLE CREATE SEQUENCE ALTER TABLE ALTER SEQUENCE CREATE TABLE ALTER TABLE CREATE SEQUENCE ALTER TABLE ALTER SEQUENCE CREATE TABLE ALTER TABLE CREATE SEQUENCE ALTER TABLE ALTER SEQUENCE CREATE TABLE ALTER TABLE CREATE SEQUENCE ALTER TABLE ALTER SEQUENCE CREATE TABLE ALTER TABLE CREATE TABLE ALTER TABLE CREATE TABLE ALTER TABLE CREATE SEQUENCE ALTER TABLE ALTER SEQUENCE CREATE TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE COPY 1 COPY 0 COPY 0 COPY 0 COPY 0 COPY 0 COPY 2 COPY 0 COPY 0 setval -------- 1 (1 row) setval -------- 1 (1 row) setval -------- 1 (1 row) setval -------- 1 (1 row) setval -------- 1 (1 row) ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX bundle config path .cache bundle install Fetching gem metadata from https://rubygems.org/......... Resolving dependencies... Fetching rake 13.0.3 Installing rake 13.0.3 Fetching concurrent-ruby 1.1.8 Installing concurrent-ruby 1.1.8 Fetching i18n 1.8.10 Installing i18n 1.8.10 Fetching minitest 5.14.4 Installing minitest 5.14.4 Fetching tzinfo 2.0.4 Installing tzinfo 2.0.4 Fetching zeitwerk 2.4.2 Installing zeitwerk 2.4.2 Fetching activesupport 6.1.3.2 Installing activesupport 6.1.3.2 Fetching ast 2.4.2 Installing ast 2.4.2 Fetching bigdecimal 3.0.2 Installing bigdecimal 3.0.2 with native extensions Using bundler 2.1.4 Fetching diff-lcs 1.4.4 Installing diff-lcs 1.4.4 Fetching dotenv 2.7.6 Installing dotenv 2.7.6 Fetching rchardet 1.8.0 Installing rchardet 1.8.0 Fetching git 1.8.1 Installing git 1.8.1 Fetching mustache 1.1.1 Installing mustache 1.1.1 Fetching open3 0.1.1 Installing open3 0.1.1 Fetching parallel 1.20.1 Installing parallel 1.20.1 Fetching parser 3.0.1.1 Installing parser 3.0.1.1 Fetching pg 1.2.3 Installing pg 1.2.3 with native extensions Fetching rainbow 3.0.0 Installing rainbow 3.0.0 Fetching regexp_parser 2.1.1 Installing regexp_parser 2.1.1 Fetching rexml 3.2.5 Installing rexml 3.2.5 Fetching rspec-support 3.10.2 Installing rspec-support 3.10.2 Fetching rspec-core 3.10.1 Installing rspec-core 3.10.1 Fetching rspec-expectations 3.10.1 Installing rspec-expectations 3.10.1 Fetching rspec-mocks 3.10.2 Installing rspec-mocks 3.10.2 Fetching rspec 3.10.0 Installing rspec 3.10.0 Fetching rubocop-ast 1.5.0 Installing rubocop-ast 1.5.0 Fetching ruby-progressbar 1.11.0 Installing ruby-progressbar 1.11.0 Fetching unicode-display_width 2.0.0 Installing unicode-display_width 2.0.0 Fetching rubocop 1.14.0 Installing rubocop 1.14.0 Fetching rubocop-rake 0.5.1 Installing rubocop-rake 0.5.1 Fetching rubocop-rspec 2.3.0 Installing rubocop-rspec 2.3.0 Bundle complete! 12 Gemfile dependencies, 33 gems now installed. Bundled gems are installed into `./.cache` bundle exec rake config cd python/clastic && make build -f .Makefile && cd - docker build -f .Dockerfile -t python.clastic . Sending build context to Docker daemon 6.144kB Step 1/6 : FROM python:3.9-alpine 3.9-alpine: Pulling from library/python  540db60ca938: Pulling fs layer   d037ddac5dde: Pulling fs layer   629719f9106a: Pulling fs layer   f9ef3a05a91e: Pulling fs layer   a953f4282204: Pulling fs layer  f9ef3a05a91e: Waiting  a953f4282204: Waiting  d037ddac5dde: Downloading 6.845kB/656.2kB  540db60ca938: Downloading 29.36kB/2.812MB  629719f9106a: Downloading 114.5kB/11.45MB  d037ddac5dde: Verifying Checksum  d037ddac5dde: Download complete  540db60ca938: Verifying Checksum  540db60ca938: Download complete  540db60ca938: Extracting 32.77kB/2.812MB  629719f9106a: Downloading 6.413MB/11.45MB  629719f9106a: Verifying Checksum  629719f9106a: Download complete  540db60ca938: Extracting 720.9kB/2.812MB  540db60ca938: Extracting 2.812MB/2.812MB  540db60ca938: Pull complete  d037ddac5dde: Extracting 32.77kB/656.2kB  d037ddac5dde: Extracting 557.1kB/656.2kB  d037ddac5dde: Extracting 656.2kB/656.2kB  d037ddac5dde: Pull complete  629719f9106a: Extracting 131.1kB/11.45MB  629719f9106a: Extracting 2.621MB/11.45MB  629719f9106a: Extracting 7.602MB/11.45MB  629719f9106a: Extracting 11.14MB/11.45MB  629719f9106a: Extracting 11.45MB/11.45MB  629719f9106a: Pull complete  f9ef3a05a91e: Downloading 231B/231B  f9ef3a05a91e: Verifying Checksum  f9ef3a05a91e: Download complete  a953f4282204: Downloading 23.88kB/2.312MB  f9ef3a05a91e: Extracting 231B/231B  f9ef3a05a91e: Extracting 231B/231B  a953f4282204: Downloading 2.312MB/2.312MB  a953f4282204: Verifying Checksum  a953f4282204: Download complete  f9ef3a05a91e: Pull complete  a953f4282204: Extracting 32.77kB/2.312MB  a953f4282204: Extracting 1.049MB/2.312MB  a953f4282204: Extracting 2.312MB/2.312MB  a953f4282204: Pull complete Digest: sha256:f189f7366b0d381bf6186b2a2c3d37f143c587e0da2e8dcc21a732bddf4e6f7b Status: Downloaded newer image for python:3.9-alpine ---> 95795c6eb47f Step 2/6 : RUN apk add build-base ---> Running in 029116ec511c fetch https://dl-cdn.alpinelinux.org/alpine/v3.13/main/x86_64/APKINDEX.tar.gz fetch https://dl-cdn.alpinelinux.org/alpine/v3.13/community/x86_64/APKINDEX.tar.gz (1/20) Installing libgcc (10.2.1_pre1-r3) (2/20) Installing libstdc++ (10.2.1_pre1-r3) (3/20) Installing binutils (2.35.2-r1) (4/20) Installing libmagic (5.39-r0) (5/20) Installing file (5.39-r0) (6/20) Installing libgomp (10.2.1_pre1-r3) (7/20) Installing libatomic (10.2.1_pre1-r3) (8/20) Installing libgphobos (10.2.1_pre1-r3) (9/20) Installing gmp (6.2.1-r0) (10/20) Installing isl22 (0.22-r0) (11/20) Installing mpfr4 (4.1.0-r0) (12/20) Installing mpc1 (1.2.0-r0) (13/20) Installing gcc (10.2.1_pre1-r3) (14/20) Installing musl-dev (1.2.2-r0) (15/20) Installing libc-dev (0.7.2-r3) (16/20) Installing g++ (10.2.1_pre1-r3) (17/20) Installing make (4.3-r0) (18/20) Installing fortify-headers (1.1-r0) (19/20) Installing patch (2.7.6-r6) (20/20) Installing build-base (0.5-r2) Executing busybox-1.32.1-r6.trigger OK: 204 MiB in 56 packages Removing intermediate container 029116ec511c ---> 7000c911fe69 Step 3/6 : WORKDIR /usr/src/app ---> Running in a3a572965737 Removing intermediate container a3a572965737 ---> d148203d4816 Step 4/6 : COPY . ./ ---> f80e4fa6dc48 Step 5/6 : RUN pip install -r requirements.txt ---> Running in 311e0090f0e2 Collecting clastic<22.0,>=21.0 Downloading clastic-21.0.0-py2.py3-none-any.whl (150 kB) Collecting gunicorn Downloading gunicorn-20.1.0-py3-none-any.whl (79 kB) Collecting meinheld Downloading meinheld-1.0.2.tar.gz (83 kB) Collecting boltons>=18.0.0 Downloading boltons-20.2.1-py2.py3-none-any.whl (170 kB) Collecting secure-cookie Downloading secure_cookie-0.1.0-py2.py3-none-any.whl (11 kB) Collecting Werkzeug<2.0,>=1.0.0 Downloading Werkzeug-1.0.1-py2.py3-none-any.whl (298 kB) Collecting glom Downloading glom-20.11.0-py2.py3-none-any.whl (97 kB) Collecting ashes Downloading ashes-19.2.0.tar.gz (26 kB) Requirement already satisfied: setuptools>=3.0 in /usr/local/lib/python3.9/site-packages (from gunicorn->-r requirements.txt (line 2)) (56.0.0) Collecting greenlet<0.5,>=0.4.5 Downloading greenlet-0.4.17.tar.gz (61 kB) Collecting face>=20.1.0 Downloading face-20.1.1.tar.gz (46 kB) Collecting attrs Downloading attrs-21.2.0-py2.py3-none-any.whl (53 kB) Building wheels for collected packages: meinheld, greenlet, ashes, face Building wheel for meinheld (setup.py): started Building wheel for meinheld (setup.py): finished with status 'done' Created wheel for meinheld: filename=meinheld-1.0.2-cp39-cp39-linux_x86_64.whl size=69357 sha256=5cb31e069dfdb873fd0d90a0708cc8a0efb640b7dcc4f7d46ac2d707c3a2af6a Stored in directory: /root/.cache/pip/wheels/cf/f2/16/10fefb71d6f4df777ff4f678de0c30e148233e8d65a6969da7 Building wheel for greenlet (setup.py): started Building wheel for greenlet (setup.py): finished with status 'done' Created wheel for greenlet: filename=greenlet-0.4.17-cp39-cp39-linux_x86_64.whl size=18578 sha256=6d7e5c07b7f2796928254d608fbaf497b29eaeed77c18d3bec9214e6af675026 Stored in directory: /root/.cache/pip/wheels/9d/57/c1/e801430741639b9be449a6643c8be3210d68f066446504cb5f Building wheel for ashes (setup.py): started Building wheel for ashes (setup.py): finished with status 'done' Created wheel for ashes: filename=ashes-19.2.0-py3-none-any.whl size=42858 sha256=af7d39941d0b3858aa06e9ec2838b8c6b39e7a2a8ee488c03a9e0b5a391431b5 Stored in directory: /root/.cache/pip/wheels/e8/0e/ba/a29c690d94e2cd89bf07cb6a4c5aef2348a910862b4c6060bc Building wheel for face (setup.py): started Building wheel for face (setup.py): finished with status 'done' Created wheel for face: filename=face-20.1.1-py3-none-any.whl size=51078 sha256=8b99b527f88f33dcc882ed6cb1a3839ef12608f1e2bd586c7cbeeeddbd631253 Stored in directory: /root/.cache/pip/wheels/0b/80/b2/3c1246291c89bce05b70c927e249dac03252caaaa5dcd9d07e Successfully built meinheld greenlet ashes face Installing collected packages: boltons, Werkzeug, face, attrs, secure-cookie, greenlet, glom, ashes, meinheld, gunicorn, clastic Successfully installed Werkzeug-1.0.1 ashes-19.2.0 attrs-21.2.0 boltons-20.2.1 clastic-21.0.0 face-20.1.1 glom-20.11.0 greenlet-0.4.17 gunicorn-20.1.0 meinheld-1.0.2 secure-cookie-0.1.0 WARNING: Running pip as root will break packages and permissions. You should install packages reliably by using venv: https://pip.pypa.io/warnings/venv Removing intermediate container 311e0090f0e2 ---> 2a47002f1241 Step 6/6 : CMD gunicorn --log-level warning --bind 0.0.0.0:3000 --reuse-port --workers $(nproc) --worker-class meinheld.gmeinheld.MeinheldWorker server:app ---> Running in 23774708064a Removing intermediate container 23774708064a ---> 3e09bcb8cbbe Successfully built 3e09bcb8cbbe Successfully tagged python.clastic:latest docker run -td python.clastic > cid.txt docker inspect `cat cid.txt` | jq -r '.[0].NetworkSettings.IPAddress' > ip.txt curl --retry 5 --retry-delay 5 --retry-max-time 180 --retry-connrefused http://`cat ip.txt`:3000 -v * Rebuilt URL to: http://172.17.0.2:3000/ * Trying 172.17.0.2... * TCP_NODELAY set * connect to 172.17.0.2 port 3000 failed: Connection refused * Failed to connect to 172.17.0.2 port 3000: Connection refused * Closing connection 0 Warning: Transient problem: connection refused Will retry in 5 seconds. 5 Warning: retries left. * Rebuilt URL to: http://172.17.0.2:3000/ * Hostname 172.17.0.2 was found in DNS cache * Trying 172.17.0.2... * TCP_NODELAY set * Connected to 172.17.0.2 (172.17.0.2) port 3000 (#1) > GET / HTTP/1.1 > Host: 172.17.0.2:3000 > User-Agent: curl/7.58.0 > Accept: */* > < HTTP/1.1 200 OK < Server: meinheld/1.0.2 < Date: Fri, 14 May 2021 08:30:03 GMT < Content-Type: text/plain; charset=utf-8 < Content-Length: 0 < Connection: Keep-Alive < * Connection #1 to host 172.17.0.2 left intact /home/semaphore FRAMEWORK=python/clastic bundle exec rspec .spec ...... Finished in 0.00945 seconds (files took 0.09296 seconds to load) 6 examples, 0 failures make -f python/clastic/.Makefile collect LANGUAGE=python FRAMEWORK=clastic DATABASE_URL=postgresql://postgres@0.0.0.0/benchmark bundle exec rake collect "================" "CMD : wrk -H 'Connection: keep-alive' --connections 64 --threads 2 --duration 10 --timeout 1 --script /home/semaphore/pipeline.lua http://172.17.0.2:3000/" "================" "OUT : Running 10s test @ http://172.17.0.2:3000/\n" + " 2 threads and 64 connections\n" + " Thread Stats Avg Stdev Max +/- Stdev\n" + " Latency 7.43ms 0.97ms 31.11ms 91.81%\n" + " Req/Sec 4.33k 310.04 4.63k 84.00%\n" + " 86160 requests in 10.01s, 13.48MB read\n" + "Requests/sec: 8604.66\n" + "Transfer/sec: 1.35MB\n" "================" "LUA : duration_ms,total_requests,total_requests_per_s,total_bytes_received,socket_connection_errors,socket_read_errors,socket_write_errors,http_errors,request_timeouts,minimum_latency,maximum_latency,average_latency,standard_deviation,percentile_50,percentile_75,percentile_90,percentile_99,percentile_99.999" "LUA : 10013181,86160,8604,14130240,0,0,0,0,0,482,31115,7430,971,7189,7406,8141,12504,31115" bundle exec rake db:raw_export export SEMAPHORE_JOB_RESULT=passed