On Fri, 2013-03-08 at 12:45 -0800, Pal Saint wrote:
> unregister_mib fails even for standard UCD-DLMOD MIB. 
> While registering all the columns are explicitly registered. But
> during unregistering, unregister_mib tries to do an exact match with
> the root oid to the subtree children that were registered. This seems
> to fail.
> Checking if unregister_mib_range might help.
> Could someone comment if you have experience in this area? Thanks
> 
> 
> On Fri, Mar 8, 2013 at 12:09 PM, Pal Saint <pals...@gmail.com> wrote:
>         I added additional debugging to 'agent_registry.c' file and
>         recompiled. During unregistering the MIB, the agent complaints
>         about not finding the child and
>         returns MIB_NO_SUCH_REGISTRATION.
>         
>         
>         My subagents registers MIB using default context ("") and
>         default priority. Any idea why the registering succeeds but
>         not unregistering MIB? I appreciate your insights and
>         pointers.


What is the code you use for unregistration?
Normally unregistration is done as a mirror of registration, so to
mirror the registration you got done you need to mirror REGISTER_MIB,
like this:

/* generated code */

void
init_foo(void)
{
    DEBUGMSGTL(("foo", "Initializing\n"));

    /* register ourselves with the agent to handle our mib tree */
    REGISTER_MIB("foo", foo_variables, variable4,foo_variables_oid);

    /* place any other initialization junk you need here */
}

/* New code you need to add */
void
shutdown_foo(void)
{
    DEBUGMSGTL(("foo", "Shutting down\n"));

    /* unregister ourselves with the agent */
    unregister_mib(foo_variables_oid, OID_LENGTH(foo_variables_oid));
}

You also failed to say which version of Net-SNMP you are working with.

Also, if reporting things like this then a working minimal example of
the problem is appreciated - right now I have tried to guess what your
problem is and I might have guessed wrong. 

/MF
>         
>         1695     while(unregistering){
>         1696         DEBUGMSGTL(("register_mib", "unregistering "));
>         1697         DEBUGMSGOIDRANGE(("register_mib", name, len,
>         range_subid, range_ubound));
>         1698         DEBUGMSG(("register_mib", "\n"));
>         1699 
>         1700         list = netsnmp_subtree_find(name, len,
>         netsnmp_subtree_find_first(context),
>         1701                     context);
>         1702         if (list == NULL) {
>         1703             DEBUGMSGTL(("register_mib", "pal:failed to
>         find subtree"));
>         1704             return MIB_NO_SUCH_REGISTRATION;
>         1705         }
>         1706 
>         1707         for (child = list, prev = NULL; child != NULL;
>         1708             prev = child, child = child->children) {
>         1709             if (netsnmp_oid_equals(child->name_a,
>         child->namelen, name, len) == 0 &&
>         1710                 child->priority == priority) {
>         1711                 break;              /* found it */
>         1712              }
>         1713         }
>         1714 
>         1715         if (child == NULL) {
>         1716             DEBUGMSGTL(("register_mib", "pal:failed null
>         child")); <<<<<<<<<<<< Returns from here
>         1717             return MIB_NO_SUCH_REGISTRATION;
>         1718         }
>         
>         
>         
>         
>         On Thu, Mar 7, 2013 at 1:22 AM, Pal Saint <pals...@gmail.com>
>         wrote:
>                 All,
>                 
>                 
>                 We use REGISTER_MIB() to register our MIB tables, and
>                 use unregister_mib() for unregistering them. However,
>                 when SIGHUP is sent to snmpd, it fails to unregister
>                 the MIB variables. It fails with
>                 "MIB_NO_SUCH_REGISTRATION". Registering and
>                 unregistering code  is actually created by
>                 mib2c.old_api code generation configuration. Let me
>                 know if you need more information.
>                 
>                 
>                 Here is snmpd debug info...
>                 
>                 
>                 dlmod: dlmod_create_module
>                 dlmod: dlmod_load_module
>                 exampleTable: /usr/lib/snmp/dlmod/exampleTable.so
>                 ................. Registering exampleTable
>                 register_mib: registering "exampleTable" at
>                 SNMPv2-SMI::enterprises.8075.1.3.2.1.1 with context ""
>                 register_mib: registering "exampleTable" at
>                 SNMPv2-SMI::enterprises.8075.1.3.2.1.2 with context ""
>                 register_mib: registering "exampleTable" at
>                 SNMPv2-SMI::enterprises.8075.1.3.2.1.3 with context ""
>                 register_mib: registering "exampleTable" at
>                 SNMPv2-SMI::enterprises.8075.1.3.2.1.4 with context ""
>                 register_mib: registering "exampleTable" at
>                 SNMPv2-SMI::enterprises.8075.1.3.2.1.5 with context ""
>                 register_mib: registering "exampleTable" at
>                 SNMPv2-SMI::enterprises.8075.1.3.2.1.6 with context ""
>                 register_mib: registering "exampleTable" at
>                 SNMPv2-SMI::enterprises.8075.1.3.2.1.7 with context ""
>                 
>                 
>                 ...
>                 dlmod: Calling deinit_exampleTable()
>                 deinit_exampleTable: unregistering exampleTable...
>                 register_mib: unregistering
>                 SNMPv2-SMI::enterprises.8075.1.3.2
>                 deinit_exampleTable: unregistering exampleTable
>                 failed:-1
>                 dlmod: Module exampleTable unloaded
>                 
>                 
>         
>         
> 
> 
> ------------------------------------------------------------------------------
> Everyone hates slow websites. So do we.
> Make your web apps faster with AppDynamics
> Download AppDynamics Lite for free today:
> http://p.sf.net/sfu/appdyn_d2d_mar
> _______________________________________________ Net-snmp-coders mailing list 
> net-snmp-cod...@lists.sourceforge.net 
> https://lists.sourceforge.net/lists/listinfo/net-snmp-coders



------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
_______________________________________________
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/listinfo/net-snmp-users

Reply via email to