Opened 5 years ago

Closed 5 years ago

#5962 closed defect (fixed)

Problemas con el merge del portal

Reported by: daniel Owned by: vegasm
Priority: critical Milestone: DP2.0
Component: DownscalingPortal Keywords:
Cc: vegasm, daniel, gutierjm, sixto, antonio

Description

Hola Antonio, Manu,

parece que hay problemas en el portal desde que se hizo el merge de las dos versiones. Por ejemplo, Jose no puede ver su lista de jobs. En cambio, a otros usuarios sí que les aparece.

He mirado los logs de oceano y el problema es claro: Ibatis se queja al hacer el mapeo de la BBDD al objeto JobStatus?. En concreto, en las trazas de los jobs de la base de datos hay estados del job con ID=5 y parece que el objeto de modelo (que es un enum) no lo tiene definido:

Caused by: java.lang.RuntimeException?: Error setting property 'setStatus' of 'es.predictia.dp.model.Job@61ec82c4'. Cause: java.lang.IllegalArgumentException?: No job status with id 5

Como no sé cómo es el merge que habéis hecho ni tengo claro qué es lo que está desplegado, he mirado el código de la clase JobStatus?:

en el trunk de nuestro SVN, la clase JobStatus? no tiene ningún estado con ID=5 (ver https://dev.predictia.es/trac/dp/browser/trunk/core/src/main/java/es/predictia/dp/model/jobs/JobStatus.java ). Sus estados son:

STARTING(1, "Starting", "The job has been submitted", false),
QUEUED(10, "Queued", "The job has been queued", false),
RUNNING(20, "Running", "The job is running", false),
READING(25, "Reading data", "Reading data", false),
PROGRESS(28, "Progress", "Progress info", false),
FINISHED(30, "Finished", "The job has finished", true),
KILLED(40, "Killed", "The job has been killed", true),
ERROR(50, "Error", "The job has failed", true),
HIDDEN(60, "Hidden", "The job been marked as hidden", true);

en la rama is-enes2-token (que es la que tiene los commits mas recientes) sí que hay un status con ID=5

STARTING(1, "Starting", "The job has been submitted", false),
FAILED(5, "Failed", "The job submission has failed", false),
QUEUED(10, "Queued", "The job has been queued", false),
RUNNING(20, "Running", "The job is running", false),
READING(25, "Reading data", "Reading data", false),
PROGRESS(28, "Progress", "Progress info", false),
FINISHED(30, "Finished", "The job has finished", true),
KILLED(40, "Killed", "The job has been killed", true),
ERROR(50, "Error", "The job has failed", true),
HIDDEN(60, "Hidden", "The job been marked as hidden", true),
DELETED(70, "Deleted", "The data produced has been deleted", true);

Me imagino que el problema se ha producido por algo como esto:

En /downscaling está desplegado nuestro trunk
En /dp está desplegada la rama /dp
Jose ha mandado un job desde /dp que ha fallado (con ID=5). El fallo en la traza del job ha quedado registrado en el portal con el ID=5
Al consultarlo desde /downscaling el ORM se queja porque no puede instanciar el enum desde un ID=5
Al consultar desde /dp funciona sin problemas

Si estoy en lo cierto, os hago algunas preguntas:

¿Por qué habéis definido un nuevo código de error (FAILED ID=5) cuando ya había otro (ERROR ID=50)?
Si las dos instancias comparten base de datos es obligatorio, al menos, haber hecho el merge de las clases del modelo (es.predictia.dp.model) en ambas instancias.

Y propongo esta solución:

que nadie use la instancia /dp por el momento para que la instancia /downscaling siga siendo operativa
borrar el job de Jose manualmente para que él pueda usar el portal con normalidad
cuando vuelva Manu, que nos cuente cómo ha hecho el merge para poder acutalizar la instancia /downscaling

Otra opción sería actualizar directamente /downscaling con la versión /dp. Sin embargo, dada la proximidad del training, creo que no es una buena opción.

Dani

Pd. Murphy nos ha enseñado que cambios así es mejor no hacerlos justo antes de irse de vacaciones ;)

Change History (3)

comment:1 Changed 5 years ago by antonio

  • Cc daniel added

He actualizado los status con id 5 a un id 50 en la BD

UPDATE       jobs SET status=50    WHERE status=5;
UPDATE jobs_trace SET status_id=50 WHERE status_id=5;

comment:2 Changed 5 years ago by antonio

  • Milestone set to DP2.0
  • Priority changed from major to critical

comment:3 Changed 5 years ago by vegasm

  • Cc gutierjm sixto antonio added
  • Resolution set to fixed
  • Status changed from new to closed

Revisando un poco parece que en la cuenta de Jose que es con la que hice pruebas se quedó el job 33222 con varios status 5. En este job hice pruebas de mensajes para utilizar la API REST en lugar del servicio SOAP en la comunicación desde los scripts con el portal. De todas formas en los scripts no se estaba usando este status por lo que no había problema a la hora de usar ambos portales por otros usuarios de cara a lanzar nuevos jobs.

He eliminado este status y se usará de momento el de ERROR. Aún así, convendría separar lo que es un error de lanzamiento del job por problemas de acceso a la cola o configuración del job (Para eso se pensó el FAILED en caso de que no consiguiese el qid) de lo que es un ERROR dentro de la ejecución del matlab.

Note: See TracTickets for help on using tickets.