One more thing. If I remove

            sage: StandardTableaux(50).cardinality()  # long time

then doctesting `tableary.py` with --long passes.

On Wednesday, February 13, 2019 at 12:27:03 PM UTC-6, Steven Trogdon wrote:
>
> Assuming this is the correct thing to do, starting at line 7740, the 
> following
>
>            sage: def cardinality_using_hook_formula(n):
>             ....:     import gc
>             ....:     c = 0
>             ....:     for p in Partitions(n):
>             ....:         gc.collect()
>             ....:         c += StandardTableaux(p).cardinality()
>             ....:     return c
>
> gets rid of the MemoryError. This is on my gentoo prefix where the test 
> also fails. I have to rebuild sagelib to get results on vanilla. However, I 
> still see
>
> Process DocTestWorker-1:
> Traceback (most recent call last):
>   File 
> "/storage/strogdon/gentoo-rap/usr/lib64/python2.7/multiprocessing/process.py",
>  
> line 267, in _bootstrap
>     self.run()
>   File 
> "/storage/strogdon/gentoo-rap/usr/lib64/python2.7/site-packages/sage/doctest/forker.py",
>  
> line 2139, in run
>     task(self.options, self.outtmpfile, msgpipe, self.result_queue)
>   File 
> "/storage/strogdon/gentoo-rap/usr/lib64/python2.7/site-packages/sage/doctest/forker.py",
>  
> line 2498, in __call__
>     result_queue.put(result, False)
>   File 
> "/storage/strogdon/gentoo-rap/usr/lib64/python2.7/multiprocessing/queues.py", 
> line 107, in put
>     self._start_thread()
>   File 
> "/storage/strogdon/gentoo-rap/usr/lib64/python2.7/multiprocessing/queues.py", 
> line 195, in _start_thread
>     self._thread.start()
>   File "/storage/strogdon/gentoo-rap/usr/lib64/python2.7/threading.py", 
> line 736, in start
>     _start_new_thread(self.__bootstrap, ())
> error: can't start new thread
>     Bad exit: 1
>
> It's not clear the origin of this since it appears all tests passed?
>
> 1650 tests in 281 items.
> 1650 passed and 0 failed.
> Test passed.
>
> On Wednesday, February 13, 2019 at 10:33:38 AM UTC-6, Travis Scrimshaw 
> wrote:
>>
>> 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> 
>>> 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. 
>>> > To post to this group, send email to sage-...@googlegroups.com. 
>>> > 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.

Reply via email to