Bug #50670 [Ver->Csd]: Incorrect Iteration over large (10k elements) xml file

2010-10-22 Thread niklas at frubar dot net
Edit report at http://bugs.php.net/bug.php?id=50670&edit=1

 ID: 50670
 User updated by:niklas at frubar dot net
 Reported by:niklas at frubar dot net
 Summary:Incorrect Iteration over large (10k elements) xml
 file
-Status: Verified
+Status: Closed
 Type:   Bug
 Package:Scripting Engine problem
 Operating System:   Linux 2.6.9 x86_64
 PHP Version:5.3.*
 Block user comment: N

 New Comment:

I can't reproduce it anymore with php 5.3.3, closing bug report.


Previous Comments:

[2010-05-17 13:37:45] m...@php.net

Works with zend.enable_gc=0


[2010-01-14 15:18:18] niklas at frubar dot net

Reproduce Code

--





XML;



for($i = 1; $i < 15000; $i++) $xml .= '';



$xml .= <<

XML;

function traverse($node)

{

static $list;

foreach ($node->children() as $child) traverse($child);

$list[] = $node->attributes();

echo $node['id'] . "\n";

}

traverse(new SimpleXMLElement($xml));

?>


[2010-01-11 09:16:28] j...@php.net

Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves. 

A proper reproducing script starts with ,
is max. 10-20 lines long and does not require any external 
resources such as databases, etc. If the script requires a 
database to demonstrate the issue, please make sure it creates 
all necessary tables, stored procedures etc.

Please avoid embedding huge scripts into the report.




[2010-01-05 20:04:17] matth at mlalonde dot net

Same results in 5.2.9 as with 5.2.12.

--------------------
[2010-01-05 19:37:23] niklas at frubar dot net

It works with other array values, if you replace

$list[] = $node->attributes();

with



$c = array();

$list[] = $c;



it resets the iteration at the same node.



$list[] = array();



does not reset the iteration however.



$list[] = new stdClass();



does reset the iteration.



Adding simple integers or strings to the array do not reset.




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/bug.php?id=50670


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


#50670 [Fbk->Opn]: Incorrect Iteration over large (10k elements) xml file

2010-01-14 Thread niklas at frubar dot net
 ID:   50670
 User updated by:  niklas at frubar dot net
 Reported By:  niklas at frubar dot net
-Status:   Feedback
+Status:   Open
 Bug Type: SimpleXML related
 Operating System: Linux 2.6.9 x86_64
-PHP Version:  5.*, 6
+PHP Version:  5.3.*
 New Comment:

Reproduce Code
--


XML;

for($i = 1; $i < 15000; $i++) $xml .= '';

$xml .= <<
XML;
function traverse($node)
{
static $list;
foreach ($node->children() as $child) traverse($child);
$list[] = $node->attributes();
echo $node['id'] . "\n";
}
traverse(new SimpleXMLElement($xml));
?>


Previous Comments:


[2010-01-11 09:16:28] j...@php.net

Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves. 

A proper reproducing script starts with ,
is max. 10-20 lines long and does not require any external 
resources such as databases, etc. If the script requires a 
database to demonstrate the issue, please make sure it creates 
all necessary tables, stored procedures etc.

Please avoid embedding huge scripts into the report.





[2010-01-05 20:04:17] matth at mlalonde dot net

Same results in 5.2.9 as with 5.2.12.

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

[2010-01-05 19:37:23] niklas at frubar dot net

It works with other array values, if you replace
$list[] = $node->attributes();
with

$c = array();
$list[] = $c;

it resets the iteration at the same node.

$list[] = array();

does not reset the iteration however.

$list[] = new stdClass();

does reset the iteration.

Adding simple integers or strings to the array do not reset.

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

[2010-01-05 18:57:45] niklas at frubar dot net

Description:

When iterating over a large xml object and storing attributes of all 
nodes in an array, somehow the iteration gets reset (always at the same

element)

Tested with 5.3.1 and php-5.3 svn HEAD, does not occur on php-5.2.12.

Reproduce code:
---
children() as $child) traverse($child);
$list[] = $node->attributes();
echo $node['id'] . "\n";
}
traverse(new SimpleXMLElement('data.xml', null, true));

data.xml:



[...]



Expected result:

1
2
3
[.. continuous numbers ..]
14997
14998
14999


Actual result:
--
1
2
3
[.. continuous numbers ..]9994
9995
9996
2
3
4
[.. continuous numbers ..]
14997
14998
14999






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



#50670 [Opn]: Incorrect Iteration over large (10k elements) xml file

2010-01-05 Thread niklas at frubar dot net
 ID:   50670
 User updated by:  niklas at frubar dot net
 Reported By:  niklas at frubar dot net
 Status:   Open
 Bug Type: SimpleXML related
 Operating System: Linux 2.6.9 x86_64
 PHP Version:  5.3.1
 New Comment:

It works with other array values, if you replace
$list[] = $node->attributes();
with

$c = array();
$list[] = $c;

it resets the iteration at the same node.

$list[] = array();

does not reset the iteration however.

$list[] = new stdClass();

does reset the iteration.

Adding simple integers or strings to the array do not reset.


Previous Comments:


[2010-01-05 18:57:45] niklas at frubar dot net

Description:

When iterating over a large xml object and storing attributes of all 
nodes in an array, somehow the iteration gets reset (always at the same

element)

Tested with 5.3.1 and php-5.3 svn HEAD, does not occur on php-5.2.12.

Reproduce code:
---
children() as $child) traverse($child);
$list[] = $node->attributes();
echo $node['id'] . "\n";
}
traverse(new SimpleXMLElement('data.xml', null, true));

data.xml:



[...]



Expected result:

1
2
3
[.. continuous numbers ..]
14997
14998
14999


Actual result:
--
1
2
3
[.. continuous numbers ..]9994
9995
9996
2
3
4
[.. continuous numbers ..]
14997
14998
14999






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



#50670 [NEW]: Incorrect Iteration over large (10k elements) xml file

2010-01-05 Thread niklas at frubar dot net
From: niklas at frubar dot net
Operating system: Linux 2.6.9 x86_64  
PHP version:  5.3.1
PHP Bug Type: SimpleXML related
Bug description:  Incorrect Iteration over large (10k elements) xml file

Description:

When iterating over a large xml object and storing attributes of all 
nodes in an array, somehow the iteration gets reset (always at the same 
element)

Tested with 5.3.1 and php-5.3 svn HEAD, does not occur on php-5.2.12.

Reproduce code:
---
children() as $child) traverse($child);
$list[] = $node->attributes();
echo $node['id'] . "\n";
}
traverse(new SimpleXMLElement('data.xml', null, true));

data.xml:



[...]



Expected result:

1
2
3
[.. continuous numbers ..]
14997
14998
14999


Actual result:
--
1
2
3
[.. continuous numbers ..]9994
9995
9996
2
3
4
[.. continuous numbers ..]
14997
14998
14999


-- 
Edit bug report at http://bugs.php.net/?id=50670&edit=1
-- 
Try a snapshot (PHP 5.2):
http://bugs.php.net/fix.php?id=50670&r=trysnapshot52
Try a snapshot (PHP 5.3):
http://bugs.php.net/fix.php?id=50670&r=trysnapshot53
Try a snapshot (PHP 6.0):
http://bugs.php.net/fix.php?id=50670&r=trysnapshot60
Fixed in SVN:
http://bugs.php.net/fix.php?id=50670&r=fixed
Fixed in SVN and need be documented: 
http://bugs.php.net/fix.php?id=50670&r=needdocs
Fixed in release:
http://bugs.php.net/fix.php?id=50670&r=alreadyfixed
Need backtrace:  
http://bugs.php.net/fix.php?id=50670&r=needtrace
Need Reproduce Script:   
http://bugs.php.net/fix.php?id=50670&r=needscript
Try newer version:   
http://bugs.php.net/fix.php?id=50670&r=oldversion
Not developer issue: 
http://bugs.php.net/fix.php?id=50670&r=support
Expected behavior:   
http://bugs.php.net/fix.php?id=50670&r=notwrong
Not enough info: 
http://bugs.php.net/fix.php?id=50670&r=notenoughinfo
Submitted twice: 
http://bugs.php.net/fix.php?id=50670&r=submittedtwice
register_globals:
http://bugs.php.net/fix.php?id=50670&r=globals
PHP 4 support discontinued:  http://bugs.php.net/fix.php?id=50670&r=php4
Daylight Savings:http://bugs.php.net/fix.php?id=50670&r=dst
IIS Stability:   
http://bugs.php.net/fix.php?id=50670&r=isapi
Install GNU Sed: 
http://bugs.php.net/fix.php?id=50670&r=gnused
Floating point limitations:  
http://bugs.php.net/fix.php?id=50670&r=float
No Zend Extensions:  
http://bugs.php.net/fix.php?id=50670&r=nozend
MySQL Configuration Error:   
http://bugs.php.net/fix.php?id=50670&r=mysqlcfg