Crónica de una migración con instalación complicada 4 - Errores en ejecución

Continúa de post anterior.

Durante la puesta en producción de la aplicación generada con GeneXus 16 aparecieron algunos errores.

OLD(Fecha) en KB Spanish. 
Se está calculando mal el valor OLD en campos fecha en la KB si tiene el lenguaje Spanish. 
Por ejemplo, si un atributo fecha tenía el valor 2019-01-02, el OLD de ese atributo queda como 2002-01-19.  Toma el año como dia y el dia como año. 
Esta reportado y rumbo a corregirse. 
Para lograr zafar de este error, tuvimos que dejar instalado en paralelo la versión anterior en Evo3, para darle una forma de escape a los usuarios que tenían que usar los programas que usaban OLD(). Como dije antes, no es bueno que convivan la version vieja y la nueva en un ambiente de balanceo de carga, pero en este caso no le encontramos otra salida.
Lo habíamos detectado en testeo, pero no pudimos reproducirlo correctamente.


Regla Serial 
Si una transaccion, tiene 2 niveles y en el segundo nivel tiene un atributo fórmula SUM() a un tercer nivel, la regla serial repite números. 
Esto es porque se cambió la forma en que se disparaban estas reglas, para tener menos roundtrip al server, segun me explicaron. 
Cambiamos la programación para que esto no se diera en una transacción particular y la instalamos. Pueden aparecer otras. 
Esta reportado y rumbo ya corregido por Genexus, aun no nos llego la nueva version.
Lo habíamos detectado en nuestros testeos, y lo corregimos en algún caso, pero no en todos. 

Object reference not set to an instance of an object. at GeneXus.Helpers.ThemeHelper.GetThemeData
En los servidores aparece un error 500 al ejecutar una sentencia. 
  at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
   at GeneXus.Helpers.ThemeHelper.GetThemeData(String themeName) 
El problema está reportado aca y es por el tipo de datos y la alta concurrencia.
Genexus está arreglando el problema, para no usar un Dictionary, sino un ConcurrentDictionary y nos va a pasar un generador con ese arreglo.
Nunca nos dio en testeo este error. 

Alto consumo de CPU de Worker Process. 
Por otro lado, tenemos un problema intermitente, que tal vez este relacionado con el ultimo error, es que de repente los worker process del Application Pool de LuciaXMenuNuevo quedan consumiendo cerca del 100% de la cpu y los request demoran mucho. Estamos investigando para ver si encontramos la causa, pero no es facil, detectar y corregir estos errores en produccion, pues no tenemos acceso a dichos servidores. El analisis lo hacemos con los log de acceso, los errores del event viewer del servidor, habilitando el Failed Request Tracing para algunos errores especificos (500, 403, etc) y con una lista de los request que están corriendo en el momento que se detecta la lentitud (que pueden no ser la causa del problema).

Parece que vamos a estar divertidos por un tiempito mas.





Comentarios

  1. Respuestas
    1. Rodolfo, en el post planteo 4 errores.
      Todos fueron solucionados.

      Borrar
  2. Cual fué la solución al 403 aleatorio del ajax?

    ResponderBorrar
    Respuestas
    1. La mayoria se soluciono instalando una version mas nueva de GeneXus.

      Habia algunos 403 que se daban por falta de parametros, cuando estaban encriptados, en llamadas dinámicas y esos lo solucionamos cambiando la programación.

      Borrar

Publicar un comentario

1) Lee el post
2) Poné tu opinión sobre el mismo.
Todos los comentarios serán leidos y la mayoría son publicados.

Entradas más populares de este blog

Aplicación monolítica o distribuida?

La nefasta influencia del golero de Cacho Bochinche en el fútbol uruguayo

Funcionalidades de GeneXus que vale la pena conocer: DATE Constants.