chromium on Jetson Orin fails to open file dialog

Bug #2118383 reported by Esa Pulkkinen
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
chromium-browser (Ubuntu)
New
Undecided
Unassigned
xdg-desktop-portal-gnome (Ubuntu)
New
Unknown

Bug Description

For chromium 138.0.7204.157 Rev 3205 latest/stable snap
running on Jetson Orin (arm64) with 5.15.136-tegra kernel from Nvidia.

with snapd 2.70, it seems I must downgrade snapd to 2.68.5 (Rev 24724), otherwise browser doesn't start.
I found recent discussion on NVidia forum:

https://jetsonhacks.com/2025/07/12/why-chromium-suddenly-broke-on-jetson-orin-and-how-to-bring-it-back/

This seems to indicate snapd has issues if kernel doesn't enable CONFIG_SQUASHFS_XATTR=y and apparmor, which the NVidia provided kernel doesn't have.

If I do use 2.68.5, I see additional problem that file open dialog doesn't open in React applications. It is implemented with label that uses htmlFor attribute and a button and input tag inside the label, where htmlFor attribute refers to a input tag that accepts file names for .txt files. This is the primary problem here. This was earlier working, so I'm surprised it broke.
When I try to use it, I see following logging in syslog, which seems to indicate reason for the failure:

```
Jul 24 10:39:34 ubuntu xdg-desktop-por[19354]: Backend call failed: Message recipient disconnected from message bus without replying
Jul 24 10:39:34 ubuntu chromium_chromium.desktop[39413]: [39413:39413:0724/103934.435160:ERROR:components/dbus/xdg/request.cc:169] Request ended (non-user cancelled).
Jul 24 10:39:34 ubuntu systemd[19053]: xdg-desktop-portal-gnome.service: Main process exited, code=killed, status=11/SEGV
Jul 24 10:39:34 ubuntu systemd[19053]: xdg-desktop-portal-gnome.service: Failed with result 'signal'.
Jul 24 10:39:34 ubuntu systemd[19053]: xdg-desktop-portal-gnome.service: Consumed 1.239s CPU time.
```

I have also seen following messages in syslog (from earlier attempt):

```
Jul 22 16:02:40 ubuntu systemd[651658]: Starting Portal service (GNOME implementation)...
Jul 22 16:02:41 ubuntu xdg-desktop-portal-gnome[710339]: libEGL warning: DRI3: Screen seems not DRI3 capable
Jul 22 16:02:41 ubuntu xdg-desktop-portal-gnome[710339]: libEGL warning: DRI2: failed to authenticate
Jul 22 16:02:41 ubuntu dbus-daemon[651675]: [session uid=1000 pid=651675] Successfully activated service 'org.freedesktop.impl.portal.desktop.gnome'
Jul 22 16:02:41 ubuntu systemd[651658]: Started Portal service (GNOME implementation).
Jul 22 16:02:42 ubuntu xdg-desktop-por[651957]: Backend call failed: Message recipient disconnected from message bus without replying
```

So it looks chromium is triggering request to xdg-desktop-portal-gnome.service, which crashes, and this is somehow related to DRI3 or DRI2 authentication. OTOH, xdpyinfo says the X server supports DRI2 and DRI3.

This does not look like a web application problem because when I connect to same application from a Windows machine's chromium browser, the functionality works.

