[comp.sys.isis] Restriction on isis_define_type

ken@cs.cornell.edu (Ken Birman) (06/21/91)

One of our users has pointed out a fairly subtle bug in the way that
ISIS lets you define new format types for messages.

Basically, new format types won't byte-swap correctly (i.e. between
a DecStation and anything else) unless your communication is in bypass
mode.  The problem occurs when messages are passed through protos.  In
essense, since user-defined structures are not self-defining, protos
isn't able to byte-swap them when it reconstructs your message, and
the error occurs silently.  So, the message shows up with all the 
normal fields in normal byte order, but your user-defined fields not
converted correctly.

This is not going to be at all easy to fix.

So, unfortunately, the use of isis_define_type will have to be
limited to machines with compatible byte ordering or communication
that is known to go via the bypass protocols, where this bug would
not show up.  Use option "B" in reply or bcast if you are unsure
that a message will be going via bypass and you know of something,
like this, that would cause a bug in your code if the message DOESN'T
go via bypass.  That way, ISIS will warn you...

Sorry about this.  We should have thought of the problem sooner!

Ken
-- 
Kenneth P. Birman                              E-mail:  ken@cs.cornell.edu
4105 Upson Hall, Dept. of Computer Science     TEL:     607 255-9199 (office)
Cornell University Ithaca, NY 14853 (USA)      FAX:     607 255-4428