|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2009-07-27 10:26 UTC] gopalv82 at yahoo dot com
[2010-08-05 04:54 UTC] andrea at bhweb dot it
[2016-08-31 15:17 UTC] cmb@php.net
-Status: Open
+Status: Wont fix
-Assigned To:
+Assigned To: cmb
[2016-08-31 15:17 UTC] cmb@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Fri Nov 07 01:00:01 2025 UTC |
Description: ------------ Only on one position in my script all [require|include]_once calls will be ignored: I'm running php5.3-200907240630 with the following APC: APC Support => enabled Version => 3.1.3-dev MMAP Support => Enabled MMAP File Mask => /tmp/apc.cqTqpy Locking type => pthread mutex Locks Revision => $Revision: 284590 $ Build Date => Jul 24 2009 11:06:59 Directive => Local Value => Master Value apc.cache_by_default => On => On apc.canonicalize => On => On apc.coredump_unmap => Off => Off apc.enable_cli => On => On apc.enabled => On => On apc.file_md5 => Off => Off apc.file_update_protection => 2 => 2 apc.filters => no value => no value apc.gc_ttl => 3600 => 3600 apc.include_once_override => On => On apc.lazy_classes => Off => Off apc.lazy_functions => Off => Off apc.max_file_size => 1M => 1M apc.mmap_file_mask => /tmp/apc.cqTqpy => /tmp/apc.cqTqpy apc.num_files_hint => 1024 => 1024 apc.preload_path => no value => no value apc.report_autofilter => Off => Off apc.rfc1867 => Off => Off apc.rfc1867_freq => 0 => 0 apc.rfc1867_name => APC_UPLOAD_PROGRESS => APC_UPLOAD_PROGRESS apc.rfc1867_prefix => upload_ => upload_ apc.rfc1867_ttl => 3600 => 3600 apc.shm_segments => 1 => 1 apc.shm_size => 128 => 128 apc.stat => On => On apc.stat_ctime => Off => Off apc.ttl => 7200 => 7200 apc.use_request_time => On => On apc.user_entries_hint => 4096 => 4096 apc.user_ttl => 7200 => 7200 apc.write_lock => On => On NOTE 1: If I disable apc.include_once_override than it works. NOTE 2: If I change apc_zend.c to following this works, too. But it is not a good work: if (zend_hash_exists(&EG(included_files), realpath, strlen(realpath) + 1)) { // added line return apc_original_opcode_handlers[APC_OPCODE_HANDLER_DECODE(opline)](ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); if (!(opline->result.u.EA.type & EXT_TYPE_UNUSED)) { ALLOC_INIT_ZVAL(APC_EX_T(opline->result.u.var).var.ptr); ZVAL_TRUE(APC_EX_T(opline->result.u.var).var.ptr); } if (inc_filename == &tmp_inc_filename) { zval_dtor(&tmp_inc_filename); } if (freeop1) { zval_dtor(freeop1); } execute_data->opline++; return 0; } NOTE3: If I write an apc_delete_file('.../init.inc.php'); before require_once it works. But if I remove this line the problem continue. Reproduce code: --------------- index.php: <?php require_once('.../init_web.inc.php'); // ... init_web.inc.php: <?php require_once '.../init.inc.php'; die(__FILE__); // ... init.inc.php: <?php die(__FILE__); // ... Expected result: ---------------- .../init.inc.php Actual result: -------------- .../init_web.inc.php