rjsf-team/react-jsonschema-form

Recursive json-schema definition causes the browser to hang and eventually stack overflow

Closed

#3,907 opened on Oct 13, 2023

 (7 comments) (0 reactions) (1 assignee)TypeScript (2,136 forks)batch import
$refbughelp wanted

Repository metrics

Stars
 (13,175 stars)
PR merge metrics
 (Avg merge 3d 17h) (32 merged PRs in 30d)

Description

Prerequisites

What theme are you using?

core

Version

5.x

Current Behavior

Schema:

{
  "title": "A registration form",
  "description": "A simple form example.",
  "type": "object",
  "properties": {
    "child": {
      "$ref": "#"
    }
  }
}

Expected Behavior

Not to hang aka eventually stack overflow

Steps To Reproduce

Paste that schema into the playground, that schema is a simplification of what happens when I attempt to use the draft-07 json-schema meta-schema.

Environment

N/A

Anything else?

@heath-freenome , as requested in #3560. I dont really know anything about react anymore, but just poking around for a bit, the Form seems to be trying to render a recursive reference. It seems like the correct behavior should either be an error something like: "Hey, we don't allow recursive references", or just build the feature which marks definitions as seen, which may require a bit of a change in strat from DFS to BFS of the schema tree.

Also, im not sure if its a goal of this project, but it seems to me some good test cases are actually the json-schema meta-schemas. But I recon that is a separate issue altogether.

Contributor guide