NetBSD-Bugs archive

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

port-vax/41144: ntpd dies when syncing



>Number:         41144
>Category:       port-vax
>Synopsis:       ntpd dies when syncing
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-vax-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Apr 05 08:50:00 +0000 2009
>Originator:     Martin Husemann
>Release:        NetBSD 5.99.10
>Organization:
The NetBSD Foundation, Inc.
>Environment:
System: NetBSD dead-to-the-world.duskware.de 5.99.10 NetBSD 5.99.10 (DEAD) #2: 
Sat Apr 4 20:45:50 CEST 2009 
martin%night-porter.duskware.de@localhost:/usr/src/sys/arch/vax/compile/DEAD vax
Architecture: vax
Machine: vax
>Description:

Running ntpd works for a bit, but as soon as it syncs to a server, it dies.

Core was generated by `ntpd'.
Program terminated with signal 4, Illegal instruction.
#0  0x7f7b5efd in snprintb (2147475768, 1024, 401116, 8256, 0)
   from /usr/lib/libutil.so.7
(gdb) bt
#0  0x7f7b5efd in snprintb (2147475768, 1024, 401116, 8256, 0)
   from /usr/lib/libutil.so.7
#1  0x7f7e292e in _rtld_bind_start (2147475768, 1024, 401116, 8256, 0)
   from /usr/libexec/ld.elf_so
#2  0x00027306 in sync_status (what=0x6b2c4 "status", 
    status=8256, 438980, 8256) at /usr/src/dist/ntp/ntpd/ntp_loopfilter.c:192
[..]
(gdb) list
187     static void
188     sync_status(const char *what, int status)
189     {
190             char buf[1024];
191     #ifdef STA_FMT
192             snprintb(buf, sizeof(buf), STA_FMT, ntv.status);
193     #else
194             snprintf(buf, sizeof(buf), "%04x, status);
195     #endif
196             NLOG(NLOG_SYNCEVENT | NLOG_SYSEVENT)


>How-To-Repeat:
Use this small test program:

--8<--
#include <stdio.h>
#include <util.h>
#include <sys/timex.h>

#define TEST_VALUE 8256

int main(int argc, char **argv)
{
        char buf[1024];

        snprintb(buf, sizeof(buf), STA_FMT, TEST_VALUE);
        printf("string: %s\n", buf);
        return 0;
}
-->8--
cc -static -g -O0 -Wall test.c -lutil
and just run it in gdb...

>Fix:
no idea, don't speak vax asm



Home | Main Index | Thread Index | Old Index