My (complete) guess is that there are so many partitions of 50 (204226 to be precise) and in such a tight for loop that the garbage collector does not have enough time to actually collect the parents being created and discarded. Maybe also other stuff in tableau.py built up is causing a memory problem? Could you try inserting a `gc.collect()` in the for loop and seeing if the file passes after that?
Best, Travis On Tuesday, February 12, 2019 at 7:52:09 AM UTC+10, Dima Pasechnik wrote: > > I see similar errors on Fedora 26 > > On Mon, Feb 11, 2019 at 9:19 PM Steven Trogdon <steven....@gmail.com > <javascript:>> wrote: > > > > When individually doctesting tableau.py with vanilla 8.7.beta3 I see: > > > > sage -t --long src/sage/combinat/tableau.py # Bad exit: 1 > > > > The source is > > > > Trying (line 7735): StandardTableaux(50).cardinality() # long time > > Expecting: > > 27886995605342342839104615869259776 > > ********************************************************************** > > File "src/sage/combinat/tableau.py", line 7735, in > sage.combinat.tableau.StandardTableaux_size.cardinality > > Failed example: > > StandardTableaux(50).cardinality() # long time > > Exception raised: > > Traceback (most recent call last): > > File > "/64bitdev/storage/sage-git_develop/sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", > > line 671, in _run > > self.compile_and_execute(example, compiler, test.globs) > > File > "/64bitdev/storage/sage-git_develop/sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", > > line 1095, in compile_and_execute > > exec(compiled, globs) > > File "<doctest > sage.combinat.tableau.StandardTableaux_size.cardinality[4]>", line 1, in > <module> > > StandardTableaux(Integer(50)).cardinality() # long time > > File "sage/misc/lazy_import.pyx", line 354, in > sage.misc.lazy_import.LazyImport.__call__ > (build/cythonized/sage/misc/lazy_import.c:3683) > > return self.get_object()(*args, **kwds) > > File "sage/misc/classcall_metaclass.pyx", line 330, in > sage.misc.classcall_metaclass.ClasscallMetaclass.__call__ > (build/cythonized/sage/misc/classcall_metaclass.c:1700) > > return cls.classcall(cls, *args, **kwds) > > File > "/64bitdev/storage/sage-git_develop/sage/local/lib/python2.7/site-packages/sage/combinat/tableau.py", > > line 7568, in __classcall_private__ > > return StandardTableaux_size(n) > > File "sage/misc/classcall_metaclass.pyx", line 330, in > sage.misc.classcall_metaclass.ClasscallMetaclass.__call__ > (build/cythonized/sage/misc/classcall_metaclass.c:1700) > > return cls.classcall(cls, *args, **kwds) > > File "sage/misc/cachefunc.pyx", line 1005, in > sage.misc.cachefunc.CachedFunction.__call__ > (build/cythonized/sage/misc/cachefunc.c:6067) > > w = self.f(*args, **kwds) > > File > "/64bitdev/storage/sage-git_develop/sage/local/lib/python2.7/site-packages/sage/structure/unique_representation.py", > > line 1027, in __classcall__ > > instance = typecall(cls, *args, **options) > > File "sage/misc/classcall_metaclass.pyx", line 497, in > sage.misc.classcall_metaclass.typecall > (build/cythonized/sage/misc/classcall_metaclass.c:2150) > > return (<PyTypeObject*>type).tp_call(cls, args, kwds) > > File > "/64bitdev/storage/sage-git_develop/sage/local/lib/python2.7/site-packages/sage/combinat/tableau.py", > > line 7677, in __init__ > > facade=True, keepkey=False) > > File > "/64bitdev/storage/sage-git_develop/sage/local/lib/python2.7/site-packages/sage/sets/disjoint_union_enumerated_sets.py", > > line 288, in __init__ > > self._facade_for = tuple(family) > > File > "/64bitdev/storage/sage-git_develop/sage/local/lib/python2.7/site-packages/sage/sets/family.py", > > line 1061, in __iter__ > > for i in self.set: > > File > "/64bitdev/storage/sage-git_develop/sage/local/lib/python2.7/site-packages/sage/combinat/partition.py", > > line 6698, in __iter__ > > yield self.element_class(self, p) > > File "sage/misc/classcall_metaclass.pyx", line 333, in > sage.misc.classcall_metaclass.ClasscallMetaclass.__call__ > (build/cythonized/sage/misc/classcall_metaclass.c:1725) > > return (<PyTypeObject*>type).tp_call(cls, args, kwds) > > MemoryError > > Trying (line 7740): def cardinality_using_hook_formula(n): > > c = 0 > > for p in Partitions(n): > > c += StandardTableaux(p).cardinality() > > return c > > Expecting nothing > > ok [0.00 s] > > Trying (line 7745): all(cardinality_using_hook_formula(i) == > StandardTableaux(i).cardinality() for i in range(10)) > > Expecting: > > True > > Process DocTestWorker-1: > > Traceback (most recent call last): > > File > "/64bitdev/storage/sage-git_develop/sage/local/lib/python2.7/multiprocessing/process.py", > > line 267, in _bootstrap > > self.run() > > File > "/64bitdev/storage/sage-git_develop/sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", > > line 2139, in run > > task(self.options, self.outtmpfile, msgpipe, self.result_queue) > > File > "/64bitdev/storage/sage-git_develop/sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", > > line 2498, in __call__ > > result_queue.put(result, False) > > File > "/64bitdev/storage/sage-git_develop/sage/local/lib/python2.7/multiprocessing/queues.py", > > line 107, in put > > self._start_thread() > > File > "/64bitdev/storage/sage-git_develop/sage/local/lib/python2.7/multiprocessing/queues.py", > > line 195, in _start_thread > > self._thread.start() > > File > "/64bitdev/storage/sage-git_develop/sage/local/lib/python2.7/threading.py", > line 736, in start > > _start_new_thread(self.__bootstrap, ()) > > error: can't start new thread > > Bad exit: 1 > > ********************************************************************** > > > > Usually there is no failure if the doctest is run again. I've been able > to replicate this by rebuilding sagelib and re-running the individual > doctest. I first noticed this on a Sage-on-Gentoo install in Prefix where > the host is Debian (see > https://github.com/cschwan/sage-on-gentoo/commit/f62108870dbc9c69adbb5e1dcb772c405519f569#commitcomment-32252815). > > In the Prefix the tableau.py doctest always fails with a MemoryError. In > the Prefix there are 3 MemoryError failures, all associated with '--long' > doctests. Perhaps others have seen this failure. > > > > > > -- > > You received this message because you are subscribed to the Google > Groups "sage-devel" group. > > To unsubscribe from this group and stop receiving emails from it, send > an email to sage-devel+...@googlegroups.com <javascript:>. > > To post to this group, send email to sage-...@googlegroups.com > <javascript:>. > > Visit this group at https://groups.google.com/group/sage-devel. > > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.