Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Desktop freezes on group "Clear chat" and "Leave group", database stuck at 2.7 GB, directory de-lists the group anyway

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

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
25/100
Issue 类型
缺陷
描述清晰度
需要澄清
活跃度
冷清
技术栈
haskell

调研方向

No source files, tests, or entry points are named. Start by reproducing the freeze and relaunch behavior on Windows 11 with a large group database, then trace the Clear chat and Leave group operations, storage cleanup, and directory leave handling. Done means both operations complete or show an error without blocking the UI, storage is reclaimed, and the directory state matches membership.

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

描述

bug triage
Is there an existing issue for this?
  • I have searched the existing issues
Platform

Windows

OS version

Windows 11 Pro 25H2

App version

Desktop App 7.1 Beta

Current Behavior

I created a group a while back and I am still one of its owners. Over the last
few releases the desktop client has become unusable for that group, and by now
the whole profile is more or less a write-off. This is not new in 7.1 beta, it
was the same in the version before, and I think it has been like this for about
three releases.

Clicking "Clear chat" at the bottom of the group settings freezes the whole app.
Not just the chat view, the entire window. I cannot switch to the member list, I
cannot open settings, nothing responds. No error, no spinner, it just sits on
whatever was last on screen.

Since the group has more than one owner I thought I could work around it by
leaving and rejoining. Same freeze on "Leave group".

Getting out of the freeze is its own problem. If I close the window, the app
relaunches itself about a quarter of a second later, without me doing anything.
That second window is frozen as well, so I have to close it again before I can
start the app properly.

Meanwhile the database has grown past 2.7 GB. The group history does not show a
single file or image anymore, so whatever is taking up that space is not
reachable through the UI. And I cannot shrink it, because the two operations
that would (clear chat, leave group) are exactly the ones that hang. It is also
too big to import into the mobile app now, so moving the profile to my phone is
out as well.

The worst part is the directory. My leave attempt never went through, the client
hung and I killed it. I am still in the group, still an owner, I can still post.
I asked other members and none of them saw a "left the group" message. As far as
anyone can tell, nothing happened.

The SimpleX Directory removed the group from the listing anyway and announced
that the owner had left. So the directory is the only thing in the entire system
that thinks I left, and it is the one thing I cannot correct. I cannot retry the
leave because it hangs, and I see no way to get the listing back. As far as I
can tell I would have to register the whole group again from scratch.

The only thing that got me back to a working state was giving up on the profile:
rename the old owner profile, create a new one, make it an owner of the group,
switch to it, then delete the old profile in the desktop app. The database only
shrinks once the old profile is gone. Nothing you can do from inside the profile
frees that space. That is not an acceptable fix for a group owner. It means
throwing away a profile with all its contacts and every other group it is in,
just to get out of one broken group.

A few things that might help narrow it down:

The freeze locks the whole window, not just the chat, which looks more like
something blocking on the UI thread than a slow query stalling one screen.

Clear chat and leave group both hang, and both presumably run over the same bulk
delete of the group's items.

An empty looking history sitting on 2.7 GB, plus the space only being freed when
the entire profile is deleted, suggests deleted items leave their file payloads
behind.

On the directory: a leave goes out to each member over their own connection. If
those are sent one at a time and the client freezes partway through, an early
recipient gets its copy and the later ones never do. If the directory bot sits
early in that order, that would explain a de-listing nobody else ever saw. That
is a guess, I cannot see inside it, but it fits what I observe.

The self-relaunch after closing the frozen window may well be a separate defect.
Happy to split it out if you prefer.

Expected Behavior

Clear chat and leave group either finish or fail with a visible error. Neither
should block the whole app, and a long database operation should not run on the
UI thread with no progress shown.

Clearing a chat or leaving a group should actually free the storage, including
files that no chat item points at anymore.

Closing the app should close it, not relaunch it.

The directory should not act on a leave that the client never completed and that
no member ever received. Either the leave happens everywhere or nowhere. A leave
that survives only in the directory is the worst case, because I cannot undo it
and I cannot even retry it. And if a listing has been removed in error, an owner
should have a way to restore it without registering the group from scratch.

Steps To Reproduce
  1. Open the desktop client on Windows 11 with a profile whose database has grown
    into the gigabyte range, on a large group you created and own.
  2. Open the group, open the group settings, scroll to the bottom, click
    "Clear chat".
  3. The whole UI freezes. No navigation to the member list or to settings.
  4. Close the window. It relaunches itself after about a quarter of a second,
    still frozen. Close it again, then start it normally.
  5. Same thing, but click "Leave group" instead. Same freeze.
  6. Kill the app and restart it. You are still in the group and can still post.
    The leave never happened.
  7. Ask other members. They saw no leave message.
  8. Check the SimpleX Directory listing. The group is gone from it and the
    directory reports that the owner left.
Relevant log output

主要语言
Haskell
星标
19.5k
派生
1.4k
平均合并
2 天 4 小时
30 天内合并 PR
120

环境准备

  • 提供 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

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

simplex-chat/simplex-chat 的其他 Issue

查看 simplex-chat/simplex-chat 的全部 Issue

相似的 Issue

更多 Haskell Issue

把新 issue 发到你的邮箱

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