Document Type | Troubleshooting
Category | Patch/Upgrade
Applicable Product Version | 6FS06
Document Number | TPATS006
Issue
An Internal Error occurs under the condition 'old_doc_id_max == doc_id_max - new_doc_count'.
Reproduction Scenario
Configure table and index creation along with text settings.
CREATE TABLE T145028 (
c1 varchar(2000),
c2 number,
c3 varchar(2000),
c4 varchar(2000)
)
PARTITION BY RANGE("C2")
(
PARTITION "P1" VALUES LESS THAN (1000),
PARTITION "P2" VALUES LESS THAN (2000),
PARTITION "P3" VALUES LESS THAN (3000),
PARTITION "P4" VALUES LESS THAN (4000),
PARTITION "P5" VALUES LESS THAN (5000),
PARTITION "P6" VALUES LESS THAN (6000),
PARTITION "P7" VALUES LESS THAN (7000),
PARTITION "P8" VALUES LESS THAN (8000),
PARTITION "P9" VALUES LESS THAN (9000),
PARTITION "P10" VALUES LESS THAN (100000),
PARTITION "P11" VALUES LESS THAN (200000),
PARTITION "P12" VALUES LESS THAN (300000),
PARTITION "P13" VALUES LESS THAN (400000),
PARTITION "P14" VALUES LESS THAN (1000000),
PARTITION "P15" VALUES LESS THAN (2000000),
PARTITION "P16" VALUES LESS THAN (4000000),
PARTITION "P17" VALUES LESS THAN (8000000),
PARTITION "P_MAX" VALUES LESS THAN (MAXVALUE)
)
/
EXEC text_DDL.CREATE_PREFERENCE('YW','BASIC_WORDLIST');
EXEC text_DDL.SET_ATTRIBUTE('YW','wildcard_maxterms', 0);
create index T145028_IDX on T145028 (C3) indextype is ctxsys.context
PARAMETERS ('Wordlist YW stoplist CTXSYS.EMPTY_STOPLIST SYNC(ON COMMIT)');Execute the following SQL statements randomly and simultaneously across multiple sessions.
insert into T145028 select level||'A', level, 'AB '||level||' CD', 'AAA' from dual connect by level<100000; insert into T145028 select level||'A', level, 'AB '||level||' CD', 'AAA' from dual connect by level<1000000; update T145028 set c3 = c3||'A' where c2 <100000; update T145028 set c3 = c3||'A' where c2 <10; delete from T145028 where 1028< c2 and c2 <9999; commit;
Cause
While using a context index with the sync on commit option, synchronization occurs when a commit happens, but the problem arises because the required lock cannot be acquired at that time.
Solutions
Apply a patch that improves the process so that when multiple sessions perform synchronization simultaneously using a context index with the sync on commit option, the required lock is properly acquired.