[Glass] Cannot load Metacello nor Glass in Glass itself (spot bug)

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

[Glass] Cannot load Metacello nor Glass in Glass itself (spot bug)

Mariano Martinez Peck
Hi guys,

I have managed to install Glass into a base extent using the installGlass script provided by Dale. I am running this with a special user, not DataCurator, but with similar privileges. I can install Glass, but then as soon as I try to download something with Metacello...I get a spec resolution error....
It is important to note that all gems/netldi/stone are also running with its own system user. 

I am trying to download this for example:

  Metacello new
baseline:  'Metacello';
repository: 'github://dalehenrich/metacello-work:master/repository';
get.

First, I found a bug in #extractRepositoryFrom: zipFile to: directory
I was getting a simple GoferRepositoryError with no clear message. AFter debugging a bit, I found that such a method was end up doing something like:

/usr/bin/unzip -u /tmp/github.zip -d /home/Testing/github-cache/dalehenrich/metacello-work/master 2> /tmp/zip.err

Problem was that I ALREADY had a /tmp/zip.err but that was written with another SO user... and defined unix file permission, didn't allow to write it with a different user..hence I was getting a permission denied which ended in sending #contentsOfEntireFile to nil...
So would it be possible to write zip.err with a more specific name? like per stone or something...or give write access to other ... 

Anyway....I remove the file with sudo and then it continue...but still getting a spec resolution error...but what is funny here is that I don't get ANY error nor repository error.. the line " self resolvePackageSpecReferences: packageSpec gofer: gofer  " simply returns an empty array....

Any idea what could be?  any bell? remember, custom system operating user (not sudoer), custom gemstone user, custom glass install, ... so yeah, kind of sounds like I should get problems hahahah

Thanks, 


--
Mariano
http://marianopeck.wordpress.com

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: [Glass] Cannot load Metacello nor Glass in Glass itself (spot bug)

Dale Henrichs-3
Mariano,

The github downloads aren't very good at providing good error messages ... I have recently (in last month) improved some of the error handling for github, but those improvements are only in the github repo and if you can't download from github then you probably aren't using them...

But your use case of running multiple glass users (at the linux level) is probably not accounted for  in the github implementation so additional work needs to be done there to accomodate multiple users on the same machine using Metacello ...

I've submitted a metacello bug[1] to track the issue ...

Until I can fix the bug, you the code  there are a number of methods that make the assumption that /tmp can be used as a temporary dumping ground for files:

  MCGitHubRepository class>>projectDirectoryFrom:version:
  MetacelloGemStonePlatform>>downloadFile:to:
  MetacelloGemStonePlatform>>extractRepositoryFrom:to:

Presumably these methods could be hacked to replace the use of '/tmp' with a suitable image-specific replacement ... where you can set the root temp directory to something that works for you ... this is probably the route I will take for the final solution ...

Dale



On Thu, Jan 16, 2014 at 11:51 AM, Mariano Martinez Peck <[hidden email]> wrote:
Hi guys,

I have managed to install Glass into a base extent using the installGlass script provided by Dale. I am running this with a special user, not DataCurator, but with similar privileges. I can install Glass, but then as soon as I try to download something with Metacello...I get a spec resolution error....
It is important to note that all gems/netldi/stone are also running with its own system user. 

I am trying to download this for example:

  Metacello new
baseline:  'Metacello';
repository: 'github://dalehenrich/metacello-work:master/repository';
get.

First, I found a bug in #extractRepositoryFrom: zipFile to: directory
I was getting a simple GoferRepositoryError with no clear message. AFter debugging a bit, I found that such a method was end up doing something like:

/usr/bin/unzip -u /tmp/github.zip -d /home/Testing/github-cache/dalehenrich/metacello-work/master 2> /tmp/zip.err

Problem was that I ALREADY had a /tmp/zip.err but that was written with another SO user... and defined unix file permission, didn't allow to write it with a different user..hence I was getting a permission denied which ended in sending #contentsOfEntireFile to nil...
So would it be possible to write zip.err with a more specific name? like per stone or something...or give write access to other ... 

Anyway....I remove the file with sudo and then it continue...but still getting a spec resolution error...but what is funny here is that I don't get ANY error nor repository error.. the line " self resolvePackageSpecReferences: packageSpec gofer: gofer  " simply returns an empty array....

Any idea what could be?  any bell? remember, custom system operating user (not sudoer), custom gemstone user, custom glass install, ... so yeah, kind of sounds like I should get problems hahahah

Thanks, 


--
Mariano
http://marianopeck.wordpress.com

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass



_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: [Glass] Cannot load Metacello nor Glass in Glass itself (spot bug)

Mariano Martinez Peck



On Thu, Jan 16, 2014 at 5:53 PM, Dale Henrichs <[hidden email]> wrote:
Mariano,

The github downloads aren't very good at providing good error messages ... I have recently (in last month) improved some of the error handling for github, but those improvements are only in the github repo and if you can't download from github then you probably aren't using them...


Indeed. But something is weird: I could successfully bootstrap GLASS, using the installGLASS you provided me...doesn't this script use any github repo????
 
But your use case of running multiple glass users (at the linux level) is probably not accounted for  in the github implementation so additional work needs to be done there to accomodate multiple users on the same machine using Metacello ...


ouch.....
 
I've submitted a metacello bug[1] to track the issue ...

Until I can fix the bug, you the code  there are a number of methods that make the assumption that /tmp can be used as a temporary dumping ground for files:

  MCGitHubRepository class>>projectDirectoryFrom:version:
  MetacelloGemStonePlatform>>downloadFile:to:
  MetacelloGemStonePlatform>>extractRepositoryFrom:to:

Presumably these methods could be hacked to replace the use of '/tmp' with a suitable image-specific replacement ... where you can set the root temp directory to something that works for you ... this is probably the route I will take for the final solution ...

Thanks. I indeed found other files in /tmp which were owned by a different system user... I have removed them like "sudo rm github*" and "sudo rm curl*".

Still...same problem. I then tried stopping and starting stone again. Still, same problem. Finally I drop the extent and I bootstrapped everything from scratch again...why? because I thought some class var or something could have been persisted with wrong stuff or garbage. So I started again with that just bootstrapped glass and an empty /tmp and that worked!!!

So I should wait for your fix to have multiple system users sharing the same /tmp, right?

Let me know if I can be of help.

Thanks, 



On Thu, Jan 16, 2014 at 11:51 AM, Mariano Martinez Peck <[hidden email]> wrote:
Hi guys,

I have managed to install Glass into a base extent using the installGlass script provided by Dale. I am running this with a special user, not DataCurator, but with similar privileges. I can install Glass, but then as soon as I try to download something with Metacello...I get a spec resolution error....
It is important to note that all gems/netldi/stone are also running with its own system user. 

I am trying to download this for example:

  Metacello new
baseline:  'Metacello';
repository: 'github://dalehenrich/metacello-work:master/repository';
get.

First, I found a bug in #extractRepositoryFrom: zipFile to: directory
I was getting a simple GoferRepositoryError with no clear message. AFter debugging a bit, I found that such a method was end up doing something like:

/usr/bin/unzip -u /tmp/github.zip -d /home/Testing/github-cache/dalehenrich/metacello-work/master 2> /tmp/zip.err

Problem was that I ALREADY had a /tmp/zip.err but that was written with another SO user... and defined unix file permission, didn't allow to write it with a different user..hence I was getting a permission denied which ended in sending #contentsOfEntireFile to nil...
So would it be possible to write zip.err with a more specific name? like per stone or something...or give write access to other ... 

Anyway....I remove the file with sudo and then it continue...but still getting a spec resolution error...but what is funny here is that I don't get ANY error nor repository error.. the line " self resolvePackageSpecReferences: packageSpec gofer: gofer  " simply returns an empty array....

Any idea what could be?  any bell? remember, custom system operating user (not sudoer), custom gemstone user, custom glass install, ... so yeah, kind of sounds like I should get problems hahahah

Thanks, 


--
Mariano
http://marianopeck.wordpress.com

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass





--
Mariano
http://marianopeck.wordpress.com

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: [Glass] Cannot load Metacello nor Glass in Glass itself (spot bug)

Johan Brichau-3
Was this not already fixed?


On 16 Jan 2014, at 22:43, Mariano Martinez Peck <[hidden email]> wrote:




On Thu, Jan 16, 2014 at 5:53 PM, Dale Henrichs <[hidden email]> wrote:
Mariano,

The github downloads aren't very good at providing good error messages ... I have recently (in last month) improved some of the error handling for github, but those improvements are only in the github repo and if you can't download from github then you probably aren't using them...


Indeed. But something is weird: I could successfully bootstrap GLASS, using the installGLASS you provided me...doesn't this script use any github repo????
 
But your use case of running multiple glass users (at the linux level) is probably not accounted for  in the github implementation so additional work needs to be done there to accomodate multiple users on the same machine using Metacello ...


ouch.....
 
I've submitted a metacello bug[1] to track the issue ...

Until I can fix the bug, you the code  there are a number of methods that make the assumption that /tmp can be used as a temporary dumping ground for files:

  MCGitHubRepository class>>projectDirectoryFrom:version:
  MetacelloGemStonePlatform>>downloadFile:to:
  MetacelloGemStonePlatform>>extractRepositoryFrom:to:

Presumably these methods could be hacked to replace the use of '/tmp' with a suitable image-specific replacement ... where you can set the root temp directory to something that works for you ... this is probably the route I will take for the final solution ...

Thanks. I indeed found other files in /tmp which were owned by a different system user... I have removed them like "sudo rm github*" and "sudo rm curl*".

Still...same problem. I then tried stopping and starting stone again. Still, same problem. Finally I drop the extent and I bootstrapped everything from scratch again...why? because I thought some class var or something could have been persisted with wrong stuff or garbage. So I started again with that just bootstrapped glass and an empty /tmp and that worked!!!

