[omniORB] BadPolicy exception in omniNames on OpenVMS.

Duncan Grisby duncan@grisby.org
Tue Apr 8 12:59:01 2003


On Monday 7 April, "Visscher, Bruce" wrote:

> After running for 147 days, an omniNames server that was built
> against omniORB 3.0.4 and running under OpenVMS 7.3 crashed as the
> result of a WrongPolicy exception being thrown from this line of
> omniOrbPOA::servant_to_id: 
> 
>           29341   if( !pd_policy.implicit_activation )  throw WrongPolicy();
> 
> This in turn is propagated out to:
> 
>      I1   32489
>      I1   32490   PortableServer::ObjectId* PR_id() {
>      I1   32491     return nc_poa->servant_to_id(this);
>      I1   32492   }
>      I1   32493
> 
> which was invoked as part of omniNameslog::checkpoint.

Most peculiar. The exception is thrown because the POA is attempting
to perform an implicit activation on the naming context servant, but
the naming context POA does not have that policy. However, all naming
context servants in the list it is iterating over should already be
activated, meaning it should not be trying to activate it.

I really don't know how that could have happened unless something else
corrupted the memory, or the locking that protects the list against
concurrent modification failed to work. Either seems pretty unlikely
given how long the process had been running without problems.

Unless it happens again, I think we'll just have to assume it was a
random occurrence. Cosmic rays hitting the memory or something ;-)

[...]
> Is there anything in omniORB 4.x that might have helped here?

I don't think so. The POA implementation in omniORB 4 is almost
identical to omniORB 3.

> On a slightly different topic: Attempts to port omniORB 4 to OpenVMS
> have been reported to this list.  Have any been successful?

Not that I know of conclusively.

Cheers,

Duncan.

-- 
 -- Duncan Grisby         --
  -- duncan@grisby.org     --
   -- http://www.grisby.org --