On Mon, Jan 3, 2011 at 10:36 PM, Eliot Miranda
<eliot.miranda@gmail.com> wrote:
On Mon, Jan 3, 2011 at 12:46 PM, David T. Lewis
<lewis@mail.msen.com> wrote:
On Mon, Jan 03, 2011 at 09:14:47PM +0100, Philippe Marschall wrote:
> On 03.01.2011 16:42, David T. Lewis wrote:
> > On Mon, Jan 03, 2011 at 03:57:07PM +0100, Philippe Marschall wrote:
> >> On 01/03/2011 03:25 PM, Alexandre Bergel wrote:
> >>> Hi!
> >>>
> >>> Sorry for the late answer. The student is now in my office and there is indeed a problem.
> >>> UUIDPlugin is not present on his harddisk. Maybe built in the VM.
> >>>
> >>> I found the class UUID and remove the call to the primitive. It works. Strange problem. Shall I report it in codegoogle?
> >>
> >> Has been known for two years, shouldn't happen, nobody cares.
> >>
> >
> > Huh ?!?!? What do you mean "nobody cares"?
>
> Nodby cares enough to get to the bottom of it and fix it once and for
> all. And yes, that includes me. It's just an observation. So if this is
> really critical for somebody then he'll have to fix it himself.
> Reporting the same bug again won't make a difference. That's just how
> open source is.
>
> Cheers
> Philippe
>
Yep :)
But I do want to make it clear that it seems the bug is not in
the plugin, it is in the libuuid implementations. We've all been
trying to find workarounds, but unfortunately not with much
success. For a while we could work around it by compiling the
plugin internally (which somehow prevents the bug from being
exposed), but now we have some 64-bit Linux distros that accidentally
left the 32-bit libuuid out of the distro, which prevents the VM
from running if the plugin was compiled internally. I'm sure it
has been fixed in up to date distros, but now we have one set of
Linux users with buggy libuuid libraries, and another set of Linux
users with missing 32-bit libuuid libraries, so somebody is going
to get screwed either way now :-/
I'm sure there must be some way to fix this that we're all missing,
so if anyone wants to look at it with a fresh set of eyes that
would be great.
If it is possible in the startup script to check whether the libuuid installation is correct then the startup script could print an error message plus information on how to correct the installation. �IMO, this would be better than either crashing after startup or hacking the image to avoid the primitive because of a platform error. �The issue then is how to check. �One straight-forward way would be for the start-up script to invoke a small C program that invoked libuuid in exactly the same way as the UUIDPlugin, and if this fails then the startup script can warn. �The issue remains how to correct the installation once the error has been detected.
Hi Eliot. I agree that your suggestion is better, but for that reason, we have been dealing with this for more than 2 years. So:
- hacking the image is not the best solution but it can be integrated in pharo in less than 5 minutes and working out of the box. Ok, we do not use the plugin if it is UNIX directly...even if that distro may be working
- hacking the image is better than crashing the system while doing something as basic as a simple commit. VM should crash as less as possible.
Providing such script (the one you say), integrate them in the pharo one clicks, testing it in several OS, and of course, how to CODE that piece of C/Shell or whatever you use, and how to know if the installation of libuuid is broken.
I think that pretending this solution is why this problem is present since 2 years already.
Hacking the image (or fixing a basic crash) can be done in 5 minutes and it is muuch better than a crash. If you, or someone, come after with a better solution, there is no problem. Such changes can be reverted in another 5 minutes. We are flexible ;)
Just my opinion
Mariano
