Problem:
- Product Name: VisiBroker
 - Product Version: 7.0 & 8.0
 - Product Component: Smart Agent (osagent)
 - Platform/OS Version: All
 
Sometimes user sees high memory usage of osagent. The memory usage may increase to 3Gb in very short time. This leads to osagent crash sometimes.
Root Cause:
The osagent crashes because the osagent message has been hacked. Osagent uses stream based UDP/TCP protocol. The data packet design has no checksum build into it. When osagent receives message that specifies a very large value for the length of the incoming data (specified in the first 4 bytes of a data packet), the system will attempt to allocate big memory space for the incoming data. User will then notice high memory usage by osagent. Sometimes if the system fails to allocate such a large memory, osagent crashes.
Resolution:
Please note that CR9599 (introduced in VisiBroker 7.0 service pack 4 and VisiBroker 8.0 service pack 1) is created to prevent the allocation of very large amout of momery, thus prevent the osagent to crash.
In fact, osagent is built on top of UDP transport mechanism. It is not designed to be exposed to external networks (like internet that might get attacked easily).
If the user's implementation requires external network access, user may consider the following workarounds:
 1. Use Naming Service (VisiNaming) instead of osagent.
 2. Use GateKeeper as a proxy to osagent.
Note that this fix is already in VisiBroker 8.5 release.
#Security
#NamingService
#Crash
#SmartAgent
#VisiNaming
#gatekeeper
#VisiBroker
#osagent