jessfraz / dockerfiles

Various Dockerfiles I use on the desktop and on servers.
https://blog.jessfraz.com/post/docker-containers-on-the-desktop/
MIT License
13.69k stars 2.55k forks source link

Chrome 79 white screen #515

Closed xlfe closed 4 years ago

xlfe commented 4 years ago

I've been running Chrome using @jessfraz's recipe for a while now (thanks) and a couple of days ago found Chrome had broken. It still launches but I just have a completely white screen. I can switch tabs but nothing is drawn. If I revert to my last Chrome 78 image it works again...

Anyone else running into the same issue with Chrome 79?

issue-label-bot[bot] commented 4 years ago

Issue-Label Bot is automatically applying the label bug to this issue, with a confidence of 0.79. Please mark this comment with :thumbsup: or :thumbsdown: to give our bot feedback!

Links: app homepage, dashboard and code for this bot.

cradcore commented 4 years ago

I am also having this issue. On the latest chrome, the window is completely white other than the title bar

xlfe commented 4 years ago

I noticed that I can still interact with the browser - I can move the mouse around and it changes from a pointer to a text cursor over the spot where the omnibar probably is. If i enter a new website there and press enter, the titlebar changes to indicate the new site is loading.

Looking at the debug output, I have this message

[55:55:1217/201123.332202:WARNING:x11_util.cc(1415)] X error received: serial 205, error_code 10 (BadAccess), request_code 130, minor_code 1 (Unknown)
[55:55:1217/201123.332393:WARNING:x11_util.cc(1415)] X error received: serial 206, error_code 10 (BadAccess), request_code 130, minor_code 1 (Unknown)
[55:55:1217/201123.332564:WARNING:x11_util.cc(1415)] X error received: serial 207, error_code 128 (BadShmSeg), request_code 130, minor_code 3 (Unknown)

There was a big change to Drawing to Shared Memory in Sept https://chromium-review.googlesource.com/c/chromium/src/+/1789444 but disabling shared memory doesn't seem to make any difference, which makes me think it's something else.

xlfe commented 4 years ago

@cradcore I was able to fix it by adding the runtime flag --use-gl=swiftshader as per https://support.google.com/chrome/thread/23098754?hl=en

cradcore commented 4 years ago

@xlfe Did you add this to the last line of the Dockerfile (the CMD line?)

xlfe commented 4 years ago

yep it's a Chrome command line flag.

cradcore commented 4 years ago

Works for me after wiping my config folder, thanks @xlfe!

matti commented 4 years ago

--use-gl=swiftshader doesn't work consistently with multiple containers

aniline commented 4 years ago

