Chrome periodical "Aw, Snap" in 9.2

Bug #1657348 reported by Sergey Galkin on 2017-01-18
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Fuel for OpenStack
High
Julia Aranovich
Mitaka
High
Julia Aranovich
Newton
High
Julia Aranovich

Bug Description

Chrome - Version 55.0.2883.87 (64-bit) Linux
Steps to reproduce:
1. Install 9.0
2. Upgrade to 9.2 from http://mirror.fuel-infra.org/mos-repos/centos/mos9.0-centos7/snapshots/proposed-2017-01-13-184421/x86_64
3. Start deploying cluster (~400 nodes in my case)
4. Open any page in Fuel
5. Do nothing, wait 2-3 minutes

Fuel shows "Aw, Snap" page. Clear cache does not help.
Screenshot attachded

Sergey Galkin (sgalkin) wrote :
Sergey Galkin (sgalkin) wrote :
Sergey Galkin (sgalkin) wrote :
Changed in fuel:
status: New → Confirmed
importance: Undecided → High
milestone: none → 9.2
assignee: nobody → Fuel Sustaining (fuel-sustaining-team)
milestone: 9.2 → 11.0
tags: added: area-python area-ui
Julia Aranovich (jkirnosova) wrote :

Looks like the problem is a big amount of notifications in the environment (~10500 items). UI polls notifications every 20sec and gets them all at once every time.
We need to think how to reorganize notifications UX. For example, it can be a separate api endpoint to get total and unread notifications number. And pagination can be supported for notification list.

Julia Aranovich (jkirnosova) wrote :

Workaround is to clear notifications table in nailgun DB.

Alexey Shtokolov (ashtokolov) wrote :

Mitaka branch doesn't support the scale more than 200 nodes. Will be fixed in Ocata and Newton

Roman Rufanov (rrufanov) wrote :

St to Confirmed for Mitaka and we can target it to 9.3 (9.2 MU1).
In case of many notifications - can we show first 1000 and say that there is more? Or paginate?

Fix proposed to branch: master
Review: https://review.openstack.org/424386

Changed in fuel:
assignee: Fuel Sustaining (fuel-sustaining-team) → Dmitry Sutyagin (dsutyagin)
status: Confirmed → In Progress
Sergey Galkin (sgalkin) wrote :

Issue is not reproducible in Firefox 50.1.0

Clearing notifications

# sudo su - postgres
$ psql nailgun
nailgun=# delete from notifications ;
DELETE 27365

is fix issue in Chrome

Sergey Galkin (sgalkin) wrote :

Issued reproduced in Chrome after 354 notifications.

Fix proposed to branch: master
Review: https://review.openstack.org/425719

Changed in fuel:
assignee: Dmitry Sutyagin (dsutyagin) → Alexander Kislitsky (akislitsky)

Change abandoned by Julia Aranovich (<email address hidden>) on branch: stable/mitaka
Review: https://review.openstack.org/426179

Fix proposed to branch: master
Review: https://review.openstack.org/426691

Changed in fuel:
assignee: Alexander Kislitsky (akislitsky) → Julia Aranovich (jkirnosova)
assignee: Julia Aranovich (jkirnosova) → Alexander Kislitsky (akislitsky)

Reviewed: https://review.openstack.org/425719
Committed: https://git.openstack.org/cgit/openstack/fuel-web/commit/?id=d4bf85957e13abecc519c84f43122e55df510eec
Submitter: Jenkins
Branch: master

commit d4bf85957e13abecc519c84f43122e55df510eec
Author: Alexander Kislitsky <email address hidden>
Date: Thu Jan 26 17:25:33 2017 +0300

    Handler for counting notifications statuses added

    For calculation of notifications statuses we made requests in the UI
    and fetch all notifications data and process them on the UI side.
    We want to replace a polling of the whole notification collection by
    a polling of unread notifications number. This dramatically decrease
    Fuel UI load in case of a big amount of notifications.

    Change-Id: I8f83d4e2d7f58beaf06c489b2264ccb69f9927ce
    Partial-Bug: #1657348

Changed in fuel:
assignee: Alexander Kislitsky (akislitsky) → Julia Aranovich (jkirnosova)
Changed in fuel:
assignee: Julia Aranovich (jkirnosova) → Alexander Kislitsky (akislitsky)

Reviewed: https://review.openstack.org/427085
Committed: https://git.openstack.org/cgit/openstack/fuel-web/commit/?id=71fb921dbe2a2cc845a4b48f96fb45dcaae6b4fb
Submitter: Jenkins
Branch: master

