Skip to content

Deal with EINTR in net timeout tests #56394

New issue

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

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

Already on GitHub? # to your account

Merged
merged 1 commit into from
Dec 3, 2018

Conversation

cuviper
Copy link
Member

@cuviper cuviper commented Nov 30, 2018

We've seen sporadic QE failures in the timeout tests on this assertion:

assert!(kind == ErrorKind::WouldBlock || kind == ErrorKind::TimedOut);

So there's an error, but not either of the expected kinds. Adding a
format to show the kind revealed ErrorKind::Interrupted (EINTR).

For the cases that were using read, we can just use read_exact to
keep trying after interruption. For those using recv_from, we have to
manually loop until we get a non-interrupted result.

We've seen sporadic QE failures in the timeout tests on this assertion:

    assert!(kind == ErrorKind::WouldBlock || kind == ErrorKind::TimedOut);

So there's an error, but not either of the expected kinds.  Adding a
format to show the kind revealed `ErrorKind::Interrupted` (`EINTR`).

For the cases that were using `read`, we can just use `read_exact` to
keep trying after interruption.  For those using `recv_from`, we have to
manually loop until we get a non-interrupted result.
@rust-highfive
Copy link
Contributor

r? @sfackler

(rust_highfive has picked a reviewer for you, use r? to override)

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Nov 30, 2018
@sfackler
Copy link
Member

@bors r+

@bors
Copy link
Collaborator

bors commented Nov 30, 2018

📌 Commit f107514 has been approved by sfackler

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Nov 30, 2018
@Centril
Copy link
Contributor

Centril commented Dec 1, 2018

@bors rollup

Mark-Simulacrum added a commit to Mark-Simulacrum/rust that referenced this pull request Dec 1, 2018
…kler

Deal with EINTR in net timeout tests

We've seen sporadic QE failures in the timeout tests on this assertion:

    assert!(kind == ErrorKind::WouldBlock || kind == ErrorKind::TimedOut);

So there's an error, but not either of the expected kinds.  Adding a
format to show the kind revealed `ErrorKind::Interrupted` (`EINTR`).

For the cases that were using `read`, we can just use `read_exact` to
keep trying after interruption.  For those using `recv_from`, we have to
manually loop until we get a non-interrupted result.
bors added a commit that referenced this pull request Dec 1, 2018
Rollup of 9 pull requests

Successful merges:

 - #55010 (Add template parameter debuginfo to generic types)
 - #56110 (Consider references and unions potentially inhabited during privacy-respecting inhabitedness checks)
 - #56305 (update miri)
 - #56372 (Refer to the second borrow as the "second borrow" in E0501.rs)
 - #56394 (Deal with EINTR in net timeout tests)
 - #56395 (Stabilize dbg!(...))
 - #56402 (Improve the unstable book example for #56408 [marker] trait)
 - #56406 (Update RLS and Rustfmt)
 - #56366 (Stabilize self_in_typedefs feature)

Failed merges:

r? @ghost
Centril added a commit to Centril/rust that referenced this pull request Dec 1, 2018
…kler

Deal with EINTR in net timeout tests

We've seen sporadic QE failures in the timeout tests on this assertion:

    assert!(kind == ErrorKind::WouldBlock || kind == ErrorKind::TimedOut);

So there's an error, but not either of the expected kinds.  Adding a
format to show the kind revealed `ErrorKind::Interrupted` (`EINTR`).

For the cases that were using `read`, we can just use `read_exact` to
keep trying after interruption.  For those using `recv_from`, we have to
manually loop until we get a non-interrupted result.
Centril added a commit to Centril/rust that referenced this pull request Dec 2, 2018
…kler

Deal with EINTR in net timeout tests

We've seen sporadic QE failures in the timeout tests on this assertion:

    assert!(kind == ErrorKind::WouldBlock || kind == ErrorKind::TimedOut);

So there's an error, but not either of the expected kinds.  Adding a
format to show the kind revealed `ErrorKind::Interrupted` (`EINTR`).

For the cases that were using `read`, we can just use `read_exact` to
keep trying after interruption.  For those using `recv_from`, we have to
manually loop until we get a non-interrupted result.
bors added a commit that referenced this pull request Dec 2, 2018
Rollup of 14 pull requests

Successful merges:

 - #56110 (Consider references and unions potentially inhabited during privacy-respecting inhabitedness checks)
 - #56305 (update miri)
 - #56366 (Stabilize self_in_typedefs feature)
 - #56372 (Refer to the second borrow as the "second borrow" in E0501.rs)
 - #56394 (Deal with EINTR in net timeout tests)
 - #56395 (Stabilize dbg!(...))
 - #56401 (Move VecDeque::resize_with out of the impl<T:Clone> block)
 - #56402 (Improve the unstable book example for #[marker] trait)
 - #56412 (Update tracking issue for `extern_crate_self`)
 - #56416 (Remove unneeded body class selector)
 - #56418 (Fix failing tidy (line endings on Windows))
 - #56419 (Remove some uses of try!)
 - #56424 (Mention raw-ident syntax)
 - #56432 (Update issue number of `shrink_to` methods to point the tracking issue)

Failed merges:

r? @ghost
@pietroalbini
Copy link
Member

@bors rollup-

@cuviper
Copy link
Member Author

cuviper commented Dec 2, 2018

Was there an issue with this in rollup? I expect it would be simple and self-contained...

@bors
Copy link
Collaborator

bors commented Dec 3, 2018

⌛ Testing commit f107514 with merge 25c3754...

bors added a commit that referenced this pull request Dec 3, 2018
Deal with EINTR in net timeout tests

We've seen sporadic QE failures in the timeout tests on this assertion:

    assert!(kind == ErrorKind::WouldBlock || kind == ErrorKind::TimedOut);

So there's an error, but not either of the expected kinds.  Adding a
format to show the kind revealed `ErrorKind::Interrupted` (`EINTR`).

For the cases that were using `read`, we can just use `read_exact` to
keep trying after interruption.  For those using `recv_from`, we have to
manually loop until we get a non-interrupted result.
@bors
Copy link
Collaborator

bors commented Dec 3, 2018

☀️ Test successful - status-appveyor, status-travis
Approved by: sfackler
Pushing 25c3754 to master...

@bors bors merged commit f107514 into rust-lang:master Dec 3, 2018
@cuviper cuviper deleted the interrupted-timeout branch March 27, 2019 22:19
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants