Help! Cyrus 2.5.11 segmentation fault
Michael Menge
michael.menge at zdv.uni-tuebingen.de
Wed Jul 18 03:48:42 EDT 2018
Hi,
Quoting Marco Chesi <marco.chesi at unisi.it>:
> Hello,
> we have a Cyrus 2.5.11 on Debian 7 using murder (2 frontends, 3
> backends, 1 mupdate, about 5000 mailboxes) in production
> environment, hosted by a VMware cluster 6.5.
>
> Suddenly, ALL mailboxes have becomed inaccessible.
>
> In the log, we found many messages like this:
>
> master[5965]: process type:SERVICE name:imaps
> path:/usr/cyrus/bin/proxyd age:82.255s pid:5987 signaled to death by
> signal 11 (Segmentation fault)
>
> I tried many times to restart the cyrus service on all servers
> without success.
>
> Users are authenticated correctly, error occurs when they try to
> access the mailbox (trying with a manual connection using telnet,
> client dies on a "SELECT INBOX" command after a successfull login)
>
> This is the output of one core dump:
>
> Core was generated by `proxyd -s'.
> Program terminated with signal 11, Segmentation fault.
> #0 __strlen_sse2 () at ../sysdeps/x86_64/multiarch/../strlen.S:32
> 32 ../sysdeps/x86_64/multiarch/../strlen.S: File o directory
> non esistente.
> (gdb) bt
> #0 __strlen_sse2 () at ../sysdeps/x86_64/multiarch/../strlen.S:32
> #1 0x00007f58caffa656 in xstrdup (str=0x0) at lib/xmalloc.c:95
> #2 0x00007f58cb574b93 in parse_capability (s=s at entry=0x2223580,
> str=<optimized out>) at imap/backend.c:282
> #3 0x00007f58cb576362 in parse_capability (str=<optimized out>,
> s=0x2223580) at imap/backend.c:279
> #4 backend_login (noauth=6486368, auth_status=0x0, cb=0x2233b20,
> userid=0x2235360 "xxxx", ret=0x2223580) at imap/backend.c:833
> #5 backend_connect (ret_backend=ret_backend at entry=0x0, server=0xc
> <Address 0xc out of bounds>, server at entry=0x2233d90 "imap2",
> prot=0x7ffccb275a40, prot at entry=0x62f840,
> userid=userid at entry=0x2235360 "xxxx", cb=0x2233b20,
> cb at entry=0x0, auth_status=auth_status at entry=0x0,
> logfd=logfd at entry=-1) at imap/backend.c:1027
> #6 0x0000000000425915 in proxy_findserver (server=0x2233d90
> "imap2", prot=prot at entry=0x62f840, userid=0x2235360 "xxxx",
> cache=0x62fb70, current=0x62fb78, inbox=0x62fb80, clientin=0x21ed470)
> at imap/proxy.c:173
> #7 0x0000000000417a0d in proxy_findinboxserver (userid=<optimized
> out>) at imap/imap_proxy.c:129
> #8 0x0000000000412f63 in cmd_list (tag=0x221ad00 "6",
> listargs=listargs at entry=0x7ffccb276a60) at imap/imapd.c:6728
> #9 0x0000000000420afc in cmdloop () at imap/imapd.c:1638
> #10 0x0000000000424f4e in service_main (argc=<optimized out>,
> argv=<optimized out>, envp=envp at entry=0x7ffccb27a9e0) at
> imap/imapd.c:984
> #11 0x0000000000416962 in main (argc=<optimized out>,
> argv=<optimized out>, envp=0x7ffccb27a9e0) at master/service.c:606
> (gdb)
>
> Any suggestions or support?
>
As far as i can tell is that the frontend imapd-proxy process is
receiving the SIGSEGV
after it connected and authenticate to the backend. The imapd-proxy is
parsing the
the capability output of the backend.
What is strange is that the parse_cpability is called with a NULL
pointer (str=0x0)
which is then used in xstrdup.
So a check to ensure that str != NULL would help to prevent the
SIGSEGV, but a am
not sure what should be done in the str == NULL case.
The other question is why is str == NULL in the first place?
Can you try to manual connect to the backend using telnet, and check
the CAPABILITY output.
And as always the frustrating question: Did something change on your backends?
Regards,
Michael Menge
--------------------------------------------------------------------------------
M.Menge Tel.: (49) 7071/29-70316
Universität Tübingen Fax.: (49) 7071/29-5912
Zentrum für Datenverarbeitung mail:
michael.menge at zdv.uni-tuebingen.de
Wächterstraße 76
72074 Tübingen
More information about the Info-cyrus
mailing list