pkgsrc-Bugs archive

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

Re: pkg/54171: net/bind914 rndc hangs



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

christos

> On May 9, 2019, at 7:10 PM, Thomas Klausner <wiz%netbsd.org@localhost> wrote:
> 
> 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