Bug 1283153

Summary: sporadic failures with blocking I/O under SSL/TLS
Product: Red Hat Enterprise Linux 6 Reporter: Ingo Weiss <iweiss>
Component: phpAssignee: Web Stack Team <webstack-team>
Status: CLOSED ERRATA QA Contact: David Jež <djez>
Severity: high Docs Contact:
Priority: high    
Version: 6.7CC: bnater, djez, jorton, mmillson, mmusaji, rcollet, rsawhill, socallag, thozza, webstack-team
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-03-21 11:54:05 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On:    
Bug Blocks: 1269194, 1359263    
Attachments:
Description Flags
PHP reproducer none

Description Ingo Weiss 2015-11-18 11:52:44 UTC
Created attachment 1095984 [details]
PHP reproducer

Description of problem: A PHP page or script which uses php-soap to connect to a remote web service over HTTPS fails sporadically with no indication on the remote side

Version-Release number of selected component (if applicable):
$ rpm -qa | grep php    
php-soap-5.3.3-46.el6_6.x86_64
php-pdo-5.3.3-46.el6_6.x86_64
php-pear-1.9.4-4.el6.noarch
php-cli-5.3.3-46.el6_6.x86_64
php-xml-5.3.3-46.el6_6.x86_64
php-common-5.3.3-46.el6_6.x86_64

How reproducible: Every time

Steps to Reproduce:
1. Unpack and run JBoss EAP using bin/standalone.sh -b 0.0.0.0 -bmanagement=0.0.0.0 -c standalone.xml
2. From another machine run php run.php. For quicker reproducing, run multiple sessions
3. Wait

Actual results: 

1326: 11:49:19.16247500 - 11:49:19.25750200
1327: 11:49:19.55758700 - 11:49:19.65024400
1328: 11:49:19.95033400PHP Fatal error:  SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://peterp.usersys.redhat.com:8443/jboss-helloworld-ws/HelloWorldS
ervice?wsdl' : failed to load external entity "https://peterp.usersys.redhat.com:8443/jboss-helloworld-ws/HelloWorldService?wsdl"
 in /home/ingo/run.php on line 14
SoapFault Object
(
    [message:protected] => SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://peterp.usersys.redhat.com:8443/jboss-helloworld-ws/HelloWorldService?wsdl' :
 failed to load external entity "https://peterp.usersys.redhat.com:8443/jboss-helloworld-ws/HelloWorldService?wsdl"

    [string:Exception:private] =>
    [code:protected] => 0
    [file:protected] => /home/ingo/run.php
    [line:protected] => 14
    [trace:Exception:private] => Array
        (   
            [0] => Array
                (   
                    [file] => /home/ingo/run.php
                    [line] => 14
                    [function] => SoapClient
                    [class] => SoapClient
                    [type] => ->
                    [args] => Array
                        (   
                            [0] => https://peterp.usersys.redhat.com:8443/jboss-helloworld-ws/HelloWorldService?wsdl
                            [1] => Array
                                (   
                                    [trace] => 1
                                    [exceptions] => 1
                                    [compression] => 1
                                )

                        )

                )

        )

    [previous:Exception:private] =>
    [faultstring] => SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://peterp.usersys.redhat.com:8443/jboss-helloworld-ws/HelloWorldService?wsdl' : failed to load external entity "https://peterp.usersys.redhat.com:8443/jboss-helloworld-ws/HelloWorldService?wsdl"

    [faultcode] => WSDL
)
 - 11:49:20.00243400
1329: 11:49:20.30254200 - 11:49:20.40187500
1330: 11:49:20.70196000 - 11:49:20.80006700


Expected results: No exceptions or connection errors

Additional info:

Comment 8 Mike Millson 2016-03-31 17:03:33 UTC
I see here:
http://stackoverflow.com/questions/33121809/mantis-soap-error-accessing-mantisconnect-php-eclipse-mylyn-plugin

This workaround of disabling soap.wsdl_cache_enabled in php.ini as follows:
ini_set('soap.wsdl_cache_enabled', '0'); 
ini_set('soap.wsdl_cache_ttl', '0'); 

Can someone verify whether or not that is a valid workaround?

Comment 9 Mike Millson 2016-03-31 17:08:01 UTC
I see now this is for disabling caching in the php code, not php.ini[1].

<?php
ini_set('soap.wsdl_cache_enabled', '0');
ini_set('soap.wsdl_cache_ttl', '0');
?> 

[1]http://php.net/manual/en/soap.configuration.php

Comment 24 errata-xmlrpc 2017-03-21 11:54:05 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2017-0787.html