LeedRSS / Leed

Leed (contraction de Light Feed) est un agrégateur RSS libre et minimaliste qui permet la consultation de flux RSS de manière rapide et non intrusive.
211 stars 40 forks source link

Erreur exit signal Bus error / Segmentation fault #307

Closed cobalt74 closed 10 years ago

cobalt74 commented 10 years ago

Bonsoir, j'ai eu une erreur depuis maintenant pas mal de temps qui m'empechait de synchroniser correctement. Lors de la synchronisation de feed sur mon environnement de dev XAMPP, quelques flux se synchronisaient mais très peu et j'avais cette erreur dans les logs PHP.

[notice] child pid 41022 exit signal Bus error (10)
[notice] child pid 49047 exit signal Segmentation fault (11)

Donc je partage avec vous la correction :

pi : faut pas me demander le pourquoi du comment, c'est surement un bug.

PTony commented 10 years ago

Salut, Je rencontre une erreur similaire avec le serveur de mon nas synology. Lorsque je lance l'actualisation des flux, j'ai certains flux qui ne se synchronise pas et cette segmentation fault qui sort dans les logs apache, sans autres explications. :-/

Je pense que cela peut-être lié à la lib simplepie car j'ai également le même problème avec freshrss et tout deux utilisent simplepie 1.3.1

Parcontre l'extension ldap n'est pas activée chez moi, donc ça ne résout pas le problème pour moi.

les num de version:

Apache/2.2.23
PHP 5.3.21 (cli) (built: Feb 11 2014 23:26:45)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies
cobalt74 commented 10 years ago

Salut @PTony, ok donc tu as bien désactivé ou ils étaient désactivés

ça dépend de l'installation et si mes souvenirs sont bons, tu peux trouver une trace du composant qui génère l'erreur avec la fonction backtrace Tu as fais les dernières maj de ton synology ?

PTony commented 10 years ago

Salut @cobalt74 Alors enfaite, je me suis un peu embrouillé. Je parlé de l'extension php ldap qui est désactivée... mais cela dit, les modules ldap d'apache, bien que présents ne semblent pas chargés non plus. Ldap n'est pas activé dans l'interface de mon nas

find / -path "/volume1/*" -prune -o -iname "*ldap*.so" -print
/usr/syno/apache/modules/mod_authnz_ldap.so
/usr/syno/apache/modules/mod_ldap.so
/lib/security/pam_ldap.so
/lib/php/extensions/ldap.so
(...)
# Modules apache chargés
 /usr/syno/apache/bin/httpd -M
Loaded Modules:
 core_module (static)
 authn_file_module (static)
 authn_default_module (static)
 authz_host_module (static)
 authz_groupfile_module (static)
 authz_user_module (static)
 authz_default_module (static)
 auth_basic_module (static)
 include_module (static)
 filter_module (static)
 log_config_module (static)
 env_module (static)
 mime_magic_module (static)
 setenvif_module (static)
 mpm_prefork_module (static)
 http_module (static)
 mime_module (static)
 status_module (static)
 autoindex_module (static)
 asis_module (static)
 cgi_module (static)
 negotiation_module (static)
 dir_module (static)
 actions_module (static)
 userdir_module (static)
 alias_module (static)
 so_module (static)
 rewrite_module (shared)
 xsendfile_module (shared)
 deflate_module (shared)
 headers_module (shared)
Syntax OK

Pour finir, mon nas est un DS209J, avec le dernier firmware (DSM 4.2-3246) du 11/02/2014

Edit: Aussi pour le coup, je me demande si je ne devrait pas créer une autre issue car, enfaite pour ma part c'est l'éxécution du script "actualize_script.php" qui génère cette segFault

cobalt74 commented 10 years ago

euh "actualize_script.php" c'est pas dans Leed ça ? non ?

Sbgodin commented 10 years ago

C'est l'exécution de action.php qui déclenche la mise à jour des flux.

PTony commented 10 years ago

Rholala, non t'as raison actualize_cript.php c'est dans freshrss :sweat_smile: Pour leed c'est le fichier action.php qui me génère l'erreur.

Quand je l'éxécute dans le shell:

cd /var/services/web/leed && php action.php
Type de synchronisation : Synchronisation complète…     08/03/2014 16:04:16
08/03/2014 16:04:18     1.371   Alsacreations.com - Actualités  http://www.alsacreations.com/…
08/03/2014 16:04:19     1.376   Alsacreations.com - Apprendre   http://www.alsacreations.com/…
08/03/2014 16:04:20     0.432   Arch Linux: Recent news updat…  https://www.archlinux.org/fee…
08/03/2014 16:04:20     0.627   Archlinux.fr    http://archlinux.fr/feed
08/03/2014 16:04:21     0.732   Babylon-Design  http://www.babylon-design.com…
08/03/2014 16:04:24     2.950   Flecheinthepeche.fr     http://feeds2.feedburner.com/…
08/03/2014 16:04:29     4.995   Framablog       http://www.framablog.org/inde…
08/03/2014 16:04:29     0.557   Grafikart | Tutoriels   http://feeds.feedburner.com/G…
08/03/2014 16:04:30     0.487   Haute-Disponibilite     http://www.haute-disponibilit…
08/03/2014 16:04:31     0.565   IdleBlog        http://blog.idleman.fr/?feed=…
08/03/2014 16:04:31     0.818   Jeuxlinux - Le site des jeux …  http://www.jeuvinux.net/backe…
08/03/2014 16:04:32     0.840   Journal du Net Développeurs :…  http://www.journaldunet.com/d…
08/03/2014 16:04:33     0.685   Journal du Pirate       http://www.journaldupirate.co…
08/03/2014 16:04:34     1.368   JQuery, PHP, html, design... …  http://feeds2.feedburner.com/…
Segmentation fault (core dumped)
PTony commented 10 years ago

Bon, alors enfaite j'ai trouvé, c'est le flux de korben (http://www.korben.info/feed) qui pose un problème.

Lorsque je le supprime ça fonctionne normalement (sur freshrss aussi), lorsque j'essaye de le rajouter ça me balance une erreur "La connexion a été réinitialisée".

Pourquoi ils ont supprimés les codes d'erreurs http dans ff ?

cobalt74 commented 10 years ago

faut prévenir l'ami Korben que sont flux n'est pas valide :wink: http://validator.w3.org/feed/check.cgi?url=http%3A%2F%2Fwww.korben.info%2Ffeed

PTony commented 10 years ago

Oui, d'accord que le flux de korben n'est pas valide, mais dans ce cas de figure leed devrait idéalement avoir un autre comportement.

Que ce passe t-il chez toi ? Tu peux ajouter le flux ? Ca te génère une erreur aussi ?

Pourquoi le flux est ajouté via l'import opml, mais pas quand on l'ajoute manuellement ?

Et pour le coup, es-tu bien certain que ton erreur ne venait pas d'un flux que tu aurais supprimé en même temps que tu as désactivé les modules ldap ?

Sbgodin commented 10 years ago

Chez moi, aucun soucis avec le flux de Korben que je viens d'ajouter pour tester.

PTony commented 10 years ago

Bon bah, il ne va plus rester qu'un problème lié à mon environnement au final :smile: J'utilise leed en version stable 1.6.1, tu as testé sur qu'elle version @Sbgodin ?

Sbgodin commented 10 years ago

La version de développement, un peu après la 1.6.1.

PTony commented 10 years ago

Bon, je testerai demain avec une version plus récente.

PTony commented 10 years ago

Salut. Alors je viens de tester avec la branche dev. Et j'ai toujours un problème avec le flux de korben (http://www.korben.info/feed). Lorsque j'essaye de l'ajouter firefox m'affiche une erreur:

La connexion a été réinitialisée
La connexion avec le serveur a été réinitialisée pendant le chargement de la page.

et dans mes logs apache ça m'ajoute 2 segmentation fault:

[Sun Mar 09 08:36:10 2014] [notice] child pid 10066 exit signal Segmentation fault (11)
[Sun Mar 09 08:36:14 2014] [notice] child pid 9937 exit signal Segmentation fault (11)

Du coup, je me demande si je dois continuer mon investigation, ou me résigner à installer un xampp sur ma machine.

cobalt74 commented 10 years ago

clairement, c'est un problème de ton environnement. J'ai réglé mon problème historiquement avec le fait de ne pas charger les modules ldap qui générait une erreur et me faisait planter xampp. j'ai lmis à jour depuis xampp et je n'ai plus de soucis d'ailleurs. (c'est mon environnement de dev). Coté nas synology, j'en ai un mais pas testé depuis un bail. Je pense qu'il y a un module apache qui doit te faire un truc bizarre.