commit 71fb921dbe2a2cc845a4b48f96fb45dcaae6b4fb
Author: Alexander Kislitsky <email address hidden>
Date: Tue Jan 31 13:08:55 2017 +0300

    Handler for changing notifications statuses added

    As workaround for decreasing loading in the UI on unread
    notifications fetching we can mark all notifications as read.
    For such purposes we add NotificationsMarkAllHandler

    Change-Id: I2e6a0daaf8712ab3064df728a8fb463ef805aa06
    Partial-Bug: #1657348

tags: added: in-stable-newton

Reviewed: https://review.openstack.org/427082
Committed: https://git.openstack.org/cgit/openstack/fuel-web/commit/?id=2d50d938112c0dde825dc95aa7311a8798af78ba
Submitter: Jenkins
Branch: stable/newton

commit 2d50d938112c0dde825dc95aa7311a8798af78ba
Author: Alexander Kislitsky <email address hidden>
Date: Thu Jan 26 17:25:33 2017 +0300

    Handler for counting notifications statuses added

    For calculation of notifications statuses we made requests in the UI
    and fetch all notifications data and process them on the UI side.
    We want to replace a polling of the whole notification collection by
    a polling of unread notifications number. This dramatically decrease
    Fuel UI load in case of a big amount of notifications.

    Change-Id: I8f83d4e2d7f58beaf06c489b2264ccb69f9927ce
    Partial-Bug: #1657348
    (cherry picked from commit d4bf85957e13abecc519c84f43122e55df510eec)

Change abandoned by Julia Aranovich (<email address hidden>) on branch: master
Review: https://review.openstack.org/424386
Reason: Let me abandon this patch. UI changes for the issue are moved to https://review.openstack.org/#/c/426691/

Changed in fuel:
assignee: Alexander Kislitsky (akislitsky) → Julia Aranovich (jkirnosova)

Reviewed: https://review.openstack.org/431353
Committed: https://git.openstack.org/cgit/openstack/fuel-web/commit/?id=d66a0cdb97505c79babeb798861d43095ea3f465
Submitter: Jenkins
Branch: stable/newton

commit d66a0cdb97505c79babeb798861d43095ea3f465
Author: Alexander Kislitsky <email address hidden>
Date: Tue Jan 31 13:08:55 2017 +0300

    Handler for changing notifications statuses added

    As workaround for decreasing loading in the UI on unread
    notifications fetching we can mark all notifications as read.
    For such purposes we add NotificationsMarkAllHandler

    Change-Id: I2e6a0daaf8712ab3064df728a8fb463ef805aa06
    Partial-Bug: #1657348
    (cherry picked from commit 71fb921dbe2a2cc845a4b48f96fb45dcaae6b4fb)

Reviewed: https://review.openstack.org/426691
Committed: https://git.openstack.org/cgit/openstack/fuel-ui/commit/?id=44fa844e613ccaddd65e39ba7ebffe4e53efae06
Submitter: Jenkins
Branch: master

commit 44fa844e613ccaddd65e39ba7ebffe4e53efae06
Author: Julia Aranovich <email address hidden>
Date: Mon Jan 30 12:53:09 2017 +0300

    Fetch unread notifications number

    Replace 20sec polling of the whole notification collection
    by polling of notification statistics (GET /api/notifications/stats)
    which includes number of unread notifications.
    This number is rendered in notifications badge in Fuel UI.

    Also, notifications are marked as read by a new handler
    PUT /api/notifications/change_status with {status: 'read'} payload.

    Partial-Bug: #1657348

    Depends-On: I2e6a0daaf8712ab3064df728a8fb463ef805aa06

    Change-Id: I6a7eae7abf2b43143039db7ca262ae40ce5a30b4

Changed in fuel:
status: In Progress → Fix Committed

Reviewed: https://review.openstack.org/431521
Committed: https://git.openstack.org/cgit/openstack/fuel-ui/commit/?id=e9d4aa951dc7f0421e42105c404ae687ff1c45cc
Submitter: Jenkins
Branch: stable/newton

commit e9d4aa951dc7f0421e42105c404ae687ff1c45cc
Author: Julia Aranovich <email address hidden>
Date: Mon Jan 30 12:53:09 2017 +0300

    Fetch unread notifications number

    Replace 20sec polling of the whole notification collection
    by polling of notification statistics (GET /api/notifications/stats)
    which includes number of unread notifications.
    This number is rendered in notifications badge in Fuel UI.

    Also, notifications are marked as read by a new handler
    PUT /api/notifications/change_status with {status: 'read'} payload.

    Partial-Bug: #1657348

    Depends-On: I2e6a0daaf8712ab3064df728a8fb463ef805aa06

    Change-Id: I6a7eae7abf2b43143039db7ca262ae40ce5a30b4

Change abandoned by Dmitry Sutyagin (<email address hidden>) on branch: master
Review: https://review.openstack.org/425483

