php5.0.3 simpleXML - апач 1.3.33 win32 выпадает в корку

slach

Новичок
php5.0.3 simpleXML - апач 1.3.33 win32 выпадает в корку

имею вот такой XML,
PHP:
<?xml version="1.0" encoding="windows-1251"?>
<root>
<tag>тест</tag>
<tag>тест</tag>
</root>
следующий код работает нормально
PHP:
    $simplexml=simplexml_load_file('importNode.test.xml');

        echo '<br>$simplexml<pre>'; 
        var_dump($simplexml);
        echo '</pre>'; 
        flush();
        $domnode_imported = dom_import_simplexml($simplexml);
        echo '<br>$domnode_imported<pre>'; 
        var_dump($domnode_imported);
        echo '</pre>'; 
        flush();

        echo '<br>$simplexml<pre>'; 
        var_dump($simplexml);
        echo '</pre>'; 
        flush();
        $domnode_imported = dom_import_simplexml($simplexml);
        echo '<br>$domnode_imported<pre>'; 
        var_dump($domnode_imported);
        echo '</pre>'; 
        flush();
а вот этот код вываливает апач в корку в error.log и т.п. никаких объяснений НЕТ...

PHP:
    function fuck_simplexml($simplexml) {
        echo '<br>$simplexml<pre>'; 
        var_dump($simplexml);
        echo '</pre>'; 
        flush();
        $domnode_imported = dom_import_simplexml($simplexml);
        echo '<br>$domnode_imported<pre>'; 
        var_dump($domnode_imported);
        echo '</pre>'; 
        flush();
    }

$simplexml=simplexml_load_file('importNode.test.xml');

    fuck_simplexml($simplexml);  
    fuck_simplexml($simplexml);
напишите кто нибудь на bugs.php.net
а то у меня сейчас в голове вместо английского сплошной русский матерный...

экспериментировал с входным XML безрезультатно

зато если двойнов вызов
fuck_simplexml
вставить после
обычных echo вне функции...
нормально четыре раза делается import ноды

протеститруйте на других OS если можно
 

tony2001

TeaM PHPClub
latest PHP5.0.x CVS выводит:
Код:
<br>$simplexml<pre>object(SimpleXMLElement)#1 (1) {
  ["tag"]=>
  array(2) {
    [0]=>
    string(8) "п&#9555;п&#8729;пёп&#9555;"
    [1]=>
    string(8) "п&#9555;п&#8729;пёп&#9555;"
  }
}
</pre><br>$domnode_imported<pre>object(DOMElement)#2 (0) {
}
</pre><br>$simplexml<pre>object(SimpleXMLElement)#1 (1) {
  ["tag"]=>
  array(2) {
    [0]=>
    string(8) "п&#9555;п&#8729;пёп&#9555;"
    [1]=>
    string(8) "п&#9555;п&#8729;пёп&#9555;"
  }
}
</pre><br>$domnode_imported<pre>object(DOMElement)#2 (0) {
}
</pre>
сегфолта нет, valgrind молчит.
кстати, ext/simplexml изменялся последний раз аж в августе.

-~{}~ 18.01.05 18:32:

из консоли попробуй, плз.
 

slach

Новичок
блин ... ну надо ж... какая OS ??? какой php ?

я только что протестировал на
win2k и на FreeBSD 5.2.1-RELEASE

в обоих случаях segfault

может какой то другой extension дает наводки ?

-~{}~ 18.01.05 20:42:

хых... у меня php 5.0.3 релиз...
щас попробую из CVS

-~{}~ 18.01.05 20:47:

из консоли сегфаулт ....
Снапшут докачивается

-~{}~ 18.01.05 20:53:

php.exe -v

5.0.4-dev

выдает ВСЕ КАК НАДО
спасибо большое...

но я надеялся что поставлю на продакшен...
=(


чего слышно насчет выхода php5.0.4 ?

http://bugs.php.net/search.php?cmd=display&search_for=simplexml+segfault+&x=0&y=0
 

tony2001

TeaM PHPClub
>на FreeBSD 5.2.1-RELEASE
>в обоих случаях segfault
ты в следующий раз сразу backtrace показывай, раз под не-MS ОС тоже воспроизводится.

>чего слышно насчет выхода php5.0.4 ?
думаю, в феврале, ближе к середине-концу.
еще ни одного RC не было.
 

slach

Новичок
gdb -c php.core php

bt
бектрейс вот такой

#0 0x0812d01f in zend_std_get_properties ()
#1 0x080be259 in php_var_dump ()
#2 0x080be476 in zif_var_dump ()
#3 0x0813f73c in zend_do_fcall_common_helper ()
#4 0x0813fd66 in zend_do_fcall_handler ()
#5 0x0813be1f in execute ()
#6 0x0813f869 in zend_do_fcall_common_helper ()
#7 0x0813fd66 in zend_do_fcall_handler ()
#8 0x0813be1f in execute ()
#9 0x08119669 in zend_execute_scripts ()
#10 0x080ddad6 in php_execute_script ()
#11 0x08147f76 in main ()
#12 0x08063312 in _start ()
 

tony2001

TeaM PHPClub
это с последним снэпшотом?
если в нем уже работает, то бэктрэйс уже и не нужен..
 

slach

Новичок
с последним снапшутом все работает ;) спасибо

вопрос в том, что если я буду везде ловить подобные глюки то с php5 такая же история как с php4 будет, который более или менее нормально можно было использовать начиная с версии 4.0.6 да и то без притензий на какие либо extension кроме самых распостраненных...

не буду же я на продакшен сервер ставить снапшут?
 

tony2001

TeaM PHPClub
>не буду же я на продакшен сервер ставить снапшут?
а в чем проблема?
если я с ним твоя задача выполняется, то почему нет?
 

slach

Новичок
потому что у заказчика может быть сторонний хостинг
потому что снапшут по определению "не стабилен"

потому что в unix-like-OS администраторы предпочитают собирать из портов \ пакетов \ deb \ rpm и т.п. а там обычно release версии с запозданием...

короче много может быть проблем
я просто пытаюсь основательно пощюпать php5 + XML (libxml\libxslt) вот и напарываюсь на глюки ;)

в свое время аналогичная ситуация была с php4 + XSLT sablot
 

tony2001

TeaM PHPClub
>я просто пытаюсь основательно пощюпать php5 + XML (libxml\libxslt) вот и
>напарываюсь на глюки
ну так это же хорошо.
чем раньше попробуешь, тем раньше найдешь, тем раньше пофиксят.

>потому что в unix-like-OS администраторы предпочитают собирать из портов \
>пакетов \ deb \ rpm и т.п. а там обычно release версии с запозданием...
может быть.
но я таких видел достаточно мало (не считая ньюбов, которые кроме ports/deb/rpm ничего и не видели).
т.к. нормальные люди понимают зачем выпускаются новые версии и что с ними нужно делать.

>в свое время аналогичная ситуация была с php4 + XSLT sablot
жизнь такая.
всё не так, как хочется.

единственное, что я могу тебе предложить - заняться суровым тестированием и заводить баг-репорты при нахождении проблем.
 

[DAN]

Старожил PHPClub
Кстати, можно предложить разработчикам включать "нестабильный" код в тесты, дабы проблема имела место быть.
 
Сверху