Floating point exception in httpd, FreeBSD 10.1, Cyrus-IMAPd 2.5.3

Scott Lambert lambert at lambertfam.org
Wed May 27 03:18:28 EDT 2015


I suspect I have a problem which is purely local to my machine.
Probably user/admin error.  I have fought it in my spare time the past
several days.  At this point, I would really appreciate some help to get
this figured out.

I've upgraded my personal system from 2.4.17 to 2.5.3.  I actually
installed 2.5.2 the day before 2.5.3 was released and had, apparently,
the same issue with 2.5.2.

FreeBSD 10.1-STABLE (mid-February).  Cyrus is running inside a FreeBSD
jail.  The jail only has a private IP and is NATed in from the public by
the firewall.  List of installed packages below the .sig, just in case.

I rebuilt/reinstalled the cyrus-* packages and postfix last night just
to make sure they were consistent with the other libraries.

I'm trying to learn how to use the caldav services in
iCal on my MacBook.  I've configured iCal according to
http://cyrusimap.org/docs/cyrus-imapd/2.5.3/install-http.php
(hopefully), but I don't seem to get very far.

IMAPd and POP3 seem to be working perfectly.

I've added to imapd.conf:
caldav_allowscheduling: yes
httpmodules: caldav carddav domainkey ischedule rss 
and changed the autocreate options.

I've added to cyrus.conf in the SERVICES section:
  https         cmd="httpd -s" listen="8443" prefork=1

iCal throws this error when I try to create new calendar on the server:

"Calendar encountered a critical error while saving to the database, and
recent changes may be lost.  More information may be available in the
console."

console shows:

5/27/15 12:00:15.628 AM CalendarAgent[284]: [com.apple.calendar.store.log.caldav.queue] [Got error on refresh, but not rectifying principal because it was manually configured: Error Domain=NSURLErrorDomain Code=-1005 "The network connection was lost." UserInfo=0x7ff03dd65160 {NSUnderlyingError=0x7ff03b6a0220 "The network connection was lost.", NSErrorFailingURLStringKey=https://lambert%40lambertfam.org@mail.lambertfam.org:8443/dav/calendars/user/, NSErrorFailingURLKey=https://lambert%40lambertfam.org@mail.lambertfam.org:8443/dav/calendars/user/, NSLocalizedDescription=The network connection was lost.}]
5/27/15 12:00:15.632 AM CalendarAgent[284]: [com.apple.calendar.store.log.caldav.queue] [Account refresh failed with error: Error Domain=NSURLErrorDomain Code=-1005 "The network connection was lost." UserInfo=0x7ff03dbb81e0 {NSUnderlyingError=0x7ff03b6a0220 "The network connection was lost.", NSErrorFailingURLStringKey=https://lambert%40lambertfam.org@mail.lambertfam.org:8443/dav/calendars/user/, NSErrorFailingURLKey=https://lambert%40lambertfam.org@mail.lambertfam.org:8443/dav/calendars/user/, AccountName=lambertfam.org at https://mail.lambertfam.org:8443/, CalDAVErrFromRefresh=YES, NSLocalizedDescription=The network connection was lost.}]

at the same time, in the imap.log, I see: 

May 27 00:00:15 mail https[20778]: inittls: Loading hard-coded DH parameters
May 27 00:00:15 mail https[20778]: starttls: TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits new) no authentication
May 27 00:00:15 mail master[19572]: process type:SERVICE name:https path:/usr/local/cyrus/bin/httpd age:0.165s pid:20778 signaled to death by signal 8 (Floating point exception)

I suspect my issue is whatever is causing the FPE in https.

running truss on the httpd ends in :
...
sigaction(SIGALRM,{ 0x804a54d80 SA_RESTART|SA_SIGINFO ss_t },{ 0x804a54d80 SA_RESETHAND|SA_SIGINFO ss_t }) = 0 (0x0)^M
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)^M
open("/imap/cd1/msg/shutdown",O_RDONLY,0666)     ERR#2 'No such file or directory'^M
sigprocmask(SIG_BLOCK,SIGINT|SIGQUIT|SIGALRM|SIGTERM|SIGCHLD,0x0) = 0 (0x0)^M
pselect(0x1,0x7fffffff8ee0,0x0,0x0,0x7fffffff8e38,0x7fffffff8e18) = 1 (0x1)^M
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)^M
sigprocmask(SIG_BLOCK,SIGINT|SIGQUIT|SIGALRM|SIGTERM|SIGCHLD,0x0) = 0 (0x0)^M
pselect(0x1,0x7fffffff9ef0,0x0,0x0,0x7fffffff9e88,0x7fffffff9e68) = 1 (0x1)^M
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)^M
read(0,"\^W\^C\^C\^A\M^@",5)                     = 5 (0x5)^M
read(0,"`^\M-Y\M^Z_{\M-,\M-5\M-u\M-%AK"...,384)  = 384 (0x180)^M
setitimer(0,{0.000000, 0.000000 },{0.000000, 0.000000 }) = 0 (0x0)^M
issetugid(0x804dbe490,0x80500e098,0x1,0x0,0x80602f0a8,0x8080808080808080) = 0 (0x0)^M
open("/usr/share/zoneinfo/UTC",O_RDONLY,00)      = 10 (0xa)^M
fstat(10,{ mode=-r--r--r-- ,inode=267701,size=118,blksize=4096 }) = 0 (0x0)^M
read(10,"TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0"...,41448) = 118 (0x76)^M
close(10)                                        = 0 (0x0)^M
issetugid(0x804dbe494,0x8064ed000,0x0,0xffffffd0,0x0,0x0) = 0 (0x0)^M
open("/usr/share/zoneinfo/posixrules",O_RDONLY,00) = 10 (0xa)^M
fstat(10,{ mode=-r--r--r-- ,inode=267649,size=3519,blksize=4096 }) = 0 (0x0)^M
read(10,"TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0"...,41448) = 3519 (0xdbf)^M
close(10)                                        = 0 (0x0)^M
openat(0xffffff9c,0x802018977,0x0,0x0,0x2,0x8064dc010) = 10 (0xa)^M
read(10,"\M-I\^T\M^Z\^Ocq",6)                    = 6 (0x6)^M
close(10)                                        = 0 (0x0)^M
getrusage(0,{ u=0.072776,s=0.081873,in=0,out=8 }) = 0 (0x0)^M
SIGNAL 8 (SIGFPE)^M
process exit, rval = 0^M

