You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
1.0 KiB
30 lines
1.0 KiB
7 years ago
|
851637 - snmpd loops inifinitely after receiving SIGTERM
|
||
|
|
||
|
commit 9b15aa36d0fc40b46fe9461d56cf584bbf040691
|
||
|
Author: Jan Safranek <jsafranek@users.sourceforge.net>
|
||
|
Date: Thu Sep 13 15:25:52 2012 +0200
|
||
|
|
||
|
CHANGES: snmpd: fixed infinite loop when SIGTEM arrives in middle of internal query processing.
|
||
|
|
||
|
When snmpd starts internal query, e.g. for 'monitor' config options, it calls
|
||
|
netsnmp_query_walk(). This function loops until either error occurs or the
|
||
|
internal request is processed. And if SIGTERM comes to this loop, the request
|
||
|
is not marked as failed.
|
||
|
|
||
|
Patch originally from Masahiro Matsuya, mmatsuya [at] redhat.com
|
||
|
|
||
|
diff --git a/agent/snmp_agent.c b/agent/snmp_agent.c
|
||
|
index 1c00a4c..b7761b0 100644
|
||
|
--- a/agent/snmp_agent.c
|
||
|
+++ b/agent/snmp_agent.c
|
||
|
@@ -3057,6 +3057,9 @@ handle_getnext_loop(netsnmp_agent_session *asp)
|
||
|
return status; /* should never really happen */
|
||
|
}
|
||
|
}
|
||
|
+ if (!netsnmp_running) {
|
||
|
+ return SNMP_ERR_GENERR;
|
||
|
+ }
|
||
|
return SNMP_ERR_NOERROR;
|
||
|
}
|
||
|
|