New issue
Advanced search Search tips

Issue 909801 link

Starred by 2 users

Issue metadata

Status: Verified
Owner:
Closed: Dec 5
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Chrome , Mac
Pri: 1
Type: Bug



Sign in to add a comment

Timeout in mojo_core_channel_fuzzer

Project Member Reported by ClusterFuzz, Nov 28

Issue description

Detailed report: https://clusterfuzz.com/testcase?key=5702477275725824

Fuzzer: libFuzzer_mojo_core_channel_fuzzer
Job Type: libfuzzer_chrome_asan
Platform Id: linux

Crash Type: Timeout (exceeds 25 secs)
Crash Address: 
Crash State:
  mojo_core_channel_fuzzer
  
Sanitizer: address (ASAN)

Regressed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_asan&range=611582:611584

Reproducer Testcase: https://clusterfuzz.com/download?testcase_id=5702477275725824

Issue filed automatically.

See https://chromium.googlesource.com/chromium/src/+/master/testing/libfuzzer/reference.md for more information.
 
Project Member

Comment 1 by ClusterFuzz, Nov 28

Cc: roc...@chromium.org
Labels: ClusterFuzz-Auto-CC
Automatically adding ccs based on OWNERS file / target commit history.

If this is incorrect, please add ClusterFuzz-Wrong label.
Cc: kkaluri@chromium.org
Labels: M-72 Test-Predator-Wrong CF-NeedsTriage
Unable to find actual suspect through code search and also observing no CL's under regression range, hence adding appropriate label and requesting someone from dev team to look in to this issue.

Thanks!
Project Member

Comment 3 by ClusterFuzz, Nov 30

Labels: OS-Mac
Cc: -roc...@chromium.org
Components: Internals>Mojo
Labels: -CF-NeedsTriage
Owner: roc...@chromium.org
Status: Assigned (was: Untriaged)
rockot@, just wondering do you have any inputs here?

Thank you!
It's not a regression, this is just a new fuzzer. I'll look into the bug
soon.
Project Member

Comment 6 by ClusterFuzz, Dec 1

Labels: -Reproducible Unreproducible
ClusterFuzz testcase 5702477275725824 appears to be flaky, updating reproducibility label.
Labels: -Unreproducible Reproducible
Please ignore the last comment about testcase being unreproducible. The testcase is still reproducible. This happened due to a code refactoring on ClusterFuzz side, and the underlying root cause is now fixed. Resetting the label back to Reproducible. Sorry about the inconvenience caused from these incorrect notifications.
Project Member

Comment 8 by ClusterFuzz, Dec 4

Labels: OS-Chrome
Owner: rockot@google.com
So hmm. The hang appears to be in libc recvmsg, on a non-blocking socket. So that's... surprising.
Oh wait, never mind. Real bug in Channel.
Project Member

Comment 12 by bugdroid1@chromium.org, Dec 5

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9bc27b1de4b78e524936c7e4327128bc0bc18843

commit 9bc27b1de4b78e524936c7e4327128bc0bc18843
Author: Ken Rockot <rockot@chromium.org>
Date: Wed Dec 05 00:50:20 2018

[mojo-core] Fix potential hang in ChannelPosix

It turns out that we were not putting the IO thread back to sleep when a
message header indicates that we should expect more bytes but those
bytes aren't available yet. In production this could lead to excess CPU
usage when receiving large messages, and it can also lead to IO-thread
hangs if a properly malformed message is sent to a receiving Channel.

This fixes the hang by properly breaking out of our read loop when
recvmsg returns EAGAIN or EWOULDBLOCK.

Bug:  909801 
Change-Id: Icc10cbd9c2ddec7e33a68ab9b4d53b755b650cbb
Reviewed-on: https://chromium-review.googlesource.com/c/1361623
Reviewed-by: Oksana Zhuravlova <oksamyt@chromium.org>
Commit-Queue: Ken Rockot <rockot@google.com>
Cr-Commit-Position: refs/heads/master@{#613786}
[modify] https://crrev.com/9bc27b1de4b78e524936c7e4327128bc0bc18843/mojo/core/channel_posix.cc

Status: Fixed (was: Assigned)
Project Member

Comment 14 by ClusterFuzz, Dec 5

ClusterFuzz has detected this issue as fixed in range 613782:613799.

Detailed report: https://clusterfuzz.com/testcase?key=5702477275725824

Fuzzer: libFuzzer_mojo_core_channel_fuzzer
Fuzz target binary: mojo_core_channel_fuzzer
Job Type: libfuzzer_chrome_asan
Platform Id: linux

Crash Type: Timeout (exceeds 25 secs)
Crash Address: 
Crash State:
  mojo_core_channel_fuzzer
  
Sanitizer: address (ASAN)

Regressed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_asan&range=611582:611584
Fixed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_asan&range=613782:613799

Reproducer Testcase: https://clusterfuzz.com/download?testcase_id=5702477275725824

See https://chromium.googlesource.com/chromium/src/+/master/testing/libfuzzer/reference.md for more information.

If you suspect that the result above is incorrect, try re-doing that job on the test case report page.
Project Member

Comment 15 by ClusterFuzz, Dec 5

Labels: ClusterFuzz-Verified
Status: Verified (was: Fixed)
ClusterFuzz testcase 5702477275725824 is verified as fixed, so closing issue as verified.

If this is incorrect, please add ClusterFuzz-Wrong label and re-open the issue.

Sign in to add a comment