NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Re: bin/59046: dhcpd issue



I have included an output before the switch statement:

log_debug("build_dhcpv6_reply packet->dhcpv6_msg_type is %d", packet->dhcpv6_msg_type);

The last lines of the output:
....
Relay-forward message from 2001:638:902:1::1 port 547, link address 2001:638:902:200b::1, peer address fe80::1c53:2c7f:acc8:7e3e
build_dhcpv6_reply packet->dhcpv6_msg_type is 12
Can't find option with code 16
build_dhcpv6_reply packet->dhcpv6_msg_type is 5
Reply NA: address 2001:638:902:200b::105a to client with duid 00:01:00:01:19:e6:6e:92:00:15:5d:08:d0:15 iaid = 251663709 valid for 1200 seconds
Sending Relay-reply to 2001:638:902:1::1 port 547
Relay-forward message from 2001:638:902:1::1 port 547, link address 2001:638:902:2015::1, peer address fe80::240:caff:fea5:b1ff
build_dhcpv6_reply packet->dhcpv6_msg_type is 12
build_dhcpv6_reply packet->dhcpv6_msg_type is 11
Sending Relay-reply to 2001:638:902:1::1 port 547
Relay-forward message from 2001:638:902:1::1 port 547, link address 2001:638:902:200c::1, peer address fe80::d2bf:9cff:febf:a93f
build_dhcpv6_reply packet->dhcpv6_msg_type is 12
build_dhcpv6_reply packet->dhcpv6_msg_type is 5
Reply NA: address 2001:638:902:200c::1653 to client with duid 00:03:00:01:d0:bf:9c:bf:a9:3f iaid = 2 valid for 1200 seconds
Sending Relay-reply to 2001:638:902:1::1 port 547

and the gdb output from the core file

