Salesforce

DBANALYS crashes with error 15892 after a new LOB field was added

« Go Back

Information

 
TitleDBANALYS crashes with error 15892 after a new LOB field was added
URL NameDbanalys-failed-with-error-15892-after-new-CLOB-field-added
Article Number000138657
EnvironmentProduct: OpenEdge
Version: 11.7.0 to 11.7.5 inclusive, 12.0, 12.1
OS: All supported platforms
Question/Problem Description
After adding LOB field to the table, TABANALYS fails with an error (15892)
DBANALYS crashes with an error 15892 rcUpgradeRecord after adding a BLOB/CLOB field to the table schema
DBANALYS fails with error 15892 on tables that contain LOB fields

Table has records exceeding the 32K record limit before the LOB field was added 
After removing records exceeding 32K and reloading the records DBANALYS crashes with SYSTEM ERROR 49

Stack trace from _dbutil reads:
lobAnalyze
tableAnalyze
upanalys
dbusDbAnalyze
dbusExecute
drdbUtil
Steps to Reproduce
Clarifying Information
PROUTIL DBSCAN reports no bad blocks or records
Dictionary Dump selecting to dump with LOB succeeds, confirms there are no LOBS to dump
EXPORT statement succeeds and does not create a *.blb files for LOBS
Counting all records with TABLE-SCAN runs without error: For Each <tableName> Table-Scan
DBTOOL Option 3. Record Validation reports "No error(s) found during validation", Record format errors found or Lob locator errors found
DBTOOL Option 4. Record Version Validation reports Number of fields mismatch. Expected (n), got (n-x) but no Discrepancies found before record upgrade or Record format errors found after upgrade
 
Error MessageDBANALYS: (-----) Hit end of record indicator before finding last field
DBANALYS: (15892) tableAnalyze: Internal Error rcUpgradeRecord failed, inst ret:1.
Defect NumberOCTA-13864
Enhancement Number
Cause
Before the LOB field was added, there were some records with size close to or met the maximum record size, 31998 to 32000.
  • A schema change updates the template record of the table with new columns, where the size of the template records cannot exceed MAXRECSZ (32KB). The limit is in effect 32K (physical record size) per table. In theory a table could have 32,000 columns. In practice, that is unachievable as field values have to fit within the record size limit (approx 32,000 bytes). That can be one character column with 32,000 ascii characters, 16,000 double byte characters, or 32,000 column that are all null, or 32,000 boolean columns or something in between.
  • After the CLOB/BLOB field was added, the physical size of existing records were not changed. This is expected because during add/drop a column, each record is not scanned to add/delete the field for the update. For performance reasons, the records will only be upgraded to the newest version when they are retrieved next time. 
  • DBANALYS error 15892 rcUpgradeRecord is due to an issue with tabanalys not assembling records with multiple fragments correctly with the current record template version (recently updated)
  • DBTOOL reports the fields mismatch during schema validation between the current record's schema and the table's template schema but does not verify that the record will exceed the max record size when the record's schema is updated
Resolution
Fixed version(s): 11.7.6.0, OpenEdge 12.2
Workaround
Notes
Progress Articles:

Tabanalys and dbanalys are crashing ( _dbutil.exe exception c0000409)  
DBTOOL Option 4 (Record Version Validation) reports discrepancies with the number of fields in a table  

The fix will include the following changed behavior to reflect the fixes in the application:
  1. DBANALYS | TABANALYS will use  the correct record fragment size when assembling a record with multiple fragments including the 2-bit lob locator
  2. DBTOOL Option 4 ( Record version validation) and DBANALYS will raise a warning message when processing records that exceed the max record size:
WARNING - record 1/769/0 of size 32003 exceeds the maximum size after record upgrade.
  • DBANALYS will write this message the database lg file
  • DBTOOL will write this message to the screen (STDOUT)
Keyword Phrase
Last Modified Date12/8/2023 11:17 PM

Powered by