So I should wait for your fix to have multiple system users sharing the same /tmp, right?

Let me know if I can be of help.

Thanks, 



On Thu, Jan 16, 2014 at 11:51 AM, Mariano Martinez Peck <[hidden email]> wrote:
Hi guys,

I have managed to install Glass into a base extent using the installGlass script provided by Dale. I am running this with a special user, not DataCurator, but with similar privileges. I can install Glass, but then as soon as I try to download something with Metacello...I get a spec resolution error....
It is important to note that all gems/netldi/stone are also running with its own system user. 

I am trying to download this for example:

  Metacello new
baseline:  'Metacello';
repository: 'github://dalehenrich/metacello-work:master/repository';
get.

First, I found a bug in #extractRepositoryFrom: zipFile to: directory
I was getting a simple GoferRepositoryError with no clear message. AFter debugging a bit, I found that such a method was end up doing something like:

/usr/bin/unzip -u /tmp/github.zip -d /home/Testing/github-cache/dalehenrich/metacello-work/master 2> /tmp/zip.err

Problem was that I ALREADY had a /tmp/zip.err but that was written with another SO user... and defined unix file permission, didn't allow to write it with a different user..hence I was getting a permission denied which ended in sending #contentsOfEntireFile to nil...
So would it be possible to write zip.err with a more specific name? like per stone or something...or give write access to other ... 

Anyway....I remove the file with sudo and then it continue...but still getting a spec resolution error...but what is funny here is that I don't get ANY error nor repository error.. the line " self resolvePackageSpecReferences: packageSpec gofer: gofer  " simply returns an empty array....

Any idea what could be?  any bell? remember, custom system operating user (not sudoer), custom gemstone user, custom glass install, ... so yeah, kind of sounds like I should get problems hahahah

Thanks, 


--
Mariano
http://marianopeck.wordpress.com

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass





--
Mariano
http://marianopeck.wordpress.com
_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: [Glass] Cannot load Metacello nor Glass in Glass itself (spot bug)

Johan Brichau-3
In reply to this post by Mariano Martinez Peck
Mariano,

Here are a couple of things I know to work when I hit this kind of issues:

Is the github repository present in your list when you open metacello? Remove it.
Is it present in the github-cache on disk? Remove it.
Clear the Monticello cache (from Monticello tool).

Often, I find this helps. Hope it helps for you.

Johan

On 16 Jan 2014, at 22:43, Mariano Martinez Peck <[hidden email]> wrote:




On Thu, Jan 16, 2014 at 5:53 PM, Dale Henrichs <[hidden email]> wrote:
Mariano,

The github downloads aren't very good at providing good error messages ... I have recently (in last month) improved some of the error handling for github, but those improvements are only in the github repo and if you can't download from github then you probably aren't using them...


Indeed. But something is weird: I could successfully bootstrap GLASS, using the installGLASS you provided me...doesn't this script use any github repo????
 
But your use case of running multiple glass users (at the linux level) is probably not accounted for  in the github implementation so additional work needs to be done there to accomodate multiple users on the same machine using Metacello ...


ouch.....
 
I've submitted a metacello bug[1] to track the issue ...

Until I can fix the bug, you the code  there are a number of methods that make the assumption that /tmp can be used as a temporary dumping ground for files:

  MCGitHubRepository class>>projectDirectoryFrom:version:
  MetacelloGemStonePlatform>>downloadFile:to:
  MetacelloGemStonePlatform>>extractRepositoryFrom:to:

Presumably these methods could be hacked to replace the use of '/tmp' with a suitable image-specific replacement ... where you can set the root temp directory to something that works for you ... this is probably the route I will take for the final solution ...

Thanks. I indeed found other files in /tmp which were owned by a different system user... I have removed them like "sudo rm github*" and "sudo rm curl*".

Still...same problem. I then tried stopping and starting stone again. Still, same problem. Finally I drop the extent and I bootstrapped everything from scratch again...why? because I thought some class var or something could have been persisted with wrong stuff or garbage. So I started again with that just bootstrapped glass and an empty /tmp and that worked!!!

So I should wait for your fix to have multiple system users sharing the same /tmp, right?

Let me know if I can be of help.

Thanks, 



On Thu, Jan 16, 2014 at 11:51 AM, Mariano Martinez Peck <[hidden email]> wrote:
Hi guys,

I have managed to install Glass into a base extent using the installGlass script provided by Dale. I am running this with a special user, not DataCurator, but with similar privileges. I can install Glass, but then as soon as I try to download something with Metacello...I get a spec resolution error....
It is important to note that all gems/netldi/stone are also running with its own system user. 

I am trying to download this for example:

  Metacello new
baseline:  'Metacello';
repository: 'github://dalehenrich/metacello-work:master/repository';
get.

