Skip to content

[Bug]: GTK Assertion Failure Crash on Launch/Initialization #3886

Closed
@bannert1337

Description

@bannert1337

Describe the bug

Bottles crashes immediately upon launch or during initial setup/component installation with a GTK assertion failure.

Expected behavior: Bottles should launch successfully, display the main window, and allow users to interact with bottles and their settings without crashing.

To Reproduce

  1. Install Bottles via Flatpak from Flathub.
  2. Launch Bottles using flatpak run com.usebottles.bottles in the terminal.
  3. Observe the application crash shortly after starting, with a GTK assertion failure message printed in the terminal.

(Note: With a previous installation using the paru AUR helper, a similar GTK crash occurred after successfully creating a bottle and attempting to interact with it, following an initial TypeError when clicking the bottle in the list view.)

Package

Flatpak from Flathub

Distribution

Arch Linux

Debugging Information

Official Package: true
Version: '51.21'
DE/WM: gnome
Display:
    X.org: true
    X.org (port): :0
    Wayland: true
Graphics:
    vendors:
        amd:
            vendor: amd
            envs:
                DRI_PRIME: '1'
            icd: /usr/lib/x86_64-linux-gnu/GL/vulkan/icd.d/radeon_icd.x86_64.json:/usr/lib/i386-linux-gnu/GL/vulkan/icd.d/radeon_icd.i686.json
    prime:
        integrated: null
        discrete: null
Kernel:
    Type: Linux
    Version: 6.14.4-2-cachyos
Disk:
    Total: 12501409792
    Free: 12501245952
RAM:
    MemTotal: 23.3GiB
    MemAvailable: 11.7GiB
Bottles_envs: null

Troubleshooting Logs

~ flatpak run com.usebottles.bottles
14:18:49 (INFO) Launching with URI: None
14:18:49 (INFO) [Activate] request received.
14:18:49 (INFO) Bottles Started!

(bottles:2): Gdk-WARNING **: 14:18:49.359: ../gdk/wayland/gdkcursor-wayland.c:210 cursor image size (32) not an integer multiple of theme size (24)
14:18:49 (INFO) Performing Bottles checks…
14:18:49 (INFO) Dxvks found:
	 - dxvk-2.6.1

14:18:49 (INFO) Vkd3ds found:
	 - vkd3d-proton-2.14.1

14:18:49 (INFO) Runners found:
	 - sys-wine-10.0

14:18:49 (INFO) Catalog installers loaded
14:18:49 (INFO) Catalog dependencies loaded
14:18:49 (INFO) Catalog components loaded

(bottles:2): Gdk-WARNING **: 14:18:50.905: ../gdk/wayland/gdkcursor-wayland.c:210 cursor image size (32) not an integer multiple of theme size (24)

(bottles:2): Gdk-WARNING **: 14:18:50.946: ../gdk/wayland/gdkcursor-wayland.c:210 cursor image size (32) not an integer multiple of theme size (24)
14:18:53 (INFO) Performing Bottles checks…
14:18:53 (INFO) Dxvks found:
	 - dxvk-2.6.1

14:18:53 (INFO) Vkd3ds found:
	 - vkd3d-proton-2.14.1

14:18:53 (WARNING) No nvapi found.
14:18:53 (INFO) Installing component: [dxvk-nvapi-v0.9.0].
14:18:53 (WARNING) File [dxvk-nvapi-v0.9.0.tar.gz] already exists in temp, skipping.
14:18:53 (INFO) Nvapis found:
	 - dxvk-nvapi-v0.9.0

14:18:53 (INFO) Component installed: nvapi dxvk-nvapi-v0.9.0
14:18:53 (WARNING) No latencyflex found.
14:18:53 (INFO) Installing component: [latencyflex-v0.1.1].
latencyflex-v0.1.1.tar.xz (100%) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ (372.0KiB/372.0KiB - 703.4KiB)

14:18:55 (INFO) Renaming [latencyflex-v0.1.1.tar.xz] to [latencyflex-v0.1.1.tar.xz].
14:18:55 (INFO) Component installed: latencyflex latencyflex-v0.1.1
14:18:55 (WARNING) No WineBridge found.
14:18:55 (INFO) Installing component: [winebridge-1.1.0].

(bottles:2): Gdk-WARNING **: 14:18:55.353: ../gdk/wayland/gdkcursor-wayland.c:210 cursor image size (32) not an integer multiple of theme size (24)
WineBridge-eb78a75.tar.xz (100%) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ (3.3MiB/3.3MiB - 5.5MiB)

14:18:56 (INFO) Renaming [WineBridge-eb78a75.tar.xz] to [WineBridge-eb78a75.tar.xz].
14:18:56 (INFO) Component installed: winebridge winebridge-1.1.0
14:18:56 (INFO) Runners found:
	 - sys-wine-10.0

14:18:56 (WARNING) No managed runners found.
14:18:57 (INFO) Installing component: [soda-9.0-1].
soda-9.0-1-x86_64.tar.xz (100%) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ (59.1MiB/59.1MiB - 52.9MiB)

14:18:59 (INFO) Renaming [soda-9.0-1-x86_64.tar.xz] to [soda-9.0-1-x86_64.tar.xz].
**
Gtk:ERROR:../gtk/gtkwidget.c:3909:gtk_widget_ensure_allocate_on_children: assertion failed: (!priv->resize_needed)
Bail out! Gtk:ERROR:../gtk/gtkwidget.c:3909:gtk_widget_ensure_allocate_on_children: assertion failed: (!priv->resize_needed)

Additional context

Initially, I installed Bottles via the chaotic-aur repository on Arch Linux using paru. With that version, Bottles would launch, but clicking on any created bottle in the list view would result in a TypeError: nothing connected to <bound method PreferencesView.__set_runner of ...> traceback printed to the console, and the bottle settings would not open. After creating a new bottle with the AUR version, the application crashed with a similar GTK assertion failure as seen in the Flatpak log.

I have since removed the AUR version and installed the Flatpak version from Flathub (com.usebottles.bottles). With the Flatpak version, the application now crashes with the GTK assertion failure much earlier, during the initial setup/component installation phase upon first launch, preventing the main window from even appearing or any interaction with bottles.

I also cleared the ~/.local/share/bottles/ directory before installing the Flatpak version to ensure a clean state.

The Gdk Wayland warnings about cursor size were also present in the Flatpak log, though they don't seem directly related to the crash itself.

# Previous log from AUR installation (after bottle creation, before crash)
Traceback (most recent call last):
  File "/usr/share/bottles/bottles/frontend/views/list.py", line 115, in show_details
    self.window.page_details.view_preferences.update_combo_components()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/share/bottles/bottles/frontend/views/bottle_preferences.py", line 381, in update_combo_components
    self.combo_runner.handler_block_by_func(self.__set_runner)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
TypeError: nothing connected to <bound method PreferencesView.__set_runner of <bottle_preferences.PreferencesView object at 0x7dee7b5b7ac0 (DetailsPreferences at 0x639cda4bd480)>>
# ... (repeated multiple times) ...
# Followed by a similar GTK crash as below:
**
Gtk:ERROR:../gtk/gtk/gtkwidget.c:4022:gtk_widget_ensure_allocate_on_children: assertion failed: (!priv->resize_needed)
Bail out! Gtk:ERROR:../gtk/gtk/gtkwidget.c:4022:gtk_widget_ensure_allocate_on_children: assertion failed: (!priv->resize_needed)
[1]    66914 IOT instruction (core dumped)  bottles

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions