[OmniOS-discuss] PowerDNS recursor SIGSEGV

Dan McDonald danmcd at omniti.com
Sun Dec 6 15:26:00 UTC 2015


One other weird thing to try -- build powerdns with the Illumos gcc4.  If the gcc5 bug affects powerdns, that'd isolate it.  If gcc5 affects some non Illumos library, gcc4 won't help and you'll still segv.

If gcc4 Illumos can't build it, you could try 014 and its gcc481.

Dan

Sent from my iPhone (typos, autocorrect, and all)

> On Dec 6, 2015, at 9:45 AM, Josef 'Jeff' Sipek <jeffpc at josefsipek.net> wrote:
> 
> I compiled powerdns recursor [1] on 016, but I'm running into an occasional
> SIGSEGV.  The SIGSEGV is because of insufficiently aligned memory operand to an
> instruction.  (See the powerdns bug I filed for this [2].) The SIGSEGV actually
> happens in the deque code which comes from boost (1.58.0 in this case).
> 
> Now, the weird thing... I compiled the same powerdns source with the same
> version of boost on OI Hipster and OmniOS 016.  Hipster uses gcc 4.9.3,
> OmniOS 016 uses 5.1.  The function that causes the SEGV on 016 looks totally
> different between the two distros so I haven't see it die on my laptop.
> 
> Has anyone seen any strange SIGSEGVs in boost using software?  I hope it isn't
> some sort of gcc bug.
> 
> Thanks,
> 
> Jeff.
> 
> P.S. PowerDNS uses {get,set,swap}context, so I haven't ruled out a stack
>     alignment bug on their end.
> 
> [1] https://www.powerdns.com/
> [2] https://github.com/PowerDNS/pdns/issues/3002
> 
> 
> OmniOS 016:
> 
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi:     pushl  %ebp
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+1:   movl   %esp,%ebp
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+3:   pushl  %ebx
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+4:   subl   $0x1c,%esp
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+7:   movl   0xc(%ebp),%eax
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0xa: movl   0x8(%ebp),%ebx
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0xd: movdqu (%eax),%xmm0
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x11:movl   0x10(%ebp),%eax
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x14:movaps %xmm0,-0x18(%ebp)
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x18:negl   %eax
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x1a:pushl  %eax
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x1b:leal   -0x18(%ebp),%eax
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x1e:pushl  %eax
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x1f:call   -0x94    <_ZNSt15_Deque_iteratorIcRcPcEpLEi>
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x24:movl   (%eax),%edx
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x26:addl   $0x10,%esp
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x29:movl   %edx,(%ebx)
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x2b:movl   0x4(%eax),%edx
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x2e:movl   %edx,0x4(%ebx)
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x31:movl   0x8(%eax),%edx
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x34:movl   0xc(%eax),%eax
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x37:movl   %edx,0x8(%ebx)
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x3a:movl   %eax,0xc(%ebx)
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x3d:movl   %ebx,%eax
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x3f:movl   -0x4(%ebp),%ebx
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x42:leave  
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x43:ret    $0x4
> 
> 
> OI Hipster:
> 
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi:     pushl  %ebp
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+1:   pushl  %edi
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+2:   pushl  %esi
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+3:   pushl  %ebx
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+4:   subl   $0x14,%esp
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+7:   movl   0x2c(%esp),%edx
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0xb: movl   0x30(%esp),%ebx
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0xf: movl   0x28(%esp),%eax
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x13:movl   (%edx),%esi
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x15:movl   0x4(%edx),%ecx
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x18:movl   0x8(%edx),%edi
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x1b:movl   0xc(%edx),%ebp
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x1e:movl   %esi,%edx
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x20:subl   %ebx,%esi
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x22:subl   %ecx,%edx
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x24:subl   %ebx,%edx
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x26:cmpl   $0x1ff,%edx
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x2c:movl   %esi,(%esp)
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x2f:jbe    +0x21    <_ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x52>
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x31:movl   %edx,%ebx
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x33:sarl   $0x9,%ebx
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x36:testl  %edx,%edx
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x38:jle    +0x56    <_ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x90>
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x3a:leal   0x0(%ebp,%ebx,4),%ebp
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x3e:movl   0x0(%ebp),%ecx
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x41:shll   $0x9,%ebx
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x44:subl   %ebx,%edx
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x46:leal   (%ecx,%edx),%esi
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x49:leal   0x200(%ecx),%edi
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x4f:movl   %esi,(%esp)
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x52:movl   %edi,0x4(%esp)
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x56:movd   (%esp),%xmm0
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x5b:movl   %ecx,(%esp)
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x5e:movd   0x4(%esp),%xmm1
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x64:movl   %ebp,0x4(%esp)
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x68:movd   (%esp),%xmm3
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x6d:punpckldq %xmm3,%xmm0
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x71:movd   0x4(%esp),%xmm2
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x77:punpckldq %xmm2,%xmm1
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x7b:punpcklqdq %xmm1,%xmm0
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x7f:movdqu %xmm0,(%eax)
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x83:addl   $0x14,%esp
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x86:popl   %ebx
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x87:popl   %esi
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x88:popl   %edi
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x89:popl   %ebp
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x8a:ret    $0x4
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x8d:leal   0x0(%esi),%esi
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x90:movl   %edx,%ebx
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x92:shrl   $0x9,%ebx
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x95:orl    $0xff800000,%ebx
> _ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x9b:jmp    -0x63    <_ZNKSt15_Deque_iteratorIcRcPcEmiEi+0x3a>
> 
> -- 
> I'm somewhere between geek and normal.
>        - Linus Torvalds
> _______________________________________________
> OmniOS-discuss mailing list
> OmniOS-discuss at lists.omniti.com
> http://lists.omniti.com/mailman/listinfo/omnios-discuss


More information about the OmniOS-discuss mailing list