PHP 4.0 Bug #9857 Updated: define("named_constant")
| From: | shmengie_2000 at yahoo dot com | Date: | Mon, 09 Apr 2001 07:26:00 +0000 |
| Subject: | PHP 4.0 Bug #9857 Updated: define("named_constant") | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-51169@lists.php.net to get a copy of this message | ||
ID: 9857
User Update by: shmengie_2000@yahoo.com
Old-Status: Open
Status: Closed
Bug Type: IIS related
Description: define("named_constant")
Making this change in oci8.c
#ifdef ZTS
#define PHP_OCI_INIT_MODE OCI_DEFAULT
/* OCI_DEFAULT was OCI_THREADED on the above line*/
#else
#define PHP_OCI_INIT_MODE OCI_DEFAULT
#endif
Now the defined() does not have a problem. This makes me reasonably sure that it is OCI8 walking on
other memory. By changing OCI_THREADED to OCI_DEFAULT oci does not use it's own memory sharing
features in threaded environments.
This removes any benifit that may be gained by a threaded environment, but also cause PHP not to
crash. I find the PHP not crashing much more productive. ;-)
Will have to work on OCI source to take advantage of threaded environments. Think it will be a
major re-write of OCI8.c for this, because other attemts of a quick source fix have been
unsuccessful.
For now, this works.
joebrown
podiatryfl.com
Previous Comments:
---------------------------------------------------------------------------
[2001-04-07 17:29:17] sniper@php.net
User feedback:
--------------
I'm using the latest snapshot's on win32.
Getting some needed practice with MSVC...
I think the problem is that OCI is walking on TSRM
local storage. I haven't been able to verify it, but
my gut says it's so.
---------------------------------------------------------------------------
[2001-04-06 23:57:54] sniper@php.net
Are you using PHP 4.0.1? If so, could you please try
with the latest release, 4.0.4pl1?
--Jani
---------------------------------------------------------------------------
[2001-03-29 01:34:23] shmengie_2000@yahoo.com
Taking a shot in the dark, hoping this bug comes to sombody who "knows" attention.
Prior comments are somewhat misleading. I'm using OCI8, and also Manuel Lemos' Metabase.
Parusing through the source, I've noticed that there are some constants defined for OCI8 (which
are documented):
eg:
REGISTER_LONG_CONSTANT("OCI_DEFAULT",OCI_DEFAULT, CONST_CS | CONST_PERSISTENT);
I question this CONST_PERSISTENT value. Is it possible that the persistence is helping non
persistent constants (in the php code) strattle the void between pages?
BTW: what does _zval_dtor in the source mean? Specifically, "dtor"
---------------------------------------------------------------------------
[2001-03-26 17:46:42] shmengie_2000@yahoo.com
A define on php4isapi has a tendency to bleed over to the next page load. refresh and a completely
different page have retain a defined constant.
eg:
test1.php
<?
define("anything",1);
echo (defined("anything")?"anything defined":"anything not defined");
?>
test2.php
echo (defined("anything")?"anything defined":"anything not defined");
after pointing browser at test1.php
test 2.php contains "anything defined", instead of "not"
---------------------------------------------------------------------------
[2001-03-20 01:15:49] shmengie_2000@yahoo.com
With this code at the top of an include file, the results are unpretictable.
if(!defined("METABASE_MYSQL_INCLUDED"))
{
define("METABASE_MYSQL_INCLUDED",1);
...rest of include file...
}
require_once(); seems to work though.
---------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view the rest of the comments,
please view the bug report online.
Full Bug description available at: http://bugs.php.net/?id=9857