On Donnerstag, 26. November 2009, Torben Friese wrote:
> [..]
> Another interesting thing is if you bring in a log at line 205
> (daemonize.c) it is working:
>
> LM_ERR("what ever \n");
> for (r=3; r < 32; r++){
> close(r);
> }
>
> It seems that close() is not able to close the fd for the log (return
> value from mksock in syslog_async.c).
>
> But If I let the for-loop counter start at 4 it is still not working.
>
> After that I tried to set up log_fd as global( int log_fd=-1) and
> include the headers, to check the "r" against the log_fd before execute
> close(). But the same result.
>
> Also a correct close(closelog_async()) in deamonize do not work.
>
> I am open for any ideas, maybe I have oversight something. Could you
> reproduce this ?


Hello Torben,


i've just was able to reproduce this on 1.5 branch.


henning@ca:~/projects/openser/branches/1.5$ ./kamailio -V
version: kamailio 1.5.3-notls (i386/linux)
flags: STATISTICS, USE_IPV6, USE_TCP, DISABLE_NAGLE, USE_MCAST, SHM_MMAP, PKG_MALLOC, F_MALLOC, FAST_LOCK-ADAPTIVE_WAIT
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535, PKG_SIZE 4194304
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
svnrevision: 2:5958M
@(#) $Id: main.c 5608 2009-02-13 16:48:17Z henningw $
main.c compiled on 00:29:27 Dec 1 2009 with gcc 4.3.3


Here i get log file output, regardsless if i use log_stderror or not, but only with debug=3.


Dec 1 00:33:47 [7985] INFO:core:init_tcp: using epoll_lt as the TCP io watch method (auto detected)
Dec 1 00:33:47 [7987] ERROR:core:main: install asynchronous syslog handler..
Dec 1 00:33:47 [7987] NOTICE:core:main: version: kamailio 1.5.3-notls (i386/linux)


The second log msg was added from me, to see if the correct function is called.


This is on a kubuntu 9.04, with version 1.5-5ubuntu3 of sysklogd.


When i use debug=2 in the cfg, aparently it not works.. Interesting, i'll investigate more.


Regards,


Henning