PEAR is discontinued

This is a static archive preserving historical releases and metadata. No new packages or updates will be published. For updates to existing packages, or to publish new packages, please use Composer and Packagist.

Home » PEAR » PEAR » Bug #5891

cannot upgrade/install package PEAR

Details

Submitted2005-11-08 10:24 UTC
Frommdv at inyourpocket dot com
StatusBogus
PackagePEAR
PHP Version5.0.5
OSDebian
Roadmaps(Not assigned)

Comments

[2005-11-08 10:24 UTC] mdv at inyourpocket dot com

Description:
------------
when i try install downloaded package PEAR or run command upgrade-all or upgrade PEAR pear consume all of my memory (see below) it's only for PEAR package

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
9632 root 17 0 1102m 472m 584 R 46.0 93.8 0:32.60 php

Test script:
---------------
Configuration (channel pear.php.net):
=====================================
Auto-discover new Channels auto_discover <not set>
Default Channel default_channel pear.php.net
HTTP Proxy Server Address http_proxy <not set>
PEAR server [DEPRECATED] master_server pear.php.net
Default Channel Mirror preferred_mirror pear.php.net
Remote Configuration File remote_config <not set>
PEAR executables directory bin_dir /usr/local/php/bin
PEAR documentation directory doc_dir /usr/local/php/lib/php/doc
PHP extension directory ext_dir /usr/local/php/lib/php/extensions/no-debug-non-zts-20041030
PEAR directory php_dir /usr/local/php/lib/php
PEAR Installer cache directory cache_dir /tmp/pear/cache
PEAR data directory data_dir /usr/local/php/lib/php/data
PHP CLI/CGI binary php_bin /usr/local/php/bin/php
PEAR test directory test_dir /usr/local/php/lib/php/test
Cache TimeToLive cache_ttl 3600
Preferred Package State preferred_state stable
Unix file mask umask 22
Debug Log Level verbose 1
PEAR password (for password <not set>
maintainers)
Signature Handling Program sig_bin /usr/bin/gpg
Signature Key Directory sig_keydir /usr/local/php/etc/pearkeys
Signature Key Id sig_keyid <not set>
Package Signature Type sig_type gpg
PEAR username (for username <not set>
maintainers)
User Configuration File Filename /root/.pearrc
System Configuration File Filename /usr/local/php/etc/pear.conf

PEAR Version: 1.4.2
PHP Version: 5.0.5
Zend Engine Version: 2.0.5
Running on: Linux system 2.4.20 #1 Wed Jan 1 18:31:58 CET 2003 i686

Expected result:
----------------
that package will upgrade or install new version

Actual result:
--------------
SIGSEGV or Terminated

[2005-11-11 09:01 UTC] mdv at inyourpocket dot com

in function PEAR_Downloader::download() in file PEAR/Downloader.php (about line 380)

foreach ($params as $i => $package) {
PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN);
$pf = &$params[$i]->download();

var_dump('here');
die('DEBUG');

