Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TestChild::is_running can return true after a panic log #1781

Closed
teor2345 opened this issue Feb 19, 2021 · 1 comment
Closed

TestChild::is_running can return true after a panic log #1781

teor2345 opened this issue Feb 19, 2021 · 1 comment
Labels
A-rust Area: Updates to Rust code C-bug Category: This is a bug I-integration-fail Continuous integration fails, including build and test failures

Comments

@teor2345
Copy link
Contributor

teor2345 commented Feb 19, 2021

Version

Zebra main branch, around PR #1777.

Platform

Windows CI and macOS CI

Description

In our Windows and macOS CI, TestChild::is_running can return true after the child process has logged a panic.

On Windows, kill().is_ok() can also return true after a panic log. (We didn't test it on macOS.)

The process might be still running after the panic, or there might be a bug in our use of the process API. (Or perhaps a bug in Rust's process implementation for Windows and macOS?.)

There aren't any process labels in the logs, but know it is the second process in the conflict tests that panics, because the log times for that process are 10 seconds after the first process.

Commands

zebrad start, with the conflict test configs.

@teor2345 teor2345 added C-bug Category: This is a bug A-rust Area: Updates to Rust code S-needs-triage Status: A bug report needs triage P-Medium I-integration-fail Continuous integration fails, including build and test failures labels Feb 19, 2021
teor2345 added a commit to teor2345/zebra that referenced this issue Feb 19, 2021
`node2.is_running()` can return `true` on Windows, even though `node2`
has logged a panic. This cleanup code only runs if `node2` fails to panic
and exit as expected. So it's ok for us to skip it.

See ZcashFoundation#1781 for details.
teor2345 added a commit to teor2345/zebra that referenced this issue Feb 19, 2021
`node2.is_running()` can return `true` on Windows, even though `node2`
has logged a panic. This cleanup code only runs if `node2` fails to panic
and exit as expected. So it's ok for us to skip it.

See ZcashFoundation#1781 for details.
teor2345 added a commit that referenced this issue Feb 19, 2021
`node2.is_running()` can return `true` on Windows, even though `node2`
has logged a panic. This cleanup code only runs if `node2` fails to panic
and exit as expected. So it's ok for us to skip it.

See #1781 for details.
@teor2345 teor2345 changed the title TestChild::is_running can return true after a panic log on Windows TestChild::is_running can return true after a panic log Feb 19, 2021
@mpguerra mpguerra removed the S-needs-triage Status: A bug report needs triage label Feb 26, 2021
@teor2345
Copy link
Contributor Author

This is still a bug, but it hasn't been much of an issue for tests.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-rust Area: Updates to Rust code C-bug Category: This is a bug I-integration-fail Continuous integration fails, including build and test failures
Projects
None yet
Development

No branches or pull requests

2 participants