[omniORB] Undeterministic behavior (UMR) in IOR generation.

Shinji Suzuki suzuki@wni.co.jp
Fri, 27 Nov 1998 18:19:24 +0900


Sai-Lai et al.,

A colleague of mine noticed that two IOR's that were
generated based on identical input often differ. E.g.:

IOR:0000000b0000002849444c3a6f6d672e6f72672f436
      ^^^^^^
IOR:00ffe6d80000002849444c3a6f6d672e6f72672f436
      ^^^^^^

He thinks he tracked the cause down to address alignment
performed in MemBufferedStream::align_and_put_bytes().
When a gab is caused in the buffer by alignment (e.g. int32
write after dword aligned write of a single byte), the skipped
bytes won't be initialized, it seems. Although this does not seem
to affect functioning of the ORB, I think it's better to get
fixed IOR from fixed input. In addition, not initialising
memory will likely add spurious UMR(Uninitialised Memory Read)
messages from purify instructed programs.

Best Regards,
-shinji