Bug 1845463

Summary: glibc: Support calling ctime, localtime etc. after multi-threaded fork
Product: Red Hat Enterprise Linux 8 Reporter: Suma G <suma.gangarapu>
Component: glibcAssignee: glibc team <glibc-bugzilla>
Status: CLOSED UPSTREAM QA Contact: qe-baseos-tools-bugs
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 8.2CC: ashankar, codonell, dj, fweimer, mnewsome, pfrankli, sipoyare
Target Milestone: rc   
Target Release: 8.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-06-09 11:42:46 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Suma G 2020-06-09 10:00:00 UTC
Description of problem: Child process is hung at  __lll_lock_wait_private ()

(gdb) bt
#0  0x00007f88c393258c in __lll_lock_wait_private () from /lib64/libc.so.6
#1  0x00007f88c38e17f6 in __tz_convert () from /lib64/libc.so.6
#2  0x00007f88c38dfc8d in ctime () from /lib64/libc.so.6
#3  0x00007f88c07757bc in CSLDebug_FormatCurrentTime () from /opt/dell/srvadmin/lib64/libstorelib.so
#4  0x00007f88c0775c32 in CSLDebug_Write () from /opt/dell/srvadmin/lib64/libstorelib.so
#5  0x00007f88c0775ffd in DebugLog () from /opt/dell/srvadmin/lib64/libstorelib.so
#6  0x00007f88c0762043 in child () from /opt/dell/srvadmin/lib64/libstorelib.so
#7  0x00007f88c0765e0b in InitiateChildEventProcess () from /opt/dell/srvadmin/lib64/libstorelib.so
#8  0x00007f88c0762bfe in RegisterMonitorSignal () from /opt/dell/srvadmin/lib64/libstorelib.so
#9  0x00007f88c0764f02 in SetupAenHandler () from /opt/dell/srvadmin/lib64/libstorelib.so
#10 0x00007f88c0776d67 in CAenRegistration_InitAEN () from /opt/dell/srvadmin/lib64/libstorelib.so
#11 0x00007f88c0776f14 in CAenRegistration_Register () from /opt/dell/srvadmin/lib64/libstorelib.so
#12 0x00007f88c0768e19 in RegisterAEN () from /opt/dell/srvadmin/lib64/libstorelib.so
#13 0x00007f88c0768e54 in RegisterForAEN () from /opt/dell/srvadmin/lib64/libstorelib.so
#14 0x00007f88c0773256 in ProcessLibCommand () from /opt/dell/srvadmin/lib64/libstorelib.so
#15 0x00007f88c09b0ba2 in SASStartAEN () at /root/OpenManage/ARCH_FOR_BUILD/64/MACHINE/RHEL8/OM950/OMSS/omss_src/omss_Llayers/vil/sasvil/sasaen.cpp:507
#16 0x00007f88c09b1331 in AenStart (mem_ptr=0x7f88a4056e50, pTimeValue=0x7f88a4056e00)
    at /root/OpenManage/ARCH_FOR_BUILD/64/MACHINE/RHEL8/OM950/OMSS/omss_src/omss_Llayers/vil/sasvil/sasaen.cpp:7304
#17 0x00007f88c09a914f in BtmWorkItemProcessingTask (pSMThreadData=<optimized out>)
    at /root/OpenManage/ARCH_FOR_BUILD/64/MACHINE/RHEL8/OM950/OMSS/omss_src/omss_Llayers/vil/sasvil/sasaen.cpp:1091
#18 0x00007f88c41792de in start_thread () from /lib64/libpthread.so.0
#19 0x00007f88c3924e83 in clone () from /lib64/libc.so.6


Version-Release number of selected component (if applicable):
Red Hat Enterprise Linux 8.2-8.el8

How reproducible: Not known

Expected results: should not hang under ctime()

Comment 1 Florian Weimer 2020-06-09 11:42:46 UTC
ctime is not an async-signal-safe function, so POSIX does not allow calling it after a multi-threaded process has forked.

I filed an upstream enhancement request: https://sourceware.org/bugzilla/show_bug.cgi?id=26097

We will evaluate a potential backport if this issue has been addressed in upstream glibc.