This GDB was configured as "x86_64--netbsd".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/obj/external/mpl/dhcp/bin/server/dhcpd...
[New process 26684]
[New process 21095]
[New process 9706]
[New process 14977]
[New process 18003]
[New process 3662]
[New process 26573]
[New process 25771]
[New process 25429]
[New process 19916]
[New process 8241]
[New process 25435]
[New process 6788]
Core was generated by `dhcpd'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007013494d58ac in je_large_dalloc () from /usr/lib/libc.so.12
[Current thread is 1 (process 26684)]
#0  0x00007013494d58ac in je_large_dalloc () from /usr/lib/libc.so.12
#1  0x00000000a4a52e20 in iasubopt_dereference (iasubopt=<optimized out>,
file=file@entry=0xa4c5ae68 "/usr/src/external/mpl/dhcp/bin/server/../../dist/server/mdb6.c", line=line@entry=2045)
    at /usr/src/external/mpl/dhcp/bin/server/../../dist/server/mdb6.c:307
#2  0x00000000a4a531fc in ia_remove_iasubopt (ia=0x70134b9d4fc0,
    iasubopt=0x70134c03c080,
file=file@entry=0xa4c5ae68 "/usr/src/external/mpl/dhcp/bin/server/../../dist/server/mdb6.c", line=line@entry=2045)
    at /usr/src/external/mpl/dhcp/bin/server/../../dist/server/mdb6.c:491
#3  0x00000000a4a550f9 in ia_remove_iasubopt (line=2045,
file=0xa4c5ae68 "/usr/src/external/mpl/dhcp/bin/server/../../dist/server/mdb6.c", iasubopt=<optimized out>, ia=<optimized out>)
    at /usr/src/external/mpl/dhcp/bin/server/../../dist/server/mdb6.c:485
#4  cleanup_old_expired (pool=0x70134e484c40)
    at /usr/src/external/mpl/dhcp/bin/server/../../dist/server/mdb6.c:2045
#5  lease_timeout_support (vpool=0x70134e484c40)
    at /usr/src/external/mpl/dhcp/bin/server/../../dist/server/mdb6.c:2120
#6  0x00000000a4a5bc7f in isclib_timer_callback (taskp=<optimized out>,
    eventp=<optimized out>)
at /usr/src/external/mpl/dhcp/lib/common/../../dist/common/dispatch.c:181
#7  0x00000000a4c25a2b in task_run (task=0x70134e4fd1c0)
at /usr/src/external/mpl/dhcp/bind/lib/libisc/../../dist/lib/isc/task.c:861
#8  isc_task_run (task=0x70134e4fd1c0)
at /usr/src/external/mpl/dhcp/bind/lib/libisc/../../dist/lib/isc/task.c:955
#9  0x00000000a4c1c850 in isc__nm_async_task (worker=0x70134e482d90,
    ev0=0x70134c079b40)
at /usr/src/external/mpl/dhcp/bind/lib/libisc/../../dist/lib/isc/netmgr/netmgr.c:883
#10 process_netievent (worker=worker@entry=0x70134e482d90,
    ievent=0x70134c079b40)
at /usr/src/external/mpl/dhcp/bind/lib/libisc/../../dist/lib/isc/netmgr/netmgr.c:955 #11 0x00000000a4c1cf0e in process_queue (worker=worker@entry=0x70134e482d90,
    type=type@entry=NETIEVENT_TASK)
at /usr/src/external/mpl/dhcp/bind/lib/libisc/../../dist/lib/isc/netmgr/netmgr.c:1021
#12 0x00000000a4c1d87d in process_all_queues (worker=0x70134e482d90)
at /usr/src/external/mpl/dhcp/bind/lib/libisc/../../dist/lib/isc/netmgr/netmgr.c:796
#13 async_cb (handle=0x70134e4830c8)
at /usr/src/external/mpl/dhcp/bind/lib/libisc/../../dist/lib/isc/netmgr/netmgr.c:825
#14 0x00000000a4c4a8bc in ?? ()
#15 0x00000000a4c3feec in uv.io_poll ()
#16 0x00000000a4c47f64 in uv_run ()
#17 0x00000000a4c1d17e in nm_thread (worker0=0x70134e482d90)
at /usr/src/external/mpl/dhcp/bind/lib/libisc/../../dist/lib/isc/netmgr/netmgr.c:727
#18 0x00000000a4c37723 in isc__trampoline_run (arg=0x70134e5359a0)
at /usr/src/external/mpl/dhcp/bind/lib/libisc/../../dist/lib/isc/trampoline.c:215
#19 0x000070134da0c89f in ?? () from /usr/lib/libpthread.so.1
#20 0x00007013494930e0 in ?? () from /usr/lib/libc.so.12
#21 0x0000000000200000 in ?? ()
#22 0x0000000000000000 in ?? ()


Regards
Uwe

On Mon, 10 Feb 2025, Christos Zoulas wrote:

Can you print the message type in:

static void
build_dhcpv6_reply(struct data_string *reply, struct packet *packet) {
       memset(reply, 0, sizeof(*reply));

       /* I would like to classify the client once here, but
        * as I don't want to classify all of the incoming packets
        * I need to do it before handling specific types.
        * We don't need to classify if we are tossing the packet
        * or if it is a relay - the classification step will get
        * done when we process the inner client packet.
        */

       switch (packet->dhcpv6_msg_type) {

?

Thanks

christos

On Feb 10, 2025, at 3:00?AM, 6bone%6bone.informatik.uni-leipzig.de@localhost via gnats <gnats-admin%netbsd.org@localhost> wrote:

The following reply was made to PR bin/59046; it has been noted by GNATS.

From: 6bone%6bone.informatik.uni-leipzig.de@localhost
To: Christos Zoulas <christos%zoulas.com@localhost>
Cc: gnats-bugs%netbsd.org@localhost, gnats-admin%netbsd.org@localhost, netbsd-bugs%netbsd.org@localhost
Subject: Re: Re: bin/59046: dhcpd issue
Date: Mon, 10 Feb 2025 08:56:37 +0100 (CET)

This GDB was configured as "x86_64--netbsd".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
     <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/obj/external/mpl/dhcp/bin/server/dhcpd...
[New process 25706]
[New process 487]
[New process 13393]
[New process 27458]
[New process 4164]
[New process 6709]
[New process 10550]
[New process 11044]
[New process 13596]
[New process 597]
[New process 153]
[New process 15800]
[New process 21849]
Core was generated by `dhcpd'.
Program terminated with signal SIGSEGV, Segmentation fault.
[Current thread is 1 (process 25706)]
#0  0x00007bbf3510f8e8 in free () from /usr/lib/libc.so.12
#1  0x00000001a9695d28 in dfree (ptr=<optimized out>, file=<optimized out>,
     line=<optimized out>)
     at /usr/src/external/mpl/dhcp/lib/omapip/../../dist/omapip/alloc.c:208
