Bug #64214 [Com]: PHAR PHPTs intermittently crash when run on DFS or SMB

From: Date: Fri, 24 May 2013 21:24:16 +0000
Subject: Bug #64214 [Com]: PHAR PHPTs intermittently crash when run on DFS or SMB
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-179127@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=64214&edit=1

 ID:                 64214
 Comment by:         mattficken@php.net
 Reported by:        mattficken@php.net
 Summary:            PHAR PHPTs intermittently crash when run on DFS or
                     SMB
 Status:             Assigned
 Type:               Bug
 Package:            PHAR related
 Operating System:   Windows
 PHP Version:        5.5.0alpha4
 Assigned To:        pajoye
 Block user comment: N
 Private report:     N

 New Comment:

I haven't seen this bug repro on any recent 5.3, 5.4, or 5.5 snapshot builds.

I think this bug is fixed.


I have added a documentation note about the importance of setting the sys_temp_dir
directive, especially when using remote file systems: http://us3.php.net/manual/en/book.phar.php


Previous Comments:
------------------------------------------------------------------------
[2013-05-17 09:52:47] pajoye@php.net

I think I found all locations causing these crashes. Matt, let me know once the 
last serie of tests pass (stress and compat) so we can close it :)

------------------------------------------------------------------------
[2013-05-14 22:34:06] pajoye@php.net

Crashes should be fixed by now (testing) but the reason why tmp files creations 
fail has to be analyzed and fixed as well. Assigned to me.

------------------------------------------------------------------------
[2013-02-27 10:35:49] user at kkdf2 dot sakura dot ne dot jp

About NAS, it may be possible.

For example,
My company's NAS Buffalo Ls-L series freezes sometimes when I try simultaneous client accesses.
It seems that NAS exhausts its ram memory by operating multiple file requests.

------------------------------------------------------------------------
[2013-02-14 23:52:25] mattficken@php.net

Description:
------------
I am running PHPT tests on an SMB file share (and also sometimes DFS) served by a remote file
server. The share is mounted to a local drive (H:) on Windows. This issue occurs on Windows 7,
Vista, 2008, 2008r2, 8, 2012, x64 and x86 (I am using the PHP on Windows binary build from
windows.php.net without any modification).

When I run these 2 PHAR tests, sometimes, they crash:
ext/phar/tests/zip/phar_commitwrite.phpt
ext/phar/tests/tar/phar_setsignaturealgo2.phpt

See attached BTs.

If I add additional traffic to the network or file server (ex: download a big file on another
computer), the crashes happen more frequently. Even then, I'm only adding max ~10MiB/S to
network or file server which isn't really heavy load.

The file access times on the share are still pretty normal (fraction of a second max, to read a PHPT
file, so the network or file server is never heavily loaded).

I believe this is a time issue that is load induced.


Actual result:
--------------
ext/phar/tests/zip/phar_commitwrite.phpt
               php5ts.dll!_php_stream_write(_php_stream * stream, const char * buf, unsigned int
count, void * * * tsrm_ls)  Line 1233 + 0x10 bytes              C
              php5ts.dll!phar_zip_flush(_phar_archive_data * phar, char * user_stub, long len, int
defaultstub, char * * error, void * * * tsrm_ls)  Line 1304 + 0x18 bytes         C
              php5ts.dll!phar_flush(_phar_archive_data * phar, char * user_stub, long len, int
convert, char * * error, void * * * tsrm_ls)  Line 2601 + 0x18 bytes           C
              php5ts.dll!phar_add_file(_phar_archive_data * * pphar, char * filename, int
filename_len, char * cont_str, int cont_len, _zval_struct * zresource, void * * * tsrm_ls)  Line
3737 + 0x11 bytes    C
              php5ts.dll!zim_Phar_offsetSet(int ht, _zval_struct * return_value, _zval_struct * *
return_value_ptr, _zval_struct * this_ptr, int return_value_used, void * * * tsrm_ls)  Line 3818 +
0x14 bytes     C
              php5ts.dll!zend_call_function(_zend_fcall_info * fci, _zend_fcall_info_cache *
fci_cache, void * * * tsrm_ls)  Line 959 + 0x1f bytes           C
              php5ts.dll!zend_call_method(_zval_struct * * object_pp, _zend_class_entry * obj_ce,
_zend_function * * fn_proxy, const char * function_name, int function_name_len, _zval_struct * *
retval_ptr_ptr, int param_count, _zval_struct * arg1, _zval_struct * arg2, void * * * tsrm_ls)  Line
97 + 0x14 bytes           C
              php5ts.dll!zend_std_write_dimension(_zval_struct * object, _zval_struct * offset,
_zval_struct * value, void * * * tsrm_ls)  Line 678 + 0x1e bytes C
              php5ts.dll!ZEND_ASSIGN_DIM_SPEC_CV_CONST_HANDLER(_zend_execute_data * execute_data,
void * * * tsrm_ls)  Line 32607 + 0xbc bytes               C
 
ext/phar/tests/tar/phar_setsignaturealgo2.phpt
 
               php5ts.dll!user_wrapper_opener(_php_stream_wrapper * wrapper, char * filename, char *
mode, int options, char * * opened_path, _php_stream_context * context, void * * * tsrm_ls)  Line
346 + 0x2f bytes               C
              php5ts.dll!_php_stream_open_wrapper_ex(char * path, char * mode, int options, char * *
opened_path, _php_stream_context * context, void * * * tsrm_ls)  Line 2054 + 0x24 bytes  C
              php5ts.dll!php_if_fopen(int ht, _zval_struct * return_value, _zval_struct * *
return_value_ptr, _zval_struct * this_ptr, int return_value_used, void * * * tsrm_ls)  Line 869 +
0x1a bytes       C
              php5ts.dll!phar_fopen(int ht, _zval_struct * return_value, _zval_struct * *
return_value_ptr, _zval_struct * this_ptr, int return_value_used, void * * * tsrm_ls)  Line 418 +
0x22 bytes       C
              php5ts.dll!zend_do_fcall_common_helper_SPEC(_zend_execute_data * execute_data, void *
* * tsrm_ls)  Line 542 + 0x5e bytes             C
              php5ts.dll!ZEND_DO_FCALL_SPEC_CONST_HANDLER(_zend_execute_data * execute_data, void *
* * tsrm_ls)  Line 2305 + 0xb bytes C
              php5ts.dll!execute_ex(_zend_execute_data * execute_data, void * * * tsrm_ls)  Line 356
+ 0xa bytes     C
              php5ts.dll!zend_execute(_zend_op_array * op_array, void * * * tsrm_ls)  Line 381 +
0x1bc bytes     C
              php5ts.dll!zend_execute_scripts(int type, void * * * tsrm_ls, _zval_struct * * retval,
int file_count, ...)  Line 1317               C
              php5ts.dll!php_execute_script(_zend_file_handle * primary_file, void * * * tsrm_ls) 
Line 2478 + 0x12 bytes       C
              php5apache2_4.dll!php_handler(request_rec * r)  Line 667 + 0xe bytes        C
 



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



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


Thread (7 messages)

« previous php.bugs (#179127) next »