[Python-Dev] FreeBSD 7 amd64 and large memory tests (original) (raw)
Andrew MacIntyre andymac at bullseye.apana.org.au
Mon Sep 15 16🔞40 CEST 2008
- Previous message: [Python-Dev] ',' precedence in documentation]
- Next message: [Python-Dev] FreeBSD 7 amd64 and large memory tests
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
I noticed issue 3862 (http://bugs.python.org/issue3862), which appears to be exposed only on FreeBSD 7.0 amd64 (perhaps 64 bit FreeBSD 7, but amd64 is the only 64bit hardware I can check).
As far as I can make out from a couple of quick checks, this appears to be happening because the process is killed before the malloc() that exhausts the available swap space is allowed to report an out of memory condition.
FreeBSD's default process virtual memory limit (ulimit -v) on both i386 and amd64 is "unlimited" for 6.3 and 7.0. Setting ulimit -v to a finite value on 7.0 amd64 seems to give rise to "normal" malloc() behaviour so that test_array passes.
FreeBSD 7 uses a different malloc() implementation than FreeBSD 6 and earlier, and the new implementation uses mmap() in preference to sbrk(). So I suspect that behaviour was "normal" on FreeBSD 6 amd64 (can't test at the moment as I don't have that installed anywhere). Behaviour appears "normal" on FreeBSD 7 i386 as well.
I haven't yet tried posting a query to a FreeBSD list, as it could simply be a bug on amd64, but I was wondering whether there was anything (other than deactivating tests and documenting use of ulimit -v on this platform) that could be done to work around this behaviour.
Andrew.
--
Andrew I MacIntyre "These thoughts are mine alone..." E-mail: andymac at bullseye.apana.org.au (pref) | Snail: PO Box 370 andymac at pcug.org.au (alt) | Belconnen ACT 2616 Web: http://www.andymac.org/ | Australia
- Previous message: [Python-Dev] ',' precedence in documentation]
- Next message: [Python-Dev] FreeBSD 7 amd64 and large memory tests
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]