Skip to content

GNOME Shell 50: animator triggers Dash._adjustIconSize → "firstIcon.icon is null" → Clutter paint assertion → SIGABRT #336

Description

@gabriel-kassai

Environment: GNOME Shell 50.1 (Ubuntu 26.04), Wayland, NVIDIA. dash2dock-lite v92 (from extensions.gnome.org) — also reproduced against v100 (main). animate-icons=true.

Symptom: the whole shell aborts (SIGABRT). The journal shows this exact chain, repeating at login and on dash relayout:

JS ERROR: TypeError: can't access property "ensure_style", firstIcon.icon is null
clutter_actor_get_stage: assertion 'CLUTTER_IS_ACTOR (actor)' failed
Clutter:ERROR ../clutter/clutter/clutter-paint-nodes.c:932:clutter_actor_node_new: assertion failed: (actor != NULL)
Bail out! Clutter:ERROR ...clutter_actor_node_new: assertion failed: (actor != NULL)

firstIcon.icon.ensure_style() lives in GNOME's own Dash._adjustIconSize(). The animator forcing a dash relayout drives that method; on shell 50 one dash child resolves to a null .icon, so _adjustIconSize throws, leaves a null actor behind, and the next paint hits the fatal clutter_actor_node_new assertion → the whole shell crashes (it's not just a logged JS error).

Notes:

  • animate-icons=false avoids the crash (the dock just loses the magnification/hover animation).
  • v100 does not fix it — the v92→v100 diff is animator refactoring plus an icon-render tweak (After installing and running the extension the dock becomes invisible. #188), nothing that guards this null path.
  • The null .icon is likely one of the injected non-app dash items (trash / clock / calendar / mounts) on shell 50, but I haven't pinned which.

@icedman — if you can point me at where you'd want the fix to live (guard in the animator before it provokes the relayout, vs. fixing the injected item so its .icon is never null), I'm happy to write and test the patch and open a PR.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions