epsilon-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GNU poke 2.90.0 on Linux/x86_64


From: Arsen Arsenović
Subject: Re: GNU poke 2.90.0 on Linux/x86_64
Date: Mon, 23 Jan 2023 00:49:52 +0100

[CC += Luca, epsilon-devel]

Bruno Haible <bruno@clisp.org> writes:

> On a Linux/x86_64 system, with CC="gcc -ftrapv", I see these test failures:
>
> # of unexpected failures        10
>
> Running /media/develdata/devel/build/poke-2.90.0/testsuite/poke.cmd/cmd.exp 
> ...
> Running 
> /media/develdata/devel/build/poke-2.90.0/testsuite/poke.libpoke/libpoke.exp 
> ...
> Running /media/develdata/devel/build/poke-2.90.0/testsuite/poke.map/map.exp 
> ...
> Running 
> /media/develdata/devel/build/poke-2.90.0/testsuite/poke.pickles/pickles.exp 
> ...
> FAIL: /media/develdata/devel/build/poke-2.90.0/build-64/testsuite/../poke/poke
> killed: 2380586 exp6 0 0 CHILDKILLED SIGABRT SIGABRT
> FAIL: /media/develdata/devel/build/poke-2.90.0/build-64/testsuite/../poke/poke
> killed: 2380649 exp6 0 0 CHILDKILLED SIGABRT SIGABRT
> FAIL: /media/develdata/devel/build/poke-2.90.0/build-64/testsuite/../poke/poke
> killed: 2380991 exp6 0 0 CHILDKILLED SIGABRT SIGABRT
> FAIL: /media/develdata/devel/build/poke-2.90.0/build-64/testsuite/../poke/poke
> killed: 2381116 exp6 0 0 CHILDKILLED SIGABRT SIGABRT
> Running /media/develdata/devel/build/poke-2.90.0/testsuite/poke.pkl/pkl.exp 
> ...
> FAIL: poke.pkl/cdiv-integers-overflow-1.pk execution test
> FAIL: poke.pkl/div-integers-overflow-1.pk execution test
> FAIL: poke.pkl/mod-integers-overflow-1.pk execution test
> FAIL: poke.pkl/neg-int-overflow-1.pk execution test
> FAIL: poke.pkl/sl-integers-4.pk execution test
> FAIL: poke.pkl/sub-integers-overflow-1.pk execution test

OK, reduced these tests.  They all appear to stem from the same signed
underflow in jitter_distance_from.  Backtrace:

#!!# 0x8000_0000U

Thread 1 "poke" received signal SIGABRT, Aborted.
__pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, 
no_tid=no_tid@entry=0) at pthread_kill.c:44
44           return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO 
(ret) : 0;
(gdb) bt
#0  __pthread_kill_implementation (threadid=<optimized out>, 
signo=signo@entry=6, no_tid=no_tid@entry=0)
    at pthread_kill.c:44
#1  0x00007ffff7d0605f in __pthread_kill_internal (signo=6, threadid=<optimized 
out>) at pthread_kill.c:78
#2  0x00007ffff7cb6972 in __GI_raise (sig=sig@entry=6) at 
../sysdeps/posix/raise.c:26
#3  0x00007ffff7ca046f in __GI_abort () at abort.c:79
#4  0x00007ffff7f78fbf in __subvdi3 () from 
/home/arsen/gnu/poke/_build_bruno/libpoke/.libs/libpoke.so.0
#5  0x00007ffff7f6e60e in jitter_distance_from (
    destination_p=destination_p@entry=0x80000000000000f9 <error: Cannot access 
memory at address 0x80000000000000f9>, from_p=from_p@entry=0x7ffff28f3de6 
'\377' <repeats 200 times>...)
    at ../../jitter/machine/x86_64/jitter/machine/jitter-machine-c.c:51
#6  0x00007ffff7f6e62a in jitter_snippet_for_loading_register (
    immediate_pointer=immediate_pointer@entry=0x7fffffffccd0 <incomplete 
sequence \371>, 
    residual_register_index=residual_register_index@entry=0, 
    loading_code_to_write=loading_code_to_write@entry=0x7ffff28f3de6 '\377' 
<repeats 200 times>...)
    at ../../jitter/machine/x86_64/jitter/machine/jitter-machine-c.c:61
#7  0x00007ffff7f70bc8 in jitter_snippet_for_loading (
    immediate_pointer=immediate_pointer@entry=0x7fffffffccd0 <incomplete 
sequence \371>, 
    residual_index=residual_index@entry=0, 
    loading_code_to_write=loading_code_to_write@entry=0x7ffff28f3de6 '\377' 
<repeats 200 times>...)
    at ../../jitter/jitter/jitter-patch.c:54
#8  0x00007ffff7f719da in jitter_replicate_program (p=p@entry=0x5555562a1490)
    at ../../jitter/jitter/jitter-replicate.c:353
#9  0x00007ffff7f74d7f in jitter_make_executable_routine (p=0x5555562a1490)
    at ../../jitter/jitter/jitter-specialize.c:356
#10 0x00007ffff7f7479f in jitter_routine_make_executable_if_needed 
(r=<optimized out>)
    at ../../jitter/jitter/jitter-routine.c:94
#11 0x00007ffff7f2a64b in pvm_program_make_executable 
(program=program@entry=0x7ffff3775e70)
    at ../../libpoke/pvm-program.c:248
#12 0x00007ffff7eab16f in pkl_execute_statement (compiler=0x5555555b4cb0, 
    buffer=buffer@entry=0x555556042f10 "0x8000_0000U;", 
source=source@entry=0x55555556d210 "<stdin>", 
    line=line@entry=1, column=column@entry=1, end=end@entry=0x7fffffffcea0, 
val=0x7fffffffce60, exit_exception=0x7fffffffcea8) at ../../libpoke/pkl.c:396
#13 0x00007ffff7ea8fac in pk_compile_statement_with_loc (pkc=0x5555555a9540, 
buffer=buffer@entry=0x555556042f10 "0x8000_0000U;", 
source=source@entry=0x55555556d210 "<stdin>", line=line@entry=1, 
column=column@entry=1, end=end@entry=0x7fffffffcea0, valp=0x7fffffffceb0, 
exit_exception=0x7fffffffcea8) at ../../libpoke/libpoke.c:167
#14 0x000055555555e35b in pk_cmd_exec (str=str@entry=0x555556326f10 
"0x8000_0000U") at ../../poke/pk-cmd.c:662
#15 0x000055555555d3ae in pk_repl () at ../../poke/pk-repl.c:409
#16 0x000055555555bca9 in main (argc=1, argv=0x7fffffffd0d8) at 
../../poke/poke.c:840
The reproduction is quite simple: build poke as Bruno described, and try
to evaluate 0x8000_0000U.  AFAICT, all tests that failed are some
variation of this.

This requires no-threading, since it's a codegen bug.  All tests pass
with direct-threading.

> Find attached the poke.log. (Btw, why does it contains some Windows-style
> newlines at some places?)


-- 
Arsen Arsenović

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]