[Bug ada/37956] New: ACATS ac3207a sometimes hangs in system.tasking.stages.vulnerable_complete_master
laurent at guerby dot net
gcc-bugzilla@gcc.gnu.org
Wed Oct 29 22:12:00 GMT 2008
On my continuous tester I noticed that with trunk ac3207a sometimes hangs.
Using a slightly modified testcase and a shell loop I managed to reproduce it
after one hour of looping (140k loop exec), please find below the gdb
backtrace.
$ gcc -v
gcc version 4.4.0 20081029 (experimental) [trunk revision 141434] (GCC)
$ gnatmake -O2 ac3207a
$ while true; do date;./ac3207a; done >& log.txt
$ gdb -p PID
(gdb) info thread
1 Thread 46912500751824 (LWP 25669) 0x00002aaaaabcbb3a in
pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
(gdb) bt
#0 0x00002aaaaabcbb3a in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib/libpthread.so.0
#1 0x000000000040a953 in system.tasking.stages.vulnerable_complete_master ()
at s-tassta.adb:1620
#2 0x00000000004031f0 in ac3207a___clean.3268 ()
#3 0x000000000040356c in _ada_ac3207a ()
$ cat ac3207a.adb
-- BEGIN SOURCE
with Ada.Text_Io;use Ada.Text_Io;
PROCEDURE AC3207A IS
GENERIC
TYPE PRIV IS LIMITED PRIVATE;
PACKAGE GEN_P IS
TASK T1 IS
ENTRY E;
END T1;
END GEN_P;
TASK TYPE TASK_T IS
END TASK_T;
TYPE REC IS
RECORD
OBJ : TASK_T;
END RECORD;
PACKAGE BODY GEN_P IS
TASK BODY T1 IS
BEGIN
DECLARE
OBJ : PRIV;
BEGIN
SELECT
ACCEPT E;
OR
TERMINATE;
END SELECT;
END;
END T1;
END GEN_P;
TASK BODY TASK_T IS
BEGIN
NULL;
END;
PACKAGE P IS NEW GEN_P(TASK_T);
PACKAGE NEW_P IS NEW GEN_P(REC);
BEGIN
P.T1.E;
NEW_P.T1.E;
Put_Line("ok");
END AC3207A;
-- END SOURCE
--
Summary: ACATS ac3207a sometimes hangs in
system.tasking.stages.vulnerable_complete_master
Product: gcc
Version: 4.4.0
Status: UNCONFIRMED
Keywords: wrong-code
Severity: normal
Priority: P3
Component: ada
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: laurent at guerby dot net
GCC host triplet: x86_64-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37956
More information about the Gcc-bugs
mailing list