Reviewed: https://review.openstack.org/424380
Committed: https://git.openstack.org/cgit/openstack/fuel-web/commit/?id=03aaca2deeb062e962a81d16c2a75fb5fccfc265
Submitter: Jenkins
Branch: master

commit 03aaca2deeb062e962a81d16c2a75fb5fccfc265
Author: Dmitry Sutyagin <email address hidden>
Date: Mon Jan 23 15:48:31 2017 -0800

    Add limit, offset, order in collection GET

    Allow limiting the number of objects returned via GET
    by providing "limit"
    Example: api/notifications?limit=5

    Allow offseting (skipping N first records) via "offset"
    Example: api/notifications?offset=100

    Allow ordering of objects by providing "order_by"
    Example: api/notifications?order_by=-id

    Add helper functions/classes to:
    - get HTTP parameters (limit, offset, order_by)
    - get scoped collection query by applying 4 operations
      filter, order, offset, limit
    - set Conent-Range header if scope limits are present

    Make default NailgunCollection's GET utilize scoped query
    This makes default (parent) GET of child handlers support paging
    and ordering (overriden GET methods will not get this functionality
    automatically)
    NailgunCollection.GET is also an example of how to implement
    this new functionality.

    Helper functions/classes can be utilized in child handler methods
    to implement filters / ordering / paging

    Related-Bug: 1657348
    Change-Id: I7760465f70b3f69791e7a0c558a26e8ba55c934a

Reviewed: https://review.openstack.org/432164
Committed: https://git.openstack.org/cgit/openstack/fuel-ui/commit/?id=2044d32c67984e44f27df64d261b3eb6fc8db553
Submitter: Jenkins
Branch: master

commit 2044d32c67984e44f27df64d261b3eb6fc8db553
Author: Julia Aranovich <email address hidden>
Date: Fri Feb 10 12:02:30 2017 +0400

    Fetch only last notifications in notifications popover

    Related-Bug: #1657348

    Depend-On: I7760465f70b3f69791e7a0c558a26e8ba55c934a

    Change-Id: I257cf6c9278743f7b7789b4d818bed8be9958cde

Reviewed: https://review.openstack.org/436341
Committed: https://git.openstack.org/cgit/openstack/fuel-ui/commit/?id=e2a7884484c4c9243ccc2f04ab00c747910b52cb
Submitter: Jenkins
Branch: stable/newton

commit e2a7884484c4c9243ccc2f04ab00c747910b52cb
Author: Julia Aranovich <email address hidden>
Date: Fri Feb 10 12:02:30 2017 +0400

    Fetch only last notifications in notifications popover

    Related-Bug: #1657348

    Depend-On: I7760465f70b3f69791e7a0c558a26e8ba55c934a

    Change-Id: I257cf6c9278743f7b7789b4d818bed8be9958cde
    (cherry picked from commit 2044d32c67984e44f27df64d261b3eb6fc8db553)

Reviewed: https://review.openstack.org/436718
Committed: https://git.openstack.org/cgit/openstack/fuel-web/commit/?id=c89a8569db3f6bc4e244a8890f150f0b5c70eaea
Submitter: Jenkins
Branch: stable/newton

commit c89a8569db3f6bc4e244a8890f150f0b5c70eaea
Author: Dmitry Sutyagin <email address hidden>
Date: Mon Jan 23 15:48:31 2017 -0800

    Add limit, offset, order in collection GET

    Allow limiting the number of objects returned via GET
    by providing "limit"
    Example: api/notifications?limit=5

    Allow offseting (skipping N first records) via "offset"
    Example: api/notifications?offset=100

    Allow ordering of objects by providing "order_by"
    Example: api/notifications?order_by=-id

    Add helper functions/classes to:
    - get HTTP parameters (limit, offset, order_by)
    - get scoped collection query by applying 4 operations
      filter, order, offset, limit
    - set Conent-Range header if scope limits are present

    Make default NailgunCollection's GET utilize scoped query
    This makes default (parent) GET of child handlers support paging
    and ordering (overriden GET methods will not get this functionality
    automatically)
    NailgunCollection.GET is also an example of how to implement
    this new functionality.

    Helper functions/classes can be utilized in child handler methods
    to implement filters / ordering / paging

    Related-Bug: 1657348
    Change-Id: I7760465f70b3f69791e7a0c558a26e8ba55c934a
    (cherry picked from commit 03aaca2deeb062e962a81d16c2a75fb5fccfc265)

Denis Meltsaykin (dmeltsaykin) wrote :

I'm going to close this as Won't Fix for Mitaka, since the change is pretty big and the pagination is a feature itself. This is not acceptable by maintenance policy.

Change abandoned by Joshua Hesketh (<email address hidden>) on branch: stable/mitaka
Review: https://review.openstack.org/436344
Reason: This branch (stable/mitaka) is at End Of Life

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers