px version of Ereplace - SIGSEGV error.

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
sspreethi
Participant
Posts: 25
Joined: Mon Dec 01, 2003 2:27 am

px version of Ereplace - SIGSEGV error.

Post by sspreethi »

Hi,

I have created a parallel routine for Ereplace using the code by DSguru2B (viewtopic.php?t=106358&highlight=ereplace)

I have compiled the code & mentioned the library path:
/etl/ascential/Ascential/DataStage/PXEngine.751.1/lib/libereplace.o

When I compile a job using this routine, it aborts with the following error.
Data_Validation_Dtl1_Tfm,0: sh: dbx: not found
Data_Validation_Dtl1_Tfm,0: Operator terminated abnormally: received signal SIGSEGV

I did check the forum for Segment Violation(SISSEGV) & above errors but could not find a solution.

Please let me know how to proceed.

kduke - I read your post that it worked fine for you. Can you pls let me know if I need to change any thing.

- Preethi
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

How much physical memory do you have? Monitor with vmstat while this job is running.
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
sspreethi
Participant
Posts: 25
Joined: Mon Dec 01, 2003 2:27 am

Post by sspreethi »

Ray, will this information help?

procs memory page disk faults cpu
r b w swap free re mf pi po fr de sr s0 s1 s2 s3 in sy cs us sy id
0 0 0 17150280 1040208 258 886 1049 8 10 0 3 0 0 0 0 300 547 488 15 6 79
DSguru2B
Charter Member
Charter Member
Posts: 6854
Joined: Wed Feb 09, 2005 3:44 pm
Location: Houston, TX

Post by DSguru2B »

What happens when you go for the "object file" option instead of the library option while creating the interlude for the px routine?
Creativity is allowing yourself to make mistakes. Art is knowing which ones to keep.
sspreethi
Participant
Posts: 25
Joined: Mon Dec 01, 2003 2:27 am

Post by sspreethi »

I have used object file option only...
DSguru2B
Charter Member
Charter Member
Posts: 6854
Joined: Wed Feb 09, 2005 3:44 pm
Location: Houston, TX

Post by DSguru2B »

You should not be getting that error while compilation. Any time you get a compilation error is, when you have compiled the routine properly.
Create a simple c routine that takes in an arguments as integer and adds 10 to it and returns it back. See if you are getting the same issue with that.
Creativity is allowing yourself to make mistakes. Art is knowing which ones to keep.
sspreethi
Participant
Posts: 25
Joined: Mon Dec 01, 2003 2:27 am

Post by sspreethi »

I get this error while running the job using this routine. Sorry for typing it wrong earlier in the post.
Also I have tried executing a sample rouine & it works fine.
DSguru2B
Charter Member
Charter Member
Posts: 6854
Joined: Wed Feb 09, 2005 3:44 pm
Location: Houston, TX

Post by DSguru2B »

The very first line of the routine where your specifying the size of "result", remove that line and try the following:

Code: Select all

char *result = (char *)malloc (sizeof(str));
Creativity is allowing yourself to make mistakes. Art is knowing which ones to keep.
DSguru2B
Charter Member
Charter Member
Posts: 6854
Joined: Wed Feb 09, 2005 3:44 pm
Location: Houston, TX

Post by DSguru2B »

I also suspect its the amount of memory thats being allocated for result variable, thats why I asked the OP to remove or comment out that line and specify the size of the complete string. If that does not work, he should then just explicitly specify

Code: Select all

char *result = (char *)malloc (1000); 
and then try again. If the code runs without any hitch, then the memory allocation line for result needs to be re-written.
Creativity is allowing yourself to make mistakes. Art is knowing which ones to keep.
Post Reply