Article

AIMGT error 533, 526, 6074 when accessing addonline ai extents

Information

 
Article Number000064479
EnvironmentProduct: OpenEdge
Version: 10.1x, 10.2x, 11.x
OS: UNIX
Question/Problem Description
AIMGT archive failure occurs only when the database is started with: –aiarcdir /dev/null 

AI extents that were present at database startup are not archived to /dev/null and are marked EMPTY
(13642) After-image extent dbname.a3 was not archived because the target is /dev/null. 
(3789) Marked after-image extent dbname.a3 EMPTY
.

AI extents that are added with PROSRCT ADDONLINE are not archived to /dev/null then fails with errors 533, 526 and 6074 reported on the ai file that is to be marked as EMPTY.
AIMGT fails to EMPTY new AI extents that are added with prostrct addonline when -aiarcdir /dev/null
(13642) After-image extent dbname.a4 was not archived because the target is /dev/null. 
(533) SYSTEM ERROR: I/O table not initialized. 
(526) SYSTEM ERROR: bkioRead: I/O table not initialized index 0. 
(6074) Unable to read extent header, file = dbname.a4, ret = -1.

Database either hangs or enters abnormal shutdown after error 6074
Steps to ReproduceReproduced in OpenEdge 11.6

Archiving extents to /dev/null returns the error behaviour:

1. prodb sports2000 sports2000
2. prostrct add sports2000 add.st

#add.st
a . f 1024
a . f 1024
a . f 1024

3. rfutil sports2000 -C mark backedup
4. rfutil sports2000 -C aimage begin
5. rfutil sports2000 -C aiarchiver enable
6. proserve sports2000 -aiarcdir /dev/null
7. To grow ai files, start client: _progres -db sports2000 -p salesrep.p

/* salesrep.p */

def var zz as int no-undo.
do zz = 1 to 2000:
create salesrep.
assign salesrep.salesrep = 'rep' + string(time) + '-' + string(zz)
salesrep.repname = fill('x', 1000).
end.

8. prostrct addonline sports2000 add.st
9. Start another client to populate the new ai extents: _progres -db sports2000 -p salesrep.p

Database.lg:

ABL 7: (3777) Switched to ai extent /db/sports2000.a4.
ABL 7: (3778) This is after-image file number 4 since the last AIMAGE BEGIN
AIMGT 5: (13642) After-image extent /db/sports2000.a3 was not archived because the target is /dev/null.
AIMGT 5: (3789) Marked after-image extent /dbsports2000.a3 EMPTY.
ABL 7: (3777) Switched to ai extent /db/sports2000.a5.
ABL 7: (3778) This is after-image file number 5 since the last AIMAGE BEGIN
ABL 7: (3777) Switched to ai extent /db/sports2000.a6.
ABL 7: (3778) This is after-image file number 6 since the last AIMAGE BEGIN
AIMGT 5: (13642) After-image extent /db/sports2000.a4 was not archived because the target is /dev/null.
AIMGT 5: (533) SYSTEM ERROR: I/O table not initialized.
AIMGT 5: (526) SYSTEM ERROR: bkioRead: I/O table not initialized index 0.
AIMGT 5: (6074) Unable to read extent header, file = /db/sports2000.a4, ret = -1.
Clarifying Information
AIMGT fails to EMPTY extents when the archive directory is changed before adding new AI extents with RFUTIL -C aiarchiver setdir /dev/null
If -aiarcdir points to a real directory instead of /dev/null, then extents that were added online are emptied.
Error MessageSYSTEM ERROR: I/O table not initialized. (533)
SYSTEM ERROR: bkioRead: I/O table not initialized index <num>. (526)
Unable to read extent header, file = <file-name>, ret = <return-value>. (6074)
Defect/Enhancement NumberDefect PSC00342861
Cause
The exact cause is not known at this time.
Resolution
Until the fix is available, use the workaround below.
Workaround
A database restart resolves the issue.
  1. If the database has not already entered an abnormal shutdown, carry out an emergency shutdown using proshut -F
  2. Restart the database. The database will start normally and AI File Management will proceed without error against the current AI extents.
In a production environment do not archive to /dev/null or if the necessity arises:
  • Do not add AI extents online when starting the database with -aiarcdir /dev/null
  • Having started the database with -aiarcdir /dev/null, if new AI extents are needed online, first change the archive directory to a real directory with: RFUTIL -C aiarchiver setdir /tmp
  • Ensure that new AI extents that were added online have been switched/archived/marked empty at least once to a real directory before changing the archive directory to dev/null
/dev/null is a device file that immediately discards writes to it, so any data archived to it will be irrecoverably lost. 
Notes
Attachment 
Last Modified Date2/1/2016 11:13 AM


Feedback
 
Did this article resolve your question/issue?

   

Your feedback is appreciated.

Please tell us how we can make this article more useful. Please provide us a way to contact you, should we need clarification on the feedback provided or if you need further assistance.

Characters Remaining: 1025