Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
alsdud154 opened this issue Apr 15, 2024 · 5 comments
Labels
area/task-scheduler Belongs to task scheduling
Milestone

Comments

@alsdud154
Copy link

alsdud154 commented Apr 15, 2024

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"
        }
      }
    }
    
@github-actions github-actions bot added the status/need-triage Team needs to triage and take a first look label Apr 15, 2024
@corneil
Copy link
Contributor

corneil commented Apr 15, 2024

This does seem to be a bug.

@corneil corneil added type/bug Is a bug report area/task-scheduler Belongs to task scheduling and removed status/need-triage Team needs to triage and take a first look labels Apr 15, 2024
@corneil
Copy link
Contributor

corneil commented Apr 15, 2024

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

@corneil corneil added the status/need-feedback Calling participant to provide feedback label Apr 15, 2024
@alsdud154
Copy link
Author

@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

@github-actions github-actions bot added for/team-attention For team attention and removed status/need-feedback Calling participant to provide feedback labels Apr 17, 2024
@cppwfs
Copy link
Contributor

cppwfs commented Apr 17, 2024

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

@github-actions github-actions bot added status/need-feedback Calling participant to provide feedback and removed for/team-attention For team attention labels Apr 17, 2024
@cppwfs cppwfs removed the status/need-feedback Calling participant to provide feedback label Apr 17, 2024
@alsdud154
Copy link
Author

@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.

@cppwfs cppwfs added this to the 3.0.x milestone May 29, 2024
@cppwfs cppwfs removed the type/bug Is a bug report label May 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/task-scheduler Belongs to task scheduling
Projects
None yet
Development

No branches or pull requests

3 participants