IBM Support

fmcibie can abort when importing a complex FDL

Troubleshooting


Problem

WebSphere MQ Workflow's import utility (fmcibie) fails after some time during the verification step of processing a too large or too complex FDL. A core dump may or may not occur.

Cause

For some FDL's, fmcibie needs a large data area. If the available space for allocating new data is exceeded, the program fails with several possible symptoms.

Resolving The Problem

Provide enough data (stack, heap) size when processing an FDL which requires above average resources.

In AIX, available data resource sizes can be defined in /etc/security/limits. Common values which are defined there could be
  data = 131072  (i.e. 64 MB) or
  data = 262144  (i.e. 128 MB) or
  data = 524288  (i.e. 256 MB) or
  data = -1  (i.e. unlimited).
The current setting (in KBytes) can be retrieved with the ulimit command:
# ulimit -d
262144
# ulimit -a
core file size        (blocks, -c) unlimited
data seg size         (kbytes, -d) 262144
file size             (blocks, -f) unlimited
max memory size       (kbytes, -m) 65536
open files                    (-n) 4000
pipe size          (512 bytes, -p) 64
stack size            (kbytes, -s) 65536
cpu time             (seconds, -t) unlimited
max user processes            (-u) 262144
virtual memory        (kbytes, -v) unlimited

Here are some errors which were observed during tests with different settings for data:

data=131072 (64 MB):
...
FMC21500I Begin verification of process 'Proc1'.
Assertion failed: space unavailable from new, file e:/v350/src/fmcycond.yxx, line 336
FMC22010E Internal exception arised: FmcParserException
FMC24560I /usr/lpp/fmc/bin/fmcibie finished and found 1 errors 0 warnings. RC = 20

data=196608 (96 MB) -> 203 MB core file
data=262144 (128 MB) -> 237 MB core file
data=524288 (256 MB) -> 370 MB core file
data=-1 (unlimited) -> same as with 256 MB
...
FMC21500I Begin verification of process 'Proc1'.
Illegal instruction (core dumped)
...
$ dbx /usr/lpp/fmc/bin/fmcibie
Type 'help' for help.
reading symbolic information ...warning: no source compiled with -g

[using memory image in core]

Illegal instruction (illegal opcode) in . at 0x0 ($t1)
warning: Unable to access address 0x0 from core
(dbx) where
warning: Unable to access address 0x0 from core
warning: could not locate trace table from starting address 0x0
warning: could not locate trace table from starting address 0xfffffffffffffffc
warning: Could not determine current function

Now if even 256 MB or an "unlimited" data size are not sufficient, it is necessary to provide more than one segment of addess space for the data area. Remember, that the address space for 32 bit programs on RS/6000 is divided into 16 segments of 256 MByte each (which sums up to 4 GByte). See the link below about "Large Program Support in AIX" for a description about this topic and how to define more than one 256 MB-segment for program data allocation.

Here is a short description on how to accomplish this.

Using the maxdata option the fmcibie program gets the setting about how many segments (more than 1) to use.

The maxdata option can either be linked into to executable, or provided with the LDR_CNTRL environment variable during runtime.

The following worked in the above test scenario:

  1. In /etc/security/limits, set "data = -1". This allows unlimited data area usage.
  2. In the environment where fmcibie is called, set "LDR_CNTRL=MAXDATA=0x80000000". This can be done for instance with "export LDR_CNTRL=......." or directly on the command line when starting the program:
    LDR_CNTRL=MAXDATA=0x80000000 fmcibie -uADMIN -ppassword -i test.fdl -ot
This setting reserves 8 segments (= enough for up to 2 Gigabytes of data storage) for the fmcibie process. Using MAXDATA=0x20000000 (= 512 MBytes) would have been sufficient for the above example, where the data area grew to 335 MB during the test.

Related Information

[{"Product":{"code":"SSVLA5","label":"WebSphere MQ Workflow"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Import\/Export FDL","Platform":[{"code":"PF002","label":"AIX"}],"Version":"3.6","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
15 June 2018

UID

swg21239918