{"object_kind":"push","event_name":"push","before":"385fc83f4620feba5f18b195cc5cf8b2c247c4c5","after":"627b003a05c09d6646af40daf7fe8a45ea205c6d","ref":"refs/heads/master","ref_protected":true,"checkout_sha":"627b003a05c09d6646af40daf7fe8a45ea205c6d","message":null,"user_id":761,"user_name":"George Kiagiadakis","user_username":"gkiagia","user_email":"","user_avatar":"https://secure.gravatar.com/avatar/fef80de08e4b130d46f64ddfd085c154e4b8cd4c45f8ba9dc8f6dc3f3ce79986?s=80&d=identicon","project_id":2941,"project":{"id":2941,"name":"wireplumber","description":"Session / policy manager implementation for PipeWire","web_url":"https://gitlab.freedesktop.org/pipewire/wireplumber","avatar_url":null,"git_ssh_url":"git@ssh.gitlab.freedesktop.org:pipewire/wireplumber.git","git_http_url":"https://gitlab.freedesktop.org/pipewire/wireplumber.git","namespace":"PipeWire","visibility_level":20,"path_with_namespace":"pipewire/wireplumber","default_branch":"master","ci_config_path":"","homepage":"https://gitlab.freedesktop.org/pipewire/wireplumber","url":"git@ssh.gitlab.freedesktop.org:pipewire/wireplumber.git","ssh_url":"git@ssh.gitlab.freedesktop.org:pipewire/wireplumber.git","http_url":"https://gitlab.freedesktop.org/pipewire/wireplumber.git"},"commits":[{"id":"627b003a05c09d6646af40daf7fe8a45ea205c6d","message":"m-permissions-portal: Avoid race condition during shutdown\n\nAttempts to workaround a race condition between daemon thread and\nGDBus worker thread during shutdown.\n\nUbuntu bug: https://bugs.launchpad.net/bugs/2127049\n\nI've not been able to get a symbolic backtrace yet or reproduce it\nmyself, but the behaviour points to a threading bug. Hypothesis,\n\nMain thread (1, daemon thread) shuts down, unregistering its plugins.\nOne of the plugins, module-permissions-portal, is triggered to\nshutdown.\nIt tries to clear its GDBus connection handle without disconnecting\nits signal handlers.\nGDBus thread (2) is in the middle of writing a message on the same\nconnection handle.\nOnce finished, it also tries to clear its handle.\nThe main thread has already taken the signal lock and the signal\nhandler table ends up in an invalid state, triggering the assert.\n\nI believe this could happen since\nwp_portal_permissionstore_plugin_disable is not disconnecting its\nsignal handlers before trying to clear its DBus object.\n\nSee https://bugzilla.gnome.org/show_bug.cgi?id=730296 for more\ndiscussion about this assert in the Glib signal handling code.\n","title":"m-permissions-portal: Avoid race condition during shutdown","timestamp":"2025-10-10T13:04:01+03:00","url":"https://gitlab.freedesktop.org/pipewire/wireplumber/-/commit/627b003a05c09d6646af40daf7fe8a45ea205c6d","author":{"name":"Charles","email":"charles05@canonical.com"},"added":[],"modified":["modules/module-portal-permissionstore.c"],"removed":[]}],"total_commits_count":1,"push_options":{},"repository":{"name":"wireplumber","url":"git@ssh.gitlab.freedesktop.org:pipewire/wireplumber.git","description":"Session / policy manager implementation for PipeWire","homepage":"https://gitlab.freedesktop.org/pipewire/wireplumber","git_http_url":"https://gitlab.freedesktop.org/pipewire/wireplumber.git","git_ssh_url":"git@ssh.gitlab.freedesktop.org:pipewire/wireplumber.git","visibility_level":20}}