I  think that   I  have  found  a   repeatable assertion   failure, in
libc/hurd/intr-msg.c That is I have had two  hangs with this assertion
printed on the console. 

ext2fs.static: intr-msg.c:304:_hurd_intr_rpc_mach_msg:Assertion
               `m->header.msgh_id == msgid + 100` failed.


I have a question about this assertion, which seems to  only be hit if
both in interrupt mode, and when the interrupt wasn't serviced, so the
second attempt to receive.

This assignment is prior to the assertion.

     msgid = m->request.msgh_id

The assertion is testing for msgid+100 == m->header.msgh_id

Is there a protocol  that defines why this value  should be 100 > than
the assigned value?

This comment mentions that option can be modified, but will msg be altered?

  /* Note that the signal trampoline code might modify our OPTION!  */
  err = INTR_MSG_TRAP (msg, option, send_size,
                       rcv_size, rcv_name, timeout, notify);

Sorry as far as I have gotten with it so far.


-- 
Hope springs eternal!

/^\
\ /     ASCII RIBBON CAMPAIGN
 X        AGAINST HTML MAIL
/ \

_______________________________________________
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd

Reply via email to