[issue41540] Test test_maxcontext_exact_arith (_decimal) consumes all memory on AIX
Stefan Krah
report at bugs.python.org
Sat Aug 15 11:06:39 EDT 2020
Stefan Krah <stefan at bytereef.org> added the comment:
> -qmaxmem affects the compiler optimization.
I know, that's just from the Python README.AIX. I didn't expect it to have any influence.
> -Wl,-bmaxdata:0x800000000 is a GCC command line option.
That is indeed surprising. Linking is prepared by a script:
$ ./Modules/makexp_aix Modules/python.exp . libpython3.10.a; xlc -L/usr/lib64 -q64 -Wl,-bmaxdata:0x800000000 -Wl,-bE:Modules/python.exp -lld -o python Programs/python.o libpython3.10.a -lintl -ldl -lpthread -lm -lm
The xlc command runs without warnings or errors.
Without Wl,-bmaxdata:0x800000000
================================
$ ./python -m test -uall test_decimal
0:00:00 Run tests sequentially
0:00:00 [1/1] test_decimal
Killed
With Wl,-bmaxdata:0x800000000
=============================
$ ./python -m test -uall test_decimal
0:00:00 Run tests sequentially
0:00:00 [1/1] test_decimal
== Tests result: SUCCESS ==
1 test OK.
Total duration: 17.3 sec
Tests result: SUCCESS
> On the other hand, -bmaxdata behaves differently in 32 bit mode and 64 bit mode. In 32 bit mode, it increases the heap size from the default 256MB. In 64 bit mode, it sets a guaranteed maximum size for the heap.
Yes, that's what I expected. The test only allocates that much memory
for 64-bit builds. The workaround only needs to be enabled for 64-bit.
So a memory softlimit, same as e.g. djb uses for qmail with his
softlimit program, is exactly what I was looking for.
> I sort of think that the solution desired for the testcase is PSALLOC=early to match traditional Unix/Linux malloc() behavior.
I can try that, but our test suite might complain about the environment
being modified.
----------
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue41540>
_______________________________________
More information about the Python-bugs-list
mailing list