bind fails with sig11 on start / pthread failure on ARM?
Bernd Walter
ticso at cicely7.cicely.de
Fri Feb 19 03:47:37 UTC 2010
On Fri, Feb 19, 2010 at 04:30:00AM +0100, Bernd Walter wrote:
> On Fri, Feb 19, 2010 at 04:12:00AM +0100, Bernd Walter wrote:
> > On Thu, Feb 18, 2010 at 03:10:10PM +0200, Kostik Belousov wrote:
> > > On Thu, Feb 18, 2010 at 01:49:07PM +0100, Bernd Walter wrote:
> > > > On Tue, Feb 16, 2010 at 07:39:51PM +0100, Bernd Walter wrote:
> > > > > On Mon, Feb 15, 2010 at 10:39:07PM +0100, Bernd Walter wrote:
> > [Switching to thread 4 (Thread 20804140 (LWP 100053))]#0 0x0015755c in isc_atomic_cmpxchg ()
> > (gdb) bt
> > #0 0x0015755c in isc_atomic_cmpxchg ()
> > #1 0x00157dac in isc_rwlock_lock ()
> > #2 0x000f9790 in dns_db_register ()
> > #3 0x0004d590 in dns_sdb_register ()
> > #4 0x0000c974 in ns_builtin_init ()
> > #5 0x0001aa90 in $a ()
> > #6 0x0001aa90 in $a ()
> >
> > isc_atomic_cmpxchg really sounds quite interesting though.
> > It is not only the crashing function it is also a type of function which
> > sounds error prune.
>
> For me it looks like a bug in bind itself.
> It is in contrib/bind9/lib/isc/arm/include/isc/atomic.h.
> My assumption is that either the assembly is broken or it gets an
> invalid pointer.
> I'm not very expirienced with ARM assembly.
> Warner - it names you in the copyright, so very likely you know this code.
> I will build a debug version of bind, but as usual it will take some
> time...
Maybe it helps in the meanwhile:
(gdb) disassemble 0x0015755c
Dump of assembler code for function isc_atomic_cmpxchg:
0x00157550 <isc_atomic_cmpxchg+0>: mov r3, r0
0x00157554 <isc_atomic_cmpxchg+4>: sub r0, pc, #8 ; 0x8
0x00157558 <isc_atomic_cmpxchg+8>: mov r12, #-536870908 ; 0xe0000004
0x0015755c <isc_atomic_cmpxchg+12>: str r0, [r12]
0x00157560 <isc_atomic_cmpxchg+16>: mov r12, #-536870904 ; 0xe0000008
0x00157564 <isc_atomic_cmpxchg+20>: add r0, pc, #12 ; 0xc
0x00157568 <isc_atomic_cmpxchg+24>: str r0, [r12]
0x0015756c <isc_atomic_cmpxchg+28>: ldr r0, [r3]
0x00157570 <isc_atomic_cmpxchg+32>: cmp r0, r1
0x00157574 <isc_atomic_cmpxchg+36>: streq r2, [r3]
0x00157578 <isc_atomic_cmpxchg+40>: mov r1, #0 ; 0x0
0x0015757c <isc_atomic_cmpxchg+44>: mov r12, #-536870908 ; 0xe0000004
0x00157580 <isc_atomic_cmpxchg+48>: str r1, [r12]
0x00157584 <isc_atomic_cmpxchg+52>: mvn r1, #0 ; 0x0
0x00157588 <isc_atomic_cmpxchg+56>: mov r12, #-536870904 ; 0xe0000008
0x0015758c <isc_atomic_cmpxchg+60>: str r1, [r12]
0x00157590 <isc_atomic_cmpxchg+64>: mov pc, lr
End of assembler dump.
Seems to be the str in line 57, which is crashing.
--
B.Walter <bernd at bwct.de> http://www.bwct.de
Modbus/TCP Ethernet I/O Baugruppen, ARM basierte FreeBSD Rechner uvm.
More information about the freebsd-current
mailing list