Issue 127395
Summary [OpenMP] segment fault when run untied task
Labels new issue
Assignees
Reporter LXYan2333
    Dear maintainer:

I tried to run the program from the 5.0.1 OpenMP examples: 

[https://github.com/OpenMP/Examples/blob/main/tasking/sources/tasking.6.c](https://github.com/OpenMP/Examples/blob/main/tasking/sources/tasking.6.c)

```c
#define LARGE_NUMBER 10000000
double item[LARGE_NUMBER];
extern void process(double) {}; // I add {} to make it a definition
int main() {
#pragma omp parallel
  {
#pragma omp single
    {
      int i;
#pragma omp task untied
      // i is firstprivate, item is shared
      {
        for (i = 0; i < LARGE_NUMBER; i++)
#pragma omp task
          process(item[i]);
      }
    }
  }
  return 0;
}
```

I compile it with:

```console
$ clang-19 poc_c.c -fopenmp -std=c23 -fsanitize=undefined,address -g
```

run with:

```
LD_PRELOAD=/usr/lib/llvm-19/lib/libomp.so.5 ./a.out
```

the `/usr/lib/llvm-19/lib/libomp.so.5` is provided by apt package `libomp5-19` 

However it segment faulted. (it still segment fault without this preload)

In gdb, I can see the stack frame backtrace is extremely long:

```
……
#72230 0x00007ffff7ef8b64 in __kmp_invoke_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:1917
#72231 0x00007ffff7ef8f6a in __kmp_omp_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2088
#72232 0x00007ffff7ef90e9 in __kmpc_omp_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2160
#72233 0x0000555555555443 in omp_task_entry. ()
#72234 0x00007ffff7ef8b64 in __kmp_invoke_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:1917
#72235 0x00007ffff7ef8f6a in __kmp_omp_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2088
#72236 0x00007ffff7ef90e9 in __kmpc_omp_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2160
#72237 0x0000555555555443 in omp_task_entry. ()
#72238 0x00007ffff7ef8b64 in __kmp_invoke_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:1917
#72239 0x00007ffff7ef8f6a in __kmp_omp_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2088
#72240 0x00007ffff7ef90e9 in __kmpc_omp_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2160
#72241 0x0000555555555443 in omp_task_entry. ()
#72242 0x00007ffff7ef8b64 in __kmp_invoke_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:1917
#72243 0x00007ffff7ef8f6a in __kmp_omp_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2088
#72244 0x00007ffff7ef90e9 in __kmpc_omp_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2160
#72245 0x0000555555555443 in omp_task_entry. ()
#72246 0x00007ffff7ef8b64 in __kmp_invoke_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:1917
#72247 0x00007ffff7ef8f6a in __kmp_omp_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2088
#72248 0x00007ffff7ef90e9 in __kmpc_omp_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2160
#72249 0x0000555555555443 in omp_task_entry. ()
#72250 0x00007ffff7ef8b64 in __kmp_invoke_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:1917
#72251 0x00007ffff7ef8f6a in __kmp_omp_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2088
#72252 0x00007ffff7ef90e9 in __kmpc_omp_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2160
#72253 0x0000555555555443 in omp_task_entry. ()
#72254 0x00007ffff7ef8b64 in __kmp_invoke_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:1917
#72255 0x00007ffff7ef8f6a in __kmp_omp_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2088
#72256 0x00007ffff7ef90e9 in __kmpc_omp_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2160
#72257 0x0000555555555443 in omp_task_entry. ()
#72258 0x00007ffff7ef8b64 in __kmp_invoke_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:1917
#72259 0x00007ffff7ef8f6a in __kmp_omp_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2088
#72260 0x00007ffff7ef90e9 in __kmpc_omp_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2160
#72261 0x0000555555555443 in omp_task_entry. ()
#72262 0x00007ffff7ef8b64 in __kmp_invoke_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:1917
#72263 0x00007ffff7ef8f6a in __kmp_omp_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2088
#72264 0x00007ffff7ef90e9 in __kmpc_omp_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2160
#72265 0x0000555555555443 in omp_task_entry. ()
#72266 0x00007ffff7ef8b64 in __kmp_invoke_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:1917
#72267 0x00007ffff7ef8f6a in __kmp_omp_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2088
#72268 0x00007ffff7ef90e9 in __kmpc_omp_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2160
#72269 0x0000555555555443 in omp_task_entry. ()
#72270 0x00007ffff7ef8b64 in __kmp_invoke_task () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:1917
#72271 0x00007ffff7efcbd6 in __kmp_execute_tasks_template<kmp_flag_64<false, true> > ()
    at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:3496
#72272 __kmp_execute_tasks_64<false, true> () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:3609
#72273 0x00007ffff7f0e5c5 in execute_tasks () at openmp/runtime/src/kmp_wait_release.h:878
#72274 __kmp_wait_template<kmp_flag_64<false, true>, true, false, true> () at openmp/runtime/src/kmp_wait_release.h:543
#72275 wait () at openmp/runtime/src/kmp_wait_release.h:885
#72276 0x00007ffff7f08b2f in __kmp_hyper_barrier_release () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_barrier.cpp:1161
#72277 0x00007ffff7f06eef in __kmp_barrier_template<false> () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_barrier.cpp:2012
#72278 __kmp_barrier () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_barrier.cpp:2102
#72279 0x00007ffff7ebe67e in __kmpc_barrier () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_csupport.cpp:846
#72280 0x0000555555555259 in main.omp_outlined ()
#72281 0x00007ffff7f71679 in __kmp_invoke_microtask () at /build/source/openmp/runtime/src/z_Linux_asm.S:1249
#72282 0x00007ffff7ed9e18 in __kmp_invoke_task_func () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_runtime.cpp:7739
#72283 0x00007ffff7ed83e6 in __kmp_launch_thread () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_runtime.cpp:6086
#72284 0x00007ffff7f4a934 in __kmp_launch_worker () at build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/z_Linux_util.cpp:593
#72285 0x00007ffff7d081c4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#72286 0x00007ffff7d8885c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
(gdb) 
```

with address sanitizer:

```
AddressSanitizer:DEADLYSIGNAL
=================================================================
==132550==ERROR: AddressSanitizer: stack-overflow on address 0x7f67ab0cefd0 (pc 0x55d60e851fb3 bp 0x7f67ab0cf030 sp 0x7f67ab0cef00 T6)
    #0 0x55d60e851fb3 in .omp_task_entry..3 /home/lxyan/Code/cpp/poc/src/poc_c/poc_c.c:10
    #1 0x7f67b3c7ab63 in __kmp_invoke_task build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:1917:9
    #2 0x7f67b3c7af69 in __kmp_omp_task build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2088:5
    #3 0x7f67b3c7b0e8 in __kmpc_omp_task build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2160:9
    #4 0x55d60e852394 in .omp_outlined. /home/lxyan/Code/cpp/poc/src/poc_c/poc_c.c:14:1
    #5 0x55d60e852394 in .omp_task_entry..3 /home/lxyan/Code/cpp/poc/src/poc_c/poc_c.c:10:1
    #6 0x7f67b3c7ab63 in __kmp_invoke_task build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:1917:9
    #7 0x7f67b3c7af69 in __kmp_omp_task build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2088:5
    #8 0x7f67b3c7b0e8 in __kmpc_omp_task build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2160:9
    #9 0x55d60e852394 in .omp_outlined. /home/lxyan/Code/cpp/poc/src/poc_c/poc_c.c:14:1
    #10 0x55d60e852394 in .omp_task_entry..3 /home/lxyan/Code/cpp/poc/src/poc_c/poc_c.c:10:1
    #11 0x7f67b3c7ab63 in __kmp_invoke_task build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:1917:9
    #12 0x7f67b3c7af69 in __kmp_omp_task build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2088:5
    #13 0x7f67b3c7b0e8 in __kmpc_omp_task build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2160:9
    #14 0x55d60e852394 in .omp_outlined. /home/lxyan/Code/cpp/poc/src/poc_c/poc_c.c:14:1

……

    #298 0x7f67b3c7b0e8 in __kmpc_omp_task build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2160:9
    #299 0x55d60e852394 in .omp_outlined. /home/lxyan/Code/cpp/poc/src/poc_c/poc_c.c:14:1
    #300 0x55d60e852394 in .omp_task_entry..3 /home/lxyan/Code/cpp/poc/src/poc_c/poc_c.c:10:1
    #301 0x7f67b3c7ab63 in __kmp_invoke_task build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:1917:9
    #302 0x7f67b3c7af69 in __kmp_omp_task build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2088:5
    #303 0x7f67b3c7b0e8 in __kmpc_omp_task build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2160:9
    #304 0x55d60e852394 in .omp_outlined. /home/lxyan/Code/cpp/poc/src/poc_c/poc_c.c:14:1
    #305 0x55d60e852394 in .omp_task_entry..3 /home/lxyan/Code/cpp/poc/src/poc_c/poc_c.c:10:1
    #306 0x7f67b3c7ab63 in __kmp_invoke_task build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:1917:9
    #307 0x7f67b3c7af69 in __kmp_omp_task build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/kmp_tasking.cpp:2088:5

SUMMARY: AddressSanitizer: stack-overflow /home/lxyan/Code/cpp/poc/src/poc_c/poc_c.c:10 in .omp_task_entry..3
Thread T6 created by T0 here:
    #0 0x55d60e7f6c41 in pthread_create (/home/lxyan/Code/cpp/poc/src/poc_c/a.out+0xb0c41) (BuildId: 233ce7ecad75d478cefc2772283c6a0c8d4aff8e)
    #1 0x7f67b3ccbf53 in __kmp_create_worker build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins/openmp/runtime/src/z_Linux_util.cpp:862:7

==132550==ABORTING
```

The clang version is:

```console
$ clang-19 --version
Debian clang version 19.1.7 (++20250114103228+cd708029e0b2-1~exp1~20250114103334.78)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm-19/bin
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to