Diff of the two buildlogs: -- --- b1/build.log 2025-03-07 08:20:10.628770401 +0000 +++ b2/build.log 2025-03-07 08:42:42.247857329 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Thu Apr 9 02:34:10 -12 2026 -I: pbuilder-time-stamp: 1775745250 +I: Current time: Fri Mar 7 22:20:15 +14 2025 +I: pbuilder-time-stamp: 1741335615 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -22,52 +22,84 @@ dpkg-source: info: unpacking locust_2.24.0-1.debian.tar.xz I: using fakeroot in build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/1632074/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/1064749/tmp/hooks/D01_modify_environment starting +debug: Running on ionos11-amd64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Mar 7 08:20 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/1064749/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/1064749/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='amd64' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=42 ' - DISTRIBUTION='unstable' - HOME='/root' - HOST_ARCH='amd64' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="37" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.2.37(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=amd64 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=20 ' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='8fa73523e0ee42ecadaa219f656c3440' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='1632074' - PS1='# ' - PS2='> ' + INVOCATION_ID=aba7e9630d59482c8dc8fbc6b37c0f16 + LANG=C + LANGUAGE=et_EE:et + LC_ALL=C + MACHTYPE=x86_64-pc-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=1064749 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.CUoZmndM/pbuilderrc_0xNs --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.CUoZmndM/b1 --logfile b1/build.log locust_2.24.0-1.dsc' - SUDO_GID='111' - SUDO_UID='106' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://213.165.73.152:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.CUoZmndM/pbuilderrc_z3WX --distribution unstable --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.CUoZmndM/b2 --logfile b2/build.log locust_2.24.0-1.dsc' + SUDO_GID=111 + SUDO_UID=106 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://46.16.76.132:3128 I: uname -a - Linux ionos15-amd64 6.12.12+bpo-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.12-1~bpo12+1 (2025-02-23) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-31-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.128-1 (2025-02-07) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Mar 4 2025 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/1632074/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Mar 4 11:20 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/1064749/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -264,7 +296,7 @@ Get: 125 http://deb.debian.org/debian unstable/main amd64 python3-retry all 0.9.2-3 [7088 B] Get: 126 http://deb.debian.org/debian unstable/main amd64 python3-roundrobin all 0.0.4-3 [4364 B] Get: 127 http://deb.debian.org/debian unstable/main amd64 python3-zmq amd64 26.2.1-1+b1 [182 kB] -Fetched 44.0 MB in 6s (7874 kB/s) +Fetched 44.0 MB in 3s (14.6 MB/s) Preconfiguring packages ... Selecting previously unselected package fonts-lato. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19783 files and directories currently installed.) @@ -682,8 +714,8 @@ Setting up tzdata (2025a-2) ... Current default time zone: 'Etc/UTC' -Local time is now: Thu Apr 9 14:34:38 UTC 2026. -Universal Time is now: Thu Apr 9 14:34:38 UTC 2026. +Local time is now: Fri Mar 7 08:22:22 UTC 2025. +Universal Time is now: Fri Mar 7 08:22:22 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up libpgm-5.3-0t64:amd64 (5.3.128~dfsg-2.1+b1) ... @@ -811,7 +843,11 @@ fakeroot is already the newest version (1.37-1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/reproducible-path/locust-2.24.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../locust_2.24.0-1_source.changes +I: user script /srv/workspace/pbuilder/1064749/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/1064749/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/locust-2.24.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../locust_2.24.0-1_source.changes dpkg-buildpackage: info: source package locust dpkg-buildpackage: info: source version 2.24.0-1 dpkg-buildpackage: info: source distribution unstable @@ -845,230 +881,230 @@ running build running build_py creating build/lib/locust -copying locust/debug.py -> build/lib/locust -copying locust/clients.py -> build/lib/locust -copying locust/input_events.py -> build/lib/locust -copying locust/main.py -> build/lib/locust -copying locust/runners.py -> build/lib/locust -copying locust/__main__.py -> build/lib/locust +copying locust/__init__.py -> build/lib/locust +copying locust/stats.py -> build/lib/locust +copying locust/event.py -> build/lib/locust +copying locust/exception.py -> build/lib/locust copying locust/html.py -> build/lib/locust -copying locust/web.py -> build/lib/locust -copying locust/shape.py -> build/lib/locust copying locust/env.py -> build/lib/locust -copying locust/event.py -> build/lib/locust +copying locust/web.py -> build/lib/locust copying locust/_version.py -> build/lib/locust -copying locust/__init__.py -> build/lib/locust -copying locust/dispatch.py -> build/lib/locust copying locust/argument_parser.py -> build/lib/locust -copying locust/exception.py -> build/lib/locust -copying locust/stats.py -> build/lib/locust +copying locust/clients.py -> build/lib/locust +copying locust/main.py -> build/lib/locust +copying locust/shape.py -> build/lib/locust +copying locust/__main__.py -> build/lib/locust +copying locust/dispatch.py -> build/lib/locust +copying locust/input_events.py -> build/lib/locust copying locust/log.py -> build/lib/locust +copying locust/runners.py -> build/lib/locust +copying locust/debug.py -> build/lib/locust creating build/lib/locust/user -copying locust/user/users.py -> build/lib/locust/user -copying locust/user/wait_time.py -> build/lib/locust/user -copying locust/user/sequential_taskset.py -> build/lib/locust/user -copying locust/user/inspectuser.py -> build/lib/locust/user copying locust/user/__init__.py -> build/lib/locust/user +copying locust/user/inspectuser.py -> build/lib/locust/user copying locust/user/task.py -> build/lib/locust/user -creating build/lib/locust/util -copying locust/util/deprecation.py -> build/lib/locust/util -copying locust/util/cache.py -> build/lib/locust/util -copying locust/util/exception_handler.py -> build/lib/locust/util -copying locust/util/timespan.py -> build/lib/locust/util -copying locust/util/__init__.py -> build/lib/locust/util -copying locust/util/rounding.py -> build/lib/locust/util -copying locust/util/load_locustfile.py -> build/lib/locust/util +copying locust/user/wait_time.py -> build/lib/locust/user +copying locust/user/sequential_taskset.py -> build/lib/locust/user +copying locust/user/users.py -> build/lib/locust/user creating build/lib/locust/test +copying locust/test/__init__.py -> build/lib/locust/test copying locust/test/test_http.py -> build/lib/locust/test -copying locust/test/test_parser.py -> build/lib/locust/test -copying locust/test/test_interruptable_task.py -> build/lib/locust/test -copying locust/test/test_runners.py -> build/lib/locust/test -copying locust/test/test_log.py -> build/lib/locust/test -copying locust/test/fake_module1_for_env_test.py -> build/lib/locust/test copying locust/test/test_main.py -> build/lib/locust/test +copying locust/test/test_old_wait_api.py -> build/lib/locust/test copying locust/test/test_zmqrpc.py -> build/lib/locust/test -copying locust/test/test_util.py -> build/lib/locust/test -copying locust/test/test_stats.py -> build/lib/locust/test +copying locust/test/test_locust_class.py -> build/lib/locust/test +copying locust/test/test_log.py -> build/lib/locust/test copying locust/test/test_env.py -> build/lib/locust/test +copying locust/test/test_parser.py -> build/lib/locust/test +copying locust/test/test_interruptable_task.py -> build/lib/locust/test copying locust/test/test_users.py -> build/lib/locust/test -copying locust/test/mock_locustfile.py -> build/lib/locust/test -copying locust/test/test_debugging.py -> build/lib/locust/test -copying locust/test/fake_module2_for_env_test.py -> build/lib/locust/test -copying locust/test/__init__.py -> build/lib/locust/test -copying locust/test/test_web.py -> build/lib/locust/test copying locust/test/testcases.py -> build/lib/locust/test +copying locust/test/fake_module1_for_env_test.py -> build/lib/locust/test copying locust/test/test_taskratio.py -> build/lib/locust/test -copying locust/test/test_fasthttp.py -> build/lib/locust/test +copying locust/test/fake_module2_for_env_test.py -> build/lib/locust/test +copying locust/test/test_web.py -> build/lib/locust/test copying locust/test/mock_logging.py -> build/lib/locust/test copying locust/test/test_load_locustfile.py -> build/lib/locust/test +copying locust/test/test_stats.py -> build/lib/locust/test copying locust/test/test_tags.py -> build/lib/locust/test +copying locust/test/test_util.py -> build/lib/locust/test copying locust/test/test_wait_time.py -> build/lib/locust/test -copying locust/test/test_old_wait_api.py -> build/lib/locust/test -copying locust/test/test_dispatch.py -> build/lib/locust/test copying locust/test/util.py -> build/lib/locust/test +copying locust/test/test_dispatch.py -> build/lib/locust/test +copying locust/test/test_debugging.py -> build/lib/locust/test +copying locust/test/test_runners.py -> build/lib/locust/test +copying locust/test/mock_locustfile.py -> build/lib/locust/test +copying locust/test/test_fasthttp.py -> build/lib/locust/test copying locust/test/test_sequential_taskset.py -> build/lib/locust/test -copying locust/test/test_locust_class.py -> build/lib/locust/test +creating build/lib/locust/util +copying locust/util/rounding.py -> build/lib/locust/util +copying locust/util/__init__.py -> build/lib/locust/util +copying locust/util/cache.py -> build/lib/locust/util +copying locust/util/timespan.py -> build/lib/locust/util +copying locust/util/deprecation.py -> build/lib/locust/util +copying locust/util/exception_handler.py -> build/lib/locust/util +copying locust/util/load_locustfile.py -> build/lib/locust/util +creating build/lib/locust/contrib +copying locust/contrib/__init__.py -> build/lib/locust/contrib +copying locust/contrib/fasthttp.py -> build/lib/locust/contrib creating build/lib/locust/rpc -copying locust/rpc/zmqrpc.py -> build/lib/locust/rpc copying locust/rpc/__init__.py -> build/lib/locust/rpc copying locust/rpc/protocol.py -> build/lib/locust/rpc -creating build/lib/locust/contrib -copying locust/contrib/fasthttp.py -> build/lib/locust/contrib -copying locust/contrib/__init__.py -> build/lib/locust/contrib +copying locust/rpc/zmqrpc.py -> build/lib/locust/rpc copying locust/py.typed -> build/lib/locust creating build/lib/locust/static copying locust/static/jquery.jqote2.min.js -> build/lib/locust/static +copying locust/static/jquery-1.11.3.min.js -> build/lib/locust/static copying locust/static/echarts.common.min.js -> build/lib/locust/static -copying locust/static/locust.js -> build/lib/locust/static copying locust/static/jquery.tools.min.js -> build/lib/locust/static -copying locust/static/jquery-1.11.3.min.js -> build/lib/locust/static +copying locust/static/locust.js -> build/lib/locust/static copying locust/static/chart.js -> build/lib/locust/static copying locust/static/tasks.js -> build/lib/locust/static copying locust/static/vintage.js -> build/lib/locust/static +creating build/lib/locust/static/img +copying locust/static/img/favicon.ico -> build/lib/locust/static/img +copying locust/static/img/ui-screenshot-workers.png -> build/lib/locust/static/img +copying locust/static/img/logo.png -> build/lib/locust/static/img +copying locust/static/img/ui-screenshot-stats.png -> build/lib/locust/static/img +copying locust/static/img/ui-screenshot-charts.png -> build/lib/locust/static/img +copying locust/static/img/ui-screenshot-start-test.png -> build/lib/locust/static/img creating build/lib/locust/static/sass -copying locust/static/sass/tables.sass -> build/lib/locust/static/sass -copying locust/static/sass/_mixins.sass -> build/lib/locust/static/sass copying locust/static/sass/_base.sass -> build/lib/locust/static/sass +copying locust/static/sass/_mixins.sass -> build/lib/locust/static/sass +copying locust/static/sass/tables.sass -> build/lib/locust/static/sass copying locust/static/sass/application.sass -> build/lib/locust/static/sass creating build/lib/locust/static/css copying locust/static/css/tables.css.map -> build/lib/locust/static/css copying locust/static/css/application.css.map -> build/lib/locust/static/css -copying locust/static/css/application.css -> build/lib/locust/static/css copying locust/static/css/tables.css -> build/lib/locust/static/css -creating build/lib/locust/static/img -copying locust/static/img/logo.png -> build/lib/locust/static/img -copying locust/static/img/ui-screenshot-start-test.png -> build/lib/locust/static/img -copying locust/static/img/ui-screenshot-workers.png -> build/lib/locust/static/img -copying locust/static/img/ui-screenshot-charts.png -> build/lib/locust/static/img -copying locust/static/img/ui-screenshot-stats.png -> build/lib/locust/static/img -copying locust/static/img/favicon.ico -> build/lib/locust/static/img +copying locust/static/css/application.css -> build/lib/locust/static/css creating build/lib/locust/templates copying locust/templates/stats_data.html -> build/lib/locust/templates copying locust/templates/report.html -> build/lib/locust/templates copying locust/templates/index.html -> build/lib/locust/templates creating build/lib/locust/webui/dist +copying locust/webui/dist/auth.html -> build/lib/locust/webui/dist copying locust/webui/dist/report.html -> build/lib/locust/webui/dist copying locust/webui/dist/index.html -> build/lib/locust/webui/dist -copying locust/webui/dist/auth.html -> build/lib/locust/webui/dist creating build/lib/locust/webui/dist/assets -copying locust/webui/dist/assets/logo.png -> build/lib/locust/webui/dist/assets copying locust/webui/dist/assets/index-0d6d578a.js -> build/lib/locust/webui/dist/assets copying locust/webui/dist/assets/favicon.ico -> build/lib/locust/webui/dist/assets +copying locust/webui/dist/assets/logo.png -> build/lib/locust/webui/dist/assets installing to build/bdist.linux-x86_64/wheel running install running install_lib creating build/bdist.linux-x86_64/wheel creating build/bdist.linux-x86_64/wheel/locust +copying build/lib/locust/__init__.py -> build/bdist.linux-x86_64/wheel/./locust +copying build/lib/locust/stats.py -> build/bdist.linux-x86_64/wheel/./locust +copying build/lib/locust/event.py -> build/bdist.linux-x86_64/wheel/./locust +copying build/lib/locust/exception.py -> build/bdist.linux-x86_64/wheel/./locust +copying build/lib/locust/py.typed -> build/bdist.linux-x86_64/wheel/./locust +creating build/bdist.linux-x86_64/wheel/locust/user +copying build/lib/locust/user/__init__.py -> build/bdist.linux-x86_64/wheel/./locust/user +copying build/lib/locust/user/inspectuser.py -> build/bdist.linux-x86_64/wheel/./locust/user +copying build/lib/locust/user/task.py -> build/bdist.linux-x86_64/wheel/./locust/user +copying build/lib/locust/user/wait_time.py -> build/bdist.linux-x86_64/wheel/./locust/user +copying build/lib/locust/user/sequential_taskset.py -> build/bdist.linux-x86_64/wheel/./locust/user +copying build/lib/locust/user/users.py -> build/bdist.linux-x86_64/wheel/./locust/user +copying build/lib/locust/html.py -> build/bdist.linux-x86_64/wheel/./locust creating build/bdist.linux-x86_64/wheel/locust/static copying build/lib/locust/static/jquery.jqote2.min.js -> build/bdist.linux-x86_64/wheel/./locust/static +copying build/lib/locust/static/jquery-1.11.3.min.js -> build/bdist.linux-x86_64/wheel/./locust/static +copying build/lib/locust/static/echarts.common.min.js -> build/bdist.linux-x86_64/wheel/./locust/static +copying build/lib/locust/static/jquery.tools.min.js -> build/bdist.linux-x86_64/wheel/./locust/static +copying build/lib/locust/static/locust.js -> build/bdist.linux-x86_64/wheel/./locust/static +copying build/lib/locust/static/chart.js -> build/bdist.linux-x86_64/wheel/./locust/static +creating build/bdist.linux-x86_64/wheel/locust/static/img +copying build/lib/locust/static/img/favicon.ico -> build/bdist.linux-x86_64/wheel/./locust/static/img +copying build/lib/locust/static/img/ui-screenshot-workers.png -> build/bdist.linux-x86_64/wheel/./locust/static/img +copying build/lib/locust/static/img/logo.png -> build/bdist.linux-x86_64/wheel/./locust/static/img +copying build/lib/locust/static/img/ui-screenshot-stats.png -> build/bdist.linux-x86_64/wheel/./locust/static/img +copying build/lib/locust/static/img/ui-screenshot-charts.png -> build/bdist.linux-x86_64/wheel/./locust/static/img +copying build/lib/locust/static/img/ui-screenshot-start-test.png -> build/bdist.linux-x86_64/wheel/./locust/static/img +copying build/lib/locust/static/tasks.js -> build/bdist.linux-x86_64/wheel/./locust/static +copying build/lib/locust/static/vintage.js -> build/bdist.linux-x86_64/wheel/./locust/static creating build/bdist.linux-x86_64/wheel/locust/static/sass -copying build/lib/locust/static/sass/tables.sass -> build/bdist.linux-x86_64/wheel/./locust/static/sass -copying build/lib/locust/static/sass/_mixins.sass -> build/bdist.linux-x86_64/wheel/./locust/static/sass copying build/lib/locust/static/sass/_base.sass -> build/bdist.linux-x86_64/wheel/./locust/static/sass +copying build/lib/locust/static/sass/_mixins.sass -> build/bdist.linux-x86_64/wheel/./locust/static/sass +copying build/lib/locust/static/sass/tables.sass -> build/bdist.linux-x86_64/wheel/./locust/static/sass copying build/lib/locust/static/sass/application.sass -> build/bdist.linux-x86_64/wheel/./locust/static/sass creating build/bdist.linux-x86_64/wheel/locust/static/css copying build/lib/locust/static/css/tables.css.map -> build/bdist.linux-x86_64/wheel/./locust/static/css copying build/lib/locust/static/css/application.css.map -> build/bdist.linux-x86_64/wheel/./locust/static/css -copying build/lib/locust/static/css/application.css -> build/bdist.linux-x86_64/wheel/./locust/static/css copying build/lib/locust/static/css/tables.css -> build/bdist.linux-x86_64/wheel/./locust/static/css -creating build/bdist.linux-x86_64/wheel/locust/static/img -copying build/lib/locust/static/img/logo.png -> build/bdist.linux-x86_64/wheel/./locust/static/img -copying build/lib/locust/static/img/ui-screenshot-start-test.png -> build/bdist.linux-x86_64/wheel/./locust/static/img -copying build/lib/locust/static/img/ui-screenshot-workers.png -> build/bdist.linux-x86_64/wheel/./locust/static/img -copying build/lib/locust/static/img/ui-screenshot-charts.png -> build/bdist.linux-x86_64/wheel/./locust/static/img -copying build/lib/locust/static/img/ui-screenshot-stats.png -> build/bdist.linux-x86_64/wheel/./locust/static/img -copying build/lib/locust/static/img/favicon.ico -> build/bdist.linux-x86_64/wheel/./locust/static/img -copying build/lib/locust/static/echarts.common.min.js -> build/bdist.linux-x86_64/wheel/./locust/static -copying build/lib/locust/static/locust.js -> build/bdist.linux-x86_64/wheel/./locust/static -copying build/lib/locust/static/jquery.tools.min.js -> build/bdist.linux-x86_64/wheel/./locust/static -copying build/lib/locust/static/jquery-1.11.3.min.js -> build/bdist.linux-x86_64/wheel/./locust/static -copying build/lib/locust/static/chart.js -> build/bdist.linux-x86_64/wheel/./locust/static -copying build/lib/locust/static/tasks.js -> build/bdist.linux-x86_64/wheel/./locust/static -copying build/lib/locust/static/vintage.js -> build/bdist.linux-x86_64/wheel/./locust/static -copying build/lib/locust/debug.py -> build/bdist.linux-x86_64/wheel/./locust +copying build/lib/locust/static/css/application.css -> build/bdist.linux-x86_64/wheel/./locust/static/css +copying build/lib/locust/env.py -> build/bdist.linux-x86_64/wheel/./locust +copying build/lib/locust/web.py -> build/bdist.linux-x86_64/wheel/./locust +copying build/lib/locust/_version.py -> build/bdist.linux-x86_64/wheel/./locust +creating build/bdist.linux-x86_64/wheel/locust/templates +copying build/lib/locust/templates/stats_data.html -> build/bdist.linux-x86_64/wheel/./locust/templates +copying build/lib/locust/templates/report.html -> build/bdist.linux-x86_64/wheel/./locust/templates +copying build/lib/locust/templates/index.html -> build/bdist.linux-x86_64/wheel/./locust/templates +copying build/lib/locust/argument_parser.py -> build/bdist.linux-x86_64/wheel/./locust copying build/lib/locust/clients.py -> build/bdist.linux-x86_64/wheel/./locust -copying build/lib/locust/input_events.py -> build/bdist.linux-x86_64/wheel/./locust copying build/lib/locust/main.py -> build/bdist.linux-x86_64/wheel/./locust -creating build/bdist.linux-x86_64/wheel/locust/user -copying build/lib/locust/user/users.py -> build/bdist.linux-x86_64/wheel/./locust/user -copying build/lib/locust/user/wait_time.py -> build/bdist.linux-x86_64/wheel/./locust/user -copying build/lib/locust/user/sequential_taskset.py -> build/bdist.linux-x86_64/wheel/./locust/user -copying build/lib/locust/user/inspectuser.py -> build/bdist.linux-x86_64/wheel/./locust/user -copying build/lib/locust/user/__init__.py -> build/bdist.linux-x86_64/wheel/./locust/user -copying build/lib/locust/user/task.py -> build/bdist.linux-x86_64/wheel/./locust/user -copying build/lib/locust/runners.py -> build/bdist.linux-x86_64/wheel/./locust -copying build/lib/locust/__main__.py -> build/bdist.linux-x86_64/wheel/./locust -creating build/bdist.linux-x86_64/wheel/locust/util -copying build/lib/locust/util/deprecation.py -> build/bdist.linux-x86_64/wheel/./locust/util -copying build/lib/locust/util/cache.py -> build/bdist.linux-x86_64/wheel/./locust/util -copying build/lib/locust/util/exception_handler.py -> build/bdist.linux-x86_64/wheel/./locust/util -copying build/lib/locust/util/timespan.py -> build/bdist.linux-x86_64/wheel/./locust/util -copying build/lib/locust/util/__init__.py -> build/bdist.linux-x86_64/wheel/./locust/util -copying build/lib/locust/util/rounding.py -> build/bdist.linux-x86_64/wheel/./locust/util -copying build/lib/locust/util/load_locustfile.py -> build/bdist.linux-x86_64/wheel/./locust/util creating build/bdist.linux-x86_64/wheel/locust/test +copying build/lib/locust/test/__init__.py -> build/bdist.linux-x86_64/wheel/./locust/test copying build/lib/locust/test/test_http.py -> build/bdist.linux-x86_64/wheel/./locust/test -copying build/lib/locust/test/test_parser.py -> build/bdist.linux-x86_64/wheel/./locust/test -copying build/lib/locust/test/test_interruptable_task.py -> build/bdist.linux-x86_64/wheel/./locust/test -copying build/lib/locust/test/test_runners.py -> build/bdist.linux-x86_64/wheel/./locust/test -copying build/lib/locust/test/test_log.py -> build/bdist.linux-x86_64/wheel/./locust/test -copying build/lib/locust/test/fake_module1_for_env_test.py -> build/bdist.linux-x86_64/wheel/./locust/test copying build/lib/locust/test/test_main.py -> build/bdist.linux-x86_64/wheel/./locust/test +copying build/lib/locust/test/test_old_wait_api.py -> build/bdist.linux-x86_64/wheel/./locust/test copying build/lib/locust/test/test_zmqrpc.py -> build/bdist.linux-x86_64/wheel/./locust/test -copying build/lib/locust/test/test_util.py -> build/bdist.linux-x86_64/wheel/./locust/test -copying build/lib/locust/test/test_stats.py -> build/bdist.linux-x86_64/wheel/./locust/test +copying build/lib/locust/test/test_locust_class.py -> build/bdist.linux-x86_64/wheel/./locust/test +copying build/lib/locust/test/test_log.py -> build/bdist.linux-x86_64/wheel/./locust/test copying build/lib/locust/test/test_env.py -> build/bdist.linux-x86_64/wheel/./locust/test +copying build/lib/locust/test/test_parser.py -> build/bdist.linux-x86_64/wheel/./locust/test +copying build/lib/locust/test/test_interruptable_task.py -> build/bdist.linux-x86_64/wheel/./locust/test copying build/lib/locust/test/test_users.py -> build/bdist.linux-x86_64/wheel/./locust/test -copying build/lib/locust/test/mock_locustfile.py -> build/bdist.linux-x86_64/wheel/./locust/test -copying build/lib/locust/test/test_debugging.py -> build/bdist.linux-x86_64/wheel/./locust/test -copying build/lib/locust/test/fake_module2_for_env_test.py -> build/bdist.linux-x86_64/wheel/./locust/test -copying build/lib/locust/test/__init__.py -> build/bdist.linux-x86_64/wheel/./locust/test -copying build/lib/locust/test/test_web.py -> build/bdist.linux-x86_64/wheel/./locust/test copying build/lib/locust/test/testcases.py -> build/bdist.linux-x86_64/wheel/./locust/test +copying build/lib/locust/test/fake_module1_for_env_test.py -> build/bdist.linux-x86_64/wheel/./locust/test copying build/lib/locust/test/test_taskratio.py -> build/bdist.linux-x86_64/wheel/./locust/test -copying build/lib/locust/test/test_fasthttp.py -> build/bdist.linux-x86_64/wheel/./locust/test +copying build/lib/locust/test/fake_module2_for_env_test.py -> build/bdist.linux-x86_64/wheel/./locust/test +copying build/lib/locust/test/test_web.py -> build/bdist.linux-x86_64/wheel/./locust/test copying build/lib/locust/test/mock_logging.py -> build/bdist.linux-x86_64/wheel/./locust/test copying build/lib/locust/test/test_load_locustfile.py -> build/bdist.linux-x86_64/wheel/./locust/test +copying build/lib/locust/test/test_stats.py -> build/bdist.linux-x86_64/wheel/./locust/test copying build/lib/locust/test/test_tags.py -> build/bdist.linux-x86_64/wheel/./locust/test +copying build/lib/locust/test/test_util.py -> build/bdist.linux-x86_64/wheel/./locust/test copying build/lib/locust/test/test_wait_time.py -> build/bdist.linux-x86_64/wheel/./locust/test -copying build/lib/locust/test/test_old_wait_api.py -> build/bdist.linux-x86_64/wheel/./locust/test -copying build/lib/locust/test/test_dispatch.py -> build/bdist.linux-x86_64/wheel/./locust/test copying build/lib/locust/test/util.py -> build/bdist.linux-x86_64/wheel/./locust/test +copying build/lib/locust/test/test_dispatch.py -> build/bdist.linux-x86_64/wheel/./locust/test +copying build/lib/locust/test/test_debugging.py -> build/bdist.linux-x86_64/wheel/./locust/test +copying build/lib/locust/test/test_runners.py -> build/bdist.linux-x86_64/wheel/./locust/test +copying build/lib/locust/test/mock_locustfile.py -> build/bdist.linux-x86_64/wheel/./locust/test +copying build/lib/locust/test/test_fasthttp.py -> build/bdist.linux-x86_64/wheel/./locust/test copying build/lib/locust/test/test_sequential_taskset.py -> build/bdist.linux-x86_64/wheel/./locust/test -copying build/lib/locust/test/test_locust_class.py -> build/bdist.linux-x86_64/wheel/./locust/test -copying build/lib/locust/html.py -> build/bdist.linux-x86_64/wheel/./locust -copying build/lib/locust/web.py -> build/bdist.linux-x86_64/wheel/./locust copying build/lib/locust/shape.py -> build/bdist.linux-x86_64/wheel/./locust -copying build/lib/locust/env.py -> build/bdist.linux-x86_64/wheel/./locust -copying build/lib/locust/py.typed -> build/bdist.linux-x86_64/wheel/./locust -creating build/bdist.linux-x86_64/wheel/locust/rpc -copying build/lib/locust/rpc/zmqrpc.py -> build/bdist.linux-x86_64/wheel/./locust/rpc -copying build/lib/locust/rpc/__init__.py -> build/bdist.linux-x86_64/wheel/./locust/rpc -copying build/lib/locust/rpc/protocol.py -> build/bdist.linux-x86_64/wheel/./locust/rpc -copying build/lib/locust/event.py -> build/bdist.linux-x86_64/wheel/./locust -copying build/lib/locust/_version.py -> build/bdist.linux-x86_64/wheel/./locust -copying build/lib/locust/__init__.py -> build/bdist.linux-x86_64/wheel/./locust -creating build/bdist.linux-x86_64/wheel/locust/templates -copying build/lib/locust/templates/stats_data.html -> build/bdist.linux-x86_64/wheel/./locust/templates -copying build/lib/locust/templates/report.html -> build/bdist.linux-x86_64/wheel/./locust/templates -copying build/lib/locust/templates/index.html -> build/bdist.linux-x86_64/wheel/./locust/templates -copying build/lib/locust/dispatch.py -> build/bdist.linux-x86_64/wheel/./locust -copying build/lib/locust/argument_parser.py -> build/bdist.linux-x86_64/wheel/./locust -copying build/lib/locust/exception.py -> build/bdist.linux-x86_64/wheel/./locust -copying build/lib/locust/stats.py -> build/bdist.linux-x86_64/wheel/./locust -creating build/bdist.linux-x86_64/wheel/locust/contrib -copying build/lib/locust/contrib/fasthttp.py -> build/bdist.linux-x86_64/wheel/./locust/contrib -copying build/lib/locust/contrib/__init__.py -> build/bdist.linux-x86_64/wheel/./locust/contrib +copying build/lib/locust/__main__.py -> build/bdist.linux-x86_64/wheel/./locust creating build/bdist.linux-x86_64/wheel/locust/webui creating build/bdist.linux-x86_64/wheel/locust/webui/dist -copying build/lib/locust/webui/dist/report.html -> build/bdist.linux-x86_64/wheel/./locust/webui/dist -copying build/lib/locust/webui/dist/index.html -> build/bdist.linux-x86_64/wheel/./locust/webui/dist copying build/lib/locust/webui/dist/auth.html -> build/bdist.linux-x86_64/wheel/./locust/webui/dist creating build/bdist.linux-x86_64/wheel/locust/webui/dist/assets -copying build/lib/locust/webui/dist/assets/logo.png -> build/bdist.linux-x86_64/wheel/./locust/webui/dist/assets copying build/lib/locust/webui/dist/assets/index-0d6d578a.js -> build/bdist.linux-x86_64/wheel/./locust/webui/dist/assets copying build/lib/locust/webui/dist/assets/favicon.ico -> build/bdist.linux-x86_64/wheel/./locust/webui/dist/assets +copying build/lib/locust/webui/dist/assets/logo.png -> build/bdist.linux-x86_64/wheel/./locust/webui/dist/assets +copying build/lib/locust/webui/dist/report.html -> build/bdist.linux-x86_64/wheel/./locust/webui/dist +copying build/lib/locust/webui/dist/index.html -> build/bdist.linux-x86_64/wheel/./locust/webui/dist +copying build/lib/locust/dispatch.py -> build/bdist.linux-x86_64/wheel/./locust +creating build/bdist.linux-x86_64/wheel/locust/util +copying build/lib/locust/util/rounding.py -> build/bdist.linux-x86_64/wheel/./locust/util +copying build/lib/locust/util/__init__.py -> build/bdist.linux-x86_64/wheel/./locust/util +copying build/lib/locust/util/cache.py -> build/bdist.linux-x86_64/wheel/./locust/util +copying build/lib/locust/util/timespan.py -> build/bdist.linux-x86_64/wheel/./locust/util +copying build/lib/locust/util/deprecation.py -> build/bdist.linux-x86_64/wheel/./locust/util +copying build/lib/locust/util/exception_handler.py -> build/bdist.linux-x86_64/wheel/./locust/util +copying build/lib/locust/util/load_locustfile.py -> build/bdist.linux-x86_64/wheel/./locust/util +copying build/lib/locust/input_events.py -> build/bdist.linux-x86_64/wheel/./locust copying build/lib/locust/log.py -> build/bdist.linux-x86_64/wheel/./locust +copying build/lib/locust/runners.py -> build/bdist.linux-x86_64/wheel/./locust +creating build/bdist.linux-x86_64/wheel/locust/contrib +copying build/lib/locust/contrib/__init__.py -> build/bdist.linux-x86_64/wheel/./locust/contrib +copying build/lib/locust/contrib/fasthttp.py -> build/bdist.linux-x86_64/wheel/./locust/contrib +copying build/lib/locust/debug.py -> build/bdist.linux-x86_64/wheel/./locust +creating build/bdist.linux-x86_64/wheel/locust/rpc +copying build/lib/locust/rpc/__init__.py -> build/bdist.linux-x86_64/wheel/./locust/rpc +copying build/lib/locust/rpc/protocol.py -> build/bdist.linux-x86_64/wheel/./locust/rpc +copying build/lib/locust/rpc/zmqrpc.py -> build/bdist.linux-x86_64/wheel/./locust/rpc running install_egg_info running egg_info creating locust.egg-info @@ -1085,7 +1121,7 @@ Copying locust.egg-info to build/bdist.linux-x86_64/wheel/./locust-0.0.0.egg-info running install_scripts creating build/bdist.linux-x86_64/wheel/locust-0.0.0.dist-info/WHEEL -creating '/build/reproducible-path/locust-2.24.0/.pybuild/cpython3_3.13_locust/.tmp-1j5q6sn0/locust-0.0.0-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it +creating '/build/reproducible-path/locust-2.24.0/.pybuild/cpython3_3.13_locust/.tmp-d7dqou7v/locust-0.0.0-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it adding 'locust/__init__.py' adding 'locust/__main__.py' adding 'locust/_version.py' @@ -1196,7 +1232,7 @@ make[1]: Entering directory '/build/reproducible-path/locust-2.24.0' # examples/test_data_management.py - attempted network access during pytest collection phase # TestMasterWorkerRunners times out after a long time -http_proxy= https_proxy= PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/build/reproducible-path/locust-2.24.0/debian PYBUILD_SYSTEM=custom PYBUILD_TEST_ARGS="PYTHONPATH={build_dir} {interpreter} -m pytest -v --ignore=examples/test_data_management.py -k 'not TestMasterWorkerRunners'" dh_auto_test +http_proxy= https_proxy= PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path:/build/reproducible-path/locust-2.24.0/debian PYBUILD_SYSTEM=custom PYBUILD_TEST_ARGS="PYTHONPATH={build_dir} {interpreter} -m pytest -v --ignore=examples/test_data_management.py -k 'not TestMasterWorkerRunners'" dh_auto_test I: pybuild base:311: PYTHONPATH=/build/reproducible-path/locust-2.24.0/.pybuild/cpython3_3.13_locust/build python3.13 -m pytest -v --ignore=examples/test_data_management.py -k 'not TestMasterWorkerRunners' ============================= test session starts ============================== platform linux -- Python 3.13.2, pytest-8.3.4, pluggy-1.5.0 -- /usr/bin/python3.13 @@ -1228,9 +1264,9 @@ locust/test/test_dispatch.py::TestRampUpThenDownThenUp::test_ramp_up_then_down_then_up SKIPPED [ 3%] locust/test/test_dispatch.py::TestDispatchUsersToWorkersHavingTheSameUsersAsTheTarget::test_dispatch_users_to_3_workers PASSED [ 3%] locust/test/test_dispatch.py::TestDistributionIsRespectedDuringDispatch::test_dispatch_75_users_to_4_workers_with_spawn_rate_of_5 PASSED [ 4%] -locust/test/test_dispatch.py::TestLargeScale::test_distribute_users PASSED [ 4%] +locust/test/test_dispatch.py::TestLargeScale::test_distribute_users FAILED [ 4%] locust/test/test_dispatch.py::TestLargeScale::test_ramp_down_from_100_000_to_0_users_with_50_user_classes_and_1000_workers_and_5000_spawn_rate PASSED [ 4%] -locust/test/test_dispatch.py::TestLargeScale::test_ramp_up_from_0_to_100_000_users_with_50_user_classes_and_1000_workers_and_5000_spawn_rate PASSED [ 4%] +locust/test/test_dispatch.py::TestLargeScale::test_ramp_up_from_0_to_100_000_users_with_50_user_classes_and_1000_workers_and_5000_spawn_rate FAILED [ 4%] locust/test/test_dispatch.py::TestSmallConsecutiveRamping::test_consecutive_ramp_up_and_ramp_down PASSED [ 4%] locust/test/test_dispatch.py::TestRampingMiscellaneous::test_spawn_rate_greater_than_target_user_count PASSED [ 4%] locust/test/test_dispatch.py::TestRemoveWorker::test_remove_last_worker PASSED [ 5%] @@ -1307,7 +1343,7 @@ locust/test/test_fasthttp.py::TestFastHttpUserClass::test_client_get PASSED [ 18%] locust/test/test_fasthttp.py::TestFastHttpUserClass::test_client_get_absolute_url PASSED [ 18%] locust/test/test_fasthttp.py::TestFastHttpUserClass::test_client_head PASSED [ 18%] -locust/test/test_fasthttp.py::TestFastHttpUserClass::test_client_pool_concurrency PASSED [ 18%] +locust/test/test_fasthttp.py::TestFastHttpUserClass::test_client_pool_concurrency FAILED [ 18%] locust/test/test_fasthttp.py::TestFastHttpUserClass::test_client_pool_per_user_instance PASSED [ 18%] locust/test/test_fasthttp.py::TestFastHttpUserClass::test_client_post PASSED [ 18%] locust/test/test_fasthttp.py::TestFastHttpUserClass::test_client_put PASSED [ 19%] @@ -1351,7 +1387,7 @@ locust/test/test_http.py::TestHttpSession::test_delete PASSED [ 26%] locust/test/test_http.py::TestHttpSession::test_error_message PASSED [ 26%] locust/test/test_http.py::TestHttpSession::test_error_message_with_name_replacement PASSED [ 26%] -locust/test/test_http.py::TestHttpSession::test_event_measure PASSED [ 26%] +locust/test/test_http.py::TestHttpSession::test_event_measure FAILED [ 26%] locust/test/test_http.py::TestHttpSession::test_get PASSED [ 26%] locust/test/test_http.py::TestHttpSession::test_get_with_params PASSED [ 26%] locust/test/test_http.py::TestHttpSession::test_head PASSED [ 27%] @@ -1521,7 +1557,7 @@ locust/test/test_runners.py::TestLocustRunner::test_attributes_populated_when_calling_start PASSED [ 57%] locust/test/test_runners.py::TestLocustRunner::test_can_call_stop_endpoint_if_currently_swarming PASSED [ 57%] locust/test/test_runners.py::TestLocustRunner::test_change_user_count_during_spawning PASSED [ 57%] -locust/test/test_runners.py::TestLocustRunner::test_cpu_warning PASSED [ 57%] +locust/test/test_runners.py::TestLocustRunner::test_cpu_warning FAILED [ 57%] locust/test/test_runners.py::TestLocustRunner::test_custom_dispatcher_class PASSED [ 57%] locust/test/test_runners.py::TestLocustRunner::test_custom_message PASSED [ 57%] locust/test/test_runners.py::TestLocustRunner::test_duplicate_message_handler_registration PASSED [ 58%] @@ -1529,7 +1565,7 @@ locust/test/test_runners.py::TestLocustRunner::test_kill_locusts PASSED [ 58%] locust/test/test_runners.py::TestLocustRunner::test_no_reset_stats PASSED [ 58%] locust/test/test_runners.py::TestLocustRunner::test_reset_stats PASSED [ 58%] -locust/test/test_runners.py::TestLocustRunner::test_runner_quit_can_run_on_stop_for_multiple_users_concurrently PASSED [ 59%] +locust/test/test_runners.py::TestLocustRunner::test_runner_quit_can_run_on_stop_for_multiple_users_concurrently FAILED [ 59%] locust/test/test_runners.py::TestLocustRunner::test_runner_reference_on_environment PASSED [ 59%] locust/test/test_runners.py::TestLocustRunner::test_start_event PASSED [ 59%] locust/test/test_runners.py::TestLocustRunner::test_stop_event PASSED [ 59%] @@ -1597,13 +1633,13 @@ locust/test/test_runners.py::TestWorkerRunner::test_worker_without_stop_timeout PASSED [ 70%] locust/test/test_runners.py::TestMessageSerializing::test_message_serialize PASSED [ 71%] locust/test/test_runners.py::TestStopTimeout::test_gracefully_handle_exceptions_in_listener PASSED [ 71%] -locust/test/test_runners.py::TestStopTimeout::test_kill_locusts_with_stop_timeout PASSED [ 71%] -locust/test/test_runners.py::TestStopTimeout::test_stop_timeout PASSED [ 71%] -locust/test/test_runners.py::TestStopTimeout::test_stop_timeout_during_on_start PASSED [ 71%] -locust/test/test_runners.py::TestStopTimeout::test_stop_timeout_exit_during_wait PASSED [ 71%] -locust/test/test_runners.py::TestStopTimeout::test_stop_timeout_with_interrupt PASSED [ 72%] -locust/test/test_runners.py::TestStopTimeout::test_stop_timeout_with_interrupt_no_reschedule PASSED [ 72%] -locust/test/test_runners.py::TestStopTimeout::test_stop_timeout_with_ramp_down PASSED [ 72%] +locust/test/test_runners.py::TestStopTimeout::test_kill_locusts_with_stop_timeout FAILED [ 71%] +locust/test/test_runners.py::TestStopTimeout::test_stop_timeout FAILED [ 71%] +locust/test/test_runners.py::TestStopTimeout::test_stop_timeout_during_on_start FAILED [ 71%] +locust/test/test_runners.py::TestStopTimeout::test_stop_timeout_exit_during_wait FAILED [ 71%] +locust/test/test_runners.py::TestStopTimeout::test_stop_timeout_with_interrupt FAILED [ 72%] +locust/test/test_runners.py::TestStopTimeout::test_stop_timeout_with_interrupt_no_reschedule FAILED [ 72%] +locust/test/test_runners.py::TestStopTimeout::test_stop_timeout_with_ramp_down FAILED [ 72%] locust/test/test_runners.py::TestStopTimeout::test_users_can_call_runner_quit_with_stop_timeout PASSED [ 72%] locust/test/test_sequential_taskset.py::TestTaskSet::test_task_sequence_multiple_iterations PASSED [ 72%] locust/test/test_sequential_taskset.py::TestTaskSet::test_task_sequence_with_inheritance PASSED [ 73%] @@ -1639,7 +1675,7 @@ locust/test/test_stats.py::TestStatsPrinting::test_print_stats PASSED [ 78%] locust/test/test_stats.py::TestCsvStats::test_csv_stats_on_master_from_aggregated_stats PASSED [ 78%] locust/test/test_stats.py::TestCsvStats::test_csv_stats_writer PASSED [ 78%] -locust/test/test_stats.py::TestCsvStats::test_csv_stats_writer_full_history PASSED [ 79%] +locust/test/test_stats.py::TestCsvStats::test_csv_stats_writer_full_history FAILED [ 79%] locust/test/test_stats.py::TestCsvStats::test_requests_csv_quote_escaping PASSED [ 79%] locust/test/test_stats.py::TestCsvStats::test_stats_history FAILED [ 79%] locust/test/test_stats.py::TestCsvStats::test_user_count_in_csv_history_stats FAILED [ 79%] @@ -1693,8 +1729,8 @@ locust/test/test_util.py::TestRounding::test_rounding_up PASSED [ 88%] locust/test/test_wait_time.py::TestWaitTime::test_between PASSED [ 88%] locust/test/test_wait_time.py::TestWaitTime::test_constant PASSED [ 88%] -locust/test/test_wait_time.py::TestWaitTime::test_constant_throughput PASSED [ 88%] -locust/test/test_wait_time.py::TestWaitTime::test_default_wait_time PASSED [ 89%] +locust/test/test_wait_time.py::TestWaitTime::test_constant_throughput FAILED [ 88%] +locust/test/test_wait_time.py::TestWaitTime::test_default_wait_time FAILED [ 89%] locust/test/test_web.py::TestWebUI::test_custom_argument_dropdown PASSED [ 89%] locust/test/test_web.py::TestWebUI::test_custom_shape_deactivate_num_users_and_spawn_rate PASSED [ 89%] locust/test/test_web.py::TestWebUI::test_custom_shape_with_use_common_options_keep_num_users_and_spawn_rate PASSED [ 89%] @@ -1757,6 +1793,94 @@ locust/test/test_zmqrpc.py::ZMQRPC_tests::test_rpc_error PASSED [100%] =================================== FAILURES =================================== +_____________________ TestLargeScale.test_distribute_users _____________________ + +self = + + def test_distribute_users(self): + for user_classes in [self.weighted_user_classes, self.fixed_user_classes_1M, self.mixed_users]: + workers = [WorkerNode(str(i)) for i in range(10_000)] + + target_user_count = 1_000_000 + + users_dispatcher = UsersDispatcher(worker_nodes=workers, user_classes=user_classes) + + ts = time.perf_counter() + users_on_workers, user_gen, worker_gen, active_users = users_dispatcher._distribute_users( + target_user_count=target_user_count + ) + delta = time.perf_counter() - ts + + # Because tests are run with coverage, the code will be slower. + # We set the pass criterion to 7000ms, but in real life, the + # `_distribute_users` method runs faster than this. +> self.assertLessEqual(1000 * delta, 7000) +E AssertionError: 7485.4754930129275 not less than or equal to 7000 + +locust/test/test_dispatch.py:2074: AssertionError +_ TestLargeScale.test_ramp_up_from_0_to_100_000_users_with_50_user_classes_and_1000_workers_and_5000_spawn_rate _ + +self = + + def test_ramp_up_from_0_to_100_000_users_with_50_user_classes_and_1000_workers_and_5000_spawn_rate(self): + for user_classes in [ + self.weighted_user_classes, + self.fixed_user_classes_1M, + self.fixed_user_classes_10k, + self.mixed_users, + ]: + workers = [WorkerNode(str(i)) for i in range(1000)] + + target_user_count = 100_000 + + users_dispatcher = UsersDispatcher(worker_nodes=workers, user_classes=user_classes) + users_dispatcher.new_dispatch(target_user_count=target_user_count, spawn_rate=5_000) + users_dispatcher._wait_between_dispatch = 0 + + all_dispatched_users = list(users_dispatcher) + + tol = 0.2 +> self.assertTrue( + all( + dispatch_iteration_duration <= tol + for dispatch_iteration_duration in users_dispatcher.dispatch_iteration_durations + ), + "One or more dispatch took more than {:.0f}s to compute (max = {}ms)".format( + tol * 1000, 1000 * max(users_dispatcher.dispatch_iteration_durations) + ), + ) +E AssertionError: False is not true : One or more dispatch took more than 200s to compute (max = 366.8000749312341ms) + +locust/test/test_dispatch.py:2096: AssertionError +______________ TestFastHttpUserClass.test_client_pool_concurrency ______________ + +self = + + def test_client_pool_concurrency(self): + class MyUser(FastHttpUser): + host = "http://127.0.0.1:%i" % self.port + + @task + def t(self): + def concurrent_request(url): + response = self.client.get(url) + assert response.status_code == 200 + + pool = gevent.pool.Pool() + urls = ["/slow?delay=0.2"] * 20 # these urls are all the same, but they could be different + for url in urls: + pool.spawn(concurrent_request, url) + pool.join() + + user = MyUser(self.environment) + before_requests = time.time() + user.t() + after_requests = time.time() + expected_delta = 0.4 # 20 requests with concurrency 10 and response time 0.2 +> self.assertAlmostEqual(before_requests + expected_delta, after_requests, delta=0.1) +E AssertionError: 1741336025.853372 != 1741336026.0537627 within 0.1 delta (0.20039057731628418 difference) + +locust/test/test_fasthttp.py:589: AssertionError _______________ TestFastHttpUserClass.test_max_redirect_setting ________________ self = @@ -1846,9 +1970,28 @@ E AssertionError: Request took longer than 0.6 even though FastHttpUser.network_timeout was set to 0.5 src/gevent/_gevent_c_greenlet_primitives.pxd:35: AssertionError +______________________ TestHttpSession.test_event_measure ______________________ + +self = + + def test_event_measure(self): + kwargs = {} + + def on_request(**kw): + kwargs.update(**kw) + + self.environment.events.request.add_listener(on_request) + + with self.environment.events.request.measure("GET", "/test") as request_meta: + time.sleep(0.001) + +> self.assertTrue(1 <= kwargs["response_time"] <= 1.5, kwargs["response_time"]) +E AssertionError: False is not true : 3.935251967050135 + +locust/test/test_http.py:293: AssertionError _________________ TestLoadLocustfile.test_locustfile_from_url __________________ -self = +self = def _new_conn(self) -> socket.socket: """Establish a socket connection and set nodelay settings on it. @@ -2064,7 +2207,7 @@ The above exception was the direct cause of the following exception: -self = +self = method = 'GET', url = '/locustio/locust/master/examples/basic.py', body = None headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate, br', 'Accept': '*/*', 'Connection': 'keep-alive'} retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) @@ -2298,7 +2441,7 @@ self.sock = sock = self._new_conn() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = +self = def _new_conn(self) -> socket.socket: """Establish a socket connection and set nodelay settings on it. @@ -2314,13 +2457,13 @@ ) except socket.gaierror as e: > raise NameResolutionError(self.host, self, e) from e -E urllib3.exceptions.NameResolutionError: : Failed to resolve 'raw.githubusercontent.com' ([Errno -3] Temporary failure in name resolution) +E urllib3.exceptions.NameResolutionError: : Failed to resolve 'raw.githubusercontent.com' ([Errno -3] Temporary failure in name resolution) /usr/lib/python3/dist-packages/urllib3/connection.py:205: NameResolutionError The above exception was the direct cause of the following exception: -self = +self = request = , stream = False timeout = Timeout(connect=None, read=None, total=None), verify = True cert = None, proxies = OrderedDict({'no': 'localhost'}) @@ -2402,9 +2545,9 @@ self = Retry(total=0, connect=None, read=False, redirect=None, status=None) method = 'GET', url = '/locustio/locust/master/examples/basic.py' response = None -error = NameResolutionError(": Failed to resolve 'raw.githubusercontent.com' ([Errno -3] Temporary failure in name resolution)") -_pool = -_stacktrace = +error = NameResolutionError(": Failed to resolve 'raw.githubusercontent.com' ([Errno -3] Temporary failure in name resolution)") +_pool = +_stacktrace = def increment( self, @@ -2498,7 +2641,7 @@ if new_retry.is_exhausted(): reason = error or ResponseError(cause) > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] -E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='raw.githubusercontent.com', port=443): Max retries exceeded with url: /locustio/locust/master/examples/basic.py (Caused by NameResolutionError(": Failed to resolve 'raw.githubusercontent.com' ([Errno -3] Temporary failure in name resolution)")) +E urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='raw.githubusercontent.com', port=443): Max retries exceeded with url: /locustio/locust/master/examples/basic.py (Caused by NameResolutionError(": Failed to resolve 'raw.githubusercontent.com' ([Errno -3] Temporary failure in name resolution)")) /usr/lib/python3/dist-packages/urllib3/util/retry.py:519: MaxRetryError @@ -2522,7 +2665,7 @@ r = adapter.send(request, **kwargs) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = +self = request = , stream = False timeout = Timeout(connect=None, read=None, total=None), verify = True cert = None, proxies = OrderedDict({'no': 'localhost'}) @@ -2615,7 +2758,7 @@ raise SSLError(e, request=request) > raise ConnectionError(e, request=request) -E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='raw.githubusercontent.com', port=443): Max retries exceeded with url: /locustio/locust/master/examples/basic.py (Caused by NameResolutionError(": Failed to resolve 'raw.githubusercontent.com' ([Errno -3] Temporary failure in name resolution)")) +E requests.exceptions.ConnectionError: HTTPSConnectionPool(host='raw.githubusercontent.com', port=443): Max retries exceeded with url: /locustio/locust/master/examples/basic.py (Caused by NameResolutionError(": Failed to resolve 'raw.githubusercontent.com' ([Errno -3] Temporary failure in name resolution)")) /usr/lib/python3/dist-packages/requests/adapters.py:700: ConnectionError @@ -2651,7 +2794,7 @@ locust/argument_parser.py:198: SystemExit ----------------------------- Captured stderr call ----------------------------- -Failed to get locustfile from: https://raw.githubusercontent.com/locustio/locust/master/examples/basic.py. Exception: HTTPSConnectionPool(host='raw.githubusercontent.com', port=443): Max retries exceeded with url: /locustio/locust/master/examples/basic.py (Caused by NameResolutionError(": Failed to resolve 'raw.githubusercontent.com' ([Errno -3] Temporary failure in name resolution)")) +Failed to get locustfile from: https://raw.githubusercontent.com/locustio/locust/master/examples/basic.py. Exception: HTTPSConnectionPool(host='raw.githubusercontent.com', port=443): Max retries exceeded with url: /locustio/locust/master/examples/basic.py (Caused by NameResolutionError(": Failed to resolve 'raw.githubusercontent.com' ([Errno -3] Temporary failure in name resolution)")) _____________________ TestLoggingOptions.test_log_to_file ______________________ self = @@ -2702,8 +2845,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/tmp/tmp_n_k1kqd_locustfile.py', '-u', '1', '-r', ...] +self = +args = ['locust', '-f', '/tmp/tmpr7gkzh0u_locustfile.py', '-u', '1', '-r', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -3030,8 +3173,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/tmp/tmp7nsx5qh9_locustfile.py', '-u', '1', '-r', ...] +self = +args = ['locust', '-f', '/tmp/tmpqdr0h_l9_locustfile.py', '-u', '1', '-r', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -3354,8 +3497,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/tmp/tmp7qrrz3dp_locustfile.py', '-u', '1', '-r', ...] +self = +args = ['locust', '-f', '/tmp/tmphl5j_9sw_locustfile.py', '-u', '1', '-r', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -3673,8 +3816,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/tmp/tmppuf7nx6a_locustfile.py', '-t', '1', '--headless'] +self = +args = ['locust', '-f', '/tmp/tmpgtghafe1_locustfile.py', '-t', '1', '--headless'] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -4012,8 +4155,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745345_6648881_93260.py,/tmp/tmpvbu7r5xb_locustfile.py', '--legacy-ui', '--web-port', '44773', ...] +self = +args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336100_269444_10175.py,/tmp/tmp7ci59x0b_locustfile.py', '--legacy-ui', '--web-port', '40773', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -4335,8 +4478,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745345_7323592_20931.py', '--legacy-ui', '--web-port', '57573', ...] +self = +args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336100_6515691_36161.py', '--legacy-ui', '--web-port', '60903', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -4646,8 +4789,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745345_800935_85723.py', '--web-port', '41159', '-t', ...] +self = +args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336101_2990353_89258.py', '--web-port', '58183', '-t', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -4953,8 +5096,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745345_8713505_37717.py', '--web-port', '58221', '--autostart'] +self = +args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336101_8459969_29186.py', '--web-port', '44243', '--autostart'] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -5287,7 +5430,7 @@ output = proc.communicate()[0] self.assertNotIn("User1 is running", output) > self.assertIn("User2 is running", output) -E AssertionError: 'User2 is running' not found in '/build/reproducible-path/locust-2.24.0/debian/locust: 2: from: not found\n/build/reproducible-path/locust-2.24.0/debian/locust: 5: Syntax error: end of file unexpected\n' +E AssertionError: 'User2 is running' not found in '/build/reproducible-path/locust-2.24.0/debian/locust: line 2: from: command not found\n/build/reproducible-path/locust-2.24.0/debian/locust: line 5: syntax error: unexpected end of file\n' locust/test/test_main.py:1080: AssertionError _______________ StandaloneIntegrationTests.test_custom_arguments _______________ @@ -5327,8 +5470,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/tmp/tmp3dmqkx_e_locustfile.py', '--custom-string-arg', 'command_line_value', '--web-port', ...] +self = +args = ['locust', '-f', '/tmp/tmp66zcpu42_locustfile.py', '--custom-string-arg', 'command_line_value', '--web-port', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -5644,8 +5787,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/tmp/tmpy514ja7k_locustfile.py', '--autostart'] +self = +args = ['locust', '-f', '/tmp/tmp37jyxdw2_locustfile.py', '--autostart'] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -5955,8 +6098,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/tmp/tmplb9h__ij_locustfile.py'], executable = 'locust' +self = +args = ['locust', '-f', '/tmp/tmpa6wh4vyc_locustfile.py'], executable = 'locust' preexec_fn = None, close_fds = True, pass_fds = (), cwd = None, env = None universal_newlines = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 80, errread = 81 @@ -6268,8 +6411,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745346_1911213_13247.py', '--host', 'https://test.com/', '--run-time', ...] +self = +args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336104_5852742_72713.py', '--host', 'https://test.com/', '--run-time', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -6587,8 +6730,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745346_2580996_42009.py', '--host', 'https://test.com/', '--headless', ...] +self = +args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336105_1716177_64072.py', '--host', 'https://test.com/', '--headless', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -6905,8 +7048,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/tmp/tmpacy3cnn8_locustfile.py,/tmp/tmpz1w2h_94_locustfile.py'] +self = +args = ['locust', '-f', '/tmp/tmprvqwandm_locustfile.py,/tmp/tmpde65jhd6_locustfile.py'] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -7209,8 +7352,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/tmp/tmpvbsnt2nv_locustfile.py,/tmp/tmpr6nx8ucn_locustfile.py'] +self = +args = ['locust', '-f', '/tmp/tmp56j69ln3_locustfile.py,/tmp/tmphl9szpd5_locustfile.py'] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -7502,8 +7645,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/tmp/tmpq8quzsfl'], executable = 'locust' +self = +args = ['locust', '-f', '/tmp/tmp1us475xg'], executable = 'locust' preexec_fn = None, close_fds = True, pass_fds = (), cwd = None, env = None universal_newlines = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 80, errread = 81 @@ -7818,8 +7961,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745346_5291529_81090.py', '--headless', '-t', '1', ...] +self = +args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336107_7732818_65453.py', '--headless', '-t', '1', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -8133,8 +8276,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745346_59724_53648.py', '--run-time=1s', '--headless', '--exit-code-on-error', ...] +self = +args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336108_4871817_87860.py', '--run-time=1s', '--headless', '--exit-code-on-error', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -8460,8 +8603,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/tmp/tmpxhh768x2_locustfile.py', '--headless'] +self = +args = ['locust', '-f', '/tmp/tmpk6rxdnfc_locustfile.py', '--headless'] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -8768,8 +8911,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745346_7534323_11879.py', '--host', 'https://test.com/', '--headless', ...] +self = +args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336109_8465152_69400.py', '--host', 'https://test.com/', '--headless', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -9067,7 +9210,7 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = +self = args = ['locust', '--help'], executable = 'locust', preexec_fn = None close_fds = True, pass_fds = (), cwd = None, env = None universal_newlines = None, startupinfo = None, creationflags = 0, shell = False @@ -9382,8 +9525,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745346_9053884_29550.py', '--legacy-ui', '--host', 'https://test.com/', ...] +self = +args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336110_8824742_94000.py', '--legacy-ui', '--host', 'https://test.com/', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -9723,7 +9866,7 @@ output = proc.communicate()[0] stdin.close() > self.assertIn("Ramping to 1 users at a rate of 100.00 per second", output) -E AssertionError: 'Ramping to 1 users at a rate of 100.00 per second' not found in '/build/reproducible-path/locust-2.24.0/debian/locust: 2: from: not found\n/build/reproducible-path/locust-2.24.0/debian/locust: 5: Syntax error: end of file unexpected\n' +E AssertionError: 'Ramping to 1 users at a rate of 100.00 per second' not found in '/build/reproducible-path/locust-2.24.0/debian/locust: line 2: from: command not found\n/build/reproducible-path/locust-2.24.0/debian/locust: line 5: syntax error: unexpected end of file\n' locust/test/test_main.py:922: AssertionError _________ StandaloneIntegrationTests.test_invalid_percentile_parameter _________ @@ -9753,8 +9896,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/tmp/tmprmxal9d1_locustfile.py', '--autostart'] +self = +args = ['locust', '-f', '/tmp/tmp4h5ee3r2_locustfile.py', '--autostart'] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -10059,8 +10202,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745353_294138_55598.py', '--host', 'https://test.com/', '--stop-timeout', ...] +self = +args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336118_9496799_39462.py', '--host', 'https://test.com/', '--stop-timeout', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -10361,8 +10504,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/tmp/tmpec6oxh83_locustfile.py,/tmp/tmp58hoskx3_locustfile.py', '-t', '1', '--headless'] +self = +args = ['locust', '-f', '/tmp/tmphfryldsr_locustfile.py,/tmp/tmp_nvhvg_0_locustfile.py', '-t', '1', '--headless'] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -10642,7 +10785,7 @@ /usr/lib/python3/dist-packages/gevent/subprocess.py:1849: OSError ----------------------------- Captured stdout call ----------------------------- -from tmpec6oxh83_locustfile import TestUser1 +from tmphfryldsr_locustfile import TestUser1 _____________ StandaloneIntegrationTests.test_percentile_parameter _____________ @@ -10675,8 +10818,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/tmp/tmpekc40_55_locustfile.py', '--web-port', '59619', '--autostart'] +self = +args = ['locust', '-f', '/tmp/tmpbd5y7p66_locustfile.py', '--web-port', '53319', '--autostart'] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -10987,8 +11130,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/tmp/tmpahtuhh8l_locustfile.py', '--web-port', '56181', '--autostart'] +self = +args = ['locust', '-f', '/tmp/tmplhipi9ef_locustfile.py', '--web-port', '59227', '--autostart'] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -11309,8 +11452,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/tmp/tmpo_w88yag', '--autostart', '-u', '2', ...] +self = +args = ['locust', '-f', '/tmp/tmprekhn8w5', '--autostart', '-u', '2', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -11631,8 +11774,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/tmp/tmprwx3_ct1', '--headless', '-u', '2', ...] +self = +args = ['locust', '-f', '/tmp/tmp_qviprgo', '--headless', '-u', '2', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -11968,8 +12111,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745354_4482164_67660.py,/tmp/tmprm_ve138_locustfile.py', '--host', 'https://test.com/', '--headless', ...] +self = +args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336122_0790846_75641.py,/tmp/tmphg4oxu3u_locustfile.py', '--host', 'https://test.com/', '--headless', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -12267,8 +12410,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/tmp/tmp6857p1p3_locustfile.py,/tmp/tmp_iodk5tn_locustfile.py', '--class-picker'] +self = +args = ['locust', '-f', '/tmp/tmpjx1bt8zc_locustfile.py,/tmp/tmpxyj2rtc3_locustfile.py', '--class-picker'] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -12583,8 +12726,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '--headless', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745354_748202_45077.py', '--exit-code-on-error=0', '--users=1', ...] +self = +args = ['locust', '--headless', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336123_1830413_96445.py', '--exit-code-on-error=0', '--users=1', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -12902,8 +13045,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745354_9594114_37918.py', '--run-time=1s', '--users=1', '--spawn-rate=1', ...] +self = +args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336123_8256042_41106.py', '--run-time=1s', '--users=1', '--spawn-rate=1', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -13213,7 +13356,7 @@ output = proc.communicate()[0] > self.assertIn("Ramping to 10 users at a rate of 10.00 per second", output) -E AssertionError: 'Ramping to 10 users at a rate of 10.00 per second' not found in '/build/reproducible-path/locust-2.24.0/debian/locust: 2: from: not found\n/build/reproducible-path/locust-2.24.0/debian/locust: 5: Syntax error: end of file unexpected\n' +E AssertionError: 'Ramping to 10 users at a rate of 10.00 per second' not found in '/build/reproducible-path/locust-2.24.0/debian/locust: line 2: from: command not found\n/build/reproducible-path/locust-2.24.0/debian/locust: line 5: syntax error: unexpected end of file\n' locust/test/test_main.py:1022: AssertionError _____________ StandaloneIntegrationTests.test_spawning_with_fixed ______________ @@ -13272,7 +13415,7 @@ output = proc.communicate()[0] > self.assertIn("Ramping to 10 users at a rate of 10.00 per second", output) -E AssertionError: 'Ramping to 10 users at a rate of 10.00 per second' not found in '/build/reproducible-path/locust-2.24.0/debian/locust: 2: from: not found\n/build/reproducible-path/locust-2.24.0/debian/locust: 5: Syntax error: end of file unexpected\n' +E AssertionError: 'Ramping to 10 users at a rate of 10.00 per second' not found in '/build/reproducible-path/locust-2.24.0/debian/locust: line 2: from: command not found\n/build/reproducible-path/locust-2.24.0/debian/locust: line 5: syntax error: unexpected end of file\n' locust/test/test_main.py:987: AssertionError _________________ StandaloneIntegrationTests.test_web_options __________________ @@ -13298,8 +13441,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745355_1234903_87840.py', '--web-host', '127.0.0.2', '--web-port', ...] +self = +args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336125_5031052_39910.py', '--web-host', '127.0.0.2', '--web-port', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -13603,8 +13746,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/tmp/tmp81igjwi5_locustfile.py'], executable = 'locust' +self = +args = ['locust', '-f', '/tmp/tmpuf48luze_locustfile.py'], executable = 'locust' preexec_fn = None, close_fds = True, pass_fds = (), cwd = None, env = None universal_newlines = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 81, errread = 82 @@ -13899,8 +14042,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745355_4639788_41809.py,/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745355_4641452_25146.py'] +self = +args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336126_7355995_7627.py,/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336126_7359674_43555.py'] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -14195,8 +14338,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/tmp/tmpdex6fqdu'], executable = 'locust' +self = +args = ['locust', '-f', '/tmp/tmp1c_ptvmg'], executable = 'locust' preexec_fn = None, close_fds = True, pass_fds = (), cwd = None, env = None universal_newlines = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 81, errread = 82 @@ -14520,8 +14663,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745355_722381_51148.py,/tmp/tmpfvg3_vux_locustfile.py'] +self = +args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336127_9669528_65235.py,/tmp/tmp7cre5b0e_locustfile.py'] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -14842,8 +14985,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745355_7913995_56638.py', '--headless', '--master', '--expect-workers', ...] +self = +args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336128_2956536_18599.py', '--headless', '--master', '--expect-workers', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -15174,8 +15317,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745355_8565757_24334.py', '--headless', '--master', '--expect-workers', ...] +self = +args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336128_7888951_64860.py', '--headless', '--master', '--expect-workers', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -15498,8 +15641,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745355_971408_77594.py', '--headless', '--master', '--expect-workers', ...] +self = +args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336129_5630293_11040.py', '--headless', '--master', '--expect-workers', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -15829,8 +15972,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745356_0400352_93293.py', '--headless', '--master', '--expect-workers', ...] +self = +args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336130_1248114_17552.py', '--headless', '--master', '--expect-workers', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -16145,8 +16288,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745356_1088622_1896', '--headless', '--master'] +self = +args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336130_829976_45600', '--headless', '--master'] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -16453,8 +16596,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745356_1799142_64669.py', '--headless', '--master', '--expect-workers', ...] +self = +args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336131_0594883_29448.py', '--headless', '--master', '--expect-workers', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -16776,8 +16919,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745356_2500248_68669.py', '--host', 'http://google.com', '--headless', ...] +self = +args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336131_4688363_34770.py', '--host', 'http://google.com', '--headless', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -17096,8 +17239,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745356_3198917_58020.py', '--headless', '--master', '--expect-workers', ...] +self = +args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336131_8334274_90541.py', '--headless', '--master', '--expect-workers', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -17411,7 +17554,7 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = +self = args = ['locust', '-f', '-', '--worker'], executable = 'locust' preexec_fn = None, close_fds = True, pass_fds = (), cwd = None, env = None universal_newlines = None, startupinfo = None, creationflags = 0, shell = False @@ -17711,7 +17854,7 @@ assert False, f"locust process never finished: {command}" self.assertNotIn("Traceback", stderr) > self.assertIn("(index 3) reported as ready", stderr) -E AssertionError: '(index 3) reported as ready' not found in '/build/reproducible-path/locust-2.24.0/debian/locust: 2: from: not found\n/build/reproducible-path/locust-2.24.0/debian/locust: 5: Syntax error: end of file unexpected\n' +E AssertionError: '(index 3) reported as ready' not found in '/build/reproducible-path/locust-2.24.0/debian/locust: line 2: from: command not found\n/build/reproducible-path/locust-2.24.0/debian/locust: line 5: syntax error: unexpected end of file\n' locust/test/test_main.py:1993: AssertionError ____________ DistributedIntegrationTests.test_processes_autodetect _____________ @@ -17736,7 +17879,7 @@ assert False, f"locust process never finished: {command}" self.assertNotIn("Traceback", stderr) > self.assertIn("(index 0) reported as ready", stderr) -E AssertionError: '(index 0) reported as ready' not found in '/build/reproducible-path/locust-2.24.0/debian/locust: 2: from: not found\n/build/reproducible-path/locust-2.24.0/debian/locust: 5: Syntax error: end of file unexpected\n' +E AssertionError: '(index 0) reported as ready' not found in '/build/reproducible-path/locust-2.24.0/debian/locust: line 2: from: command not found\n/build/reproducible-path/locust-2.24.0/debian/locust: line 5: syntax error: unexpected end of file\n' locust/test/test_main.py:2013: AssertionError ______________ DistributedIntegrationTests.test_processes_ctrl_c _______________ @@ -17770,8 +17913,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745356_5493715_55798.py', '--processes', '4', '--headless', ...] +self = +args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336134_4931045_18639.py', '--processes', '4', '--headless', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -18078,8 +18221,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745356_643559_49503.py', '--processes', '4', '-L', ...] +self = +args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336135_6849294_21379.py', '--processes', '4', '-L', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -18404,7 +18547,7 @@ self.assertNotIn("Traceback", master_stderr) self.assertNotIn("Gave up waiting for workers to connect", master_stderr) > self.assertIn("(index 3) reported as ready", master_stderr) -E AssertionError: '(index 3) reported as ready' not found in '/build/reproducible-path/locust-2.24.0/debian/locust: 2: from: not found\n/build/reproducible-path/locust-2.24.0/debian/locust: 5: Syntax error: end of file unexpected\n' +E AssertionError: '(index 3) reported as ready' not found in '/build/reproducible-path/locust-2.24.0/debian/locust: line 2: from: command not found\n/build/reproducible-path/locust-2.24.0/debian/locust: line 5: syntax error: unexpected end of file\n' locust/test/test_main.py:2058: AssertionError ______ DistributedIntegrationTests.test_processes_workers_quit_unexpected ______ @@ -18443,8 +18586,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745356_7694001_58582.py', '--processes', '2', '--worker'] +self = +args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336137_2309616_37600.py', '--processes', '2', '--worker'] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -18765,8 +18908,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745356_843941_4179.py', '--headless', '--master', '--expect-workers', ...] +self = +args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336138_3128715_92358.py', '--headless', '--master', '--expect-workers', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -19083,8 +19226,8 @@ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = -args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1775745356_9135065_62077.py', '--master', '--headless', '--expect-workers', ...] +self = +args = ['locust', '-f', '/build/reproducible-path/locust-2.24.0/locust/test/mock_locustfile_1741336139_4127138_5634.py', '--master', '--headless', '--expect-workers', ...] executable = 'locust', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, universal_newlines = None, startupinfo = None creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11 @@ -19362,6 +19505,128 @@ E OSError: [Errno 8] Exec format error: 'locust' /usr/lib/python3/dist-packages/gevent/subprocess.py:1849: OSError +______________________ TestLocustRunner.test_cpu_warning _______________________ + +self = + + def test_cpu_warning(self): + _monitor_interval = runners.CPU_MONITOR_INTERVAL + runners.CPU_MONITOR_INTERVAL = 2.0 + try: + + class CpuUser(User): + wait_time = constant(0.001) + + @task + def cpu_task(self): + for i in range(1000000): + _ = 3 / 2 + + environment = Environment(user_classes=[CpuUser]) + environment._cpu_warning_event_triggered = False + + def cpu_warning(environment, cpu_usage, **kwargs): + environment._cpu_warning_event_triggered = True + environment._cpu_usage = cpu_usage + + environment.events.cpu_warning.add_listener(cpu_warning) + runner = LocalRunner(environment) + self.assertFalse(runner.cpu_warning_emitted) + runner.spawn_users({CpuUser.__name__: 1}, wait=False) + sleep(2.5) +> self.assertTrue(environment._cpu_warning_event_triggered) +E AssertionError: False is not true + +locust/test/test_runners.py:172: AssertionError +_ TestLocustRunner.test_runner_quit_can_run_on_stop_for_multiple_users_concurrently _ + +self = + + def test_runner_quit_can_run_on_stop_for_multiple_users_concurrently(self): + class BaseUser(User): + stop_count = 0 + + @task + def trigger(self): + pass + + def on_stop(self): + gevent.sleep(0.1) + BaseUser.stop_count += 1 + + runner = Environment(user_classes=[BaseUser]).create_local_runner() + users = runner.spawn_users({BaseUser.__name__: 10}, wait=False) + self.assertEqual(10, len(users)) + timeout = gevent.Timeout(0.3) + timeout.start() + try: +> runner.quit() + +locust/test/test_runners.py:451: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +locust/runners.py:415: in quit + self.stop() +locust/runners.py:562: in stop + super().stop() +locust/runners.py:402: in stop + self.stop_users(self.user_classes_count) +locust/runners.py:284: in stop_users + async_calls_to_stop.join() +/usr/lib/python3/dist-packages/gevent/pool.py:430: in join + result = self._empty_event.wait(timeout=timeout) +src/gevent/event.py:164: in gevent._gevent_cevent.Event.wait + ??? +src/gevent/_abstract_linkable.py:521: in gevent._gevent_c_abstract_linkable.AbstractLinkable._wait + ??? +src/gevent/_abstract_linkable.py:487: in gevent._gevent_c_abstract_linkable.AbstractLinkable._wait_core + ??? +src/gevent/_abstract_linkable.py:496: in gevent._gevent_c_abstract_linkable.AbstractLinkable._wait_core + ??? +src/gevent/_abstract_linkable.py:490: in gevent._gevent_c_abstract_linkable.AbstractLinkable._wait_core + ??? +src/gevent/_abstract_linkable.py:442: in gevent._gevent_c_abstract_linkable.AbstractLinkable._AbstractLinkable__wait_to_be_notified + ??? +src/gevent/_abstract_linkable.py:451: in gevent._gevent_c_abstract_linkable.AbstractLinkable._switch_to_hub + ??? +src/gevent/_greenlet_primitives.py:61: in gevent._gevent_c_greenlet_primitives.SwitchOutGreenletWithLoop.switch + ??? +src/gevent/_greenlet_primitives.py:65: in gevent._gevent_c_greenlet_primitives.SwitchOutGreenletWithLoop.switch + ??? +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + +> ??? +E gevent.timeout.Timeout: 0.3 seconds + +src/gevent/_gevent_c_greenlet_primitives.pxd:35: Timeout + +During handling of the above exception, another exception occurred: + +self = + + def test_runner_quit_can_run_on_stop_for_multiple_users_concurrently(self): + class BaseUser(User): + stop_count = 0 + + @task + def trigger(self): + pass + + def on_stop(self): + gevent.sleep(0.1) + BaseUser.stop_count += 1 + + runner = Environment(user_classes=[BaseUser]).create_local_runner() + users = runner.spawn_users({BaseUser.__name__: 10}, wait=False) + self.assertEqual(10, len(users)) + timeout = gevent.Timeout(0.3) + timeout.start() + try: + runner.quit() + except gevent.Timeout: +> self.fail("Got Timeout exception, runner must have hung somehow.") +E AssertionError: Got Timeout exception, runner must have hung somehow. + +locust/test/test_runners.py:453: AssertionError ________ TestMasterRunner.test_attributes_populated_when_calling_start _________ self = @@ -19438,67 +19703,12 @@ ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (fake_client0). That's not going to work. ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (fake_client1). That's not going to work. ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (fake_client2). That's not going to work. -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (fake_client3). That's not going to work. ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (fake_client4). That's not going to work. INFO locust.runners:runners.py:329 Shape test starting. INFO locust.runners:runners.py:337 Shape worker starting INFO locust.runners:runners.py:356 Shape test updating to 5 users at 5.00 spawn rate WARNING locust.runners:runners.py:743 You can't start a distributed test before at least one worker processes has connected -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines -WARNING root:runners.py:305 CPU usage above 90%! This may constrain your throughput and may even give inconsistent response time measurements! See https://docs.locust.io/en/stable/running-distributed.html for how to distribute the load over multiple CPU cores or machines ______________ TestMasterRunner.test_custom_shape_scale_interval _______________ self = @@ -19554,6 +19764,8 @@ INFO locust.runners:runners.py:337 Shape worker starting INFO locust.runners:runners.py:356 Shape test updating to 1 users at 1.00 spawn rate WARNING locust.runners:runners.py:743 You can't start a distributed test before at least one worker processes has connected +INFO locust.runners:runners.py:356 Shape test updating to 1 users at 5.00 spawn rate +WARNING locust.runners:runners.py:743 You can't start a distributed test before at least one worker processes has connected _________________ TestMasterRunner.test_custom_shape_scale_up __________________ self = @@ -19606,6 +19818,7 @@ INFO locust.runners:runners.py:337 Shape worker starting INFO locust.runners:runners.py:356 Shape test updating to 1 users at 1.00 spawn rate WARNING locust.runners:runners.py:743 You can't start a distributed test before at least one worker processes has connected +INFO locust.runners:runners.py:342 Shape test stopping _____________ TestMasterRunner.test_last_worker_missing_stops_test _____________ self = @@ -19667,7 +19880,7 @@ WARNING locust.runners:runners.py:1115 Got spawning message from unknown worker fake_client1. Asking worker to quit. WARNING locust.runners:runners.py:1115 Got spawning message from unknown worker fake_client2. Asking worker to quit. WARNING locust.runners:runners.py:1115 Got spawning message from unknown worker fake_client3. Asking worker to quit. -INFO locust.runners:runners.py:356 Shape test updating to 1 users at 5.00 spawn rate +INFO locust.runners:runners.py:356 Shape test updating to 2 users at 2.00 spawn rate WARNING locust.runners:runners.py:743 You can't start a distributed test before at least one worker processes has connected INFO locust.runners:runners.py:933 Worker 0 failed to send heartbeat, setting state to missing. INFO locust.runners:runners.py:933 Worker 1 failed to send heartbeat, setting state to missing. @@ -19708,6 +19921,7 @@ WARNING locust.runners:runners.py:743 You can't start a distributed test before at least one worker processes has connected WARNING locust.runners:runners.py:1115 Got spawning message from unknown worker fake_client1. Asking worker to quit. WARNING locust.runners:runners.py:1115 Got spawning message from unknown worker fake_client2. Asking worker to quit. +INFO locust.runners:runners.py:342 Shape test stopping ___________ TestMasterRunner.test_master_discard_first_client_ready ____________ self = @@ -19741,7 +19955,7 @@ locust/test/test_runners.py:2162: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = , k = 'fake_client' +self = , k = 'fake_client' def __getitem__(self, k: str) -> WorkerNode: > return self._worker_nodes[k] @@ -19750,14 +19964,11 @@ locust/runners.py:636: KeyError ------------------------------ Captured log call ------------------------------- ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (fake_client). That's not going to work. -INFO locust.runners:runners.py:356 Shape test updating to 2 users at 2.00 spawn rate +INFO locust.runners:runners.py:356 Shape test updating to 3 users at 3.00 spawn rate WARNING locust.runners:runners.py:743 You can't start a distributed test before at least one worker processes has connected -INFO locust.runners:runners.py:356 Shape test updating to 2 users at 2.00 spawn rate +INFO locust.runners:runners.py:356 Shape test updating to 4 users at 4.00 spawn rate WARNING locust.runners:runners.py:743 You can't start a distributed test before at least one worker processes has connected INFO locust.runners:runners.py:342 Shape test stopping -INFO locust.runners:runners.py:342 Shape test stopping -INFO locust.runners:runners.py:356 Shape test updating to 3 users at 3.00 spawn rate -WARNING locust.runners:runners.py:743 You can't start a distributed test before at least one worker processes has connected ________________ TestMasterRunner.test_master_reset_connection _________________ self = @@ -19778,8 +19989,6 @@ locust/test/test_runners.py:2998: AssertionError ------------------------------ Captured log call ------------------------------- -INFO locust.runners:runners.py:356 Shape test updating to 4 users at 4.00 spawn rate -WARNING locust.runners:runners.py:743 You can't start a distributed test before at least one worker processes has connected ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (fake_client). That's not going to work. INFO locust.runners:runners.py:959 Resetting RPC server and all worker connections. ________ TestMasterRunner.test_rebalance_locust_users_on_worker_connect ________ @@ -20162,6 +20371,10 @@ WARNING locust.runners:runners.py:1115 Got spawning message from unknown worker fake_client1. Asking worker to quit. WARNING locust.runners:runners.py:1115 Got spawning message from unknown worker fake_client2. Asking worker to quit. WARNING locust.runners:runners.py:1115 Got spawning message from unknown worker fake_client3. Asking worker to quit. +INFO locust.runners:runners.py:933 Worker 1 failed to send heartbeat, setting state to missing. +INFO locust.runners:runners.py:933 Worker 2 failed to send heartbeat, setting state to missing. +INFO locust.runners:runners.py:933 Worker 3 failed to send heartbeat, setting state to missing. +INFO locust.runners:runners.py:941 The last worker went missing, stopping test. ___________ TestMasterRunner.test_worker_sends_bad_message_to_master ___________ self = @@ -20208,6 +20421,489 @@ locust/test/test_runners.py:3194: AssertionError ------------------------------ Captured log call ------------------------------- ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (zeh_fake_client1). That's not going to work. +_____________ TestStopTimeout.test_kill_locusts_with_stop_timeout ______________ + +self = + + def test_kill_locusts_with_stop_timeout(self): + short_time = 0.05 + + class MyTaskSet(TaskSet): + @task + def my_task(self): + MyTaskSet.state = "first" + gevent.sleep(short_time) + MyTaskSet.state = "second" # should only run when run time + stop_timeout is > short_time + gevent.sleep(short_time) + MyTaskSet.state = "third" # should only run when run time + stop_timeout is > short_time * 2 + + class MyTestUser(User): + tasks = [MyTaskSet] + + environment = create_environment([MyTestUser], mocked_options()) + runner = environment.create_local_runner() + runner.start(1, 1) + gevent.sleep(short_time / 2) + runner.stop_users({MyTestUser.__name__: 1}) +> self.assertEqual("first", MyTaskSet.state) +E AssertionError: 'first' != 'third' +E - first +E + third + +locust/test/test_runners.py:4105: AssertionError +------------------------------ Captured log call ------------------------------- +INFO locust.runners:runners.py:499 Ramping to 1 users at a rate of 1.00 per second +INFO locust.runners:runners.py:537 All users spawned: {"MyTestUser": 1} (1 total users) +INFO locust.runners:runners.py:141 Resetting stats +______________________ TestStopTimeout.test_stop_timeout _______________________ + +self = + + def test_stop_timeout(self): + short_time = 0.05 + + class MyTaskSet(TaskSet): + @task + def my_task(self): + MyTaskSet.state = "first" + gevent.sleep(short_time) + MyTaskSet.state = "second" # should only run when run time + stop_timeout is > short_time + gevent.sleep(short_time) + MyTaskSet.state = "third" # should only run when run time + stop_timeout is > short_time * 2 + + class MyTestUser(User): + tasks = [MyTaskSet] + + environment = Environment(user_classes=[MyTestUser]) + runner = environment.create_local_runner() + runner.start(1, 1, wait=False) + gevent.sleep(short_time / 2) + runner.quit() +> self.assertEqual("first", MyTaskSet.state) +E AssertionError: 'first' != 'third' +E - first +E + third + +locust/test/test_runners.py:3944: AssertionError +------------------------------ Captured log call ------------------------------- +INFO locust.runners:runners.py:499 Ramping to 1 users at a rate of 1.00 per second +INFO locust.runners:runners.py:537 All users spawned: {"MyTestUser": 1} (1 total users) +______________ TestStopTimeout.test_stop_timeout_during_on_start _______________ + +self = + + def test_stop_timeout_during_on_start(self): + short_time = 0.05 + + class MyTaskSet(TaskSet): + finished_on_start = False + my_task_run = False + + def on_start(self): + gevent.sleep(short_time) + MyTaskSet.finished_on_start = True + + @task + def my_task(self): + MyTaskSet.my_task_run = True + + class MyTestUser(User): + tasks = [MyTaskSet] + + environment = create_environment([MyTestUser], mocked_options()) + environment.stop_timeout = short_time + runner = environment.create_local_runner() + runner.start(1, 1) + gevent.sleep(short_time / 2) + runner.quit() + + self.assertTrue(MyTaskSet.finished_on_start) +> self.assertFalse(MyTaskSet.my_task_run) +E AssertionError: True is not false + +locust/test/test_runners.py:3996: AssertionError +------------------------------ Captured log call ------------------------------- +INFO locust.runners:runners.py:499 Ramping to 1 users at a rate of 1.00 per second +INFO locust.runners:runners.py:537 All users spawned: {"MyTestUser": 1} (1 total users) +INFO locust.runners:runners.py:141 Resetting stats +______________ TestStopTimeout.test_stop_timeout_exit_during_wait ______________ + +self = + + def test_stop_timeout_exit_during_wait(self): + short_time = 0.05 + + class MyTaskSet(TaskSet): + @task + def my_task(self): + pass + + class MyTestUser(User): + tasks = [MyTaskSet] + wait_time = constant(1) + + environment = Environment(user_classes=[MyTestUser], stop_timeout=short_time) + runner = environment.create_local_runner() + runner.start(1, 1) + gevent.sleep(short_time) # sleep to make sure locust has had time to start waiting + timeout = gevent.Timeout(short_time) + timeout.start() + try: +> runner.quit() + +locust/test/test_runners.py:4017: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +locust/runners.py:415: in quit + self.stop() +locust/runners.py:562: in stop + super().stop() +locust/runners.py:402: in stop + self.stop_users(self.user_classes_count) +locust/runners.py:284: in stop_users + async_calls_to_stop.join() +/usr/lib/python3/dist-packages/gevent/pool.py:430: in join + result = self._empty_event.wait(timeout=timeout) +src/gevent/event.py:164: in gevent._gevent_cevent.Event.wait + ??? +src/gevent/_abstract_linkable.py:521: in gevent._gevent_c_abstract_linkable.AbstractLinkable._wait + ??? +src/gevent/_abstract_linkable.py:487: in gevent._gevent_c_abstract_linkable.AbstractLinkable._wait_core + ??? +src/gevent/_abstract_linkable.py:496: in gevent._gevent_c_abstract_linkable.AbstractLinkable._wait_core + ??? +src/gevent/_abstract_linkable.py:490: in gevent._gevent_c_abstract_linkable.AbstractLinkable._wait_core + ??? +src/gevent/_abstract_linkable.py:442: in gevent._gevent_c_abstract_linkable.AbstractLinkable._AbstractLinkable__wait_to_be_notified + ??? +src/gevent/_abstract_linkable.py:451: in gevent._gevent_c_abstract_linkable.AbstractLinkable._switch_to_hub + ??? +src/gevent/_greenlet_primitives.py:61: in gevent._gevent_c_greenlet_primitives.SwitchOutGreenletWithLoop.switch + ??? +src/gevent/_greenlet_primitives.py:65: in gevent._gevent_c_greenlet_primitives.SwitchOutGreenletWithLoop.switch + ??? +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + +> ??? +E gevent.timeout.Timeout: 0.05 seconds + +src/gevent/_gevent_c_greenlet_primitives.pxd:35: Timeout + +During handling of the above exception, another exception occurred: + +self = + + def test_stop_timeout_exit_during_wait(self): + short_time = 0.05 + + class MyTaskSet(TaskSet): + @task + def my_task(self): + pass + + class MyTestUser(User): + tasks = [MyTaskSet] + wait_time = constant(1) + + environment = Environment(user_classes=[MyTestUser], stop_timeout=short_time) + runner = environment.create_local_runner() + runner.start(1, 1) + gevent.sleep(short_time) # sleep to make sure locust has had time to start waiting + timeout = gevent.Timeout(short_time) + timeout.start() + try: + runner.quit() + runner.greenlet.join() + except gevent.Timeout: +> self.fail("Got Timeout exception. Waiting locusts should stop immediately, even when using stop_timeout.") +E AssertionError: Got Timeout exception. Waiting locusts should stop immediately, even when using stop_timeout. + +locust/test/test_runners.py:4020: AssertionError +------------------------------ Captured log call ------------------------------- +INFO locust.runners:runners.py:499 Ramping to 1 users at a rate of 1.00 per second +INFO locust.runners:runners.py:537 All users spawned: {"MyTestUser": 1} (1 total users) +_______________ TestStopTimeout.test_stop_timeout_with_interrupt _______________ + +self = + + def test_stop_timeout_with_interrupt(self): + short_time = 0.05 + + class MySubTaskSet(TaskSet): + @task + def a_task(self): + gevent.sleep(0) + self.interrupt(reschedule=True) + + class MyTaskSet(TaskSet): + tasks = [MySubTaskSet] + + class MyTestUser(User): + tasks = [MyTaskSet] + + environment = create_environment([MyTestUser], mocked_options()) + environment.stop_timeout = short_time + runner = environment.create_local_runner() + runner.start(1, 1, wait=True) + gevent.sleep(0) + timeout = gevent.Timeout(short_time) + timeout.start() + try: +> runner.quit() + +locust/test/test_runners.py:4047: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +locust/runners.py:415: in quit + self.stop() +locust/runners.py:562: in stop + super().stop() +locust/runners.py:402: in stop + self.stop_users(self.user_classes_count) +locust/runners.py:284: in stop_users + async_calls_to_stop.join() +/usr/lib/python3/dist-packages/gevent/pool.py:430: in join + result = self._empty_event.wait(timeout=timeout) +src/gevent/event.py:164: in gevent._gevent_cevent.Event.wait + ??? +src/gevent/_abstract_linkable.py:521: in gevent._gevent_c_abstract_linkable.AbstractLinkable._wait + ??? +src/gevent/_abstract_linkable.py:487: in gevent._gevent_c_abstract_linkable.AbstractLinkable._wait_core + ??? +src/gevent/_abstract_linkable.py:496: in gevent._gevent_c_abstract_linkable.AbstractLinkable._wait_core + ??? +src/gevent/_abstract_linkable.py:490: in gevent._gevent_c_abstract_linkable.AbstractLinkable._wait_core + ??? +src/gevent/_abstract_linkable.py:442: in gevent._gevent_c_abstract_linkable.AbstractLinkable._AbstractLinkable__wait_to_be_notified + ??? +src/gevent/_abstract_linkable.py:451: in gevent._gevent_c_abstract_linkable.AbstractLinkable._switch_to_hub + ??? +src/gevent/_greenlet_primitives.py:61: in gevent._gevent_c_greenlet_primitives.SwitchOutGreenletWithLoop.switch + ??? +src/gevent/_greenlet_primitives.py:65: in gevent._gevent_c_greenlet_primitives.SwitchOutGreenletWithLoop.switch + ??? +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + +> ??? +E gevent.timeout.Timeout: 0.05 seconds + +src/gevent/_gevent_c_greenlet_primitives.pxd:35: Timeout + +During handling of the above exception, another exception occurred: + +self = + + def test_stop_timeout_with_interrupt(self): + short_time = 0.05 + + class MySubTaskSet(TaskSet): + @task + def a_task(self): + gevent.sleep(0) + self.interrupt(reschedule=True) + + class MyTaskSet(TaskSet): + tasks = [MySubTaskSet] + + class MyTestUser(User): + tasks = [MyTaskSet] + + environment = create_environment([MyTestUser], mocked_options()) + environment.stop_timeout = short_time + runner = environment.create_local_runner() + runner.start(1, 1, wait=True) + gevent.sleep(0) + timeout = gevent.Timeout(short_time) + timeout.start() + try: + runner.quit() + runner.greenlet.join() + except gevent.Timeout: +> self.fail("Got Timeout exception. Interrupted locusts should exit immediately during stop_timeout.") +E AssertionError: Got Timeout exception. Interrupted locusts should exit immediately during stop_timeout. + +locust/test/test_runners.py:4050: AssertionError +------------------------------ Captured log call ------------------------------- +INFO locust.runners:runners.py:499 Ramping to 1 users at a rate of 1.00 per second +________ TestStopTimeout.test_stop_timeout_with_interrupt_no_reschedule ________ + +self = + + def test_stop_timeout_with_interrupt_no_reschedule(self): + state = [0] + + class MySubTaskSet(TaskSet): + @task + def a_task(self): + gevent.sleep(0.1) + state[0] = 1 + self.interrupt(reschedule=False) + + class MyTestUser(User): + tasks = [MySubTaskSet] + wait_time = constant(3) + + options = mocked_options() + options.stop_timeout = 0.3 + environment = create_environment([MyTestUser], options) + runner = environment.create_local_runner() + runner.start(1, 1, wait=True) + gevent.sleep(0) + timeout = gevent.Timeout(0.11) + timeout.start() + try: +> runner.quit() + +locust/test/test_runners.py:4077: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +locust/runners.py:415: in quit + self.stop() +locust/runners.py:562: in stop + super().stop() +locust/runners.py:402: in stop + self.stop_users(self.user_classes_count) +locust/runners.py:286: in stop_users + if not stop_group.join(timeout=self.environment.stop_timeout): +/usr/lib/python3/dist-packages/gevent/pool.py:430: in join + result = self._empty_event.wait(timeout=timeout) +src/gevent/event.py:164: in gevent._gevent_cevent.Event.wait + ??? +src/gevent/_abstract_linkable.py:521: in gevent._gevent_c_abstract_linkable.AbstractLinkable._wait + ??? +src/gevent/_abstract_linkable.py:487: in gevent._gevent_c_abstract_linkable.AbstractLinkable._wait_core + ??? +src/gevent/_abstract_linkable.py:496: in gevent._gevent_c_abstract_linkable.AbstractLinkable._wait_core + ??? +src/gevent/_abstract_linkable.py:490: in gevent._gevent_c_abstract_linkable.AbstractLinkable._wait_core + ??? +src/gevent/_abstract_linkable.py:442: in gevent._gevent_c_abstract_linkable.AbstractLinkable._AbstractLinkable__wait_to_be_notified + ??? +src/gevent/_abstract_linkable.py:451: in gevent._gevent_c_abstract_linkable.AbstractLinkable._switch_to_hub + ??? +src/gevent/_greenlet_primitives.py:61: in gevent._gevent_c_greenlet_primitives.SwitchOutGreenletWithLoop.switch + ??? +src/gevent/_greenlet_primitives.py:65: in gevent._gevent_c_greenlet_primitives.SwitchOutGreenletWithLoop.switch + ??? +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + +> ??? +E gevent.timeout.Timeout: 0.11 seconds + +src/gevent/_gevent_c_greenlet_primitives.pxd:35: Timeout + +During handling of the above exception, another exception occurred: + +self = + + def test_stop_timeout_with_interrupt_no_reschedule(self): + state = [0] + + class MySubTaskSet(TaskSet): + @task + def a_task(self): + gevent.sleep(0.1) + state[0] = 1 + self.interrupt(reschedule=False) + + class MyTestUser(User): + tasks = [MySubTaskSet] + wait_time = constant(3) + + options = mocked_options() + options.stop_timeout = 0.3 + environment = create_environment([MyTestUser], options) + runner = environment.create_local_runner() + runner.start(1, 1, wait=True) + gevent.sleep(0) + timeout = gevent.Timeout(0.11) + timeout.start() + try: + runner.quit() + runner.greenlet.join() + except gevent.Timeout: +> self.fail("Got Timeout exception. Interrupted locusts should exit immediately during stop_timeout.") +E AssertionError: Got Timeout exception. Interrupted locusts should exit immediately during stop_timeout. + +locust/test/test_runners.py:4080: AssertionError +------------------------------ Captured log call ------------------------------- +INFO locust.runners:runners.py:499 Ramping to 1 users at a rate of 1.00 per second +_______________ TestStopTimeout.test_stop_timeout_with_ramp_down _______________ + +self = + + def test_stop_timeout_with_ramp_down(self): + class MyTaskSet(TaskSet): + @task + def my_task(self): + gevent.sleep(1) + + class MyTestUser(User): + tasks = [MyTaskSet] + + environment = Environment(user_classes=[MyTestUser], stop_timeout=2) + runner = environment.create_local_runner() + + # Start load test, wait for users to start, then trigger ramp down + ts = time.perf_counter() + runner.start(10, 10, wait=False) + runner.spawning_greenlet.join() + delta = time.perf_counter() - ts + self.assertTrue( + 0 <= delta <= 0.05, f"Expected user count to increase to 10 instantaneously, instead it took {delta:f}" + ) + self.assertTrue( + runner.user_count == 10, "User count has not decreased correctly to 2, it is : %i" % runner.user_count + ) + + ts = time.perf_counter() + runner.start(2, 4, wait=False) + runner.spawning_greenlet.join() + delta = time.perf_counter() - ts +> self.assertTrue(2 <= delta <= 2.05, f"Expected user count to decrease to 2 in 2s, instead it took {delta:f}") +E AssertionError: False is not true : Expected user count to decrease to 2 in 2s, instead it took 2.481794 + +locust/test/test_runners.py:4208: AssertionError +------------------------------ Captured log call ------------------------------- +INFO locust.runners:runners.py:499 Ramping to 10 users at a rate of 10.00 per second +INFO locust.runners:runners.py:537 All users spawned: {"MyTestUser": 10} (10 total users) +INFO locust.runners:runners.py:499 Ramping to 2 users at a rate of 4.00 per second +INFO locust.runners:runners.py:537 All users spawned: {"MyTestUser": 2} (2 total users) +_______________ TestCsvStats.test_csv_stats_writer_full_history ________________ + +self = + + @mock.patch("locust.stats.CSV_STATS_INTERVAL_SEC", new=_TEST_CSV_STATS_INTERVAL_SEC) + def test_csv_stats_writer_full_history(self): + stats_writer = StatsCSVFileWriter( + self.environment, PERCENTILES_TO_REPORT, self.STATS_BASE_NAME, full_history=True + ) + + for i in range(10): + self.runner.stats.log_request("GET", "/", 100, content_length=666) + + greenlet = gevent.spawn(stats_writer) + gevent.sleep(10) + + for i in range(10): + self.runner.stats.log_request("GET", "/", 10, content_length=666) + + gevent.sleep(5) + + gevent.sleep(_TEST_CSV_STATS_INTERVAL_WAIT_SEC) + gevent.kill(greenlet) + stats_writer.close_files() + + self.assertTrue(os.path.exists(self.STATS_FILENAME)) + self.assertTrue(os.path.exists(self.STATS_HISTORY_FILENAME)) + self.assertTrue(os.path.exists(self.STATS_FAILURES_FILENAME)) + self.assertTrue(os.path.exists(self.STATS_EXCEPTIONS_FILENAME)) + + with open(self.STATS_HISTORY_FILENAME) as f: + reader = csv.DictReader(f) + rows = [r for r in reader] + +> self.assertGreaterEqual(len(rows), 130) +E AssertionError: 90 not greater than or equal to 130 + +locust/test/test_stats.py:459: AssertionError _______________________ TestCsvStats.test_stats_history ________________________ self = @@ -20348,7 +21044,7 @@ self.connect_to_master() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = +self = def connect_to_master(self): self.retry += 1 @@ -20373,125 +21069,125 @@ locust/runners.py:1444: ConnectionError ------------------------------ Captured log call ------------------------------- -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 3/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 4/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 5/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 6/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 7/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 8/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 9/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 10/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 11/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 12/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 13/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 14/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 15/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 16/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 17/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 18/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 19/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 20/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 21/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 22/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 23/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 24/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 25/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 26/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 27/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 28/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 29/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 30/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 31/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 32/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 33/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 34/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 35/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 36/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 37/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 38/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 39/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 40/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 41/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 42/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 43/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 44/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 45/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 46/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 47/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 48/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 49/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 50/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 51/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 52/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 53/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 54/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 55/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 56/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 57/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 58/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 59/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 60/60. -ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (ionos15-amd64_0c016df415564855bd080305d36b0925). That's not going to work. +ERROR locust.runners:runners.py:1009 An old (pre 2.0) worker tried to connect (i-capture-the-hostname_5f396bf8c7bb4891bb1308ac61c2e829). That's not going to work. WARNING locust.runners:runners.py:1440 Failed to connect to master 127.0.0.1:5558, retry 61/60. ______________ TestCsvStats.test_user_count_in_csv_history_stats _______________ @@ -20529,19 +21225,68 @@ reader = csv.DictReader(f) rows = [r for r in reader] - self.assertEqual(2 * user_count, len(rows)) - for i in range(int(user_count / spawn_rate)): - for _ in range(spawn_rate): - row = rows.pop(0) -> self.assertEqual("%i" % ((i + 1) * spawn_rate), row["User Count"]) -E AssertionError: '5' != '10' -E - 5 -E + 10 +> self.assertEqual(2 * user_count, len(rows)) +E AssertionError: 30 != 20 + +locust/test/test_stats.py:545: AssertionError +----------------------------- Captured stderr call ----------------------------- +Traceback (most recent call last): + File "src/gevent/greenlet.py", line 900, in gevent._gevent_cgreenlet.Greenlet.run + File "/build/reproducible-path/locust-2.24.0/locust/stats.py", line 1090, in __call__ + self.stats_writer() + ~~~~~~~~~~~~~~~~~^^ + File "/build/reproducible-path/locust-2.24.0/locust/stats.py", line 1112, in stats_writer + self.requests_csv_filehandle.seek(requests_csv_data_start) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ +ValueError: I/O operation on closed file. +2025-03-07T08:38:34Z failed with ValueError -locust/test/test_stats.py:549: AssertionError ------------------------------ Captured log call ------------------------------- INFO locust.runners:runners.py:499 Ramping to 15 users at a rate of 5.00 per second INFO locust.runners:runners.py:537 All users spawned: {"TestUser": 15} (15 total users) +____________________ TestWaitTime.test_constant_throughput _____________________ + +self = + + def test_constant_throughput(self): + class MyUser(User): + wait_time = constant_throughput(10) + + class TS(TaskSet): + pass + + ts = TS(MyUser(self.environment)) + + ts2 = TS(MyUser(self.environment)) + + previous_time = time.perf_counter() + for i in range(7): + ts.wait() + since_last_run = time.perf_counter() - previous_time +> self.assertLess(abs(0.1 - since_last_run), 0.02) +E AssertionError: 0.549990085978061 not less than 0.02 + +locust/test/test_wait_time.py:75: AssertionError +_____________________ TestWaitTime.test_default_wait_time ______________________ + +self = + + def test_default_wait_time(self): + class MyUser(User): + pass # default is wait_time = constant(0) + + class TaskSet1(TaskSet): + pass + + self.assertEqual(0, MyUser(self.environment).wait_time()) + self.assertEqual(0, TaskSet1(MyUser(self.environment)).wait_time()) + taskset = TaskSet1(MyUser(self.environment)) + start_time = time.perf_counter() + taskset.wait() +> self.assertLess(time.perf_counter() - start_time, 0.002) +E AssertionError: 0.2611374940024689 not less than 0.002 + +locust/test/test_wait_time.py:58: AssertionError =============================== warnings summary =============================== locust/test/test_fasthttp.py::TestFastHttpSsl::test_ssl_request_insecure locust/test/test_web.py::TestWebUIWithTLS::test_index_with_https @@ -20549,8 +21294,8 @@ self._context = SSLContext(ssl_version) locust/test/test_log.py: 4 warnings -locust/test/test_main.py: 38 warnings - /usr/lib/python3/dist-packages/gevent/os.py:431: DeprecationWarning: This process (pid=1637398) is multi-threaded, use of fork() may lead to deadlocks in the child. +locust/test/test_main.py: 18 warnings + /usr/lib/python3/dist-packages/gevent/os.py:431: DeprecationWarning: This process (pid=1122244) is multi-threaded, use of fork() may lead to deadlocks in the child. pid = fork() locust/test/test_web.py::TestWebUI::test_html_stats_report @@ -20574,8 +21319,12 @@ -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ +FAILED locust/test/test_dispatch.py::TestLargeScale::test_distribute_users - ... +FAILED locust/test/test_dispatch.py::TestLargeScale::test_ramp_up_from_0_to_100_000_users_with_50_user_classes_and_1000_workers_and_5000_spawn_rate +FAILED locust/test/test_fasthttp.py::TestFastHttpUserClass::test_client_pool_concurrency FAILED locust/test/test_fasthttp.py::TestFastHttpUserClass::test_max_redirect_setting FAILED locust/test/test_fasthttp.py::TestFastHttpUserClass::test_network_timeout_setting +FAILED locust/test/test_http.py::TestHttpSession::test_event_measure - Assert... FAILED locust/test/test_load_locustfile.py::TestLoadLocustfile::test_locustfile_from_url FAILED locust/test/test_log.py::TestLoggingOptions::test_log_to_file - OSErro... FAILED locust/test/test_log.py::TestLoggingOptions::test_logging_output - OSE... @@ -20636,6 +21385,8 @@ FAILED locust/test/test_main.py::DistributedIntegrationTests::test_processes_workers_quit_unexpected FAILED locust/test/test_main.py::DistributedIntegrationTests::test_worker_indexes FAILED locust/test/test_main.py::DistributedIntegrationTests::test_workers_shut_down_if_master_is_gone +FAILED locust/test/test_runners.py::TestLocustRunner::test_cpu_warning - Asse... +FAILED locust/test/test_runners.py::TestLocustRunner::test_runner_quit_can_run_on_stop_for_multiple_users_concurrently FAILED locust/test/test_runners.py::TestMasterRunner::test_attributes_populated_when_calling_start FAILED locust/test/test_runners.py::TestMasterRunner::test_custom_shape_scale_down FAILED locust/test/test_runners.py::TestMasterRunner::test_custom_shape_scale_interval @@ -20659,9 +21410,19 @@ FAILED locust/test/test_runners.py::TestMasterRunner::test_worker_missing_after_heartbeat_dead_interval FAILED locust/test/test_runners.py::TestMasterRunner::test_worker_sends_bad_message_to_master FAILED locust/test/test_runners.py::TestMasterRunner::test_worker_sends_unrecognized_message_to_master +FAILED locust/test/test_runners.py::TestStopTimeout::test_kill_locusts_with_stop_timeout +FAILED locust/test/test_runners.py::TestStopTimeout::test_stop_timeout - Asse... +FAILED locust/test/test_runners.py::TestStopTimeout::test_stop_timeout_during_on_start +FAILED locust/test/test_runners.py::TestStopTimeout::test_stop_timeout_exit_during_wait +FAILED locust/test/test_runners.py::TestStopTimeout::test_stop_timeout_with_interrupt +FAILED locust/test/test_runners.py::TestStopTimeout::test_stop_timeout_with_interrupt_no_reschedule +FAILED locust/test/test_runners.py::TestStopTimeout::test_stop_timeout_with_ramp_down +FAILED locust/test/test_stats.py::TestCsvStats::test_csv_stats_writer_full_history FAILED locust/test/test_stats.py::TestCsvStats::test_stats_history - Connecti... FAILED locust/test/test_stats.py::TestCsvStats::test_user_count_in_csv_history_stats -= 87 failed, 461 passed, 1 skipped, 15 deselected, 57 warnings in 484.46s (0:08:04) = +FAILED locust/test/test_wait_time.py::TestWaitTime::test_constant_throughput +FAILED locust/test/test_wait_time.py::TestWaitTime::test_default_wait_time - ... += 103 failed, 445 passed, 1 skipped, 15 deselected, 37 warnings in 992.38s (0:16:32) = E: pybuild pybuild:389: test: plugin custom failed with: exit code=1: PYTHONPATH=/build/reproducible-path/locust-2.24.0/.pybuild/cpython3_3.13_locust/build python3.13 -m pytest -v --ignore=examples/test_data_management.py -k 'not TestMasterWorkerRunners' dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.13 returned exit code 13 make[1]: [debian/rules:15: override_dh_auto_test] Error 25 (ignored) @@ -20700,12 +21461,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: including full source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/1064749/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/1064749/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/1632074 and its subdirectories -I: Current time: Thu Apr 9 02:43:09 -12 2026 -I: pbuilder-time-stamp: 1775745789 +I: removing directory /srv/workspace/pbuilder/1064749 and its subdirectories +I: Current time: Fri Mar 7 22:42:41 +14 2025 +I: pbuilder-time-stamp: 1741336961