id summary reporter owner description type status priority milestone component resolution keywords cc merged author reviewer upstream work_issues branch commit dependencies stopgaps
13826 Race condition in star_imports cache vbraun GeorgSWeber "See https://groups.google.com/d/topic/sage-devel/SN88f9qEIV8/discussion
The patchbot there sporadically fails on various tests with errors of
the type
{{{
Traceback (most recent call last):
File ""/mnt/storage2TB/patchbot/.sage/tmp/
volker_desktop.stp.dias.ie-14095/multireplace_29004.py"", line 6, in
from sage.all_cmdline import *;
File ""/mnt/storage2TB/patchbot/Sage/sage-5.5.rc0/local/lib/python/
site-packages/sage/all_cmdline.py"", line 14, in
from sage.all import *
File ""/mnt/storage2TB/patchbot/Sage/sage-5.5.rc0/local/lib/python/
site-packages/sage/all.py"", line 72, in
from sage.rings.all import *
File ""/mnt/storage2TB/patchbot/Sage/sage-5.5.rc0/local/lib/python/
site-packages/sage/rings/all.py"", line 169, in
lazy_import(""sage.rings.universal_cyclotomic_field.all"",""*"")
File ""lazy_import.pyx"", line 850, in
sage.misc.lazy_import.lazy_import (sage/misc/lazy_import.c:5168)
names[ix:ix+1] = get_star_imports(module)
File ""lazy_import.pyx"", line 900, in
sage.misc.lazy_import.get_star_imports (sage/misc/lazy_import.c:5924)
star_imports = pickle.load(open(cache_file))
EOFError
}}}
The patchbot is on a separate harddisk, mounted under /mnt/storage2TB. But my temp directory is tmpfs. So the pickle is moved across block devices, which is of course not atomic. Hence the patchbot sometimes dies here while opening a half-written file. The temporary file should be created in the target directory, only then can we be sure that the move is atomic.
'''Apply''' [attachment:13826_star_imports_race_v2.patch]" defect closed critical sage-5.9 build fixed nbruin robertwb sage-5.9.rc0 Volker Braun, Jeroen Demeyer Volker Braun N/A #14292