Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Stuck on warming up #13273

Closed
2 tasks done
enricofromrome opened this issue Oct 28, 2021 · 13 comments
Closed
2 tasks done

Stuck on warming up #13273

enricofromrome opened this issue Oct 28, 2021 · 13 comments

Comments

@enricofromrome
Copy link

FAQ

URL

https://www.enricofromrome.eu/edb6/

What happened?

Nothing happened: that is the problem! Stuck on warming up. It used to work in the past.

What did you expect?

Normal behavior

What have you tried?

Repeated day after. Incognito and not incognito window. Tagging different options.

How were you running Lighthouse?

Chrome DevTools

Lighthouse Version

Sorry, I could not reach the report.

Chrome Version

Version 95.0.4638.54 (Official Build) (64-bit)

Node Version

No response

OS

No response

Relevant log output

No response

@MadisonMiner
Copy link

We are experiencing the same issue for most sites. We've tried different computers and profiles, Windows and Mac. Chrome versions:

Version 94.0.4606.81 (Official Build) (64-bit)
Version 95.0.4638.54 (Official Build) (64-bit)

@aDorofeev
Copy link

Reproduces on Chrome 95.0.4638.69 (Official Build) (64-bit) / Lighthouse 8.4.0.

It works fine on some pages:

And gets stuck on the "warming up" on others:

Based on my statistic - it usally works on higher quality pages, and gets stuck on heavier pages, or the ones with lots of errors in js console.

I also face exact same issue in Chrome 97.0.4682.3 (Official Build) dev (64-bit)

@connorjclark
Copy link
Collaborator

connorjclark commented Nov 2, 2021

Repro on canary 97.0.4689.0 https://www.enricofromrome.eu/edb6/
Works on stable 95.0.4638.54

Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'filter')
    at b.hasImportantResourcesNotCleared (lighthouse.js:1:8169)

https://source.chromium.org/chromium/chromium/src/+/main:third_party/devtools-frontend/src/front_end/panels/lighthouse/LighthouseController.ts;l=247;drc=11936d8b107dcc6e311cf0406d6fb7854795bdfd

EDIT: tried it again, also hung but the above error didn't happen.

image

@connorjclark
Copy link
Collaborator

connorjclark commented Nov 3, 2021

that "port close is not a function" error is suspicious but it should be harmless, given how it is handled:

// Ignore disconnecting error if browser was already closed.

this class should define a close method to fix https://source.chromium.org/chromium/chromium/src/+/main:third_party/devtools-frontend/src/front_end/entrypoints/lighthouse_worker/LighthouseService.ts;l=18?q=setUpWorkerConnection&ss=chromium

@connorjclark
Copy link
Collaborator

connorjclark commented Nov 3, 2021

we should wrap the webappmanifest+install errors base artifact collecting in the equivalent error handling that our main artifacts get

baseArtifacts.WebAppManifest = await WebAppManifest.getWebAppManifest(
. This should prevent the run from exiting fatally.

Although, I'd expect even a fatal run to not hang forever. We catch and rethrow fatal errors here:

which the lighthouse worker should catch here: https://source.chromium.org/chromium/chromium/src/+/main:third_party/devtools-frontend/src/front_end/entrypoints/lighthouse_worker/LighthouseService.ts;l=64;drc=59f68132b1b2d61464d39b050fd3ff157775fa7d

but... we don't use await here so it doesn't work :)


tldr; we should fix two errors here, 1) don't allow base artifacts protocol timeouts to create fatal error 2) correctly recover from a fatal error in lighthouse worker. this CL is the root cause of both of these: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2697187 . My fix: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/3258498

the root cause of the protocol timeout for "get installability errors" is still at-large.

devtools-bot pushed a commit to ChromeDevTools/devtools-frontend that referenced this issue Nov 3, 2021
A previous CL[1] refactored this file, transforming some promise
chaining into a try/catch. However, the final statement that
actually kicks off Lighthouse was not await'd, so any fatal
error is not handled as expected.

Additionally, the same CL dropped the 'close()' no-op method on the
Lighthouse port. This doesn't result in a user-facing error because
Lighthouse dismisses any error that happens during the disconnect
phase, but there is still an error message logged to console, which
is misleading as there really isn't any harm done.

[1] https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2697187
[2] GoogleChrome/lighthouse#13273 (comment)

Bug: 968639
Change-Id: Icf41f3ed8c3cd993f1d9e4748b8aff394c0582a5
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/3258498
Commit-Queue: Connor Clark <cjamcl@chromium.org>
Reviewed-by: Paul Irish <paulirish@chromium.org>
@enricofromrome
Copy link
Author

enricofromrome commented Nov 3, 2021 via email

@connorjclark
Copy link
Collaborator

Even with the above CL landed, LH still hangs at this point:

https://source.chromium.org/chromium/chromium/src/+/main:third_party/devtools-frontend/src/front_end/core/sdk/TargetManager.ts;l=81;drc=f290aeebbcf4f9e5662a184a9c6afc964f4a602a

Debugging shows that the target for the service worker is never resumed:

image

@hugues-koolsol
Copy link

On https://todo.koolsol.app,
lighthouse ends correctly only if I uncheck "vider l'espace de stockage" ( ~empty storage space )
I hope it helps !

URL : https://todo.koolsol.app/
Heure d'exécution : 5 nov. 2021, 13:12 UTC+1
Appareil : Émulation (Moto G4)
Limitation de bande passante réseau : 150 ms TCP RTT, 1 638,4 Kbps throughput (Simulated)
Limitation du processeur : 4x slowdown (Simulated)
Version : devtools
User-agent (hôte) : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.0 Safari/537.36
User-agent (réseau) : Mozilla/5.0 (Linux; Android 7.0; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4590.2 Mobile Safari/537.36 Chrome-Lighthouse
Puissance processeur/mémoire : 1740
Version d'axe : 4.2.3
Generated by Lighthouse 8.5.0

@enricofromrome
Copy link
Author

enricofromrome commented Nov 5, 2021 via email

@hugues-koolsol
Copy link

Actually, it uses only localstorage api and not indexedDb.
But you are right if you consider that localstorage looks like indexedDb.

@enricofromrome
Copy link
Author

enricofromrome commented Nov 7, 2021 via email

@enricofromrome
Copy link
Author

enricofromrome commented Nov 7, 2021 via email

@connorjclark
Copy link
Collaborator

Tracking this in #13396, please follow there.

paulirish pushed a commit to paulirish/devtools-frontend that referenced this issue Jul 26, 2023
A previous CL[1] refactored this file, transforming some promise
chaining into a try/catch. However, the final statement that
actually kicks off Lighthouse was not await'd, so any fatal
error is not handled as expected.

Additionally, the same CL dropped the 'close()' no-op method on the
Lighthouse port. This doesn't result in a user-facing error because
Lighthouse dismisses any error that happens during the disconnect
phase, but there is still an error message logged to console, which
is misleading as there really isn't any harm done.

[1] https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2697187
[2] GoogleChrome/lighthouse#13273 (comment)

Bug: 968639
Change-Id: Icf41f3ed8c3cd993f1d9e4748b8aff394c0582a5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants