public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug ada/64484] New: TSAN reports lock-order-inversion in c940006, c940011 and c940012
@ 2015-01-03 20:47 bernd.edlinger at hotmail dot de
2015-01-04 10:10 ` [Bug ada/64484] " ebotcazou at gcc dot gnu.org
0 siblings, 1 reply; 2+ messages in thread
From: bernd.edlinger at hotmail dot de @ 2015-01-03 20:47 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64484
Bug ID: 64484
Summary: TSAN reports lock-order-inversion in c940006, c940011
and c940012
Product: gcc
Version: 5.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: ada
Assignee: unassigned at gcc dot gnu.org
Reporter: bernd.edlinger at hotmail dot de
Hi,
with my TSAN Ada patch I see a lock-order-inversion in three test cases:
ed@w-ed:~/gnu/gcc-test$ TSAN_OPTIONS=second_deadlock_stack=1 ./c940006
,.,. C940006 ACATS 2.5 15-01-03 21:44:18
---- C940006 Check external calls of protected functions and procedures.
==================
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=21031)
Cycle in lock order graph: M14 (0x7fff21661758) => M13 (0x7fff216616e0) =>
M14
Mutex M13 acquired here while holding mutex M14 in main thread:
#0 pthread_mutex_lock
../../../../gcc-trunk/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:2988
(libtsan.so.0+0x000000035456)
#1 system__task_primitives__operations__write_lock
/home/ed/gnu/gcc-build/gcc/ada/rts/s-taprop.adb:363 (c940006+0x00000040ba07)
#2 c940006__B_1__ramp_32__set_local_overloadN.5152 <null>
(c940006+0x00000040a5ff)
#3 c940006__B_1__ramp_32__set_local_overloadP.5156 <null>
(c940006+0x00000040a6e8)
#4 _ada_c940006 /home/ed/gnu/gcc-test/c940006.adb:209
(c940006+0x0000004098b6)
#5 main /home/ed/gnu/gcc-test/b~c940006.adb:248 (c940006+0x000000403fac)
Mutex M14 previously acquired by the same thread here:
#0 pthread_mutex_lock
../../../../gcc-trunk/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:2988
(libtsan.so.0+0x000000035456)
#1 system__task_primitives__operations__write_lock
/home/ed/gnu/gcc-build/gcc/ada/rts/s-taprop.adb:363 (c940006+0x00000040ba07)
#2 _ada_c940006 /home/ed/gnu/gcc-test/c940006.adb:209
(c940006+0x0000004098b6)
#3 main /home/ed/gnu/gcc-test/b~c940006.adb:248 (c940006+0x000000403fac)
Mutex M14 acquired here while holding mutex M13 in main thread:
#0 pthread_mutex_lock
../../../../gcc-trunk/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:2988
(libtsan.so.0+0x000000035456)
#1 system__task_primitives__operations__read_lock
/home/ed/gnu/gcc-build/gcc/ada/rts/s-taprop.adb:407 (c940006+0x00000040ba67)
#2 c940006__B_1__ramp_31__downstream_rampsN.5133 <null>
(c940006+0x00000040a20d)
#3 c940006__B_1__ramp_31__downstream_rampsP.5136 <null>
(c940006+0x00000040a2e9)
#4 _ada_c940006 /home/ed/gnu/gcc-test/c940006.adb:211
(c940006+0x0000004098cf)
#5 main /home/ed/gnu/gcc-test/b~c940006.adb:248 (c940006+0x000000403fac)
Mutex M13 previously acquired by the same thread here:
#0 pthread_mutex_lock
../../../../gcc-trunk/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:2988
(libtsan.so.0+0x000000035456)
#1 system__task_primitives__operations__write_lock
/home/ed/gnu/gcc-build/gcc/ada/rts/s-taprop.adb:363 (c940006+0x00000040ba07)
#2 _ada_c940006 /home/ed/gnu/gcc-test/c940006.adb:211
(c940006+0x0000004098cf)
#3 main /home/ed/gnu/gcc-test/b~c940006.adb:248 (c940006+0x000000403fac)
SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock)
/home/ed/gnu/gcc-build/gcc/ada/rts/s-taprop.adb:363
system__task_primitives__operations__write_lock
==================
==== C940006 PASSED ============================.
ThreadSanitizer: reported 1 warnings
ed@w-ed:~/gnu/gcc-test$
ed@w-ed:~/gnu/gcc-test$ TSAN_OPTIONS=second_deadlock_stack=1 ./c940011
,.,. C940011 ACATS 2.5 15-01-03 21:45:26
---- C940011 Protected Objects created by allocators: external calls via
access types.
==================
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=7832)
Cycle in lock order graph: M15 (0x7d200000bec0) => M14 (0x7d200000bf40) =>
M15
Mutex M14 acquired here while holding mutex M15 in main thread:
#0 pthread_mutex_lock
../../../../gcc-trunk/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:2988
(libtsan.so.0+0x000000035456)
#1 system__task_primitives__operations__write_lock
/home/ed/gnu/gcc-build/gcc/ada/rts/s-taprop.adb:363 (c940011+0x00000040b4d7)
#2 c940011__ramp__set_local_overloadN.5119 <null> (c940011+0x000000409c55)
#3 c940011__ramp__set_local_overloadP.5123 <null> (c940011+0x000000409d3f)
#4 _ada_c940011 /home/ed/gnu/gcc-test/c940011.adb:165
(c940011+0x00000040998d)
#5 main /home/ed/gnu/gcc-test/b~c940011.adb:248 (c940011+0x000000403fac)
Mutex M15 previously acquired by the same thread here:
#0 pthread_mutex_lock
../../../../gcc-trunk/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:2988
(libtsan.so.0+0x000000035456)
#1 system__task_primitives__operations__write_lock
/home/ed/gnu/gcc-build/gcc/ada/rts/s-taprop.adb:363 (c940011+0x00000040b4d7)
#2 _ada_c940011 /home/ed/gnu/gcc-test/c940011.adb:165
(c940011+0x00000040998d)
#3 main /home/ed/gnu/gcc-test/b~c940011.adb:248 (c940011+0x000000403fac)
Mutex M15 acquired here while holding mutex M14 in main thread:
#0 pthread_mutex_lock
../../../../gcc-trunk/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:2988
(libtsan.so.0+0x000000035456)
#1 system__task_primitives__operations__read_lock
/home/ed/gnu/gcc-build/gcc/ada/rts/s-taprop.adb:407 (c940011+0x00000040b537)
#2 c940011__ramp__next_ramp_overloadN.5138 <null> (c940011+0x00000040a0de)
#3 c940011__ramp__next_ramp_overloadP.5141 <null> (c940011+0x00000040a1be)
#4 _ada_c940011 /home/ed/gnu/gcc-test/c940011.adb:169
(c940011+0x0000004099dd)
#5 main /home/ed/gnu/gcc-test/b~c940011.adb:248 (c940011+0x000000403fac)
Mutex M14 previously acquired by the same thread here:
#0 pthread_mutex_lock
../../../../gcc-trunk/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:2988
(libtsan.so.0+0x000000035456)
#1 system__task_primitives__operations__read_lock
/home/ed/gnu/gcc-build/gcc/ada/rts/s-taprop.adb:407 (c940011+0x00000040b537)
#2 _ada_c940011 /home/ed/gnu/gcc-test/c940011.adb:169
(c940011+0x0000004099dd)
#3 main /home/ed/gnu/gcc-test/b~c940011.adb:248 (c940011+0x000000403fac)
SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock)
/home/ed/gnu/gcc-build/gcc/ada/rts/s-taprop.adb:363
system__task_primitives__operations__write_lock
==================
==== C940011 PASSED ============================.
ThreadSanitizer: reported 1 warnings
ed@w-ed:~/gnu/gcc-test$
ed@w-ed:~/gnu/gcc-test$ TSAN_OPTIONS=second_deadlock_stack=1 ./c940012
,.,. C940012 ACATS 2.5 15-01-03 21:46:44
---- C940012 Check that a protected object can have discriminants.
==================
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=26419)
Cycle in lock order graph: M15 (0x7d200000bec0) => M14 (0x7d200000bf40) =>
M15
Mutex M14 acquired here while holding mutex M15 in main thread:
#0 pthread_mutex_lock
../../../../gcc-trunk/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:2988
(libtsan.so.0+0x000000035456)
#1 system__task_primitives__operations__write_lock
/home/ed/gnu/gcc-build/gcc/ada/rts/s-taprop.adb:363 (c940012+0x00000040b7a7)
#2 c940012__ramp__set_local_overloadN.5206 <null> (c940012+0x000000409f14)
#3 c940012__ramp__set_local_overloadP.5210 <null> (c940012+0x000000409ffe)
#4 _ada_c940012 /home/ed/gnu/gcc-test/c940012.adb:163
(c940012+0x000000409baf)
#5 main /home/ed/gnu/gcc-test/b~c940012.adb:248 (c940012+0x000000403fac)
Mutex M15 previously acquired by the same thread here:
#0 pthread_mutex_lock
../../../../gcc-trunk/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:2988
(libtsan.so.0+0x000000035456)
#1 system__task_primitives__operations__write_lock
/home/ed/gnu/gcc-build/gcc/ada/rts/s-taprop.adb:363 (c940012+0x00000040b7a7)
#2 _ada_c940012 /home/ed/gnu/gcc-test/c940012.adb:163
(c940012+0x000000409baf)
#3 main /home/ed/gnu/gcc-test/b~c940012.adb:248 (c940012+0x000000403fac)
Mutex M15 acquired here while holding mutex M14 in main thread:
#0 pthread_mutex_lock
../../../../gcc-trunk/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:2988
(libtsan.so.0+0x000000035456)
#1 system__task_primitives__operations__read_lock
/home/ed/gnu/gcc-build/gcc/ada/rts/s-taprop.adb:407 (c940012+0x00000040b807)
#2 c940012__ramp__next_ramp_overloadN.5199 <null> (c940012+0x00000040a3a4)
#3 c940012__ramp__next_ramp_overloadP.5202 <null> (c940012+0x00000040a484)
#4 _ada_c940012 /home/ed/gnu/gcc-test/c940012.adb:167
(c940012+0x000000409c0e)
#5 main /home/ed/gnu/gcc-test/b~c940012.adb:248 (c940012+0x000000403fac)
Mutex M14 previously acquired by the same thread here:
#0 pthread_mutex_lock
../../../../gcc-trunk/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:2988
(libtsan.so.0+0x000000035456)
#1 system__task_primitives__operations__read_lock
/home/ed/gnu/gcc-build/gcc/ada/rts/s-taprop.adb:407 (c940012+0x00000040b807)
#2 _ada_c940012 /home/ed/gnu/gcc-test/c940012.adb:167
(c940012+0x000000409c0e)
#3 main /home/ed/gnu/gcc-test/b~c940012.adb:248 (c940012+0x000000403fac)
SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock)
/home/ed/gnu/gcc-build/gcc/ada/rts/s-taprop.adb:363
system__task_primitives__operations__write_lock
==================
==== C940012 PASSED ============================.
ThreadSanitizer: reported 1 warnings
ed@w-ed:~/gnu/gcc-test$
^ permalink raw reply [flat|nested] 2+ messages in thread
* [Bug ada/64484] TSAN reports lock-order-inversion in c940006, c940011 and c940012
2015-01-03 20:47 [Bug ada/64484] New: TSAN reports lock-order-inversion in c940006, c940011 and c940012 bernd.edlinger at hotmail dot de
@ 2015-01-04 10:10 ` ebotcazou at gcc dot gnu.org
0 siblings, 0 replies; 2+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2015-01-04 10:10 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64484
Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2015-01-04
CC| |ebotcazou at gcc dot gnu.org
Ever confirmed|0 |1
--- Comment #1 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
Interesting, this would need to be investigated I guess.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-01-04 10:10 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-03 20:47 [Bug ada/64484] New: TSAN reports lock-order-inversion in c940006, c940011 and c940012 bernd.edlinger at hotmail dot de
2015-01-04 10:10 ` [Bug ada/64484] " ebotcazou at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).