6
votes

Pourquoi est-ce que je reçois cette erreur de segmentation dans ce script de ligne de commande PHP?

C'est juste un script rapide à un message à ce que j'appelle un «fichier journal mental». Juste pour garder une trace de mes pensées quand je m'éloigne et me remettez-moi au travail. Quoi qu'il en soit, cela fonctionne bien la plupart du temps, mais chaque souvent, je reçois une faute de segmentation. Entendu parler d'eux en C, mais ne les avais jamais déjà avancés dans PHP. Voici le script:

ali@oem-desktop:~$ php --version
PHP 5.2.6-3ubuntu4.1 with Suhosin-Patch 0.9.6.2 (cli) (built: Apr 23 2009 14:37:14) 
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies


1 commentaires

J'ai des scripts assez triviaux php CLI que Segfault apparemment au hasard, aussi.


8 Réponses :


9
votes

Essayez

strace mlog bla

et voir si cela donne quelques indices comme ce qu'il fait quand il meurt. Pour ce que ça vaut la peine, je ne pouvais pas reproduire que sur une installation jaunalité 64 bits avec le même PHP Construire votre rapport.


4 commentaires

Merci pour ça! J'ai essayé de l'exécuter, mais je ne suis pas aussi classé sur les appels système / la programmation de bas niveau, ne pouvait pas vraiment donner un sens à la sortie.


Collez une strace d'un crash typique dans Pastebin.com et ajoutez un lien à votre question dans votre question


De plus, Troelsknkn est probablement sur quelque chose - quelles extensions avez-vous activées?


wow ... cela m'a sauvé l'homme ... pouvait voir que c'était à faire de l'autoloading sur ... strace est une grande aide



0
votes

Impossible de reproduire, sans surprise. Expérimentalement, j'essaierais d'ajouter au fichier à l'aide de fopen () au lieu de file_put_contents () . .


0 commentaires

4
votes

Il est très probable que vous ayez une extension qui gâche en quelque sorte. Cela peut arriver si l'extension a été construite pour une version différente de PHP ou d'une bibliothèque externe. Essayez de désactiver toutes les extensions dans PHP.ini et voyez si cela résout le problème. Si tel est le cas, puis réactivez chaque extension, une à la fois, jusqu'à ce que vous trouviez le délinquant.


0 commentaires

1
votes

J'ai vu exactement les mêmes choses, et c'est généralement juste en indicateur d'un bug PHP.

Je mettrai la mise à niveau vers la dernière version, si le problème persiste .. Fichez un rapport de bogue. Si vous êtes bloqué vers les versions Ubuntu, vous pourrez peut-être poster un rapport de bogue dans le suivi de Ubuntu.


0 commentaires

2
votes

ressemble à Ubuntu Bug # 343870 dans php5-mysql. Je ne reçois plus une erreur de segmentation avec PHP MySQL et MySQLI Modules désactivés.


0 commentaires

3
votes

C'est probablement à cause de ce bogue qui affecte à la fois Ubuntu et Debian ... https://bugs.launchpad.net/ubuntu/+source/php5/+bug/343870


0 commentaires

1
votes

Essayez de changer l'ordre de charge de l'extension. Je devais déplacer PGSQL avant de vous débarrasser d'un segfault que j'avais. Je l'ai essayé après avoir lu ceci:

http://linux.m2osw.com/php_cli_segment_fault_with_pgsql


0 commentaires

-1
votes

J'ai eu cette erreur en raison d'un débordement simple de pile. Pourquoi je n'ai pas eu une autre erreur qu'une erreur de segmentation est une bonne question, mais en utilisant strace et matrice () J'ai tracé le problème.

Server

Debian 6.0 (Squeeze)

Linux domain.com 2.6.32-5-Amd64 # 1 SMP Soleil Sep 23 10:07:46 UTC 2012 X86_64 GNU / Linux

php

PHP 5.3.3-7 + Squeeze14 avec Suhosin-Patch (CLI) (Construit: 6 août 2012 14:18:06)

Copyright (c) 1997-2009 Le groupe PHP

ZEND Moteur V2.3.0, Copyright (c) 1998-2010 Zend Technologies

avec SUHOSIN V0.9.32.1, Copyright (c) 2007-2010, par Sektioneins GmbH

code pour reproduire le problème xxx

sortie

php5 overflowtest.php

Défaut de segmentation

Sortie de la strace (au cas où tout le monde peut l'utiliser pour quoi que ce soit):

Lien de Pastebin


0 commentaires