Re: problems with a C script, exiting with signal 10

2008-08-11 Thread Jordi Moles Blanco

Hi,

i've been trying to debug what you suggested, but no luck so far :(

The thing is that i checked out all the calls to arrays, space handling 
and so on, and i couldn't find anything wrong.


After that, i ended up trying the hard way, which is to keep a file 
/tmp/debug.log where the script writes everything that it does. So... 
the problem was that even in those cases when postfix logged a signal 
10 error, the logs showed that the C script got to the end of the file, 
it executed every single line, it doesn't get stuck manipulating arrays 
or anything like that.



any idea?

Thanks.



En/na Jordi Moles Blanco ha escrit:

Hi,

thanks for the reply, i will have a close look at what you suggested. 
The thing is that, yes, i work with arrays, pointers, mallocs and so 
on. I'll try to make sure everything is initiliazed properly before 
being used.


Thanks for the advice.




En/na Patrick Mahan ha escrit:



Jordi Moles Blanco presented these words - circa 8/7/08 3:13 AM-

Hi,

I've got this home-made script, written in C, on a  Freebsd 7.0 
server with different versions of postfix: 2.3,2,4 and 2.5


The problem is that, while most of the time it works like a charm, 
sometimes it crashes and bounces the message. It's not really a big 
deal, cause the sender gets notified that their mail wasn't 
delivered and hopefully, they will resend it. However, the problem 
is that I've tried to debug my script but found nothing wrong at 
all, cause it only fails from time to time, let's say... once for 
each 2000 messages that postfix receives, and it appears to do so in 
a random way.


As i said... postfix can fail to deliver a message to one particular 
mailbox, but if then you resend the very same message to the very 
same mailbox, it will be delivered.


The error is reported in both maillog and messages, like this:


**/var/log/maillog
Aug  7 01:55:19 mail01 postfix/pipe[27534]: 3E1A0143709: 
to=EMAIL_ACCOUNT, relay=quota_postfix, delay=0.23, 
delays=0.11/0/0/0.11, dsn=5.3.0, status=bounced (Command died with 
signal 10: /usr/local/etc/postfix/quota_postfix)



*/var/log/messages***
Aug  7 01:55:19 mail01 kernel: pid 29535 (quota_postfix), uid 125: 
exited on signal 10




Well signal 10 is SIGBUS which is indicative of (generally) a bad 
address,
non-aligned memory address (on platforms it matters) or a hardware 
error.

I would look for places you are dereferencing a pointer without perhaps
first validating it.

Given that it rarely occurs, I might suspect that you are allocating 
some

memory, but failing to completely initialize (malloc() doesn't zero out
memory) it or assuming it is already initialize.

Good luck,

Patrick


Here you have some extra information about the script itself and the 
master.cf



*/usr/local/etc/postfix/quota_postfix***

# ls -la /usr/local/etc/postfix/quota_postfix
-rwsr-xr-x  1 postfix  postfix  20048 Aug  4 10:18 
/usr/local/etc/postfix/quota_postfix


It's got de suid flag cause it performs a du command and other 
file operations which need permissions, although i've tried with 
other groups of permissions and it eventually crashes anyway with 
signal 10


**master.cf*

.

# spamfilter
spamfilter  unix-   n   n   -   20  pipe
flags=R user=filter argv=/home/antispam.pl localhost:10027 
antispam ${sender} ${recipient} /usr/local/bin/spamc


# from spamfilter to smtpd:10026
localhost:10027 inetn   -   n   -   100   
smtpd -o content_filter=quota_postfix



# quota_postfix
quota_postfix  unix-   n   n   -   20  pipe
flags=R user=filter argv=/usr/local/etc/postfix/quota_postfix 
localhost 10028 ${sender} ${recipient} ${domain}


# from quota_postfix to smtpd:10028
localhost:10028 inetn   -   n   -   100   
smtpd -o content_filter=




So far, any program which crashed would leave a .core file in 
/usr/crash, but this one is not doing the same, so... i can't 
actually debug from the core file either.
Sysctl in my FreeBSD server is ok, but i guess that postfix, somehow 
is preventing this filter from generating a core file. Is that 
possible? Or am i completely wrong?


How could I, at least, generate the .core file?

Thanks.


___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to 
[EMAIL PROTECTED]





___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to 
[EMAIL PROTECTED]


___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: problems with a C script, exiting with signal 10

2008-08-08 Thread Jordi Moles Blanco

Hi,

thanks for the reply, i will have a close look at what you suggested. 
The thing is that, yes, i work with arrays, pointers, mallocs and so on. 
I'll try to make sure everything is initiliazed properly before being used.


Thanks for the advice.




En/na Patrick Mahan ha escrit:



Jordi Moles Blanco presented these words - circa 8/7/08 3:13 AM-

