On 08/05/2010 11:12 PM, Robert Bradshaw wrote:
> On Thu, Aug 5, 2010 at 4:26 AM, Mitesh Patel <qed...@gmail.com> wrote:
>> On 08/04/2010 03:10 AM, Robert Bradshaw wrote:
>>> On Sat, Jul 31, 2010 at 2:51 AM, Mitesh Patel <qed...@gmail.com> wrote:
>>>> On 07/30/2010 01:54 AM, Craig Citro wrote:
>>>>> So we're currently working on a long-overdue release of Cython with
>>>>> all kinds of snazzy new features. However, our automated testing
>>>>> system seems to keep turning up sporadic segfaults when running the
>>>>> sage doctest suite. This is obviously bad, but we're having a hard
>>>>> time reproducing this -- they seem to be *very* occasional failures
>>>>> while starting up sage, and thus far the only consistent appearance
>>>>> has been *within* our automated testing system (hudson). We've got a
>>>>> pile of dumped cores, which have mostly led us to the conclusions that
>>>>> (1) the problem occurs at a seemingly random point, so we should
>>>>> suspect some sort of memory corruption, and (2) sage does a *whole*
>>>>> lot of stuff when it starts up. ;)
>>>>> [...]
>>>>> After that, run the full test suite as many times as you're willing,
>>>>> hopefully with and without parallel doctesting (i.e. sage -tp). Then
>>>>> let us know what you turn up -- lots of random failures, or does
>>>>> everything pass? Points for machines we can ssh into and generated
>>>>> core files (ulimit -c unlimited), and even more points for anyone
>>>>> seeing consistent/repeatable failures. I'd also be very interested of
>>>>> reports that you've run the test suite N times with no failures.
>>>>
>>>> Below are some results from parallel doctests on sage.math.  In each of
>>>>
>>>> /mnt/usb1/scratch/mpatel/tmp/sage-4.4.4-cython
>>>> /mnt/usb1/scratch/mpatel/tmp/sage-4.5.1-cython
>>>>
>>>> I have run (or am still running)
>>>>
>>>> ./tester  | tee -a ztester &
>>>>
>>>> where 'tester' contains
>>>>
>>>> #!/bin/bash
>>>> ulimit -c unlimited
>>>>
>>>> RUNS=20
>>>> for I in `seq 1 $RUNS`;
>>>> do
>>>>    LOG="ptestlong-j20-$I.log"
>>>>    if [ ! -f "$LOG" ]; then
>>>>        echo "Run $I of $RUNS"
>>>>        nice ./sage -tp 20 -long -sagenb devel/sage > "$LOG" 2>&1
>>>>
>>>>        # grep -A2 -B1 dumped "$LOG"
>>>>        ls -lsFtr `find -type f -name core` | grep core | tee -a "$LOG"
>>>>
>>>>        # Rename each core to core_cy.$I
>>>>        rm -f _ren
>>>>        find -name core -type f | awk '{print "mv "$0" "$0"_cy.'${I}'"}'
>>>>> _ren
>>>>        . _ren
>>>>    fi
>>>> done
[...]
>>>> Should I test differently?
>>>
>>> So it looks like you're getting segfaults all over the place as
>>> well... Hmm... Could you test with
>>> https://sage.math.washington.edu:8091/hudson/job/sage-build/163/artifact/cython-devel.spkg
>>> ?
>>
>> With the new package, I get similar results, i.e., apparently random
>> segfaults.  The core score is about the same:
> 
> Well, it's clear there's something going on. What about testing on a
> plain-vanilla sage (with the old Cython)?

I get similar results on sage.math with the released 4.5.3.alpha0:

$ cd /scratch/mpatel/tmp/cython/sage-4.5.3.alpha0-segs
$ find -name core_x\* -type f | wc
     30      30    1315
$ grep egmentation ptestlong-j20-*log | wc
     11      70     939

So the problem could indeed lie elsewhere, e.g., in the doctesting system.

I'll try to run some experiments with the attached make-based parallel
doctester.

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org
# -*- Makefile -*-
# Make-based Sage parallel doctester.
#
# Usage: make -j [jobs] -B -f Makefile.doctest
#
# Other options: -i (ignore errors), -k (keep going),
#                -l [load] (load average)

TEST = sage -t -long
#TEST = . local/bin/sage-env && local/bin/sage-doctest -long

FINDDIRS = devel/sage/sage \
           devel/sage/doc/common devel/sage/doc/en devel/sage/doc/fr \
           local/lib/python2.6/site-packages/sagenb-0.8.2-py2.6.egg
FINDOPTS = -name \*.sage -o -name \*.py -o -name \*.pyx \
           -o -name \*.pxi -o -name \*.tex -o -name \*.rst
# 'shell' replaces newlines in the output with spaces:
FILES = $(shell find ${FINDDIRS} ${FINDOPTS})

all: $(FILES)

$(FILES):
        @${TEST} "$@"
#       @echo "Exit code for $@: $$?"

Reply via email to