Closed hyphenrf closed 2 years ago
Originally reported on Reddit, does not appear to be caused by the WebKitGTK compositing issue.
Could you try running env G_MESSAGES_DEBUG=all WEBKIT_DEBUG="all" $(dirname $(dirname $(readlink -f $(type -p gnome-control-center))))/libexec/gnome-control-center-goa-helper create-account google wayland:0
and pasting the contents of the console output and also the file produced by journalctl WEBKIT_SUBSYSTEM=WebKitGTK > webkit.log
?
Here you go: webkit.console.txt webkit.log.txt
Hmm, that does not reveal much so perhaps the bubblewrap issue is indeed the cause.
I would expect the bwrap error to come from
but it should --bind-try
. Though the error sounds like it might be failing inside the sandbox
I would guess the issue might be that /run
exists in the sandbox and is not a directory.
But I still cannot reproduce that, even though I have /run/current-system/sw/share
in XDG_DATA_DIRS
.
Could you also check strace --output=strace.log --decode-fds=all --follow-forks --string-limit=1000 -e execve -e memfd_create -e write $(dirname $(dirname $(readlink -f $(type -p gnome-control-center))))/libexec/gnome-control-center-goa-helper create-account google wayland:0
(specifically looking for writes to memfd:bwrap
).
Also, as a workaround, you might try running env XDG_DATA_DIRS= $(dirname $(dirname $(readlink -f $(type -p gnome-control-center))))/libexec/gnome-control-center-goa-helper create-account google wayland:0
to skip the font directory from being mounted.
here's the strace.log in case you're interested in it and you're right! the workaround did work.. but only momentarily. As soon as I tried logging in by typing-in my email, I got these:
GStreamer element autoaudiosink not found. Please install it
(WebKitWebProcess:2): GLib-GObject-WARNING **: 20:43:51.663: invalid (NULL) pointer instance
(WebKitWebProcess:2): GLib-GObject-CRITICAL **: 20:43:51.663: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
I guess this is to be expected with the hacky way we reached this point. So I don't think it counts towards the bug.
Oops, I meant to suggest env XDG_DATA_DIRS= gnome-control-center
as a workaround.
Looks like the strace.log is still too incomplete and we need to increase --string-limit
to 20000
.
minimally, env XDG_DATA_DIRS= gnome-control-center online-accounts
still produces the nullptr dereference and breaks webkit.
here's strace.log with 20k string limit
I've taken the liberty to test page loads with different providers and it seems google has to be the damn thorn. only google's login page causes the exception, and only when I enter my email and press next.
Oh, I thought you get stuck on a white page, no buttons at all, hence I was focusing on the bubblewrap. I get the following bubblewrap arguments in fresh GNOME VM but they look about the same as yours:
I am out of ideas what else to try. Maybe it would be possible to get webkitgtk developer tools but probably not without changing the g-c-c source code.
I think webkit getting stuck is just a separate issue: the webpage actually renders, but when that nullptr is hit, the webkit view crashes and gets dropped entirely from the window.
perhaps the second issue disappears when the first is fixed? I mean, if we run it normally from the gui after fixing, it could be able to locate that gstreamer element somewhere from XDG_DATA_DIRS
.
The issue really was as you identified here: https://github.com/NixOS/nixpkgs/issues/169201#issuecomment-1101528606
The autoaudiosink
should be fixable with the following, I am just confused it does not complain to me. Or maybe the site only tries to play sound later in the flow.
env GST_PLUGIN_SYSTEM_PATH_1_0=$(nix-build -A gst_all_1.gstreamer.out)/lib/gstreamer-1.0:$(nix-build -A gst_all_1.gst-plugins-good)/lib/gstreamer-1.0
Though I still would not expect it to crash. Could you try enabling debug symbols:
environment.enableDebugInfo = true;
environment.systemPackages = with pkgs; [
webkitgtk
glib
gtk3
];
and then running it with G_DEBUG='fatal-warnings,fatal-criticals'
and get backtrace by entering bt full
into coredumpctl gdb
after it crashes?
Roughly same issue here on unstable with Wayland on Intel, and I noticed I get the same bwrap
error for epiphany
and tangram
(which I maintain and was trying to update and get working). Maybe this is a separate issue and I'm in the wrong place, but epiphany
basically doesn't work at all, it just won't even start to display a site.
WEBKIT_DISABLE_COMPOSITING_MODE=1 WEBKIT_FORCE_SANDBOX=0 epiphany
makes it almost work. As mentioned, I can go to google.com, but going to the sign in page crashes it.
EGLDisplay Initialization failed: EGL_NOT_INITIALIZED
Cannot create EGL context: invalid display (last error: EGL_SUCCESS)
(epiphany:80918): epiphany-WARNING **: 22:54:53.337: Web process crashed
EGLDisplay Initialization failed: EGL_NOT_INITIALIZED
I tried running G_DEBUG='fatal-warnings,fatal-criticals' epiphany
and got it to crash, but despite enableDebugInfo = true
I see (No debugging symbols found in /nix/store/q7nk9101vp57g31hl8bh8inz3k7d01pi-epiphany-42.2/bin/.epiphany-wrapped)
in the output.
I'm in exactly the same situation as @austinbutler , wayland, intel, same errors..
Does someone know a way to connect Gnome to a Google account some other way in the meantime? like forcing to use another browser
@PaulGrandperrin did you try running it with GST_PLUGIN_SYSTEM_PATH_1_0
environment variable https://github.com/NixOS/nixpkgs/issues/169201#issuecomment-1102298755?
@jtojnar I tried and there was no differences.
My gst_all_1.gstreamer
doesn't container a lib
directory by the way (but gst_all_1.gst-plugins-good
does).
It makes my remember than I wanted to investigate someday why gstreamer-vaapi
was never loaded and used. I think it also needed GST_PLUGIN_SYSTEM_PATH_1_0
to be set manually.
Sorry, it should be gst_all_1.gstreamer.out
.
Ok, I tried:
set cmd (dirname (dirname (readlink -f (type -p gnome-control-center))))/libexec/gnome-control-center-goa-helper;WEBKIT_DISABLE_COMPOSITING_MODE=1 WEBKIT_FORCE_SANDBOX=0 GST_PLUGIN_SYSTEM_PATH_1_0=(nix eval --raw n#gst_all_1.gstreamer.out)/lib/gstreamer-1.0:(nix eval --raw n#gst_all_1.gst-plugins-good)/lib/gstreamer-1.0 $cmd create-account google wayland:0
(syntax is different because i use fish and flakes)
and it still doesn't work...
Thanks to the WEBKIT_DISABLE_COMPOSITING_MODE
the dialog displays the webpage for a little while and then it freezes..
The console shows this:
EGLDisplay Initialization failed: EGL_NOT_INITIALIZED
Cannot create EGL context: invalid display (last error: EGL_SUCCESS)
Failed to create account: Dialog was dismissed
Ugh, we really might need to switch to WPE according to https://bugs.webkit.org/show_bug.cgi?id=238513, not using is not really tested upstream any more.
Unfortunately, we have reverted that in https://github.com/NixOS/nixpkgs/pull/110738.
cc @matthewbauer
I've been having non-stop issues with EGL applications not working on Wayland + Intel HD graphics
I'd like to remind the people here that branch-off is scheduled for tomorrow and depending on how good the staging builds progress, we will branch off rather soon.
nixos-unstable-small
contains the switch to WPE renderer. Could someone please try to verify whether the issue still occurs with that?
Switching to nixos-unstable-small
seems to resolve this issue. gnome-online-accounts shows a google sign in page and epiphany is able to load web pages.
Is this working on 22.05 or unstable?
@hyphenrf working for me on 72b1ec0a79b1fc50f6cc0694c2f0b1eb384a932e!
Is this working on 22.05 or unstable?
Don't work for me, on 22.05, Xorg with Nvidia Prime sync enabled.
EPiphany don't render de webpages, also online accounts.
It doesn't work for me as well on latest nixos-unstable.
But to just add the google account starting gnome settings with env XDG_DATA_DIRS= gnome-control-center
did the job.
That should hopefully be fixed by https://github.com/NixOS/nixpkgs/pull/201219
Describe the bug
goa will expire google account access tokens and not allow me to re-login after upgrading to 42. I've tried clearing everything goa-related from config and cache user dirs, to no avail. It keeps loading infinitely. Running
gnome-control-center online-accounts
from the commandline and then picking the google account outputs thiserror: bwrap: Can't mkdir parents for /run/current-system/sw/share/fonts: No such file or directory
Steps To Reproduce
Steps to reproduce the behavior:
Screenshots
This is how it looks now when I click on google:
Additional context
gnome-shell is running on wayland by default Since this seems to be touching fonts, here's my fonts config
Notify maintainers
@bobby285271 @hedning @jtojnar @dasj19 @maxeaubrey
Metadata
"x86_64-linux"
Linux 5.15.34, NixOS, 22.05 (Quokka), 22.05pre369756.75ad56bdc92
yes
yes
nix-env (Nix) 2.7.0
"nixos"
/nix/var/nix/profiles/per-user/root/channels/nixos