Bug ID 538722: Configurable maximum message size limit for restjavad

Last Modified: Feb 13, 2019

Bug Tracker

Affected Product:  See more info
BIG-IP LTM(all modules)

Known Affected Versions:
11.6.0, 11.6.0 HF1, 11.6.0 HF2, 11.6.0 HF3, 11.6.0 HF4, 11.6.0 HF5, 11.6.0 HF6, 11.6.0 HF7, 11.6.0 HF8

Fixed In:
12.1.0, 12.0.0, 11.6.1

Opened: Aug 07, 2015
Severity: 3-Major
Related AskF5 Article:
K06150134

Symptoms

if the client issues a request to iControl REST that results in a large amount of data (approx 200 MB), restjavad goes into an out-of-memory condition when attempting to serialize the response prior to returning it to the client.

Impact

restjavad becomes unresponsive until it is rebooted.

Conditions

A message is received by restjavad that is larger than the total free heap space. The most common cause is that the system sends a broard query to icrd, which returns a very large response (approx 200 MB).

Workaround

This fix exposes the maximum message size limit and allows a Network operator to change it by posting to a new configuration worker. An example is included below. The actual value varies by installation - load, average message size etc. Set it too low and the clients will receive 5xx errors even though there is sufficient memory. Set it too high and dangerously-large messages do not get dropped and might cause an out-of-memory exception. 5 MB is a recommended starting value. An example of setting the maximum message body size to 5kB (5000 bytes) on a machine called 'green.' The password needs to be changed appropriately. curl -s -k -u admin:PASSWORD -H "Content-Type: application/json" -H 'Connection: keep-alive' -X PUT "https://green/mgmt/shared/server/messaging/settings/8100" -d '{"maxMessageBodySize": "5000" }'.

Fix Information

There is now a configurable maximum message size limit for restjavad. Restjavad still reaches an out-of-memory condition if it receives very large messages (approx 200 MB), but there is now an option of setting a 'hard cap' that causes restjavad to discard these large messages, preventing the out-of-memory condition.

Behavior Change