[M3devel] CM3 d5.5.0 CVSup client issues.
Tony Hosking
hosking at cs.purdue.edu
Fri Sep 7 19:03:29 CEST 2007
Sounds like we are losing some references somewhere and the GC is
prematurely collecting live objects. Alex, are you running on a 64-
bit SPARC v9? Perhaps the SaveRegsInStack code needs updating for
that platform to use the flushw instruction instead of trap 3. As it
is, I am not entirely satisfied with the difficulties I've seen
getting meaningful stack information on Solaris for stopped threads,
but without a reliable way to diagnose the problem I don't know what
to do from this end. See additional comments below:
On Sep 7, 2007, at 12:04 AM, Alex Bochannek wrote:
> Tony, John,
>
> I ran the tests some more and noticed that there is always a problem
> with directory creation. The error I had mentioned before:
>
> Updater failed: Cannot create directories leading to "/opt/cm3/cm3-
> cvs/cm3/caltech-parser/#cvs.cvsup-15483.1": Resource temporarily
> unavailable
>
> happens pretty reliably whenever a directory (in this case
> caltech-parser) needs to be created regardless of the options
> below. This is running as root and cvsup not running setuid. I copied
> the directory structure froman existing tree to even get the
> examples to
> run. (There is also an unrelated question for John below, please
> read on.)
>
> Tony Hosking <hosking at cs.purdue.edu> writes:
>
>> We are using the native threads package here, unless Alex has built
>> without it. Alex, can you try running with each of the following
>
> Here's what I have the cvsup linked against:
>
> ldd /usr/local/bin/cvsup
> libXaw.so.5 => /usr/lib/libXaw.so.5
> libXmu.so.4 => /usr/lib/libXmu.so.4
> libXext.so.0 => /usr/lib/libXext.so.0
> libXt.so.4 => /usr/lib/libXt.so.4
> libX11.so.4 => /usr/lib/libX11.so.4
> libsocket.so.1 => /lib/libsocket.so.1
> libnsl.so.1 => /lib/libnsl.so.1
> libw.so.1 => /lib/libw.so.1
> libdl.so.1 => /lib/libdl.so.1
> libpthread.so.1 => /lib/libpthread.so.1
> libthread.so.1 => /lib/libthread.so.1
> librt.so.1 => /lib/librt.so.1
> libm.so.2 => /lib/libm.so.2
> libc.so.1 => /lib/libc.so.1
> libSM.so.6 => /usr/openwin/lib/libSM.so.6
> libICE.so.6 => /usr/openwin/lib/libICE.so.6
> libmp.so.2 => /lib/libmp.so.2
> libmd5.so.1 => /lib/libmd5.so.1
> libscf.so.1 => /lib/libscf.so.1
> libaio.so.1 => /lib/libaio.so.1
> libdoor.so.1 => /lib/libdoor.so.1
> libuutil.so.1 => /lib/libuutil.so.1
> /platform/SUNW,Sun-Fire-480R/lib/libc_psr.so.1
> /platform/SUNW,Sun-Fire-480R/lib/libmd5_psr.so.1
>
>> flag combinations and report the results:
>>
>> @M3nogc
>
> With the nogc options cvsup pretty much always runs all the way to
> completion. It takes a while, especially on an existing tree, but it
> will complete without problems.
When you say "pretty much" what do you mean? Does it sometimes get
an error? Is it the one you note above?
> Trying the following failed:
>
>> @M3noincremental @M3nogenerational @M3paranoidgc
>>
>> @M3noincremental @M3paranoidgc
>>
>> @M3nogenerational @M3paranoidgc
>>
>> @M3paranoidgc
>
> -bash-3.00$ /usr/local/bin/cvsup -g cvsupfile.cm3
> Connected to birch.elegosoft.com
> Updating collection cm3/cvs
> SetAttrs cm3/COPYRIGHT-BSD,v
> SetAttrs cm3/COPYRIGHT-CMASS,v
> SetAttrs cm3/COPYRIGHT-COLUMBIA,v
> SetAttrs cm3/COPYRIGHT-DEC,v
> SetAttrs cm3/COPYRIGHT-JDP,v
> SetAttrs cm3/COPYRIGHT-PURDUE,v
> SetAttrs cm3/COPYRIGHT-XEROX,v
> SetAttrs cm3/COPYRIGHTS,v
> SetAttrs cm3/README,v
> SetAttrs cm3/caltech-parser/COPYRIGHT,v
> SetAttrs cm3/caltech-parser/Makefile,v
>
>
> ***
> *** runtime error:
> *** Segmentation violation - possible attempt to dereference NIL
> *** pc = 0x715c4 = PutCollectionList + 0x6d4 in ../src/TreeList.m3
> ***
We may have collected something prematurely.
> Abort
> -bash-3.00$ /usr/local/bin/cvsup @M3noincremental @M3nogenerational
> @M3paranoidgc -g cvsupfile.cm3
> Connected to birch.elegosoft.com
>
>
> ***
> *** runtime error:
> *** Segmentation violation - possible attempt to dereference NIL
> *** pc = 0x715c4 = PutCollectionList + 0x6d4 in ../src/TreeList.m3
> ***
>
Ditto
> Abort
> -bash-3.00$ /usr/local/bin/cvsup @M3noincremental @M3paranoidgc -g
> cvsupfile.cm3
> Connected to birch.elegosoft.com
>
>
> ***
> *** runtime error:
> *** Segmentation violation - possible attempt to dereference NIL
> *** pc = 0x715c4 = PutCollectionList + 0x6d4 in ../src/TreeList.m3
> ***
Ditto
> Abort
> -bash-3.00$ /usr/local/bin/cvsup @M3nogenerational @M3paranoidgc -g
> cvsupfile.cm3
> Connected to birch.elegosoft.com
>
>
> ***
> *** runtime error:
> *** <*ASSERT*> failed.
> *** file "../src/runtime/common/RTCollector.m3", line 1770
> ***
This is the collector complaining that it found a reference in the
heap to an object that has been reclaimed.
> Abort
> -bash-3.00$ /usr/local/bin/cvsup @M3paranoidgc -g cvsupfile.cm3
> Connected to birch.elegosoft.com
>
>
> ***
> *** runtime error:
> *** Segmentation violation - possible attempt to dereference NIL
> *** pc = 0x421638 = NoteStackLocations + 0xac in ../src/runtime/
> common/RTCollector.m3
> ***
>
Looks like a bad sp error.
> ***
> *** runtime error:
> *** <*ASSERT*> failed.
> *** file "../src/runtime/common/RTCollector.m3", line 688
> ***
This is knock-on from the previous error.
>
> Abort
> -bash-3.00$
>
>
> I hope this helps and that you can get to the bottom of this.
>
> I am trying to compile a new CVSup to see why I keep getting checksum
> mismatches that result in very long transfer times. I didn't think
> that
> when CVSup runs on a busy repository, that I should get those a
> lot, but
> especially during tagging operations, it seems like I end up with
> transferring the entire repository.
>
> Alex.
More information about the M3devel
mailing list