Hola gente. Cambiamos Mapuche de versión ayer a 3.12.1
Tuvimos una serie de errores raros que no surgieron en las pruebas. Por ejemplo cuando vamos a Informes->Liquidacion->Detalle de liquidación con un usuario con perfil distinto a Administrador, la consulta se colgaba y se volvía cada vez mas lento el servidor. Por primera vez el servidor me llegó a usar 32GB de RAM cosa que no pasó nunca.
Pasaba que entraron todos a sacar el detalle de liquidación y se colgaba la consulta, se conectaban de otro lugar y volvían a intentar sacarlo y quedaban procesos de postgres colgados con el 100% de un procesador en uso.
En el log de postgresql encontré la consulta que colgaba el servidor y era la siguiente:
SELECT dh21h.nro_legaj, dh01.tipo_docum || ' ' || dh01.nro_docum AS documento,
dh01.desc_appat || ', ' || dh01.desc_nombr AS agente,
dh01.desc_appat || ', ' || dh01.desc_nombr || ' (' || dh21h.nro_legaj || ')' AS agente_corte,
LPAD(dh01.nro_cuil1::varchar, 2, '0') || '-' || LPAD(dh01.nro_cuil::varchar, 8, '0') || '-' || dh01.nro_cuil2 AS cuil,
dh01.tipo_estad,
dh01.fec_nacim,
dh01.tipo_sexo,
dh21h.nro_cargo,
dh03.fec_alta,
dh03.fec_baja,
dh03.codc_categ,
dh03.codc_agrup,
dh03.hs_dedic,
dh03.nro_exped,
dh03.nro_norma,
dh90.nro_cargoasociado,
dh90.tipoasociacion,
estado_civil.desc_estado_civil,
aporte_jubilatorio.desc_aporte_jubilatorio,
dh09.fec_ingreso,
dh09.codc_uacad as dep_cabecera,
dh35.tipo_carac,
dh35.tipo_escal,
COALESCE(dh35.desc_grupo,'No existe Caracter') as desc_carac,
dh35.codc_carac as codc_carac,
dh11.desc_categ,
dh31.desc_dedic,
dh31.cant_horas,
dh11.codc_dedic || ' (' || dh03.nro_cargo || ')' AS dedicacion_cargo,
dh11.codc_dedic,
dh11.impp_basic,
dh21h.nro_liqui,
dh21h.impp_conce::numeric(10,2),
dh21h.tipoescalafon,
dh22.desc_liqui,
LPAD(dh21h.tipo_ejercicio::VARCHAR, 1, '0') AS tipo_ejercicio,
LPAD(dh21h.codn_grupo_presup::VARCHAR, 4, '0') AS codn_grupo_presup,
LPAD(dh21h.codn_area::VARCHAR, 3, '0') AS codn_area,
LPAD(dh21h.codn_subar::VARCHAR, 3, '0') AS codn_subar,
LPAD(dh21h.codn_subsubar::VARCHAR, 3, '0') AS codn_subsubar,
LPAD(dh21h.codn_progr::VARCHAR, 2, '0') AS codn_progr,
LPAD(dh21h.codn_subpr::VARCHAR, 2, '0') AS codn_subpr,
LPAD(dh21h.codn_proye::VARCHAR, 2, '0') AS codn_proye,
LPAD(dh21h.codn_activ::VARCHAR, 2, '0') AS codn_activ,
LPAD(dh21h.codn_obra::VARCHAR, 2, '0') AS codn_obra,
LPAD(dh21h.codn_final::VARCHAR, 1, '0') AS codn_final,
LPAD(dh21h.codn_funci::VARCHAR, 1, '0') AS codn_funci,
dh21h.codn_fuent,
dh21h.nro_orimp,
dh21h.nov1_conce,
dh21h.nov2_conce,
dh21h.detallenovedad,
dh21h.ano_retro,
dh21h.mes_retro,
dh21h.nrogrupoesc,
dh21h.codc_uacad,
dh21h.codc_regio,
LPAD(dh21h.tipo_ejercicio::VARCHAR, 1, '0')||'-'||LPAD(dh21h.codn_grupo_presup::VARCHAR, 4, '0')||'-'|| LPAD(dh21h.codn_area::VARCHAR,3, '0')||'.'||LPAD(dh21h.codn_subar::VARCHAR,3, '0')||'.'||LPAD(dh21h.codn_subsubar::VARCHAR, 3, '0')||'-'|| LPAD(dh21h.codn_fuent::VARCHAR,2, '0')||'-'|| LPAD(dh21h.codn_progr::VARCHAR,2, '0')||'.'||LPAD(dh21h.codn_subpr::VARCHAR,2, '0')||'.'||LPAD(dh21h.codn_proye::VARCHAR,2, '0')||'.'||LPAD(dh21h.codn_activ::VARCHAR,2, '0')||'.'|| LPAD(dh21h.codn_obra::VARCHAR,2, '0')||'-'|| LPAD(dh21h.codn_final::VARCHAR,1, '0')||'.'||LPAD(dh21h.codn_funci::VARCHAR,1, '0') as imputacion,
dh21h.codn_conce,
dh21h.tipo_conce,
dh12.desc_corta,
dh12.desc_conce,
dh89.codigoescalafon,
trim(to_char(dh21h.codn_progr, '00')) || trim(to_char(dh21h.codn_subpr, '00')) || trim(to_char(dh21h.codn_proye, '00')) || trim(to_char(dh21h.codn_activ, '00')) || trim(to_char(dh21h.codn_obra, '00')) AS categ_programatica,
dh17.objt_gtote
INTO TMP_DETALLE_LIQUIDACION_prueba2
FROM mapuche.dh21h
LEFT OUTER JOIN mapuche.dh22 ON (dh22.nro_liqui = dh21h.nro_liqui)
LEFT OUTER JOIN mapuche.dh01 ON (dh01.nro_legaj = dh21h.nro_legaj)
LEFT OUTER JOIN mapuche.dh03 ON (dh03.nro_cargo = dh21h.nro_cargo)
LEFT OUTER JOIN mapuche.dh09 ON (dh09.nro_legaj = dh01.nro_legaj)
LEFT OUTER JOIN mapuche.dh11 ON (dh03.codc_categ = dh11.codc_categ)
LEFT OUTER JOIN mapuche.dh35 ON (dh35.tipo_escal = dh11.tipo_escal AND dh03.codc_carac = dh35.codc_carac)
INNER JOIN mapuche.depcia ON ( mapuche.depcia.cod_depcia IN ('INFO','ASMA','AUZA','BIBL','CRUB','CUZA','DECO','DBAS','FAME','FAAS','FATA','FACA','FACE','FADE','FAEA','FAHU','FAIF','FAIN','FALE','FATU','FEA ','FDHU','FAT ','FOME','IBMP','IUC ','SESO','RECT','CRUZ','SEBU','SECO','SEAC','SEHA','SEIN','SEGE','SEXU','TACZ','TESO','VICE') )
AND (dh21h.codc_uacad = depcia.cod_depcia)
LEFT OUTER JOIN mapuche.regional ON (dh21h.codc_regio = regional.cod_regional)
LEFT OUTER JOIN mapuche.aporte_jubilatorio ON (dh09.codc_bprev = aporte_jubilatorio.cod_aporte_jubilatorio)
LEFT OUTER JOIN mapuche.estado_civil ON (dh09.codc_estcv = estado_civil.cod_estado_civil)
LEFT OUTER JOIN mapuche.dh89 ON (dh21h.codigoescalafon = dh89.codigoescalafon)
LEFT OUTER JOIN mapuche.dh31 ON (dh11.codc_dedic = dh31.codc_dedic)
LEFT OUTER JOIN mapuche.dh12 ON (dh21h.codn_conce = dh12.codn_conce)
LEFT OUTER JOIN mapuche.dh17 ON (dh21h.codn_conce = dh17.codn_conce)
LEFT OUTER JOIN mapuche.dh90 ON (dh21h.nro_cargo = dh90.nro_cargo) --Tabla de Categorías Programáticas'
LEFT JOIN mapuche.dh27 ON (dh21h.codn_progr = dh27.codn_progr AND dh21h.codn_subpr = dh27.codn_subpr AND dh21h.codn_proye = dh27.codn_proye AND dh21h.codn_activ = dh27.codn_activ AND dh21h.codn_obra = dh27.codn_obra )
WHERE dh21h.nro_liqui = '537' AND dh01.nro_legaj = '22635'
Con ese comentario --Tabla de Categorías Programáticas’ con una comilla simple andaba mal.
Busqué donde estaba esta consulta y encontré el archivo /instalacion_mapuche/php/modelos/negocio/liquidacion/conceptos.php
Eliminé la comilla demás y ahora funciona el detalle de liquidación con todos los usuarios pero me quedan algunas dudas.
Porque solamente daba el error con algunos usuarios? Con esto se habrá eliminado ese error? o tengo que mirar en otro lado para ver si puedo encontrar algo mas? Si tienen alguna linea por donde mirar se los agradezco.
Saludos!