#11686: Race condition in matplotlib mkdir()
------------------------+---------------------------------------------------
Reporter: jdemeyer | Owner: tbd
Type: defect | Status: new
Priority: minor | Milestone: sage-4.7.2
Component: packages | Keywords:
Work_issues: | Upstream: N/A
Reviewer: | Author:
Merged: | Dependencies:
------------------------+---------------------------------------------------
I regularly see this error when testing on the buildbot:
{{{
sage -t -long -force_lib devel/sage/doc/de/tutorial/tour_functions.rst
**********************************************************************
File
"/Users/buildbot/build/sage/bsd-1/bsd_64_upgrade/build/sage-4.5.3-4.7.1/devel
/sage-main/doc/de/tutorial/tour_functions.rst", line 24:
sage: plot(f, 0, 2)
Exception raised:
Traceback (most recent call last):
File
"/Users/buildbot/build/sage/bsd-1/bsd_64_upgrade/build/sage-4.5.3-4.7.1/local/bin/ncadoctest.py",
line 1231, in run_one_test
self.run_one_example(test, example, filename, compileflags)
File
"/Users/buildbot/build/sage/bsd-1/bsd_64_upgrade/build/sage-4.5.3-4.7.1/local/bin/sagedoctest.py",
line 38, in run_one_example
OrigDocTestRunner.run_one_example(self, test, example, filename,
compileflags)
File
"/Users/buildbot/build/sage/bsd-1/bsd_64_upgrade/build/sage-4.5.3-4.7.1/local/bin/ncadoctest.py",
line 1172, in run_one_example
compileflags, 1) in test.globs
File "<doctest __main__.example_0[5]>", line 1, in <module>
plot(f, Integer(0), Integer(2))###line 24:
sage: plot(f, 0, 2)
File
"/Users/buildbot/build/sage/bsd-1/bsd_64_upgrade/build/sage-4.5.3-4.7.1/local/lib/python
/site-packages/sage/misc/displayhook.py", line 174, in displayhook
print_obj(sys.stdout, obj)
File
"/Users/buildbot/build/sage/bsd-1/bsd_64_upgrade/build/sage-4.5.3-4.7.1/local/lib/python
/site-packages/sage/misc/displayhook.py", line 142, in print_obj
print >>out_stream, `obj`
File "sage_object.pyx", line 154, in
sage.structure.sage_object.SageObject.__repr__
(sage/structure/sage_object.c:1463)
File
"/Users/buildbot/build/sage/bsd-1/bsd_64_upgrade/build/sage-4.5.3-4.7.1/local/lib/python
/site-packages/sage/plot/plot.py", line 1081, in _repr_
self.show()
File
"/Users/buildbot/build/sage/bsd-1/bsd_64_upgrade/build/sage-4.5.3-4.7.1/local/lib/python
/site-packages/sage/misc/decorators.py", line 426, in wrapper
return func(*args, **kwds)
File
"/Users/buildbot/build/sage/bsd-1/bsd_64_upgrade/build/sage-4.5.3-4.7.1/local/lib/python
/site-packages/sage/plot/plot.py", line 1723, in show
self.save(DOCTEST_MODE_FILE, **kwds)
File
"/Users/buildbot/build/sage/bsd-1/bsd_64_upgrade/build/sage-4.5.3-4.7.1/local/lib/python
/site-packages/sage/misc/decorators.py", line 426, in wrapper
return func(*args, **kwds)
File
"/Users/buildbot/build/sage/bsd-1/bsd_64_upgrade/build/sage-4.5.3-4.7.1/local/lib/python
/site-packages/sage/plot/plot.py", line 2453, in save
figure = self.matplotlib(**options)
File
"/Users/buildbot/build/sage/bsd-1/bsd_64_upgrade/build/sage-4.5.3-4.7.1/local/lib/python
/site-packages/sage/plot/plot.py", line 1930, in matplotlib
from matplotlib.figure import Figure, figaspect
File
"/Users/buildbot/build/sage/bsd-1/bsd_64_upgrade/build/sage-4.5.3-4.7.1/local/lib/python
/site-packages/matplotlib/figure.py", line 18, in <module>
from axes import Axes, SubplotBase, subplot_class_factory
File
"/Users/buildbot/build/sage/bsd-1/bsd_64_upgrade/build/sage-4.5.3-4.7.1/local/lib/python
/site-packages/matplotlib/axes.py", line 18, in <module>
import matplotlib.contour as mcontour
File
"/Users/buildbot/build/sage/bsd-1/bsd_64_upgrade/build/sage-4.5.3-4.7.1/local/lib/python
/site-packages/matplotlib/contour.py", line 21, in <module>
import matplotlib.texmanager as texmanager
File
"/Users/buildbot/build/sage/bsd-1/bsd_64_upgrade/build/sage-4.5.3-4.7.1/local/lib/python
/site-packages/matplotlib/texmanager.py", line 72, in <module>
class TexManager:
File
"/Users/buildbot/build/sage/bsd-1/bsd_64_upgrade/build/sage-4.5.3-4.7.1/local/lib/python
/site-packages/matplotlib/texmanager.py", line 92, in TexManager
os.mkdir(texcache)
OSError: [Errno 17] File exists:
'/tmp/dot_sage.WboXjWq0ow/matplotlib-1.0.1/tex.cache'
}}}
The problem looks to be the following race condition in the matplotlib
code:
{{{
if not os.path.exists(texcache):
os.mkdir(texcache)
}}}
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/11686>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.