Hey guys,
does somebody get dovecot work under cygwin?
The compilation finish without any problems. But after trying to run dovecot i got this in my log:
dovecot: Nov 17 02:40:18 Info: Dovecot v1.0.7 starting up dovecot: Nov 17 02:40:19 Fatal: setrlimit(RLIMIT_DATA, 256): Invalid argument dovecot: Nov 17 02:40:19 Error: Auth process died too early - shutting down dovecot: Nov 17 02:40:19 Error: child 1452 (auth) returned error 89
setting auth_process_size to another value didn't fixed this issue.
Thanks for any help Greets
$ /sbin/dovecot -n # 1.0.7: /etc/dovecot.conf base_dir: /var/run/dovecot/ log_path: /var/log/dovecot.log ssl_disable: yes disable_plaintext_auth: no login_dir: /var/run/dovecot//login login_executable: /libexec/dovecot/imap-login login_user: Administrator mail_location: maildir:~/Maildir auth default: user: Administrator passdb: driver: passwd-file args: /etc/passwd.dovecot userdb: driver: passwd
Timo Sirainen wrote:
Set it to 0. Also set login_process_size=0 and mail_process_size=0.
Well, now i do not have setrlimit errors anymore but the log says now:
dovecot: Nov 17 18:50:57 Info: Dovecot v1.0.7 starting up dovecot: Nov 17 18:50:58 Error: Auth process died too early - shutting down dovecot: Nov 17 18:50:58 Error: child 956 (auth) returned error 53
i can not find a list of error codes, what does error 53 mean?
Cheers Ronny
$ /sbin/dovecot -n # 1.0.7: /etc/dovecot.conf base_dir: /var/run/dovecot/ log_path: /var/log/dovecot.log ssl_disable: yes disable_plaintext_auth: no login_dir: /var/run/dovecot//login login_executable: /libexec/dovecot/imap-login login_user: Administrator login_process_size: 0 mail_location: maildir:~/Maildir mail_process_size: 0 auth default: user: Administrator verbose: yes debug: yes process_size: 0 passdb: driver: passwd-file args: /etc/passwd.dovecot userdb: driver: passwd
On Sat, 2007-11-17 at 18:55 +0100, Ronny wrote:
dovecot: Nov 17 18:50:58 Error: Auth process died too early - shutting down dovecot: Nov 17 18:50:58 Error: child 956 (auth) returned error 53
i can not find a list of error codes, what does error 53 mean?
It doesn't come from Dovecot. Probably some of the libraries dovecot-auth is linked against is failing and returns that error. Does Cygwin have "ldd"? What does "ldd dovecot-auth" say?
Timo Sirainen wrote:
It doesn't come from Dovecot. Probably some of the libraries dovecot-auth is linked against is failing and returns that error. Does Cygwin have "ldd"? What does "ldd dovecot-auth" say?
Well, there is a cygcheck.exe, the output for dovecot-auth is $ cygcheck.exe dovecot-auth Found: C:\cygwin\usr\libexec\dovecot\dovecot-auth.exe C:/cygwin/usr/libexec/dovecot/dovecot-auth.exe C:\cygwin\bin\cygcrypt-0.dll C:\cygwin\bin\cygwin1.dll C:\WINDOWS\system32\ADVAPI32.DLL C:\WINDOWS\system32\ntdll.dll C:\WINDOWS\system32\KERNEL32.dll C:\WINDOWS\system32\RPCRT4.dll C:\WINDOWS\system32\Secur32.dll
all, of the listed dll's exist in their directory.
Well, what confuses me more ist that after fisrt launch the log is
dovecot: Nov 17 21:39:11 Info: Dovecot v1.0.7 starting up dovecot: Nov 17 21:39:11 Error: Auth process died too early - shutting down
the next start creates
dovecot: Nov 17 21:40:30 Info: Dovecot v1.0.7 starting up dovecot: Nov 17 21:40:30 Error: Socket already exists: /var/run/dovecot/dict-server dovecot: Nov 17 21:40:30 Error: Auth process died too early - shutting down dovecot: Nov 17 21:40:30 Error: child 1296 (auth) returned error 53
only removing /var/run/dovecot/dict-server creates
dovecot: Nov 17 21:41:40 Info: Dovecot v1.0.7 starting up dovecot: Nov 17 21:41:41 Error: Auth process died too early - shutting down dovecot: Nov 17 21:41:41 Error: child 4040 (auth) returned error 53
after removing the whole directory /var/run/dovecot again there is only, without any error code
dovecot: Nov 17 21:58:59 Info: Dovecot v1.0.7 starting up dovecot: Nov 17 21:58:59 Error: Auth process died too early - shutting down
conf:
$ dovecot -n # 1.0.7: /etc/dovecot.conf log_path: /var/log/dovecot.log ssl_disable: yes disable_plaintext_auth: no login_dir: /var/run/dovecot/login login_executable: /usr/libexec/dovecot/imap-login login_user: Administrator login_process_size: 0 mail_location: maildir:~/Maildir mail_process_size: 0 auth default: user: Administrator verbose: yes debug: yes process_size: 0 passdb: driver: passwd-file args: /etc/passwd.dovecot userdb: driver: passwd
On Sat, 2007-11-17 at 22:02 +0100, Ronny wrote:
dovecot: Nov 17 21:40:30 Info: Dovecot v1.0.7 starting up dovecot: Nov 17 21:40:30 Error: Socket already exists: /var/run/dovecot/dict-server
This error is ignored.
after removing the whole directory /var/run/dovecot again there is only, without any error code
dovecot: Nov 17 21:58:59 Info: Dovecot v1.0.7 starting up dovecot: Nov 17 21:58:59 Error: Auth process died too early - shutting down
The "without error code" most likely just means that Dovecot shut down before it saw that dovecot-auth exited with error 53.
Some things you could try:
Does Cygwin have strace? Run "strace -f dovecot" to see if it shows something interesting.
Is the problem with starting dovecot-auth or after dovecot-auth has already started? Try setting auth_executable = /tmp/test.sh where test.sh is something like:
#!/bin/sh echo "i'm running" > /tmp/dovecot.output exit 0
If that worked, try adding exit(0); as the first statement in src/auth/main.c's main() function to see if it returns 53 before or after it reaches that far.
If that worked, try adding exit(0); as the first statement in src/auth/main.c's main() function to see if it returns 53 before or after it reaches that far.
I put some information output to the code (i do not have a debbuger running yet ;-) )
static void auth_process_input(void *context) { ...
switch (i_stream_read(process->input)) {
... case -1: /* disconnected */ i_info("DIE 2"); auth_process_destroy(process); return; case -2: /* buffer full */ ... i_info("DIE 3"); auth_process_destroy(process); return; }
The log is,
dovecot: Nov 21 02:52:09 Info: DIE 2 <<< dovecot: Nov 21 02:52:09 Error: Auth process died too early - shutting down dovecot: Nov 21 02:52:09 Error: child 1300 (auth) returned error 53
On Wed, 2007-11-21 at 03:13 +0100, Ronny wrote:
If that worked, try adding exit(0); as the first statement in src/auth/main.c's main() function to see if it returns 53 before or after it reaches that far.
I put some information output to the code (i do not have a debbuger running yet ;-) )
static void auth_process_input(void *context) { . ...
switch (i_stream_read(process->input)) {
... case -1: /* disconnected */ i_info("DIE 2"); auth_process_destroy(process); return;
This only means that it sees that auth process died, so master process shuts down. Put something similar to src/auth/main.c instead to see if it gets executed.
This only means that it sees that auth process died, so master process shuts down. Put something similar to src/auth/main.c instead to see if it gets executed.
I put i_info as the first statement in auth/main.c! This do not appear at the log, so the auth process is not executed!?!?
As far as i see this is for executing the auth process:
void client_process_exec(const char *cmd, const char *title) { i_info("LPE6"); execv(executable, (char **)argv); i_info("LPE7"); }
Log output is only "LPE6", so it comes to the point where it should be executed, but does not do it!
BUT!!!: i set auth_executable = /home/Administrator/d.sh
d.sh is
#!/bin/sh echo "running" > /home/Administrator/output exit 0
even client_process_exec() do not comes to "LPE7" the file output is created! So it seems execv() runs the process but then stops and do not return!
log: dovecot: Nov 25 23:36:48 Info: Dovecot v1.0.7 starting up dovecot: Nov 25 23:36:48 Info: LPE6 dovecot: Nov 25 23:36:50 Info: DIE 2 dovecot: Nov 25 23:36:50 Info: VOR ausgabe des died to early dovecot: Nov 25 23:36:50 Error: Auth process died too early - shutting down
By the way, to you use gdb/ddd? Does it work for you? Do you use any special debug level?
cheers Ronny
On 26.11.2007, at 18.28, Ronny wrote:
even client_process_exec() do not comes to "LPE7" the file output
is created! So it seems execv() runs the process but then stops and
do not return!
That's why I thought that the problem could be that running dovecot-
auth.exe calls some library's init function which causes it to exit.
You could try running directly:
./dovecot-auth.exe echo $?
Does it fail with the same error 53?
By the way, to you use gdb/ddd? Does it work for you? Do you use
any special debug level?
Sure I use gdb in Linux, but if you mean in Cygwin I haven't used
Cygwin for years. What do you mean by debug level?
./dovecot-auth.exe $ dovecot -n # 1.0.7: /etc/dovecot.conf log_path: /var/log/dovecot.log ssl_disable: yes disable_plaintext_auth: no login_dir: /var/run/dovecot/login login_executable: /usr/libexec/dovecot/imap-login login_user: Administrator login_chroot: no login_process_size: 0 mail_location: maildir:~/Maildir mail_process_size: 0 auth default: executable: /home/Administrator/d.sh user: Administrator verbose: yes debug: yes process_size: 0 passdb: driver: passwd-file args: /etc/passwd.dovecot userdb: driver: passwd
Administrator@zoidberg ~ $ dovecot-auth.exe dovecot-auth: Fatal: You'll need to add at least one userdb
participants (2)
-
Ronny
-
Timo Sirainen