Support #459

In SystemV mode test060_ndxdfork might cause locked child processes

Added by Madars over 4 years ago. Updated over 4 years ago.

Status:ClosedStart date:09/25/2019
Priority:Normal (Code 4)Due date:
Assignee:-% Done:

100%

Category:-
Target version:-

Description

One of the such child process stack is:

==20532==ERROR: AddressSanitizer: SEGV on unknown address 0x03e900004a6b (pc 0x7f9f922416ac bp 0x7fff2fc3f9c0 sp 0x7fff2fc3ef88 T0)
==20532==The signal is caused by a READ memory access.
    #0 0x7f9f922416ab  (/lib/x86_64-linux-gnu/libc.so.6+0x1306ab)
    #1 0x7f9f921e5375  (/lib/x86_64-linux-gnu/libc.so.6+0xd4375)
    #2 0x7f9f934bdc49 in __interceptor_localtime_r (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x8ec49)
    #3 0x7f9f92b06c53 in ndrx_get_dt_local /home/user1/endurox/libnstd/nstdutil.c:258
    #4 0x7f9f92b03deb in __ndrx_debug__ /home/user1/endurox/libnstd/ndebug.c:1085
    #5 0x7f9f92b24022 in ndrx_svq_close /home/user1/endurox/libnstd/sys_svq.c:81
    #6 0x55f27ef54067 in start_process /home/user1/endurox/ndrxd/pmodel.c:947
    #7 0x55f27ef686b2 in do_respawn_check /home/user1/endurox/ndrxd/respawn.c:109
    #8 0x55f27ef67ea7 in do_sanity_check /home/user1/endurox/ndrxd/sanity.c:222
    #9 0x55f27ef5a3af in command_wait_and_run /home/user1/endurox/ndrxd/cmd_processor.c:340
    #10 0x55f27ef55677 in start_process /home/user1/endurox/ndrxd/pmodel.c:1119
    #11 0x55f27ef57214 in app_startup /home/user1/endurox/ndrxd/pmodel.c:1346
    #12 0x55f27ef5d399 in cmd_start /home/user1/endurox/ndrxd/cmd_startstop.c:119
    #13 0x55f27ef5aea2 in command_wait_and_run /home/user1/endurox/ndrxd/cmd_processor.c:536
    #14 0x55f27ef3f9b9 in main_loop /home/user1/endurox/ndrxd/ndrxd.c:142
    #15 0x55f27ef418b2 in main /home/user1/endurox/ndrxd/ndrxd.c:507
    #16 0x7f9f92132b96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)
    #17 0x55f27ef3f359 in _start (/home/user1/endurox/dist/bin/ndrxd+0x19359)

Thus there could be a chance that ndrxd sig-child signalling thread is doing some log printing while main thread thread is forking, thus some locks might be left uncomlete in child process. Thus it stucks on such locks.

needs to update ndrxd to use mutxed lock on sig-child sync before fork.

logz.tar.gz (859 KB) Madars, 09/25/2019 06:14 PM

History

#1 Updated by Madars over 4 years ago

#2 Updated by Madars over 4 years ago

  • Status changed from New to Resolved
  • % Done changed from 0 to 100

#3 Updated by Madars over 4 years ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF