Skip to content

Conduwuit servers send membership events for all members in a room, causing slow initial rendering of room buffers #296

@Zarys9

Description

@Zarys9

OS/platform

Linux 6.10.6-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.10.6-1 (2024-08-19) x86_64 GNU/Linux

Emacs version and provenance

GNU Emacs 29.4 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.42, cairo version 1.18.0) of 2024-06-30, modified by Debian

Installed: "apt install emacs"

Emacs command

emacsclient -c

Emacs frame type

GUI

Ement package version and provenance

Version: 0.16pre from GitHub repository, on 0.15.1 (gnu) also

Actions taken

After succesfull login I select Emacs room on *Ement Room List*, pressing <RET>.

Observed results

CPU utilisation increases to 25% and emacs temporary stops responding.
After a delay of 26 seconds, emacs regains control and displays the buffer. However, the content of the room buffer is incorrect, it lists all room members and their joining history. At the end of the buffer can the current conversation be found.

Expected results

Expected unmeasurable delay in displaying the room and correct buffer content as for other clients.

Backtrace

Error is not signaled.

Etc.

  • The effect does not occur on 2 other clients, I checked Element Desktop and Fractal
  • The effect occurs for remote rooms on the Conduwuit homeserver
  • The effect does not occur on matrix.org homeserver (Synapse)
  • The effect occurs when the room buffer is opened
  • The length of the delay is proportional to the count of room members
  • Latency has definitely decreased after updating Ement from v. 0.15.1 to v. 0.16pre
  • The Emacs room is only used as an example to demonstrate the problem because it has many members

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions