JDK-6357836 : SA core dumps while attaching to core file on linux.
  • Type: Bug
  • Component: core-svc
  • Sub-Component: tools
  • Affected Version: 5.0u10,6
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: linux,solaris_2.5.1
  • CPU: x86
  • Submitted: 2005-12-01
  • Updated: 2012-10-01
  • Resolved: 2011-03-08
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 7
7 b12Fixed
Related Reports
Duplicate :  
Relates :  
Description
Following SA-jdi tests fails due to SEGFAULT in sa code:

  nsk/sajdi/SACoreAttachingConnector/attach/attach001
  nsk/sajdi/SACoreAttachingConnector/attach/attach002
  nsk/sajdi/SADebugServerAttachingConnector/attach/attach011
  nsk/sajdi/SADebugServerAttachingConnector/attach/attach012
  nsk/sajdi/jdb/options/connect/connect002
  nsk/sajdi/jdb/options/connect/connect004

It is segfaulting in core_lookup() SA code in linux.
The map_array in core_lookup() code has bad address.

Comments
EVALUATION Doesn't have to be fixed for mustang.
09-12-2005

EVALUATION SEGV at core_lookup in: ph->core->map_array[mid]->vaddr value at map_array[mid] is a bad address. Assembly code: 0x003cb67b <core_lookup+39>: mov 0xfffffff4(%ebp),%eax 0x003cb67e <core_lookup+42>: mov 0xfffffff0(%ebp),%edx 0x003cb681 <core_lookup+45>: sub %eax,%edx 0x003cb683 <core_lookup+47>: mov %edx,%eax 0x003cb685 <core_lookup+49>: cmp $0x1,%eax 0x003cb688 <core_lookup+52>: jg 0x3cb68c <core_lookup+56> 0x003cb68a <core_lookup+54>: jmp 0x3cb6d2 <core_lookup+126> 0x003cb68c <core_lookup+56>: mov 0xfffffff0(%ebp),%eax 0x003cb68f <core_lookup+59>: mov 0xfffffff4(%ebp),%edx 0x003cb692 <core_lookup+62>: add %eax,%edx 0x003cb694 <core_lookup+64>: mov %edx,%eax 0x003cb696 <core_lookup+66>: sar $0x1f,%eax 0x003cb699 <core_lookup+69>: shr $0x1f,%eax 0x003cb69c <core_lookup+72>: lea (%eax,%edx,1),%eax 0x003cb69f <core_lookup+75>: sar %eax 0x003cb6a1 <core_lookup+77>: mov %eax,0xfffffff8(%ebp) 0x003cb6a4 <core_lookup+80>: mov 0x8(%ebp),%eax 0x003cb6a7 <core_lookup+83>: mov 0x1c(%eax),%ecx 0x003cb6aa <core_lookup+86>: mov 0xfffffff8(%ebp),%eax 0x003cb6ad <core_lookup+89>: lea 0x0(,%eax,4),%edx 0x003cb6b4 <core_lookup+96>: mov 0x24(%ecx),%eax 0x003cb6b7 <core_lookup+99>: mov (%eax,%edx,1),%edx 0x003cb6ba <core_lookup+102>: mov 0xc(%ebp),%eax 0x003cb6bd <core_lookup+105>: cmp 0x8(%edx),%eax <======= SEGV here.0x003cb6c0 <core_lookup+108>: jb 0x3cb6ca <core_lookup+118> 0x003cb6c2 <core_lookup+110>: mov 0xfffffff8(%ebp),%eax 0x003cb6c5 <core_lookup+113>: mov %eax,0xfffffff4(%ebp) 0x003cb6c8 <core_lookup+116>: jmp 0x3cb67b <core_lookup+39> 0x003cb6ca <core_lookup+118>: mov 0xfffffff8(%ebp),%eax 0x003cb6cd <core_lookup+121>: mov %eax,0xfffffff0(%ebp) 0x003cb6d0 <core_lookup+124>: jmp 0x3cb67b <core_lookup+39> 0x003cb6d2 <core_lookup+126>: mov 0x8(%ebp),%e C code: while (hi - lo > 1) { mid = (lo + hi) / 2; if (addr >= ph->core->map_array[mid]->vaddr) <== SEGV here. lo = mid; else hi = mid; }
01-12-2005