Re: [exim] Local_Scan Question...

Top Page
Delete this message
Reply to this message
Author: . kibble .
Date:  
To: exim-users
Subject: Re: [exim] Local_Scan Question...
>On: Wed, 19 Jan 2005 09:52:54 Philip Hazel wrote:
>
>On Tue, 18 Jan 2005, . kibble . wrote:
>
> >
> > I have a piece of code using the local scan api. Every so often I get
>this in
> > my exim_mainlog:
> > local_scan() function crashed with signal 11 - message temporarily
>rejected
> >
> > Is there anyway I can debug this? There is no core created for me to use
> > gdb... This only happens when two or more emails are submitted at once,
>so I
> > believe it is an error in my code which I want to find out where it is
> > happening...
>
>That there is no core is probably because Exim is a setuid binary. It's
>a security issue, of course. I seem to recall that some operating
>systems (Solaris, I think, but maybe others) have some kind of global
>switch you can set to allow core dumps from setuid binaries. If you have
>that, you may be able to get a core.
>
>Otherwise, you will have to modify your code to write log lines or to
>write to a private file to gain more debugging information. Does your
>code do anything external? That is, does it read or write files, for
>example? If so, you need to make it robust against being run
>simultaneously by two different Exim reception processes.
>


It does read and write to file, yes. But it uses the Message ID [message_id]
variable which is set in the local_scan api, to create a new unique file
using the File Descriptor [fd] in a separate spool. I can't see how two
instances would cause problems with this as each of the separate processes
will be reading and writing to a file uniquely created and managed by
them... [Not sure if this is an issue or limitation in the lcoal_scan api]
Note: Upon correct completion of the process, the file created by that
process is then deleted...

I was doing some reading and I may have to use 'debug_printf()' to put some
more output to the screen so I can see exactly where it is failing. It's a
bit of a pain to do things that way as it means I have to write lots of
lines of extra code to each action/function taken in the code, to narrow
down the area, which is giving problems.

I'm using OpenBSD 3.6 at the moment, so to find out if I have that option as
'Solaris' does with the global switch, I will have to read their man pages
about this or of course google it :)

Thank you ever so much for your help and guidance...

_________________________________________________________________
Use MSN Messenger to send music and pics to your friends
http://www.msn.co.uk/messenger