spring-cloud / spring-cloud-dataflow

A microservices-based Streaming and Batch data processing in Cloud Foundry and Kubernetes
https://dataflow.spring.io
Apache License 2.0
1.1k stars 578 forks source link

Improve client error message when task fails to deploy #4839

Open TeOolong opened 2 years ago

TeOolong commented 2 years ago

Hello, my problem is when I try to deploy a python task inside the docker container of the spring data flow server. Also it detects the docker repository and maes a pull, but it doesnt launch, instead it throws this error.

Command failed org.springframework.cloud.dataflow.rest.client.DataFlowClientException: Exception trying to launch [AppDeploymentRequest@48a950c5 commandlineArguments = list['--spring.cloud.task.executionid=13'], deploymentProperties = map[[empty]], definition = [AppDefinition@54fd2241 name = 'python-task-test4', properties = map['management.metrics.tags.service' -> 'task-application', 'spring.cloud.task.closecontextenabled' -> 'true', 'spring.datasource.username' -> 'root', 'spring.datasource.url' -> 'jdbc:mariadb://mysql:3306/dataflow', 'spring.datasource.driverClassName' -> 'org.mariadb.jdbc.Driver', 'management.metrics.tags.application' -> '${spring.cloud.task.name:unknown}-${spring.cloud.task.executionid:unknown}', 'spring.cloud.task.name' -> 'python-task-test4', 'spring.datasource.password' -> 'rootpw']], resource = Docker Resource [docker:roblitas/python-task-test:0.1]] Exception trying to launch [AppDeploymentRequest@48a950c5 commandlineArguments = list['--spring.cloud.task.executionid=13'], deploymentProperties = map[[empty]], definition = [AppDefinition@54fd2241 name = 'python-task-test4', properties = map['management.metrics.tags.service' -> 'task-application', 'spring.cloud.task.closecontextenabled' -> 'true', 'spring.datasource.username' -> 'root', 'spring.datasource.url' -> 'jdbc:mariadb://mysql:3306/dataflow', 'spring.datasource.driverClassName' -> 'org.mariadb.jdbc.Driver', 'management.metrics.tags.application' -> '${spring.cloud.task.name:unknown}-${spring.cloud.task.executionid:unknown}', 'spring.cloud.task.name' -> 'python-task-test4', 'spring.datasource.password' -> 'rootpw']], resource = Docker Resource [docker:roblitas/python-task-test:0.1]] org.springframework.cloud.dataflow.rest.client.DataFlowClientException: Exception trying to launch [AppDeploymentRequest@48a950c5 commandlineArguments = list['--spring.cloud.task.executionid=13'], deploymentProperties = map[[empty]], definition = [AppDefinition@54fd2241 name = 'python-task-test4', properties = map['management.metrics.tags.service' -> 'task-application', 'spring.cloud.task.closecontextenabled' -> 'true', 'spring.datasource.username' -> 'root', 'spring.datasource.url' -> 'jdbc:mariadb://mysql:3306/dataflow', 'spring.datasource.driverClassName' -> 'org.mariadb.jdbc.Driver', 'management.metrics.tags.application' -> '${spring.cloud.task.name:unknown}-${spring.cloud.task.executionid:unknown}', 'spring.cloud.task.name' -> 'python-task-test4', 'spring.datasource.password' -> 'rootpw']], resource = Docker Resource [docker:roblitas/python-task-test:0.1]] at org.springframework.cloud.dataflow.rest.client.VndErrorResponseErrorHandler.handleError(VndErrorResponseErrorHandler.java:65) at org.springframework.web.client.ResponseErrorHandler.handleError(ResponseErrorHandler.java:63) at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:819) at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:777) at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:711) at org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:437) at org.springframework.cloud.dataflow.rest.client.TaskTemplate.launch(TaskTemplate.java:173) at org.springframework.cloud.dataflow.shell.command.TaskCommands.launch(TaskCommands.java:235) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:282) at org.springframework.shell.core.SimpleExecutionStrategy.invoke(SimpleExecutionStrategy.java:68) at org.springframework.shell.core.SimpleExecutionStrategy.execute(SimpleExecutionStrategy.java:59) at org.springframework.shell.core.AbstractShell.executeCommand(AbstractShell.java:134) at org.springframework.shell.core.JLineShell.promptLoop(JLineShell.java:533) at org.springframework.shell.core.JLineShell.run(JLineShell.java:179) at java.base/java.lang.Thread.run(Unknown Source)

cppwfs commented 2 years ago

What was reported by the SCDF Log?

markpollack commented 2 years ago

Unfortunately, I think the key info for the failure is in the server side log. We will take a look to see if we an improve the client side error message. Can you supply that log? @TeOolong

markpollack commented 1 year ago

I am going to change the title of this issue to be related to better error reporting, there needs to be more information about the root cause sent to the client.