I got a corefile.  The truss and the core were different instances, IIRC:

-rw-------   1 cyrus  cyrus  458752 May 27 00:00 httpd.00.core

gdb says:
Core was generated by `httpd'.
Program terminated with signal 8, Arithmetic exception.
Cannot access memory at address 0x8008747d0
#0  0x0000000806a0f664 in ?? ()

The binary is stripped.  I may have to rebuild the port and keep the
unstripped binary to get further info.

I don't know what to do to troubleshoot this further.


-- 
Scott Lambert                    KC5MLE                       Unix SysAdmin
lambert at lambertfam.org

arc-5.21p                      Create & extract files from DOS .ARC files
arj-3.10.22_4                  Open source implementation of the ARJ archiver
autoconf-2.69                  Automatically configure source code on many Un*x platforms
autoconf-wrapper-20131203      Wrapper script for GNU autoconf
bash-4.3.33                    The GNU Project's Bourne Again SHell
bison-2.7.1,1                  Parser generator from FSF, (mostly) compatible with Yacc
ca_root_nss-3.19               Root certificate bundle from the Mozilla Project
clamav-0.98.7                  Command line virus scanner written entirely in C
cmake-3.1.3                    Cross-platform Makefile generator
cmake-modules-3.1.3            Modules and Templates for CMake
curl-7.42.1                    Non-interactive tool to get files from FTP, GOPHER, HTTP(S) servers
cvs-1.20120905_3               Version control system
cyrus-imapd25-2.5.3            The cyrus mail server, supporting POP3 and IMAP4 protocols
cyrus-sasl-2.1.26_9            RFC 2222 SASL (Simple Authentication and Security Layer)
db48-4.8.30.0_2                The Berkeley DB package, revision 4.8
db5-5.3.28_2                   The Oracle Berkeley DB, revision 5.3
dialog4ports-0.1.5_2           Console Interface to configure ports
expat-2.1.0_2                  XML 1.0 parser written in C
gettext-0.19.4                 GNU gettext meta package
gettext-runtime-0.19.4         GNU gettext runtime libraries and programs
gettext-tools-0.19.4           GNU gettext development and translation tools
gmake-4.1_2                    GNU version of 'make' utility
gmake-lite-4.1_1               Minimalist version of gnu make
help2man-1.43.3_1              Automatically generating simple manual pages from program output
indexinfo-0.2.3                Utility to regenerate the GNU info page index
jansson-2.7                    C library for encoding, decoding, and manipulating JSON data
lha-1.14i_6                    Archive files using LZSS and Huffman compression (.lzh files)
libffi-3.2.1                   Foreign Function Interface
libical-1.0.1                  Implementation of the IETF Calendaring and Scheduling protocols
libiconv-1.14_8                Character set conversion library
libltdl-2.4.6                  System independent dlopen wrapper
libspf2-1.2.10_2               Sender Rewriting Scheme 2 C Implementation
libtool-2.4.6                  Generic shared library support script
libxml2-2.9.2_2                XML parser library for GNOME
m4-1.4.17_1,1                  GNU m4
majordomo-1.94.5_8             A mailing list manager
mysql55-client-5.5.43          Multithreaded SQL database (client)
p5-Bit-Vector-7.4              Library of advanced math functions that includes a Perl OO module
p5-Carp-Clan-6.04_1            Report errors from perspective of caller of a "clan" of modules
p5-Date-Calc-6.4               Gregorian calendar date calculations
p5-Locale-gettext-1.05_4       Message handling functions
pcre-8.37                      Perl Compatible Regular Expressions library
perl5.16-5.16.3_21             Practical Extraction and Report Language
pflogsumm-1.1.5,1              Postfix Log Entry Summarizer
pkg-1.5.2                      Package manager
pkgconf-0.9.11                 Utility to help to configure compiler and linker flags
portmaster-3.17.7              Manage your ports without external databases or languages
postfix-2.11.5,1               Secure alternative to widely-used Sendmail
py27-Babel-1.3_2               Collection of tools for internationalizing Python applications
py27-Jinja2-2.7.3              Fast and easy to use stand-alone template engine
py27-MarkupSafe-0.23           Implements a XML/HTML/XHTML Markup safe string for Python
py27-docutils-0.12             Python Documentation Utilities
py27-pygments-2.0.2            Syntax highlighter written in Python
py27-pytz-2014.10,1            World Timezone Definitions for Python
py27-setuptools27-5.5.1_1      Python packages installer
py27-sphinx-1.2.3              Python documentation generator
python27-2.7.9_1               Interpreted object-oriented programming language
sqlite3-3.8.10.1               SQL database engine in a C library
sudo-1.8.13                    Allow others to run commands as root
unzoo-4.4_2                    ZOO archive extractor


More information about the Info-cyrus mailing list