[horde] [kronolith] Errors after upgrade to pecl_http 2 / Horde_Http 2.1.1
Jens-U. Mozdzen
jmozdzen at nde.ag
Mon May 26 13:54:13 UTC 2014
Hi all,
Zitat von Jan Schneider <jan at horde.org>:
> Zitat von Simon Wilson <simon at simonandkate.net>:
>
>> ----- Message from Jan Schneider <jan at horde.org> ---------
>> [...]
>>> Zitat von simon at simonandkate.net:
>>>
>>>>> On 21 May 2014, at 7:55 pm, Simon Wilson <simon at simonandkate.net> wrote:
>>>>>
>>>>>
>>>>> Title / email copied from osdir email exchange...
>>>>>
>>>>> Original email exchange:
>>>>>
>>>>> After the recent upgrades to Horde_Http and pecl_http our users
>>>>> can not add
>>>>> attendees to an event in Kronolith. In basic view an empty page is shown
>>>>> where the f/b info should be displayed, while dynamic view gives
>>>>> an "Error
>>>>> when communicating with the server."
>>>>>
>>>>> The Apache (Debian Apache/2.2.22, PHP/5.4.4) log file shows:
>>>>>
>>>>> "PHP Fatal error: Undefined constant 'http\\Client\\Curl\\AUTH_ANY' in
>>>>> /usr/share/php/Horde/Http/Request/Factory.php on line 29"
>>>>>
>>>>> There is no such constant on this line.
just for the records: I do have the exact same error messages here.
What's interesting: This happens at random when using IMP dynamic view
to preview emails - some trigger the bug, some don't.
The constants are in /usr/share/php5/PEAR/Horde/Http/Request/Peclhttp2.php
--- cut here ---
protected $_httpAuthSchemes = array(
Horde_Http::AUTH_ANY => \http\Client\Curl\AUTH_ANY,
Horde_Http::AUTH_BASIC => \http\Client\Curl\AUTH_BASIC,
Horde_Http::AUTH_DIGEST => \http\Client\Curl\AUTH_DIGEST,
Horde_Http::AUTH_GSSNEGOTIATE => \http\Client\Curl\AUTH_GSSNEG,
Horde_Http::AUTH_NTLM => \http\Client\Curl\AUTH_NTLM,
);
--- cut here ---
Changing one line makes the next one break.
>>>>> Is this a bug or is my PEAR or pecl installation somehow messed up? Any
>>>>> other hints on diagnosing this behaviour?
What bothers me is: I've installed (over and over again)
pecl_http-2.0.6.tar, and looking at it's source code, I can see that
these constants are to be registered:
--- cut here ---
# grep -r AUTH_ANY pecl_http-2.0.6/
...
pecl_http-2.0.6/php_http_client_curl.c:
REGISTER_NS_LONG_CONSTANT("http\\Client\\Curl", "AUTH_ANY",
CURLAUTH_ANY, CONST_CS|CONST_PERSISTENT);
--- cut here ---
But checking the freshly generated http.so file, I see no trace of
those constants:
--- cut here ---
# grep AUTH_ /usr/lib64/php5/extensions/http.so
#
--- cut here ---
It is as if the file didn't get compiled or the macro
"REGISTER_NS_LONG_CONSTANT()" acted as a noop?!? The build log of the
PECL package shows no hint that anything went wrong:
--- cut here ---
/bin/sh /tmp/pear/temp/pear-build-rootCnSczq/pecl_http-2.0.6/libtool
--mode=compile gcc -std=gnu99 -I. -I/tmp/pear/temp/pecl_http
-DPHP_ATOM_INC
-I/tmp/pear/temp/pear-build-rootCnSczq/pecl_http-2.0.6/include
-I/tmp/pear/temp/pear-build-rootCnSczq/pecl_http-2.0.6/main
-I/tmp/pear/temp/pecl_http -I/usr/include/php5
-I/usr/include/php5/main -I/usr/include/php5/TSRM
-I/usr/include/php5/Zend -I/usr/include/php5/ext
-I/usr/include/php5/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c
/tmp/pear/temp/pecl_http/php_http_client_curl.c -o
php_http_client_curl.lo
libtool: compile: gcc -std=gnu99 -I. -I/tmp/pear/temp/pecl_http
-DPHP_ATOM_INC
-I/tmp/pear/temp/pear-build-rootCnSczq/pecl_http-2.0.6/include
-I/tmp/pear/temp/pear-build-rootCnSczq/pecl_http-2.0.6/main
-I/tmp/pear/temp/pecl_http -I/usr/include/php5
-I/usr/include/php5/main -I/usr/include/php5/TSRM
-I/usr/include/php5/Zend -I/usr/include/php5/ext
-I/usr/include/php5/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c
/tmp/pear/temp/pecl_http/php_http_client_curl.c -fPIC -DPIC -o
.libs/php_http_client_curl.o
--- cut here ---
Nothing else points to an error in the remainder of that log either.
>>>> [...]
>>>> Any ideas? Should I log a bug report?
>>>>
>>>> Simon
>>>
>>> No, because it still doesn't make any sense. The file that
>>> triggers the error is only loaded if the \http\Client class
>>> exists, which only exists in pecl_http 2. And this version always
>>> contains the constant that PHP complains about. So you must have
>>> either a completely broken PHP, BC cache or PECL extensions.
>>> Neither is anything that Horde has to do with.
>> [...]
>> Pecl_http is 2.0.6, has been uninstalled and reinstalled, along
>> with raphf 1.0.4 and propro 1.0.0.
>> PHP is 5.3.28 and works fine for everything else... and has done
>> every time I've been told before that 'your php is broken' and it's
>> proven to be bugs in other packages... :-/
I've done the reinstall steps as well, without any success.
>> Cache is xcache, and also works fine for everything else.
No cache that I know of is (yet) running here.
Regards,
Jens
More information about the horde
mailing list