Error al imprimir pdf en preinscripción

el problema es el siguiente . Solamente en la preinscripcion de una propuesta especifica si hago clic en el boton imprimir (/censo/imprimir/propuesta) me da error 500.
el log del apache muestra php fatal error: maximum execution time of 15 seconds exceeded in /usr/local/proyectos/preinscripcion/vendor/rebuy/ezpdf/src/ezpdf/src/ezpdf/class.pdf.php on line 2394.

probe alargando el timeout, revise instalacion de ezpdf mbstring etc… pero seguro que no es eso porque se da especificamente en una propuesta si en la misma ficha de preinscripcion cambio de propuesta con todo igual y le doy a imprimir funciona perfecto.
Me podrian orientar cual puede ser el error?

Gracias!

Hola

Si bien mencionan que probaron alargando “timeout” revisen si el error sigue mencionando 15 segundos. Pueden generar una página phpinfo.php para revisar el valor de la variable.

¿Ya vieron este foro. ?

Si persiste el error. Por favor enviene el log de apache y el log de la aplicación al momento del error.

Saludos

ok! ahora te lo mando, pero me resulta raro que si cambio de propuesta imprima sin problemas.

Hola

Para obtener más información. ¿La propuesta que tiene problemas de impresión es del mismo tipo que el resto de las propuestas que imprimen bien?

Saludos!

Hola,

¿el caso que les da error esta preinscrito a dos o mas propuestas? ¿son propuestas de distinto tipo?

¿en el perfil administrador de Preinscripción tiene diferentes configuraciones para los distintos tipos de propuestas?

Estaría bueno que nos envíen logs de la aplicación y de Apache cuando da error.

saludos.
2

de preinscripcion: (estaria bueno en alguna version futura ademas de un log por transaccion un log unico como en siu gestion , ya que es bastante tedioso buscar asi)

================================= ERRORES ==================================

clase: SIU\Chulupi\ErrorKernel
mensaje: SHUTDOWN
traza: [TRAZA]

—[ 0 ]-----------------------------------------

  • function: SIU\Chulupi\nucleo\AccesoWeb::shutdown
  • file: /usr/local/proyectos/preinscripcion/vendor/siu/chulupi-framework/src/SIU/Chulupi/nucleo/AccesoWeb.php, linea 166

########################################################################################################################

–F<0>:E<1>:W<0>:T<0 s>:M<0 Mb>–
error de apache:PHP Fatal error: Maximum execution time of 15 seconds exceeded in
/usr/local/proyectos/preinscripcion/vendor/rebuy/ezpdf/src/ezpdf/class.pdf.php on line 2167, referer: https://preinscripcion.iugna.edu.ar/escuelas/censo/

el php.info:
Configuration File (php.ini) Path /etc/php/7.1/apache2
Loaded Configuration File /etc/php/7.1/apache2/php.ini
Additional .ini files parsed /etc/php/7.1/apache2/conf.d/10-opcache.ini, /etc/php/7.1/apache2/conf.d/10-pdo.ini, /etc/php/7.1/apache2/conf.d/15-xml.ini, /etc/php/7.1/apache2/conf.d/20-apcu.ini, /etc/php/7.1/apache2/conf.d/20-calendar.ini, /etc/php/7.1/apache2/conf.d/20-ctype.ini, /etc/php/7.1/apache2/conf.d/20-curl.ini, /etc/php/7.1/apache2/conf.d/20-dom.ini, /etc/php/7.1/apache2/conf.d/20-exif.ini, /etc/php/7.1/apache2/conf.d/20-fileinfo.ini, /etc/php/7.1/apache2/conf.d/20-ftp.ini, /etc/php/7.1/apache2/conf.d/20-gd.ini, /etc/php/7.1/apache2/conf.d/20-gettext.ini, /etc/php/7.1/apache2/conf.d/20-iconv.ini, /etc/php/7.1/apache2/conf.d/20-json.ini, /etc/php/7.1/apache2/conf.d/20-mbstring.ini, /etc/php/7.1/apache2/conf.d/20-mcrypt.ini, /etc/php/7.1/apache2/conf.d/20-pdo_pgsql.ini, /etc/php/7.1/apache2/conf.d/20-pgsql.ini, /etc/php/7.1/apache2/conf.d/20-phar.ini, /etc/php/7.1/apache2/conf.d/20-posix.ini, /etc/php/7.1/apache2/conf.d/20-readline.ini, /etc/php/7.1/apache2/conf.d/20-shmop.ini, /etc/php/7.1/apache2/conf.d/20-simplexml.ini, /etc/php/7.1/apache2/conf.d/20-sockets.ini, /etc/php/7.1/apache2/conf.d/20-sysvmsg.ini, /etc/php/7.1/apache2/conf.d/20-sysvsem.ini, /etc/php/7.1/apache2/conf.d/20-sysvshm.ini, /etc/php/7.1/apache2/conf.d/20-tokenizer.ini, /etc/php/7.1/apache2/conf.d/20-wddx.ini, /etc/php/7.1/apache2/conf.d/20-xmlreader.ini, /etc/php/7.1/apache2/conf.d/20-xmlwriter.ini, /etc/php/7.1/apache2/conf.d/20-xsl.ini, /etc/php/7.1/apache2/conf.d/20-zip.ini, /etc/php/7.1/apache2/conf.d/25-apcu_bc.ini

Registered Stream Filters zlib., string.rot13, string.toupper, string.tolower, string.strip_tags, convert., consumed, dechunk, convert.iconv., mcrypt., mdecrypt.*

EXIF Support enabled
EXIF Version 7.1.33-4+0~20200123.30+debian10~1.gbpdc2095

mbstring
Multibyte Support enabled
Multibyte string engine libmbfl
HTTP input encoding translation disabled
libmbfl version 1.3.2
oniguruma version 5.9.6

apache2handler
Timeouts Connection: 3000 - Keep-Alive: 5
Loaded Modules core mod_so mod_watchdog http_core mod_log_config mod_logio mod_version mod_unixd mod_access_compat mod_alias mod_auth_basic mod_authn_core mod_authn_file mod_authz_core mod_authz_host mod_authz_user mod_autoindex mod_deflate mod_dir mod_dnssd mod_env mod_filter mod_mime prefork mod_negotiation mod_php7 mod_reqtimeout mod_rewrite mod_setenvif mod_socache_shmcb mod_ssl mod_status

Hola, gracias por los logs!!!

Te voy a pedir lo siguiente: en la función accion__imprimir del archivo src/siu/operaciones/censo/controlador.php agrega el siguiente try/catch:


			try {
				$pdf = kernel::localizador()->instanciar('operaciones\\_comun\\generador_pdf');
				$pdf->get_comprobante();
			} catch (\Throwable $e){
				kernel::log()->add_error($e);
				kernel::log()->add_debug("debug_backtrace", debug_backtrace());
			}

Luego volve a intentar a imprimir, y mándanos los logs que genera la aplicación.

saludos.
2

puse el try cath al principio de la funcion y me muestra exactamente lo mismo… tengo que ponerlo en algun lado especifico o cambiar el nivel de log??

================================================================================
================================= ERRORES ==================================

clase: SIU\Chulupi\ErrorKernel
mensaje: SHUTDOWN
traza: [TRAZA]

—[ 0 ]-----------------------------------------

  • function: SIU\Chulupi\nucleo\AccesoWeb::shutdown
  • file: /usr/local/proyectos/preinscripcion/vendor/siu/chulupi-framework/src/SIU/Chulupi/nucleo/AccesoWeb.php, linea 166

########################################################################################################################

–F<0>:E<1>:W<0>:T<0 s>:M<0 Mb>–

quedo asi:
function accion__imprimir()
{
try {
$pdf = kernel::localizador()->instanciar(‘operaciones\_comun\generador_pdf’);
$pdf->get_comprobante();
} catch (\Throwable $e){
kernel::log()->add_error($e);
kernel::log()->add_debug(“debug_backtrace”, debug_backtrace());
}
$hay_faltantes = kernel::persona()->datos()->hay_datos_faltantes();

Hola Germán,

No, debería quedar así:


	function accion__imprimir()
	{
		$hay_faltantes = kernel::persona()->datos()->hay_datos_faltantes();

		if ($hay_faltantes) {
			$this->vista()->activar_control_faltantes();
		} else {
			// Se han completado todos los campos obligatorios -> se procede a imprimir
			$this->vista()->desactivar_control_faltantes();

			// Se actualiza la versión impresa.
			kernel::persona()->datos()->actualizar_version_impresa();

			/**
			 * Se actualiza el estado de la preinscripción
			 *  - C: Formulario impreso. Listo para ingreso en Guarani
			 */
			kernel::persona()->datos()->actualizar_estado(\siu\preinscripcion::estado_preparado);

			try {
				$pdf = kernel::localizador()->instanciar('operaciones\\_comun\\generador_pdf');
				$pdf->get_comprobante();
			} catch (\Throwable $e){
				kernel::log()->add_error($e);
				kernel::log()->add_debug("debug_backtrace", debug_backtrace());
			}
		}

		$formulario = $this->validate_param(0, 'get', validador::TIPO_TEXTO, array('default' => 'propuesta'));
		$pagelet = $this->vista()->pagelet($formulario);
		$this->vista()->set_form_activo($pagelet);

		kernel::renderer()->add($pagelet);
	}

saludos.
2

me genera exactamente el mismo error

Hola Germán,

Dado que el error lo da en /usr/local/proyectos/preinscripcion/vendor/rebuy/ezpdf/src/ezpdf/class.pdf.php, podemos probar haciendo lo siguiente:

  1. Borra la carpeta /usr/local/proyectos/preinscripcion/vendor/.
  2. Volve a correr el comando composer install para que descargue todas las dependencias nuevamente.

Puede ser que haya cambios dentro de /usr/local/proyectos/preinscripcion/vendor/ y no nos estemos dando cuenta.

saludos.
2

Si con lo del mensaje anterior no se soluciona podemos probar lo siguiente:

Editar la función accion__imprimir de la clase src/siu/operaciones/censo/controlador.php:

  1. Deshacer el try/catch que les pase antes.

  2. Al principio de la función accion__imprimir agregar la siguiente linea: set_time_limit(0);. Esto hará que para la impresión no haya limite de tiempo.

Si con eso funciona después les digo como hacer para que quede como personalización.

Referencia:
https://www.php.net/manual/es/function.set-time-limit.php
https://www.bufa.es/php-fatal-error-maximum-execution-time/
https://stackoverflow.com/questions/5164930/fatal-error-maximum-execution-time-of-30-seconds-exceeded

saludos.
2

agregar la siguiente linea: set_time_limit(0);

el error tarda mas en aparecer y en el log de apache pasoa a ser

PHP Warning: Declaration of siu\operaciones\censo\pagelet_propuesta::get_form() should be compatible with SIU\Chulupi\interfaz\pagelet::get_form($id_html) in /usr/local/proyectos/preinscripcion/src/siu/operaciones/censo/_propuesta.php on line 9, referer: https://preinscripcion.iugna.edu.ar/escuelas/

PHP Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 28672 bytes) in /usr/local/proyectos/preinscripcion/vendor/rebuy/ezpdf/src/ezpdf/class.pdf.php on line 2168, referer: https://preinscripcion.iugna

el log de siu:
WARNING
Archivo: /usr/local/proyectos/preinscripcion/src/siu/operaciones/censo/pagelet_propuesta.php
Linea: 9
Declaration of siu\operaciones\censo\pagelet_propuesta::get_form() should be compatible with SIU\Chulupi\interfaz\pagelet::get_form($id_html)
en web:
preinscripcion.iugna.edu.ar no ha enviado ningún dato.
ERR_EMPTY_RESPONSE ( tardo como 10 min)

borrar la carpeta vendor lo hice pero tuve que restauralo ya que el composer install me dice que usa php5.6 y tengo php7

ese error antes era de 256 y lo aumente a 1024 mb y tarda un poco mas pero pasa exactamente lo mismo.

Hola Germán, gracias por la información!!!

PHP Warning: Declaration of siu\\operaciones\\censo\\pagelet_propuesta::get_form() should be compatible with SIU\\Chulupi\\interfaz\\pagelet::get_form($id_html) in /usr/local/proyectos/preinscripcion/src/siu/operaciones/censo/_propuesta.php on line 9, referer: https://preinscripcion.iugna.edu.ar/escuelas/

Para arreglar este warning anda a la función get_form de la clase src/siu/operaciones/censo/pagelet_propuesta.php y que quede así:


	function get_form($id_html = null)
	{
		if (!isset($this->form)) {
			$this->form = kernel::localizador()->instanciar('operaciones\censo\propuesta\form_propuesta');
		}
		return $this->form;
	}

borrar la carpeta vendor lo hice pero tuve que restauralo ya que el composer install me dice que usa php5.6 y tengo php7

Quizás tenes una versión de PHP que no es la que corresponde con la versión de Preinscripción!!!
¿que versión de Preinscripción tenes instalada?

saludos.
2

Hola, fíjate el mensaje que te puse en el pagina anterior primero!!!

PHP Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 28672 bytes) in /usr/local/proyectos/preinscripcion/vendor/rebuy/ezpdf/src/ezpdf/class.pdf.php on line 2168, referer: https://preinscripcion.iugna..

Parece un bug en la librería ezpdf, algo se debe quedar loopeando.

Proba esto en la la función accion__imprimir de la clase src/siu/operaciones/censo/controlador.php agregar las siguientes lineas:


	function accion__imprimir()
	{
		set_time_limit(0);
		ini_set('memory_limit', '1024M');
		************************
	}

Referencia:

https://www.airpair.com/php/fatal-error-allowed-memory-size

saludos.
2

tengo la Versión 3.8.0

agregue al inicio del index.php del siu preinscripcion: phpinfo( );
PHP Version 7.1.33-4+0~20200123.30+debian10~1.gbpdc2095

Configuration File (php.ini) Path /etc/php/7.1/apache2
Loaded Configuration File /etc/php/7.1/apache2/php.ini
Scan this dir for additional .ini files /etc/php/7.1/apache2/conf.d

Hola Germán,

Estos son los requisitos técnicos de la 3.8.0: https://documentacion.siu.edu.ar/wiki/SIU-Guarani/preinscripcion3.8.0/instalacion_desde_cero/requisitos

PHP “5.6.x o superior”, la verdad que eso de “superior” me parece que no es tan así, quizás el problema venga por ahí.

Deberías usar PHP 5.6.x.

saludos.
2

Buenas. Sigo el hilo de mi compañero German.
Cambiamos la versión a la 3.11.1 de preinscripción, comprobamos los requisitos y todo lo que anteriormente le indicaste a German pero sigue sin funcionar. En algunos casos imprime la ficha y el otros casos no imprime. Alguna otra opción para probar?

Hola,

Nos podrían pasar los logs de la aplicación y los de Apache generados a la hora de imprimir dicha ficha.

¿están bien los permisos de las carpetas?

saludos.
2