First, I found a bug in #extractRepositoryFrom: zipFile to: directory
I was getting a simple GoferRepositoryError with no clear message. AFter debugging a bit, I found that such a method was end up doing something like:

/usr/bin/unzip -u /tmp/github.zip -d /home/Testing/github-cache/dalehenrich/metacello-work/master 2> /tmp/zip.err

Problem was that I ALREADY had a /tmp/zip.err but that was written with another SO user... and defined unix file permission, didn't allow to write it with a different user..hence I was getting a permission denied which ended in sending #contentsOfEntireFile to nil...
So would it be possible to write zip.err with a more specific name? like per stone or something...or give write access to other ... 

Anyway....I remove the file with sudo and then it continue...but still getting a spec resolution error...but what is funny here is that I don't get ANY error nor repository error.. the line " self resolvePackageSpecReferences: packageSpec gofer: gofer  " simply returns an empty array....

Any idea what could be?  any bell? remember, custom system operating user (not sudoer), custom gemstone user, custom glass install, ... so yeah, kind of sounds like I should get problems hahahah

Thanks, 


--
Mariano
http://marianopeck.wordpress.com

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass





--
Mariano
http://marianopeck.wordpress.com
_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: [Glass] Cannot load Metacello nor Glass in Glass itself (spot bug)

Dale Henrichs-3
Johan,

I fixed the error handling, but in Mariano's case he has multiple linux users (with incompatible file permissions) trying to overwrite the same file and the permissions will just not allow that ...


On Thu, Jan 16, 2014 at 2:38 PM, Johan Brichau <[hidden email]> wrote:
Mariano,

Here are a couple of things I know to work when I hit this kind of issues:

Is the github repository present in your list when you open metacello? Remove it.
Is it present in the github-cache on disk? Remove it.
Clear the Monticello cache (from Monticello tool).

Often, I find this helps. Hope it helps for you.

Johan

On 16 Jan 2014, at 22:43, Mariano Martinez Peck <[hidden email]> wrote:




On Thu, Jan 16, 2014 at 5:53 PM, Dale Henrichs <[hidden email]> wrote:
Mariano,

The github downloads aren't very good at providing good error messages ... I have recently (in last month) improved some of the error handling for github, but those improvements are only in the github repo and if you can't download from github then you probably aren't using them...


Indeed. But something is weird: I could successfully bootstrap GLASS, using the installGLASS you provided me...doesn't this script use any github repo????
 
But your use case of running multiple glass users (at the linux level) is probably not accounted for  in the github implementation so additional work needs to be done there to accomodate multiple users on the same machine using Metacello ...


ouch.....
 
I've submitted a metacello bug[1] to track the issue ...

Until I can fix the bug, you the code  there are a number of methods that make the assumption that /tmp can be used as a temporary dumping ground for files:

  MCGitHubRepository class>>projectDirectoryFrom:version:
  MetacelloGemStonePlatform>>downloadFile:to:
  MetacelloGemStonePlatform>>extractRepositoryFrom:to:

Presumably these methods could be hacked to replace the use of '/tmp' with a suitable image-specific replacement ... where you can set the root temp directory to something that works for you ... this is probably the route I will take for the final solution ...

Thanks. I indeed found other files in /tmp which were owned by a different system user... I have removed them like "sudo rm github*" and "sudo rm curl*".

Still...same problem. I then tried stopping and starting stone again. Still, same problem. Finally I drop the extent and I bootstrapped everything from scratch again...why? because I thought some class var or something could have been persisted with wrong stuff or garbage. So I started again with that just bootstrapped glass and an empty /tmp and that worked!!!

So I should wait for your fix to have multiple system users sharing the same /tmp, right?

Let me know if I can be of help.

Thanks, 



On Thu, Jan 16, 2014 at 11:51 AM, Mariano Martinez Peck <[hidden email]> wrote:
Hi guys,

I have managed to install Glass into a base extent using the installGlass script provided by Dale. I am running this with a special user, not DataCurator, but with similar privileges. I can install Glass, but then as soon as I try to download something with Metacello...I get a spec resolution error....
It is important to note that all gems/netldi/stone are also running with its own system user. 

I am trying to download this for example:

  Metacello new
baseline:  'Metacello';
repository: 'github://dalehenrich/metacello-work:master/repository';
get.

First, I found a bug in #extractRepositoryFrom: zipFile to: directory
I was getting a simple GoferRepositoryError with no clear message. AFter debugging a bit, I found that such a method was end up doing something like:

/usr/bin/unzip -u /tmp/github.zip -d /home/Testing/github-cache/dalehenrich/metacello-work/master 2> /tmp/zip.err

Problem was that I ALREADY had a /tmp/zip.err but that was written with another SO user... and defined unix file permission, didn't allow to write it with a different user..hence I was getting a permission denied which ended in sending #contentsOfEntireFile to nil...
So would it be possible to write zip.err with a more specific name? like per stone or something...or give write access to other ... 

Anyway....I remove the file with sudo and then it continue...but still getting a spec resolution error...but what is funny here is that I don't get ANY error nor repository error.. the line " self resolvePackageSpecReferences: packageSpec gofer: gofer  " simply returns an empty array....

Any idea what could be?  any bell? remember, custom system operating user (not sudoer), custom gemstone user, custom glass install, ... so yeah, kind of sounds like I should get problems hahahah

Thanks, 


--
Mariano
http://marianopeck.wordpress.com

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass





--
Mariano
http://marianopeck.wordpress.com
_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: [Glass] Cannot load Metacello nor Glass in Glass itself (spot bug)

Johan Brichau-3
Dale,

Yes, that was the same problem I had and I believe the patches I sent were integrated :-)

Johan

Sent from my iPad

On 17 Jan 2014, at 02:38, Dale Henrichs <[hidden email]> wrote:

Johan,

I fixed the error handling, but in Mariano's case he has multiple linux users (with incompatible file permissions) trying to overwrite the same file and the permissions will just not allow that ...


On Thu, Jan 16, 2014 at 2:38 PM, Johan Brichau <[hidden email]> wrote:
Mariano,

Here are a couple of things I know to work when I hit this kind of issues:

Is the github repository present in your list when you open metacello? Remove it.
Is it present in the github-cache on disk? Remove it.
Clear the Monticello cache (from Monticello tool).

Often, I find this helps. Hope it helps for you.

Johan

On 16 Jan 2014, at 22:43, Mariano Martinez Peck <[hidden email]> wrote:




On Thu, Jan 16, 2014 at 5:53 PM, Dale Henrichs <[hidden email]> wrote:
Mariano,

The github downloads aren't very good at providing good error messages ... I have recently (in last month) improved some of the error handling for github, but those improvements are only in the github repo and if you can't download from github then you probably aren't using them...


Indeed. But something is weird: I could successfully bootstrap GLASS, using the installGLASS you provided me...doesn't this script use any github repo????
 
But your use case of running multiple glass users (at the linux level) is probably not accounted for  in the github implementation so additional work needs to be done there to accomodate multiple users on the same machine using Metacello ...


ouch.....
 
I've submitted a metacello bug[1] to track the issue ...

Until I can fix the bug, you the code  there are a number of methods that make the assumption that /tmp can be used as a temporary dumping ground for files:

  MCGitHubRepository class>>projectDirectoryFrom:version:
  MetacelloGemStonePlatform>>downloadFile:to:
  MetacelloGemStonePlatform>>extractRepositoryFrom:to:

Presumably these methods could be hacked to replace the use of '/tmp' with a suitable image-specific replacement ... where you can set the root temp directory to something that works for you ... this is probably the route I will take for the final solution ...

Thanks. I indeed found other files in /tmp which were owned by a different system user... I have removed them like "sudo rm github*" and "sudo rm curl*".

Still...same problem. I then tried stopping and starting stone again. Still, same problem. Finally I drop the extent and I bootstrapped everything from scratch again...why? because I thought some class var or something could have been persisted with wrong stuff or garbage. So I started again with that just bootstrapped glass and an empty /tmp and that worked!!!

So I should wait for your fix to have multiple system users sharing the same /tmp, right?

Let me know if I can be of help.

Thanks, 



On Thu, Jan 16, 2014 at 11:51 AM, Mariano Martinez Peck <[hidden email]> wrote:
Hi guys,

I have managed to install Glass into a base extent using the installGlass script provided by Dale. I am running this with a special user, not DataCurator, but with similar privileges. I can install Glass, but then as soon as I try to download something with Metacello...I get a spec resolution error....
It is important to note that all gems/netldi/stone are also running with its own system user. 

I am trying to download this for example:

  Metacello new
baseline:  'Metacello';
repository: 'github://dalehenrich/metacello-work:master/repository';
get.

First, I found a bug in #extractRepositoryFrom: zipFile to: directory
I was getting a simple GoferRepositoryError with no clear message. AFter debugging a bit, I found that such a method was end up doing something like:

/usr/bin/unzip -u /tmp/github.zip -d /home/Testing/github-cache/dalehenrich/metacello-work/master 2> /tmp/zip.err

Problem was that I ALREADY had a /tmp/zip.err but that was written with another SO user... and defined unix file permission, didn't allow to write it with a different user..hence I was getting a permission denied which ended in sending #contentsOfEntireFile to nil...
So would it be possible to write zip.err with a more specific name? like per stone or something...or give write access to other ... 

Anyway....I remove the file with sudo and then it continue...but still getting a spec resolution error...but what is funny here is that I don't get ANY error nor repository error.. the line " self resolvePackageSpecReferences: packageSpec gofer: gofer  " simply returns an empty array....

Any idea what could be?  any bell? remember, custom system operating user (not sudoer), custom gemstone user, custom glass install, ... so yeah, kind of sounds like I should get problems hahahah

Thanks, 


--
Mariano
http://marianopeck.wordpress.com

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass





--
Mariano
http://marianopeck.wordpress.com
_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: [Glass] Cannot load Metacello nor Glass in Glass itself (spot bug)

Johan Brichau-3
In reply to this post by Dale Henrichs-3
Btw, the things to try below are for *after* the download failed and you end up with a 'broken' GitHub repo in your image. I typically also get that when restoring a backup locally. At that point the github repo has lost its link to the github-cache directory (because it's no longer there at the place I restore the backup). Doing a metacello load then fails because the repository is empty but a new download is not triggered. So I remove all and clear the cache to trigger a download.
I also noticed you end up in the same situation if the download failed.

Johan

On 17 Jan 2014, at 02:38, Dale Henrichs <[hidden email]> wrote:

Johan,

I fixed the error handling, but in Mariano's case he has multiple linux users (with incompatible file permissions) trying to overwrite the same file and the permissions will just not allow that ...


On Thu, Jan 16, 2014 at 2:38 PM, Johan Brichau <[hidden email]> wrote:
Mariano,

Here are a couple of things I know to work when I hit this kind of issues:

Is the github repository present in your list when you open metacello? Remove it.
Is it present in the github-cache on disk? Remove it.
Clear the Monticello cache (from Monticello tool).

Often, I find this helps. Hope it helps for you.

Johan

On 16 Jan 2014, at 22:43, Mariano Martinez Peck <[hidden email]> wrote:




On Thu, Jan 16, 2014 at 5:53 PM, Dale Henrichs <[hidden email]> wrote:
Mariano,

The github downloads aren't very good at providing good error messages ... I have recently (in last month) improved some of the error handling for github, but those improvements are only in the github repo and if you can't download from github then you probably aren't using them...


Indeed. But something is weird: I could successfully bootstrap GLASS, using the installGLASS you provided me...doesn't this script use any github repo????
 
But your use case of running multiple glass users (at the linux level) is probably not accounted for  in the github implementation so additional work needs to be done there to accomodate multiple users on the same machine using Metacello ...


ouch.....
 
I've submitted a metacello bug[1] to track the issue ...

Until I can fix the bug, you the code  there are a number of methods that make the assumption that /tmp can be used as a temporary dumping ground for files:

  MCGitHubRepository class>>projectDirectoryFrom:version:
  MetacelloGemStonePlatform>>downloadFile:to:
  MetacelloGemStonePlatform>>extractRepositoryFrom:to:

Presumably these methods could be hacked to replace the use of '/tmp' with a suitable image-specific replacement ... where you can set the root temp directory to something that works for you ... this is probably the route I will take for the final solution ...

Thanks. I indeed found other files in /tmp which were owned by a different system user... I have removed them like "sudo rm github*" and "sudo rm curl*".

Still...same problem. I then tried stopping and starting stone again. Still, same problem. Finally I drop the extent and I bootstrapped everything from scratch again...why? because I thought some class var or something could have been persisted with wrong stuff or garbage. So I started again with that just bootstrapped glass and an empty /tmp and that worked!!!

So I should wait for your fix to have multiple system users sharing the same /tmp, right?

Let me know if I can be of help.

Thanks, 



On Thu, Jan 16, 2014 at 11:51 AM, Mariano Martinez Peck <[hidden email]> wrote:
Hi guys,

I have managed to install Glass into a base extent using the installGlass script provided by Dale. I am running this with a special user, not DataCurator, but with similar privileges. I can install Glass, but then as soon as I try to download something with Metacello...I get a spec resolution error....
It is important to note that all gems/netldi/stone are also running with its own system user. 

I am trying to download this for example:

  Metacello new
baseline:  'Metacello';
repository: 'github://dalehenrich/metacello-work:master/repository';
get.

First, I found a bug in #extractRepositoryFrom: zipFile to: directory
I was getting a simple GoferRepositoryError with no clear message. AFter debugging a bit, I found that such a method was end up doing something like:

/usr/bin/unzip -u /tmp/github.zip -d /home/Testing/github-cache/dalehenrich/metacello-work/master 2> /tmp/zip.err

Problem was that I ALREADY had a /tmp/zip.err but that was written with another SO user... and defined unix file permission, didn't allow to write it with a different user..hence I was getting a permission denied which ended in sending #contentsOfEntireFile to nil...
So would it be possible to write zip.err with a more specific name? like per stone or something...or give write access to other ... 

Anyway....I remove the file with sudo and then it continue...but still getting a spec resolution error...but what is funny here is that I don't get ANY error nor repository error.. the line " self resolvePackageSpecReferences: packageSpec gofer: gofer  " simply returns an empty array....

Any idea what could be?  any bell? remember, custom system operating user (not sudoer), custom gemstone user, custom glass install, ... so yeah, kind of sounds like I should get problems hahahah

Thanks, 


--
Mariano
http://marianopeck.wordpress.com

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass





--
Mariano
http://marianopeck.wordpress.com
_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: [Glass] Cannot load Metacello nor Glass in Glass itself (spot bug)

Mariano Martinez Peck
Hi guys, 

Dale, I think I have the exact same problem as Johan. I am checking the .cs attached to the issue tracker and I see some differences to what I have loaded in my current glass.

First, in #extractRepositoryFrom: zipFile to: directory      I notice some difference and after checking, it seems I am using Metacello-Platform.gemstone-dkh.29 .. and that was committed in Metacello-Platform.gemstone-dkh.32.  but the comment in the issue tracker says the issue was integrated in  Metacello-Preview 1.0.0-beta.32.8. As far as I know, I am using last stable glass.... 

Same for #downloadFile: url to: outputFileName

#projectDirectoryFrom: projectPath version: versionStrin I see a completly different version I have in my glass and I don't see Johan changes committed. Moreover, there are new versions committed for that package that still change this method but I am not sure if it includes Johan changes. I think these may have been lost.

#downloadErrorFileNameFor: zipFileName I don't even see it nor in my current version nor in the latest committed version...

So...all in all, those 2 last methods may have been lost.

Cheers,



On Fri, Jan 17, 2014 at 3:42 AM, Johan Brichau <[hidden email]> wrote:
Btw, the things to try below are for *after* the download failed and you end up with a 'broken' GitHub repo in your image. I typically also get that when restoring a backup locally. At that point the github repo has lost its link to the github-cache directory (because it's no longer there at the place I restore the backup). Doing a metacello load then fails because the repository is empty but a new download is not triggered. So I remove all and clear the cache to trigger a download.
I also noticed you end up in the same situation if the download failed.

Johan

On 17 Jan 2014, at 02:38, Dale Henrichs <[hidden email]> wrote:

Johan,

I fixed the error handling, but in Mariano's case he has multiple linux users (with incompatible file permissions) trying to overwrite the same file and the permissions will just not allow that ...


On Thu, Jan 16, 2014 at 2:38 PM, Johan Brichau <[hidden email]> wrote:
Mariano,

Here are a couple of things I know to work when I hit this kind of issues:

Is the github repository present in your list when you open metacello? Remove it.
Is it present in the github-cache on disk? Remove it.
Clear the Monticello cache (from Monticello tool).

Often, I find this helps. Hope it helps for you.

Johan

On 16 Jan 2014, at 22:43, Mariano Martinez Peck <[hidden email]> wrote:




On Thu, Jan 16, 2014 at 5:53 PM, Dale Henrichs <[hidden email]> wrote:
Mariano,

The github downloads aren't very good at providing good error messages ... I have recently (in last month) improved some of the error handling for github, but those improvements are only in the github repo and if you can't download from github then you probably aren't using them...


Indeed. But something is weird: I could successfully bootstrap GLASS, using the installGLASS you provided me...doesn't this script use any github repo????
 
But your use case of running multiple glass users (at the linux level) is probably not accounted for  in the github implementation so additional work needs to be done there to accomodate multiple users on the same machine using Metacello ...


ouch.....
 
I've submitted a metacello bug[1] to track the issue ...

Until I can fix the bug, you the code  there are a number of methods that make the assumption that /tmp can be used as a temporary dumping ground for files:

  MCGitHubRepository class>>projectDirectoryFrom:version:
  MetacelloGemStonePlatform>>downloadFile:to:
  MetacelloGemStonePlatform>>extractRepositoryFrom:to:

Presumably these methods could be hacked to replace the use of '/tmp' with a suitable image-specific replacement ... where you can set the root temp directory to something that works for you ... this is probably the route I will take for the final solution ...

Thanks. I indeed found other files in /tmp which were owned by a different system user... I have removed them like "sudo rm github*" and "sudo rm curl*".

Still...same problem. I then tried stopping and starting stone again. Still, same problem. Finally I drop the extent and I bootstrapped everything from scratch again...why? because I thought some class var or something could have been persisted with wrong stuff or garbage. So I started again with that just bootstrapped glass and an empty /tmp and that worked!!!

So I should wait for your fix to have multiple system users sharing the same /tmp, right?

Let me know if I can be of help.

Thanks, 



On Thu, Jan 16, 2014 at 11:51 AM, Mariano Martinez Peck <[hidden email]> wrote:
Hi guys,

I have managed to install Glass into a base extent using the installGlass script provided by Dale. I am running this with a special user, not DataCurator, but with similar privileges. I can install Glass, but then as soon as I try to download something with Metacello...I get a spec resolution error....
It is important to note that all gems/netldi/stone are also running with its own system user. 

I am trying to download this for example:

  Metacello new
baseline:  'Metacello';
repository: 'github://dalehenrich/metacello-work:master/repository';
get.

First, I found a bug in #extractRepositoryFrom: zipFile to: directory
I was getting a simple GoferRepositoryError with no clear message. AFter debugging a bit, I found that such a method was end up doing something like:

/usr/bin/unzip -u /tmp/github.zip -d /home/Testing/github-cache/dalehenrich/metacello-work/master 2> /tmp/zip.err

Problem was that I ALREADY had a /tmp/zip.err but that was written with another SO user... and defined unix file permission, didn't allow to write it with a different user..hence I was getting a permission denied which ended in sending #contentsOfEntireFile to nil...
So would it be possible to write zip.err with a more specific name? like per stone or something...or give write access to other ... 

Anyway....I remove the file with sudo and then it continue...but still getting a spec resolution error...but what is funny here is that I don't get ANY error nor repository error.. the line " self resolvePackageSpecReferences: packageSpec gofer: gofer  " simply returns an empty array....

Any idea what could be?  any bell? remember, custom system operating user (not sudoer), custom gemstone user, custom glass install, ... so yeah, kind of sounds like I should get problems hahahah

Thanks, 


--
Mariano
http://marianopeck.wordpress.com

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass





--
Mariano
http://marianopeck.wordpress.com
_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass




--
Mariano
http://marianopeck.wordpress.com

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: [Glass] Cannot load Metacello nor Glass in Glass itself (spot bug)

Dale Henrichs-3



On Fri, Jan 17, 2014 at 5:57 AM, Mariano Martinez Peck <[hidden email]> wrote:
Hi guys, 

Dale, I think I have the exact same problem as Johan. I am checking the .cs attached to the issue tracker and I see some differences to what I have loaded in my current glass.

"exact same problem"? I understood that your problem were related to user permissions on files in the /tmp directory ... this is a flaw in the current design ...there are no bugfixes for that


First, in #extractRepositoryFrom: zipFile to: directory      I notice some difference and after checking, it seems I am using Metacello-Platform.gemstone-dkh.29 .. and that was committed in Metacello-Platform.gemstone-dkh.32.  but the comment in the issue tracker says the issue was integrated in  Metacello-Preview 1.0.0-beta.32.8. As far as I know, I am using last stable glass.... 

Same for #downloadFile: url to: outputFileName

#projectDirectoryFrom: projectPath version: versionStrin I see a completly different version I have in my glass and I don't see Johan changes committed. Moreover, there are new versions committed for that package that still change this method but I am not sure if it includes Johan changes. I think these may have been lost.

#downloadErrorFileNameFor: zipFileName I don't even see it nor in my current version nor in the latest committed version...

So...all in all, those 2 last methods may have been lost.

Google bug #184[4] was indeed "fixed" in Metacello-Preview 1.0.0-beta.32.8, but the current #stable version of the Metacello-Preview is 1.0.0-beta.32.12[6] and it includes an additional bugfix in this area (Github bug #209[1]). The relevant package version is Metacello-Platform.gemstone-dkh.33[5].

#downloadErrorFileNameFor: is in the class MetacelloPlatform and was introduced as part of the Google bug #184 bugfix[8].

So it appears that you aren't using the latest Metacello-Preview version....

But that is not the end of the story ... Metacello-Preview 1.0.0-beta.32.13 is in progress[7] and there are two open bugs in this area: Github Issue #226[2] and Github issue #232[3] (your multi-linux user bug)... 

So even if you are using the latest version, there are still open issues in this area ...

So we have two particular issues to figure out ... 

- how come you are using an older version of Metacello?
- how can we get you to the point where you can at least use the latest code base?

Using Metacello-Platform.gemstone-dkh.29 as the key, you must have Metacello 1.0-beta.32 loaded and Metacello 1.0-beta.32 implies that you have GLASS 1.0-beta.9 or GLASS 1.0-beta.9.1 loaded ... GLASS 1.0-beta.9 is the latest release, so now we understand where you are at -- I think:)

If you want to use the latest release version of Metacello, then you need to update to GLASS 1.0-beta.9.1 and then load the #stable version of the Metacello Preview:

ConfigurationOfGLASS project updateProject. GsDeployer deploy: [ (ConfigurationOfGLASS project version: '1.0-beta.9.1') load ]. 
  [
  Metacello new
    baseline: 'Metacello';
    repository: 'github://dalehenrich/metacello-work:master/repository';
    load: 'ALL'.
    ] on: Warning
      do: [:ex |
        Transcript cr; show: ex description.
        ex resume].

Be forewarned that the load of Metacello baseline downloads from github and you are exposed to the /tmp bugs until you get past the load, but then you are still exposed to the two unfixed bugs ([2] and [3]).

If you would like to help fix the bugs, then I suggest that you fork the Metacello repository on github and then clone it locally:

  cd /opt/git
  git clone [hidden email]:<your name>/metacello-work.git

and modify the Metacello load script to the following:

  [
  Metacello new
    baseline: 'Metacello';
    repository: 'filtree:///opt/git/metacello-work/repository';
    load: 'ALL'.
    ] on: Warning
      do: [:ex |
        Transcript cr; show: ex description.
        ex resume].

In the long run it is good idea to make local copies of all of the repositories that you are using in production so you can decide when you are ready to update to newer versions and insulate yourself from network outages and the like ...

Dale

 


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass