‘Signal 11’ is one of the most scary things in EBS developer/Apps DBA community . If you haven't encounter yet , after working couple of years in EBS, that means you are quite lucky ..kidding
If you came from basic C programing skill, then you might be linking with malloc ..memory allocation , believe me, that is totally different.
In this post I will share some of the information which you need to know, rather than a creating a panic situation with developer or DBA .
WHAT IS SIGNAL 11
In layman term, Signal 11 is an obscure way to say that there is hardware problem with the system's memory
"Unaligned memory access" is a message coming back from the UNIX operating system letting you know that an Oracle executable has tried to access memory incorrectly. It's not a problem with UNIX but is part of the operating system's mechanism of protecting itself from crashing.
Chances are there you might get either of these ..Autoinvoice ,GLPPOS, GLLEZL, GLBMBO, APXXTR, GLNSVI, INCTGL , GLAMAS, ARZCAR, ARGLTP, RGRARG, GLCRVL,GLPAUTOP ,FADEPR - Depreciation, PDF Reports, XML OUTPUT
SIMPLE CAUSES MAY INCLUDE
- Not enough disk space in $APPL_TOP/out directory where the concurrent manager creates the report output files.
- Lack of storage space in table spaces, rollback segments etc
- Very complex SQL statements with many Group By columns (which may not all be required)
- Incorrect OS permission’s
- Parameter mismatches
- The reports were FTPed incorrectly (ASCII instead of binary)
- A 'Numeric or Value error' on some procedure code (although this may also cause a Signal 4 error). Typically this is because you have a field or variable which is too small to hold a value passed to it, which often happens when you are summing values.
- All ‘Signal’ messages (there are between 15 and 36 different ones depending on the OS) mean that the OS is telling the current process that something has happened, or is ordering it to do something.
- Take a example , when you do a ‘kill -9 <proc_id>’ on the server, you are actually sending a Signal 9 (SIGKILL) to that process.
- Depending on the error, the running process can either ignore the Signal, exit gracefully, or exit and write a copy of its current memory stack to the filesystem
- Core dump file is always unwanted.
- Signals 6 (Abort), 10 (Bus Error), 11 (Memory Pointer Error) and 12 (Bad System Call) all fall into the last category and write a ‘core’ file.
- Signal 11 is : “Process asked to be allocated <x> Bytes of memory, but is now trying to access an address which is not within that allocation or is trying to access a null address”.
- This may be caused by code or data problems.
You usually find, windows equivalent of a Signal 11 error is when a process terminates with ‘Error -1073741819’
WHEN YOU ENCOUNTER THIS
- First thing to look at is the last few lines of logfile – preferably with Debug on
- Searching that you might find in log file, chances are high you will get some node at metalink. if not
- Check with your apps DBA , pass the information , he will try to Analyze/diagnosis and advice.
- what he will do, he will try to locate core file which got is written to the directory from which the executable was called.
- Take a note,after a Signal 11 error has occurred, the program may write a dump of itself to $<product>_TOP/bin
- The ‘core’ file which got located is just a dump of the memory occupied by the program at the time of failure, and as such is not easy to read.
- they need some utilities to produce a readable output. DBA typically used these utilities adb, dbx, xdb, gdb,
- If nothing get solved Quickly, raise a SR with Oracle.
Meantime , you can also check the list of unix signals with their explanation in note id 1038055.6