Heap allocation failed

Post questions here relative to DataStage Enterprise/PX Edition for such areas as Parallel job design, Parallel datasets, BuildOps, Wrappers, etc.

Moderators: chulett, rschirm, roy

Post Reply
saraswathi
Participant
Posts: 33
Joined: Wed Jun 20, 2007 1:13 am

Heap allocation failed

Post by saraswathi »

Hi,
I'm getting the below fatal errors, with different jobs
1) cs}}},1: Caught exception from runLocally(): APT_BadAlloc: Heap allocation failed..

2) main_program: /usr/lib/dld.sl: Call to malloc() failed to create BOR jump table
/usr/lib/dld.sl: Not enough space

3)Contents of phantom output file =>
RT_SC62/OshExecuter.sh[20]: 9278 Abort(coredump)

4) Parallel job reports failure (code 134)

What may be the reason for thse types of errors
ArndW
Participant
Posts: 16318
Joined: Tue Nov 16, 2004 9:08 am
Location: Germany
Contact:

Re: Heap allocation failed

Post by ArndW »

saraswathi wrote:... Call to malloc() failed to create BOR jump table
/usr/lib/dld.sl: Not enough space
malloc() is a UNIX routine that is used to get program working memory. If this call fails it means the process has no more virtual memory or that the system has no more virtual memory available.
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

Cure: simple supply and demand. Supply more memory or reduce overall simultaneous demand for memory.
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
priyadarshikunal
Premium Member
Premium Member
Posts: 1735
Joined: Thu Mar 01, 2007 5:44 am
Location: Troy, MI

Re: Heap allocation failed(Simple Correction )

Post by priyadarshikunal »

ArndW wrote:
saraswathi wrote:... Call to malloc() failed to create BOR jump table
/usr/lib/dld.sl: Not enough space
malloc() is a UNIX routine that is used to get program working memory.
Its a function of C that allocates memory dynamically to the program that calls it depending on the parameter passed

Since the Unix kernel is made using assembly language and C

it uses the same method i.e. malloc() to allocate working memory (as ArndW said).

else the answer is same as ArndW and Ray have written. 8)

Regards,

[/b]
Last edited by priyadarshikunal on Fri Feb 08, 2008 4:02 am, edited 1 time in total.
Priyadarshi Kunal

Genius may have its limitations, but stupidity is not thus handicapped. :wink:
priyadarshikunal
Premium Member
Premium Member
Posts: 1735
Joined: Thu Mar 01, 2007 5:44 am
Location: Troy, MI

Re: Heap allocation failed(Simple Correction )

Post by priyadarshikunal »

ArndW wrote:
saraswathi wrote:... Call to malloc() failed to create BOR jump table
/usr/lib/dld.sl: Not enough space
malloc() is a UNIX routine that is used to get program working memory.
Its a function of C that allocates memory dynamically to the program that calls it depending on the parameter passed

Since the Unix kernel is made using assembly language and C

it uses the same method i.e. malloc() to allocate working memory (as ArndW said).

else the answer is same as ArndW and Ray have written. 8)

Regards,

[/b]
Priyadarshi Kunal

Genius may have its limitations, but stupidity is not thus handicapped. :wink:
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

DataStage uses its own malloc(), not the standard UNIX one - it overloads the function. Be extremely careful making any assumptions about how malloc() works in a DataStage context. Indeed, it's better that you don't make any assumptions at all.
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
Post Reply