www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 16641] New: Infinite loop on InvalidMemoryOperationError in

https://issues.dlang.org/show_bug.cgi?id=16641

          Issue ID: 16641
           Summary: Infinite loop on InvalidMemoryOperationError in
                    __dmd_personality_v0
           Product: D
           Version: D2
          Hardware: x86
                OS: Windows
            Status: NEW
          Severity: enhancement
          Priority: P1
         Component: druntime
          Assignee: nobody puremagic.com
          Reporter: etcimon gmail.com

Server seems to get stuck on an InvalidMemoryOperationError stack trace
infinite loop every now and then on dmd 2.071. Very rare occurrence but forces
me to manually monitor the server with htop

(gdb) bt






vibe.http.server.handleHTTPConnection(vibe.core.net.TCPConnection,
vibe.http.server.HTTPServerListener) ()

vibe.http.server.listenHTTPPlain(vibe.http.server.HTTPServerSettings).doListen(vibe.http.server.HTTPServerSettings,
ulong, immutable(char)[]).__lambda4(vibe.core.net.TCPConnection) ()

vibe.core.drivers.libasync.LibasyncTCPConnection.onConnect() ()

delegate).makeTaskFuncInfo(ref void()
delegate).callDelegate(vibe.core.core.TaskFuncInfo*) ()





rax            0x7fc83ca3f000   140497987563520
rbx            0x13e59b20       333814560
rcx            0x172ee10        24309264
rdx            0x7fc83ca3f000   140497987563520
rsi            0x172e7e0        24307680
rdi            0x7fc83ca3f000   140497987563520
rbp            0x7fc450b52650   0x7fc450b52650
rsp            0x7fc450b525e0   0x7fc450b525e0
r8             0x0      0
r9             0x0      0
r10            0x7fc450b52690   140481144366736
r11            0xffffffffffffffa8       -88
r12            0x7fc83ca3f0b0   140497987563696
r13            0x1477ff8        21463032
r14            0x7fc83ca3f000   140497987563520
r15            0x7fc83ca3e7c0   140497987561408
rip            0x1362c13        0x1362c13 <__dmd_personality_v0+575>
eflags         0x206    [ PF IF ]
cs             0x33     51
ss             0x2b     43
ds             0x0      0
es             0x0      0
fs             0x0      0
gs             0x0      0

   0x1362bd2 <__dmd_personality_v0+510>    mov    (%rbx),%rdi     
   x0x1362bd5 <__dmd_personality_v0+513>    callq  0x13622c8 <_d_dynamic_cast>  
   x0x1362bda <__dmd_personality_v0+518>    mov    %rax,%r14       
   x0x1362bdd <__dmd_personality_v0+521>    test   %r14,%r14       
   x0x1362be0 <__dmd_personality_v0+524>    je     0x1362bff
<__dmd_personality_v0+555>   
   x0x1362be2 <__dmd_personality_v0+526>    mov    $0x172e7e0,%esi 
   x0x1362be7 <__dmd_personality_v0+531>    mov    (%r12),%rdi     
   x0x1362beb <__dmd_personality_v0+535>    callq  0x13622c8 <_d_dynamic_cast>  
   x0x1362bf0 <__dmd_personality_v0+540>    test   %rax,%rax       
   x0x1362bf3 <__dmd_personality_v0+543>    jne    0x1362bff
<__dmd_personality_v0+555>   
   x0x1362bf5 <__dmd_personality_v0+545>    mov    (%r12),%rsi     
   x0x1362bf9 <__dmd_personality_v0+549>    mov    %rsi,0x48(%r14) 
   x0x1362bfd <__dmd_personality_v0+553>    jmp    0x1362c42
<__dmd_personality_v0+622>   
   x0x1362bff <__dmd_personality_v0+555>    mov    (%r12),%rdx     
   x0x1362c03 <__dmd_personality_v0+559>    cmpq   $0x0,0x40(%rdx) 
   x0x1362c08 <__dmd_personality_v0+564>    je     0x1362c15
<__dmd_personality_v0+577>   
-> x0x1362c0a <__dmd_personality_v0+566>    mov    0x40(%rdx),%rdx 
   x0x1362c0e <__dmd_personality_v0+570>    cmpq   $0x0,0x40(%rdx) 
-> x0x1362c13 <__dmd_personality_v0+575>    jne    0x1362c0a
<__dmd_personality_v0+566>   
   x0x1362c15 <__dmd_personality_v0+577>    mov    (%rbx),%rax     
   x0x1362c18 <__dmd_personality_v0+580>    mov    %rax,0x40(%rdx) 
   x0x1362c1c <__dmd_personality_v0+584>    mov    (%r12),%rcx     
   x0x1362c20 <__dmd_personality_v0+588>    mov    %rcx,(%rbx)     
   x0x1362c23 <__dmd_personality_v0+591>    mov    0x28(%r12),%r8d         


(gdb) p *(void**)($rdx+0x40)
$8 = (void *) 0x7fc83ca3f000
(gdb) p *(void**)0x7fc83ca3f000
$9 = (void *) 0x172ee10 <vtable for core.exception.InvalidMemoryOperationError>
(gdb) p *(void**)(0x7fc83ca3f000+0x40)
$10 = (void *) 0x7fc83ca3f000

--
Oct 26 2016