You can subscribe to this list here.
| 2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(33) |
Dec
(20) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(7) |
Feb
(44) |
Mar
(51) |
Apr
(43) |
May
(43) |
Jun
(36) |
Jul
(61) |
Aug
(44) |
Sep
(25) |
Oct
(82) |
Nov
(97) |
Dec
(47) |
| 2005 |
Jan
(77) |
Feb
(143) |
Mar
(42) |
Apr
(31) |
May
(93) |
Jun
(93) |
Jul
(35) |
Aug
(78) |
Sep
(56) |
Oct
(44) |
Nov
(72) |
Dec
(75) |
| 2006 |
Jan
(116) |
Feb
(99) |
Mar
(181) |
Apr
(171) |
May
(112) |
Jun
(86) |
Jul
(91) |
Aug
(111) |
Sep
(77) |
Oct
(72) |
Nov
(57) |
Dec
(51) |
| 2007 |
Jan
(64) |
Feb
(116) |
Mar
(70) |
Apr
(74) |
May
(53) |
Jun
(40) |
Jul
(519) |
Aug
(151) |
Sep
(132) |
Oct
(74) |
Nov
(282) |
Dec
(190) |
| 2008 |
Jan
(141) |
Feb
(67) |
Mar
(69) |
Apr
(96) |
May
(227) |
Jun
(404) |
Jul
(399) |
Aug
(96) |
Sep
(120) |
Oct
(205) |
Nov
(126) |
Dec
(261) |
| 2009 |
Jan
(136) |
Feb
(136) |
Mar
(119) |
Apr
(124) |
May
(155) |
Jun
(98) |
Jul
(136) |
Aug
(292) |
Sep
(174) |
Oct
(126) |
Nov
(126) |
Dec
(79) |
| 2010 |
Jan
(109) |
Feb
(83) |
Mar
(139) |
Apr
(91) |
May
(79) |
Jun
(164) |
Jul
(184) |
Aug
(146) |
Sep
(163) |
Oct
(128) |
Nov
(70) |
Dec
(73) |
| 2011 |
Jan
(235) |
Feb
(165) |
Mar
(147) |
Apr
(86) |
May
(74) |
Jun
(118) |
Jul
(65) |
Aug
(75) |
Sep
(162) |
Oct
(94) |
Nov
(48) |
Dec
(44) |
| 2012 |
Jan
(49) |
Feb
(40) |
Mar
(88) |
Apr
(35) |
May
(52) |
Jun
(69) |
Jul
(90) |
Aug
(123) |
Sep
(112) |
Oct
(120) |
Nov
(105) |
Dec
(116) |
| 2013 |
Jan
(76) |
Feb
(26) |
Mar
(78) |
Apr
(43) |
May
(61) |
Jun
(53) |
Jul
(147) |
Aug
(85) |
Sep
(83) |
Oct
(122) |
Nov
(18) |
Dec
(27) |
| 2014 |
Jan
(58) |
Feb
(25) |
Mar
(49) |
Apr
(17) |
May
(29) |
Jun
(39) |
Jul
(53) |
Aug
(52) |
Sep
(35) |
Oct
(47) |
Nov
(110) |
Dec
(27) |
| 2015 |
Jan
(50) |
Feb
(93) |
Mar
(96) |
Apr
(30) |
May
(55) |
Jun
(83) |
Jul
(44) |
Aug
(8) |
Sep
(5) |
Oct
|
Nov
(1) |
Dec
(1) |
| 2016 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
(2) |
Jul
|
Aug
(3) |
Sep
(1) |
Oct
(3) |
Nov
|
Dec
|
| 2017 |
Jan
|
Feb
(5) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(3) |
Aug
|
Sep
(7) |
Oct
|
Nov
|
Dec
|
| 2018 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
1
(2) |
2
(3) |
3
(7) |
4
(8) |
5
(10) |
6
(4) |
7
|
|
8
|
9
(13) |
10
(1) |
11
(10) |
12
(4) |
13
|
14
|
|
15
|
16
(1) |
17
|
18
(3) |
19
(7) |
20
|
21
(4) |
|
22
|
23
(14) |
24
(5) |
25
(3) |
26
(3) |
27
(8) |
28
(1) |
|
29
(3) |
30
(2) |
31
(3) |
|
|
|
|
|
From: Karen T. <kmt...@gm...> - 2009-03-28 23:58:47
|
On Fri, Mar 27, 2009 at 5:11 PM, John Hunter <jd...@gm...> wrote: > On Fri, Mar 27, 2009 at 1:23 PM, Karen Tracey <kmt...@gm...> wrote: > >> With the above change to make the texd and _fontd caches per-instance, the >> script has finished successfully 4 times. Seems pretty convincing evidence >> that it fixes the problem. >> > > OK, I made this change to svn r7008. We probably do not gain *that much* > by caching across renderers anyhow. > > Cool, thanks! > >> >> Also, make sure you have disabled usetex in matplotlibrc, since the use of >>> the filesystem for caching the tex datafiles is probably not thread safe. >>> My guess is that the font cache on the file system is not thread safe >>> either, but this may only affect the first run of mpl after a clean install. >>> >> >> Not sure what matplotlibrc is? I found a file >> /usr/share/matplotlib/matplotlib.conf that has usetex set to False. Is that >> it? If so I guess it's been disabled all along, this is not something I >> have fiddled with. >> > > matplotlib.conf is an experimental config that is no longer in use (but it > won't hurt you to have it lying around). See > http://matplotlib.sourceforge.net/users/customizing.html for details on > the matplotlibrc file > Hmm, the Ubuntu packaging for matplotlib seems to put a copy of matplotlibrc only in /etc, where, I gather, it will not ever be used by matplotlib? I guess one is supposed to copy it to one's home directory and do per-user customization there. For my case, where the code is running under Apache, I'd guess no matplotlibrc is being found so all defaults are being used. > > No need for data files -- just use np.random.rand to make up some random > data for plotting. That keeps things simple and small, and you can post the > script to the list, and hopefully we can find a home for it in our unit > tests. > OK, I reduced it to a bare minimum, using random data. I removed stuff that was in my code like customizing colors, highlighting a particular bar, and even setting of the title and axis labels since it turns out none of that is necessary to trip the exception. I'll append below a script that reliably reproduces the error on my machine. 8 threads at 50 iterations seems sure to hit it, fewer threads or fewer iterations may not. Hope this is helpful, Karen #! /usr/bin/python import os import threading import traceback import numpy as np from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas from matplotlib.figure import Figure thread_count = 8 max_iterations = 50 exception_raised = False def png_thread(tn): png_fname = 'out%d.png' % tn vals = 100 + 15 * np.random.randn(10000) i = 0 excp = None global exception_raised while not exception_raised and i < max_iterations: i += 1 png_f = open(png_fname, 'wb') try: fig = Figure() ax = fig.add_subplot(111) ax.hist(vals, 50) FigureCanvas(fig).print_png(png_f) except Exception, excp: pass png_f.close() if excp: print 'png_thread %d failed on iteration %d:' % (tn, i) print traceback.format_exc(excp) exception_raised = True else: print 'png_thread %d completed iteration %d.' % (tn, i) os.unlink(png_fname) def main(tc): threads = [] for i in range(tc): threads.append(threading.Thread(target=png_thread, args=(i+1,))) for t in threads: t.start() for t in threads: t.join() if not exception_raised: msg = 'Success! %d threads completed %d iterations with no exceptions raised.' else: msg = 'Failed! Exception raised before %d threads completed %d iterations.' print msg % (tc, max_iterations) if __name__== "__main__": main(thread_count) |