```
$ uname -a ; type -a chromium
Linux ubuntu 5.15.136-tegra #1 SMP PREEMPT Mon May 6 09:56:39 PDT 2024 aarch64 aarch64 aarch64 GNU/Linux
chromium is /usr/bin/chromium
chromium is /bin/chromium
chromium is /snap/bin/chromium
chromium is /snap/bin/chromium

$ snap changes
ID Status Spawn Ready Summary
248 Done yesterday at 15:37 EEST yesterday at 15:38 EEST Install "snapd" snap from file "snapd_24724.snap"
249 Done yesterday at 15:38 EEST yesterday at 15:38 EEST Hold general refreshes for "snapd"
250 Done today at 03:01 EEST today at 03:01 EEST Auto-refresh snap "firefox"

$ snap connections chromium
Interface Plug Slot Notes
audio-playback chromium:audio-playback :audio-playback -
audio-record chromium:audio-record :audio-record -
bluez chromium:bluez :bluez -
browser-support chromium:browser-sandbox :browser-support -
camera chromium:camera :camera -
content[gnome-42-2204] chromium:gnome-42-2204 gnome-42-2204:gnome-42-2204 -
content[gtk-3-themes] chromium:gtk-3-themes gtk-common-themes:gtk-3-themes -
content[icon-themes] chromium:icon-themes gtk-common-themes:icon-themes -
content chromium:install-cups-runtime-dependency - -
content[sound-themes] chromium:sound-themes gtk-common-themes:sound-themes -
cups chromium:cups cups:cups -
desktop chromium:desktop :desktop -
desktop-legacy chromium:desktop-legacy :desktop-legacy -
gsettings chromium:gsettings :gsettings -
hardware-observe chromium:hardware-observe :hardware-observe -
hidraw chromium:hidraw - -
home chromium:home :home -
joystick chromium:joystick :joystick -
mount-observe chromium:mount-observe - -
mpris - chromium:mpris -
network chromium:network :network -
network-bind chromium:network-bind :network-bind -
network-manager chromium:network-manager - -
opengl chromium:opengl :opengl -
password-manager-service chromium:password-manager-service - -
pcscd chromium:pcscd - -
personal-files chromium:chromium-config :personal-files -
personal-files chromium:dot-local-share-applications :personal-files -
personal-files chromium:dot-local-share-icons :personal-files -
pulseaudio chromium:pulseaudio - -
raw-usb chromium:raw-usb - -
removable-media chromium:removable-media :removable-media -
screen-inhibit-control chromium:screen-inhibit-control :screen-inhibit-control -
serial-port chromium:serial-port - -
system-files chromium:etc-chromium-browser-policies :system-files -
system-packages-doc chromium:system-packages-doc :system-packages-doc -
u2f-devices chromium:u2f-devices :u2f-devices -
unity7 chromium:unity7 :unity7 -
upower-observe chromium:upower-observe :upower-observe -
wayland chromium:wayland :wayland -
x11 chromium:x11 :x11 -
```

Esa Pulkkinen (esap)
description: updated
Revision history for this message
Esa Pulkkinen (esap) wrote :

The stack trace from crash dump of xdg-desktop-portal-gnome indicates following crash at 'thread 1':

```
000ffff7e2ccd4c in () at /lib/aarch64-linux-gnu/librsvg-2.so.2
#1 0x0000ffff7e27c164 in () at /lib/aarch64-linux-gnu/librsvg-2.so.2
#2 0x0000ffff7e23a63c in () at /lib/aarch64-linux-gnu/librsvg-2.so.2
#3 0x0000ffff7e23d14c in rsvg_handle_close () at /lib/aarch64-linux-gnu/librsvg-2.so.2
#4 0x0000ffff8de80d30 in () at /usr/lib/aarch64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so
#5 0x0000ffff944d1814 in gdk_pixbuf_loader_close () at /lib/aarch64-linux-gnu/libgdk_pixbuf-2.0.so.0
#6 0x0000ffff944d22c4 in () at /lib/aarch64-linux-gnu/libgdk_pixbuf-2.0.so.0
#7 0x0000ffff944d2488 in gdk_pixbuf_new_from_stream () at /lib/aarch64-linux-gnu/libgdk_pixbuf-2.0.so.0
#8 0x0000ffff949a8060 in () at /lib/aarch64-linux-gnu/libgtk-4.so.1
#9 0x0000ffff946956ac in () at /lib/aarch64-linux-gnu/libgtk-4.so.1
#10 0x0000ffff94695854 in () at /lib/aarch64-linux-gnu/libgtk-4.so.1
#11 0x0000ffff94e493f0 in () at /lib/aarch64-linux-gnu/libgio-2.0.so.0
#12 0x0000ffff95017668 in () at /lib/aarch64-linux-gnu/libglib-2.0.so.0
#13 0x0000ffff95014990 in () at /lib/aarch64-linux-gnu/libglib-2.0.so.0
#14 0x0000ffff93f3d5b8 in start_thread (arg=0x0) at ./nptl/pthread_create.c:442
        ret = <optimized out>
        pd = 0x0
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {281473073008032, 281474520161464, 281474520161150, 8447456, 281474520161151, 0, 281473064558592, 8447456, 281473178954752, 281473064558592, 281473073005760, 10659804190862601045, 0, 10659804190515264409, 0, 0, 0, 0, 0, 0, 0, 0}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = 0
#15 0x0000ffff93fa5edc in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:79
```

Esa Pulkkinen (esap)
affects: chromium-browser → xdg-desktop-portal-gnome (Ubuntu)
Changed in xdg-desktop-portal-gnome (Ubuntu):
status: Unknown → New
Revision history for this message
Esa Pulkkinen (esap) wrote :

The minimal HTML to produce the problem is as follows:

```
<html><body><div><label><span role="button">Choose file</span>
<input id="file-input" type="file">
</label></div></body></html>
```

When the button is pressed, nothing happens, but the syslog message occurs.

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

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.