Cyrus - und Segmention fault

Yaddi

Yaddi

Routinier
Hallo !

Jetzt hab ich heute morgen angefangen mit dem Cyrus IMAP Server und ihn compiliert ... Bin nach der Cyrus IMAP Howto vorgegangen ...
Und stehe nun an dem Punkt:

--
8. Cyrus IMAP Implementation
8.1 Add the cyrus administrator

Run the following command to set up a user for cyrus

/usr/local/sbin/saslpasswd cyrus
--
Ok mittlerweile heisst das ja auch saslpasswd2 aber egal ...
Mein Problem ist das ich jedesmal ein Segmention fault bekomme:

--
root@mittelerde:/usr/src/cyrus-imapd-2.2.9# saslpasswd2 cyrus
Password:
Again (for verification):
/etc/sasldb2
Segmentation fault
root@mittelerde:/usr/src/cyrus-imapd-2.2.9#
--

Im Syslog steht folgender Eintrag:
--
Dec 19 15:28:46 mittelerde saslpasswd2: error updating sasldb: Invalid argument
--

Ich muss dazu sagen, die sasldb2 Datei ist leer ...
Die wurde auch im Howto nicht angelegt ..
Hab sie per Hand angelegt mit leerem Inhalt ...
Der Inhalt sollte ja eigentlich nach dem Befehl reingeschrieben werden, allerdings wenn die datei nicht da ist, gibts das selbe problem ...

Vielleicht kann mir ja jemand weiterhelfen!

MfG Benni
 
Dec 19 15:28:46 mittelerde saslpasswd2: error updating sasldb: Invalid argument

Muesste die sasldb nicht fuer saslpasswd2 auch sasldb2 heissen?
Irgendwie denke ich, dass ein Teil deines Setups inkonsistent ist.
Hast du dir configure --help angeschaut? Gibt es dort einen sasl1/2-Schalter? Oder einen fuer die verwendete Datenbank-Bibliothek (gdbm, db3, db4)? Ist die bei saslauth und cyrus-imap gleich? Im Zweifelsfalle lass mal bei beiden Paketen ./configure durchlaufen und mach die Ausgaben irgendwo zugaenglich, wo man drueberschauen koennte.

-khs
 
Arrr ...
Jetzt hab ich den Fehler ... Da könnte ich mir doch nun selbst in den Arsch beissen, und da sitz ich schon seit heute morgen dran!!! *grrr*
Das Problem war ganz einfach das ich die DB3 und DB4 Datenbank installiert hab von Berkeley ... Und compiliert wurd das mit der DB3 Datenbank und benutzt wurde aber die DB4 ... Und das ging nicht, und musste extra angegeben werden:
--with-bdb-incdir=/usr/include/db4
Argh ... Na toll ;)
Da muss man erstmal drauf kommen ;)
 
Mh naja nu bleibt immer noch folgendes Problem:
---
cyrus@mittelerde:/usr/src/cyrus-imapd-2.2.9/master/conf$ cyradm localhost
Broken pipe
cyrus@mittelerde:/usr/src/cyrus-imapd-2.2.9/master/conf$
---

und im Syslog steht:
--
Dec 20 08:36:08 mittelerde imapd: could not getenv(CYRUS_SERVICE); exiting
---
 
Yaddi schrieb:
--
Dec 20 08:36:08 mittelerde imapd: could not getenv(CYRUS_SERVICE); exiting
---

Klappt die Authentifikation mit imtest?
Was gibt dein Cyrus aus, wenn du ihn mit telnet anrufst? Speziell die auth-feature-Liste wuerde mich interessieren.

Hast du imapd mal von der Kommandozeile gestartet, evtl. mit Debuglevel hoch?? Oder mal ein strace attached?

Halt, da faellt mir gerade ein, nur so interessehalber, laeuft xinetd? Hat der zufaellig fuer einen der Ports ne Konfiguration angeschaltet? Oder ist dein imapd eh via xinetd aufgesetzt?

-khs
 
