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