You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Till Rohrmann (JIRA)" <ji...@apache.org> on 2019/01/31 14:52:00 UTC

[jira] [Resolved] (FLINK-11389) Incorrectly use job information when call getSerializedTaskInformation in class TaskDeploymentDescriptor

     [ https://issues.apache.org/jira/browse/FLINK-11389?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Till Rohrmann resolved FLINK-11389.
-----------------------------------
    Resolution: Fixed

Fixed via
1.8.0:
446145f5ca0cd92c64a6944c19ca1ab53104030f
acf228cc5c88872428ccb10296aa1646837c16c2

1.7.2:
a5c6102bf642a0bfeff4438921aad3ab8d16cf1c
c39192a21098882338f0dcd9636f9241814099ce

1.6.4:
941ed4d816489990cd1a420d90b88f167a89db1a
ea90666b4415d1a7f510053b35101880438eab40

> Incorrectly use job information when call getSerializedTaskInformation in class TaskDeploymentDescriptor
> --------------------------------------------------------------------------------------------------------
>
>                 Key: FLINK-11389
>                 URL: https://issues.apache.org/jira/browse/FLINK-11389
>             Project: Flink
>          Issue Type: Bug
>          Components: Distributed Coordination
>    Affects Versions: 1.6.3, 1.7.1, 1.8.0
>            Reporter: yuqi
>            Assignee: yuqi
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.6.4, 1.7.2, 1.8.0
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> See TaskDeploymentDescriptor
> {code:java}
> @Nullable
> 	public SerializedValue<TaskInformation> getSerializedTaskInformation() {
> 		if (serializedJobInformation instanceof NonOffloaded) {
> 			NonOffloaded<TaskInformation> jobInformation =
> 				(NonOffloaded<TaskInformation>) serializedTaskInformation;
> 			return jobInformation.serializedValue;
> 		} else {
> 			throw new IllegalStateException(
> 				"Trying to work with offloaded serialized job information.");
> 		}
> 	}
> {code}
> the condition serializedJobInformation instanceof NonOffloaded is not correctly, 
> as serializedJobInformation and serializedTaskInformation are passed from ExecutionVertex#createDeploymentDescriptor
> {code:java}
> 		if (jobInformationOrBlobKey.isLeft()) {
> 			serializedJobInformation = new TaskDeploymentDescriptor.NonOffloaded<>(jobInformationOrBlobKey.left());
> 		} else {
> 			serializedJobInformation = new TaskDeploymentDescriptor.Offloaded<>(jobInformationOrBlobKey.right());
> 		}
> 		final Either<SerializedValue<TaskInformation>, PermanentBlobKey> taskInformationOrBlobKey;
> 		try {
> 			taskInformationOrBlobKey = jobVertex.getTaskInformationOrBlobKey();
> 		} catch (IOException e) {
> 			throw new ExecutionGraphException(
> 				"Could not create a serialized JobVertexInformation for " +
> 					jobVertex.getJobVertexId(), e);
> 		}
> 		final TaskDeploymentDescriptor.MaybeOffloaded<TaskInformation> serializedTaskInformation;
> 		if (taskInformationOrBlobKey.isLeft()) {
> 			serializedTaskInformation = new TaskDeploymentDescriptor.NonOffloaded<>(taskInformationOrBlobKey.left());
> 		} else {
> 			serializedTaskInformation = new TaskDeploymentDescriptor.Offloaded<>(taskInformationOrBlobKey.right());
> 		}
> {code}
> serializedJobInformation and serializedTaskInformation are not necessarily shared the class NonOffloaded or Offloaded



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)