求指导crash原因,附crash log和代码
wendli2008
2013-07-05
crash log
引用 # # An unexpected error has been detected by HotSpot Virtual Machine: # # SIGSEGV (0xb) at pc=0xf7754a07, pid=20403, tid=2813246368 # # Java VM: Java HotSpot(TM) Server VM (1.5.0_06-b05 mixed mode) # Problematic frame: # V [libjvm.so+0x152a07] # --------------- T H R E A D --------------- Current thread (0x08145b60): JavaThread "CompilerThread0" daemon [_thread_in_native, id=20419] siginfo:si_signo=11, si_errno=0, si_code=1, si_addr=0x00000000 Registers: EAX=0x00000000, EBX=0xf7bad7f0, ECX=0x0856de60, EDX=0xa151fa0c ESP=0xa7ae9df4, EBP=0xa7ae9e28, ESI=0x080f8c40, EDI=0x0856de60 EIP=0xf7754a07, CR2=0x00000000, EFLAGS=0x00010292 Top of Stack: (sp=0xa7ae9df4) 0xa7ae9df4: 00000000 a7ae9e28 f77549d1 0856de60 0xa7ae9e04: a16445c0 00004591 00004591 00000000 0xa7ae9e14: a7aea34c a151fa0c f7bad7f0 080f8c40 0xa7ae9e24: 0856de60 a7ae9e78 f7a533ec 0856de60 0xa7ae9e34: a7aea330 080f8c40 080f8c40 a152e124 0xa7ae9e44: a16445c0 0856de60 0000452c 3f7fff58 0xa7ae9e54: 00001983 080f8c40 00000001 00000021 0xa7ae9e64: 00001983 a7aea358 f7bad7f0 a7aea330 Instructions: (pc=0xf7754a07) 0xf77549f7: 85 c0 74 76 8b 7d 08 83 ec 0c 8b 47 04 8b 40 08 0xf7754a07: 8b 30 50 ff 56 44 83 c4 10 85 c0 74 5d 8b 55 08 Stack: [0xa7a6b000,0xa7aec000), sp=0xa7ae9df4, free space=507k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) V [libjvm.so+0x152a07] V [libjvm.so+0x4513ec] V [libjvm.so+0x450e90] V [libjvm.so+0x3d6a24] V [libjvm.so+0x1a1496] V [libjvm.so+0x19e432] V [libjvm.so+0x1474b3] V [libjvm.so+0x1a6929] V [libjvm.so+0x1a6281] V [libjvm.so+0x4c8366] V [libjvm.so+0x4c2ba3] V [libjvm.so+0x424338] C [libpthread.so.0+0x53cc] Current CompileTask: opto:643 xxx.xxx.xxxx.TableCopyBean.copyBatch(Ljava/lang/String;Ljava/lang/String;Ljava/util/Hashtable;Ljava/util/List;)V (1021 bytes) udcli出来的汇编指令 00000000f77549f7 85c0 test eax, eax 00000000f77549f9 7476 jz 0xf7754a71 00000000f77549fb 8b7d08 mov edi, [rbp+0x8] 00000000f77549fe 83ec0c sub esp, 0xc 00000000f7754a01 8b4704 mov eax, [rdi+0x4] 00000000f7754a04 8b4008 mov eax, [rax+0x8] 00000000f7754a07 8b30 mov esi, [rax] 00000000f7754a09 50 push rax 00000000f7754a0a ff5644 call qword [rsi+0x44] 00000000f7754a0d 83c410 add esp, 0x10 00000000f7754a10 85c0 test eax, eax 00000000f7754a12 745d jz 0xf7754a71 00000000f7754a14 8b5508 mov edx, [rbp+0x8] objdump Native frames 第一行的结果 00152a07 <PhiNode::Identity(PhaseTransform*)+0x47>: JDK版本为1.5.0_16 求达人指导问题出在哪里,尤其是汇编那一段看不出来对应到哪一段代码 copyBatch原方法 public void copyBatch(String targetTable, String sourceTable, Hashtable<String, Object> conditionHt, List<Hashtable<String, Object>> replaceColumnValueLt) throws Exception { ArrayList<ArrayList<Object>> paramValueList = new ArrayList<ArrayList<Object>>(); ArrayList<String> targetColumnList = getTblColList(targetTable); _log.debug("[" + targetTable + "]get table columns " + targetColumnList); ArrayList<String> defaultColumnList = getDefTblColList(targetTable); _log.debug("[" + targetTable + "]get has default value columns" + defaultColumnList); List removeList = new ArrayList(); if (!sourceTable.equals(targetTable)) { ArrayList<String> sourceColList = getTblColList(sourceTable); _log.debug("[" + sourceTable + "]get table columns " + sourceColList); for (Map map : replaceColumnValueLt) { for (String tCol : targetColumnList) { if (!sourceColList.contains(tCol)) { if (!map.containsKey(tCol)) { if (defaultColumnList.contains(tCol)) { if (!removeList.contains(tCol)) removeList.add(tCol); } else { map.put(tCol, ""); }// end if }// end if }// end if }// end for }// end for } for (int x = 0, xSize = removeList.size(); x < xSize; x++) { String rCol = (String) removeList.get(x); targetColumnList.remove(rCol); } for (Map map : replaceColumnValueLt) { ArrayList<Object> tmpList = new ArrayList<Object>(); for (String column : targetColumnList) { if (map.containsKey(column)) { tmpList.add(map.get(column)); } } paramValueList.add(tmpList); } for (ArrayList<Object> array : paramValueList) { Enumeration e = conditionHt.keys(); while (e.hasMoreElements()) { String column = (String) e.nextElement(); Object value = conditionHt.get(column); if (!(value instanceof List)) { array.add(conditionHt.get(column)); } } } /* ================prepare sql=================== */ StringBuffer sql = new StringBuffer(); sql.append("INSERT INTO " + targetTable + " ("); for (String column : targetColumnList) { sql.append(column.toLowerCase() + ", "); } sql.setLength(sql.length() - 2); Hashtable replaceColumnValueHt = replaceColumnValueLt.get(0); sql.append(") SELECT "); for (String column : targetColumnList) { if (replaceColumnValueHt.containsKey(column)) { sql.append("?, "); } else { sql.append(column.toLowerCase() + ", "); } } sql.setLength(sql.length() - 2); sql.append(" FROM " + sourceTable + " WHERE "); Enumeration e = conditionHt.keys(); while (e.hasMoreElements()) { String column = (String) e.nextElement(); Object value = conditionHt.get(column); if (value instanceof List) { sql.append(column.toLowerCase() + " IN ") .append(TransFormat.convertListToIN((List) value)) .append(" AND "); } else { sql.append(column.toLowerCase() + " = ? AND "); } } sql.setLength(sql.length() - 4); /* =============start execute============= */ SqlBean sqlBean = new SqlBean(_conn, sql.toString(), _log); for (int i = 0; i < paramValueList.size(); i++) { ArrayList<Object> pList = paramValueList.get(i); for (int j = 0; j < pList.size(); j++) { sqlBean.addParameter(pList.get(j)); } sqlBean.addBatch(); } sqlBean.executeBatch(); } |
|
RednaxelaFX
2013-07-05
看起来是HotSpot VM的Server Compiler (C2)自身的bug。没啥别的办法,请升级JDK。JDK 1.5.0最后的公开update版本是JDK1.5.0u22:http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase5-419410.html#jdk-1.5.0_22-oth-JPR
|
相关讨论
相关资源推荐
- apache的FTP包commons-net-1.4.1.jar,jakarta-oro-2.0.8.jar
- 飞鸟与鱼
- 泰戈尔《飞鸟与鱼》
- commons-net-1.4.1.jar
- commons-net-1.4.1.jar、jakarta-oro-2.0.8.jar、edtftpj.jar
- ftp所需jar包(commons-net-1.4.1.jar,jakarta-oro-2.0.8.jar)
- commons-net-1.4.1.jar功能实现demo
- java连接apache的FTP包commons-net-1.4.1.jar,jakarta-oro-2.0.8.jar
- 完美解决:commons-net-1.4.1.jar包中ftp应用的几点问题
- FTP相关commons-net等jar.zip