Problem:
- Product Name: VisiBroker
- Product Version: ALL
- Product Component: Marshal Engine
This article describes some possible scenarios that can lead to the common CORBA.MARSHAL error message.
Resolution:
Typically, the problem with "Invalid magic number" is due to the fact that when a GIOP message is received by the ORB, the demarshalling engine did not find the first 4 bytes of buffered stream that starts with "G", "I", "O", "P".
There are a few possible reasons for this error:
- The stream was corrupted even before getting to the recipient. This can be due to incorrect application encryption of the send buffer, or corrupted in transit.
- It may also be a bug in the ORB that, although the stream arrived in the recipient in correct form, but the ORB did not read it correctly due to multiplexing of several requests by different threads on the same socket.
- The peer sending the message is not a CORBA client/server. This would mean that some non-corba component is trying to send a message to the server process that is not GIOP based (a simple socket connection sending data for example).
- The peer is CORBA but the message is malformed. It's possible that the messages are getting corrupted on the network.
- If the process is started on a fixed TCP port, some other (stale/active) processes might be holding or trying to use that port.
#GIOP
#VisiBroker
#marshal
#Security




