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