• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pantsbuild / pants / 35884
0%
main: 80%

Build:
Build:
LAST BUILD BRANCH: csb/grpc-alt
DEFAULT BRANCH: main
Ran 10 Oct 2020 08:19PM UTC
Jobs 1
Files 433
Run time 39s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

pending completion
35884

push

travis-ci-com

web-flow
Fix for log messages/dynamic UI teardown conflict (#10940)

### Problem

It's sometimes possible for the act of writing to console stderr (which pants does pervasively when writing log messages) to interfere with the terminal cleanup that the dynamic UI does when shutting down. When this happens, the characters representing the spinners in the dynamic UI sometimes are left on the screen, and multi-line log messages to stderr are sometimes unexpectedly truncated.

The problem seems to be with the delay between when the code in the `teardown` method sets `self.instance` to `None`, taking the `Instance` out of the `ConsoleUI` struct; and when the future that the `teardown` method returns actually completes, when we can be sure that the dynamic UI has fully shut down. Anything that attempts to call `write_stderr` during this time runs the risk of putting the console into an inconsistent state

### Solution

The solution here is to add a bool `teardown_in_progress` and a mpsc sender/receiver pair on the `ConsoleUI` struct. `teardown_in_progress` is normally false, but when `teardown` is called the first thing that method does is set it to true, then create the future that shuts down the dynamic UI, with an `.and_then` that uses the mpsc sender to send a message as the very last bit of work in the future.

If `teardown_in_progress` is true, when `write_stderr` is called it will block on receiving that send message, then set `teardown_in_progress` to false and print the message to stderr normally. This ensures that nothing tries to print to stderr while the dynamic UI is in the process of shutting down.

0 of 29583 relevant lines covered (0.0%)

0.0 hits per line

Jobs
ID Job ID Ran Files Coverage
5 35884.5 (PANTS_CONFIG_FILES="${TRAVIS_BUILD_DIR}/pants.travis-ci.toml" PANTS_DYNAMIC_UI=false LC_ALL="en_US.UTF-8" AWS_BUCKET=ci-public.pantsbuild.org BOOTSTRAPPED_PEX_KEY_PREFIX=daily/${TRAVIS_BUILD_NUMBER}/${TRAVIS_BUILD_ID}/pants.pex NATIVE_ENGINE_SO_KEY_PREFIX=monthly/native_engine_so PYENV_PY27_VERSION=2.7.18 PYENV_PY36_VERSION=3.6.10 PYENV_PY37_VERSION=3.7.7 PYENV_PY38_VERSION=3.8.3 PYENV_ROOT_OSX=${HOME}/.pants_pyenv PYENV_ROOT="${PYENV_ROOT:-${PYENV_ROOT_OSX}}" PATH="${PYENV_ROOT}/shims:${PATH}" AWS_CLI_ROOT="${HOME}/.aws_cli" AWS_ACCESS_KEY_ID__TO_BE_REEXPORTED_ON_DEPLOYS=AKIAV6A6G7RQ2HFZ5KP7 AWS_SECRET_ACCESS_KEY=[secure] RUST_BACKTRACE="all" BOOTSTRAPPED_PEX_KEY_SUFFIX=py36.linux PANTS_REMOTE_CA_CERTS_PATH=/usr/lib/google-cloud-sdk/lib/third_party/grpc/_cython/_credentials/roots.pem CACHE_NAME=python_tests.py36) 10 Oct 2020 08:19PM UTC 0
0.0
Travis Job 35884.5
Source Files on build 35884
Detailed source file information is not available for this build.
  • Back to Repo
  • Build #35884
  • 842b9e22 on github
  • Prev Build on master (#35883)
  • Next Build on master (#35886)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc