Skip to content

Improvements to robustness of piped process support on Windows #6675

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

Merged

Conversation

thomasspriggs
Copy link
Contributor

Intermittent failures have been observed for the bitvector-arithmetic-operators/simple_equation.desc test when running in CI for the Windows job. See https://github.com/diffblue/cbmc/runs/5202299979?check_suite_focus=true or https://github.com/diffblue/cbmc/runs/5201922925?check_suite_focus=true for examples.

This PR contains a collection of potential improvements to the robustness of piped process support on Windows. These should collectively reduce the likelihood of the issue occurring again and help with debugging if it does. I am happy to discuss the benefits of spitting these out to try them individually and work out which are required or just merging all of them in order to get the issue resolved ASAP.

  • Each commit message has a non-empty body, explaining why the change was made.
  • Methods or procedures I have added are documented, following the guidelines provided in CODING_STANDARD.md.
  • The feature or user visible behaviour I have added or modified has been documented in the User Guide in doc/cprover-manual/
  • Regression or unit tests are included, or existing tests cover the modified code (in this case I have detailed which ones those are in the commit message).
  • My commit message includes data points confirming performance improvements (if claimed).
  • My PR is restricted to a single feature or bugfix.
  • White-space or formatting changes outside the feature-related changed lines are in commits of their own.

Copy link
Collaborator

@tautschnig tautschnig left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving in the interest of debugging the repeat failures, but please do consider the comments I provided.

So that the changes in the following commit do not get mixed in with
clang-format related include re-ordering.
@codecov
Copy link

codecov bot commented Feb 16, 2022

Codecov Report

Merging #6675 (52d5788) into develop (e8e9288) will increase coverage by 0.00%.
The diff coverage is 53.84%.

Impacted file tree graph

@@           Coverage Diff            @@
##           develop    #6675   +/-   ##
========================================
  Coverage    76.81%   76.81%           
========================================
  Files         1582     1582           
  Lines       182774   182764   -10     
========================================
- Hits        140403   140399    -4     
+ Misses       42371    42365    -6     
Impacted Files Coverage Δ
unit/util/piped_process.cpp 31.29% <33.33%> (ø)
...rc/solvers/smt2_incremental/smt_solver_process.cpp 68.57% <100.00%> (ø)
src/util/piped_process.cpp 81.92% <100.00%> (+0.44%) ⬆️
src/ansi-c/c_typecheck_expr.cpp 76.59% <0.00%> (+0.14%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 12ef9e7...52d5788. Read the comment docs.

@@ -372,6 +372,7 @@ piped_processt::send_responset piped_processt::send(const std::string &message)
break;
// Give the sub-process chance to read the waiting message(s).
FlushFileBuffers(child_std_IN_Wr);
Sleep(1 << send_attempts);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the unit of that?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Milliseconds.

@thomasspriggs thomasspriggs force-pushed the tas/windows_pipe_robustness branch from aff1f8c to 52d5788 Compare February 16, 2022 19:44
@thomasspriggs thomasspriggs merged commit 8562df3 into diffblue:develop Feb 16, 2022
@thomasspriggs thomasspriggs deleted the tas/windows_pipe_robustness branch February 16, 2022 21:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants