Hi,
I am trying to build m4 package but its hanging during testcase validation
Package details
m4 1.4.19
Machine details
operating system: AIX/PPC
oslevel: 7.1.0.0
what is the issue:
one of the testcase is hanging
hanged after this
PASS: test-sigsegv-catch-segv1
PASS: test-sigsegv-catch-segv2
PASS: test-sigsegv-catch-stackoverflow1
ps -ef output:
root 11010342 7078448 0 05:44:31 pts/0 0:00 /bin/sh
../build-aux/test-driver --test-name test-sigsegv-catch-stackoverflow2
--log-file test-sigsegv-catch-stackoverflow2.log --trs-file
test-sigsegv-catch-stackoverflow2.trs --color-tests no --enable-hard-errors yes
--expect-failure no -- ./test-sigsegv-catch-stackoverflow2
root 11927964 11010342 61 05:44:31 pts/0 12:57
./test-sigsegv-catch-stackoverflow2
If I run this testcase manually its working but if we run it with all test
cases then its hanging
# r-tests no --enable-hard-errors yes --expect-failure no --
./test-sigsegv-catch-stackoverflow2
<
+ /bin/sh ../build-aux/test-driver --test-name
test-sigsegv-catch-stackoverflow2 --log-file
test-sigsegv-catch-stackoverflow2.log --trs-file
test-sigsegv-catch-stackoverflow2.trs --color-tests no --enable-hard-errors yes
--expect-failure no -- ./test-sigsegv-catch-stackoverflow2
PASS: test-sigsegv-catch-stackoverflow2
# ./test-sigsegv-catch-stackoverflow2
+ ./test-sigsegv-catch-stackoverflow2
Starting recursion pass 1.
Stack overflow 1 caught.
Starting recursion pass 2.
Stack overflow 2 caught.
Segmentation violation correctly detected.
Segmentation violation correctly detected.
Test passed.
Info on stack
attached a process to dbx and found below details
Waiting to attach to process 7733970 ...
Successfully attached to test-sigsegv-catch-stackoverflow.
Type 'help' for help.
reading symbolic information ...
stopped in is_mapped at line 621 in file ""
is_mapped(addr = 9), line 621 in "stackvma.c"
is_unmapped(addr1 = 4, addr2 = 15), line 768 in "stackvma.c"
mincore_is_near_this(addr = 10, vma = 0x0000000111001fb8), line 793 in
"stackvma.c"
unnamed block in sigsegv.sigsegv_handler(sig = 11, sip = 0x0000000111002310,
ucp = 0x0000000111002060), line 973 in "sigsegv.c"
unnamed block in sigsegv.sigsegv_handler(sig = 11, sip = 0x0000000111002310,
ucp = 0x0000000111002060), line 973 in "sigsegv.c"
sigsegv.sigsegv_handler(sig = 11, sip = 0x0000000111002310, ucp =
0x0000000111002060), line 973 in "sigsegv.c"
main(), line 183 in "test-sigsegv-catch-stackoverflow2.c"
code snippet
location:/home/buildusr/rpmbuild/BUILD/m4-1.4.19/64bit/lib/stackvma.c
seems like its stuck here in for loop
754 for (;;)
755 {
756 uintptr_t addr_stepsize;
757 uintptr_t i;
758 uintptr_t addr;
759
760 stepsize = stepsize / 2;
761 if (stepsize == 0)
762 break;
763 addr_stepsize = stepsize * pagesize;
764 for (i = stepsize, addr = addr1 + addr_stepsize;
765 i < count;
766 i += 2 * stepsize, addr += 2 * addr_stepsize)
767 /* Here addr = addr1 + i * pagesize. */
768 if (is_mapped (addr))
769 return 0;
770 }
configure details
./configure --prefix=%{_prefix} \
--mandir=%{_mandir} \
--infodir=%{_infodir} \
--enable-largefile
Thanks,
Neha Jain