wordpress-mobile/gutenberg-mobile

RangeError: Maximum call stack size exceeded (native stack depth)

Opened this issue ยท 4 comments

This issue is a follow-up to this comment.

This crash is produced by different stack traces:

JETPACK-ANDROID-HTT

How to reproduce it

๐Ÿ” Under investigation...

Symbolicated stack trace

gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/browser/index.js:268:defineGetter$argument_2
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/browser/index.js:274:defineGetter$argument_2
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:654:Node.prototype.cloneNode
gutenberg/packages/rich-text/src/create.js:366:collapseWhiteSpace
gutenberg/packages/rich-text/src/create.js:392:Array.from.forEach$argument_0
gutenberg/packages/rich-text/src/create.js:368:collapseWhiteSpace
gutenberg/packages/rich-text/src/create.js:392:Array.from.forEach$argument_0
gutenberg/packages/rich-text/src/create.js:368:collapseWhiteSpace
gutenberg/packages/rich-text/src/create.js:392:Array.from.forEach$argument_0
gutenberg/packages/rich-text/src/create.js:368:collapseWhiteSpace
gutenberg/packages/rich-text/src/create.js:392:Array.from.forEach$argument_0
gutenberg/packages/rich-text/src/create.js:368:collapseWhiteSpace
gutenberg/packages/rich-text/src/create.js:392:Array.from.forEach$argument_0
gutenberg/packages/rich-text/src/create.js:368:collapseWhiteSpace
gutenberg/packages/rich-text/src/create.js:392:Array.from.forEach$argument_0
gutenberg/packages/rich-text/src/create.js:368:collapseWhiteSpace
gutenberg/packages/rich-text/src/create.js:392:Array.from.forEach$argument_0
gutenberg/packages/rich-text/src/create.js:368:collapseWhiteSpace
gutenberg/packages/rich-text/src/create.js:392:Array.from.forEach$argument_0
gutenberg/packages/rich-text/src/create.js:368:collapseWhiteSpace
gutenberg/packages/rich-text/src/create.js:392:Array.from.forEach$argument_0
gutenberg/packages/rich-text/src/create.js:368:collapseWhiteSpace
gutenberg/packages/rich-text/src/create.js:392:Array.from.forEach$argument_0
gutenberg/packages/rich-text/src/create.js:368:collapseWhiteSpace
gutenberg/packages/rich-text/src/create.js:392:Array.from.forEach$argument_0
gutenberg/packages/rich-text/src/create.js:368:collapseWhiteSpace
gutenberg/packages/rich-text/src/create.js:392:Array.from.forEach$argument_0
gutenberg/packages/rich-text/src/create.js:368:collapseWhiteSpace
gutenberg/packages/rich-text/src/create.js:392:Array.from.forEach$argument_0
gutenberg/packages/rich-text/src/create.js:368:collapseWhiteSpace
gutenberg/packages/rich-text/src/create.js:392:Array.from.forEach$argument_0
gutenberg/packages/rich-text/src/create.js:368:collapseWhiteSpace
gutenberg/packages/rich-text/src/create.js:392:Array.from.forEach$argument_0
gutenberg/packages/rich-text/src/create.js:368:collapseWhiteSpace
gutenberg/packages/rich-text/src/create.js:392:Array.from.forEach$argument_0
gutenberg/packages/rich-text/src/create.js:392:Array.from.forEach$argument_0
gutenberg/packages/rich-text/src/create.js:368:collapseWhiteSpace
gutenberg/packages/rich-text/src/create.js:392:Array.from.forEach$argument_0
gutenberg/packages/rich-text/src/create.js:368:collapseWhiteSpace
gutenberg/packages/rich-text/src/create.js:392:Array.from.forEach$argument_0
gutenberg/packages/rich-text/src/create.js:368:collapseWhiteSpace
gutenberg/packages/rich-text/src/create.js:392:Array.from.forEach$argument_0
gutenberg/packages/rich-text/src/create.js:368:collapseWhiteSpace
gutenberg/packages/rich-text/src/create.js:392:Array.from.forEach$argument_0
gutenberg/packages/rich-text/src/create.js:368:collapseWhiteSpace
gutenberg/packages/rich-text/src/create.js:392:Array.from.forEach$argument_0
gutenberg/packages/rich-text/src/create.js:368:collapseWhiteSpace
gutenberg/packages/rich-text/src/create.js:133:RichTextData.fromHTMLElement
gutenberg/packages/blocks/src/api/matchers.js:53:<anonymous>
gutenberg/packages/blocks/src/api/parser/get-block-attributes.js:280:parseWithAttributeSchema
gutenberg/packages/blocks/src/api/parser/get-block-attributes.js:155:getBlockAttribute
gutenberg/packages/blocks/src/api/parser/get-block-attributes.js:304:Object.entries.map$argument_0
gutenberg/packages/blocks/src/api/parser/get-block-attributes.js:301:getBlockAttributes
gutenberg/packages/blocks/src/api/parser/index.js:234:parseRawBlock
gutenberg/packages/blocks/src/api/parser/index.js:312:grammarParse.reduce$argument_0
gutenberg/packages/blocks/src/api/parser/index.js:311:parse
gutenberg/packages/edit-post/src/editor.native.js:168:Editor#render
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:4729:finishClassComponent
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:4700:updateClassComponent
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:7866:beginWork$1
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:7304:performUnitOfWork
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:7297:workLoopSync
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:7279:renderRootSync
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:6975:performSyncWorkOnRoot
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:2145:flushSyncCallbacks
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:6650:scheduleUpdateOnFiber
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:8423:updateContainer
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:8584:exports.render
gutenberg/node_modules/react-native/Libraries/ReactNative/RendererImplementation.js:35:renderElement
gutenberg/node_modules/react-native/Libraries/ReactNative/renderApplication.js:96:renderApplication
gutenberg/node_modules/react-native/Libraries/ReactNative/AppRegistry.js:120:runnables.appKey.run
gutenberg/node_modules/react-native/Libraries/ReactNative/AppRegistry.js:214:runApplication
gutenberg/node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:427:__callFunction
gutenberg/node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:113:__guard$argument_0
gutenberg/node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:368:__guard
gutenberg/node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:112:callFunctionReturnFlushedQueue

JETPACK-ANDROID-HTM

How to reproduce it

๐Ÿ” Under investigation...

Symbolicated stack trace

gutenberg/packages/blocks/src/api/raw-handling/utils.js:135:deepFilterNodeList
gutenberg/packages/blocks/src/api/raw-handling/utils.js:136:Array.from.forEach$argument_0
gutenberg/packages/blocks/src/api/raw-handling/utils.js:135:deepFilterNodeList
gutenberg/packages/blocks/src/api/raw-handling/utils.js:136:Array.from.forEach$argument_0
gutenberg/packages/blocks/src/api/raw-handling/utils.js:135:deepFilterNodeList
gutenberg/packages/blocks/src/api/raw-handling/utils.js:136:Array.from.forEach$argument_0
gutenberg/packages/blocks/src/api/raw-handling/utils.js:135:deepFilterNodeList
gutenberg/packages/blocks/src/api/raw-handling/utils.js:136:Array.from.forEach$argument_0
gutenberg/packages/blocks/src/api/raw-handling/utils.js:135:deepFilterNodeList
gutenberg/packages/blocks/src/api/raw-handling/utils.js:136:Array.from.forEach$argument_0
gutenberg/packages/blocks/src/api/raw-handling/utils.js:135:deepFilterNodeList
gutenberg/packages/blocks/src/api/raw-handling/utils.js:136:Array.from.forEach$argument_0
gutenberg/packages/blocks/src/api/raw-handling/utils.js:135:deepFilterNodeList
gutenberg/packages/blocks/src/api/raw-handling/utils.js:136:Array.from.forEach$argument_0
gutenberg/packages/blocks/src/api/raw-handling/utils.js:135:deepFilterNodeList
gutenberg/packages/blocks/src/api/raw-handling/utils.js:136:Array.from.forEach$argument_0
gutenberg/packages/blocks/src/api/raw-handling/utils.js:135:deepFilterNodeList
gutenberg/packages/blocks/src/api/raw-handling/utils.js:136:Array.from.forEach$argument_0
gutenberg/packages/blocks/src/api/raw-handling/utils.js:135:deepFilterNodeList
gutenberg/packages/blocks/src/api/raw-handling/utils.js:136:Array.from.forEach$argument_0
gutenberg/packages/blocks/src/api/raw-handling/utils.js:135:deepFilterNodeList
gutenberg/packages/blocks/src/api/raw-handling/utils.js:136:Array.from.forEach$argument_0
gutenberg/packages/blocks/src/api/raw-handling/utils.js:135:deepFilterNodeList
gutenberg/packages/blocks/src/api/raw-handling/utils.js:136:Array.from.forEach$argument_0
gutenberg/packages/blocks/src/api/raw-handling/utils.js:135:deepFilterNodeList
gutenberg/packages/blocks/src/api/raw-handling/utils.js:136:Array.from.forEach$argument_0
gutenberg/packages/blocks/src/api/raw-handling/utils.js:135:deepFilterNodeList
gutenberg/packages/blocks/src/api/raw-handling/utils.js:136:Array.from.forEach$argument_0
gutenberg/packages/blocks/src/api/raw-handling/utils.js:135:deepFilterNodeList
gutenberg/packages/blocks/src/api/raw-handling/utils.js:136:Array.from.forEach$argument_0
gutenberg/packages/blocks/src/api/raw-handling/utils.js:135:deepFilterNodeList
gutenberg/packages/blocks/src/api/raw-handling/utils.js:136:Array.from.forEach$argument_0
gutenberg/packages/blocks/src/api/raw-handling/utils.js:135:deepFilterNodeList
gutenberg/packages/blocks/src/api/raw-handling/utils.js:135:deepFilterNodeList
gutenberg/packages/blocks/src/api/raw-handling/utils.js:136:Array.from.forEach$argument_0
gutenberg/packages/blocks/src/api/raw-handling/utils.js:135:deepFilterNodeList
gutenberg/packages/blocks/src/api/raw-handling/utils.js:136:Array.from.forEach$argument_0
gutenberg/packages/blocks/src/api/raw-handling/utils.js:135:deepFilterNodeList
gutenberg/packages/blocks/src/api/raw-handling/utils.js:136:Array.from.forEach$argument_0
gutenberg/packages/blocks/src/api/raw-handling/utils.js:135:deepFilterNodeList
gutenberg/packages/blocks/src/api/raw-handling/utils.js:136:Array.from.forEach$argument_0
gutenberg/packages/blocks/src/api/raw-handling/utils.js:135:deepFilterNodeList
gutenberg/packages/blocks/src/api/raw-handling/utils.js:136:Array.from.forEach$argument_0
gutenberg/packages/blocks/src/api/raw-handling/utils.js:135:deepFilterNodeList
gutenberg/packages/blocks/src/api/raw-handling/utils.js:136:Array.from.forEach$argument_0
gutenberg/packages/blocks/src/api/raw-handling/utils.js:135:deepFilterNodeList
gutenberg/packages/blocks/src/api/raw-handling/utils.js:136:Array.from.forEach$argument_0
gutenberg/packages/blocks/src/api/raw-handling/utils.js:135:deepFilterNodeList
gutenberg/packages/blocks/src/api/raw-handling/utils.js:136:Array.from.forEach$argument_0
gutenberg/packages/blocks/src/api/raw-handling/utils.js:135:deepFilterNodeList
gutenberg/packages/blocks/src/api/raw-handling/utils.js:164:deepFilterHTML
gutenberg/packages/blocks/src/api/raw-handling/paste-handler.js:119:pasteHandler
gutenberg/packages/block-editor/src/components/rich-text/index.native.js:436:onPaste
gutenberg/packages/block-editor/src/components/rich-text/native/index.native.js:537:RichText#onPaste
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:22:invokeGuardedCallbackImpl
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:40:invokeGuardedCallback
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:53:invokeGuardedCallbackAndCatchFirstError
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:73:executeDispatch
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:1125:executeDispatchesAndReleaseTopLevel
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:361:forEachAccumulated
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:1160:batchedUpdates$argument_0
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:8457:batchedUpdatesImpl
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:1106:batchedUpdates
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:1137:_receiveRootNodeIDEvent
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:1178:ReactNativePrivateInterface.RCTEventEmitter.register$argument_0.receiveEvent
gutenberg/node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:427:__callFunction
gutenberg/node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:113:__guard$argument_0
gutenberg/node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:368:__guard
gutenberg/node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:112:callFunctionReturnFlushedQueue

