La segunda llamada de jabón al servidor de jabón hecho a sí mismo hace que apache produzca una falla de segmento

Hola a todos. Me estoy rompiendo la cabeza con esto desde hace dos semanas.

El problema es que hice un servicio de jabón que parece funcionar bien. Cuando le pido que muestre sus funciones, las devuelve todas, etc. Pero cuando intento invocar dos funciones en el servidor, aparece un error de error de segmento:

'[aviso] child pid 13950 señal de salida Error de segmentación (11)'

Pero cuando invoco las dos funciones por separado, funcionan. Busqué esto en Google durante una semana y probé diferentes formatos de wsdl, pero lo único que surgió fue un posible error de php o algún error en el wsdl (lo que parece poco probable porque mi validador no puede encontrar errores).

El navegador me da esto en respuesta:

Error 324 (red::ERR_EMPTY_RESPONSE)

Actualmente estoy ejecutando la versión 5.3.6 de php y también probé la 5.2.17 para tratar de eliminar el posible error de php. Pero ambos dieron el mismo error.

Nadie aquí en la oficina sabe cómo arreglar esto porque 'todo debería estar bien'.
¿Alguien podría llevarme en la dirección correcta?

El cliente: (este código da el bloqueo de apache)

ini_set('soap.wsdl_cache_enabled', 0); 
ini_set('soap.wsdl_cache_ttl', 0);
try{
    $soap = new SoapClient("http://localhost/virtueleincasso.wsdl", array("exceptions" => 1));
    $password = $soap->virtuele_incasso_login('user', 'pass');       
    $status = $soap->get_status($password , 1060);
}catch (SoapFault $exception){
    echo $exception->faultstring;
}

El servidor:

ini_set('soap.wsdl_cache_enabled', 0); 
ini_set('soap.wsdl_cache_ttl', 0);
$server = new SoapServer(DIR_ROOT."/virtueleincasso.wsdl");
$server->setClass('PP_Api');
$server->handle();
die();

SOLUCIÓN: Usé una función die para detener la función del servidor que devolvía una cadena vacía. Lo arreglé cambiando esto a una función de salida.

preguntado el 03 de mayo de 12 a las 16:05

¿Fallos de segmentación de Apache? Es hora de p/strace, ¿no? Inícielo en un depurador y observe qué sucede exactamente. -

Voy a probar eso. Nuevo en esto de p/strace. Googleando ahora. -

También probaría en una máquina separada, en caso de que haya algún problema con el servidor en el que está obteniendo esto. -

1 Respuestas

Tuve un problema similar con varios procesos de PHP usando la extensión de jabón. Parece ser un error en la forma en que se maneja el almacenamiento en caché de WSDL. También probé deshabilitarlo con ini_set() llama como lo has hecho sin exito. Eventualmente encontré una solución en mi caso. Necesitaba configurar el cache_wsdl opción de WSDL_CACHE_NONE.

return new SoapClient("http://localhost/virtueleincasso.wsdl", array(
    "exceptions" => 1,
    "cache_wsdl" => WSDL_CACHE_NONE
));

respondido 09 mar '15, 21:03

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.