NetBSD Problem Report #54171

From john@athena.zia.io  Tue May  7 05:02:46 2019
Return-Path: <john@athena.zia.io>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
	by mollari.NetBSD.org (Postfix) with ESMTPS id 8CA947A1AE
	for <gnats-bugs@gnats.NetBSD.org>; Tue,  7 May 2019 05:02:46 +0000 (UTC)
Message-Id: <201905070438.x474cUBG010561@athena.zia.io>
Date: Tue, 7 May 2019 04:38:30 GMT
From: john@ziaspace.com
Reply-To: john@ziaspace.com
To: gnats-bugs@NetBSD.org
Subject: net/bind914 rndc hangs
X-Send-Pr-Version: 3.95

>Number:         54171
>Category:       pkg
>Synopsis:       net/bind914 rndc hangs
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    cjep
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue May 07 05:05:00 +0000 2019
>Closed-Date:    Wed Feb 10 23:20:45 +0000 2021
>Last-Modified:  Wed Feb 10 23:20:45 +0000 2021
>Originator:     John Klos
>Release:        NetBSD 8.0_STABLE
>Organization:

>Environment:


System: NetBSD athena.zia.io 8.0_STABLE NetBSD 8.0_STABLE (ATHENA-$Revision: 8.0k $) #0: Tue Apr 30 07:53:13 UTC 2019 john@athena.zia.io:/usr/obj-alpha/sys/arch/alpha/compile/ATHENA alpha
Architecture: alpha
Machine: alpha
>Description:

A new, out of the box configuration of net/bind914 on NetBSD hangs on any 
attempt to run rndc. Running with -V stops at:

athena# /usr/local/sbin/rndc -V -k /etc/rndc.key status
create memory context
create socket manager
create task manager
create task
create logging context
setting log tag
creating log channel
enabling log channel
create parser
get key
decode base64 secret
allocate data buffer
status
post event
using server 127.0.0.1 (127.0.0.1#953)
create socket
bind socket
connect
create message
render message
schedule recv
send message

Then hangs; control-t shows:
load: 2.20  cmd: rndc 20904 [parked kqueue sigwait] 0.02u 0.02s 0% 5504k

This is with an old rndc.key and with a newly created one.


>How-To-Repeat:

>Fix:


>Release-Note:

>Audit-Trail:
From: Thomas Klausner <wiz@NetBSD.org>
To: NetBSD bugtracking <gnats-bugs@NetBSD.org>
Cc: 
Subject: Re: pkg/54171: net/bind914 rndc hangs
Date: Thu, 9 May 2019 11:46:06 +0200

 I wonder - does bind from NetBSD-current work on alpha?
 If so, we could look for fixes that are in the NetBSD tree.
 If not, you can report another bug for the base system ;)

 In general, I think this and the other bind (911/912) bug report would
 better be filed upstream.
  Thomas

From: John Klos <john@ziaspace.com>
To: gnats-bugs@netbsd.org
Cc: pkg-manager@netbsd.org, pkgsrc-bugs@netbsd.org
Subject: Re: pkg/54171: net/bind914 rndc hangs
Date: Thu, 9 May 2019 22:33:53 +0000 (UTC)

 > I wonder - does bind from NetBSD-current work on alpha?
 > If so, we could look for fixes that are in the NetBSD tree.
 > If not, you can report another bug for the base system ;)
 >
 > In general, I think this and the other bind (911/912) bug report would
 > better be filed upstream.

 bind from base works fine on all architectures. I've had to revert to bind 
 from base on my ARM machines because no pkgsrc bind works there. I'm using 
 bind from base on a few amd64 systems, too.

 It seems that zone transfers from systems running bind914 hang, too.

 John

