Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Bug: Race condition in completeSegment ($RS) causes "Cannot read properties of null (reading 'parentNode')" error

Ouverte Adaptée aux débutants
#35,056 7 commentaires 5 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
75/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
javascript, react
Domaine
frontend

Piste de recherche

Commencez par completeSegment dans packages/react-dom-bindings/src/server/fizz-instruction-set/ReactDOMFizzInstructionSetInlineCodeStrings.js et reproduisez le problème en utilisant le dépôt lié avec npm install, npm run build et npm run start. Rechargez la page de production comme décrit et vérifiez que la résolution de Suspense ne produit plus l'erreur null parentNode.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Status: Unconfirmed

The $RS (completeSegment) function in React DOM's Server-Side Rendering lacks null safety checks on parentNode, causing a race condition error when Suspense boundaries resolve in production builds.

Error:
Cannot read properties of null (reading 'parentNode')

Root Cause:
File: packages/react-dom-bindings/src/server/fizz-instruction-set/ReactDOMFizzInstructionSetInlineCodeStrings.js (line 15)

The completeSegment function doesn't check if a.parentNode or b.parentNode is null before accessing it. During Suspense resolution, nodes can be removed by other processes, setting parentNode to null.

Buggy Code:
https://github.com/facebook/react/blob/v19.2.0/packages/react-dom-bindings/src/server/fizz-instruction-set/ReactDOMFizzInstructionSetInlineCodeStrings.js#L15

export const completeSegment =
  '$RS=function(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};';

Proposed Fix:

export const completeSegment =
  '$RS=function(a,b){a=document.getElementById(a);b=document.getElementById(b);if(a&&b&&a.parentNode&&b.parentNode){for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)}};';

React version: 19.2.0

Steps To Reproduce

  1. Clone the reproduction repository
  2. Run npm install
  3. Run npm run build (production build required)
  4. Run npm run start
  5. Navigate to http://localhost:3000
  6. Note: The bug may not occur on the first page load. Reload the page several times if needed.
  7. Check browser console for the error

Link to code example:

https://github.com/ponharu/react-issue

The current behavior

During SSR with Suspense boundaries in production builds, the $RS function throws:
Cannot read properties of null (reading 'parentNode')

This occurs when the function attempts to manipulate DOM nodes whose parentNode has become null due to a race condition during Suspense resolution.

The expected behavior

The $RS function should safely handle cases where parentNode is null by checking for null before attempting DOM manipulation, preventing the error and allowing the page to render correctly.

Langage dominant
JavaScript
Étoiles
251k
Forks
51.4k
Merge moyen
2 j 4 h
PR mergées (30 j)
50

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de react/react

Toutes les issues de react/react

Issues similaires

Plus d'issues JavaScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.