zeromq / czmq

High-level C binding for ØMQ
czmq.zeromq.org
Mozilla Public License 2.0
1.18k stars 525 forks source link

zpoller_test random crash on windows #2300

Open calvin2021y opened 4 weeks ago

calvin2021y commented 4 weeks ago

random test error:

 * zpoller: =================================================================
==4224==ERROR: AddressSanitizer: access-violation on unknown address 0x007ed9b00158 (pc 0x7ff727400f56 bp 0x007ed9aff890 sp 0x007ed9aff850 T0)
==4224==The signal is caused by a READ memory access.
    #0 0x7ff727400f55  (C:\Users\admin\tests_zmq.exe+0x1402c0f55)   zmq::socket_base_t::check_tag()
    #1 0x7ff7273128d7  (C:\Users\admin\tests_zmq.exe+0x1401d28d7) as_socket_base_t(void*)
    #2 0x7ff7273129f1  (C:\Users\admin\tests_zmq.exe+0x1401d29f1) zmq_getsockopt
    #3 0x7ff727251b21  (C:\Users\admin\tests_zmq.exe+0x140111b21) zsock_resolve
    #4 0x7ff72724f653  (C:\Users\admin\tests_zmq.exe+0x14010f653) zpoller_add 
    #5 0x7ff727250ae6  (C:\Users\admin\tests_zmq.exe+0x140110ae6) zpoller_test
    #6 0x7ff7271b21b2  (C:\Users\admin\tests_zmq.exe+0x1400721b2)
    #7 0x7ff727141310  (C:\Users\admin\tests_zmq.exe+0x140001310)
    #8 0x7ff727141365  (C:\Users\admin\tests_zmq.exe+0x140001365)
    #9 0x7ffb3ebd7343 in BaseThreadInitThunk+0x13 (C:\Windows\System32\KERNEL32.DLL+0x180017343)
    #10 0x7ffb3f4226b0 in RtlUserThreadStart+0x20 (C:\Windows\SYSTEM32\ntdll.dll+0x1800526b0)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: access-violation (C:\Users\admin\tests_zmq.exe+0x1402c0f55)
==4224==ABORTING
calvin2021y commented 4 weeks ago

one more random windows test error:

 * zgossip:
