Help on Swiki: NetNameResolver

lex at cc.gatech.edu lex at cc.gatech.edu
Thu Aug 12 18:10:46 UTC 2004


"Jochen F. Rick" <nadja at cc.gatech.edu> wrote:
> OK. I've finally been able to see this bug in action. It turns out to be 
> a Comanche bug. Apparently, there are times when Comanche does not know 
> the remote address. This causes it to send nil, rather than a byte array 
> to NetNameResolver. This causes a lock on the semaphore. WEIRD!

One guess is that it is signalling an error inside the critical block,
and thus never releasing the lock.  Have you tried scanning around for
blocked processes in an errant image?  Or are there even any debugger
windows floating around?

To get around this, one could look at the addressForName:timeout: method
and put a big ifError: around the contents of the critical: block.  If
an error happens, then stash the error in a temporary variable, and then
*outside* the critical: block re-raise the error.

It's just a guess, but it would seem consistent with the two things you
have seen: the lock not being released, and nil being passed into a
primitive that wants strings.  I had meant to try and put together a
changeset, but there is just too much going on, and so I'll email out
the thoughts anyway.

-Lex



More information about the Squeak-dev mailing list