-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Closed
Description
We saw this in production. Not sure what caused Relay to go all "fundefined" but here's the query:
query Sidebar_route {
currentAccount {
id
...Fundefined
}
}
fragment F0 on Project {
name
identifier
platform
iconUrl
organization {
alias
name
id
}
id
}
fragment Fundefined on Account {
_projectsundefinedcqQId: projects(first: 100) {
pageInfo {
hasNextPage
hasPreviousPage
}
edges {
node {
externalId
name
identifier
platform
organization {
name
alias
id
}
id
...F0
}
cursor
}
}
id
}
fragment Fundefined on Account {
id
...Fundefined
}
And a bit of the stack trace:
RangeError: Maximum call stack size exceeded
RangeError: Maximum call stack size exceeded
at sameArguments (/srv/graphql-server/releases/ac9417eae173c36d5b9d0c6c9315f829ff0c2a63/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMerged.js:444:23)
at findConflict (/srv/graphql-server/releases/ac9417eae173c36d5b9d0c6c9315f829ff0c2a63/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMerged.js:424:10)
at /srv/graphql-server/releases/ac9417eae173c36d5b9d0c6c9315f829ff0c2a63/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMerged.js:375:26
at Array.forEach (native) at collectConflictsBetween (/srv/graphql-server/releases/ac9417eae173c36d5b9d0c6c9315f829ff0c2a63/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMerged.js:369:34)
at collectConflictsBetweenFieldsAndFragment (/srv/graphql-server/releases/ac9417eae173c36d5b9d0c6c9315f829ff0c2a63/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMerged.js:225:3)
at collectConflictsBetweenFieldsAndFragment (/srv/graphql-server/releases/ac9417eae173c36d5b9d0c6c9315f829ff0c2a63/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMerged.js:230:5)
at collectConflictsBetweenFieldsAndFragment (/srv/graphql-server/releases/ac9417eae173c36d5b9d0c6c9315f829ff0c2a63/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMerged.js:230:5)
at collectConflictsBetweenFieldsAndFragment (/srv/graphql-server/releases/ac9417eae173c36d5b9d0c6c9315f829ff0c2a63/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMerged.js:230:5)
at collectConflictsBetweenFieldsAndFragment (/srv/graphql-server/releases/ac9417eae173c36d5b9d0c6c9315f829ff0c2a63/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMerged.js:230:5)
at collectConflictsBetweenFieldsAndFragment (/srv/graphql-server/releases/ac9417eae173c36d5b9d0c6c9315f829ff0c2a63/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMerged.js:230:5)
at collectConflictsBetweenFieldsAndFragment (/srv/graphql-server/releases/ac9417eae173c36d5b9d0c6c9315f829ff0c2a63/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMerged.js:230:5)
at collectConflictsBetweenFieldsAndFragment (/srv/graphql-server/releases/ac9417eae173c36d5b9d0c6c9315f829ff0c2a63/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMerged.js:230:5)
at collectConflictsBetweenFieldsAndFragment (/srv/graphql-server/releases/ac9417eae173c36d5b9d0c6c9315f829ff0c2a63/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMerged.js:230:5)
at collectConflictsBetweenFieldsAndFragment (/srv/graphql-server/releases/ac9417eae173c36d5b9d0c6c9315f829ff0c2a63/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMerged.js:230:5)
at collectConflictsBetweenFieldsAndFragment (/srv/graphql-server/releases/ac9417eae173c36d5b9d0c6c9315f829ff0c2a63/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMerged.js:230:5)
I would expect that this query would be rejected on validation rather than causing a recursive stack blowup.
graphql-js v0.6.0
Metadata
Metadata
Assignees
Labels
No labels