Skip to content

buildSchema triggers infinite recursion on Input types with self reference fields that have default values #2661

Closed
@IvanGoncharov

Description

@IvanGoncharov

Patch to reproduce:

diff --git a/src/utilities/__tests__/buildASTSchema-test.js b/src/utilities/__tests__/buildASTSchema-test.js
index 1d74e356..0b773a0b 100644
--- a/src/utilities/__tests__/buildASTSchema-test.js
+++ b/src/utilities/__tests__/buildASTSchema-test.js
@@ -287,6 +287,16 @@ describe('Schema Builder', () => {
     expect(cycleSDL(sdl)).to.equal(sdl);
   });

+  it('Recursive type', () => {
+    const sdl = dedent`
+      input SomeInput {
+        str: String
+        recurse: SomeInput = { str: "foo" }
+      }
+    `;
+    expect(cycleSDL(sdl)).to.equal(sdl);
+  });
+
   it('Two types circular', () => {
     const sdl = dedent`
       type TypeOne {

Activity

added this to the post-16.0.0 milestone on Aug 13, 2020
JoviDeCroock

JoviDeCroock commented on Oct 10, 2024

@JoviDeCroock
Member

Fixed in #3810

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @IvanGoncharov@JoviDeCroock

        Issue actions

          `buildSchema` triggers infinite recursion on Input types with self reference fields that have default values · Issue #2661 · graphql/graphql-js