红联Linux门户
Linux帮助

由于OpenJDK1.6而导致的Oracle Linux6.x操作系统崩溃(crash)

发布时间:2017-01-13 11:01:51来源:linux网站作者:msdnchina
适用于:
Linux OS - Version Oracle Linux 6.8 with Unbreakable Enterprise Kernel [4.1.12] to Oracle Linux 7.3 with Unbreakable Enterprise Kerne [4.1.12] [Release OL6U8 to OL7U3]
Information in this document applies to any platform.
 
症状
1.In order to use Oracle DB in the environment where HugePages is set after installing UEK4 kernel with Oracle linux 6.8
2.There was  occured crash when runing Java application after install OpenJDK1.6
3.System crash even if only "Java --version"  command is executed
4.if disable HugePages at Oracle Linux 6.8, The symptom is not Reproduce
5.There was only occured system crash due to OpenJDK1.6
 
原因
这个问题是由于 OpenJDK1.6 版本不能写大页(Large Page)导致的.
[ 756.074958] CPU: 0 PID: 14065 Comm: java Not tainted 4.1.12-37.4.1.el6uek.x86_64 #2 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  
[ 756.074961] task: ffff880100008e00 ti: ffff8804df458000 task.ti: ffff8804df458000  
[ 756.074964] RIP: e030:[<ffffffff810700db>] [<ffffffff810700db>] ptep_set_access_flags+0x1b/0x30  
[ 756.074967] RSP: e02b:ffff8804df45bc40 EFLAGS: 00010202  
[ 756.074969] RAX: ffff88002daeeaa1 RBX: 0000000000000001 RCX: 0000000000000842  
[ 756.074971] RDX: ffff8804decc9340 RSI: 00007fb34d000000 RDI: ffff88012ba5a0c8  
[ 756.074973] RBP: ffff8804df45bc48 R08: 0000000000000001 R09: ffffea00056b8018  
[ 756.074975] R10: 0000000000007ff0 R11: 0000000000000000 R12: 0000000000000000  
[ 756.074977] R13: ffff88012ba5a0c8 R14: ffffea00056b8000 R15: 00007fb34d000000  
[ 756.074983] FS: 00007fb354fe8700(0000) GS:ffff8804e5a00000(0000) knlGS:0000000000000000  
[ 756.074985] CS: e033 DS: 0000 ES: 0000 CR0: 0000000080050033  
[ 756.074987] CR2: ffff8804decc9340 CR3: 000000010c5c0000 CR4: 0000000000042660  
[ 756.074989] Stack:  
[ 756.074991] ffff8804decc9340 ffff8804df45bce8 ffffffff811d34ff ffff8804df45bcb8  
[ 756.074994] ffffffff811d0298 ffff88002daeeaa0 0000000000000000 ffffea00056b8000  
[ 756.074998] ffff8804df45bc90 ffffffff81006f8e 0000000000000000 ffffea00056b8000  
[ 756.075001] Call Trace:  
[ 756.075005] [<ffffffff811d34ff>] hugetlb_cow+0x25f/0x430  
[ 756.075009] [<ffffffff811d0298>] ? region_chg+0x1d8/0x220  
[ 756.075013] [<ffffffff81006f8e>] ? xen_make_pte+0xe/0x10  
[ 756.075015] [<ffffffff811d38db>] hugetlb_no_page+0x20b/0x390  
[ 756.075018] [<ffffffff81006a5e>] ? xen_pud_val+0xe/0x10  
[ 756.075021] [<ffffffff810055b5>] ? __raw_callee_save_xen_pud_val+0x11/0x1e  
[ 756.075023] [<ffffffff811d3def>] hugetlb_fault+0x38f/0x490  
[ 756.075027] [<ffffffff811b77e3>] ? handle_pte_fault+0x1e3/0x230  
[ 756.075030] [<ffffffff811b7afe>] __handle_mm_fault+0x2ce/0x350  
[ 756.075032] [<ffffffff811b7c32>] handle_mm_fault+0xb2/0x1a0  
[ 756.075035] [<ffffffff8106ae3c>] __do_page_fault+0x16c/0x480  
[ 756.075037] [<ffffffff8106b297>] do_page_fault+0x37/0x90  
[ 756.075043] [<ffffffff816c3058>] page_fault+0x28/0x30  
[ 756.075045] Code: 55 48 89 e5 0f 1f 44 00 00 48 8b 47 10 c9 c3 90 55 48 89 e5 53 0f 1f 44 00 00 31 db 48 39 0a 0f 95 c3 45 85 c0 74 12 85 db 74 0e <48> 89 0a 48 8b 7f 40 0f 1f 80 00 00 00 00 89 d8 5b c9 c3 66 90  
[ 756.075074] RIP [<ffffffff810700db>] ptep_set_access_flags+0x1b/0x30  
[ 756.075077] RSP <ffff8804df45bc40>  
[ 756.075078] CR2: ffff8804decc9340  
[ 756.075081] ---[ end trace 6a3f45dd41d73e90 ]---  
[ 756.075083] Kernel panic - not syncing: Fatal exception  
[ 756.075088] Kernel Offset: disabled  
-- snip --  
[ 0.000000] Memory: 20164040K/20979324K available (6937K kernel code, 1550K rwdata, 3680K rodata, 1796K init, 2872K bss, 798900K reserved, 16384K cma-reserved)  
[ 1.209379] Freeing unused kernel memory: 1796K (ffffffff81be6000 - ffffffff81da7000)  
warning, set kernel.sysctl_writes_strict = -1  
[ 756.074911] BUG: unable to handle kernel paging request at ffff8804decc9340 <<<<<<<<<<<<<<<<<<<< Unable to handle kernel paging due to can not write at Large Page  
 
解决方案
1. Please upgrade OpenJDK1.7 or latest version 
OpenJDK1.6 version is have to issue for use Large Page, so there is need to upgrade OpenJDK1.7 or Latest version 
Please refer to below oracle blog related JAVA Large page 
++ https://blogs.oracle.com/poonam/entry/uselargepages_on_linux
由于OpenJDK1.6而导致的Oracle Linux6.x操作系统崩溃(crash)
 
本文永久更新地址:http://www.linuxdiyf.com/linux/27773.html