Nemo crashes during GTK menu updates — upstream fix available

未关闭
#3,866 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 6 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
35/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
c
领域
desktop

调研方向

Start by reading the GTK !10542 fix and its regression test, which releases the menu manager’s last external reference during a menu update. Verify the test fails with the original GTK and passes with the patched build; the report also notes five Nemo test suites pass against that build. Done means the GTK lifetime fix reaches Linux Mint users through a GTK package update.

由索引模型根据 Issue 内容生成。

描述

Distribution

Linux Mint 22.2, x86-64

Package version

Nemo 6.4.5+xia; GTK 3.24.41-4ubuntu1.3

Frequency

Only occasionally

Bug description

Nemo intermittently crashes with SIGSEGV. Two core dumps show the same GTK menu-update path:

update_node → do_updates → do_updates_idle

The GtkUIManager had already been destroyed while GTK was still using it to update the menu.

Steps to reproduce

The affected sessions involved accessing an SMB/Samba share on another computer and Google Drive through GVfs. Both crash records contain open GVfs metadata files for these locations.

The exact triggering operation has not been identified, and it is unclear whether either backend is required to reproduce the crash.

Expected behavior

Nemo should remain running during menu updates.

Additional information
Upstream fix and verification

The fix is merged into GTK’s gtk-3-24 branch: GTK !10542.

The patch keeps the menu manager alive until GTK finishes using it.

A regression test deliberately releases the manager’s last external reference during a menu update. With the original GTK, the test stops with a fatal GLib error. With the patched GTK, the same test completes successfully.

The existing Nemo executable now loads a private GTK build containing both fixes. Five test suites pass against that library, covering 62 test cases.

These tests reproduce the GTK object-lifetime problem; they do not reproduce the complete original Nemo session.

This report provides the details so the fix can also reach Linux Mint users through a GTK package update.

主要语言
C
星标
1.6k
派生
378
平均合并
10 天 14 小时
30 天内合并 PR
4

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

linuxmint/nemo 的其他 Issue

查看 linuxmint/nemo 的全部 Issue

相似的 Issue

更多 C Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。