New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 812160 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Closed: Feb 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 1
Type: Bug



Sign in to add a comment

Timeout in stylesheet_contents_fuzzer

Project Member Reported by ClusterFuzz, Feb 14 2018

Issue description

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

Fuzzer: libFuzzer_stylesheet_contents_fuzzer
Job Type: libfuzzer_chrome_asan_debug
Platform Id: linux

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

Regressed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_asan_debug&range=533968:533974

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

Issue filed automatically.

See https://chromium.googlesource.com/chromium/src/+/master/testing/libfuzzer/reference.md for more information.
 
Cc: shend@chromium.org brajkumar@chromium.org
Components: Blink>CSS
Labels: M-66 Test-Predator-Wrong CF-NeedsTriage
Unable to find the suspect through code search and also from the provided CL, hence cc'ing to @shend who have worked on similar  issue 770482 .

shend@ Could you please take a look in to this issue?

Thanks2

Comment 2 by shend@chromium.org, Feb 15 2018

Owner: ericwilligers@chromium.org
Status: Assigned (was: Untriaged)
Seems like a performance issue or infinite loop with :matches() causing the fuzzer to timeout (the test case uses matches and the matches CL is in the regression range).

Assigning to ericwilligers. This may just be a Wont-Fix if there's nothing wrong with the code.
I loaded the test case's style sheet in an ASAN Chromium and did not observe any crash.

How do I reproduce the timeout?

Most of the :matches() in the test case are not valid; they should be rejected quickly, without causing much computation.

Status: WontFix (was: Assigned)
> Most of the :matches() in the test case are not valid;

I was mistaken. The test case contains '-' characters, but these are valid in tag names.



The following example times out in ASAN builds.

:matches(j, k, l, m, n, o)
:matches(j, k, l, m, n, o)
:matches(j, k, l, m, n, o)
:matches(j, k, l, m, n, o) {}

:matches(j, k, l, m, n, o)
:matches(j, k, l, m, n, o)
:matches(j, k, l, m, n, o)
:matches(j, k, l, m, n, o) {}

:matches(j, k, l, m, n, o)
:matches(j, k, l, m, n, o)
:matches(j, k, l, m, n, o)
:matches(j, k, l, m, n, o) {}

:matches(j, k, l, m, n, o)
:matches(j, k, l, m, n, o)
:matches(j, k, l, m, n, o)
:matches(j, k, l, m, n, o) {}

We could reduce the limit in CSSSelectorList::ExpandedFirstMatchesPseudo() to prevent such complex cases from expanding, but the code is working as intended.

Project Member

Comment 5 by ClusterFuzz, Feb 28 2018

Labels: Needs-Feedback
ClusterFuzz testcase 4667660231770112 is still reproducing on tip-of-tree build (trunk).

If this testcase was not reproducible locally or unworkable, ignore this notification and we will file another bug soon with hopefully a better and workable testcase.

Otherwise, if this is not intended to be fixed (e.g. this is an intentional crash), please add ClusterFuzz-Ignore label to prevent future bug filing with similar crash stacktrace.
Labels: -Needs-Feedback ClusterFuzz-Ignore

Sign in to add a comment