PEAR::staticPopErrorHandling();
if (PEAR::isError($pf)) {

statement var_dump('here') and rest is never reached, so it looks that here is problem:

$params[$i]->download();

i can send you var_dump($params[$i]); (is about 1.5M unpacked)

[2005-11-13 07:21 UTC] mdv at inyourpocket dot com

pear install -Z PEAR:

Skipping package "pear/PEAR", already installed as version 1.4.2
No valid packages found
install failed

but pear upgrade -Z PEAR:

same as first (php get all of my memory)

and it's only PEAR package other packages installed with no problem (Mail, Mail_Mime installed and other upgraded from distro versions)

var_dump($params[$i]->getPackage(), $params[$i]->getVersion()) returns:

string(4) "PEAR"
string(5) "1.4.4"

i will try to determine the source of the problem

[2005-11-13 07:49 UTC] mdv at inyourpocket dot com

in PEAR/Downloader/Package.php function _fromUrl($param, $saveparam = '')

input are:
string(38) "http://pear.php.net/get/PEAR-1.4.4.tgz"
string(9) "pear/PEAR"

is code (about line 1387):
$pf = &$pkg->fromAnyFile($file, PEAR_VALIDATE_INSTALLING);
PEAR::popErrorHandling();

if i put between two lines above print_r($pf); - everything is ok (i have dump - 520k) but if i put var_dump($pf); - it hangs and code after (eg. PEAR::popErrorHandling(); and rest is not executed)

[2005-11-13 11:25 UTC] mdv at inyourpocket dot com

i transfered whole PEAR and php.ini to another machine and here was SIGSEGV so i put php in gdb and there is result (maybe it helps):

(gdb) set arg -C -q -d include_path=/usr/local/php/lib/php -d output_buffering=1 /usr/local/php/lib/php/pearcmd.php upgrade PEAR
(gdb) r
Starting program: /usr/local/php/bin/php -C -q -d include_path=/usr/local/php/lib/php -d output_buffering=1 /usr/local/php/lib/php/pearcmd.php upgrade PEAR
downloading PEAR-1.4.4.tgz ...
Starting to download PEAR-1.4.4.tgz (276,978 bytes)
.........................................................done: 276,978 bytes

Program received signal SIGSEGV, Segmentation fault.
0xb7c6112f in free () from /lib/tls/libc.so.6

backtrack:
#1 0xb7c62cec in malloc () from /lib/tls/libc.so.6
#2 0x081ac80f in _emalloc (size=3084056672) at /root/src/php-5.0.5/Zend/zend_alloc.c:183
#3 0x081c7bfe in _zend_hash_add_or_update (ht=0x99d7934, arKey=Variable "arKey" is not available.
) at /root/src/php-5.0.5/Zend/zend_hash.c:242
#4 0x081c7e2a in zend_hash_copy (target=0x99d7934, source=0x8a5d23c, pCopyConstructor=0x81d2000 <zval_add_ref_or_clone>, tmp=0x0, size=4) at /root/src/php-5.0.5/Zend/zend_hash.c:760
#5 0x081d20df in zend_objects_clone_members (new_object=0x99d7914, new_obj_val={handle = 23717, handlers = 0x827a880}, old_object=0x8a1230c, handle=61) at /root/src/php-5.0.5/Zend/zend_objects.c:139
#6 0x081d227c in zend_objects_clone_obj (zobject=0x3c) at /root/src/php-5.0.5/Zend/zend_objects.c:186
#7 0x081d2060 in zval_add_ref_or_clone (p=0x99d78c0) at /root/src/php-5.0.5/Zend/zend_objects.c:127
#8 0x081c7e3a in zend_hash_copy (target=0x99d74f4, source=0x8a223cc, pCopyConstructor=0x81d2000 <zval_add_ref_or_clone>, tmp=0x0, size=4) at /root/src/php-5.0.5/Zend/zend_hash.c:765
#9 0x081d20df in zend_objects_clone_members (new_object=0x99d74d4, new_obj_val={handle = 23716, handlers = 0x827a880}, old_object=0x8a25c24, handle=62) at /root/src/php-5.0.5/Zend/zend_objects.c:139
#10 0x081d227c in zend_objects_clone_obj (zobject=0x3c) at /root/src/php-5.0.5/Zend/zend_objects.c:186
#11 0x081d2060 in zval_add_ref_or_clone (p=0x99d7488) at /root/src/php-5.0.5/Zend/zend_objects.c:127
#12 0x081c7e3a in zend_hash_copy (target=0x99d7404, source=0x8a5d23c, pCopyConstructor=0x81d2000 <zval_add_ref_or_clone>, tmp=0x0, size=4) at /root/src/php-5.0.5/Zend/zend_hash.c:765
#13 0x081d20df in zend_objects_clone_members (new_object=0x99d73e4, new_obj_val={handle = 23715, handlers = 0x827a880}, old_object=0x8a1230c, handle=61) at /root/src/php-5.0.5/Zend/zend_objects.c:139
#14 0x081d227c in zend_objects_clone_obj (zobject=0x3c) at /root/src/php-5.0.5/Zend/zend_objects.c:186

[2005-11-14 06:48 UTC] mdv at inyourpocket dot com

zend.ze1_compatibility_mode = On

with zend.ze1_compatibility_mode = Off upgrade with no problems

so thank you for solution (little easy, isn't ? :))