Also, wenn ich imtest ausführe, passiert folgendes:
--
cyrus@mittelerde:/root$ imtest -m login -p imap localhost
failure: prot layer failure
cyrus@mittelerde:/root$
--
Im syslog steht:
--
Dec 20 13:36:06 mittelerde imapd: could not getenv(CYRUS_SERVICE); exiting
Dec 20 13:36:25 mittelerde master[2704]: setrlimit: Unable to set file descriptors limit to -1: Operation not permitted
Dec 20 13:36:25 mittelerde master[2704]: retrying with 1024 (current max)
Dec 20 13:36:26 mittelerde master[2704]: unable to create imap listener socket: Address already in use
Dec 20 13:36:26 mittelerde master[2704]: unable to create pop3 listener socket: Address already in use
Dec 20 13:36:27 mittelerde imapd: could not getenv(CYRUS_SERVICE); exiting
--
Address already in use ... ???
Kann aber eigentlich gar nicht ...
xinetd läuft auf dem Slackware 10 System nicht - Hat mich verwundert, aber naja, inetd hat den Eintrag:
---
# Internet Message Access Protocol (IMAP) server:
imap stream tcp nowait cyrus /usr/cyrus/bin/imapd imapd
# Post Office Protocol version 3 (POP3) server:
pop3 stream tcp nowait cyrus /usr/cyrus/bin/pop3d pop3d
--
Wenn ich den imapd von der Kommandozeile starte läuft er nicht, wenn ich den Master starte, dann funktionierts, allerdings kann ich kein Debuglevel benutzen ... Wüsste zumindest nicht wie, gibt da keine Hilfe dabei, bzw keine die mir zeigt wie ich ihn in den Debugmodus bringe.

Der strace Output:
imtest - strace output

Achja wenn ich mit telnet den Port 143 anspreche passiert das:
--
root@mittelerde:~# telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.
root@mittelerde:~#
--
 
Zuletzt bearbeitet:
inetd macht genau das selbe wie xinetd: er lauert auf konfigurierten Ports, und wenn jemand anfragt, schaut er schnell nach, was er mit der Anfrage machen soll, startet das Programm im inetd-Modus, das kuemmert sich dann um alles. Der Port ist aber weg. Den hat inetd. Also: inetd aus, nochmal versuchen.

-khs, vorsichtig optimistisch

Edit:
PS: So macht die Fehlersuche wirklich Spass!

Der imtest-strace ist allerdings nur bedingt aussagekraeftig, da wir ja schon wissen, dass er nicht connecten kann. Einer von master oder vom imapd waere interessanter. Aber wenn es am inetd liegt, startet imapd sowieso nicht (port already in use). Also koennte man auch mal den inetd stracen, voller Hoffnung, da nen Aufruf auf den System-imapd statt des cyrus-imapd zu finden... oder so... ;)
 
Zuletzt bearbeitet:
Nee moment!
Ich hab KEIN xinetd, dafür aber inetd ...
Also kann inetd ja auch nicht den xinetd blockieren, weils keinen gibt ;)
 
Yaddi schrieb:
Nee moment!
Ich hab KEIN xinetd, dafür aber inetd ...
Also kann inetd ja auch nicht den xinetd blockieren, weils keinen gibt ;)

xinetd und inetd sind das selbe.
inetd ruft imap auf, allerdings vermutlich den falschen. Also inetd aus, master aus, master wieder an und hoffen... ;)

-khs
 
Oh schau her ... Es geht ;)
Ah klasse ... Mh ja und jetzt wie setz ich den richtigen IMAPD dann in die inetd.conf ?
 
Yaddi schrieb:
Oh schau her ... Es geht ;)
Ah klasse ... Mh ja und jetzt wie setz ich den richtigen IMAPD dann in die inetd.conf ?

Gar nicht. Du willst nicht, dass inetd deinen imapd startet. Das erzeugt bei vielgenutzten Services zu viel overhead.
So bleibt ein imapd im Speicher, der wird dann immer verwendet. Mit inetd ruft er jedes Mal, wenn du emails abholst, extra erst einen auf.
Selbst, wenn du Speicher sparen musst, gibt es bessere Wege als inetd, denke ich.

Also: imapd und popd auskommentiert lassen!

-khs
 
Ok, alles klar!
Danke für die Hilfe ! Dann kann ich ja jetzt endlich weiterbasteln! ;)
Manchmal ärgerlich an was für sachen es manchmal hängt ... Allein wäre ich da auch nich auf die Idee gekommen das auszukommentieren ;)
Naja jedenfalls besten dank!!
 
Yaddi schrieb:
Naja jedenfalls besten dank!!

Wie gesagt, auch danke fuer die gute Mitarbeit beim Fehlersuchen! strace-Logs auf externen Webspaces fuegen nicht alle an ihre Fehlerbeschreibungen an! ;)

-khs
 
Naja damit man den Fehler schneller findet, mach ich das ja gern ;) Hilft mir dann ja auch damit ich schneller zum resultat komme ;)
 

Ähnliche Themen

saslpasswd Segmentation fault

Ubuntu X / dbus problem

Email Duplikate in IMAP (Cyrus)

Probleme mit Postfix und Cyrus

Open-Xchange auf OpenSuse mit Commu. Installer - Compiler Fehler

Zurück
Oben