1758626 Members
2362 Online
108874 Solutions
New Discussion юеВ

Re: SIGNAL11 issue

 
SOLVED
Go to solution
Andres_13
Respected Contributor

SIGNAL11 issue

Hi all

Can anybody expalian what is and what it means a signal 11?

Some process in a HP-UX 11.23, Oracle9i and SAP NW 6 has been 'killed' with this status.

Apreciate your help
5 REPLIES 5
A. Clay Stephenson
Acclaimed Contributor
Solution

Re: SIGNAL11 issue

Signal 11 is SIGSEGV (Segment Violation) and means that a process has attempted to access an illegal memory address (ie one outside the permitted bounds of a process). A trival example would be to declare an array of 100 elements and attempt to access element 200. This is almost always a programming error although it can be a data-related error as well. For example, the "200" in our previous example might have been read from a file so while the program in the strictest sense contains no error, the data in this case triggered a SIGSEGV. In any event, well-written code should check for these kinds of boundary conditions before trying to access element 200.

There is also an non-zero probability that the signal came from an outside process (ie kill -11 PID) but that is very unlikely. Almost certainly this is a coding error. The way to analyze this problem is via a debugger to examine the stack trace but unless you have the source code, you won't be able to fix anything.

If it ain't broke, I can fix that.
Dennis Handly
Acclaimed Contributor

Re: SIGNAL11 issue

>Clay: Signal 11 is SIGSEGV (Segment Violation) and means that a process has attempted to access an illegal memory address

Actually both signal 10 and 11 can be caused by this. Actually the difference between the two is blurred but both are caused by bad addresses for the instruction in question.

Other causes of the two:
stack or thread stack overflow
Alignment traps
Null pointer dereferences
An address that isn't mapped
An address in another process (access rights)

>signal came from an outside process (ie kill -11 PID) but that is very unlikely.

Right, these are hard to trace down because the instruction and registers can't fail.
Dennis Handly
Acclaimed Contributor

Re: SIGNAL11 issue

>Clay: examine the stack trace but unless you have the source code, you won't be able to fix anything.

One use of just a stack trace is to compare against other instances to check whether it is a duplicate and find a workaround or fix.
James R. Ferguson
Acclaimed Contributor

Re: SIGNAL11 issue

HI Andres:

One way to quickly see the mapping between a signal number and its name is to do:

# kill -l

From that you would see that 11 = SEGV. The prefix "SIG" is inferred.

You can also examine '/usr/include/sys/signal.h' to see the number to name mapping.

The manpages for 'signal(5)' then offer insight into the *reason* for the signal. In the case of interest, a signal-11 (SIGSEGV) would be either an address not mapped to object or invalid permissions for a mapped object.

http://www.docs.hp.com/en/B2355-60105/signal.5.html

Regards!

...JRF...
Andres_13
Respected Contributor

Re: SIGNAL11 issue

...