[ 
https://issues.apache.org/jira/browse/PROTON-2270?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17182165#comment-17182165
 ] 

Jiri Daněk edited comment on PROTON-2270 at 8/21/20, 10:10 PM:
---------------------------------------------------------------

Still, I haven't yet found an upper time bound for the c-threaderciser under 
valgrind. On a machine, where the test normally runs in between 5 to 50 
seconds, I saw 

{noformat}
7: Test command: /usr/bin/python 
"/home/jdanek/repos/qpid/qpid-proton/scripts/env.py" "--" 
"TEST_EXE_PREFIX=/usr/bin/valgrind --tool=memcheck --leak-check=full 
--error-exitcode=42 --quiet 
--suppressions=/home/jdanek/repos/qpid/qpid-proton/tests/valgrind.supp" 
"/usr/bin/valgrind" "--tool=memcheck" "--leak-check=full" "--error-exitcode=42" 
"--quiet" 
"--suppressions=/home/jdanek/repos/qpid/qpid-proton/tests/valgrind.supp" 
"/home/jdanek/repos/qpid/qpid-proton/cmake-build-debug/c/tests/c-threaderciser"
7: Test timeout computed to be: 900
7: threaderciser start: threads=8, time=1, actions=[listen, close-listen, 
connect, close-connect, wake, timeout, cancel-timeout]
    Test #7: c-threaderciser ..................***Timeout 900.10 sec

0% tests passed, 1 tests failed out of 1

Total Test time (real) = 968.50 sec
{noformat}

On yet another machine, I saw it timeout even with 1500 second limit.

The problem is, I don't know how to take a backtrace of a program running in 
valgrind, to see if it is just running slow, or it will never terminate.

{noformat}
Attaching to process 5709
[New LWP 5737]
[New LWP 5741]
[New LWP 5743]
vgModuleLocal_do_syscall_for_client_WRK ()
    at m_syswrap/syscall-amd64-linux.S:171
171     m_syswrap/syscall-amd64-linux.S: No such file or directory.
(gdb) bt
#0  vgModuleLocal_do_syscall_for_client_WRK ()
    at m_syswrap/syscall-amd64-linux.S:171
#1  0x00000000580a0280 in do_syscall_for_client (syscall_mask=0x100330cd58, 
    tst=0x1002008410, syscallno=202) at m_syswrap/syswrap-main.c:2015
#2  vgPlain_client_syscall (tid=tid@entry=1, trc=trc@entry=73)
    at m_syswrap/syswrap-main.c:2015
#3  0x000000005809b9eb in handle_syscall (tid=tid@entry=1, trc=73)
    at m_scheduler/scheduler.c:1208
#4  0x000000005809db34 in vgPlain_scheduler (tid=tid@entry=1)
    at m_scheduler/scheduler.c:1526
#5  0x00000000580ee3d6 in thread_wrapper (tidW=1)
    at m_syswrap/syswrap-linux.c:101
#6  run_a_thread_NORETURN (tidW=1) at m_syswrap/syswrap-linux.c:154
#7  0x0000000000000000 in ?? ()
(gdb) thread
[Current thread is 1 (LWP 5709)]
(gdb) info threads
  Id   Target Id                  Frame 
* 1    LWP 5709 "memcheck-amd64-" vgModuleLocal_do_syscall_for_client_WRK () at 
m_syswrap/syscall-amd64-linux.S:171
  2    LWP 5737 "memcheck-amd64-" 0x0000001003b64110 in ?? ()
  3    LWP 5741 "memcheck-amd64-" vgModuleLocal_do_syscall_for_client_WRK () at 
m_syswrap/syscall-amd64-linux.S:171
  4    LWP 5743 "memcheck-amd64-" vgModuleLocal_do_syscall_for_client_WRK () at 
m_syswrap/syscall-amd64-linux.S:171
(gdb) thread 2
[Switching to thread 2 (LWP 5737)]
#0  0x0000001003b64110 in ?? ()
(gdb) bt
#0  0x0000001003b64110 in ?? ()
#1  0x00000010064f6f10 in ?? ()
#2  0x00000000592a95e8 in ?? ()
#3  0x00000010064f6ef8 in ?? ()
#4  0x00000010064f6f10 in ?? ()
#5  0x0000000000000000 in ?? ()
(gdb) thread 3
[Switching to thread 3 (LWP 5741)]
#0  vgModuleLocal_do_syscall_for_client_WRK () at 
m_syswrap/syscall-amd64-linux.S:171
171     in m_syswrap/syscall-amd64-linux.S
(gdb) bt
#0  vgModuleLocal_do_syscall_for_client_WRK () at 
m_syswrap/syscall-amd64-linux.S:171
#1  0x00000000580a0280 in do_syscall_for_client (syscall_mask=0x100706bd48, 
tst=0x1002012c70, syscallno=232) at m_syswrap/syswrap-main.c:2015
#2  vgPlain_client_syscall (tid=tid@entry=7, trc=trc@entry=73) at 
m_syswrap/syswrap-main.c:2015
#3  0x000000005809b9eb in handle_syscall (tid=tid@entry=7, trc=73) at 
m_scheduler/scheduler.c:1208
#4  0x000000005809db34 in vgPlain_scheduler (tid=tid@entry=7) at 
m_scheduler/scheduler.c:1526
#5  0x00000000580ee3d6 in thread_wrapper (tidW=7) at 
m_syswrap/syswrap-linux.c:101
#6  run_a_thread_NORETURN (tidW=7) at m_syswrap/syswrap-linux.c:154
#7  0x00000000580ee6cb in vgModuleLocal_start_thread_NORETURN (arg=<optimized 
out>) at m_syswrap/syswrap-linux.c:328
#8  0x00000000580af95e in do_syscall_clone_amd64_linux ()
#9  0xdeadbeefdeadbeef in ?? ()
#10 0xdeadbeefdeadbeef in ?? ()
#11 0xdeadbeefdeadbeef in ?? ()
#12 0xdeadbeefdeadbeef in ?? ()
#13 0x0000000000000000 in ?? ()
(gdb) thread 4
[Switching to thread 4 (LWP 5743)]
#0  vgModuleLocal_do_syscall_for_client_WRK () at 
m_syswrap/syscall-amd64-linux.S:171
171     in m_syswrap/syscall-amd64-linux.S
(gdb) bt
#0  vgModuleLocal_do_syscall_for_client_WRK () at 
m_syswrap/syscall-amd64-linux.S:171
#1  0x00000000580a0280 in do_syscall_for_client (syscall_mask=0x1007673d48, 
tst=0x1002016490, syscallno=202) at m_syswrap/syswrap-main.c:2015
#2  vgPlain_client_syscall (tid=tid@entry=9, trc=trc@entry=73) at 
m_syswrap/syswrap-main.c:2015
#3  0x000000005809b9eb in handle_syscall (tid=tid@entry=9, trc=73) at 
m_scheduler/scheduler.c:1208
#4  0x000000005809db34 in vgPlain_scheduler (tid=tid@entry=9) at 
m_scheduler/scheduler.c:1526
#5  0x00000000580ee3d6 in thread_wrapper (tidW=9) at 
m_syswrap/syswrap-linux.c:101
#6  run_a_thread_NORETURN (tidW=9) at m_syswrap/syswrap-linux.c:154
#7  0x00000000580ee6cb in vgModuleLocal_start_thread_NORETURN (arg=<optimized 
out>) at m_syswrap/syswrap-linux.c:328
#8  0x00000000580af95e in do_syscall_clone_amd64_linux ()
#9  0xdeadbeefdeadbeef in ?? ()
#10 0xdeadbeefdeadbeef in ?? ()
#11 0xdeadbeefdeadbeef in ?? ()
#12 0xdeadbeefdeadbeef in ?? ()
#13 0x0000000000000000 in ?? ()
(gdb) thread 5
Unknown thread 5.
(gdb) quit
{noformat}

edit: "valgrind gdb server", got it!


was (Author: jdanek):
Still, I haven't yet found an upper time bound for the c-threaderciser under 
valgrind. On a machine, where the test normally runs in between 5 to 50 
seconds, I saw 

{noformat}
7: Test command: /usr/bin/python 
"/home/jdanek/repos/qpid/qpid-proton/scripts/env.py" "--" 
"TEST_EXE_PREFIX=/usr/bin/valgrind --tool=memcheck --leak-check=full 
--error-exitcode=42 --quiet 
--suppressions=/home/jdanek/repos/qpid/qpid-proton/tests/valgrind.supp" 
"/usr/bin/valgrind" "--tool=memcheck" "--leak-check=full" "--error-exitcode=42" 
"--quiet" 
"--suppressions=/home/jdanek/repos/qpid/qpid-proton/tests/valgrind.supp" 
"/home/jdanek/repos/qpid/qpid-proton/cmake-build-debug/c/tests/c-threaderciser"
7: Test timeout computed to be: 900
7: threaderciser start: threads=8, time=1, actions=[listen, close-listen, 
connect, close-connect, wake, timeout, cancel-timeout]
    Test #7: c-threaderciser ..................***Timeout 900.10 sec

0% tests passed, 1 tests failed out of 1

Total Test time (real) = 968.50 sec
{noformat}

On yet another machine, I saw it timeout even with 1500 second limit.

The problem is, I don't know how to take a backtrace of a program running in 
valgrind, to see if it is just running slow, or it will never terminate.

{noformat}
Attaching to process 5709
[New LWP 5737]
[New LWP 5741]
[New LWP 5743]
vgModuleLocal_do_syscall_for_client_WRK ()
    at m_syswrap/syscall-amd64-linux.S:171
171     m_syswrap/syscall-amd64-linux.S: No such file or directory.
(gdb) bt
#0  vgModuleLocal_do_syscall_for_client_WRK ()
    at m_syswrap/syscall-amd64-linux.S:171
#1  0x00000000580a0280 in do_syscall_for_client (syscall_mask=0x100330cd58, 
    tst=0x1002008410, syscallno=202) at m_syswrap/syswrap-main.c:2015
#2  vgPlain_client_syscall (tid=tid@entry=1, trc=trc@entry=73)
    at m_syswrap/syswrap-main.c:2015
#3  0x000000005809b9eb in handle_syscall (tid=tid@entry=1, trc=73)
    at m_scheduler/scheduler.c:1208
#4  0x000000005809db34 in vgPlain_scheduler (tid=tid@entry=1)
    at m_scheduler/scheduler.c:1526
#5  0x00000000580ee3d6 in thread_wrapper (tidW=1)
    at m_syswrap/syswrap-linux.c:101
#6  run_a_thread_NORETURN (tidW=1) at m_syswrap/syswrap-linux.c:154
#7  0x0000000000000000 in ?? ()
(gdb) thread
[Current thread is 1 (LWP 5709)]
(gdb) info threads
  Id   Target Id                  Frame 
* 1    LWP 5709 "memcheck-amd64-" vgModuleLocal_do_syscall_for_client_WRK () at 
m_syswrap/syscall-amd64-linux.S:171
  2    LWP 5737 "memcheck-amd64-" 0x0000001003b64110 in ?? ()
  3    LWP 5741 "memcheck-amd64-" vgModuleLocal_do_syscall_for_client_WRK () at 
m_syswrap/syscall-amd64-linux.S:171
  4    LWP 5743 "memcheck-amd64-" vgModuleLocal_do_syscall_for_client_WRK () at 
