PHP 4.0 Bug #9477 Updated: Object is destroyed before references all released
| From: | passionplay at hotmail dot com | Date: | Thu, 08 Mar 2001 21:55:04 +0000 |
| Subject: | PHP 4.0 Bug #9477 Updated: Object is destroyed before references all released | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-48317@lists.php.net to get a copy of this message | ||
ID: 9477
User Update by: passionplay@hotmail.com
Old-Status: Feedback
Status: Open
Bug Type: Scripting Engine problem
Description: Object is destroyed before references all released
a) The comment I got in my eyes said there was nothing that was looked at.
b) I do open source work too.
c) I have tried over and over in the past to get things included in php that were overlooked for
almost 3 years until they finally got put in. Specifically detecting the different datatypes that
some of the databases generate as field types.
d) The URL I gave has a total of 4 files. 2 source files. And to active scripts that when run,
generate the results.
e) The one marked Normal, which completes with no errors, is obviously correct.
f) The other one fails.
g) There is only one line difference in the entire code.
i) I have a global object passed by reference that is then assigned to an array.
j) When this object reference in the array is set to nothing, the global object is destroyed.
k) If on the other hand I use a separate array to identify what array elements are defunt, the
object still exists.
l) If you ran the non-normal script by clicking on it, it would report the line where the error
occurred.
m) In my scripts, which unfortunately are part of another open source project, I have VERY CLEARLY
marked the section of the code that is different in each instance.
o) If someone is wading through 313 lines of code to find my bug, then they really didn't think
to click on the script, and I guess THAT is truly my REAL error as I did not specify that I had set
up two identical scripts with one line that is different such that one completes and the other fails
using the same algorithm, with one minor difference.
p) I'm just wondering whether anyone tried clicking on the scripts and saw what I indicated or
looked at the script in detail long enough to look at the offending line and the demarcated
difference in each case.
q) If my comments were interpreted as abusive, I apologize, but understand that when I have taken
all the steps outlined and someone still tells me they cannot reproduce the behavior, or they cannot
understand it, it tells me they didn't look at the problem. Had someone simply said, I
don't understand what's different, I wouldn't have felt like no one gave a damn to
even look at my bug report and had dropped it.
r) In the past my bug reports have been accompanied by no less than a full source code solution to
the error discovered and you'll have to pardon my disillusionment in providing a solution where
my answers are obviously ignored regardless of whether they are correct or not.
Bottom line: global object passed as a reference to a method and then assigned to an array which is
a member of another object. The second object is then requested to delete the reference to global
object. At the moment the reference in the array is deleted, the global object goes kaboom too.
You can see this in the scripts at that URL because I have each object serialized as output prior to
the error line as well as each object reporting it's operation so you can see where things are
running.
Did I miss anything in helping debug this issue or did I just do too much?
Previous Comments:
---------------------------------------------------------------------------
[2001-03-08 16:16:36] torben@php.net
I'm sure the bugs are very obvious to you. However, your bug report, as given, really is
pretty useless. Salient information would include: what results were you expecting,
compared to the results you got? What, exactly, did not work as you expected? And when
we say 'short' script, we really mean 'short'. Can you provide a quick, obvious,
and
hopefully <= 25-50 line script which demonstrates what's bothering you? Many PHP
developers work on PHP in their free time, and attempting to dig through 313 lines of
someone else's code--when you have only given a vague idea of what we're supposed
to be looking for--is unlikely to get high on anyone's priority list. Especially not when you
get sarcastic and abusive.
---------------------------------------------------------------------------
[2001-03-08 08:30:48] passionplay@hotmail.com
Come on guys. Read the damn bug report. I sent you a complete URL with scripts that generate the
problem even. Is it really that hard to follow?????????
If you read the bug report and went to the URL you would have seen the scripts that generated the
problem. How hard is that? You can even see the output from the bug. Shall we try this again? I will
clarify in case you missed it the first time.
GO TO THE URL LISTED. THERE YOU WILL FIND THE SHORT SCRIPT THAT GENERATES THE PROBLEM. YOU WILL ALSO
SEE RESULT FILES THAT DESCRIBE THE ERROR IN DETAIL. ONCE YOU HAVE LOOKED THERE, COME AND ASK ME
AGAIN TO CLARIFY. THANKS.
---------------------------------------------------------------------------
[2001-03-08 06:43:10] stas@php.net
Could you please describe more in detail what the problem is
and provide a short scipt reproducing the behaviour?
---------------------------------------------------------------------------
[2001-02-27 08:57:41] passionplay@hotmail.com
standard php rpm 4.04p1 from rpmfind.net
Scripts are clearly marked and available in source format as well as showing necessary details at
this URL.
http://www.poetryunlimited.com/test
This bug will create significant problems when dealing with object references as needed in advanced
patterns (GoF 1994).
Hope you guys can figure it out. I would hate to have to have extra objects kicking around just
because of whatever.
---------------------------------------------------------------------------
Full Bug description available at: http://bugs.php.net/?id=9477