Closed
Bug 802731
Opened 13 years ago
Closed 1 year ago
Google Groups new interface hangs in a group with over 700 spam posts
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
WONTFIX
People
(Reporter: alexf_ba124, Unassigned)
References
()
Details
(Whiteboard: [country-all] )
Attachments
(1 file)
|
49.21 KB,
image/png
|
Details |
Attempted to open the following link
https://groups.google.com/forum/?fromgroups=#!forum/alt.sports.basketball.nba.phila-76ers
in a nightly build, running in both safe mode and with add-ons enabled.
In both modes, after some time a 'non-responsive script' dialog appears,
clicking on this enables page loading to continue, but doing it more than 3 times seems to eventually leads to a browser 'hang'.
The exact same link loads correctly in Chrome.
In the IRC chat #firefox it was suggested I should capture some performance data, this is at -http://people.mozilla.com/~bgirard/cleopatra/?report=cc397109b9dd64ea3f28b2e327174ce6309968b0
As others in the IRC channel have not yet been able to reproduce this bug it would be appreciated if you could examine the profile date to determine if the issue is with an add-on, the browser , Javscript or Google's interface implementation.
Comment 1•13 years ago
|
||
Tested with FF 16 and everything works. Not sure what the issue is, what add-ons are you running?
| Reporter | ||
Comment 2•13 years ago
|
||
Adblock Plus 2.1.2
Customizations for Adblock Plus 1.0.3
Firebug 1.10.4
Fox Filter 7.6.4
Gecko Pofiler 1.9.11
Web Developer 1.2.2
| Reporter | ||
Comment 3•13 years ago
|
||
Chat log from 18 October 2012 ( Unrelated comments removed)
#firefox
-->| YOU (Qcoder00) have joined #firefox
[INFO] Conference Mode is enabled for this view; joins, leaves, quits and nickname changes are hidden.
=-= Topic for #firefox is “Firefox community & support channel || Permission isn't needed to ask your question. If well after asking nobody responds, say "help!" or try http://support.mozilla.org || Get Firefox from http://mozilla.org/firefox”
=-= Topic for #firefox was set by Cww on 10 September 2012 17:19:28
Qcoder00 Morning
Qcoder00 Did anyone get a chance to look over the profile data I filed yesterday?
Qcoder00 Good morning is anyone in?
JesperHansen Qcoder00: appears there might have been a confirm dialog waiting for your input but something else was running in the mainthread at the same time so they both clashed
Qcoder00 Ah
JesperHansen cant tell more than that from the profiler
Qcoder00 Well that was what i had available...
Qcoder00 I don't have access to a full blown 'tear the code' apart debugger
Qcoder00 On something else entirly...
Qcoder00 How do i change what about:home displays?
JesperHansen Qcoder00: what is your dom.max_script_run_time?
Qcoder00 JesperHansen: let me check that
Qcoder00 User set integer 0
Qcoder00 Should this be set to a different value?
JesperHansen hmm, so its not that dialog
Qcoder00 As I said the other day, the link concerned loads acceptably in Chrome...
Qcoder00 but 'hangs' in Firefox
Qcoder00 Given that Chrome/Firefox share code...
Qcoder00 this was suprising
JesperHansen what was the link again? dont feel like opening the chatlog once more
Qcoder00 Moment, I'm having to check my logs as well
Qcoder00 https://groups.google.com/forum/#!forum/alt.sports.basketball.nba.phila-76ers
Qcoder00 Whilst that link doesn't actually 'crash' it does 'hang' whilst loading for me
Qcoder00 in Firefox...
Qcoder00 I will note that in Chrome it take slightlylonger than normal to load...
Qcoder00 but when it has over700 or so spam postings to skip over that'sexpected
Qcoder00 I want to conclusively find out that it isn't a browser issue before i send Google a strongly worded letter
JesperHansen also, any differences? are you logged in with google on firefox but not chrome? or other things you could think of
Qcoder00 JesperHansen: I use the same login on Chrome and Firefox
Qcoder00 As far as Google is concerned , it should be serving an appropriate page for each browser
Qcoder00 And it's highly unlikely that Google is favouring Chrome
Cork Qcoder00: have you tested changing your ua?
JesperHansen Qcoder00: well, I can get it to hang for 5 seconds, but then it returns
Cork there other pages change based on that
Qcoder00 Cork: How do I 'fake' a UA string in Firefox, so it tells Google it's actually Chrome?
JesperHansen Qcoder00: if I press the "This topic has been hidden because it was flagged for abuse (+xxx more)
JesperHansen Qcoder00: o, I see this number is actually increasing
Qcoder00 JesperHansen: The hang I get is when loading the page in the first place
Qcoder00 It get's to around 300 or so posts 'Flagged for abuse' and hangs up
JesperHansen Qcoder00: I see why now
Cork Qcoder00: about:config create a string generic.useragent.overide
JesperHansen Qcoder00: It keeps loading threads that have been flagged for abuse
JesperHansen Qcoder00: watch the number
Cork btw ya, i can reproduce the hang here
JesperHansen Qcoder00: 414 now
Qcoder00 As in an actual http error?
JesperHansen was 310 just before
JesperHansen 444 now
JesperHansen Qcoder00: it keeps loading lol
JesperHansen I can see how you would get it confused
Qcoder00 So the hang is because Google's server i getting hammered by it's own interface?
Qcoder00
Qcoder00 *is
JesperHansen Qcoder00: nono, the page keeps asking firefox to load new without stopping
Cork ah so js locks firefox ui
Qcoder00 So is the fault in Firefox or in Google's code?
JesperHansen Qcoder00: the reason chrome doesn't crash is that the UI and the website for them is different processes
JesperHansen Qcoder00: while firefox is 1 process but multiple threads
JesperHansen and they're killing our mainthread with this junk
Cork isn't the problem that chrome and content shares the same js thread?
JesperHansen Cork: for us yea
Qcoder00 So the glitch is in Firefox?
Cork nods
JesperHansen Qcoder00: the glitch is in the aggressive web code
Cork Qcoder00: its badly written web code, and firefox doens't have code to prevent the effect
Qcoder00 Cork: So Firefox doesn't have the code that Chrome does to catch an 'aggressive' JS script ?
Cork Qcoder00: no, its not catch
JesperHansen dont think google had made google group for this particular case
Cork its like you run on two different machines kinda
Cork one can hog how much it wants, it won't affect the other one
Qcoder00 Cork: As I said I wanted to be clear before I sent Google a strongly worded letter saying it was an issue on thier side
JesperHansen that should change at some point though
update plugins when the plugins in use *are* the latest for the OS I'm using wh
Qcoder00 JesperHansen: From the Mozilla/Firefox point of view is this issue solveable on the Firefox side?
Cork its still badly written web code though, cause the way they've written it you can't update the page inbetween
Cork surprises the heck out of me that they'r using syncronus net calls
Qcoder00 Hmm, but badly written JS code shouldn't 'hang' a browser... ( It doesn't for example hang chrome)
JesperHansen Qcoder00: think of it this way: As long as there is white screenspace available on groups, then google groups will keep loading new topics. But at the same time is it collapsing the topics because they're all flagged for abuse
Qcoder00 JesperHansen: HMM
inkbottle I want to change font family in android-firefox, because I like serif font. I've been hinted toward about:config, but then there is dozens of settings under the search "font". So anyone would know which to change, or any other way?
JesperHansen Qcoder00: again: google has a process for ui and a process for each tab
Cork JesperHansen: i'm quite sure its one process for each domain, not each tab
Qcoder00 Well, I'm sorry that this issue with Google groups seems to have exposed a potential flaw (either in Google's code or in Firefox), the next question is how to solve it
JesperHansen Cork: nah, it's one per tab, one per extension and then one for ui
Cork ouch
Cork that should cost them quite a bit
JesperHansen Cork: they dont handle many tabs well
Cork i know
Cork but this means they don't handle many extensions well either
Qcoder00 Is there anyone here that's able to write the sort of detailed analysis that could be sent to Google to expalin the technical issue?
Cork (i love it when chrome fans argue "memory is not a problem)
Cork Qcoder00: i don't think it needs to be that technical
Cork either they bother to look at it, or how technical it is doesn't matter
JesperHansen Qcoder00: see if reddit picks it up
Cork lol
JesperHansen 774 threads
Qcoder00 I don't use reddit sadly
JesperHansen Qcoder00: also there is google employees that checks our bugzilla
Qcoder00 OK
Qcoder00 As I said teh bugzilla probably needs updating based on this conversation... (I've got no objections to people quoting logs)
JesperHansen Qcoder00: just quote from here. Cut out irrelevant joins and leave and other talk
JesperHansen hey my firefox finished loading
JesperHansen sweet, got the tab closed lol
spell-check dictionaries
Cork where did it end?
JesperHansen 774 was the last I saw
JesperHansen then it showed me all of the topics
Cork ah no 779 my just unhanged
JesperHansen so, 779 http requests we waited for? nice
Cork ya...
Cork who in there right mind uses synced ajax calls >_<'
Qcoder00 Well Coding decisions are a vendor choice..
JesperHansen bad coding decisions are as well
Qcoder00 I'm about to post the earlier chatter to the Bugzilla
JesperHansen no one should be interested at getting 779 requests
Cork ya, but synced ajax call is a REALLY well known no-no for website-js developers
Cork i question there structure a bit too though
JesperHansen think I remember something about the sync'd getting async'd with callback internally so they dont kill the ui
Cork the ui looks really locked to me though
JesperHansen yea it repainted tho
JesperHansen which was odd
Cork only after each post is fetched
Cork each post block that is
Cork and thats exactly what i expect from synced ajax calls
JesperHansen nuke that ctrl+w
Updated•13 years ago
|
Assignee: nobody → english-us
Status: UNCONFIRMED → NEW
Component: Untriaged → English US
Ever confirmed: true
Product: Firefox → Tech Evangelism
Version: 19 Branch → unspecified
Comment 4•13 years ago
|
||
Hi Amanda, do you know who we can CC on this subject?
Throws ~779 http requests before it is done loading
Comment 5•12 years ago
|
||
See also Bug 793359
Updated•11 years ago
|
Assignee: english-us → nobody
Component: English US → Desktop
Whiteboard: [country-all]
Comment 6•9 years ago
|
||
Confirmed
The initial load is fast, but then it seems to try to load the remaining of the page bit by bit with the same series of requests. 1 GET and 2 POST
```
GET /csi?s=gdf&v=3&action=rpc,rpc_st,rpc_so,rpc_st_so,rpc_consumer,rpc_st_consumer,rpc_so_consumer,rpc_st_so_consumer,rpc_d77bfea0,rpc_st_d77bfea0,rpc_so_d77bfea0,rpc_st_so_d77bfea0,rpc_consumer_d77bfea0,rpc_st_consumer_d77bfea0,rpc_so_consumer_d77bfea0,rpc_st_so_consumer_d77bfea0&it=fc_getTopics.1486,fc_gmaeift.1264 HTTP/1.1
Host: csi.gstatic.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:51.0) Gecko/20100101 Firefox/51.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://groups.google.com/forum/?fromgroups=
Connection: keep-alive
```
Then
```
POST /forum/msg_bkg?appversion=1&hl=ja HTTP/1.1
Host: groups.google.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:51.0) Gecko/20100101 Firefox/51.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://groups.google.com/forum/?fromgroups=
Content-Type: text/x-gwt-rpc; charset=utf-8
X-Groups-Time-Zone: 3502049_20_20__20_
X-Groups-Group-Name: alt.sports.basketball.nba.phila-76ers
X-GWT-Permutation: 8620BBFE4C024C0CA87AC53133E81797
X-GWT-Module-Base: https://groups.google.com/forum/
Content-Length: 293
Cookie: NID=85=FZd8WGSnCPz_l02PgjAkXSEz1A422uwIvIubxBiJZzESxShw11aN22jzWYbV9A7Y1rDGbloeZWWisY6Kh4LIbjs_TnTJjirmfBYYl2ytRwztqYKw7UShDVVKDpyXP9CD; __utma=118165087.555902809.1472426973.1472426973.1472426973.1; __utmb=118165087.1.10.1472426973; __utmc=118165087; __utmz=118165087.1472426973.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmt_*groups_ga*=1
Connection: keep-alive
```
then
```
POST /forum/msg?appversion=1&hl=ja HTTP/1.1
Host: groups.google.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:51.0) Gecko/20100101 Firefox/51.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://groups.google.com/forum/?fromgroups=
Content-Type: text/x-gwt-rpc; charset=utf-8
X-Groups-Time-Zone: 3502049_20_20__20_
X-Groups-Group-Name: alt.sports.basketball.nba.phila-76ers
X-GWT-Permutation: 8620BBFE4C024C0CA87AC53133E81797
X-GWT-Module-Base: https://groups.google.com/forum/
Content-Length: 250
Cookie: NID=85=FZd8WGSnCPz_l02PgjAkXSEz1A422uwIvIubxBiJZzESxShw11aN22jzWYbV9A7Y1rDGbloeZWWisY6Kh4LIbjs_TnTJjirmfBYYl2ytRwztqYKw7UShDVVKDpyXP9CD; __utma=118165087.555902809.1472426973.1472426973.1472426973.1; __utmb=118165087.1.10.1472426973; __utmc=118165087; __utmz=118165087.1472426973.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmt_*groups_ga*=1
Connection: keep-alive
```
And indeed it slows down the browser a lot with a high CPU.
GET https://csi.gstatic.com/csi [HTTP/2.0 204 No Content 145ms]
POST XHR https://groups.google.com/forum/msg_bkg [HTTP/2.0 200 OK 333ms]
POST XHR https://groups.google.com/forum/msg [HTTP/2.0 200 OK 702ms]
GET https://csi.gstatic.com/csi [HTTP/2.0 204 No Content 134ms]
POST XHR https://groups.google.com/forum/msg_bkg [HTTP/2.0 200 OK 601ms]
POST XHR https://groups.google.com/forum/msg [HTTP/2.0 200 OK 772ms]
… etc
Switching to needsdiagnosis
Updated•9 years ago
|
Whiteboard: [country-all] → [country-all] [needsdiagnosis]
Comment 7•9 years ago
|
||
If I fake the UA to be chrome it doesn't change anything on Gecko. It is still very slow.
In Opera blink, the UI is also less responsive, but reacts a bit better.
All of that said, not sure it's a Web Compat bug. It looks like more something which requires a performance optimization in Gecko.
Comment 8•9 years ago
|
||
Hmm I got a freeze on Opera Blink too.
No hope? Definitely not webcompat.
Comment 9•9 years ago
|
||
Moving this to Firefox Untriaged -- not sure where this should live, but it doesn't seems like a TE issue. Right now opening the URL w/ e10s more or less makes all my tabs turn into white spinny e10s tabs. Pretty bad.
platform-rel: --- → ?
Component: Desktop → Untriaged
Product: Tech Evangelism → Firefox
Comment 10•9 years ago
|
||
Investigating further this issue, I've came up with the following profile reports:
https://cleopatra.io/#report=d6fb88256b5d91ddb071636b3040691025618c73
https://cleopatra.io/#report=d53a8edd756bfd1db5995022569756295b562ff7
I'm also moving this to core::untriaged and perhaps there's someone with extensive knowledge on this area that might be able to help here.
Flags: needinfo?(n.nethercote)
Product: Firefox → Core
Comment 11•9 years ago
|
||
In the profile in comment 0, we're spending at least 677 samples inside nsPrompter.js... opening a modal prompt?
In the profiles in comment 10, I see uBlock taking some time to react to DOM changes... (1895 samples in the first profile).
But the dominant activity is some really busy obfuscated JavaScript that's running on the page.
I would assume that Chrome seems less affected by this due to multiple content processes, but in general, I think the JavaScript on the page just needs to try to be more efficient in general.
Comment 12•9 years ago
|
||
Based on commnet 11, I will move this to Core :: JavaScript Engine.
Component: Untriaged → JavaScript Engine
Comment 13•9 years ago
|
||
The problem is definitely the page itself.
1. Force a reload of the page: all is ok.
2. Click the vertical scroll bar: all is ok.
3. Press Ctrl-End: the page will scroll to the bottom, which will trigger a fetch-more-posts algorithm to append to the thread: browser become unresponsive, janky. This is true for any browser on this specific page.
When I put a breakpoint in uBlock Origin's ("uBO") mutation observer, I observed that many mutation events were fired in sequence as a result of step 3, with the following mutation record counts:
1928 records
3818 records
5708 records
7598 records
9488 records
11378 records
13268 records
15158 records
17048 records
18938 records
20828 records
22718 records
24608 records
26498 records
28388 records
30278 records
32168 records
34058 records
35948 records
37838 records
39728 records
41618 records
43508 records
45398 records
47288 records
49178 records
51068 records
52958 records
54848 records
56738 records
58628 records
60494 records
1811 records
960 records
30 records
This causes uBO to works rather hard to process them, but the page's own javascript code is where the execution is mostly spent. It's unclear to me what the page is doing for such an amount of mutation events to be generated. I see the thread on the page has been spammed hard, but not enough to explain the staggering amount of mutation records being generated. With a quick look at the mutations records, I see added and removed nodes. This seems to be a case of appending stuff to the DOM, removing it, then re-appending again.
Once all these mutation events were handled, the page went back to being normally responsive, with typically mutation events fired with mutation records count in the ~1800, i.e. manageable by the javascript code on the page.
Comment 14•9 years ago
|
||
I looked at the profiles, but I'm terrible at reading Cleopatra and I don't see anything more than what mconley mentioned.
Flags: needinfo?(n.nethercote)
| Reporter | ||
Comment 16•9 years ago
|
||
Note: This seems to have improved a little with the most recent release (49.0.2), but the browser still takes a long time to work it's way through loading certain groups with a lot of pages "flagged for abuse".
It would of course be so much simpler if Google was forcibly compelled to clean up the groups concerned, but that's beyond the power of Mozilla developers.
Updated•8 years ago
|
platform-rel: ? → ---
Updated•8 years ago
|
Whiteboard: [country-all] [needsdiagnosis] → [country-all]
Updated•3 years ago
|
Severity: normal → S3
| Reporter | ||
Comment 17•2 years ago
|
||
Noting that this bug report is rendered moot, by changes in the UI design at Google Groups in the intervening 6 years. ~~~~
Comment 18•1 year ago
|
||
We are closing this bug based on the information provided
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → WONTFIX
You need to log in
before you can comment on or make changes to this bug.
Description
•