[M3devel] CVSup crashing WAS: Re: m3gdb and YACC

Olaf Wagner wagner at elegosoft.com
Sat Jul 11 12:47:44 CEST 2009


Hm, I'm afraid we may have a regression in the runtime/gc here.
CVSup always worked without problems for me (and still is copying
FreeBSD, CM3 and other repositories between various machines for
me and Elego). Surely CVSup is doing no such thing as keeping
all its files in memory.

I haven't tried the version Jay put into the CM3 repo though.
So I see three possibilities:

  o Jay introduced the problem in the CVSup sources when he
    adapted them to the current CM3 (low probability).

  o You've got a broken runtime / CM3 version (and current
    sources work). I'd guess you are using the current version though.

  o We've got a problem in our runtime code, perhaps -- but not
    necessarily -- the garbage collector.

I'd suggest we rule out the second one and you reproduce the problem
with a current source set (if not done yet). Then let's see what Jay
and Antony have to say, as they did almost all the source changes
in that area recently.

Olaf

Quoting Peter Eiserloh <eiserlohpp at yahoo.com>:

> Hi Olaf,
>
> Well, I tried CVSup, and it started looking real good, until
> it crashed, with a message from the M3 runtime, saying that
> NEW could not allocate any memory.
>
> So I ran it a second time, and it got further, then crashed
> again.
>
> So, a third time, but with "top" running in another window,
> and sure enough cvsup, was allocating something like 1.2 GB
> of data before it was crashing.  This is bigger than the
> CVS repository that it had already downloaded.
>
> I am thinking that cvsup is keeping the contents of every
> file it downloaded in memory.  If so, this is a problem.
>
> If it is properly removing references, then maybe the
> garbage collector is failing.  This would be a bigger
> problem, but with our compiler's runtime library.
>
> Are other people noticing problems.  Is it just me?
> Am I the only one to attempt downloading the entire
> CVS repository for CM3?  Could you try it?
>
>
> I sent an email to the email listed in cvsup's "about box"
> (cvsup-bugs at polstra.com), but that failed.  The email address
> no longer works.
>
> peter at black:/data/modula-3/cm3 $   
> debian-pkg/current/debian/tmp/usr/lib/cm3/bin/cvsup cvsupfile.cm3
>
> ***
> *** runtime error:
> ***    NEW() was unable to allocate more memory.
> ***    file "../src/runtime/common/RuntimeError.m3", line 63
> ***
>
> Aborted
>
> Peter
>
>
> +--------------------------------------------------------+
> | Peter P. Eiserloh                                      |
> +--------------------------------------------------------+
>
>
> --- On Sat, 7/11/09, Olaf Wagner <wagner at elegosoft.com> wrote:
>
>> From: Olaf Wagner <wagner at elegosoft.com>
>> Subject: Re: m3gdb and YACC
>> To: "Peter Eiserloh" <eiserlohpp at yahoo.com>
>> Date: Saturday, July 11, 2009, 2:49 AM
>> Quoting Peter Eiserloh <eiserlohpp at yahoo.com>:
>>
>> > Hi Olaf,
>> >
>> > The import script (git-importcvs) internally uses
>> cvsps, which
>> > you may already have.
>> >
>> > Anyways, here is the first ten lines from a log file
>> of an import
>> > that I just started.
>> >
>> >
>> > peter at black:~ $ head Import-cm3-20090708.log
>> > Running cvsps...
>> > WARNING: revision 1.1.3.1 of file
>> m3-sys/m3cc/gcc/etc/make-stds.texi  on unnamed branch
>> > WARNING: revision 1.1.3.1 of file 
>> m3-sys/m3cc/gcc/gcc/config/vax/vax.c on unnamed branch
>> > WARNING: revision 1.1.3.1 of file 
>> m3-sys/m3cc/gcc/texinfo/config.h.in on unnamed branch
>> > WARNING: revision 1.1.3.1 of file 
>> m3-sys/m3cc/gcc/texinfo/po/Makefile.in.in on unnamed branch
>> > WARNING: revision 1.1.3.1 of file
>> m3-sys/m3cc/gcc/.brik on unnamed branch
>> > WARNING: revision 1.1.3.1 of file 
>> m3-sys/m3cc/gcc/texinfo/INTRODUCTION on unnamed branch
>> > WARNING: revision 1.1.3.1 of file 
>> m3-sys/m3cc/gcc/gcc/config/i386/osfelf.h on unnamed branch
>> > WARNING: revision 1.1.3.1 of file 
>> m3-sys/m3cc/gcc/gcc/config/mips/sni-svr4.h on unnamed
>> branch
>> > WARNING: revision 1.1.3.1 of file 
>> m3-sys/m3cc/gcc/gcc/config/v850/lib1funcs.asm on unnamed
>> branch
>>
>> It looks like these files have a second vendor branch
>> without a
>> proper name. CVS does not cope well with multiple vendor
>> branches
>> (in fact it never really worked), but there won't be any
>> valuable
>> information in that branch I'm sure, so you can ignore it.
>>
>> > Later this weekend, I will attempt to use CVSup. 
>> First,
>> > I will have to find usable documentation, since I
>> have
>> > never used CVSup before.
>> >
>> > Do you have a script to use with CVSup to access the
>> > CM3 CVS repo?  I am lasy.
>> >
>> > I use 'git' for all my current projects.  I used
>> to use
>> > CVS, and had started looking into using subversion
>> (SVN),
>> > I even purchased a couple books on SVN.  Then
>> 'git' burst
>> > upon the Linux world, and is gaining converts all over
>> the
>> > place.
>> >
>> > It really does provide a better work-flow.  The
>> easy
>> > creation of a branch is a given, it is git's ability
>> > to do easy merges, which is gaining all the good
>> reputation.
>> >
>> > Rather than get all evangelistic on you, as I am sure
>> you
>> > have already heard it many times already.
>> >
>> > Many businesses are moving to git.  The only
>> problem some
>> > enterprise companies are having is the ability to
>> restrict
>> > access of authorized users to only portions of the
>> repository.
>> > These types of problems don't effect open source
>> software
>> > development.
>> >
>> > Once I have a working 'git' repository for cm3, I will
>> share
>> > the technique, and maybe, start the foundations for a
>> > transition from CVS, towards 'git'.  But I
>> suggest a slow
>> > process, with distinct stages.   At any
>> stage we could stop,
>> > or even revert.
>> >
>> > The problem is that once people start using git, they
>> don''t
>> > want to go back to using CVS, or any of the older
>> methods.
>> > Maybe that isn't so much of a problem after all.
>> >
>> > STAGE-1: Simple mirror of the CVS archive,
>> periodically
>> >          updated (say once
>> every 6 hours).  Document on
>> >          web site, as to how
>> to clone, and update a git
>> >          repository.  No
>> uploads to git.
>> > STAGE-2: Convert web page scripts to use git.
>> > STAGE-3: Convert tinderbox.
>> > STAGE-4: Uploads to git.  Install gitosis or
>> similar server
>> >          for git uploads.
>> Document the upload process on web
>> >          pages.
>> > STAGE-5: CVS mirrors the git repo.  Uploads to
>> git only.
>> > STAGE-6: Move last of the CVS people, over to git.
>> > STAGE-7: Remove CVS.  (optional)
>>
>> Let's see how far you get. Converting all the
>> infrastructure (scripts
>> and documentation) may be much more work than you imagine.
>> And one
>> we propose a special tool (be it git or svn or mercurial)
>> there will
>> start discussions on what is best and what we should do
>> :-/
>>
>> So offering an optional alternative access may be a good
>> plan.
>> The majority of users should agree that they want the
>> change though.
>> And we need to consider use of GUIs and Windows users,
>> too.
>>
>> Olaf
>> --Olaf Wagner -- elego Software Solutions GmbH
>>            
>>    Gustav-Meyer-Allee 25 / Gebäude 12, 13355
>> Berlin, Germany
>> phone: +49 30 23 45 86 96  mobile: +49 177 2345
>> 869  fax: +49 30 23 45 86 95
>>    http://www.elegosoft.com |
>> Geschäftsführer: Olaf Wagner | Sitz: Berlin
>> Handelregister: Amtsgericht Charlottenburg HRB 77719 |
>> USt-IdNr: DE163214194
>>
>>
>
>
>
>



-- 
Olaf Wagner -- elego Software Solutions GmbH
                Gustav-Meyer-Allee 25 / Gebäude 12, 13355 Berlin, Germany
phone: +49 30 23 45 86 96  mobile: +49 177 2345 869  fax: +49 30 23 45 86 95
    http://www.elegosoft.com | Geschäftsführer: Olaf Wagner | Sitz: Berlin
Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194




More information about the M3devel mailing list