Re: Help! Cyrus 2.5.11 segmentation fault
Michael Menge <[email protected]>
| Newsgroups | gmane.mail.imap.cyrus |
|---|---|
| Message-ID | <20180718094842.Horde.QbI7T1KzGwgl-NjyHWv7ytL@webmail.uni-tuebingen.de> |
Hi, Quoting Marco Chesi <[email protected]>: > 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@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@entry=0x0, server=0xc > <Address 0xc out of bounds>, server@entry=0x2233d90 "imap2", > prot=0x7ffccb275a40, prot@entry=0x62f840, > userid=userid@entry=0x2235360 "xxxx", cb=0x2233b20, > cb@entry=0x0, auth_status=auth_status@entry=0x0, > logfd=logfd@entry=-1) at imap/backend.c:1027 > #6 0x0000000000425915 in proxy_findserver (server=0x2233d90 > "imap2", prot=prot@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@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@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: [email protected] Wächterstraße 76 72074 Tübingen ---- Cyrus Home Page: http://www.cyrusimap.org/ List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/ To Unsubscribe: https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus