flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From GJL <...@git.apache.org>
Subject [GitHub] flink pull request #5184: [FLINK-8234][flip6] Cache JobExecutionResult in Di...
Date Tue, 09 Jan 2018 13:37:58 GMT
Github user GJL commented on a diff in the pull request:

    https://github.com/apache/flink/pull/5184#discussion_r160407686
  
    --- Diff: flink-runtime/src/main/java/org/apache/flink/runtime/jobmaster/JobMaster.java
---
    @@ -956,23 +958,29 @@ private void jobStatusChanged(
     								"The job is registered as 'FINISHED (successful), but this notification describes
" +
     								"a failure, since the resulting accumulators could not be fetched.", e);
     
    -						executor.execute(() ->jobCompletionActions.jobFailed(exception));
    +						executor.execute(() -> jobCompletionActions.jobFailed(builder
    +							.serializedThrowable(new SerializedThrowable(exception))
    +							.build()));
     					}
     					break;
     
     				case CANCELED: {
     					final JobExecutionException exception = new JobExecutionException(
     						jobID, "Job was cancelled.", new Exception("The job was cancelled"));
     
    -					executor.execute(() -> jobCompletionActions.jobFailed(exception));
    +					executor.execute(() -> jobCompletionActions.jobFailed(builder
    +						.serializedThrowable(new SerializedThrowable(exception))
    +						.build()));
     					break;
     				}
     
     				case FAILED: {
     					final Throwable unpackedError = SerializedThrowable.get(error, userCodeLoader);
    --- End diff --
    
    I think `error` is always a `SerializedThrowable`.
    ```
    	private void notifyJobStatusChange(JobStatus newState, Throwable error) {
    		if (jobStatusListeners.size() > 0) {
    			final long timestamp = System.currentTimeMillis();
    			final Throwable serializedError = error == null ? null : new SerializedThrowable(error);
    
    			for (JobStatusListener listener : jobStatusListeners) {
    				try {
    					listener.jobStatusChanges(getJobID(), newState, timestamp, serializedError);
    				} catch (Throwable t) {
    					LOG.warn("Error while notifying JobStatusListener", t);
    				}
    			}
    		}
    	}
    ```
    Not sure if it makes sense to unpack, wrap, and serialize it again.


---

Mime
View raw message