From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 5EB973951C78; Thu, 14 May 2020 08:52:43 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5EB973951C78 From: "dingxiangfei2009 at protonmail dot ch" To: glibc-bugs@sourceware.org Subject: [Bug nptl/25847] pthread_cond_signal failed to wake up pthread_cond_wait due to a bug in undoing stealing Date: Thu, 14 May 2020 08:52:43 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: glibc X-Bugzilla-Component: nptl X-Bugzilla-Version: 2.27 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: dingxiangfei2009 at protonmail dot ch X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: unassigned at sourceware dot org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: cc Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: glibc-bugs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Glibc-bugs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 May 2020 08:52:43 -0000 https://sourceware.org/bugzilla/show_bug.cgi?id=3D25847 Ding Xiang Fei changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dingxiangfei2009@protonmail | |.ch --- Comment #5 from Ding Xiang Fei = --- This bug can be reproduced on OCaml applications running on Debian 10 (bust= er), where glibc version is 2.28-10, though I think more recent versions of glibc will be affected as well since the current construction has not been revised since 2016. It has the similar symptom with regards to the master lock of OCaml runtime system. With OCaml version 4.09, the bug is triggered producing the followi= ng state of the conditional variable. { __data =3D { { __wseq =3D 105780454,=20 __wseq32 =3D { __low =3D 105780454,=20 __high =3D 0 } },=20 { __g1_start =3D 105780438,=20 __g1_start32 =3D { __low =3D 105780438,=20 __high =3D 0 } },=20 __g_refs =3D {12, 0},=20 __g_size =3D {0, 0},=20 __g1_orig_size =3D 8,=20 __wrefs =3D 48,=20 __g_signals =3D {0, 2} },=20 __size =3D "\346\024N\006\000\000\000\000\326\024N\006\000\000\000\000\f", '\000' , "\b\000\000\000\060\000\000\000\000\000\000\000\002\000\000",=20 __align =3D 105780454 } One signal is pending for G1, while G1 is "empty". The repro code from Qin also locks up on a Skylake processor, restricted to= run on 4 cores, 100 threads. --=20 You are receiving this mail because: You are on the CC list for the bug.=