Hi,

I've got this home-made script, written in C, on a  Freebsd 7.0 
server with different versions of postfix: 2.3,2,4 and 2.5


The problem is that, while most of the time it works like a charm, 
sometimes it crashes and bounces the message. It's not really a big 
deal, cause the sender gets notified that their mail wasn't delivered 
and hopefully, they will resend it. However, the problem is that I've 
tried to debug my script but found nothing wrong at all, cause it 
only fails from time to time, let's say... once for each 2000 
messages that postfix receives, and it appears to do so in a random way.


As i said... postfix can fail to deliver a message to one particular 
mailbox, but if then you resend the very same message to the very 
same mailbox, it will be delivered.


The error is reported in both maillog and messages, like this:


**/var/log/maillog
Aug  7 01:55:19 mail01 postfix/pipe[27534]: 3E1A0143709: 
to=EMAIL_ACCOUNT, relay=quota_postfix, delay=0.23, 
delays=0.11/0/0/0.11, dsn=5.3.0, status=bounced (Command died with 
signal 10: /usr/local/etc/postfix/quota_postfix)



*/var/log/messages***
Aug  7 01:55:19 mail01 kernel: pid 29535 (quota_postfix), uid 125: 
exited on signal 10




Well signal 10 is SIGBUS which is indicative of (generally) a bad 
address,

non-aligned memory address (on platforms it matters) or a hardware error.
I would look for places you are dereferencing a pointer without perhaps
first validating it.

Given that it rarely occurs, I might suspect that you are allocating some
memory, but failing to completely initialize (malloc() doesn't zero out
memory) it or assuming it is already initialize.

Good luck,

Patrick


Here you have some extra information about the script itself and the 
master.cf



*/usr/local/etc/postfix/quota_postfix***

# ls -la /usr/local/etc/postfix/quota_postfix
-rwsr-xr-x  1 postfix  postfix  20048 Aug  4 10:18 
/usr/local/etc/postfix/quota_postfix


It's got de suid flag cause it performs a du command and other file 
operations which need permissions, although i've tried with other 
groups of permissions and it eventually crashes anyway with signal 10


**master.cf*

.

# spamfilter
spamfilter  unix-   n   n   -   20  pipe
flags=R user=filter argv=/home/antispam.pl localhost:10027 
antispam ${sender} ${recipient} /usr/local/bin/spamc


# from spamfilter to smtpd:10026
localhost:10027 inetn   -   n   -   100   
smtpd -o content_filter=quota_postfix



# quota_postfix
quota_postfix  unix-   n   n   -   20  pipe
flags=R user=filter argv=/usr/local/etc/postfix/quota_postfix 
localhost 10028 ${sender} ${recipient} ${domain}


# from quota_postfix to smtpd:10028
localhost:10028 inetn   -   n   -   100   
smtpd -o content_filter=




So far, any program which crashed would leave a .core file in 
/usr/crash, but this one is not doing the same, so... i can't 
actually debug from the core file either.
Sysctl in my FreeBSD server is ok, but i guess that postfix, somehow 
is preventing this filter from generating a core file. Is that 
possible? Or am i completely wrong?


How could I, at least, generate the .core file?

Thanks.


___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to 
[EMAIL PROTECTED]





___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]


problems with a C script, exiting with signal 10

2008-08-07 Thread Jordi Moles Blanco

Hi,

I've got this home-made script, written in C, on a  Freebsd 7.0 server 
with different versions of postfix: 2.3,2,4 and 2.5


The problem is that, while most of the time it works like a charm, 
sometimes it crashes and bounces the message. It's not really a big 
deal, cause the sender gets notified that their mail wasn't delivered 
and hopefully, they will resend it. However, the problem is that I've 
tried to debug my script but found nothing wrong at all, cause it only 
fails from time to time, let's say... once for each 2000 messages that 
postfix receives, and it appears to do so in a random way.


As i said... postfix can fail to deliver a message to one particular 
mailbox, but if then you resend the very same message to the very same 
mailbox, it will be delivered.


The error is reported in both maillog and messages, like this:


**/var/log/maillog
Aug  7 01:55:19 mail01 postfix/pipe[27534]: 3E1A0143709: 
to=EMAIL_ACCOUNT, relay=quota_postfix, delay=0.23, 
delays=0.11/0/0/0.11, dsn=5.3.0, status=bounced (Command died with 
signal 10: /usr/local/etc/postfix/quota_postfix)



*/var/log/messages***
Aug  7 01:55:19 mail01 kernel: pid 29535 (quota_postfix), uid 125: 
exited on signal 10



Here you have some extra information about the script itself and the 
master.cf



*/usr/local/etc/postfix/quota_postfix***

