ID: 30630
Updated by: [EMAIL PROTECTED]
Reported By: boccara at netvision dot net dot il
-Status: Open
+Status: Feedback
Bug Type: Reproducible crash
Operating System: win 2K / apache 2.0.49
PHP Version: 4.3.9
New Comment:
Please make a short reproducing script (max 15 lines if you can).
Previous Comments:
------------------------------------------------------------------------
[2004-11-01 17:22:00] boccara at netvision dot net dot il
very very strange !!
I have uninstalled totally the Zend Optimizer and restart the server,
still the bug.
I made some change in the code ( add a lot of echo ) and remarked that
it seems that the stack lost some datas.
here the change:
class TotDevisParEditeur
{
var $VecEditeur = array();
var $value = array();
function GetValue($type,$editeur)
{
return $this->VecEditeur[$editeur][$type];
}
function Display($type,$editeur)
{
echo "editeur:$editeur // Type:".$type." Number:";
echo $this->VecEditeur[$editeur][$type];
endl();
}
function AddDevis($type,$editeur,$numOfdevis,&$index)
{
echo $index++."/ ";echo "** BEFORE
**";$this->Display($type,$editeur);
$value[$type] = $this->GetValue($type,$editeur) + $numOfdevis;
$this->VecEditeur[$editeur] = $value;
echo $index++."/ "; echo " ADDING $numOfdevis";endl();
echo $index++."/ ";echo "** AFTER
**";$this->Display($type,$editeur);
}
}
$SousTotal = new TotDevisParEditeur;
$SousTotalCom = array();
$SousTotalCom['gagne'] = new TotDevisParEditeur;
$SousTotalCom['perdu'] = new TotDevisParEditeur;
$SousTotalCom['encours'] = new TotDevisParEditeur;
while (dbFetch($iTableTmp, $Col))
{
/*
in this portion of code there is no redefinition of the object !!
just value are assigned to $RefEditeur, $Gagne,...
*/
echo $index++."/ ";echo $Gestionnaire."---- $RefEditeur
------>";endl();
echo $index++."/ ";ECHO " *** gagne *** ";endl();
$SousTotalCom['gagne']->AddDevis($Gestionnaire,$RefEditeur,$Gagne,$index);
echo $index++."/ ";ECHO " *** perdu *** "; endl();
$SousTotalCom['perdu']->AddDevis($Gestionnaire,$RefEditeur,$Perdu,$index);
echo $index++."/ ";ECHO " *** encours *** "; endl();
$SousTotalCom['encours']->AddDevis($Gestionnaire,$RefEditeur,$Encours,$index);
echo $index++."/ ";echo "************************************";endl();
}
here the result :
Take a look at line 3, there is nothing in the stack ( value of
variable Number) because this is the 1st turn in the loop. We add the
value 2 (line 4) and we got in the line 5 the value 2. ( nothing + 2 =
2 it's ok).
Now take a look at line 45. The value of Number should be 2, and here
is the problem: Number seems to be lost as there is no value.
At Line 47 the value of Number is 0, and we found it a few lines after
at Line 73. In this case the value of Number is not lost !
We can found after a lot of exemple where the value is lost, and a lot
of exemple where the value is not lost.
I think there is a bug with the stack.
What do yo think ??
1/ 22---- CA2 ------>
2/ *** gagne ***
3/ ** BEFORE **editeur:CA2 // Type:22 Number:
4/ ADDING 2
5/ ** AFTER **editeur:CA2 // Type:22 Number:2
6/ *** perdu ***
7/ ** BEFORE **editeur:CA2 // Type:22 Number:
8/ ADDING 0
9/ ** AFTER **editeur:CA2 // Type:22 Number:0
10/ *** encours ***
11/ ** BEFORE **editeur:CA2 // Type:22 Number:
12/ ADDING 2
13/ ** AFTER **editeur:CA2 // Type:22 Number:2
14/ ************************************
15/ 22---- VR ------>
16/ *** gagne ***
17/ ** BEFORE **editeur:VR // Type:22 Number:
18/ ADDING 1
19/ ** AFTER **editeur:VR // Type:22 Number:1
20/ *** perdu ***
21/ ** BEFORE **editeur:VR // Type:22 Number:
22/ ADDING 0
23/ ** AFTER **editeur:VR // Type:22 Number:0
24/ *** encours ***
25/ ** BEFORE **editeur:VR // Type:22 Number:
26/ ADDING 2
27/ ** AFTER **editeur:VR // Type:22 Number:2
28/ ************************************
29/ 11---- CA2 ------>
30/ *** gagne ***
31/ ** BEFORE **editeur:CA2 // Type:11 Number:
32/ ADDING 0
33/ ** AFTER **editeur:CA2 // Type:11 Number:0
34/ *** perdu ***
35/ ** BEFORE **editeur:CA2 // Type:11 Number:
36/ ADDING 0
37/ ** AFTER **editeur:CA2 // Type:11 Number:0
38/ *** encours ***
39/ ** BEFORE **editeur:CA2 // Type:11 Number:
40/ ADDING 1
41/ ** AFTER **editeur:CA2 // Type:11 Number:1
42/ ************************************
43/ 22---- CA2 ------>
44/ *** gagne ***
45/ ** BEFORE **editeur:CA2 // Type:22 Number:
46/ ADDING 0
47/ ** AFTER **editeur:CA2 // Type:22 Number:0
48/ *** perdu ***
49/ ** BEFORE **editeur:CA2 // Type:22 Number:
50/ ADDING 0
51/ ** AFTER **editeur:CA2 // Type:22 Number:0
52/ *** encours ***
53/ ** BEFORE **editeur:CA2 // Type:22 Number:
54/ ADDING 1
55/ ** AFTER **editeur:CA2 // Type:22 Number:1
56/ ************************************
57/ 22---- VR ------>
58/ *** gagne ***
59/ ** BEFORE **editeur:VR // Type:22 Number:1
60/ ADDING 0
61/ ** AFTER **editeur:VR // Type:22 Number:1
62/ *** perdu ***
63/ ** BEFORE **editeur:VR // Type:22 Number:0
64/ ADDING 0
65/ ** AFTER **editeur:VR // Type:22 Number:0
66/ *** encours ***
67/ ** BEFORE **editeur:VR // Type:22 Number:2
68/ ADDING 1
69/ ** AFTER **editeur:VR // Type:22 Number:3
70/ ************************************
71/ 22---- CA2 ------>
72/ *** gagne ***
73/ ** BEFORE **editeur:CA2 // Type:22 Number:0
74/ ADDING 0
75/ ** AFTER **editeur:CA2 // Type:22 Number:0
76/ *** perdu ***
77/ ** BEFORE **editeur:CA2 // Type:22 Number:0
78/ ADDING 0
79/ ** AFTER **editeur:CA2 // Type:22 Number:0
80/ *** encours ***
81/ ** BEFORE **editeur:CA2 // Type:22 Number:1
82/ ADDING 1
83/ ** AFTER **editeur:CA2 // Type:22 Number:2
84/ ************************************
85/ 22---- CA2 ------>
86/ *** gagne ***
87/ ** BEFORE **editeur:CA2 // Type:22 Number:0
88/ ADDING 0
89/ ** AFTER **editeur:CA2 // Type:22 Number:0
90/ *** perdu ***
91/ ** BEFORE **editeur:CA2 // Type:22 Number:0
92/ ADDING 0
93/ ** AFTER **editeur:CA2 // Type:22 Number:0
94/ *** encours ***
95/ ** BEFORE **editeur:CA2 // Type:22 Number:2
96/ ADDING 3
97/ ** AFTER **editeur:CA2 // Type:22 Number:5
98/ ************************************
99/ 22---- CA2 ------>
100/ *** gagne ***
101/ ** BEFORE **editeur:CA2 // Type:22 Number:0
102/ ADDING 0
103/ ** AFTER **editeur:CA2 // Type:22 Number:0
104/ *** perdu ***
105/ ** BEFORE **editeur:CA2 // Type:22 Number:0
106/ ADDING 0
107/ ** AFTER **editeur:CA2 // Type:22 Number:0
108/ *** encours ***
109/ ** BEFORE **editeur:CA2 // Type:22 Number:5
110/ ADDING 2
111/ ** AFTER **editeur:CA2 // Type:22 Number:7
112/ ************************************
113/ 22---- VR ------>
114/ *** gagne ***
115/ ** BEFORE **editeur:VR // Type:22 Number:1
116/ ADDING 0
117/ ** AFTER **editeur:VR // Type:22 Number:1
118/ *** perdu ***
119/ ** BEFORE **editeur:VR // Type:22 Number:0
120/ ADDING 0
121/ ** AFTER **editeur:VR // Type:22 Number:0
122/ *** encours ***
123/ ** BEFORE **editeur:VR // Type:22 Number:3
124/ ADDING 1
125/ ** AFTER **editeur:VR // Type:22 Number:4
126/ ************************************
127/ 22---- CA2 ------>
128/ *** gagne ***
129/ ** BEFORE **editeur:CA2 // Type:22 Number:0
130/ ADDING 2
131/ ** AFTER **editeur:CA2 // Type:22 Number:2
132/ *** perdu ***
133/ ** BEFORE **editeur:CA2 // Type:22 Number:0
134/ ADDING 0
135/ ** AFTER **editeur:CA2 // Type:22 Number:0
136/ *** encours ***
137/ ** BEFORE **editeur:CA2 // Type:22 Number:7
138/ ADDING 0
139/ ** AFTER **editeur:CA2 // Type:22 Number:7
140/ ************************************
141/ 22---- VR ------>
142/ *** gagne ***
143/ ** BEFORE **editeur:VR // Type:22 Number:1
144/ ADDING 2
145/ ** AFTER **editeur:VR // Type:22 Number:3
146/ *** perdu ***
147/ ** BEFORE **editeur:VR // Type:22 Number:0
148/ ADDING 0
149/ ** AFTER **editeur:VR // Type:22 Number:0
150/ *** encours ***
151/ ** BEFORE **editeur:VR // Type:22 Number:4
152/ ADDING 0
153/ ** AFTER **editeur:VR // Type:22 Number:4
154/ ************************************
155/ 3---- VR ------>
156/ *** gagne ***
157/ ** BEFORE **editeur:VR // Type:3 Number:
158/ ADDING 0
159/ ** AFTER **editeur:VR // Type:3 Number:0
160/ *** perdu ***
161/ ** BEFORE **editeur:VR // Type:3 Number:
162/ ADDING 0
163/ ** AFTER **editeur:VR // Type:3 Number:0
164/ *** encours ***
165/ ** BEFORE **editeur:VR // Type:3 Number:
166/ ADDING 2
167/ ** AFTER **editeur:VR // Type:3 Number:2
168/ ************************************
169/ 22---- VR ------>
170/ *** gagne ***
171/ ** BEFORE **editeur:VR // Type:22 Number:
172/ ADDING 0
173/ ** AFTER **editeur:VR // Type:22 Number:0
174/ *** perdu ***
175/ ** BEFORE **editeur:VR // Type:22 Number:
176/ ADDING 0
177/ ** AFTER **editeur:VR // Type:22 Number:0
178/ *** encours ***
179/ ** BEFORE **editeur:VR // Type:22 Number:
180/ ADDING 1
181/ ** AFTER **editeur:VR // Type:22 Number:1
182/ ************************************
183/ 22---- VR ------>
184/ *** gagne ***
185/ ** BEFORE **editeur:VR // Type:22 Number:0
186/ ADDING 0
187/ ** AFTER **editeur:VR // Type:22 Number:0
188/ *** perdu ***
189/ ** BEFORE **editeur:VR // Type:22 Number:0
190/ ADDING 0
191/ ** AFTER **editeur:VR // Type:22 Number:0
192/ *** encours ***
193/ ** BEFORE **editeur:VR // Type:22 Number:1
194/ ADDING 1
195/ ** AFTER **editeur:VR // Type:22 Number:2
196/ ************************************
197/ 22---- VR ------>
198/ *** gagne ***
199/ ** BEFORE **editeur:VR // Type:22 Number:0
200/ ADDING 1
201/ ** AFTER **editeur:VR // Type:22 Number:1
202/ *** perdu ***
203/ ** BEFORE **editeur:VR // Type:22 Number:0
204/ ADDING 0
205/ ** AFTER **editeur:VR // Type:22 Number:0
206/ *** encours ***
207/ ** BEFORE **editeur:VR // Type:22 Number:2
208/ ADDING 0
209/ ** AFTER **editeur:VR // Type:22 Number:2
210/ ************************************
211/ 22---- VR ------>
212/ *** gagne ***
213/ ** BEFORE **editeur:VR // Type:22 Number:1
214/ ADDING 0
215/ ** AFTER **editeur:VR // Type:22 Number:1
216/ *** perdu ***
217/ ** BEFORE **editeur:VR // Type:22 Number:0
218/ ADDING 0
219/ ** AFTER **editeur:VR // Type:22 Number:0
220/ *** encours ***
221/ ** BEFORE **editeur:VR // Type:22 Number:2
222/ ADDING 3
223/ ** AFTER **editeur:VR // Type:22 Number:5
224/ ************************************
225/ 22---- VR ------>
226/ *** gagne ***
227/ ** BEFORE **editeur:VR // Type:22 Number:1
228/ ADDING 0
229/ ** AFTER **editeur:VR // Type:22 Number:1
230/ *** perdu ***
231/ ** BEFORE **editeur:VR // Type:22 Number:0
232/ ADDING 0
233/ ** AFTER **editeur:VR // Type:22 Number:0
234/ *** encours ***
235/ ** BEFORE **editeur:VR // Type:22 Number:5
236/ ADDING 2
237/ ** AFTER **editeur:VR // Type:22 Number:7
238/ ************************************
239/ 22---- VR ------>
240/ *** gagne ***
241/ ** BEFORE **editeur:VR // Type:22 Number:1
242/ ADDING 4
243/ ** AFTER **editeur:VR // Type:22 Number:5
244/ *** perdu ***
245/ ** BEFORE **editeur:VR // Type:22 Number:0
246/ ADDING 0
247/ ** AFTER **editeur:VR // Type:22 Number:0
248/ *** encours ***
249/ ** BEFORE **editeur:VR // Type:22 Number:7
250/ ADDING 4
251/ ** AFTER **editeur:VR // Type:22 Number:11
252/ ************************************
253/ 22---- VR ------>
254/ *** gagne ***
255/ ** BEFORE **editeur:VR // Type:22 Number:5
256/ ADDING 3
257/ ** AFTER **editeur:VR // Type:22 Number:8
258/ *** perdu ***
259/ ** BEFORE **editeur:VR // Type:22 Number:0
260/ ADDING 0
261/ ** AFTER **editeur:VR // Type:22 Number:0
262/ *** encours ***
263/ ** BEFORE **editeur:VR // Type:22 Number:11
264/ ADDING 1
265/ ** AFTER **editeur:VR // Type:22 Number:12
266/ ************************************
267/ 22---- VR ------>
268/ *** gagne ***
269/ ** BEFORE **editeur:VR // Type:22 Number:8
270/ ADDING 1
271/ ** AFTER **editeur:VR // Type:22 Number:9
272/ *** perdu ***
273/ ** BEFORE **editeur:VR // Type:22 Number:0
274/ ADDING 0
275/ ** AFTER **editeur:VR // Type:22 Number:0
276/ *** encours ***
277/ ** BEFORE **editeur:VR // Type:22 Number:12
278/ ADDING 0
279/ ** AFTER **editeur:VR // Type:22 Number:12
280/ ************************************
281/ 22---- SYM ------>
282/ *** gagne ***
283/ ** BEFORE **editeur:SYM // Type:22 Number:
284/ ADDING 0
285/ ** AFTER **editeur:SYM // Type:22 Number:0
286/ *** perdu ***
287/ ** BEFORE **editeur:SYM // Type:22 Number:
288/ ADDING 0
289/ ** AFTER **editeur:SYM // Type:22 Number:0
290/ *** encours ***
291/ ** BEFORE **editeur:SYM // Type:22 Number:
292/ ADDING 1
293/ ** AFTER **editeur:SYM // Type:22 Number:1
294/ ************************************
295/ 22---- CA2 ------>
296/ *** gagne ***
297/ ** BEFORE **editeur:CA2 // Type:22 Number:2
298/ ADDING 4
299/ ** AFTER **editeur:CA2 // Type:22 Number:6
300/ *** perdu ***
301/ ** BEFORE **editeur:CA2 // Type:22 Number:0
302/ ADDING 0
303/ ** AFTER **editeur:CA2 // Type:22 Number:0
304/ *** encours ***
305/ ** BEFORE **editeur:CA2 // Type:22 Number:7
306/ ADDING 1
307/ ** AFTER **editeur:CA2 // Type:22 Number:8
308/ ************************************
309/ 22---- CA2 ------>
310/ *** gagne ***
311/ ** BEFORE **editeur:CA2 // Type:22 Number:6
312/ ADDING 1
313/ ** AFTER **editeur:CA2 // Type:22 Number:7
314/ *** perdu ***
315/ ** BEFORE **editeur:CA2 // Type:22 Number:0
316/ ADDING 0
317/ ** AFTER **editeur:CA2 // Type:22 Number:0
318/ *** encours ***
319/ ** BEFORE **editeur:CA2 // Type:22 Number:8
320/ ADDING 0
321/ ** AFTER **editeur:CA2 // Type:22 Number:8
322/ ************************************
323/ 6---- CA2 ------>
324/ *** gagne ***
325/ ** BEFORE **editeur:CA2 // Type:6 Number:
326/ ADDING 2
327/ ** AFTER **editeur:CA2 // Type:6 Number:2
328/ *** perdu ***
329/ ** BEFORE **editeur:CA2 // Type:6 Number:
330/ ADDING 0
331/ ** AFTER **editeur:CA2 // Type:6 Number:0
332/ *** encours ***
333/ ** BEFORE **editeur:CA2 // Type:6 Number:
334/ ADDING 0
335/ ** AFTER **editeur:CA2 // Type:6 Number:0
336/ ************************************
337/ 6---- VR ------>
338/ *** gagne ***
339/ ** BEFORE **editeur:VR // Type:6 Number:
340/ ADDING 1
341/ ** AFTER **editeur:VR // Type:6 Number:1
342/ *** perdu ***
343/ ** BEFORE **editeur:VR // Type:6 Number:
344/ ADDING 0
345/ ** AFTER **editeur:VR // Type:6 Number:0
346/ *** encours ***
347/ ** BEFORE **editeur:VR // Type:6 Number:
348/ ADDING 2
349/ ** AFTER **editeur:VR // Type:6 Number:2
350/ ************************************
351/ 6---- CA2 ------>
352/ *** gagne ***
353/ ** BEFORE **editeur:CA2 // Type:6 Number:2
354/ ADDING 0
355/ ** AFTER **editeur:CA2 // Type:6 Number:2
356/ *** perdu ***
357/ ** BEFORE **editeur:CA2 // Type:6 Number:0
358/ ADDING 0
359/ ** AFTER **editeur:CA2 // Type:6 Number:0
360/ *** encours ***
361/ ** BEFORE **editeur:CA2 // Type:6 Number:0
362/ ADDING 1
363/ ** AFTER **editeur:CA2 // Type:6 Number:1
364/ ************************************
365/ 6---- VR ------>
366/ *** gagne ***
367/ ** BEFORE **editeur:VR // Type:6 Number:1
368/ ADDING 0
369/ ** AFTER **editeur:VR // Type:6 Number:1
370/ *** perdu ***
371/ ** BEFORE **editeur:VR // Type:6 Number:0
372/ ADDING 0
373/ ** AFTER **editeur:VR // Type:6 Number:0
374/ *** encours ***
375/ ** BEFORE **editeur:VR // Type:6 Number:2
376/ ADDING 1
377/ ** AFTER **editeur:VR // Type:6 Number:3
378/ ************************************
379/ 22---- VR ------>
380/ *** gagne ***
381/ ** BEFORE **editeur:VR // Type:22 Number:
382/ ADDING 0
383/ ** AFTER **editeur:VR // Type:22 Number:0
384/ *** perdu ***
385/ ** BEFORE **editeur:VR // Type:22 Number:
386/ ADDING 0
387/ ** AFTER **editeur:VR // Type:22 Number:0
388/ *** encours ***
389/ ** BEFORE **editeur:VR // Type:22 Number:
390/ ADDING 1
391/ ** AFTER **editeur:VR // Type:22 Number:1
392/ ************************************
continued ..... with no error.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/30630
--
Edit this bug report at http://bugs.php.net/?id=30630&edit=1