[M3devel] CVSup crashing WAS: Re: m3gdb and YACC
Olaf Wagner
wagner at elegosoft.com
Sat Jul 11 23:16:51 CEST 2009
Quoting Tony Hosking <hosking at cs.purdue.edu>:
> Not sure how it happened, but the collector was turned off by default.
> It works for me now with the latest updates.
Great, thanks for the quick check and help. I assume this will resolve
Peter's problems...
Olaf
> On 11 Jul 2009, at 12:21, Tony Hosking wrote:
>
>> Weird. I've just noticed that the collector has been disabled in
>> RTCollector.i3 (not sure why I did that, but it had something to do
>> with Jay's changes to the locking code in ThreadPThread). It
>> should definitely be reverted, but probably exposes some weirdness
>> in Jay's mutex initialization code. Jay, can you help?
>>
>>
>> On 11 Jul 2009, at 11:19, Tony Hosking wrote:
>>
>>> I'd definitely need some way to reproduce the problem. Detailed
>>> instructions would be best. What platform are you running on?
>>>
>>> On 11 Jul 2009, at 06:47, Olaf Wagner wrote:
>>>
>>>> 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
>>>>
>>>
>>
--
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