Am 25.09.26 um 12:57 schrieb Frank Richter:
Am 24.09.26 um 14:48 schrieb Andreas Piesk:
Am 24.09.26 um 13:48 schrieb Frank Richter:

But how to find the cause of the segfault … any hints welcome.


enable core dumps. after a segfault get a backtrace on the dump. binary should not be stripped, symbols are needed. if you can, compile the code with debug info.

On Debian 13 with systemd I installed systemd-coredump and dbgsym and src packages. 
Then coredumpctl info <pid> shows:

         Signal: 11 (SEGV)
      Timestamp: Fri 2026-09-25 11:16:18 CEST (1h 21min ago)
   Command Line: imapd -U 250
     Executable: /usr/lib/cyrus/bin/imapd
…
        Message: Process 2916244 (imapd) of user 109 dumped core.

                 Module libzstd.so.1 from deb libzstd-1.5.7+dfsg-1.amd64
                 Module libuuid.so.1 from deb util-linux-2.41.5-0+deb13u1.amd64
                 Module libgcc_s.so.1 from deb gcc-14-14.2.0-19.amd64
                 Module libstdc++.so.6 from deb gcc-14-14.2.0-19.amd64
                 Stack trace of thread 2916244:
                 #0  0x00007f7c6d27b0b8 prot_vprintf (libcyrus.so.0 + 0x9e0b8)
                 #1  0x00007f7c6d27b208 prot_printf (libcyrus.so.0 + 0x9e208)
                 #2  0x000055b50b0fe826 cmd_enable (/usr/lib/cyrus/bin/imapd + 
0x17826)
                 #3  0x000055b50b119aeb cmdloop (/usr/lib/cyrus/bin/imapd + 
0x32aeb)
                 #4  0x000055b50b11e1cb service_main (/usr/lib/cyrus/bin/imapd 
+ 0x371cb)
                 #5  0x000055b50b0f6fac main (/usr/lib/cyrus/bin/imapd + 0xffac)
                 #6  0x00007f7c6c635ca8 n/a (libc.so.6 + 0x29ca8)
                 #7  0x00007f7c6c635d65 __libc_start_main (libc.so.6 + 0x29d65)
                 #8  0x000055b50b0f7631 _start (/usr/lib/cyrus/bin/imapd + 
0x10631)
                 ELF object binary architecture: AMD x86-64

coredumpctl debug <pid> … opens gdb
(gdb) backtrace
#0  0x00007f7c6d27b0b8 in prot_vprintf (s=0x0, fmt=0x55b50b1347dc "%s ENABLE", 
pvar=pvar@entry=0x7ffcb5d3d5f0)
     at lib/prot.c:1298
#1  0x00007f7c6d27b208 in prot_printf (s=<optimized out>, fmt=fmt@entry=0x55b50b1347dc 
"%s ENABLE")
     at lib/prot.c:1288
#2  0x000055b50b0fe826 in cmd_enable (tag=0x55b51361fb10 "6") at 
imap/imapd.c:14537
#3  0x000055b50b119aeb in cmdloop () at imap/imapd.c:1775
#4  0x000055b50b11e1cb in service_main (argc=<optimized out>, argv=<optimized 
out>, envp=envp@entry=0x7ffcb5d404f8)
     at imap/imapd.c:1209
#5  0x000055b50b0f6fac in main (argc=<optimized out>, argv=<optimized out>, 
envp=0x7ffcb5d404f8)
     at master/service.c:647

in prot_vprintf s == NULL!
in prot_printf s == NULL!
in cmd_enable  prot_printf(be->out, …   be->out is == NULL
(gdb) print *be   shows the according backend server (we have a murder), but 
out == NULL. So no backend connection?

The client (SOGo webmail) sends: 6 ENABLE QRESYNC

The server runs cyrus-imapd-3.10.3 (self build with Debian patches), 2 
frontends, 2 backend servers, 1 mupdate master (on frontend).

I guess, no backend connection anymore. I'm nore sure why, but olny cmd_enable 
walks backend_cache isntead if using proxy_findserver():

if (ptrarray_size(&backend_cached)) {
    for (int i = 0; i < ptrarray_size(&backend_cached); i++) {
        struct backend *be = ptrarray_nth(&backend_cached, i);
        prot_printf(be->out, "%s ENABLE", tag);

the problem is, the Backend connection can be dropped (out = NULL) but the 
entry is not removed. you could try to increase the idle limit as a workaorund.

-ap




------------------------------------------
Cyrus: Info
Permalink: 
https://cyrus.topicbox.com/groups/info/T9e1e24185b6d5bc3-Maa641ae31953a4e778280cd0
Delivery options: https://cyrus.topicbox.com/groups/info/subscription

Reply via email to