Client exits abnormally

Here’s the scenario:

server MsgReceive()
clientA MsgSend()
server MsgReceive() returns rcvid 2
server MsgReceive()
slay clientA
server MsgReceive() returns rcvid 2 (why!?)
server MsgReceive()
clientA does not die
(wait 30s)
clientA dies

What’s going on? When clientA dies I might expect to get some sort of ‘rcvid
died’ pulse, but not what looks like to me a new MsgSend(). What takes
clientA so long to reap?

This is what I’m trying to get:

server MsgReceive()
clientA MsgSend()
server MsgReceive() returns rcvid 2
server MsgReceive()
slay clientA
clientA dies
server MsgReceive() returns rcvid 0 (client died pulse)
server MsgReceive()
(wait for next client)

Thanks,
Shaun

I’ve found the source of my problems:

  1. The out-of-place second message goes away when ConnectAttach() is called
    with _NTO_SIDE_CHANNEL.

  2. The long time-to-death goes away if the resource manager handles
    _NTO_CHF_UNBLOCK.

Cheers,
Shaun