pkgsrc-Bugs archive

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

Re: pkg/54171: net/bind914 rndc hangs



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

From: Thomas Klausner <wiz%NetBSD.org@localhost>
To: NetBSD bugtracking <gnats-bugs%NetBSD.org@localhost>
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
 


Home | Main Index | Thread Index | Old Index