[Pkg-julia-devel] Bug#816980: julia: FTBFS in testing

Santiago Vila sanvila at unex.es
Thu Apr 28 15:31:25 UTC 2016


severity 816980 normal
retitle 816980 julia: Please do not use more CPUs than available.
thanks

Sorry, I can't reproduce this consistently, but when the problem
happens, I see a segfault like this in dmesg:

[ 5377.752190] julia[21086]: segfault at 20000ffe2 ip 00007f033628b807 sp 00007ffc819cbdb0 error 4 in libjulia.so[7f03361ed000+eb000]

which I think it is the result of bad memory handling.

Version 0.3 for this program used to build ok.

Now the build is not reliable, at least for me.

I think part of the problem is that parallel builds are enabled no
matter the number of CPUs I have. In the logs, I see this:

env JULIA_CPU_CORES=2 [...]

and in fact debian/rules has this:

# Set number of parallel workers for tests
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
TESTS_ENV += JULIA_CPU_CORES=$(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
else ifeq (,$(filter parallel,$(DEB_BUILD_OPTIONS)))
TESTS_ENV += JULIA_CPU_CORES=2
endif


I'm not sure if this is policy compliant or not, but I think the
number of cores to be used should be limited in either case by the number
of actual CPUs available, as there is little point in using parallel
builds (or parallel workers for test suite) when you have only one CPU.

That's also a waste of memory because the build will never be faster
that way when using a single CPU.

So, I'm going to consider this as a (normal) bug in the build system itself:

Please limit the number of concurrent tasks to the number of
available CPUs (or just assume a single CPU if there is no "parallel="
in DEB_BUILD_OPTIONS).

We have Build-Depends. We don't have Memory-Depends (yet).

Autobuilders probably have plenty of memory, maybe more than the most
memory demanding source package, but that does not mean we should
waste memory by having processes in parallel when it means no gain in
build time.

Thanks.



More information about the Pkg-julia-devel mailing list