My Oracle Support Banner

Ddldict crashes with "Segmentation fault" error during Schema Export when a Functional Index Expression Exceeds 100 Characters (Doc ID 3069231.1)

Last updated on FEBRUARY 26, 2025

Applies to:

Siebel CRM - Version 22.8 and later
IBM AIX on POWER Systems (64-bit)

Symptoms

On AIX, ddldict crashes during migration (export) from the source when the environment contains a functional index with an expression exceeding 100 characters, resulting in a "Segmentation fault" error in the console.

snippet of the console

ddldict /l <LOG> g /p ****** /d SIEBEL /a y /e y /n "Siebel Repository" /f /<PATH TO ctl file> /c esia17_DSN /T DCIR /u <USERNAME>

....

Reading index X_DD_TRGTGRPMBR_F2 ...
Found 4994 tables and 25714 indexes.
Writing DDL file...
Segmentation fault (core dumped)

 callstack_xxx.txt

DynArrSize + 0x0x00000000
Called from:
<unnamed block>
0x20aec890 UTLCfgWrite+ 0x00000d34
0x20756f44 UTLDbFileIndWrite(TagDb *, _utlCfgInfo *, TagDbInd *, unsigned int, int)+ 0x000017ac
0x20768dd0 UTLDbFileWrite@AF103_50+ 0x00000be0
0x10001870 MainFunction(Main *)+ 0x00001144
0x10000d04 wmain(int, wchar_t **)+ 0x00002224
0x100006f0 main+ 0x000003ac
0x100001e4 __start+ 0x0000021c

truss output

Found 5258 Tables and 26382 indexs
Writing DDL file

14614840: 66912591: 493.7836: kopen("/home/siebel/repo_exp/ddlexport.ctl", O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) = 12
14614840: 66912591: 493.7845: kioctl(12, 22528, 0x00000000, 0x00000000) Err#25 ENOTTY
14614840: 66912591: 493.7848: kioctl(12, 22528, 0x00000000, 0x00000000) Err#25 ENOTTY
14614840: 66912591: 493.7851: kwrite(12, 0x5EC3D510, 3) = 3
14614840: EFBBBF
14614840: 66912591: 493.8647: __libc_sbrk(0x00000000) = 0x5F376AD0
14614840: 66912591: 493.8692: __libc_sbrk(0x00000000) = 0x5F386AE0
....
14614840: 66912591: 500.6442: __libc_sbrk(0x00000000) = 0x618B8500
14614840: Received signal #11, SIGSEGV [caught]

Replication Steps
----------------------

1. Login to siebel tools

create Functional INDEX  as per the Guidelines for Creating a Function-Based Index

Index: - TEST_INVOICE_DUP_ORD_CHK_X
Table: - S_INVOICE
Expression = CASE WHEN (STATUS_CD <>'Reversed' AND STATUS_CD <>'Cancelled' AND STATUS_CD IS NOT NULL) THEN ORDER_ID END
COLUMN - ORDER_ID
Expr Flag - Y

2. Apply/Activate this change and verify the newly created index is created in database

3. Run schema export using ddldict something like below

ddldict /l <LOG> g /p ****** /d SIEBEL /a y /e y /n "Siebel Repository" /f /<PATH TO ctl file> /c esia17_DSN /T DCIR /u SADMIN

4. It crashes while writing the ddl file .

Changes

 

Cause

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Symptoms
Changes
Cause
Solution
References


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.