macOS: SIGABRT on every quit
System information
- Version: v0.28.2 (48c7c4e17)
- Build info: AppleClang 21.0.0.21000099 - Release - LTO
- Provenance: dmg
- OS: macOS 27.0 (arm64)
- QT Platform: cocoa
- DE: Aqua
Describe the bug
Vicinae crashes every time it quits (crash log attached)
To Reproduce
click menu icon → quit Vicinae
Expected behavior
Should quit cleanly
Additional context
Claude analysis :
The cause looks like an ownership mismatch in
IpcCommandServer:
ipc-command-server.hpp#L83-L84:IpcService m_service;is a by-value memberipc-command-server.cpp#L336:m_ipcServer(m_rpc, &m_service)glaze-qt.hpp#L710: the generatedServerconstructor doesm_service->setParent(this)When
m_ipcServeris destroyed, Qt deletes its children, which meansdelete &m_service. That pointer sits insidecommandServer, a stack object instartServer(server.cpp#L460). The binary is stripped, but the crashing frame isIpcCommandServer's destructor (identified via RTTI), and it aborts while destroying the member at offset0xb0, which ism_ipcServer.Possible fix: let the server own a heap-allocated service, matching what the generated
Clientalready does:IpcService *m_service; ipc_gen::Server m_ipcServer; // ctor m_service(new IpcService(m_rpc, *ctx)), m_ipcServer(m_rpc, m_service)Alternatively, call
m_service.setParent(nullptr)in anIpcCommandServerdestructor.Same root cause as #1571 (Linux, crash at logout). Resolving that trace against the unstripped v0.22.0 release binary gives
main→startServer→IpcCommandServer::~IpcCommandServer()→QObject::~QObjectonm_ipcServer, so logout just triggers a normal shutdown, which then crashes.Analysis done with Claude Code (disassembly of the release binary plus reading the source); I haven't built or tested the fix.
Source: vicinaehq/vicinae