Summary of "Magma notes" issues

Chris Muller afunkyobject at yahoo.com
Mon Jul 12 03:56:51 UTC 2004


> I spent a good three hours yesterday testing Magma and logging, in 
> detail, my experiences doing so.  As it happened, I came across several 
> issues that I felt needed to be brought to your attention.  I was 
> confident that by doing so I would be helping you to find the bugs, fix 
> them, and thus improve Magma.  After a few iterations of this, I 
> thought, Magma might be suitable for production use, and we would all 
> benefit.

Whew!  Wow, I need to work on my words!

I have no doubt you experienced the problems you experienced.   I think I
must've used words that unintentionally minimized the "validity" of your claims
and I apologize for that.

But please understand, I really did spend a lot of time to go through your
notes in detail.  That your experience differed from mine doesn't mean the
problem doesn't exist or that we don't have the same goal of getting it fixed. 
It just means we need to get-more-specific so we can zero-in on the exact
problems and I can get them fixed.

When I encounter a bug, I normally try to provide a tangible example to
demonstrate to the maintainer the problem and how to reproduce it along with my
analysis of what I think the cause or solution might be.  I tried my best to
repeat the operations described in your account, but had different results
along the way.  I couldn't get Magma to fail at the some of the things it was
failing for you.

We just need to zero-in another level of detail.  For example, I mentioned the
multi-session, continuous-commit of Time now thing worked for me.  I'm not
saying it didn't work for you, I just don't know why you had that problem and
so I'm stuck on how to proceed getting it fixed.

I think the first step to getting to the heart of these problems is to make
sure we're testing the same exact thing in the same conditions.  We're both in
a 3.7b image, we've both loaded MagmaTester 1.0gamma7.

But next I think we must've diverged.  Generally, we were "creating
repository's, starting servers, connecting clients, etc."  But let's put this
part into a more-specific script so it'll be a more equivalent test and,
hopefully, produce more equivalent results for the two of us.

> It's very clear from your responses below, however, that this isn't 
> something that interests you.  Magma "works for you", and any problems 
> any of the rest of us have with it are due to "incorrect expectations", 
> bugs in Squeak, user error when setting preferences, or, evidently, are 
> simply figments of our imagination.

I obviously did a poor job of communicating and I apologize for that.

Magma will mature according to whatever "forces" motivate it to be changed. 
Unless I *hear* from someone who wants a feature or bug fixed, then the only
forces motivating further improvements are originating from me and my own
agenda.  All anyone has to do is *communicate* and I'll jump to help them get
going with whatever they want to do with Magma (within reason of course, I
can't divert copius amounts of hours from my own projects for free).

That's why, when you said your primary interest in an OODB is for web-apps, I
jumped at the opportunity ask you what test-case it would take for Magma to
prove it is up to the task in the multi-session-per-image department.  Web-apps
are not my focus right now, so any test-case I develop will be probably be
insufficient for your needs.  I would love to collaborate to ensure it does
whatever you need it to do to support a web-app.

> - Debug mode is *not* on in my images.  I just checked.

This one is related to the failed concurrency-detection...  Can we move this
one toward a more straight-run script version of what failed for you and see if
it fails?  Here's my cut:

  1) open server image.  Let's start fresh by:

    MagmaRepositoryController initialize.  MagmaSession initialize.

  2) now create repository (if necessary) and start server.
  3) save and exit image with running server.  restart.
  4) boot up separate clients image.  Start fresh by:

    MagmaRepositoryController initialize.  MagmaSession initialize.

  5) In workspace in client image:

| client1 client2 |
client1 _ MagmaSession hostAddress: #(127 0 0 1) asByteArray port: 51969.
client2 _ MagmaSession hostAddress: #(127 0 0 1) asByteArray port: 51969.
client1 connectAs: 'client1'.
client2 connectAs: 'client2'.
client1 inspect.  client2 inspect.  "so we can disconnect when we need"
client1 begin.
client1 root at: 'concurrency test' put: 7.
client2 commit: [ client2 root at: 'concurrency test' put: 8 ].
client1 commit

You should *definitely* get a MagmaCommitError on this.  If you don't, please
let me know, and I think it'll be time to run MagmaTestCase on your Powerbook.

> - Saving and quitting a running server *did* leave my image in a state 
> where it couldn't act as a server.  I'm happy to send you the image.

Even if the test restarting the server image above works I would be happy to
look at the old image to see why it wasn't accepting connections.  It may lead
to an explanation of a lot of things.

I've got plenty of storage on my mail-account.  If you send it, I will look at
it and have an answer quickly.

> - I'm not making up what I'm calling "the silent failure issue".

I know you're not.  I was just saying I don't think the problem is an Exception
getting swallowed silently (a practice I'm not too proud to use).  I'm just
trying to estimate where the problem might be.

> Having a process die suddenly does not require hardware failure.  
> Operating systems kill processes all the time.  Not to mention 
> sysadmins.  If I can't "killall -9 squeak" without fearing for my data, 
> that's a big problem.  Again, I would be much happier if you seemed to 
> be acknowledging the problem rather than explaining it away.

I thought you meant killing a Smalltalk process because I thought you said "in
the Process browser" or something like that.  Another miscommunication!  Yes,
killing the Squeak OS process would be essentially equivalent to a hardware
failure right?  This is not handled and could lead to corrupt data.  Magma is a
risky place for important or "production" data.

Peace Avi.  I enjoy thoughtful discussion and constructive debate and you have
my highest respect.  I hope to make your acquaintence some day if you can still
stand me by then..  I think then you would see that I only have good-hearted
intentions.

 - Chris



More information about the Squeak-dev mailing list