Greetings from OmniOS (an illumos distro), plus an odd error message

sscdvp sscdvp at gmail.com
Wed May 28 08:23:03 UTC 2014


Hello.

Yes, it seems like a bug (please fill it on ISC bug report
http://www.isc.org/community/report-bug).

Please try to remove wfdesc line from the code block you've posted (it is
safe since if_*register_receive() routines have nothing with wfdesc
descriptor) like that.

File common/socket.c
--old--
#if defined(IP_PKTINFO) && defined(IP_RECVPKTINFO) &&
defined(USE_V4_PKTINFO)
        /* Dereference the global v4 socket. */
        if ((info->rfdesc == global_v4_socket) &&
            (info->wfdesc == global_v4_socket) &&
            (global_v4_socket_references > 0)) {
                global_v4_socket_references--;
                info->rfdesc = -1;
        } else {
                log_fatal("Impossible condition at %s:%d", MDL);
        }
--new--
#if defined(IP_PKTINFO) && defined(IP_RECVPKTINFO) &&
defined(USE_V4_PKTINFO)
        /* Dereference the global v4 socket. */
        if ((info->rfdesc == global_v4_socket) &&
            (global_v4_socket_references > 0)) {
                global_v4_socket_references--;
                info->rfdesc = -1;
        } else {
                log_fatal("Impossible condition at %s:%d", MDL);
        }

That original patch for OI is
https://hg.openindiana.org/oi-build/diff/064bc3aa72d4/components/isc-dhcp/patches/sockets.patch
As I remember it was posted by ORACLE and integrated into ISC DHCP code.

Regards,
Serghei Samsi



2014-05-28 4:14 GMT+03:00 Dan McDonald <danmcd at omniti.com>:

>
> On May 27, 2014, at 8:47 PM, Dan McDonald <danmcd at omniti.com> wrote:
>
> >
> > It's distinctly possible there's some post-OSol change in S11 that I
> need to account for somehow.  It's also possible this is a real bug.  The
> rfdesc I have is 6, which matches global_v4_socket.  The wfdesc is -1.  The
> comment for the data structure says "if different".  I see a few places
> where wfdesc can be set to -1, but I'm not sure how.
>
> Actually, now I'm more sure.  if_deregister_send() is called before
> if_deregister_receive().  The former sets wfdesc to -1 after closing it,
> which then causes the if check I mentioned earlier to fail.  This seems
> like a bug.
>
> Dan
>
> _______________________________________________
> dhcp-hackers mailing list
> dhcp-hackers at lists.isc.org
> https://lists.isc.org/mailman/listinfo/dhcp-hackers
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.isc.org/pipermail/dhcp-hackers/attachments/20140528/3bd9d6bc/attachment.html>


More information about the dhcp-hackers mailing list