Salesforce

10.1B and later Database crashes with System error 822

« Go Back

Information

 
Title10.1B and later Database crashes with System error 822
URL NameP123869
Article Number000131210
EnvironmentProduct: OpenEdge
Version: 10.1B, 10.2x, 11.x
OS: All Supported Operating Systems
Question/Problem Description
Successfully Converted pre OpenEdge 10.1B database crashes with error 822
Application client was updating or deleting records
Table has rowids in 64-bit range

DBTOOL report from Option# 3 "Record Validation"  shows warning messages about the first record fragment less than 10 bytes
Warning - first record fragment of 38104 area 35 is only 9 bytes.
Steps to Reproduce
Clarifying Information
Stack trace from _progres reads:

dsmFatalMsgnCallBack
rmDoInsert
rlLogAndDo
rmUpdateRest
rmUpdateRec


Stack Trace from prowin32 reads:

dbut_p_stcopy
Error Messagermdoins 1: pbk->free went negative dbkey <number>, area <number> (822)
SYSTEM ERROR: The broker is exiting unexpectedly, beginning Abnormal Shutdown. (5292)
Defect NumberDefect OE00147475 / PSC00183443
Enhancement Number
Cause
This issue will only affect databases that:
  • Were converted with conv910 conv1011 utilities from a prior OpenEdge 10.1B database
  • Were previously an OpenEdge 10 database upgraded to OpenEdge 10.1B or later OpenEdge 10 version
  • And since using the OpenEdge 10.1B or later database, have records with rowids in 64-bit range.
Since 64-bit dbkey support was introduced in OpenEdge 10.1B, there is an implicit requirement that any record in a Type II area must have at least 10 bytes, otherwise there is the possibility that the next fragment may point to a 64 bit rowid which will not fit in the space of the original fragment.

With OpenEdge 10.1B record version, non-schema records size will always be larger than 10 bytes. When a new record is created, the new version of a record has an array field header that assures the size of the record will always be larger than 10 bytes, therefore newly 10.1B created non-schema records will never have this issue.

Any schema-modifications by a pre-OpenEdge 10.1B client server connection to the OpenEdge 10.1B database modifying the schema, will however not have this guarantee. Schema records that were created in a pre-10.1B version, do not have the array header so the size of the record (or fragment) can be smaller than 10 bytes. So any records that have a <10 byte header, if the next fragment points to a 64 bit recid, it will not fit in the space of the original fragment. This causes the database crash with error 822 during the time of the update/delete and subsequent bi redo during crash recovery.
Resolution
If database fails to restart with the 822 error messages, first restore the last valid backup.  This is a non-recoverable situation as the notes in the Redo Phase of the bi suffer the same inability to add the record pointer.

Once the database has been recovered, run OpenEdge 10.1B (or later) DBTOOL Option #6 "Record Fixup" specifically only at the Area or Table level. 

If any records are found to have < 10 byte header, the record will be deleted and recreated with the new record version header size. This utility can be run online or offline and will be replicated in after-image notes in hotspare and OpenEdge Replication enabled environments.

For further instruction refer to the Resolution Section in Article:
Workaround
Notes

PROGRESS stack trace as of Tue May  1 14:47:13 2007
Command line arguments are
/progress/dlc/bin/_progres /pdb_prod/dbname

(0)  0x400000000167d4a0  uttraceback + 0x60  [/progress/dlc/bin/_progres]
(1)  0x40000000016a2910  utcore + 0x3a0  [/progress/dlc/bin/_progres]
(2)  0x4000000000709cc0  drexit + 0x540  [/progress/dlc/bin/_progres]
(3)  0x4000000000e76190  msgnCB + 0x1010  [/progress/dlc/bin/_progres]
(4)  0x4000000000e73180  msgCB + 0xfc0  [/progress/dlc/bin/_progres]
(5)  0x4000000000d5fb70  dsmFatalMsgnCallBack + 0x190  [/progress/dlc/bin/_progres]
(6)  0x4000000000d0fe40  dbenvout + 0x9c0  [/progress/dlc/bin/_progres]
(7)  0x4000000000d27130  dbUserDisconnect + 0x190  [/progress/dlc/bin/_progres]
(8)  0x4000000000d75d00  dsmUserDisconnect + 0x360  [/progress/dlc/bin/_progres]
(9)  0x4000000001034380  proend + 0x700  [/progress/dlc/bin/_progres]
(10) 0x40000000016a2e80  fdend + 0x200  [/progress/dlc/bin/_progres]
(11) 0x400000000070a190  drexit + 0xa10  [/progress/dlc/bin/_progres]
(12) 0x4000000000e76190  msgnCB + 0x1010  [/progress/dlc/bin/_progres]
(13) 0x4000000000e73180  msgCB + 0xfc0  [/progress/dlc/bin/_progres]
(14) 0x4000000000d5fb70  dsmFatalMsgnCallBack + 0x190  [/progress/dlc/bin/_progres]
(15) 0x4000000000e1df20  rmDoInsert + 0x4a0  [/progress/dlc/bin/_progres]
(16) 0x4000000000dfa4f0  rlLogAndDo + 0x210  [/progress/dlc/bin/_progres]
(17) 0x4000000000e172a0  rmUpdateRest + 0x320  [/progress/dlc/bin/_progres]
(18) 0x4000000000e1b6b0  rmUpdateRec + 0x210  [/progress/dlc/bin/_progres]
(19) 0x4000000000e1b440  rmRecordUpdateIt + 0xe0  [/progress/dlc/bin/_progres]
(20) 0x4000000000d6d190  dsmRecordUpdate + 0x5d0  [/progress/dlc/bin/_progres]
(21) 0x40000000010474e0  prowrt + 0x140  [/progress/dlc/bin/_progres]
(22) 0x40000000016ad840  fdwrt + 0x3a0  [/progress/dlc/bin/_progres]
(23) 0x40000000003abd20  bfdiscon + 0x4a0  [/progress/dlc/bin/_progres]
(24) 0x4000000000536850  rnbfdsc + 0x3b0  [/progress/dlc/bin/_progres]
(25) 0x40000000005443e0  rnexec_entry + 0x960  [/progress/dlc/bin/_progres]
(26) 0x400000000054c680  rninterpret + 0x1b0  [/progress/dlc/bin/_progres]
(27) 0x400000000092ee80  umeDispatchEvent + 0x10a0  [/progress/dlc/bin/_progres]
(28) 0x4000000000bc6f70  wvRunDispatcher + 0x930  [/progress/dlc/bin/_progres]
(29) 0x40000000002aaab0  iodispatch + 0x110  [/progress/dlc/bin/_progres]
(30) 0x40000000018c7780  rnrq + 0x100  [/progress/dlc/bin/_progres]
(31) 0x4000000000279060  main + 0x5c0  [/progress/dlc/bin/_progres]
(32) 0xc0000000000301c0  main_opd_entry + 0x50  [/usr/lib/hpux64/dld.so]
 


PROGRESS stack trace as of Wed May 23 19:02:33 2007

Exception code: E0000003
Fault address:  77E4BEE7 01:0000AEE7 C:\WINNT\system32\kernel32.dll

Call Stack:
Address   Frame
77E4BEE7  0012F68C  RaiseException+3C
004FB2B4  00000336  dbut_p_stcopy+CF4
Keyword Phrase
Last Modified Date11/20/2020 7:02 AM

Powered by