Metacello issue on Linux

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Metacello issue on Linux

Igor Stasenko
Hello..

i trying to load VMMaker using metacello config on linux ..

and it seems like a file system/plugins working differently there, so
during package loading
i got FileExists exception (for .mcz files which happen to be already
in package-cache).

The error triggered in
MCCacheRepository(MCDirectoryRepository)>>writeStreamForFileNamed:
aString replace: aBoolean do: aBlock

i don't know why it can't use cached version (since file already
exists, it should, yes?)



Try issuing following in pharo-1.3 core
image(http://pharo-ic.lille.inria.fr/hudson/job/Pharo%20Core%201.3/)


Gofer new
        squeaksource: 'MetacelloRepository';
        package: 'ConfigurationOfCog';
        load.
       
((Smalltalk at: #ConfigurationOfCog) project
        version: '1.2') load.
       

on mac it works well.

Update:

It appears that the bug triggers only if you have wiped-clean
package-cache dir , which is always true in my setup, because
i do 'rm -rf build' before starting putting things there.

Here the package-cache contents at the moment of error:

ls package-cache/
ConfigurationOfCog-IgorStasenko.4.mcz
ConfigurationOfMetacello-DaleHenrichs.554.mcz
Metacello-Core-DaleHenrichs.455.mcz
ConfigurationOfHelpSystem-DaleHenrichs.13.mcz
Metacello-Base-DaleHenrichs.19.mcz
Metacello-MC-DaleHenrichs.505.mcz


i need help with it.. because it looks like a bad karma.. each time i
think that my build setup is ready to roll, some shitty thing pops up
and
blocks me from finishing things i do.


Before that i was using a script which were simply loaded a list of
.mcz packages from corresponding locations. And everything just
worked,
except that i chosen to use metacello.. to not have problems to deal
with need to load different packages for different forks, but now
metacello blocks me. :(

--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: Metacello issue on Linux

Dale Henrichs
Igor,

I don't have a PharoCore1.3....what's the name of the mcz file that is being written?

I would guess that monticello is trying to make a copy of the file in the package-cache when there is already an existing copy ...

Do you happen to be using the package-cache as your source repository?

Dale

On Feb 4, 2011, at 4:10 AM, Igor Stasenko wrote:

> Hello..
>
> i trying to load VMMaker using metacello config on linux ..
>
> and it seems like a file system/plugins working differently there, so
> during package loading
> i got FileExists exception (for .mcz files which happen to be already
> in package-cache).
>
> The error triggered in
> MCCacheRepository(MCDirectoryRepository)>>writeStreamForFileNamed:
> aString replace: aBoolean do: aBlock
>
> i don't know why it can't use cached version (since file already
> exists, it should, yes?)
>
>
>
> Try issuing following in pharo-1.3 core
> image(http://pharo-ic.lille.inria.fr/hudson/job/Pharo%20Core%201.3/)
>
>
> Gofer new
> squeaksource: 'MetacelloRepository';
> package: 'ConfigurationOfCog';
> load.
>
> ((Smalltalk at: #ConfigurationOfCog) project
> version: '1.2') load.
>
>
> on mac it works well.
>
> Update:
>
> It appears that the bug triggers only if you have wiped-clean
> package-cache dir , which is always true in my setup, because
> i do 'rm -rf build' before starting putting things there.
>
> Here the package-cache contents at the moment of error:
>
> ls package-cache/
> ConfigurationOfCog-IgorStasenko.4.mcz
> ConfigurationOfMetacello-DaleHenrichs.554.mcz
> Metacello-Core-DaleHenrichs.455.mcz
> ConfigurationOfHelpSystem-DaleHenrichs.13.mcz
> Metacello-Base-DaleHenrichs.19.mcz
> Metacello-MC-DaleHenrichs.505.mcz
>
>
> i need help with it.. because it looks like a bad karma.. each time i
> think that my build setup is ready to roll, some shitty thing pops up
> and
> blocks me from finishing things i do.
>
>
> Before that i was using a script which were simply loaded a list of
> .mcz packages from corresponding locations. And everything just
> worked,
> except that i chosen to use metacello.. to not have problems to deal
> with need to load different packages for different forks, but now
> metacello blocks me. :(
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>


Reply | Threaded
Open this post in threaded view
|

Re: Metacello issue on Linux

Igor Stasenko
On 4 February 2011 14:21, Dale Henrichs <[hidden email]> wrote:
> Igor,
>
> I don't have a PharoCore1.3....what's the name of the mcz file that is being written?
>
> I would guess that monticello is trying to make a copy of the file in the package-cache when there is already an existing copy ...
>
> Do you happen to be using the package-cache as your source repository?
>

We tracked down this bug.

It is related to retrieving entries of directory on linux.

For some unknown reason  'self allFileNames' in:

MCCacheRepository>>basicStoreVersion: aVersion
        (aVersion isCacheable and: [self allFileNames includes: aVersion fileName])
                ifFalse: [super basicStoreVersion: aVersion]


answers an empty collection.
And all it does is just queries the package-cache dir for its entries.
What is strange that after i evaluated the
(FileDirectory default / 'package-cache' )entries

and then re-evaluated same thing in method above, it worked, and
retrieved the entries for package-cache dir.


The VM i using is:

Smalltalk vmVersion
'Squeak4.1 of 17 April 2010 [latest update: #9957]'


(half hour later)
i suspected that this is because i mounted mac-os host system
directory in my linux virtual machine filesystem,
and there is something not ok with.

After moving image to 'linux' server file system dir, everything works ok...

So, it appears that the bug in virtualbox filesystem :))
Sorry for false alarm :)


> Dale



--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: Metacello issue on Linux

Stéphane Ducasse
Good to know because it looked strange to me that the bug was in MC/metaMC.
Now I prefer to hear that this is not the linux vm. Was fun to do parallel debugging.


Stef

> We tracked down this bug.
>
> It is related to retrieving entries of directory on linux.
>
> For some unknown reason  'self allFileNames' in:
>
> MCCacheRepository>>basicStoreVersion: aVersion
> (aVersion isCacheable and: [self allFileNames includes: aVersion fileName])
> ifFalse: [super basicStoreVersion: aVersion]
>
>
> answers an empty collection.
> And all it does is just queries the package-cache dir for its entries.
> What is strange that after i evaluated the
> (FileDirectory default / 'package-cache' )entries
>
> and then re-evaluated same thing in method above, it worked, and
> retrieved the entries for package-cache dir.
>
>
> The VM i using is:
>
> Smalltalk vmVersion
> 'Squeak4.1 of 17 April 2010 [latest update: #9957]'
>
>
> (half hour later)
> i suspected that this is because i mounted mac-os host system
> directory in my linux virtual machine filesystem,
> and there is something not ok with.
>
> After moving image to 'linux' server file system dir, everything works ok...
>
> So, it appears that the bug in virtualbox filesystem :))
> Sorry for false alarm :)
>
>
>> Dale
>
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>