Created attachment 148381 [details] filter_gdb patch to handle "result = SYSCALL_CANCEL" pattern SUMMARY mcinfcallWSRU, nlcontrolc and nlvgdbsigqueue tests failed in aarch64 in rhel-8. The cause is the same in the three tests, an extra line in the output which is not expected. Using nlcontrolc diff output as example: ================================================= gdbserver_tests/nlcontrolc.stdoutB.diff ================================================= --- nlcontrolc.stdoutB.exp 2022-04-11 10:27:12.000000000 -0400 +++ nlcontrolc.stdoutB.out 2022-04-26 03:44:40.597663940 -0400 @@ -10,12 +10,14 @@ Continuing. Program received signal SIGTRAP, Trace/breakpoint trap. 0x........ in syscall ... +53 result = SYSCALL_CANCEL (pselect6, nfds, readfds, writefds, exceptfds, tsp, * 1 Thread .... (tid 1 VgTs_WaitSys) 0x........ in syscall ... $3 = 0 reset to sleeping parameters Continuing. Program received signal SIGTRAP, Trace/breakpoint trap. 0x........ in syscall ... +53 result = SYSCALL_CANCEL (pselect6, nfds, readfds, writefds, exceptfds, tsp, * 1 Thread .... (tid 1 VgTs_WaitSys) 0x........ in syscall ... > > > >4 Kill the program being debugged? (y or n) [answered Y; input not from terminal] From glibc's git branch release/2.28/master, the responsible line can be found in sysdeps/unix/sysv/linux/select.c:53. Following the same approach as seen in commit 3eba47604df8, adding a new pattern to gdbserver_tests/filter_gdb.in should suffice. After rerunning with it, the tests are passing. I'm attaching a proposed patch.
Some additional info: The valgrind, kernel and glibc package versions are these: kernel-4.18.0-384.el8.aarch64 valgrind-3.19.0-1.el8.aarch64 glibc-2.28-197.el8.aarch64
Which version of gdb was this with?
(In reply to Paul Floyd from comment #2) > Which version of gdb was this with? This was gdb 8.2
(In reply to Jesus Checa from comment #3) > (In reply to Paul Floyd from comment #2) > > Which version of gdb was this with? > > This was gdb 8.2 I just tried building gdb and couldn't reproduce. Quite likely this is due to the glibc version. I only have access to systems that are older or newer than 2.18. The patch looks safe, I'll do some tests and if nothing breaks I'll push it.
glibc 2.28 I meant
(In reply to Paul Floyd from comment #4) > (In reply to Jesus Checa from comment #3) > > (In reply to Paul Floyd from comment #2) > > > Which version of gdb was this with? > > > > This was gdb 8.2 > > I just tried building gdb and couldn't reproduce. Quite likely this is due > to the glibc version. I only have access to systems that are older or newer > than 2.18. The patch looks safe, I'll do some tests and if nothing breaks > I'll push it. Yes this happens with glibc 2.28, but not with newer, for example 2.34. With glibc 2.28, it reproduces when debuginfo is available, else it doesn't.
commit 790abdf7d3f3df0c968605b68ca765310689b7ce (HEAD -> master, origin/master, origin/HEAD) Author: Jesus Checa <jcheca@redhat.com> Date: Sat May 25 12:40:30 2024 +0200 Bug 453044 - gbserver_tests failures in aarch64