ID:               38950
 Updated by:       [EMAIL PROTECTED]
 Reported By:      pavel dot stratil-jun at fenix dot cz
-Status:           Open
+Status:           Feedback
 Bug Type:         *Encryption and hash functions
 Operating System: gentoo (amd64smp)
 PHP Version:      5.1.6
 New Comment:

>but streaming hashing still fails on large files (the 
>script timeouts for real after max_execution_time even on
> relatively small files, compared to the first tests - i.e.
>200MB)

Please elaborate.

>many compile failures when trying to build with some
> common extensions such as imap (against imap2006) or
> mysqli (5.1.11).

Please report them as separate issues.


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

[2006-09-26 12:45:31] pavel dot stratil-jun at fenix dot cz

seems that the problem is in

    $fp = fopen('test', "r");
    $ctx = hash_init('sha512');
    while (!feof($fp)) {
        hash_update($ctx, fgets($fp, 4096));
    }
    $uplo_mhash = hash_final($ctx);
    fclose($fp);

when calling the script from apache. When running from shell the
problem disappears completely. In apache the premature timeout problem
disappeared in the snapshot version, but streaming hashing still fails
on large files (the script timeouts for real after max_execution_time
even on relatively small files, compared to the first tests - i.e.
200MB). Hash_file() seems to work flawlesly. When going towards smaller
files, streaming hashing catches on and is about 60% the speed of
hash_file.

Tried this with apache 2.2.2 and 2.2.3 with modified as well as
distribution configurations with the same result.


tested on 
php5.2-200609261030
./configure --prefix=${PHP_PATH} --with-apxs2=${APACHE_PATH}/bin/apxs
gmake      # ok
gmake test # failed in 4 tests

# Test for buffering in core functions with implicit flush off
[tests/func/008.phpt]
# Bug #16069 [ext/iconv/tests/bug16069.phpt]
#iconv stream filter [ext/iconv/tests/iconv_stream_filter.phpt]
# Math constants [ext/standard/tests/math/constants.phpt]

ps: dont know how far the development of php 5.2 is but i was getting
many compile failures when trying to build with some common extensions
such as imap (against imap2006) or mysqli (5.1.11).

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

[2006-09-26 09:13:41] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php5.2-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5.2-win32-latest.zip



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

[2006-09-25 15:01:51] pavel dot stratil-jun at fenix dot cz

Description:
------------
when trying to hash large files (cant say yet how large, but a 800MB
file was hashed without problems but a 1300MB file not), the script
times out after about 1 minute even if max. execution time is set to
half an hour. smaller files, such as the 800MB file were successfully
hashed a few times using different hashing methods (in total the script
took about 4 minutes to run).

Reproduce code:
---------------
// tried both:

    $fp = fopen('file.ext', "r");
    $ctx = hash_init('sha512');
    while (!feof($fp)) {
        hash_update($ctx, fgets($fp,$bytes));
    }
    $res_hash = hash_final($ctx);  // this would be line 58
    fclose($fp);

// and

    hash_file('sha512', 'file.ext'); // this would be line 67

// $bytes were set to anywhere from 4kB to 32MB.. same result all the
time

Expected result:
----------------
obviously, a hash.

Actual result:
--------------
Fatal error:  Maximum execution time of 1800 seconds exceeded in
/opt/apache/htdocs/hashtest.php on line 58.

or

Fatal error:  Maximum execution time of 1800 seconds exceeded in
/opt/apache/htdocs/hashtest.php on line 67.

depending what piece of code was commented.


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


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

Reply via email to