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 $@: $$?"