1834154 Members
2711 Online
110064 Solutions
New Discussion

Re: SIGSEGV

 
Paul Thomson_2
Super Advisor

SIGSEGV

Hi, we have a application (written in house), this when run is consuming upto 90% of CPU then causing a core file and displaying.

Pid 16740 received a SIGSEGV for stack growth failure.
Possible causes: insufficient memory or swap space,
or stack size exceeded maxssiz.

The system is running UX11i,
Hardware = rp2430
Memory = 3gb
Swap = 5gb

I know swap and memory are not getting hit as I have watched the values in glance during the time the process runs.

The OS is runnning 64bits,
Now thepart which has confused me, I have been reading various posts on ITRC which suggest increasing maxssiz , others suggest maxdsiz. I increase maxdsiz from
0x10000000 to 0x40000000
Actual parameters are,
maxdsiz 0x40000000 - 0X40000000
maxdsiz_64bit 0x40000000 - 0X40000000
maxssiz 16777216 - 16777216
maxssiz_64bit 16777216 - 16777216
maxtsiz 134217728 Y 134217728
maxtsiz_64bit 0x40000000 Y 0X40000000


The fact I have done this and yet still the process produces a core file, it there anything else I can do ?

Also , the value 0x40000000 relates in hex to 1073741824 , this is in bytes I assume, so this gives a GB stack size ?

Should I increase maxssiz too ?

Thanks for any replies

Argh ye land lovers !
5 REPLIES 5
Rgomes
Valued Contributor

Re: SIGSEGV

HI Paul,

What is your dbc_max_pct value? consider to tune that one also.

regards,
Richard
Paul Thomson_2
Super Advisor

Re: SIGSEGV

Richard, my values are
# kmtune | grep dbc
dbc_max_pct 10 - 10
dbc_min_pct 5 - 5


Bufpages is 0.

Argh ye land lovers !
Elmar P. Kolkman
Honored Contributor

Re: SIGSEGV

If a process produces and error like this, it seems to hit an infinite loop of recursive function calling... The stack is used to store local variables and CPU registers to reload after a function call has been finished.

So, don't try to increase kernel parameters, but find the faulting function, I would say. Try looking into debuggers and such (which is best depends on the language used in the application).

A simple question: did the size of the core file increase after increasing the kernel parameter for maxdsiz ?
Every problem has at least one solution. Only some solutions are harder to find.
Chris Wilshaw
Honored Contributor

Re: SIGSEGV

According to the error, it's the maxssiz parameter that's being exceeded.

Looking at the kernel parameters you've given, maxssize (stack size) is

maxssiz 16777216 - 16777216
maxssiz_64bit 16777216 - 16777216

This equates to 16Mb. Try increasing this to see if it helps.

a value of 33554432 will give you a 32MB stack size.


for reference, maxdsiz is the data segment size, and maxtsiz is the text segment size.
Paul Thomson_2
Super Advisor

Re: SIGSEGV

Thanks for posts, I will try increasing the stack to 32mb maxssiz and will let you know.
Argh ye land lovers !