# ls -la /usr/local/etc/postfix/quota_postfix
-rwsr-xr-x  1 postfix  postfix  20048 Aug  4 10:18 
/usr/local/etc/postfix/quota_postfix


It's got de suid flag cause it performs a du command and other file 
operations which need permissions, although i've tried with other groups 
of permissions and it eventually crashes anyway with signal 10


**master.cf*

.

# spamfilter
spamfilter  unix-   n   n   -   20  pipe
flags=R user=filter argv=/home/antispam.pl localhost:10027 antispam 
${sender} ${recipient} /usr/local/bin/spamc


# from spamfilter to smtpd:10026
localhost:10027 inetn   -   n   -   100   smtpd 
-o content_filter=quota_postfix



# quota_postfix
quota_postfix  unix-   n   n   -   20  pipe
flags=R user=filter argv=/usr/local/etc/postfix/quota_postfix 
localhost 10028 ${sender} ${recipient} ${domain}


# from quota_postfix to smtpd:10028
localhost:10028 inetn   -   n   -   100   smtpd 
-o content_filter=




So far, any program which crashed would leave a .core file in 
/usr/crash, but this one is not doing the same, so... i can't actually 
debug from the core file either.
Sysctl in my FreeBSD server is ok, but i guess that postfix, somehow is 
preventing this filter from generating a core file. Is that possible? Or 
am i completely wrong?


How could I, at least, generate the .core file?

Thanks.


___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: problems with a C script, exiting with signal 10

2008-08-07 Thread Patrick Mahan



Jordi Moles Blanco presented these words - circa 8/7/08 3:13 AM-

Hi,

I've got this home-made script, written in C, on a  Freebsd 7.0 server 
with different versions of postfix: 2.3,2,4 and 2.5


The problem is that, while most of the time it works like a charm, 
sometimes it crashes and bounces the message. It's not really a big 
deal, cause the sender gets notified that their mail wasn't delivered 
and hopefully, they will resend it. However, the problem is that I've 
tried to debug my script but found nothing wrong at all, cause it only 
fails from time to time, let's say... once for each 2000 messages that 
postfix receives, and it appears to do so in a random way.


As i said... postfix can fail to deliver a message to one particular 
mailbox, but if then you resend the very same message to the very same 
mailbox, it will be delivered.


The error is reported in both maillog and messages, like this:


**/var/log/maillog
Aug  7 01:55:19 mail01 postfix/pipe[27534]: 3E1A0143709: 
to=EMAIL_ACCOUNT, relay=quota_postfix, delay=0.23, 
delays=0.11/0/0/0.11, dsn=5.3.0, status=bounced (Command died with 
signal 10: /usr/local/etc/postfix/quota_postfix)



*/var/log/messages***
Aug  7 01:55:19 mail01 kernel: pid 29535 (quota_postfix), uid 125: 
exited on signal 10




Well signal 10 is SIGBUS which is indicative of (generally) a bad address,
non-aligned memory address (on platforms it matters) or a hardware error.
I would look for places you are dereferencing a pointer without perhaps
first validating it.

Given that it rarely occurs, I might suspect that you are allocating some
memory, but failing to completely initialize (malloc() doesn't zero out
memory) it or assuming it is already initialize.

Good luck,

Patrick


Here you have some extra information about the script itself and the 
master.cf



*/usr/local/etc/postfix/quota_postfix***

# ls -la /usr/local/etc/postfix/quota_postfix
-rwsr-xr-x  1 postfix  postfix  20048 Aug  4 10:18 
/usr/local/etc/postfix/quota_postfix


It's got de suid flag cause it performs a du command and other file 
operations which need permissions, although i've tried with other groups 
of permissions and it eventually crashes anyway with signal 10


**master.cf*

.

# spamfilter
spamfilter  unix-   n   n   -   20  pipe
flags=R user=filter argv=/home/antispam.pl localhost:10027 antispam 
${sender} ${recipient} /usr/local/bin/spamc


# from spamfilter to smtpd:10026
localhost:10027 inetn   -   n   -   100   smtpd 
-o content_filter=quota_postfix



# quota_postfix
quota_postfix  unix-   n   n   -   20  pipe
flags=R user=filter argv=/usr/local/etc/postfix/quota_postfix 
localhost 10028 ${sender} ${recipient} ${domain}


# from quota_postfix to smtpd:10028
localhost:10028 inetn   -   n   -   100   smtpd 
-o content_filter=




So far, any program which crashed would leave a .core file in 
/usr/crash, but this one is not doing the same, so... i can't actually 
debug from the core file either.
Sysctl in my FreeBSD server is ok, but i guess that postfix, somehow is 
preventing this filter from generating a core file. Is that possible? Or 
am i completely wrong?


How could I, at least, generate the .core file?

Thanks.


___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to 
[EMAIL PROTECTED]




___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]