D: 24-08-17 09:45:19 server:     API command=BIND
D: 24-08-17 09:45:19    140:server                           : start:
D: 24-08-17 09:45:19    140:server                           :     HELLO
D: 24-08-17 09:45:19    140:server                           :         $ get first tuple
D: 24-08-17 09:45:19    140:server                           :         > have tuple
D: 24-08-17 09:45:19    140:server                           : have tuple:
D: 24-08-17 09:45:19    140:server                           :     finished
D: 24-08-17 09:45:19    140:server                           :         > connected
D: 24-08-17 09:45:19    140:server                           : connected:
D: 24-08-17 09:45:19    140:server                           :     PING
D: 24-08-17 09:45:19    140:server                           :         $ send PONG
D: 24-08-17 09:45:19    140:server                           :         > connected
D: 24-08-17 09:45:19 server:     API command=$TERM
D: 24-08-17 09:45:19 base:     API command=SET
D: 24-08-17 09:45:19 base:     API command=BIND
D: 24-08-17 09:45:19 alpha:     API command=CONNECT
D: 24-08-17 09:45:19 beta:     API command=CONNECT
D: 24-08-17 09:45:19    172:base                             : start:
D: 24-08-17 09:45:19    172:base                             :     HELLO
D: 24-08-17 09:45:19    172:base                             :         $ get first tuple
D: 24-08-17 09:45:19    172:base                             :         > have tuple
D: 24-08-17 09:45:19    172:base                             : have tuple:
D: 24-08-17 09:45:19    172:base                             :     finished
D: 24-08-17 09:45:19 beta:     API command=PUBLISH
D: 24-08-17 09:45:19 alpha:     API command=PUBLISH
D: 24-08-17 09:45:19    172:base                             :         > connected
D: 24-08-17 09:45:19 beta:     API command=PUBLISH
D: 24-08-17 09:45:19 alpha:     API command=PUBLISH
D: 24-08-17 09:45:19    172:base                             : connected:
D: 24-08-17 09:45:19    172:base                             :     PUBLISH
D: 24-08-17 09:45:19    172:base                             :         $ store tuple if new
D: 24-08-17 09:45:19    172:base                             : connected:
D: 24-08-17 09:45:19    172:base                             :     forward
D: 24-08-17 09:45:19    172:base                             :         $ get tuple to forward
D: 24-08-17 09:45:19    172:base                             :         $ send PUBLISH
D: 24-08-17 09:45:19    172:base                             :         > connected
D: 24-08-17 09:45:19    172:base                             :         > connected
D: 24-08-17 09:45:19    173:base                             : start:
D: 24-08-17 09:45:19    173:base                             :     HELLO
D: 24-08-17 09:45:19    173:base                             :         $ get first tuple
D: 24-08-17 09:45:19    173:base                             :         > have tuple
D: 24-08-17 09:45:19    173:base                             : have tuple:
D: 24-08-17 09:45:19    173:base                             :     ok
D: 24-08-17 09:45:19    173:base                             :         $ send PUBLISH
D: 24-08-17 09:45:19    173:base                             :         $ get next tuple
D: 24-08-17 09:45:19    173:base                             :         > have tuple
D: 24-08-17 09:45:19    173:base                             : have tuple:
D: 24-08-17 09:45:19    173:base                             :     finished
D: 24-08-17 09:45:19    173:base                             :         > connected
D: 24-08-17 09:45:19    172:base                             : connected:
D: 24-08-17 09:45:19    172:base                             :     PUBLISH
D: 24-08-17 09:45:19    172:base                             :         $ store tuple if new
D: 24-08-17 09:45:19    173:base                             : connected:
D: 24-08-17 09:45:19    173:base                             :     forward
D: 24-08-17 09:45:19    173:base                             :         $ get tuple to forward
D: 24-08-17 09:45:19    173:base                             :         $ send PUBLISH
D: 24-08-17 09:45:19    173:base                             :         > connected
D: 24-08-17 09:45:19    172:base                             : connected:
D: 24-08-17 09:45:19    172:base                             :     forward
D: 24-08-17 09:45:19    172:base                             :         $ get tuple to forward
D: 24-08-17 09:45:19    172:base                             :         $ send PUBLISH
D: 24-08-17 09:45:19    172:base                             :         > connected
D: 24-08-17 09:45:19    172:base                             :         > connected
D: 24-08-17 09:45:19    173:base                             : connected:
D: 24-08-17 09:45:19    173:base                             :     PUBLISH
D: 24-08-17 09:45:19    173:base                             :         $ store tuple if new
D: 24-08-17 09:45:19    173:base                             : connected:
D: 24-08-17 09:45:19    173:base                             :     forward
D: 24-08-17 09:45:19    173:base                             :         $ get tuple to forward
D: 24-08-17 09:45:19    173:base                             :         $ send PUBLISH
D: 24-08-17 09:45:19    173:base                             :         > connected
D: 24-08-17 09:45:19    172:base                             : connected:
D: 24-08-17 09:45:19    172:base                             :     forward
D: 24-08-17 09:45:19    172:base                             :         $ get tuple to forward
D: 24-08-17 09:45:19    172:base                             :         $ send PUBLISH
D: 24-08-17 09:45:19    172:base                             :         > connected
D: 24-08-17 09:45:19    173:base                             :         > connected
D: 24-08-17 09:45:19    172:base                             : connected:
D: 24-08-17 09:45:19    172:base                             :     PUBLISH
D: 24-08-17 09:45:19    172:base                             :         $ store tuple if new
D: 24-08-17 09:45:19    172:base                             :         > connected
D: 24-08-17 09:45:19    173:base                             : connected:
D: 24-08-17 09:45:19    173:base                             :     PUBLISH
D: 24-08-17 09:45:19    173:base                             :         $ store tuple if new
D: 24-08-17 09:45:19    173:base                             : connected:
D: 24-08-17 09:45:19    173:base                             :     forward
D: 24-08-17 09:45:19    173:base                             :         $ get tuple to forward
D: 24-08-17 09:45:19    173:base                             :         $ send PUBLISH
D: 24-08-17 09:45:19    173:base                             :         > connected
D: 24-08-17 09:45:19    172:base                             : connected:
D: 24-08-17 09:45:19    172:base                             :     forward
D: 24-08-17 09:45:19    172:base                             :         $ get tuple to forward
D: 24-08-17 09:45:19    172:base                             :         $ send PUBLISH
D: 24-08-17 09:45:19    172:base                             :         > connected
D: 24-08-17 09:45:19 alpha:     API command=STATUS

DAssertion failed: streq (command, "DELIVER"), file ~\czmq\src\zgossip.c, line 708
sphaero commented 1 week ago

We've seen random crashes before on Windows but we're missing more windows devs who can trace this and provide a fix.