Inserting a 1.8GB variable-length record into a transaction enabled file caused a c-tree Server crash with an "Unexpected internal c-tree(R) error #8520". Then during automatic recovery an error 96 was reported and the automatic recovery was aborted. Inserting the 1.8GB record caused the transaction log size to exceed the 2GB maximum we allow. The logic has been carefully reviewed and corrected to resolve this situation. c-tree’s maximum variable-length record size of 2GB is fully supported in transaction enabled files.
Workaround: This issue could affect a server with RECOVER_MEMLOG enabled or utilities such as ctldmp, ctrdmp, and ctfdmp that internally enable this functionality. Each memlog allocation is limited to under 2GB. Disabling the RECOVER_MEMLOG functionality could provide a workaround for this issue.
Note: The maximum allowed value for the LOG_SPACE keyword has been increased from 1GB to 4GB-1. This controls the initial size of transaction logs (of 4 logs specifically), so each log can now grow to just under 1GB. Each individual log can now grow up to 4GB if needed, although 3GB is expected to be the largest size, which will be a 1GB normal log size, plus a 2GB variable-length record.