Re: 5.2.1 Trap Handler causes snmptrapd to exit from broken pipe

This is a discussion on Re: 5.2.1 Trap Handler causes snmptrapd to exit from broken pipe within the SNMP Users forums, part of the Networking and Network Related category; Michael Higgins wrote: > Robert Story wrote: > >> On Fri, 04 Mar 2005 10:46:02 -0800 Michael ...


Go Back   Usenet Forums > Networking and Network Related > SNMP Users

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 03-09-2005
Michael Higgins
 
Posts: n/a
Default Re: 5.2.1 Trap Handler causes snmptrapd to exit from broken pipe



Michael Higgins wrote:

> Robert Story wrote:
>
>> On Fri, 04 Mar 2005 10:46:02 -0800 Michael wrote:
>> MH> Using a simple setup as described in MH>
>> http://www.net-snmp.org/tutorial/tut.../snmptrap.html,
>> when MH> a trap is received, the snmptrapd process fails from a
>> broken pipe. I MH> then use the same setup with 5.0.9 and everything
>> functions as designed.
>> MH> MH> I did a little digging and it looks like the problem is in
>> MH> agent/mibgroup/utilities/execute.c in run_exec_command(). I
>> don't know MH> a whole lot about how this is architected, but it
>> appears that two MH> threads are responsible for making this happen.
>> One gets the trap MH> handler process running and the other writes to
>> its stdin and waits for MH> any output.
>> MH> MH> What I see happening is the thread that is initiating the
>> trap handler MH> does some manipulation of file descriptors, closing
>> the standard ones MH> and redirecting them to pipes. When it does a
>> close(2), this function MH> never returns. (Is this stderr?)
>>
>> Yes, and it is odd that it doesn't return..
>>
>> MH> In the meantime, the other thread MH> marches ahead and attempts
>> to write to the pipe. This is where the MH> broken pipe happens and
>> the process terminates.
>>
>> Apparently snmpd handles this by ignoring SIGPIPE. Add this code in
>> snmptrapd.c, near the other signal handlers:
>>
>> #ifdef SIGPIPE
>> signal(SIGPIPE, SIG_IGN); /* 'Inline' failure of wayward readers */
>> #endif
>> MH> I didn't see it bugged either. Should it be?
>>
>> Yes, anything that causes the daemon to crash is very bad.
>>
>>
>>

> Thanks for the reply and suggestions. I can ignore SIGPIPE, but I'll
> also have to skip the close(2) call so that the trap handler can be
> started. I wonder what the effect of that might be?
>
> Mike
>
>


I added the code to ignore the SIGPIPE signal and found that I also had
to remove the close(2) to get to the execv() call that runs the trap
handler. In the snmptrapd.conf file for 5.0.9 I had:

traphandle IF-MIB::linkDown "/home/mhiggins/src/snmp/traps.sh" linkDown
traphandle IF-MIB::linkUp "/home/mhiggins/src/snmp/traps.sh" linkUp

This caused execv to fail with errno 2, no such file or directory. Thre
must be an error in tokenize_exec_command() because it was return the
command with the leading " still in place. When I changed the
snmptrapd.conf to:

traphandle IF-MIB::linkDown /home/mhiggins/src/snmp/traps.sh linkDown
traphandle IF-MIB::linkUp /home/mhiggins/src/snmp/traps.sh linkUp

The trap handler completed successfully. I'll look into that to see I
can find a fix. Now the only thing left at the moment is a formatting
issue. I have some OID values that are getting a linefeed erroneously
added at some point. I'm suspecting realloc_format_trap() in
apps/snmptrapd_log.c. I'll look at that too.

Thanks again for the suggestion. Any idea if removing close(2) might
have some sort of side effect? When I figure out the other two items
I'll submit a bug with suggested fixes.

-- Mike





-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Net-snmp-users mailing list
Net-snmp-users@lists.sourceforge.net
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/...net-snmp-users
Reply With Quote
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are Off
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT +1. The time now is 03:10 AM.


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.0.0