m_syswrap/syscall-amd64-linux.S:171
(gdb) thread 2
[Switching to thread 2 (LWP 5737)]
#0  0x0000001003b64110 in ?? ()
(gdb) bt
#0  0x0000001003b64110 in ?? ()
#1  0x00000010064f6f10 in ?? ()
#2  0x00000000592a95e8 in ?? ()
#3  0x00000010064f6ef8 in ?? ()
#4  0x00000010064f6f10 in ?? ()
#5  0x0000000000000000 in ?? ()
(gdb) thread 3
[Switching to thread 3 (LWP 5741)]
#0  vgModuleLocal_do_syscall_for_client_WRK () at 
m_syswrap/syscall-amd64-linux.S:171
171     in m_syswrap/syscall-amd64-linux.S
(gdb) bt
#0  vgModuleLocal_do_syscall_for_client_WRK () at 
m_syswrap/syscall-amd64-linux.S:171
#1  0x00000000580a0280 in do_syscall_for_client (syscall_mask=0x100706bd48, 
tst=0x1002012c70, syscallno=232) at m_syswrap/syswrap-main.c:2015
#2  vgPlain_client_syscall (tid=tid@entry=7, trc=trc@entry=73) at 
m_syswrap/syswrap-main.c:2015
#3  0x000000005809b9eb in handle_syscall (tid=tid@entry=7, trc=73) at 
m_scheduler/scheduler.c:1208
#4  0x000000005809db34 in vgPlain_scheduler (tid=tid@entry=7) at 
m_scheduler/scheduler.c:1526
#5  0x00000000580ee3d6 in thread_wrapper (tidW=7) at 
m_syswrap/syswrap-linux.c:101
#6  run_a_thread_NORETURN (tidW=7) at m_syswrap/syswrap-linux.c:154
#7  0x00000000580ee6cb in vgModuleLocal_start_thread_NORETURN (arg=<optimized 
out>) at m_syswrap/syswrap-linux.c:328
#8  0x00000000580af95e in do_syscall_clone_amd64_linux ()
#9  0xdeadbeefdeadbeef in ?? ()
#10 0xdeadbeefdeadbeef in ?? ()
#11 0xdeadbeefdeadbeef in ?? ()
#12 0xdeadbeefdeadbeef in ?? ()
#13 0x0000000000000000 in ?? ()
(gdb) thread 4
[Switching to thread 4 (LWP 5743)]
#0  vgModuleLocal_do_syscall_for_client_WRK () at 
m_syswrap/syscall-amd64-linux.S:171
171     in m_syswrap/syscall-amd64-linux.S
(gdb) bt
#0  vgModuleLocal_do_syscall_for_client_WRK () at 
m_syswrap/syscall-amd64-linux.S:171
#1  0x00000000580a0280 in do_syscall_for_client (syscall_mask=0x1007673d48, 
tst=0x1002016490, syscallno=202) at m_syswrap/syswrap-main.c:2015
#2  vgPlain_client_syscall (tid=tid@entry=9, trc=trc@entry=73) at 
m_syswrap/syswrap-main.c:2015
#3  0x000000005809b9eb in handle_syscall (tid=tid@entry=9, trc=73) at 
m_scheduler/scheduler.c:1208
#4  0x000000005809db34 in vgPlain_scheduler (tid=tid@entry=9) at 
m_scheduler/scheduler.c:1526
#5  0x00000000580ee3d6 in thread_wrapper (tidW=9) at 
m_syswrap/syswrap-linux.c:101
#6  run_a_thread_NORETURN (tidW=9) at m_syswrap/syswrap-linux.c:154
#7  0x00000000580ee6cb in vgModuleLocal_start_thread_NORETURN (arg=<optimized 
out>) at m_syswrap/syswrap-linux.c:328
#8  0x00000000580af95e in do_syscall_clone_amd64_linux ()
#9  0xdeadbeefdeadbeef in ?? ()
#10 0xdeadbeefdeadbeef in ?? ()
#11 0xdeadbeefdeadbeef in ?? ()
#12 0xdeadbeefdeadbeef in ?? ()
#13 0x0000000000000000 in ?? ()
(gdb) thread 5
Unknown thread 5.
(gdb) quit
{noformat}

> Threaderciser test does not honor ctest '--timeout' switch
> ----------------------------------------------------------
>
>                 Key: PROTON-2270
>                 URL: https://issues.apache.org/jira/browse/PROTON-2270
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: build
>    Affects Versions: proton-c-0.31.0
>         Environment: Fedora 31
>            Reporter: Charles E. Rolke
>            Priority: Major
>
> Command line
> {code:java}
> > ctest -VV --timeout 600 -R threader
> {code}
> runs the test with
> {code:java}
> ...
>     Start 7: c-threaderciser
> ...
> 7: Test timeout computed to be: 120
> ...
> {code}
> The test should respect the ctest switch and run for 600 seconds.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to