From: Thomas Klausner <wiz@NetBSD.org>
To: NetBSD bugtracking <gnats-bugs@NetBSD.org>
Cc: 
Subject: Re: pkg/54171: net/bind914 rndc hangs
Date: Fri, 10 May 2019 01:06:10 +0200

 On Thu, May 09, 2019 at 10:35:01PM +0000, John Klos wrote:
 >  bind from base works fine on all architectures. I've had to revert to bind 
 >  from base on my ARM machines because no pkgsrc bind works there. I'm using 
 >  bind from base on a few amd64 systems, too.

 I looked at

 cd /usr/src/external/mpl/bind/dist
 cvs di -rbind-9-14-1 -kk | less

 for a bit. Most of the changes are linting/casting changes, or
 fdwatch/blacklistd support.

 I found two that looked like they might have something todo with your
 issue.

 Index: lib/isc/rwlock.c
 ===================================================================
 RCS file: /cvsroot/src/external/mpl/bind/dist/lib/isc/rwlock.c,v
 retrieving revision 1.1.1.3
 retrieving revision 1.6
 diff -u -r1.1.1.3 -r1.6
 --- lib/isc/rwlock.c    24 Feb 2019 18:56:47 -0000      1.1.1.3
 +++ lib/isc/rwlock.c    24 Feb 2019 20:01:31 -0000      1.6
 @@ -46,6 +46,9 @@
  #define RWLOCK_MAX_ADAPTIVE_COUNT 100
  #endif

 +#ifdef __lint__
 +# define isc_rwlock_pause()
 +#else
  #if defined(_MSC_VER)
  # include <intrin.h>
  # define isc_rwlock_pause() YieldProcessor()
 @@ -56,11 +59,12 @@
  # define isc_rwlock_pause() __asm__ __volatile__ ("rep; nop")
  #elif defined(__ia64__)
  # define isc_rwlock_pause() __asm__ __volatile__ ("hint @pause")
 -#elif defined(__arm__)
 +#elif defined(__arm__) && defined(_ARM_ARCH_6)
  # define isc_rwlock_pause() __asm__ __volatile__ ("yield")
  #elif defined(sun) && (defined(__sparc) || defined(__sparc__))
  # define isc_rwlock_pause() smt_pause()
 -#elif defined(__sparc) || defined(__sparc__)
 +// Disable pause, only works on v9
 +#elif (defined(__sparc) || defined(__sparc__)) && defined(notdef)
  # define isc_rwlock_pause() __asm__ __volatile__ ("pause")
  #elif defined(__ppc__) || defined(_ARCH_PPC)  ||                       \
         defined(_ARCH_PWR) || defined(_ARCH_PWR2) || defined(_POWER)
 @@ -68,6 +72,7 @@
  #else
  # define isc_rwlock_pause()
  #endif
 +#endif

  static isc_result_t
  isc__rwlock_lock(isc_rwlock_t *rwl, isc_rwlocktype_t type);
 Index: lib/isc/stats.c
 ===================================================================
 RCS file: /cvsroot/src/external/mpl/bind/dist/lib/isc/stats.c,v
 retrieving revision 1.1.1.2
 retrieving revision 1.4
 diff -u -r1.1.1.2 -r1.4
 --- lib/isc/stats.c     9 Jan 2019 16:48:19 -0000       1.1.1.2
 +++ lib/isc/stats.c     9 Jan 2019 20:39:28 -0000       1.4
 @@ -32,7 +32,11 @@
  #define ISC_STATS_MAGIC                        ISC_MAGIC('S', 't', 'a', 't')
  #define ISC_STATS_VALID(x)             ISC_MAGIC_VALID(x, ISC_STATS_MAGIC)

 +#ifndef _LP64
 +typedef atomic_int_fast32_t isc_stat_t;
 +#else
  typedef atomic_int_fast64_t isc_stat_t;
 +#endif

  struct isc_stats {
         /*% Unlocked */

 Could you please try patches like those above in the pkgsrc version
 and see if they improve the situation?

 If not, please read the cvs diff yourself, perhaps you find more stuff.

 Thanks,
  Thomas

From: Christos Zoulas <christos@zoulas.com>
To: gnats-bugs@netbsd.org
Cc: pkg-manager@netbsd.org, gnats-admin@netbsd.org, pkgsrc-bugs@netbsd.org,
 john@ziaspace.com
Subject: Re: pkg/54171: net/bind914 rndc hangs
Date: Thu, 9 May 2019 20:42:53 -0400

 I think perhaps there are changes in config.h too.

 christos

 > On May 9, 2019, at 7:10 PM, Thomas Klausner <wiz@netbsd.org> wrote:
 >=20
 > The following reply was made to PR pkg/54171; it has been noted by GNATS.
 >=20
 > From: Thomas Klausner <wiz@NetBSD.org>
 > To: NetBSD bugtracking <gnats-bugs@NetBSD.org>
 > Cc:=20
 > Subject: Re: pkg/54171: net/bind914 rndc hangs
 > Date: Fri, 10 May 2019 01:06:10 +0200
 >=20
 >> On Thu, May 09, 2019 at 10:35:01PM +0000, John Klos wrote:
 >> bind from base works fine on all architectures. I've had to revert to bin=
 d=20
 >> from base on my ARM machines because no pkgsrc bind works there. I'm usin=
 g=20
 >> bind from base on a few amd64 systems, too.
 >=20
 > I looked at
 >=20
 > cd /usr/src/external/mpl/bind/dist
 > cvs di -rbind-9-14-1 -kk | less
 >=20
 > for a bit. Most of the changes are linting/casting changes, or
 > fdwatch/blacklistd support.
 >=20
 > I found two that looked like they might have something todo with your
 > issue.
 >=20
 > Index: lib/isc/rwlock.c
 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
 > RCS file: /cvsroot/src/external/mpl/bind/dist/lib/isc/rwlock.c,v
 > retrieving revision 1.1.1.3
 > retrieving revision 1.6
 > diff -u -r1.1.1.3 -r1.6
 > --- lib/isc/rwlock.c    24 Feb 2019 18:56:47 -0000      1.1.1.3
 > +++ lib/isc/rwlock.c    24 Feb 2019 20:01:31 -0000      1.6
 > @@ -46,6 +46,9 @@
 >  #define RWLOCK_MAX_ADAPTIVE_COUNT 100
 >  #endif
 >=20
 > +#ifdef __lint__
 > +# define isc_rwlock_pause()
 > +#else
 >  #if defined(_MSC_VER)
 >  # include <intrin.h>
 >  # define isc_rwlock_pause() YieldProcessor()
 > @@ -56,11 +59,12 @@
 >  # define isc_rwlock_pause() __asm__ __volatile__ ("rep; nop")
 >  #elif defined(__ia64__)
 >  # define isc_rwlock_pause() __asm__ __volatile__ ("hint @pause")
 > -#elif defined(__arm__)
 > +#elif defined(__arm__) && defined(_ARM_ARCH_6)
 >  # define isc_rwlock_pause() __asm__ __volatile__ ("yield")
 >  #elif defined(sun) && (defined(__sparc) || defined(__sparc__))
 >  # define isc_rwlock_pause() smt_pause()
 > -#elif defined(__sparc) || defined(__sparc__)
 > +// Disable pause, only works on v9
 > +#elif (defined(__sparc) || defined(__sparc__)) && defined(notdef)
 >  # define isc_rwlock_pause() __asm__ __volatile__ ("pause")
 >  #elif defined(__ppc__) || defined(_ARCH_PPC)  ||                       \
 >         defined(_ARCH_PWR) || defined(_ARCH_PWR2) || defined(_POWER)
 > @@ -68,6 +72,7 @@
 >  #else
 >  # define isc_rwlock_pause()
 >  #endif
 > +#endif
 >=20
 >  static isc_result_t
 >  isc__rwlock_lock(isc_rwlock_t *rwl, isc_rwlocktype_t type);
 > Index: lib/isc/stats.c
 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
 > RCS file: /cvsroot/src/external/mpl/bind/dist/lib/isc/stats.c,v
 > retrieving revision 1.1.1.2
 > retrieving revision 1.4
 > diff -u -r1.1.1.2 -r1.4
 > --- lib/isc/stats.c     9 Jan 2019 16:48:19 -0000       1.1.1.2
 > +++ lib/isc/stats.c     9 Jan 2019 20:39:28 -0000       1.4
 > @@ -32,7 +32,11 @@
 >  #define ISC_STATS_MAGIC                        ISC_MAGIC('S', 't', 'a', '=
 t')
 >  #define ISC_STATS_VALID(x)             ISC_MAGIC_VALID(x, ISC_STATS_MAGIC=
 )
 >=20
 > +#ifndef _LP64
 > +typedef atomic_int_fast32_t isc_stat_t;
 > +#else
 >  typedef atomic_int_fast64_t isc_stat_t;
 > +#endif
 >=20
 >  struct isc_stats {
 >         /*% Unlocked */
 >=20
 > Could you please try patches like those above in the pkgsrc version
 > and see if they improve the situation?
 >=20
 > If not, please read the cvs diff yourself, perhaps you find more stuff.
 >=20
 > Thanks,
 >  Thomas
 >=20

State-Changed-From-To: open->feedback
State-Changed-By: bsiegert@NetBSD.org
State-Changed-When: Sat, 13 Jul 2019 15:29:36 +0000
State-Changed-Why:
Could you try the packages posted, please?


Responsible-Changed-From-To: pkg-manager->cjep
Responsible-Changed-By: cjep@NetBSD.org
Responsible-Changed-When: Wed, 10 Feb 2021 22:23:34 +0000
Responsible-Changed-Why:
Happy to field this. Going over old PRs. This package is no longer available
but bind916 is. Have you successfully installed this package or does it have
the same symptoms as bind914?


From: John Klos <john@ziaspace.com>
To: gnats-bugs@netbsd.org
Cc: cjep@netbsd.org, pkg-manager@netbsd.org, pkgsrc-bugs@netbsd.org,
        gnats-admin@netbsd.org
Subject: Re: pkg/54171 (net/bind914 rndc hangs)
Date: Wed, 10 Feb 2021 23:18:42 +0000 (UTC)

 > Happy to field this. Going over old PRs. This package is no longer available
 > but bind916 is. Have you successfully installed this package or does it have
 > the same symptoms as bind914?

 The problem does not exist in bind916.

 Thanks,
 John Klos

State-Changed-From-To: feedback->closed
State-Changed-By: cjep@NetBSD.org
State-Changed-When: Wed, 10 Feb 2021 23:20:45 +0000
State-Changed-Why:
net/bind916 replaces net/bind914 and does not have the issue.


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.46 2020/01/03 16:35:01 leot Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2020 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.