[fix] use Throwable insteadof Exception to catch Error in ProcessorRunnable

This commit is contained in:
tjq 2020-06-15 20:15:57 +08:00
parent 42c3ce3747
commit 69bbd9a5f8
4 changed files with 8 additions and 7 deletions

View File

@ -133,7 +133,7 @@ public class OmsJarContainer implements OmsContainer {
Thread.currentThread().setContextClassLoader(oldCL); Thread.currentThread().setContextClassLoader(oldCL);
} }
log.info("[OmsJarContainer] init container(name={},jarPath={}) successfully", containerId, localJarFile.getPath()); log.info("[OmsJarContainer-{}] init container(name={},jarPath={}) successfully", containerId, name, localJarFile.getPath());
} }
@Override @Override

View File

@ -89,7 +89,7 @@ public class ProcessorRunnable implements Runnable {
ProcessResult processResult = broadcastProcessor.preProcess(taskContext); ProcessResult processResult = broadcastProcessor.preProcess(taskContext);
spReq.setSuccess(processResult.isSuccess()); spReq.setSuccess(processResult.isSuccess());
spReq.setMsg(suit(processResult.getMsg())); spReq.setMsg(suit(processResult.getMsg()));
}catch (Exception e) { }catch (Throwable e) {
log.warn("[ProcessorRunnable-{}] broadcast task preProcess failed.", instanceId, e); log.warn("[ProcessorRunnable-{}] broadcast task preProcess failed.", instanceId, e);
spReq.setSuccess(false); spReq.setSuccess(false);
spReq.setMsg(e.toString()); spReq.setMsg(e.toString());
@ -138,7 +138,7 @@ public class ProcessorRunnable implements Runnable {
default: default:
lastResult = new ProcessResult(false, "IMPOSSIBLE OR BUG"); lastResult = new ProcessResult(false, "IMPOSSIBLE OR BUG");
} }
}catch (Exception e) { }catch (Throwable e) {
lastResult = new ProcessResult(false, e.toString()); lastResult = new ProcessResult(false, e.toString());
log.warn("[ProcessorRunnable-{}] execute last task(taskId={}) failed.", instanceId, taskId, e); log.warn("[ProcessorRunnable-{}] execute last task(taskId={}) failed.", instanceId, taskId, e);
} }
@ -155,7 +155,7 @@ public class ProcessorRunnable implements Runnable {
ProcessResult processResult; ProcessResult processResult;
try { try {
processResult = processor.process(taskContext); processResult = processor.process(taskContext);
}catch (Exception e) { }catch (Throwable e) {
log.warn("[ProcessorRunnable-{}] task(id={},name={}) process failed.", instanceId, taskContext.getTaskId(), taskContext.getTaskName(), e); log.warn("[ProcessorRunnable-{}] task(id={},name={}) process failed.", instanceId, taskContext.getTaskId(), taskContext.getTaskName(), e);
processResult = new ProcessResult(false, e.toString()); processResult = new ProcessResult(false, e.toString());
} }
@ -184,7 +184,7 @@ public class ProcessorRunnable implements Runnable {
try { try {
innerRun(); innerRun();
}catch (InterruptedException ignore) { }catch (InterruptedException ignore) {
}catch (Exception e) { }catch (Throwable e) {
log.error("[ProcessorRunnable-{}] execute failed, please fix this bug @tjq!", task.getInstanceId(), e); log.error("[ProcessorRunnable-{}] execute failed, please fix this bug @tjq!", task.getInstanceId(), e);
}finally { }finally {
ThreadLocalStore.clear(); ThreadLocalStore.clear();

View File

@ -86,7 +86,7 @@ public class ProcessorTracker {
initProcessor(); initProcessor();
log.info("[ProcessorTracker-{}] ProcessorTracker was successfully created!", instanceId); log.info("[ProcessorTracker-{}] ProcessorTracker was successfully created!", instanceId);
}catch (Exception e) { }catch (Throwable e) {
log.warn("[ProcessorTracker-{}] create ProcessorTracker failed, all tasks submitted here will fail.", instanceId, e); log.warn("[ProcessorTracker-{}] create ProcessorTracker failed, all tasks submitted here will fail.", instanceId, e);
lethal = true; lethal = true;
lethalReason = e.toString(); lethalReason = e.toString();
@ -263,6 +263,8 @@ public class ProcessorTracker {
break; break;
case JAVA_CONTAINER: case JAVA_CONTAINER:
String[] split = processorInfo.split("#"); String[] split = processorInfo.split("#");
log.info("[ProcessorRunnable-{}] try to load processor({}) in container({})", instanceId, split[1], split[0]);
omsContainer = OmsContainerFactory.getContainer(Long.valueOf(split[0])); omsContainer = OmsContainerFactory.getContainer(Long.valueOf(split[0]));
if (omsContainer != null) { if (omsContainer != null) {
processor = omsContainer.getProcessor(split[1]); processor = omsContainer.getProcessor(split[1]);

View File

@ -162,7 +162,6 @@ public abstract class TaskTracker {
// 此时本次请求已经有效先写入最新的时间 // 此时本次请求已经有效先写入最新的时间
taskId2LastReportTime.put(taskId, reportTime); taskId2LastReportTime.put(taskId, reportTime);
log.debug("[TaskTracker-{}] task({}) receive new status: {}", instanceId, taskId, newStatus);
// 处理失败的情况 // 处理失败的情况
int configTaskRetryNum = instanceInfo.getTaskRetryNum(); int configTaskRetryNum = instanceInfo.getTaskRetryNum();