php / php/php-src

Destructors not invoked after a fatal error

Offen
#18,418 4 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bug Status: Needs Triage
Vorherrschende Sprache
C
Sterne
40.4k
Forks
8.2k
Ø Merge
2 T. 13 Std.
Gemergte PRs (30 T.)
96

Beschreibung

Description

This behavior is caused by https://github.com/php/php-src/blob/9306c9584b01f29d2986460a13a7a34b991a9063/main/main.c#L1477 and is causing a few issues in our code.

Granted, the application state after a fatal error (mainly execution timeout/memory limit) may not be consistent, however shutdown handlers are executed anyway after a fatal: thus, to match the behavior of shutdown handlers, I'd like to submit a PR to re-enable execution of destructors, opening this issue to gauge the mood.

PHP Version

8.4.6

Operating System

Ubuntu 24.04

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Lies main/main.c in der verlinkten Zeile und vergleiche die Behandlung fataler Fehler mit dem Pfad des Shutdown-Handlers. Reproduziere das Verhalten unter PHP 8.4.6 auf Ubuntu 24.04 unter Verwendung eines Ausführungs-Timeouts oder Speicherlimits; abgeschlossen ist es, wenn Destruktoren in den vorgesehenen Fällen nach dem fatalen Fehler aufgerufen werden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
c, php
Bereich
backend
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.