JETPACK-ANDROID-HSV

How to reproduce it

๐Ÿ” Under investigation...

Symbolicated stack trace

gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/browser/index.js:268:defineGetter$argument_2
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:1367:filterByTagName
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:48:reducer
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:44:visit
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:52:reducer
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:44:visit
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:52:reducer
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:44:visit
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:52:reducer
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:44:visit
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:52:reducer
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:44:visit
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:52:reducer
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:44:visit
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:52:reducer
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:44:visit
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:52:reducer
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:44:visit
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:52:reducer
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:44:visit
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:52:reducer
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:44:visit
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:52:reducer
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:44:visit
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:52:reducer
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:44:visit
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:52:reducer
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:44:visit
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:52:reducer
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:44:visit
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:57:mapDOMNodes
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:37:<anonymous>
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:207:NodeList.prototype._update
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:185:NodeList
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/level1/core.js:1375:inheritFrom$argument_2.getElementsByTagName
gutenberg/node_modules/jsdom-jscore-rn/lib/builtins/nwmatcher/src/nwmatcher-noqsa.js:881:select
gutenberg/node_modules/jsdom-jscore-rn/lib/builtins/nwmatcher/src/nwmatcher-noqsa.js:798:first
gutenberg/node_modules/jsdom-jscore-rn/lib/jsdom/selectors/index.js:29:dom.Element.prototype.querySelector
gutenberg/packages/blocks/src/api/matchers.js:51:<anonymous>
gutenberg/packages/blocks/src/api/parser/get-block-attributes.js:280:parseWithAttributeSchema
gutenberg/packages/blocks/src/api/parser/get-block-attributes.js:155:getBlockAttribute
gutenberg/packages/blocks/src/api/parser/get-block-attributes.js:304:Object.entries.map$argument_0
gutenberg/packages/blocks/src/api/parser/get-block-attributes.js:301:getBlockAttributes
gutenberg/packages/blocks/src/api/parser/index.js:234:parseRawBlock
gutenberg/packages/blocks/src/api/parser/index.js:227:normalizedBlock.innerBlocks.map$argument_0
gutenberg/packages/blocks/src/api/parser/index.js:227:parseRawBlock
gutenberg/packages/blocks/src/api/parser/index.js:312:grammarParse.reduce$argument_0
gutenberg/packages/blocks/src/api/parser/index.js:311:parse
gutenberg/packages/edit-post/src/editor.native.js:168:Editor#render
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:4729:finishClassComponent
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:4700:updateClassComponent
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:7866:beginWork$1
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:7304:performUnitOfWork
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:7297:workLoopSync
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:7279:renderRootSync
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:6975:performSyncWorkOnRoot
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:2145:flushSyncCallbacks
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:6650:scheduleUpdateOnFiber
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:8423:updateContainer
gutenberg/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js:8584:exports.render
gutenberg/node_modules/react-native/Libraries/ReactNative/RendererImplementation.js:35:renderElement
gutenberg/node_modules/react-native/Libraries/ReactNative/renderApplication.js:96:renderApplication
gutenberg/node_modules/react-native/Libraries/ReactNative/AppRegistry.js:120:runnables.appKey.run
gutenberg/node_modules/react-native/Libraries/ReactNative/AppRegistry.js:214:runApplication
gutenberg/node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:427:__callFunction
gutenberg/node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:113:__guard$argument_0
gutenberg/node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:368:__guard
gutenberg/node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:112:callFunctionReturnFlushedQueue

So far there are only two user sessions that can be explored, however, only one of them produced a crash when testing. The post content of the user session explored was massive, with several hundreds of blocks nested each other. In fact, the same content crashed when using the web browser.

Until we get more events and new user sessions, I'd put the investigations on hold.