Relationship between Task and Job not recorded after a failure during beforeJob

Aperta
#672 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
java, spring
Ambito
backend, databases

Direzione di ricerca

Inizia riproducendo un'eccezione durante beforeJob e confrontando le scritture in task_task_batch con le tabelle task e job elencate. Il lavoro è completato quando la relazione Task Execution–Job Execution viene registrata dopo l'errore e il menu Jobs della UI Spring Cloud Data Flow non restituisce più errori.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

type: enhancement

In the table "task_task_batch", usually, there are recorded the relationships between the Task Execution Ids and the Job Execution Ids. We have a simple task that only contains a job, and the issue is that if there is an exception during the execution of the beforeJob statement, the relationship is not recorded.
Reviewing the tables that contains all the information of the job ("batch_job_execution", "batch_job_execution_context", "batch_job_execution_params", "batch_job_instance") and the task ("task_execution", "task_execution_metadata", "task_execution_params"), we can see that all the registers has been recorded.
We could think that since the error is "before the job", the relationship was not created because there would not be a job instance, but the records are there, so we do not know why the table "task_task_batch" is not filled.
This behavior makes, for example, that if we try to use the Spring Cloud Data Flow UI, and go to the "Jobs" menu, an Error is returned as it does not find the relationship between all the task executions and job executions.

For now, we have coded a work around in the afterJob statement (because it is executed even when there is a failure in the beforeJob) that check if the "task_tack_batch" table contains a record for the current taskExecutionId, and inserts it if it doesn't exist.

Release versions:
spring-cloud-task: 2.2.2.RELEASE
spring-boot: 2.1.2.RELEASE
spring-batch: 4.1.1.RELEASE
spring: 5.1.4.RELEASE

Lingua principale
Java
Stelle
446
Fork
310
Merge medio
18h 18m
PR unite (30g)
6

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di spring-cloud/spring-cloud-task

Tutte le issue di spring-cloud/spring-cloud-task

Issue simili

Altre issue su Java

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.