ID:               16939
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
 Status:           Open
 Bug Type:         Reproducible crash
 Operating System: linux
 PHP Version:      4.2.0
 New Comment:

Workaround:

Original code did this
$this->tokens = token_get_all($filename)

by not reassigning the same variable on each file, but rather really
storing the token array in a huge array it works around this issue...
(albiet with a huge memory overhead)
  
$this->all_tokens[$filename] = token_get_all($contents);
$this->tokens =& $this->all_tokens[$filename];


Previous Comments:
------------------------------------------------------------------------

[2002-05-01 02:40:23] [EMAIL PROTECTED]

A short script to reproduce this
(sorry it not to easy to reproduce without the exact code, I did at one
point get to the situation where adding a extra space in the white
space area solved this!), but I suspect it is that the machine is
running low on memory or something....

http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/phpmole-ide/phpmole/tools/uml_generator.class?rev=1.2&content-type=text/vnd.viewcvs-markup


http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/phpmole-ide/phpmole/tools/uml_dia.xml.php?rev=1.1&content-type=text/vnd.viewcvs-markup


-- just use it do do a large number of files. eg.
php uml_generator.class /usr/local/php/pear/

Possible reasons that I could think of:
-the tokenizer extension (which may be leaking memory)
-somewhere not exiting if no memory can be allocated and then emalloc /
malloc being called again.

Configuration on this machine (4.2.0RC2), also reproduced with 4.2
release version
'./configure' '--prefix=/usr' '--without-mysql'
'--with-config-file-path=/etc/php4/cgi/' '--enable-dba' '--with-db2'
and tokenizer as a dl'd module

Backtrace

Program received signal SIGSEGV, Segmentation fault.
0x4014db2b in malloc () from /lib/libc.so.6
(gdb) bt
#0  0x4014db2b in malloc () from /lib/libc.so.6
#1  0x4014d1e4 in malloc () from /lib/libc.so.6
#2  0x80c4c5c in _emalloc (size=35) at zend_alloc.c:165
#3  0x80d4b1a in zend_hash_index_update_or_next_insert (ht=0x817ae9c,
h=207, 
    pData=0xbfffda28, nDataSize=4, pDest=0x0, flag=4) at
zend_hash.c:404
#4  0x80d303a in add_next_index_stringl (arg=0x8326d64, str=0x8268c08
")", length=1, 
    duplicate=1) at zend_API.c:847
#5  0x401ffc61 in tokenize () from /usr/lib/php4/cgi/tokenizer.so
#6  0x402005ac in zif_token_get_all () from
/usr/lib/php4/cgi/tokenizer.so
#7  0x80eb4b0 in execute (op_array=0x816631c) at ./zend_execute.c:1598
#8  0x80eb679 in execute (op_array=0x8166a84) at ./zend_execute.c:1638
#9  0x80eb679 in execute (op_array=0x816004c) at ./zend_execute.c:1638
#10 0x80d19e8 in zend_execute_scripts (type=8, retval=0x0,
file_count=3) at zend.c:810
#11 0x805e1dd in php_execute_script (primary_file=0xbffffb98) at
main.c:1381
#12 0x805c0ac in main (argc=3, argv=0xbffffc14) at cgi_main.c:785
#13 0x400f86cf in __libc_start_main () from /lib/libc.so.6



------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=16939&edit=1

Reply via email to