Crash php sur ob_get_contents() conditions difficiles à déterminer, aucune piste : help
Posté : 19 mai 2015, 13:30
Bonsoir,
Sur un plugin WordPress dont je suis l'auteur (une création de sommaire de documents, non encore totalement finalisé), j'avais, depuis quelques semaines constaté une défaillance sur certains contenus, (avait fonctionné correctement pendant le développement) : un bug de cas particulier de détail à voir...
Je viens de finaliser des test.
Pour une raison totalement inconnue pour l'instant ob_get_content()interrompt la procédure courante qui l'appelle , pas un crash général (j'ai créé une trace -commentaire html -"avant" la fonction : ok, celui "après" n'est pas exécuté : la fonction exécute comme un "return" dans la procédure appelante).
Try catch ne renvoie rien, on plante dans le try, il n'y a pas d'exception générée.
Je n'ai donc pas de piste.
Je ne vois pas comment le contenu peut avoir une influence sur la fonction.
Je ne vois pas quel contexte d'exécution peut avoir une influence.
Je n'ai pas d'outil permettant d'analyser le crash interne de la fonction.
Il n'y a pas de message d'erreur (exécuté en mode debug chez OVH).
Merci d'avance pour des pistes.
Cordialement
Trebly
____________________________________________________________________________________________________________
Detail de contexte :
Plugin WordPress, widget de ma conception (non encore publié, en développement de compléments et qui fonctionnait parfaitement depuis deux mois) il traite le buffer en cours de création quand le contenu principal a été généré, un callback partiel en quelque sorte.
Le plugin est appelé après la création de ce contenu principal dans lequel je peux effectuer les replace utiles avant de repasser la main.
La génération dynamique de listes d'articles nécessite un callback pour faire un sommaire et quelques traitement de données numériques repérables par des balises spécifiques etc...
Quand le même plugin est appelé pour faire un sommaire d'un article isolé (sans liste d'articles) tout se déroule parfaitement bien. Les instructions sont identiques jusqu'à la recherche d'information dans le buffer. C'est la lecture du buffer qui permet de déterminer le type de document pour décider du mode de génération de sommaire.
Le crash se produit lors de cette lecture du buffer pour un type de contenus particulier, j'y perds mon latin puisque la lecture n'a en principe rien à voir avoir le contenu.
Je ne vois aucune raison pour que la situation soit différente en fonction du contenu (par exemple une ouverture d'un ob intermédiaire non refermé -i.e. ajax : sa lecture pourrait de toute manière s'effectuer, mais comme les traces immédiatement précédentes, générées par "echo de comment HTML" sont là il n'y rien à voir sur cette piste)...
NB : j'ai entre 50 000 et 100 000 lignes de code à mon actif.
Sur un plugin WordPress dont je suis l'auteur (une création de sommaire de documents, non encore totalement finalisé), j'avais, depuis quelques semaines constaté une défaillance sur certains contenus, (avait fonctionné correctement pendant le développement) : un bug de cas particulier de détail à voir...
Je viens de finaliser des test.
Pour une raison totalement inconnue pour l'instant ob_get_content()interrompt la procédure courante qui l'appelle , pas un crash général (j'ai créé une trace -commentaire html -"avant" la fonction : ok, celui "après" n'est pas exécuté : la fonction exécute comme un "return" dans la procédure appelante).
Try catch ne renvoie rien, on plante dans le try, il n'y a pas d'exception générée.
Je n'ai donc pas de piste.
Je ne vois pas comment le contenu peut avoir une influence sur la fonction.
Je ne vois pas quel contexte d'exécution peut avoir une influence.
Je n'ai pas d'outil permettant d'analyser le crash interne de la fonction.
Il n'y a pas de message d'erreur (exécuté en mode debug chez OVH).
Merci d'avance pour des pistes.
Cordialement
Trebly
____________________________________________________________________________________________________________
Detail de contexte :
Plugin WordPress, widget de ma conception (non encore publié, en développement de compléments et qui fonctionnait parfaitement depuis deux mois) il traite le buffer en cours de création quand le contenu principal a été généré, un callback partiel en quelque sorte.
Le plugin est appelé après la création de ce contenu principal dans lequel je peux effectuer les replace utiles avant de repasser la main.
La génération dynamique de listes d'articles nécessite un callback pour faire un sommaire et quelques traitement de données numériques repérables par des balises spécifiques etc...
Quand le même plugin est appelé pour faire un sommaire d'un article isolé (sans liste d'articles) tout se déroule parfaitement bien. Les instructions sont identiques jusqu'à la recherche d'information dans le buffer. C'est la lecture du buffer qui permet de déterminer le type de document pour décider du mode de génération de sommaire.
Le crash se produit lors de cette lecture du buffer pour un type de contenus particulier, j'y perds mon latin puisque la lecture n'a en principe rien à voir avoir le contenu.
Je ne vois aucune raison pour que la situation soit différente en fonction du contenu (par exemple une ouverture d'un ob intermédiaire non refermé -i.e. ajax : sa lecture pourrait de toute manière s'effectuer, mais comme les traces immédiatement précédentes, générées par "echo de comment HTML" sont là il n'y rien à voir sur cette piste)...
NB : j'ai entre 50 000 et 100 000 lignes de code à mon actif.