EYE test case core dumped with SWI-Prolog 8.1.21

Hi Jan,

The following test case https://github.com/josd/brain/tree/master/fib
has always been running fine but now we get the following crash:

$ ./test
eye http://josd.github.io/brain/fib/fib.n3 --query http://josd.github.io/brain/fib/fibQ.n3
EYE v20.0203.2202 josd
SWI-Prolog 8.1.21 (x86_64-linux): Feb 3 2020, 23:40:52
starting 72 [msec cputime] 87 [msec walltime]
GET http://josd.github.io/brain/fib/fib.n3 SC=4
GET http://josd.github.io/brain/fib/fibQ.n3 SC=3
networking 12 [msec cputime] 482 [msec walltime]
[Thread 1 (main) at Mon Feb 3 23:55:13 2020] /home/jdroo/github.com/SWI-Prolog/swipl-devel/src/pl-comp.c:4129: skipArgs: Assertion failed: 0
C-stack trace labeled “assert_fail”:
[0] save_backtrace() at /home/jdroo/github.com/SWI-Prolog/swipl-devel/src/os/pl-cstack.c:332 [0x7f4c7df60e5b]
[1] __assert_fail() at /home/jdroo/github.com/SWI-Prolog/swipl-devel/src/pl-assert.c:106 [0x7f4c7df201a7]
[2] skipArgs() at /home/jdroo/github.com/SWI-Prolog/swipl-devel/src/pl-comp.c:4129 (discriminator 1) [0x7f4c7deb3a4e]
[3] indexKeyFromClause() at /home/jdroo/github.com/SWI-Prolog/swipl-devel/src/pl-index.c:1313 [0x7f4c7de784c8]
[4] addClauseToListIndexes() at /home/jdroo/github.com/SWI-Prolog/swipl-devel/src/pl-index.c:776 (discriminator 1) [0x7f4c7de79c1a]
[5] reconsider_index() at /home/jdroo/github.com/SWI-Prolog/swipl-devel/src/pl-index.c:1228 [0x7f4c7de7b0c6]
[6] assertDefinition() at /home/jdroo/github.com/SWI-Prolog/swipl-devel/src/pl-proc.c:1264 [0x7f4c7ded90e2]
[7] assert_term() at /home/jdroo/github.com/SWI-Prolog/swipl-devel/src/pl-comp.c:3780 [0x7f4c7deb34bf]
[8] pl_assertz11_va() at /home/jdroo/github.com/SWI-Prolog/swipl-devel/src/pl-comp.c:3793 [0x7f4c7deb36a6]
[9] PL_next_solution() at /home/jdroo/github.com/SWI-Prolog/swipl-devel/src/pl-vmi.c:3772 [0x7f4c7de8d859]
[10] query_loop() at /home/jdroo/github.com/SWI-Prolog/swipl-devel/src/pl-pro.c:141 [0x7f4c7ded626e]
[11] prologToplevel() at /home/jdroo/github.com/SWI-Prolog/swipl-devel/src/pl-pro.c:482 [0x7f4c7ded6b1b]
[12] PL_initialise() at /home/jdroo/github.com/SWI-Prolog/swipl-devel/src/pl-init.c:1084 [0x7f4c7df17cb0]
[13] swipl(+0x6e9) [0x55fc0a6776e9]
[14] __libc_start_main() at /build/glibc-OTsEL5/glibc-2.27/csu/…/csu/libc-start.c:344 [0x7f4c7da7db97]
[15] swipl(+0x73a) [0x55fc0a67773a]
Aborted (core dumped)
eye --nope http://josd.github.io/brain/fib/fib.n3 --query http://josd.github.io/brain/fib/fibQ.n3
EYE v20.0203.2202 josd
SWI-Prolog 8.1.21 (x86_64-linux): Feb 3 2020, 23:40:52
starting 73 [msec cputime] 88 [msec walltime]
GET http://josd.github.io/brain/fib/fib.n3 SC=4
GET http://josd.github.io/brain/fib/fibQ.n3 SC=3
networking 13 [msec cputime] 437 [msec walltime]
reasoning 12 [msec cputime] 12 [msec walltime]
2020-02-03T22:55:14.663Z in=7 out=3 ent=3 step=3 brake=1 inf=30945 sec=0.098 inf/sec=315765

It happens with swipl-devel commit c08d28dd912213339235acaf3ba12180d7bb294b

Kind regards,
Jos

Thanks Jos. This isn’t the 1.21 release, but the current git head with the rational number support. The function skipArgs() didn’t support the new rational VM instructions. Added (but not tested).

Note that this brought more changes to SWI-Prolog.h, currently breaking JPL. I’ll check that out later.

Pushed an update for JPL. Now passes its tests again. I guess it doesn’t support rationals though :slight_smile:

1 Like

Thanks Jan and it now builds fine and all our tests work again :slight_smile:
Will also use the version_git and version_data flags from now on.

1 Like