spring-cloud-dataflow icon indicating copy to clipboard operation
spring-cloud-dataflow copied to clipboard

After the boot 3 schedule fails, the deployer information is missing upon restart.

Open alsdud154 opened this issue 1 year ago • 5 comments
trafficstars

You are running DataFlow with Helm Chart version 26.8.1 [App version: 2.11.2]. You are using a data flow to make a spring batch a task. Run the task uses the schedule. Set the deployer volume in the scheduler.main.properties when you create the schedule. The operation was executed by the schedule, but the operation failed. The failed operation was re-run by pressing the Restart button. At this point, the newly executed task is executed by omitting the deployer volume value set in the schedule.

I think it's a bug. This problem does not occur if you run a failed job with "LAUCH TASK" instead of a schedule and then run it again.

Please let me know how to solve it.

  • Schedule information iShot_2024-04-15_14 38 05

  • job information executed by schedule iShot_2024-04-15_14 36 05

  • Run failed jobs with the Restart button iShot_2024-04-15_14 36 47

  • k8s pod information for job executed by schedule iShot_2024-04-15_14 33 16

  • k8s pod information for failed jobs using the restart button iShot_2024-04-15_14 31 39

  • release version

    {
      "featureInfo": {
        "analyticsEnabled": true,
        "streamsEnabled": false,
        "tasksEnabled": true,
        "schedulesEnabled": true,
        "monitoringDashboardType": "NONE"
      },
      "versionInfo": {
        "implementation": {
          "name": "spring-cloud-dataflow-server",
          "version": "2.11.2"
        },
        "core": {
          "name": "Spring Cloud Data Flow Core",
          "version": "2.11.2"
        },
        "dashboard": {
          "name": "Spring Cloud Dataflow UI",
          "version": "3.4.2"
        },
        "shell": {
          "name": "Spring Cloud Data Flow Shell",
          "version": "2.11.2",
          "url": "https://repo.maven.apache.org/maven2/org/springframework/cloud/spring-cloud-dataflow-shell/2.11.2/spring-cloud-dataflow-shell-2.11.2.jar"
        }
      },
      "securityInfo": {
        "authenticationEnabled": false,
        "authenticated": false,
        "username": null,
        "roles": []
      },
      "runtimeEnvironment": {
        "appDeployer": {
          "deployerImplementationVersion": null,
          "deployerName": null,
          "deployerSpiVersion": null,
          "javaVersion": null,
          "platformApiVersion": null,
          "platformClientVersion": null,
          "platformHostVersion": null,
          "platformSpecificInfo": {},
          "platformType": null,
          "springBootVersion": null,
          "springVersion": null
        },
        "taskLaunchers": [
          {
            "deployerImplementationVersion": "unknown",
            "deployerName": "KubernetesTaskLauncher",
            "deployerSpiVersion": "unknown",
            "javaVersion": "17.0.10",
            "platformApiVersion": "v1",
            "platformClientVersion": "unknown",
            "platformHostVersion": "unknown",
            "platformSpecificInfo": {
              "namespace": "default",
              "master-url": "https://10.43.0.1:443/"
            },
            "platformType": "Kubernetes",
            "springBootVersion": "2.7.18",
            "springVersion": "5.3.31"
          }
        ]
      },
      "monitoringDashboardInfo": {
        "url": "",
        "refreshInterval": 15,
        "dashboardType": "NONE",
        "source": "default-scdf-source"
      },
      "gitAndBuildInfo": {
        "git": {
          "branch": "main",
          "commit": {
            "id": "86b53e0",
            "time": "2024-01-10T21:06:58Z"
          }
        },
        "build": {
          "artifact": "spring-cloud-dataflow-server",
          "name": "Spring Cloud Data Flow Server",
          "time": "2024-01-11T17:00:03.506Z",
          "version": "2.11.2",
          "group": "org.springframework.cloud"
        }
      },
      "_links": {
        "self": {
          "href": "http://localhost:8123/about"
        }
      }
    }
    

alsdud154 avatar Apr 15 '24 06:04 alsdud154

This does seem to be a bug.

corneil avatar Apr 15 '24 11:04 corneil

@alsdud154 Was the deployer property in question visible in the task execution view? Does your application include the spring cloud task dependency?

corneil avatar Apr 15 '24 11:04 corneil

@corneil Thanks for your reply

task information executed by schedule[Job Exection Id 151] image

task information for failed jobs using the restart button[Job Execution Id 152] image

Spring batch applications running with k8s include org.springframework.cloud:spring-cloud-starter-task. image

alsdud154 avatar Apr 17 '24 02:04 alsdud154

SCDF creates a task manifest when launching a task that stores the deployment properties. However, when SCDf schedules a task the deployment information is passed onto the cronjob but dataflow does not store the deployment information. Thus when the scheduled task is fails, and needs to be restarted, SCDF does not have the deployment information, because it does not have the manifest. SCDF needs to be updated to store this manifest (deployment information) for the schedule.

A possible workaround is to use the global properties (if your tasks use the same deployment properties: https://docs.spring.io/spring-cloud-dataflow/docs/current/reference/htmlsingle/#configuration-kubernetes-app-props

cppwfs avatar Apr 17 '24 16:04 cppwfs

@cppwfs Is it correct that SCDF version up is needed after developing additional features to store manifest (deployment info)? I'll use the global properties for now, but I hope we've added a feature that's saved in manifest in the future.

thank you.

alsdud154 avatar Apr 18 '24 01:04 alsdud154