FWIW, I had the same problem, I had a debian docker image (originally debian stretch + nvidia glx libraries 384.130-1) that I was using to run chrome 78. Updating nvidia glx libraries in the container (to match the host's drivers, 418.74-1 in my case) helped me run chrome 79 fine.

P.S. I've not tried Jess' Dockerfile yet. Stumbled across the thread searching for a solution. just thought I should mention it here.

rgtx commented 4 years ago

I found this thread while trying to diagnose the same problem with Chrome on another platform (RHEL8, unrelated to this project); anything other than "--use-gl=swiftshader" breaks rendering. "--use-gl=swiftshader" performance is counter-intuitively awful, though compared to "--disable-gpu" (at least for rendering over X11). Still encountering this bug with google-chrome-stable-79.0.3945.130-1.x86_64.

rubensa commented 4 years ago

I had similar problem with Ubuntu 18.04 based Docker Image with mesa driver compiled for CPU rendering. I could make the window content to appear providing --ignore-gpu-blacklist switch on launch See: https://bugs.chromium.org/p/chromium/issues/detail?id=1048186#c5

rubensa commented 4 years ago

After some more investigation found that adding --ipc=host on Docker container run (Allowing shared memory to avoid RAM access failures and rendering glitches due to X extension MIT-SHM) fixed the problem (without needing to provide --ignore-gpu-blacklist switch). Looks like this is related to this change: https://chromium-review.googlesource.com/c/chromium/src/+/1789444

daddydrac commented 4 years ago

What if I’m running NVIDIA GPU? Do I add: —runtime=nvidia?

On Tue, Feb 18, 2020 at 1:58 AM Ruben Suarez Alvarez < notifications@github.com> wrote:

After some more investigation found that adding --ipc=host on Docker container run (Allowing shared memory to avoid RAM access failures and rendering glitches due to X extension MIT-SHM) fixed the problem (without needing to provide --ignore-gpu-blacklist switch). Looks like this is related to this change: https://chromium-review.googlesource.com/c/chromium/src/+/1789444

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/jessfraz/dockerfiles/issues/515?email_source=notifications&email_token=ABHVQHACB2X7CMGDSR6SW7TRDOIK3A5CNFSM4J26EDYKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEMA63DY#issuecomment-587328911, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABHVQHFWNMCZKV7TPMURILLRDOIK3ANCNFSM4J26EDYA .

rubensa commented 4 years ago

What if I’m running NVIDIA GPU? Do I add: —runtime=nvidia? On Tue, Feb 18, 2020 at 1:58 AM Ruben Suarez Alvarez < @.**> wrote: After some more investigation found that adding --ipc=host on Docker container run (Allowing shared memory to avoid RAM access failures and rendering glitches due to X extension MIT-SHM) fixed the problem (without needing to provide --ignore-gpu-blacklist* switch). Looks like this is related to this change: https://chromium-review.googlesource.com/c/chromium/src/+/1789444 — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub <#515?email_source=notifications&email_token=ABHVQHACB2X7CMGDSR6SW7TRDOIK3A5CNFSM4J26EDYKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEMA63DY#issuecomment-587328911>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABHVQHFWNMCZKV7TPMURILLRDOIK3ANCNFSM4J26EDYA .

Yes, if you have nvidia-docker installed (but also needs the --ipc=host parameter to avoid the rendering glitches).

NOTE: I have not tried that cause I do not use nvidia-docker. I've tested with vanilla docker ci sharing host graphic resources and installing the host nvidia driver version in the container.

matti commented 4 years ago

--ipc=host fixed this for me, but the blacklist gpu doesn't do anything (or it might be that it makes chrome to work slightly better)

On 18. Feb 2020, at 16.15, Ruben Suarez Alvarez notifications@github.com wrote:

 What if I’m running NVIDIA GPU? Do I add: —runtime=nvidia? … On Tue, Feb 18, 2020 at 1:58 AM Ruben Suarez Alvarez < @.***> wrote: After some more investigation found that adding --ipc=host on Docker container run (Allowing shared memory to avoid RAM access failures and rendering glitches due to X extension MIT-SHM) fixed the problem (without needing to provide --ignore-gpu-blacklist switch). Looks like this is related to this change: https://chromium-review.googlesource.com/c/chromium/src/+/1789444 — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub <#515?email_source=notifications&email_token=ABHVQHACB2X7CMGDSR6SW7TRDOIK3A5CNFSM4J26EDYKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEMA63DY#issuecomment-587328911>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABHVQHFWNMCZKV7TPMURILLRDOIK3ANCNFSM4J26EDYA .

Yes, if you have nvidia-docker installed (but also needs the --ipc=host parameter to avoid the rendering glitches).

NOTE: I have not tried that cause I do not use nvidia-docker. I've tested with vanilla docker ci sharing host graphic resources and installing the host nvidia driver version in the container.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

rubensa commented 4 years ago

--ipc=host fixed this for me, but the blacklist gpu doesn't do anything (or it might be that it makes chrome to work slightly better) On 18. Feb 2020, at 16.15, Ruben Suarez Alvarez @.> wrote:  What if I’m running NVIDIA GPU? Do I add: —runtime=nvidia? … On Tue, Feb 18, 2020 at 1:58 AM Ruben Suarez Alvarez < @.> wrote: After some more investigation found that adding --ipc=host on Docker container run (Allowing shared memory to avoid RAM access failures and rendering glitches due to X extension MIT-SHM) fixed the problem (without needing to provide --ignore-gpu-blacklist switch). Looks like this is related to this change: https://chromium-review.googlesource.com/c/chromium/src/+/1789444 — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub <#515?email_source=notifications&email_token=ABHVQHACB2X7CMGDSR6SW7TRDOIK3A5CNFSM4J26EDYKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEMA63DY#issuecomment-587328911>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABHVQHFWNMCZKV7TPMURILLRDOIK3ANCNFSM4J26EDYA . Yes, if you have nvidia-docker installed (but also needs the --ipc=host parameter to avoid the rendering glitches). NOTE: I have not tried that cause I do not use nvidia-docker. I've tested with vanilla docker ci sharing host graphic resources and installing the host nvidia driver version in the container. — You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

Yes, I discovered it after my first comment.

As I tell in my second comment, the key is using --ipc=host and not using --ignore-gpu-blacklist

With --ignore-gpu-blacklist I get it working with the mesa driver compiled for CPU rendering but the --ipc=host works also with "real" GPU acceleration.