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

Reply via email to