cobalt74 commented 10 years ago

une piste pour créer un fichier de log du core dump http://www.cyberciti.biz/tips/configure-apache-web-server-for-core-dump.html

Sbgodin commented 10 years ago

Je ne connais pas de cas où un programme Php peut générer une faute de segmentation. En C, C++, oui. D'autant que ça se passe forcément dans SimplePie. Mais même ce dernier ne fait que faire les requêtes réseau et adapter les flux.

Je conjecture que c'est un composant plus profond, comme la couche HTTP (pour faire simple) gérée par Php lui-même.

Si tu es motivé, tu peux expurger de plus en plus d'éléments jusqu'à tomber sur la commande qui fait planter. Et ça finira par un ticket chez Php ou la bibliothèque gérant l'affaire.

PTony commented 10 years ago

Bonjour, Alors enfaite oui ca serait bien un problème plus profond dans l'environnement.

j'ai essayé d'ajouter une URL alternative du flux de korben (http://feeds2.feedburner.com/KorbensBlog-UpgradeYourMind) et il s'avère que celle-ci passe correctement.

Donc jai lancé un wget pour récupérer les fichier xml... et alors là :

wget -d http://www.korben.info/feed -O feed.xml
Setting --output-document (outputdocument) to feed.xml
DEBUG output created by Wget 1.12 on linux-gnu.

URI encoding = `ANSI_X3.4-1968'
--2014-03-10 17:48:56--  http://www.korben.info/feed
Resolving www.korben.info (www.korben.info)... Segmentation fault (core dumped)

Mais comme il s'agit d'un wget amélioré installé en plus, j'ai voulue vérifié avec le wget fournis par syno

/usr/syno/bin/wget -v http://www.korben.info/feed -O feed.xml
Segmentation fault (core dumped)

J'ai donc testé avec d'autres programmes. Les commandes ping et dig arrivent bien à faire la résolution, en revanche curl me balance aussi une seg fault.

Quant à l'option CoreDumpDirectory dans apache, elle n'était pas prise en compte à priori. Idéalement faudrait que je test un peu mieux, mais pour l'instant je vais m'arreter là.

En tout cas merci pour votre aide ;)

EN

PTony commented 10 years ago

Bon, alors finalement j'ai lancé une recherche et trouvé les dumps (*.core) dans /volume1/

J'ai aussi trouvé quelques explications pour déboguer php sur le site officiel. (https://bugs.php.net/bugs-generating-backtrace.php) ... mais je sais pas très bien quoi en faire :smile: pour l'instant

[root@nas /volume1]# gdb /usr/syno/apache/bin/httpd @httpd.core

dlopen failed on 'libthread_db.so.1' - libthread_db.so.1: cannot open shared object file: No such file or directory
GDB will not be able to debug pthreads.

GNU gdb 6.8
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "powerpc-603e-linux"...
(no debugging symbols found)
Reading symbols from /lib/libsynosdk.so.4...(no debugging symbols found)...done.
Loaded symbols for /lib/libsynosdk.so.4
Reading symbols from /lib/libsynocore.so.4...(no debugging symbols found)...done.
Loaded symbols for /lib/libsynocore.so.4
Reading symbols from /lib/libaprutil-1.so.0...(no debugging symbols found)...done.
Loaded symbols for /lib/libaprutil-1.so.0
Reading symbols from /lib/libsasl2.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/libsasl2.so.2
Reading symbols from /lib/libcrypto.so.1.0.0...(no debugging symbols found)...done.
Loaded symbols for /lib/libcrypto.so.1.0.0
Reading symbols from /lib/libssl.so.1.0.0...
(no debugging symbols found)...done.
Loaded symbols for /lib/libssl.so.1.0.0
Reading symbols from /lib/libexpat.so.0...(no debugging symbols found)...done.
Loaded symbols for /lib/libexpat.so.0
Reading symbols from /lib/libapr-1.so.0...(no debugging symbols found)...done.
Loaded symbols for /lib/libapr-1.so.0
Reading symbols from /lib/libsynorecycle.so...(no debugging symbols found)...done.
Loaded symbols for /lib/libsynorecycle.so
Reading symbols from /lib/libsynogpl.so.4...(no debugging symbols found)...done.
Loaded symbols for /lib/libsynogpl.so.4
Reading symbols from /lib/libsynocoregpl.so.4...
(no debugging symbols found)...done.
Loaded symbols for /lib/libsynocoregpl.so.4
Reading symbols from /lib/libcrypt.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/libcrypt.so.1
Reading symbols from /lib/libicui18n.so.22...(no debugging symbols found)...done.
Loaded symbols for /lib/libicui18n.so.22
Reading symbols from /lib/libicuuc.so.22...(no debugging symbols found)...done.
Loaded symbols for /lib/libicuuc.so.22
Reading symbols from /lib/libicudata.so.22...(no debugging symbols found)...done.
Loaded symbols for /lib/libicudata.so.22
Reading symbols from /lib/libxml2.so.2...
(no debugging symbols found)...done.
Loaded symbols for /lib/libxml2.so.2
Reading symbols from /lib/libattr.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/libattr.so.1
Reading symbols from /lib/libm.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib/libm.so.6
Reading symbols from /lib/libdl.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/libdl.so.2
Reading symbols from /lib/libsynoaclgpl.so...(no debugging symbols found)...done.
Loaded symbols for /lib/libsynoaclgpl.so
Reading symbols from /opt/lib/librt.so.1...
(no debugging symbols found)...done.
Loaded symbols for /opt/lib/librt.so.1
Reading symbols from /lib/libc.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /opt/lib/libpthread.so.0...(no debugging symbols found)...done.
Loaded symbols for /opt/lib/libpthread.so.0
Reading symbols from /lib/libresolv.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/libresolv.so.2
Reading symbols from /lib/libstdc++.so.5...(no debugging symbols found)...done.
Loaded symbols for /lib/libstdc++.so.5
Reading symbols from /opt/lib/libgcc_s.so.1...done.
Loaded symbols for /opt/lib/libgcc_s.so.1
Reading symbols from /lib/ld.so.1...done.
Loaded symbols for /lib/ld.so.1
Reading symbols from /lib/libnss_files.so.2...done.
Loaded symbols for /lib/libnss_files.so.2
Reading symbols from /usr/syno/apache/modules/mod_rewrite.so...done.
Loaded symbols for /usr/syno/apache/modules/mod_rewrite.so
Reading symbols from /usr/syno/apache/modules/mod_xsendfile.so...done.
Loaded symbols for /usr/syno/apache/modules/mod_xsendfile.so
Reading symbols from /lib/libphp5.so...done.
Loaded symbols for /lib/libphp5.so
Reading symbols from /lib/libsqlite3.so.0...done.
Loaded symbols for /lib/libsqlite3.so.0
Reading symbols from /lib/libz.so.1...done.
Loaded symbols for /lib/libz.so.1
Reading symbols from /usr/syno/apache/modules/mod_deflate.so...done.
Loaded symbols for /usr/syno/apache/modules/mod_deflate.so
Reading symbols from /usr/syno/apache/modules/mod_headers.so...done.
Loaded symbols for /usr/syno/apache/modules/mod_headers.so
Reading symbols from /lib/php/extensions/curl.so...done.
Loaded symbols for /lib/php/extensions/curl.so
Reading symbols from /lib/libsynoproxy.so.4...done.
Loaded symbols for /lib/libsynoproxy.so.4
Reading symbols from /lib/libcurl.so.4...done.
Loaded symbols for /lib/libcurl.so.4
Reading symbols from /lib/php/extensions/exif.so...done.
Loaded symbols for /lib/php/extensions/exif.so
Reading symbols from /lib/php/extensions/gd.so...done.
Loaded symbols for /lib/php/extensions/gd.so
Reading symbols from /lib/libfreetype.so.6...done.
Loaded symbols for /lib/libfreetype.so.6
Reading symbols from /lib/libjpeg.so.62...done.
Loaded symbols for /lib/libjpeg.so.62
Reading symbols from /lib/php/extensions/iconv.so...done.
Loaded symbols for /lib/php/extensions/iconv.so
Reading symbols from /lib/libiconv.so.2...done.
Loaded symbols for /lib/libiconv.so.2
Reading symbols from /lib/php/extensions/imap.so...done.
Loaded symbols for /lib/php/extensions/imap.so
Reading symbols from /lib/libpam.so.0...done.
Loaded symbols for /lib/libpam.so.0
Reading symbols from /lib/php/extensions/mbstring.so...done.
Loaded symbols for /lib/php/extensions/mbstring.so
Reading symbols from /lib/php/extensions/mcrypt.so...done.
Loaded symbols for /lib/php/extensions/mcrypt.so
Reading symbols from /lib/libmcrypt.so.4...done.
Loaded symbols for /lib/libmcrypt.so.4
Reading symbols from /lib/php/extensions/mysql.so...done.
Loaded symbols for /lib/php/extensions/mysql.so
Reading symbols from /usr/syno/mysql/lib/mysql/libmysqlclient.so.16...done.
Loaded symbols for /usr/syno/mysql/lib/mysql/libmysqlclient.so.16
Reading symbols from /lib/libnsl.so.1...done.
Loaded symbols for /lib/libnsl.so.1
Reading symbols from /lib/php/extensions/mysqli.so...done.
Loaded symbols for /lib/php/extensions/mysqli.so
Reading symbols from /lib/php/extensions/pdo_mysql.so...done.
Loaded symbols for /lib/php/extensions/pdo_mysql.so
Reading symbols from /lib/php/extensions/pdo_pgsql.so...done.
Loaded symbols for /lib/php/extensions/pdo_pgsql.so
Reading symbols from /lib/libpq.so.5...done.
Loaded symbols for /lib/libpq.so.5
Reading symbols from /lib/php/extensions/pgsql.so...done.
Loaded symbols for /lib/php/extensions/pgsql.so
Reading symbols from /lib/php/extensions/sockets.so...done.
Loaded symbols for /lib/php/extensions/sockets.so
Reading symbols from /lib/php/extensions/zip.so...done.
Loaded symbols for /lib/php/extensions/zip.so
Reading symbols from /lib/php/extensions/zlib.so...done.
Loaded symbols for /lib/php/extensions/zlib.so
Reading symbols from /lib/php/extensions/ssh2.so...done.
Loaded symbols for /lib/php/extensions/ssh2.so
Reading symbols from /lib/libnss_dns.so.2...done.
Loaded symbols for /lib/libnss_dns.so.2

Core was generated by `/usr/syno/apache/bin/httpd -DHAVE_PHP'.
Program terminated with signal 11, Segmentation fault.
[New process 13396]
#0  0x0f3ce038 in ?? () from /lib/libc.so.6
(gdb) bt
#0  0x0f3ce038 in ?? () from /lib/libc.so.6
#1  0x0f3ce114 in ?? () from /lib/libc.so.6
#2  0x00000400 in ?? ()
#3  0x0f3ce2c8 in ?? () from /lib/libc.so.6
#4  0x0f339910 in ?? () from /lib/libc.so.6
#5  0x0f33984c in ?? () from /lib/libc.so.6
#6  0x0f339a4c in qsort () from /lib/libc.so.6
#7  0x0f3ce930 in getaddrinfo () from /lib/libc.so.6
#8  0x0e46f354 in ?? () from /lib/libphp5.so
#9  0x0e470020 in php_network_connect_socket_to_host () from /lib/libphp5.so
#10 0x0e482d80 in ?? () from /lib/libphp5.so
#11 0x0e482860 in ?? () from /lib/libphp5.so
#12 0x0e476078 in _php_stream_set_option () from /lib/libphp5.so
#13 0x0e4815b0 in php_stream_xport_connect () from /lib/libphp5.so
#14 0x0e481114 in _php_stream_xport_create () from /lib/libphp5.so
#15 0x0e43a6a4 in php_stream_url_wrap_http_ex () from /lib/libphp5.so
#16 0x0e43d640 in php_stream_url_wrap_http () from /lib/libphp5.so
#17 0x0e477ac4 in _php_stream_open_wrapper_ex () from /lib/libphp5.so
#18 0x0e2db4e8 in ?? () from /lib/libphp5.so
#19 0x0e2db700 in ?? () from /lib/libphp5.so
#20 0x0f601be4 in xmlParserInputBufferCreateFilename () from /lib/libxml2.so.2
#21 0x0f5d1364 in xmlNewInputFromFile () from /lib/libxml2.so.2
#22 0x0f603a04 in ?? () from /lib/libxml2.so.2
#23 0x0f603bec in xmlLoadExternalEntity () from /lib/libxml2.so.2
#24 0x0f5ec1bc in xmlCreateURLParserCtxt () from /lib/libxml2.so.2
#25 0x0f5ed830 in xmlReadFile () from /lib/libxml2.so.2
#26 0x0e37aca0 in zif_simplexml_load_file () from /lib/libphp5.so
#27 0x0e4dfc24 in ?? () from /lib/libphp5.so
#28 0x0e4defac in execute () from /lib/libphp5.so
#29 0x0e4b90dc in zend_execute_scripts () from /lib/libphp5.so
#30 0x0e45fc1c in php_execute_script () from /lib/libphp5.so
#31 0x0e547420 in ?? () from /lib/libphp5.so
#32 0x1002f8a4 in ap_run_handler ()
#33 0x1002ff98 in ap_invoke_handler ()
#34 0x1004afa0 in ap_process_request ()
#35 0x1004869c in ?? ()
#36 0x100367ac in ap_run_process_connection ()
#37 0x1005ec58 in ?? ()
#38 0x1005ee1c in ?? ()
#39 0x1005f094 in ?? ()
#40 0x1005f544 in ap_mpm_run ()
#41 0x1001c110 in main ()
(gdb) frame 28
#28 0x0e4defac in execute () from /lib/libphp5.so
(gdb) print (char *) (executor_globals.function_state_ptr->function)->common.function.name
Attempt to extract a component of a value that is not a structure.
cobalt74 commented 10 years ago

ce qui est bien c'est que c'est tjrs aussi imbitable ces cores dump. Tu as de la chance, j'ai vu que la DSM 5.0 est dans les bacs. (en espérant que ça te corriges ton problème)

Sbgodin commented 10 years ago

À vue de nez, j'ai l'impression que c'est le processus faisant l'accès réseau qui est impoliment arrêté et qui plante ainsi. Peut-être l'expiration du délai d'exécution de la requête réseau ?