Skip to content

Conversation

texodus
Copy link
Member

@texodus texodus commented Jul 4, 2023

Fixes two tests which flapped incessantly, causing endless CI headaches.

@finos/perspective-cli's test suite must start and stop a Perspective server, which causes some log spam as the browser and server are consecutively shutdown. These errors are innocuous in this case as they occur after the server is in a shutdown-prepare state, but the logging itself is important as the condition View method cancelled can occur in other contexts unexpectedly. Moving this initialization out of the test prevents it from failing.
https://github.com/finos/perspective/actions/runs/5427137814/jobs/9870282667

perspective-python's recent multi-threading support added tests to check for concurrency race conditions, and uncovered one in CI. Debugging these failing tests uncovered that update() calls were being conflated correctly, but the internal state which "marked" a Table as having pending updates that needed to be applied was subject to race condition, which left the engine in a state where some updates at the end of a long stream of subsequent updates may become "stuck" in this state, pending application to the table but without the flag set to trigger the engine to apply it. In practice, the next update() call will flush the pending ones, but it still means an update may not resolve in the correct order (or for a long time and/or appear stuck). As the tests don't ever interact with the engine again after the test setup is applied, this test failed infrequently, making it difficult to detect until a full build was run.
https://github.com/finos/perspective/actions/runs/5448608452/jobs/9912906432

@texodus texodus added bug Concrete, reproducible bugs and removed cla-present labels Jul 4, 2023
@texodus texodus merged commit cab1100 into master Jul 4, 2023
@texodus texodus deleted the test-fixes branch July 4, 2023 17:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Concrete, reproducible bugs
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant