G3w 2.8.1 - Error al recuperar contraseña vía Web

¡Buenos días!

Trabajando en la interfaz web, al intentar recuperar la clave de una alumno me aparece el siguiente error:

Could not open socket

En el log de errores aparece lo siguiente:

[Thu Jul 30 18:54:40 2015] [error] [client 192.168.10.1] File does not exist: /var/www/squid-internal-dynamic [Thu Jul 30 19:14:13 2015] [error] [client 192.168.9.1] File does not exist: /usr/local/proyectos/guarani/g3w2/2.8.1/2.8.1/src/siu/www/favicon.ico, referer: http://guaranifcj.unp.edu.ar/juridicas/ [Thu Jul 30 19:15:05 2015] [error] [client 192.168.9.1] File does not exist: /usr/local/proyectos/guarani/g3w2/2.8.1/2.8.1/src/siu/www/acceso, referer: http://guaranifcj.unp.edu.ar/juridicas/acceso/recuperar [Thu Jul 30 19:15:33 2015] [error] [client 192.168.9.1] PHP Notice: Undefined variable: usa_proxy in /usr/local/proyectos/guarani/g3w2/2.8.1/2.8.1/src/siu/lib/recaptcha/recaptchalib.php on line 89, referer: http://guaranifcj.unp.edu.ar/juridicas/acceso/recuperar [Thu Jul 30 19:15:43 2015] [error] [client 192.168.9.1] File does not exist: /var/www/favicon.ico, referer: http://guaranifcj.unp.edu.ar/juridicas/acceso/recuperar [Thu Jul 30 19:16:05 2015] [error] [client 192.168.9.1] PHP Notice: Undefined variable: usa_proxy in /usr/local/proyectos/guarani/g3w2/2.8.1/2.8.1/src/siu/lib/recaptcha/recaptchalib.php on line 89, referer: http://guaranifcj.unp.edu.ar/juridicas/acceso/recuperar [Thu Jul 30 19:20:39 2015] [error] [client 192.168.9.1] PHP Notice: Undefined variable: usa_proxy in /usr/local/proyectos/guarani/g3w2/2.8.1/2.8.1/src/siu/lib/recaptcha/recaptchalib.php on line 89, referer: http://guaranifcj.unp.edu.ar/juridicas/acceso/recuperar [Thu Jul 30 19:44:29 2015] [error] [client 192.168.10.1] File does not exist: /var/www/squid-internal-dynamic [Thu Jul 30 20:40:00 2015] [error] [client 192.168.9.1] File does not exist: /usr/local/proyectos/guarani/g3w2/2.8.1/2.8.1/src/siu/www/favicon.ico [Thu Jul 30 20:50:57 2015] [error] [client 192.168.10.1] File does not exist: /var/www/squid-internal-dynamic [Thu Jul 30 21:36:26 2015] [error] [client 192.168.9.1] PHP Notice: Undefined variable: usa_proxy in /usr/local/proyectos/guarani/g3w2/2.8.1/2.8.1/src/siu/lib/recaptcha/recaptchalib.php on line 89, referer: http://guaranifcj.unp.edu.ar/juridicas/acceso/recuperar [Thu Jul 30 21:37:34 2015] [error] [client 192.168.9.1] PHP Notice: Undefined variable: usa_proxy in /usr/local/proyectos/guarani/g3w2/2.8.1/2.8.1/src/siu/lib/recaptcha/recaptchalib.php on line 89, referer: http://guaranifcj.unp.edu.ar/juridicas/acceso/recuperar [Thu Jul 30 21:41:38 2015] [error] [client 192.168.10.1] File does not exist: /var/www/squid-internal-dynamic [Thu Jul 30 22:30:14 2015] [error] [client 192.168.10.1] File does not exist: /var/www/squid-internal-dynamic [Thu Jul 30 23:06:23 2015] [error] [client 192.168.9.1] File does not exist: /usr/local/proyectos/guarani/g3w2/2.8.1/2.8.1/src/siu/www/favicon.ico [Thu Jul 30 23:11:06 2015] [error] [client 192.168.10.1] File does not exist: /var/www/squid-internal-dynamic [Thu Jul 30 23:20:27 2015] [error] [client 192.168.9.1] File does not exist: /usr/local/proyectos/guarani/g3w2/2.8.1/2.8.1/src/siu/www/acceso [Thu Jul 30 23:21:15 2015] [error] [client 192.168.9.1] PHP Notice: Undefined variable: usa_proxy in /usr/local/proyectos/guarani/g3w2/2.8.1/2.8.1/src/siu/lib/recaptcha/recaptchalib.php on line 89, referer: http://guaranifcj.unp.edu.ar/juridicas/acceso/recuperar [Thu Jul 30 23:21:27 2015] [error] [client 192.168.9.1] File does not exist: /var/www/favicon.ico [Thu Jul 30 23:22:12 2015] [error] [client 192.168.9.1] PHP Notice: Undefined variable: usa_proxy in /usr/local/proyectos/guarani/g3w2/2.8.1/2.8.1/src/siu/lib/recaptcha/recaptchalib.php on line 89, referer: http://guaranifcj.unp.edu.ar/juridicas/acceso/recuperar [Fri Jul 31 00:14:43 2015] [error] [client 192.168.10.1] File does not exist: /var/www/squid-internal-dynamic [Fri Jul 31 01:06:28 2015] [error] [client 192.168.10.1] File does not exist: /var/www/squid-internal-dynamic [Fri Jul 31 02:03:42 2015] [error] [client 192.168.10.1] File does not exist: /var/www/squid-internal-dynamic [Fri Jul 31 02:44:09 2015] [error] [client 192.168.10.1] File does not exist: /var/www/squid-internal-dynamic [Fri Jul 31 03:55:48 2015] [error] [client 192.168.10.1] File does not exist: /var/www/squid-internal-dynamic [Fri Jul 31 04:52:15 2015] [error] [client 192.168.10.1] File does not exist: /var/www/squid-internal-dynamic [Fri Jul 31 05:53:38 2015] [error] [client 192.168.10.1] File does not exist: /var/www/squid-internal-dynamic [Fri Jul 31 06:53:54 2015] [error] [client 192.168.10.1] File does not exist: /var/www/squid-internal-dynamic [Fri Jul 31 08:06:56 2015] [error] [client 192.168.10.1] File does not exist: /var/www/squid-internal-dynamic [Fri Jul 31 09:11:58 2015] [error] [client 192.168.10.1] File does not exist: /var/www/squid-internal-dynamic [Fri Jul 31 09:58:52 2015] [error] [client 192.168.10.1] File does not exist: /var/www/squid-internal-dynamic [Fri Jul 31 10:41:56 2015] [error] [client 192.168.10.1] File does not exist: /var/www/squid-internal-dynamic [Fri Jul 31 10:43:10 2015] [error] [client 192.168.17.114] File does not exist: /usr/local/proyectos/guarani/g3w2/2.8.1/2.8.1/src/siu/www/favicon.ico, ddreferer: http://guaranifcj.unp.edu.ar/juridicas/ [Fri Jul 31 10:43:17 2015] [error] [client 192.168.17.114] File does not exist: /usr/local/proyectos/guarani/g3w2/2.8.1/2.8.1/src/siu/www/acceso, referer: http://guaranifcj.unp.edu.ar/juridicas/acceso/recuperar [Fri Jul 31 10:43:34 2015] [error] [client 192.168.17.114] PHP Notice: Undefined variable: usa_proxy in /usr/local/proyectos/guarani/g3w2/2.8.1/2.8.1/src/siu/lib/recaptcha/recaptchalib.php on line 89, referer: http://guaranifcj.unp.edu.ar/juridicas/acceso/recuperar [Fri Jul 31 10:43:44 2015] [error] [client 192.168.17.114] File does not exist: /var/www/favicon.ico, referer: http://guaranifcj.unp.edu.ar/juridicas/acceso/recuperar [Fri Jul 31 10:48:04 2015] [error] [client 192.168.17.114] PHP Notice: Undefined variable: usa_proxy in /usr/local/proyectos/guarani/g3w2/2.8.1/2.8.1/src/siu/lib/recaptcha/recaptchalib.php on line 89, referer: http://guaranifcj.unp.edu.ar/juridicas/acceso/recuperar

Desde ya, quedo muy agradecido por su ayuda.

¡Un fraternal saludo!

Por la variable $usa_proxy, fijate si esta inicializada en \src\siu\lib\recaptcha\recaptchalib.php en el método _recaptcha_http_post


function _recaptcha_http_post ($host, $path, $data, $port = 80) {
        $usa_proxy = false;
        ......

Hola, por lo que veo el error se produce cuando llama a la función @fsockopen, les pediría que en el archivo src/siu/lib/recaptcha/recaptchalib.php función _recaptcha_http_post antes de cada die (‘Could not open socket’); antepongan la siguiente linea klog2(‘fsockopen_error’, $errstr);, luego vuelvan a reproducir el error y envíenme los logs de la aplicación (instalacion/logs).

En el código quedaría así:


function _recaptcha_http_post($host, $path, $data, $port = 80) {

        $usa_proxy = false;

		if (isset($data['parametros_proxy'])) {
			$usa_proxy = $data['parametros_proxy']['activo'] === true;
			$proxy_host = $data['parametros_proxy']['proxy_host'];
			$proxy_port = $data['parametros_proxy']['proxy_port'];
			$proxy_username = $data['parametros_proxy']['proxy_username'];
			$proxy_password = $data['parametros_proxy']['proxy_password'];
			unset($data['parametros_proxy']);
		}
		
        $req = _recaptcha_qsencode ($data);

        $http_request  = "POST $path HTTP/1.0\r\n";
        $http_request .= "Host: $host\r\n";
        $http_request .= "Content-Type: application/x-www-form-urlencoded;\r\n";
        $http_request .= "Content-Length: " . strlen($req) . "\r\n";
        $http_request .= "User-Agent: reCAPTCHA/PHP\r\n";
        $http_request .= "\r\n";
        $http_request .= $req;
		
		$response = '';
		if ($usa_proxy) {
			if (!empty($proxy_username)) {
				$auth_string = base64_encode($proxy_username . ($proxy_password != '' ? ":{$proxy_password}" : ''));
				$http_request .= "Connection: close\r\n";
				if ( !empty($auth_string ) ) $http_request .= "Proxy-Authorization: Basic {$auth_string}\r\n";
			}
			if( false == ( $fs = @fsockopen($proxy_host, $proxy_port, $errno, $errstr, 10) ) ) {
                klog2('fsockopen_error', $errstr);
				die ('Could not open socket');
			} 
		} else {
			 if( false == ( $fs = @fsockopen($host, $port, $errno, $errstr, 10) ) ) {
                klog2('fsockopen_error', $errstr);
				die ('Could not open socket');
			} 
		}
		
        fwrite($fs, $http_request);

        while ( !feof($fs) )
                $response .= fgets($fs, 1160); // One TCP-IP packet
        fclose($fs);
        $response = explode("\r\n\r\n", $response, 2);

        return $response;
}

quedo a la espera de los logs. saludos.

¡Hola de nuevo! Hice lo que me han indicado y me aparece el siguiente error:

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

clase: kernel\error_kernel
mensaje: SHUTDOWN
traza: [TRAZA]

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

  • function: kernel\nucleo\acceso_web::shutdown
  • file: /usr/local/proyectos/guarani/g3w2/2.8.1/2.8.1/src/siu/lib/kernel/nucleo/acceso_web.php, linea 166

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

================================================================================
================================= WARNINGS =================================

WARNING
Archivo: /usr/local/proyectos/guarani/g3w2/2.8.1/2.8.1/src/siu/lib/recaptcha/recaptchalib.php
Linea: 100
fsockopen(): unable to connect to www.google.com:80 (Connection timed out)

================================================================================
=============================== INFO basica ================================

MEMORIA 1.62 Mb


CRONOMETRO

pre-cache [sistema::version_base_valida] 0.001 seg
post-cache 0.000 seg

TOTAL 0.001 seg

================================================================================
================================ nivel INFO ================================

– EJECUTANDO ACCION ‘siu\operaciones\acceso\controlador::accion__recuperar’ -

================================================================================
================================== DEBUG ===================================

– UA ------------------------------------------------------------------------

ESD

– ALIAS ---------------------------------------------------------------------

/juridicas

– CATALOGO: sistema/version_base_valida | cache [true] - tipo [memoria] -----

Array
(
[parametros] => Array
(
[conversion] => CNV2.08.1-11
[creacion] =>
)

[metadata] => Array
    (
        [parametros] => Array
            (
                [0] => conversion
                [1] => creacion
            )

        [param_null] => Array
            (
                [0] => creacion
            )

        [no_quote] => Array
            (
                [0] => conversion
                [1] => creacion
            )

        [cache] => memoria
    )

[force_cache] => Array
    (
    )

)

– ADMIN CACHE ---------------------------------------------------------------

: instanciando: memoria_apc

– CATALOGO CACHE DATOS ------------------------------------------------------

1

– fsockopen_error -----------------------------------------------------------

Connection timed out

–F<0>:E<1>:W<1>:T<0.001 s>:M<1.62 Mb>–
–REXCAT_CMET<version_base_valida>MEDAT<0.000>–

¿qué podrá ser?

Hola, pregunta, ustedes usan firewall/proxy? acceden al 3W vía HTTP o HTTPS? este error les ocurre siempre o de vez en cuando?

Saludos.

¡Hola! en respuesta a la pregunta no utilizamos firewall/proxy y accedemos al 3W a través del HTTPS. El error ha aparecido para el lanzamiento digamoslo asì de esta versión. Está montado en Debian 6.

Mas alla del error, cuando puedan versionen a 2.8.3. Solo hay cambios en la interfaz web, no es necesario aplicar cambios en la base ni en gestion (power builder).

Hola, el error se puede deber a que usan HTTPS, en la 2.8.1 no esta preparado para usar el CAPTCHA vía HTTPS (en la 2.9.1 si lo esta). Prueben modificando en el archivo src/siu/operaciones/acceso/controlador.php función get_html_recaptcha, donde dice $html .= recaptcha_get_html($public_key, $error); reemplazar por $html .= recaptcha_get_html($public_key, $error, true);


                protected function get_html_recaptcha($public_key, $error)
	        {
	                $html  = '<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head>';
	                $html .= '<body>';
	                $html .= recaptcha_get_html($public_key, $error, true);
                        ..................

si con eso se soluciona busca en que otras partes del proyecto se esta usando la función get_html_recaptcha() y aplicale la misma modificación.

saludos.

¡Hola! Hemos verificado esto de nuevo y sigue ocurriendo el mismo error. Realmente no encontramos el error.

Hola, revisemos lo siguiente:

  • en el archivo src/siu/operaciones/acceso/controlador.php función get_html_recaptcha reemplazar $html .= recaptcha_get_html($public_key, $error); por $html .= recaptcha_get_html($public_key, $error, true);
  • en el archivo src/siu/lib/recaptcha/recaptchalib.php donde se usa la funcion @fsockopen al host ponerle la función gethostbyname quedaría @fsockopen(gethostbyname($host), […], si con esto no funciona se puede probar incrementado el timeout a por ejemplo 30 segundos, quedaría @fsockopen(gethostbyname($host), $port, $errno, $errstr, 30)
  • chequear que la extensión openssl este instalada (correr el comando php -m y ver si la lista)

para mas información lee este post

Fijence si con alguno de esos cambios funciona. También les pediría que se aseguren que no están usando proxy y que me vuelvan a enviar los logs que genera luego de aplicar las sugerencias que les envié. saludos.