gap-packages / io

GAP package IO to do input and output
https://gap-packages.github.io/io/
Other
14 stars 14 forks source link

Test failure with memory-checking enabled #124

Closed orlitzky closed 1 month ago

orlitzky commented 7 months ago

After https://github.com/gap-packages/io/commit/4d38b747e47e3e76252dcfa591aec27fad586b87, the test suite fails if GAP is built with memory-checking enabled:

testing: /var/lib/portage/tmp/portage/dev-gap/io-4.8.2-r1/temp/pkg/io-4.8.2/ts\
t/sendstringbackground.tst
########> Diff in /var/lib/portage/tmp/portage/dev-gap/io-4.8.2-r1/temp/p\
kg/io-4.8.2/tst/sendstringbackground.tst:2
# Input is:
IsBound(HPCGAP) or ForAll([1..1000], x -> IO_SendStringBackground(f, "cheese")\
);
# Expected output:
true
# But found:
Error, List Element: <list> must be a list (not an object map)
########
   -1573 ms (0 ms GC) and 19.4KB allocated for sendstringbackground.tst
testing: /var/lib/portage/tmp/portage/dev-gap/io-4.8.2-r1/temp/pkg/io-4.8.2/ts\
t/testgap.tst
Panic in src/gasman.c:2077: incorrectly marked DEAD bag
/var/lib/portage/tmp/portage/dev-gap/io-4.8.2-r1/temp/environment: line 1199:    25 Segmentation fault      ${gapcmd}

I noticed this while testing 4.13.0-alpha1 but it looks like it happens in 4.12.2 as well.

fingolfin commented 7 months ago

Thank you for the report.

I don't see how 4d38b747e47e3e76252dcfa591aec27fad586b87 could be causing this. That commit fixed another issue, but the error you quote involves an object map. So I am pretty sure this is a red herring.

This rather looks as if somewhere a CHANGED_BAG call is missing...

orlitzky commented 7 months ago

You're probably right. I know for sure that I tested 4.12.2 (w/ memory checking) with vanilla io-4.8.2, but it was probably before I realized that gap ... | tee needs -o pipefail to catch the failing tests.

fingolfin commented 1 month ago

Nothing I can reproduce here, so closing. Feel free to reopen if you have additional info. And as always: thanks for taking the time to report this.