public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libgomp/100352] New: libgomp.fortran/async_io_1.f90 -O0 execution test
@ 2021-04-30 11:08 vries at gcc dot gnu.org
2021-04-30 11:10 ` [Bug libgomp/100352] " vries at gcc dot gnu.org
` (10 more replies)
0 siblings, 11 replies; 12+ messages in thread
From: vries at gcc dot gnu.org @ 2021-04-30 11:08 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100352
Bug ID: 100352
Summary: libgomp.fortran/async_io_1.f90 -O0 execution test
Product: gcc
Version: 11.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libgomp
Assignee: unassigned at gcc dot gnu.org
Reporter: vries at gcc dot gnu.org
CC: jakub at gcc dot gnu.org
Target Milestone: ---
On openSUSE Leap 15.2, I see:
...
FAIL: libgomp.fortran/async_io_1.f90 -O0 execution test
FAIL: libgomp.fortran/async_io_1.f90 -O1 execution test
FAIL: libgomp.fortran/async_io_1.f90 -O2 execution test
FAIL: libgomp.fortran/async_io_1.f90 -O3 -fomit-frame-pointer -funroll-loops
-fpeel-loops -ftracer -finline-functions execution test
FAIL: libgomp.fortran/async_io_1.f90 -O3 -g execution test
FAIL: libgomp.fortran/async_io_1.f90 -Os execution test
FAIL: libgomp.fortran/async_io_4.f90 -O0 execution test
FAIL: libgomp.fortran/async_io_4.f90 -O1 execution test
FAIL: libgomp.fortran/async_io_4.f90 -O2 execution test
FAIL: libgomp.fortran/async_io_4.f90 -O3 -fomit-frame-pointer -funroll-loops
-fpeel-loops -ftracer -finline-functions execution test
FAIL: libgomp.fortran/async_io_4.f90 -O3 -g execution test
FAIL: libgomp.fortran/async_io_4.f90 -Os execution test
FAIL: libgomp.fortran/async_io_9.f90 -O0 execution test
FAIL: libgomp.fortran/async_io_9.f90 -O1 execution test
FAIL: libgomp.fortran/async_io_9.f90 -O2 execution test
FAIL: libgomp.fortran/async_io_9.f90 -O3 -fomit-frame-pointer -funroll-loops
-fpeel-loops -ftracer -finline-functions execution test
FAIL: libgomp.fortran/async_io_9.f90 -O3 -g execution test
FAIL: libgomp.fortran/async_io_9.f90 -Os execution test
...
First FAIL in more detail:
...
Execution timeout is: 300
spawn [open ...]^M
Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
Backtrace for this error:
Backtrace for this error:
#0 0x7f8fb4ead49f in ???
#0 0x7f8fb4ead49f in ???
at
/usr/src/debug/glibc-2.26-lp152.26.6.1.x86_64/signal/../sysdeps/unix/sysv/linux/x8\
6_64/sigaction.c:0
at
/usr/src/debug/glibc-2.26-lp152.26.6.1.x86_64/signal/../sysdeps/unix/sysv/linux/x8\
6_64/sigaction.c:0
#1 0x7f8fb5243930 in _xend
at ../sysdeps/unix/sysv/linux/x86/elision-unlock.c:33
#2 0x7f8fb5243930 in __lll_unlock_elision
at ../sysdeps/unix/sysv/linux/x86/elision-unlock.c:29
#1 0x7f8fb5243930 in _xend
at ../sysdeps/unix/sysv/linux/x86/elision-unlock.c:33
#2 0x7f8fb5243930 in __lll_unlock_elision
at ../sysdeps/unix/sysv/linux/x86/elision-unlock.c:29
#3 0x7f8fb5ef1b02 in __gthread_mutex_unlock
at ../libgcc/gthr-default.h:779
#3 0x7f8fb5ef1b02 in __gthread_mutex_unlock
at ../libgcc/gthr-default.h:779
#4 0x401331 in ???
#5 0x401c3f in ???
#6 0x7f8fb4e98349 in __libc_start_main
at ../csu/libc-start.c:308
#7 0x400e79 in ???
at ../sysdeps/x86_64/start.S:120
#8 0xffffffffffffffff in ???
FAIL: libgomp.fortran/async_io_1.f90 -O0 execution test
...
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug libgomp/100352] libgomp.fortran/async_io_1.f90 -O0 execution test
2021-04-30 11:08 [Bug libgomp/100352] New: libgomp.fortran/async_io_1.f90 -O0 execution test vries at gcc dot gnu.org
@ 2021-04-30 11:10 ` vries at gcc dot gnu.org
2021-04-30 11:26 ` vries at gcc dot gnu.org
` (9 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: vries at gcc dot gnu.org @ 2021-04-30 11:10 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100352
--- Comment #1 from Tom de Vries <vries at gcc dot gnu.org> ---
Build at commit b9bc4467cc7 "tree-optimization/96513 - add testcase for fixed
bug".
Gcc configured like this:
...
$ ./build/gcc/xgcc -v
Using built-in specs.
COLLECT_GCC=./build/gcc/xgcc
Target: x86_64-pc-linux-gnu
Configured with: /home/vries/gcc_versions/devel/src/configure
--disable-bootstrap --enable-languages=c,c++,fortran --disable-multilib
--prefix=/home/vries/gcc_versions/devel/install CFLAGS='-O0 -g -Wall'
CXXFLAGS='-O0 -g -Wall'
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.0.0 20210430 (experimental) (GCC)
...
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug libgomp/100352] libgomp.fortran/async_io_1.f90 -O0 execution test
2021-04-30 11:08 [Bug libgomp/100352] New: libgomp.fortran/async_io_1.f90 -O0 execution test vries at gcc dot gnu.org
2021-04-30 11:10 ` [Bug libgomp/100352] " vries at gcc dot gnu.org
@ 2021-04-30 11:26 ` vries at gcc dot gnu.org
2021-04-30 11:34 ` vries at gcc dot gnu.org
` (8 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: vries at gcc dot gnu.org @ 2021-04-30 11:26 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100352
--- Comment #2 from Tom de Vries <vries at gcc dot gnu.org> ---
More complete backtrace using reproduction on command line:
...
Thread 1 "async_io_1.exe" received signal SIGSEGV, Segmentation fault.
__lll_unlock_elision (lock=0x6069d0, private=0)
at ../sysdeps/unix/sysv/linux/x86/elision-unlock.c:29
29 _xend();
(gdb) bt
#0 __lll_unlock_elision (lock=0x6069d0, private=0)
at ../sysdeps/unix/sysv/linux/x86/elision-unlock.c:29
#1 0x00007ffff7b64b03 in __gthread_mutex_unlock (__mutex=0x6069d0)
at ../libgcc/gthr-default.h:779
#2 0x00007ffff7b65e5c in _gfortrani_unlock_unit (u=0x6068f0)
at /home/vries/gcc_versions/devel/src/libgfortran/io/unit.c:772
#3 0x00007ffff7b6445e in _gfortran_st_write_done (dtp=0x7fffffffd5e0)
at /home/vries/gcc_versions/devel/src/libgfortran/io/transfer.c:4496
#4 0x000000000040116a in MAIN__ ()
#5 0x0000000000401af0 in main ()
...
OK, se we're hitting this case: unlocking a free lock:
...
(gdb) l
24 __lll_unlock_elision(int *lock, int private)
25 {
26 /* When the lock was free we're in a transaction.
27 When you crash here you unlocked a free lock. */
28 if (*lock == 0)
29 _xend();
30 else
31 lll_unlock ((*lock), private);
32 return 0;
33 }
...
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug libgomp/100352] libgomp.fortran/async_io_1.f90 -O0 execution test
2021-04-30 11:08 [Bug libgomp/100352] New: libgomp.fortran/async_io_1.f90 -O0 execution test vries at gcc dot gnu.org
2021-04-30 11:10 ` [Bug libgomp/100352] " vries at gcc dot gnu.org
2021-04-30 11:26 ` vries at gcc dot gnu.org
@ 2021-04-30 11:34 ` vries at gcc dot gnu.org
2021-04-30 11:46 ` vries at gcc dot gnu.org
` (7 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: vries at gcc dot gnu.org @ 2021-04-30 11:34 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100352
--- Comment #3 from Tom de Vries <vries at gcc dot gnu.org> ---
Minimal example:
...
program main
implicit none
open (10, file='a.dat', asynchronous="yes")
write (10,*,asynchronous="yes") 4, 3
end program
...
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug libgomp/100352] libgomp.fortran/async_io_1.f90 -O0 execution test
2021-04-30 11:08 [Bug libgomp/100352] New: libgomp.fortran/async_io_1.f90 -O0 execution test vries at gcc dot gnu.org
` (2 preceding siblings ...)
2021-04-30 11:34 ` vries at gcc dot gnu.org
@ 2021-04-30 11:46 ` vries at gcc dot gnu.org
2021-04-30 11:49 ` vries at gcc dot gnu.org
` (6 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: vries at gcc dot gnu.org @ 2021-04-30 11:46 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100352
--- Comment #4 from Tom de Vries <vries at gcc dot gnu.org> ---
Going through the lock lifetime using backtraces:
...
(gdb) watch ((pthread_mutex_t *) 0x6059d0)->__data.__lock
Hardware watchpoint 2: ((pthread_mutex_t *) 0x6059d0)->__data.__lock
...
I. Locked from _gfortran_st_open:
...
(gdb) c
Continuing.
Hardware watchpoint 2: ((pthread_mutex_t *) 0x6059d0)->__data.__lock
Old value = 0
New value = 1
0x00007ffff6eb6896 in __lll_lock_elision (futex=0x6059d0,
adapt_count=<optimized out>,
private=0) at ../sysdeps/unix/sysv/linux/x86/elision-lock.c:106
106 return LLL_LOCK ((*futex), private);
(gdb) bt
#0 0x00007ffff6eb6896 in __lll_lock_elision (futex=0x6059d0,
adapt_count=<optimized out>,
private=0) at ../sysdeps/unix/sysv/linux/x86/elision-lock.c:106
#1 0x00007ffff7b64aaf in __gthread_mutex_lock (__mutex=0x6059d0)
at ../libgcc/gthr-default.h:749
#2 0x00007ffff7b64e47 in insert_unit (n=10)
at /home/vries/gcc_versions/devel/src/libgfortran/io/unit.c:244
#3 0x00007ffff7b65128 in get_gfc_unit (n=10, do_create=1)
at /home/vries/gcc_versions/devel/src/libgfortran/io/unit.c:356
#4 0x00007ffff7b652d8 in _gfortrani_find_or_create_unit (n=10)
at /home/vries/gcc_versions/devel/src/libgfortran/io/unit.c:421
#5 0x00007ffff7b58941 in _gfortran_st_open (opp=0x7fffffffd630)
at /home/vries/gcc_versions/devel/src/libgfortran/io/open.c:889
#6 0x00000000004007f1 in MAIN__ ()
#7 0x00000000004008b7 in main ()
...
II. Unlocked from _gfortran_st_open:
...
(gdb) c
Continuing.
[New Thread 0x7ffff66bf700 (LWP 19890)]
Thread 1 "async_io_1.exe" hit Hardware watchpoint 2: ((pthread_mutex_t *)
0x6059d0)->__data.__lock
Old value = 1
New value = 0
0x00007ffff6eb690c in __lll_unlock_elision (lock=0x6059d0, private=0)
at ../sysdeps/unix/sysv/linux/x86/elision-unlock.c:31
31 lll_unlock ((*lock), private);
(gdb) bt
#0 0x00007ffff6eb690c in __lll_unlock_elision (lock=0x6059d0, private=0)
at ../sysdeps/unix/sysv/linux/x86/elision-unlock.c:31
#1 0x00007ffff7b64b03 in __gthread_mutex_unlock (__mutex=0x6059d0)
at ../libgcc/gthr-default.h:779
#2 0x00007ffff7b65e5c in _gfortrani_unlock_unit (u=0x6058f0)
at /home/vries/gcc_versions/devel/src/libgfortran/io/unit.c:772
#3 0x00007ffff7b58980 in _gfortran_st_open (opp=0x7fffffffd630)
at /home/vries/gcc_versions/devel/src/libgfortran/io/open.c:894
#4 0x00000000004007f1 in MAIN__ ()
#5 0x00000000004008b7 in main ()
...
III. Locked from _gfortran_st_write:
...
(gdb) c
Continuing.
Thread 1 "async_io_1.exe" hit Hardware watchpoint 2: ((pthread_mutex_t *)
0x6059d0)->__data.__lock
Old value = 0
New value = 1
__lll_trylock_elision (futex=futex@entry=0x6059d0,
adapt_count=adapt_count@entry=0x6059e6)
at ../sysdeps/unix/sysv/linux/x86/elision-trylock.c:75
75 }
(gdb) bt
#0 __lll_trylock_elision (futex=futex@entry=0x6059d0,
adapt_count=adapt_count@entry=0x6059e6)
at ../sysdeps/unix/sysv/linux/x86/elision-trylock.c:75
#1 0x00007ffff6ead297 in __GI___pthread_mutex_trylock (mutex=0x6059d0)
at ../nptl/pthread_mutex_trylock.c:71
#2 0x00007ffff7b64ad9 in __gthread_mutex_trylock (__mutex=0x6059d0)
at ../libgcc/gthr-default.h:758
#3 0x00007ffff7b651d2 in get_gfc_unit (n=10, do_create=1)
at /home/vries/gcc_versions/devel/src/libgfortran/io/unit.c:380
#4 0x00007ffff7b6588c in _gfortrani_get_unit (dtp=0x7fffffffd630, do_create=1)
at /home/vries/gcc_versions/devel/src/libgfortran/io/unit.c:576
#5 0x00007ffff7b60d6d in data_transfer_init (dtp=0x7fffffffd630, read_flag=0)
at /home/vries/gcc_versions/devel/src/libgfortran/io/transfer.c:2851
#6 0x00007ffff7b64154 in _gfortran_st_write (dtp=0x7fffffffd630)
at /home/vries/gcc_versions/devel/src/libgfortran/io/transfer.c:4410
#7 0x000000000040083f in MAIN__ ()
#8 0x00000000004008b7 in main ()
...
IV: Unlocked from _gfortran_st_write_done:
...
(gdb) c
Continuing.
Thread 1 "async_io_1.exe" hit Hardware watchpoint 2: ((pthread_mutex_t *)
0x6059d0)->__data.__lock
Old value = 1
New value = 0
0x00007ffff6eb690c in __lll_unlock_elision (lock=0x6059d0, private=0)
at ../sysdeps/unix/sysv/linux/x86/elision-unlock.c:31
31 lll_unlock ((*lock), private);
(gdb) bt
#0 0x00007ffff6eb690c in __lll_unlock_elision (lock=0x6059d0, private=0)
at ../sysdeps/unix/sysv/linux/x86/elision-unlock.c:31
#1 0x00007ffff7b64b03 in __gthread_mutex_unlock (__mutex=0x6059d0)
at ../libgcc/gthr-default.h:779
#2 0x00007ffff7b65e5c in _gfortrani_unlock_unit (u=0x6058f0)
at /home/vries/gcc_versions/devel/src/libgfortran/io/unit.c:772
#3 0x00007ffff7b6445e in _gfortran_st_write_done (dtp=0x7fffffffd630)
at /home/vries/gcc_versions/devel/src/libgfortran/io/transfer.c:4496
#4 0x0000000000400880 in MAIN__ ()
#5 0x00000000004008b7 in main ()
...
V. Unlocked again, from _gfortrani_st_write_done_worker:
...
(gdb) c
Continuing.
Thread 2 "async_io_1.exe" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff66bf700 (LWP 19890)]
__lll_unlock_elision (lock=0x6059d0, private=0)
at ../sysdeps/unix/sysv/linux/x86/elision-unlock.c:29
29 _xend();
(gdb) bt
#0 __lll_unlock_elision (lock=0x6059d0, private=0)
at ../sysdeps/unix/sysv/linux/x86/elision-unlock.c:29
#1 0x00007ffff7b64b03 in __gthread_mutex_unlock (__mutex=0x6059d0)
at ../libgcc/gthr-default.h:779
#2 0x00007ffff7b65e5c in _gfortrani_unlock_unit (u=0x6058f0)
at /home/vries/gcc_versions/devel/src/libgfortran/io/unit.c:772
#3 0x00007ffff7b6434e in _gfortrani_st_write_done_worker (dtp=0x608170)
at /home/vries/gcc_versions/devel/src/libgfortran/io/transfer.c:4466
#4 0x00007ffff7b71a99 in async_io (arg=0x6058f0)
at /home/vries/gcc_versions/devel/src/libgfortran/io/async.c:120
#5 0x00007ffff6eaa4f9 in start_thread (arg=0x7ffff66bf700) at
pthread_create.c:465
#6 0x00007ffff6be2ecf in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug libgomp/100352] libgomp.fortran/async_io_1.f90 -O0 execution test
2021-04-30 11:08 [Bug libgomp/100352] New: libgomp.fortran/async_io_1.f90 -O0 execution test vries at gcc dot gnu.org
` (3 preceding siblings ...)
2021-04-30 11:46 ` vries at gcc dot gnu.org
@ 2021-04-30 11:49 ` vries at gcc dot gnu.org
2021-05-01 11:35 ` [Bug libgomp/100352] [11/12 Regression] " burnus at gcc dot gnu.org
` (5 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: vries at gcc dot gnu.org @ 2021-04-30 11:49 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100352
Tom de Vries <vries at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |burnus at gcc dot gnu.org
--- Comment #5 from Tom de Vries <vries at gcc dot gnu.org> ---
Tobias, could you take a look?
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug libgomp/100352] [11/12 Regression] libgomp.fortran/async_io_1.f90 -O0 execution test
2021-04-30 11:08 [Bug libgomp/100352] New: libgomp.fortran/async_io_1.f90 -O0 execution test vries at gcc dot gnu.org
` (4 preceding siblings ...)
2021-04-30 11:49 ` vries at gcc dot gnu.org
@ 2021-05-01 11:35 ` burnus at gcc dot gnu.org
2021-05-02 16:16 ` cvs-commit at gcc dot gnu.org
` (4 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: burnus at gcc dot gnu.org @ 2021-05-01 11:35 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100352
Tobias Burnus <burnus at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2021-05-01
Target Milestone|--- |11.2
Summary|libgomp.fortran/async_io_1. |[11/12 Regression]
|f90 -O0 execution test |libgomp.fortran/async_io_1.
| |f90 -O0 execution test
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
--- Comment #6 from Tobias Burnus <burnus at gcc dot gnu.org> ---
For debugging, it helps:
(a) to compile with -fsanitize=address,undefined
or (here) -fsanitize=thread
(b) to comment '#undef DEBUG_ASYNC' in libgfortran/io/async.h
Issue introduced for PR99529 in
r11-7647-ga6e9633ccb593937fceec67fafc2afe5d518d735
Patch:
diff --git a/libgfortran/io/async.c b/libgfortran/io/async.c
index d216ace1947..247008ca801 100644
--- a/libgfortran/io/async.c
+++ b/libgfortran/io/async.c
@@ -120 +120 @@ async_io (void *arg)
- st_write_done_worker (au->pdt);
+ st_write_done_worker (au->pdt, false);
@@ -126 +126 @@ async_io (void *arg)
- st_read_done_worker (au->pdt);
+ st_read_done_worker (au->pdt, false);
diff --git a/libgfortran/io/io.h b/libgfortran/io/io.h
index e0007c6bfe5..3355bc2fd8d 100644
--- a/libgfortran/io/io.h
+++ b/libgfortran/io/io.h
@@ -1086 +1086 @@ extern void
-st_write_done_worker (st_parameter_dt *);
+st_write_done_worker (st_parameter_dt *, bool);
@@ -1090 +1090 @@ extern void
-st_read_done_worker (st_parameter_dt *);
+st_read_done_worker (st_parameter_dt *, bool);
diff --git a/libgfortran/io/transfer.c b/libgfortran/io/transfer.c
index 71a935652e3..36e35b48cd3 100644
--- a/libgfortran/io/transfer.c
+++ b/libgfortran/io/transfer.c
@@ -4340 +4340 @@ void
-st_read_done_worker (st_parameter_dt *dtp)
+st_read_done_worker (st_parameter_dt *dtp, bool unlock)
@@ -4370 +4370,2 @@ st_read_done_worker (st_parameter_dt *dtp)
- unlock_unit (dtp->u.p.current_unit);
+ if (unlock)
+ unlock_unit (dtp->u.p.current_unit);
@@ -4397 +4398 @@ st_read_done (st_parameter_dt *dtp)
- st_read_done_worker (dtp); /* Calls unlock_unit. */
+ st_read_done_worker (dtp, true); /* Calls unlock_unit. */
@@ -4415 +4416 @@ void
-st_write_done_worker (st_parameter_dt *dtp)
+st_write_done_worker (st_parameter_dt *dtp, bool unlock)
@@ -4466 +4467,2 @@ st_write_done_worker (st_parameter_dt *dtp)
- unlock_unit (dtp->u.p.current_unit);
+ if (unlock)
+ unlock_unit (dtp->u.p.current_unit);
@@ -4499 +4501 @@ st_write_done (st_parameter_dt *dtp)
- st_write_done_worker (dtp); /* Calls unlock_unit. */
+ st_write_done_worker (dtp, true); /* Calls unlock_unit. */
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug libgomp/100352] [11/12 Regression] libgomp.fortran/async_io_1.f90 -O0 execution test
2021-04-30 11:08 [Bug libgomp/100352] New: libgomp.fortran/async_io_1.f90 -O0 execution test vries at gcc dot gnu.org
` (5 preceding siblings ...)
2021-05-01 11:35 ` [Bug libgomp/100352] [11/12 Regression] " burnus at gcc dot gnu.org
@ 2021-05-02 16:16 ` cvs-commit at gcc dot gnu.org
2021-05-03 13:28 ` cvs-commit at gcc dot gnu.org
` (3 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-05-02 16:16 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100352
--- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tobias Burnus <burnus@gcc.gnu.org>:
https://gcc.gnu.org/g:a13a50047ef1814a7bda2392f728bf28f81b17ce
commit r12-344-ga13a50047ef1814a7bda2392f728bf28f81b17ce
Author: Tobias Burnus <tobias@codesourcery.com>
Date: Sun May 2 18:16:17 2021 +0200
Fortran: Async I/O - avoid unlocked unlocking [PR100352]
Follow up to PR100352, which moved unit unlocking to st_*_done_worker to
avoid lock order reversal; however, as async_io uses a different lock,
the (unlocked locked) unit lock shall not be unlocked there.
libgfortran/ChangeLog:
PR libgomp/100352
* io/transfer.c (st_read_done_worker, st_write_done_worker): Add
new
arg whether to unlock unit.
(st_read_done, st_write_done): Call it with true.
* io/async.c (async_io): Call it with false.
* io/io.h (st_write_done_worker, st_read_done_worker): Update
prototype.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug libgomp/100352] [11/12 Regression] libgomp.fortran/async_io_1.f90 -O0 execution test
2021-04-30 11:08 [Bug libgomp/100352] New: libgomp.fortran/async_io_1.f90 -O0 execution test vries at gcc dot gnu.org
` (6 preceding siblings ...)
2021-05-02 16:16 ` cvs-commit at gcc dot gnu.org
@ 2021-05-03 13:28 ` cvs-commit at gcc dot gnu.org
2021-05-03 13:32 ` burnus at gcc dot gnu.org
` (2 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-05-03 13:28 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100352
--- Comment #8 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-11 branch has been updated by Tobias Burnus
<burnus@gcc.gnu.org>:
https://gcc.gnu.org/g:107ca5c2fd6dcb53c3cba788ae388e7e4e789ed8
commit r11-8343-g107ca5c2fd6dcb53c3cba788ae388e7e4e789ed8
Author: Tobias Burnus <tobias@codesourcery.com>
Date: Sun May 2 18:16:17 2021 +0200
Fortran: Async I/O - avoid unlocked unlocking [PR100352]
Follow up to PR100352, which moved unit unlocking to st_*_done_worker to
avoid lock order reversal; however, as async_io uses a different lock,
the (unlocked locked) unit lock shall not be unlocked there.
libgfortran/ChangeLog:
PR libgomp/100352
* io/transfer.c (st_read_done_worker, st_write_done_worker): Add
new
arg whether to unlock unit.
(st_read_done, st_write_done): Call it with true.
* io/async.c (async_io): Call it with false.
* io/io.h (st_write_done_worker, st_read_done_worker): Update
prototype.
(cherry picked from commit a13a50047ef1814a7bda2392f728bf28f81b17ce)
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug libgomp/100352] [11/12 Regression] libgomp.fortran/async_io_1.f90 -O0 execution test
2021-04-30 11:08 [Bug libgomp/100352] New: libgomp.fortran/async_io_1.f90 -O0 execution test vries at gcc dot gnu.org
` (7 preceding siblings ...)
2021-05-03 13:28 ` cvs-commit at gcc dot gnu.org
@ 2021-05-03 13:32 ` burnus at gcc dot gnu.org
2021-07-28 7:06 ` rguenth at gcc dot gnu.org
2021-07-28 16:24 ` tkoenig at gcc dot gnu.org
10 siblings, 0 replies; 12+ messages in thread
From: burnus at gcc dot gnu.org @ 2021-05-03 13:32 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100352
--- Comment #9 from Tobias Burnus <burnus at gcc dot gnu.org> ---
(In reply to CVS Commits from comment #8)
> Follow up to PR100352,
That's this PR and not the one which caused it. Correct is (comment #6):
> Issue introduced for PR99529 in
> r11-7647-ga6e9633ccb593937fceec67fafc2afe5d518d735
* * *
Close as FIXED (in GCC 12 and 11).
Thanks for the report! See PR100371 for follow ups.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug libgomp/100352] [11/12 Regression] libgomp.fortran/async_io_1.f90 -O0 execution test
2021-04-30 11:08 [Bug libgomp/100352] New: libgomp.fortran/async_io_1.f90 -O0 execution test vries at gcc dot gnu.org
` (8 preceding siblings ...)
2021-05-03 13:32 ` burnus at gcc dot gnu.org
@ 2021-07-28 7:06 ` rguenth at gcc dot gnu.org
2021-07-28 16:24 ` tkoenig at gcc dot gnu.org
10 siblings, 0 replies; 12+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-07-28 7:06 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100352
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|11.2 |11.3
--- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 11.2 is being released, retargeting bugs to GCC 11.3
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug libgomp/100352] [11/12 Regression] libgomp.fortran/async_io_1.f90 -O0 execution test
2021-04-30 11:08 [Bug libgomp/100352] New: libgomp.fortran/async_io_1.f90 -O0 execution test vries at gcc dot gnu.org
` (9 preceding siblings ...)
2021-07-28 7:06 ` rguenth at gcc dot gnu.org
@ 2021-07-28 16:24 ` tkoenig at gcc dot gnu.org
10 siblings, 0 replies; 12+ messages in thread
From: tkoenig at gcc dot gnu.org @ 2021-07-28 16:24 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100352
Thomas Koenig <tkoenig at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution|--- |FIXED
--- Comment #11 from Thomas Koenig <tkoenig at gcc dot gnu.org> ---
(In reply to Tobias Burnus from comment #9)
> Close as FIXED (in GCC 12 and 11).
>
> Thanks for the report! See PR100371 for follow ups.
Really closing :-)
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2021-07-28 16:24 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-30 11:08 [Bug libgomp/100352] New: libgomp.fortran/async_io_1.f90 -O0 execution test vries at gcc dot gnu.org
2021-04-30 11:10 ` [Bug libgomp/100352] " vries at gcc dot gnu.org
2021-04-30 11:26 ` vries at gcc dot gnu.org
2021-04-30 11:34 ` vries at gcc dot gnu.org
2021-04-30 11:46 ` vries at gcc dot gnu.org
2021-04-30 11:49 ` vries at gcc dot gnu.org
2021-05-01 11:35 ` [Bug libgomp/100352] [11/12 Regression] " burnus at gcc dot gnu.org
2021-05-02 16:16 ` cvs-commit at gcc dot gnu.org
2021-05-03 13:28 ` cvs-commit at gcc dot gnu.org
2021-05-03 13:32 ` burnus at gcc dot gnu.org
2021-07-28 7:06 ` rguenth at gcc dot gnu.org
2021-07-28 16:24 ` tkoenig 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).