#2  0x00000001a9666998 in buffer_dereference (ptr=ptr@entry=0x7bbf2dfefc80,
     file=file@entry=0x1a9852728 "/usr/src/external/mpl/dhcp/bin/server/../../dist/server/dhcpv6.c", line=line@entry=7807)
     at /usr/src/external/mpl/dhcp/lib/common/../../dist/common/alloc.c:757
#3  0x00000001a966754c in data_string_forget (data=data@entry=0x7bbf2dfefc80,
     file=file@entry=0x1a9852728 "/usr/src/external/mpl/dhcp/bin/server/../../dist/server/dhcpv6.c", line=line@entry=7807)
     at /usr/src/external/mpl/dhcp/lib/common/../../dist/common/alloc.c:1350
#4  0x00000001a963105a in dhcpv6 (packet=0x7bbf3888f000)
     at /usr/src/external/mpl/dhcp/bin/server/../../dist/server/dhcpv6.c:7807
#5  0x00000001a96744a4 in do_packet6 (interface=<optimized out>,
     packet=0x7bbf2dfefde0 "\f", len=164, from_port=8962, from=<optimized out>,
     was_unicast=<optimized out>)
     at /usr/src/external/mpl/dhcp/lib/common/../../dist/common/options.c:4236
#6  0x00000001a965e10f in got_one_v6 (h=<optimized out>)
     at /usr/src/external/mpl/dhcp/lib/common/../../dist/common/discover.c:1219
#7  0x00000001a9691f2a in omapi_iscsock_cb (task=<optimized out>,
     socket=<optimized out>, cbarg=0x7bbf3a0fc180, flags=1)
     at /usr/src/external/mpl/dhcp/lib/omapip/../../dist/omapip/dispatch.c:172
#8  0x00000001a980d834 in internal_fdwatch_read (sock=0x7bbf3a0bf700)
     at /usr/src/external/mpl/dhcp/bind/lib/libisc/../../dist/lib/isc/unix/socket.c:3208
#9  dispatch_recv (sock=0x7bbf3a0bf700)
     at /usr/src/external/mpl/dhcp/bind/lib/libisc/../../dist/lib/isc/unix/socket.c:2718
#10 process_fd (writeable=<optimized out>, readable=<optimized out>,
     fd=<optimized out>, thread=0x7bbf3a148ca0)
     at /usr/src/external/mpl/dhcp/bind/lib/libisc/../../dist/lib/isc/unix/socket.c:3279
#11 process_fds (nevents=<optimized out>, events=<optimized out>,
     thread=0x7bbf3a148ca0)
     at /usr/src/external/mpl/dhcp/bind/lib/libisc/../../dist/lib/isc/unix/socket.c:3326
#12 netthread (uap=0x7bbf3a148ca0)
     at /usr/src/external/mpl/dhcp/bind/lib/libisc/../../dist/lib/isc/unix/socket.c:3613
#13 0x00000001a9837713 in isc__trampoline_run (arg=0x7bbf3a13aa30)
     at /usr/src/external/mpl/dhcp/bind/lib/libisc/../../dist/lib/isc/trampoline.c:215
#14 0x00007bbf3960c89f in ?? () from /usr/lib/libpthread.so.1
#15 0x00007bbf350930e0 in ?? () from /usr/lib/libc.so.12
#16 0x0000000000200000 in ?? ()
#17 0x0000000000000000 in ?? ()

Last log entry before the crash was:
Client 00:01:00:01:27:3e:db:f2:b0:5c:da:40:02:08 releases address 2001:638:902:200c::1269
Sending Relay-reply to 2001:638:902:1::1 port 547


Regards
Uwe


On Sat, 8 Feb 2025, Christos Zoulas wrote:

Can you compile with -g (symbols)? I can't tell which call is that.

Thanks,

christos








Home | Main Index | Thread Index | Old Index