Archecker dumps a core
Posted in 2024
Dennis Melnikov found archecker on 11.70.FC5XE dumped a core and logged in-place alter (IPA) errors when restoring a table, even after removing IPAs and taking a fresh level 0. Andreas Legner said an IPA table keeps IPA characteristics and cited IT39814, fixed about two years earlier. Dennis asked for a workaround for the older version; Andreas knew of none.
Auto-generated by Claude from the posts below — may be imperfect; read the full thread.
Topics: Backup & Restore, Storage & Space Management, Connectivity: ESQL/C, 4GL & Embedded SQL, Triggers, Constraints & Referential Integrity, Migration, Import/Export & Data Conversion, Platform-Specific Issues, Versions, Editions & End-of-Life
Hi,
Testing archecker to restore a table, I encountered a bug, I believe.
A command file is as follows,
SET WORKSPACE TO dbs17;
RESTORE TO CURRENT WITH NO LOG;
DATABASE bluebird;
CREATE TABLE bank_st_l (
bank_st_l_id SERIAL NOT NULL,<... more columns ...>
) IN dbs10;
DATABASE elitemon;
CREATE TABLE tst_bank_st_l (
bank_st_l_id SERIAL NOT NULL,<... more columns ...>
) ;
INSERT INTO tst_bank_st_l SELECT * FROM bluebird:bank_st_l
WHERE bank_st_l_id BETWEEN 50000000 AND 50050000;First, it wrote in AC_MSGPATH a bunch of errors related to in-place alter,
STATUS: IBM Informix Dynamic Server Version 11.70.FC5XE
Program Name: archecker
Version: 8.0
Released: 2012-09-25 06:46:27
CSDK: IBM Informix CSDK Version 3.70
ESQL: IBM Informix-ESQL Version 3.70.FC6
Compiled: 09/25/12 06:46 on AIX 1 6
STATUS: Arguments [-bvs -f cmdtest2.sql]
STATUS: AC_STORAGE /blob/ARCHECKER
STATUS: AC_MSGPATH /tmp/ac_msg.log
STATUS: AC_VERBOSE on
STATUS: AC_TAPEBLOCK 60 KB
STATUS: AC_IXBAR /opt/informix/11.70fc5xe/etc/ixbar.0
STATUS: AC_RESTORE_FILTER /usr/bin/unpigz
STATUS: AC_SCHEMA cmdtest2.sql
TIME: [2024-03-27 12:41:19] All old validation files removed.
STATUS: Dropping old log control tables
STATUS: Temporary workspace has been set
STATUS: Restore only physical image of archive
STATUS: SQL [SET INDEXES, TRIGGERS, CONSTRAINTS FOR tst_bank_st_l DISABLED]
STATUS: Extracting table bluebird:bank_st_l into elitemon:tst_bank_st_l
STATUS: Determined Storage Manager to be tsm.
STATUS: Starting Filter /usr/bin/unpigz
STATUS: starting to scan dbspace 18 created on 2024-03-26 22:00:05.
STATUS: Archive timestamp 0X0C41D497.
TIME: [2024-03-27 12:41:21] Found Partition bank_st_l in space dbs10 (0x01200010).
<... More partitions ...>
ERROR: acu_ipa_rowalter: row data version(0) is invalid : pts_oldvers(0), total_versions(0)
ERROR: Unable to perform ipa for (0x1200134)
ERROR: IPA row alter failed for rowid 0x00000101
ERROR: Unable to convert page(28_8761749) for partnum 18874561
ERROR: acu_ipa_rowalter: row data version(0) is invalid : pts_oldvers(0), total_versions(0)
ERROR: Unable to perform ipa for (0x1200134)
ERROR: IPA row alter failed for rowid 0x00000201
ERROR: Unable to convert page(28_8761750) for partnum 18874561
<... 1000 times total ...>
The errors are rather weird 'cause I've got rid of all the IPAs with dummy updates followed with a whole backup.
Then, after some reading a core is dumped. Here is a primary analysis of the core,
$ dbx -p /=./ /opt/informix/11.70fc5xe/bin/archecker ./coreType 'help' for help.
[using memory image in ./core]
reading symbolic information ...warning: no source compiled with -g
Segmentation fault in acu_ipa_setup at 0x1001f3dcc ($t1)
0x1001f3dcc (acu_ipa_setup+0x34c) 7c05322e lhzx r0,r5,r6
(dbx) corefile
Process Name: /opt/informix/11.70fc5xe/bin/archecker
Version: 500
Flags: FULL_CORE | CORE_VERSION_1 | UBLOCK_VALID | USTACK_VALID | LE_VALID
Signal: SEGV
Process Mode: 64 bit
(dbx) where
acu_ipa_setup() at 0x1001f3dcc
ACU_RowAlter() at 0x1001f394c
ACU_Next() at 0x1000f2e3c
arc_unl_data() at 0x1000d72f4
Arc_process_page() at 0x1000e65e8
Arc_Scan_Tapes() at 0x1000e4d80
arc_unload_level() at 0x1000e51c8
main() at 0x100001bb4
My questions are,
(a) Is there anything I've missed to succeed with archecker?
(b) Is it possible to use archecker of a newer version?
------------------------------
Sincerely,
Dennis
------------------------------
Not sure Dennis, but having completed the IPAs may be the problem. The archive still has some old versions of the rows but the online catalog doesn't have the old definitions any longer. Maybe. I would expect that archecker would get the old version pages from the archive, but .... ------------------------------ Art S. Kagel, President and Principal Consultant ASK Database Management Corp. www.askdbmgt.com ------------------------------
Art, Not sure I got your point completely. The situation described was not the first try. The first one was with the IPAs on their place. It has dumped a core as well, that's because I got rid of the IPAs, and made a fresh level-0. How can the archive have rows with IPAs after that? ------------------------------ Sincerely, Dennis ------------------------------
This possibly applying: IT39814 TABLE LEVEL RESTORE FAILURE ON TABLE WITH DIFFERING IN-PLACE ALTER HISTORY BETWEEN ITS FRAGMENTS (I think I remember error codes rather than core dump, though.) A table can be in this state if it underwent at least one in-place alter, then got fragments added before undergoing more in-place alters. In any case: an IPA table will never loose it's IPA characteristics, no matter if it still has any outstanding in-place alters, i.e. old version pages. All data pages will carry the latest (non-zero) IPA version which is going to invoke IPA code. ------------------------------ Andreas Legner ------------------------------
Got it. Missed that. ------------------------------ Art S. Kagel, President and Principal Consultant ASK Database Management Corp. www.askdbmgt.com ------------------------------
Andreas, This way, a partitioned table altered multiple times during its lifecycle becomes unrestorable with archecker? ------------------------------ Sincerely, Dennis ------------------------------
... until someone noticed this and it was fixed, pretty much immediately, around two years ago. ------------------------------ Andreas Legner ------------------------------
Andreas, I mean, there is no workaround for the older version? ------------------------------ Sincerely, Dennis ------------------------------
Don't think so, sorry. ------------------------------ Andreas Legner ------------------------------