Closed jrieken closed 3 years ago
@jrieken as the call stack points out, it throws in
and it's the web worker extension host. Any idea how is this related to extension host code? Asking as I'm not able to reproduce locally with above steps.
That would mean that either the renderer side is wrong or, and I think that's more likely, the splice-data NotebookCellsSplice2 is bogous. Before emitting the event that causes the error we update the extHostDocument
data. So, it seems that there is a content change event for which we didn't add model
I am pushing a change that prints the cell-document error with its uri so that understanding this is simpler
I am somewhat able to reproduce, running out of sources I still see the last two errors but not the first. One error is about failure to create a model. If that model is already removed from the extension then this error might happens. This is the latest stack trace (it seems they need a little to appear)
Updates steps: open the diff editor for the untracked plotty notebook and just wait a little
ERR ModelService: Cannot add model because it already exists!: Error: ModelService: Cannot add model because it already exists!
at ModelServiceImpl._createModelData (file:///Users/jrieken/Code/vscode/out/vs/editor/common/services/modelServiceImpl.js:297:23)
at ModelServiceImpl.createModel (file:///Users/jrieken/Code/vscode/out/vs/editor/common/services/modelServiceImpl.js:365:34)
at ModifiedElement._buildMetadataEditor (file:///Users/jrieken/Code/vscode/out/vs/workbench/contrib/notebook/browser/diff/diffComponents.js:367:65)
at ModifiedElement.updateMetadataRendering (file:///Users/jrieken/Code/vscode/out/vs/workbench/contrib/notebook/browser/diff/diffComponents.js:219:26)
at PropertyHeader.buildHeader (file:///Users/jrieken/Code/vscode/out/vs/workbench/contrib/notebook/browser/diff/diffComponents.js:148:27)
at ModifiedElement.buildBody (file:///Users/jrieken/Code/vscode/out/vs/workbench/contrib/notebook/browser/diff/diffComponents.js:931:34)
at new AbstractElementRenderer (file:///Users/jrieken/Code/vscode/out/vs/workbench/contrib/notebook/browser/diff/diffComponents.js:207:18)
at new ModifiedElement (file:///Users/jrieken/Code/vscode/out/vs/workbench/contrib/notebook/browser/diff/diffComponents.js:876:13)
at InstantiationService._createInstance (file:///Users/jrieken/Code/vscode/out/vs/platform/instantiation/common/instantiationService.js:89:20)
at InstantiationService.createInstance (file:///Users/jrieken/Code/vscode/out/vs/platform/instantiation/common/instantiationService.js:60:31)
at CellDiffSideBySideRenderer.renderElement (file:///Users/jrieken/Code/vscode/out/vs/workbench/contrib/notebook/browser/diff/notebookTextDiffList.js:202:83)
at PipelineRenderer.renderElement (file:///Users/jrieken/Code/vscode/out/vs/base/browser/ui/list/listWidget.js:750:26)
at ListView.insertItemInDOM (file:///Users/jrieken/Code/vscode/out/vs/base/browser/ui/list/listView.js:538:26)
at ListView._splice (file:///Users/jrieken/Code/vscode/out/vs/base/browser/ui/list/listView.js:344:26)
at ListView.splice (file:///Users/jrieken/Code/vscode/out/vs/base/browser/ui/list/listView.js:267:29)
at file:///Users/jrieken/Code/vscode/out/vs/base/browser/ui/list/splice.js:14:45
at Array.forEach (<anonymous>)
at CombinedSpliceable.splice (file:///Users/jrieken/Code/vscode/out/vs/base/browser/ui/list/splice.js:14:30)
at file:///Users/jrieken/Code/vscode/out/vs/base/browser/ui/list/listWidget.js:970:67
at EventBufferer.bufferEvents (file:///Users/jrieken/Code/vscode/out/vs/base/common/event.js:674:23)
at NotebookTextDiffList.splice (file:///Users/jrieken/Code/vscode/out/vs/base/browser/ui/list/listWidget.js:970:32)
at NotebookTextDiffEditor.updateLayout (file:///Users/jrieken/Code/vscode/out/vs/workbench/contrib/notebook/browser/diff/notebookTextDiffEditor.js:346:24)
at async file:///Users/jrieken/Code/vscode/out/vs/workbench/contrib/notebook/browser/diff/notebookTextDiffEditor.js:218:25
log.js:144 ERR Cannot read property 'domNode' of null: TypeError: Cannot read property 'domNode' of null
at ListView.updateItemInDOM (file:///Users/jrieken/Code/vscode/out/vs/base/browser/ui/list/listView.js:568:22)
at ListView.render (file:///Users/jrieken/Code/vscode/out/vs/base/browser/ui/list/listView.js:489:26)
at ListView.updateElementHeight (file:///Users/jrieken/Code/vscode/out/vs/base/browser/ui/list/listView.js:255:18)
at NotebookTextDiffList.updateElementHeight2 (file:///Users/jrieken/Code/vscode/out/vs/workbench/contrib/notebook/browser/diff/notebookTextDiffList.js:252:23)
at relayout (file:///Users/jrieken/Code/vscode/out/vs/workbench/contrib/notebook/browser/diff/notebookTextDiffEditor.js:372:28)
at AnimationFrameQueueItem._runner (file:///Users/jrieken/Code/vscode/out/vs/workbench/contrib/notebook/browser/diff/notebookTextDiffEditor.js:380:17)
at AnimationFrameQueueItem.execute (file:///Users/jrieken/Code/vscode/out/vs/base/browser/dom.js:147:22)
at animationFrameRunner (file:///Users/jrieken/Code/vscode/out/vs/base/browser/dom.js:183:21)
log.js:144 ERR MISSING extHostDocument for notebook cell: vscode-notebook-cell:/Users/jrieken/Code/_samples/devfest/notebooks/plotly.txt%20copy.ipynb#ch0000001: Error: MISSING extHostDocument for notebook cell: vscode-notebook-cell:/Users/jrieken/Code/_samples/devfest/notebooks/plotly.txt%20copy.ipynb#ch0000001
at ExtHostCell.get cell [as cell] (/Users/jrieken/Code/vscode/out/vs/workbench/api/common/extHostNotebookDocument.js:82:27)
at /Users/jrieken/Code/vscode/out/vs/workbench/api/common/extHostNotebookDocument.js:34:67
at Array.map (<anonymous>)
at asApiEvent (/Users/jrieken/Code/vscode/out/vs/workbench/api/common/extHostNotebookDocument.js:34:50)
at Array.map (<anonymous>)
at ExtHostNotebookDocument._spliceNotebookCells (/Users/jrieken/Code/vscode/out/vs/workbench/api/common/extHostNotebookDocument.js:334:50)
at /Users/jrieken/Code/vscode/out/vs/workbench/api/common/extHostNotebookDocument.js:275:26
at Array.forEach (<anonymous>)
at ExtHostNotebookDocument.acceptModelChanged (/Users/jrieken/Code/vscode/out/vs/workbench/api/common/extHostNotebookDocument.js:270:29)
at ExtHostNotebookController.$acceptModelChanged (/Users/jrieken/Code/vscode/out/vs/workbench/api/common/extHostNotebook.js:468:26)
at RPCProtocol._doInvokeHandler (/Users/jrieken/Code/vscode/out/vs/workbench/services/extensions/common/rpcProtocol.js:341:27)
at RPCProtocol._invokeHandler (/Users/jrieken/Code/vscode/out/vs/workbench/services/extensions/common/rpcProtocol.js:326:45)
at RPCProtocol._receiveRequest (/Users/jrieken/Code/vscode/out/vs/workbench/services/extensions/common/rpcProtocol.js:253:32)
at RPCProtocol._receiveOneMessage (/Users/jrieken/Code/vscode/out/vs/workbench/services/extensions/common/rpcProtocol.js:181:26)
at /Users/jrieken/Code/vscode/out/vs/workbench/services/extensions/common/rpcProtocol.js:65:52
at Emitter.fire (/Users/jrieken/Code/vscode/out/vs/base/common/event.js:479:38)
at BufferedEmitter.fire (/Users/jrieken/Code/vscode/out/vs/base/parts/ipc/common/ipc.net.js:375:35)
at /Users/jrieken/Code/vscode/out/vs/workbench/services/extensions/node/extensionHostProcessSetup.js:146:41
at Emitter.fire (/Users/jrieken/Code/vscode/out/vs/base/common/event.js:479:38)
at BufferedEmitter.fire (/Users/jrieken/Code/vscode/out/vs/base/parts/ipc/common/ipc.net.js:375:35)
at PersistentProtocol._receiveMessage (/Users/jrieken/Code/vscode/out/vs/base/parts/ipc/common/ipc.net.js:654:41)
at /Users/jrieken/Code/vscode/out/vs/base/parts/ipc/common/ipc.net.js:510:83
at Emitter.fire (/Users/jrieken/Code/vscode/out/vs/base/common/event.js:479:38)
at ProtocolReader.acceptChunk (/Users/jrieken/Code/vscode/out/vs/base/parts/ipc/common/ipc.net.js:189:37)
at /Users/jrieken/Code/vscode/out/vs/base/parts/ipc/common/ipc.net.js:158:61
at Socket.listener (/Users/jrieken/Code/vscode/out/vs/base/parts/ipc/node/ipc.net.js:17:40)
at Socket.emit (events.js:315:20)
at addChunk (_stream_readable.js:295:12)
at readableAddChunk (_stream_readable.js:271:9)
at Socket.push (_stream_readable.js:212:10)
at Pipe.onStreamRead (internal/stream_base_commons.js:186:23)
log.js:144 ERR ModelService: Cannot add model because it already exists!: Error: ModelService: Cannot add model because it already exists!
at ModelServiceImpl._createModelData (file:///Users/jrieken/Code/vscode/out/vs/editor/common/services/modelServiceImpl.js:297:23)
at ModelServiceImpl.createModel (file:///Users/jrieken/Code/vscode/out/vs/editor/common/services/modelServiceImpl.js:365:34)
at ModifiedElement._buildMetadataEditor (file:///Users/jrieken/Code/vscode/out/vs/workbench/contrib/notebook/browser/diff/diffComponents.js:368:65)
at ModifiedElement.updateMetadataRendering (file:///Users/jrieken/Code/vscode/out/vs/workbench/contrib/notebook/browser/diff/diffComponents.js:219:26)
at PropertyHeader.buildHeader (file:///Users/jrieken/Code/vscode/out/vs/workbench/contrib/notebook/browser/diff/diffComponents.js:148:27)
at ModifiedElement.buildBody (file:///Users/jrieken/Code/vscode/out/vs/workbench/contrib/notebook/browser/diff/diffComponents.js:931:34)
at new AbstractElementRenderer (file:///Users/jrieken/Code/vscode/out/vs/workbench/contrib/notebook/browser/diff/diffComponents.js:207:18)
at new ModifiedElement (file:///Users/jrieken/Code/vscode/out/vs/workbench/contrib/notebook/browser/diff/diffComponents.js:876:13)
at InstantiationService._createInstance (file:///Users/jrieken/Code/vscode/out/vs/platform/instantiation/common/instantiationService.js:89:20)
at InstantiationService.createInstance (file:///Users/jrieken/Code/vscode/out/vs/platform/instantiation/common/instantiationService.js:60:31)
at CellDiffSideBySideRenderer.renderElement (file:///Users/jrieken/Code/vscode/out/vs/workbench/contrib/notebook/browser/diff/notebookTextDiffList.js:202:83)
at PipelineRenderer.renderElement (file:///Users/jrieken/Code/vscode/out/vs/base/browser/ui/list/listWidget.js:750:26)
at ListView.insertItemInDOM (file:///Users/jrieken/Code/vscode/out/vs/base/browser/ui/list/listView.js:538:26)
at ListView._splice (file:///Users/jrieken/Code/vscode/out/vs/base/browser/ui/list/listView.js:344:26)
at ListView.splice (file:///Users/jrieken/Code/vscode/out/vs/base/browser/ui/list/listView.js:267:29)
at file:///Users/jrieken/Code/vscode/out/vs/base/browser/ui/list/splice.js:14:45
at Array.forEach (<anonymous>)
at CombinedSpliceable.splice (file:///Users/jrieken/Code/vscode/out/vs/base/browser/ui/list/splice.js:14:30)
at file:///Users/jrieken/Code/vscode/out/vs/base/browser/ui/list/listWidget.js:970:67
at EventBufferer.bufferEvents (file:///Users/jrieken/Code/vscode/out/vs/base/common/event.js:674:23)
at NotebookTextDiffList.splice (file:///Users/jrieken/Code/vscode/out/vs/base/browser/ui/list/listWidget.js:970:32)
at NotebookTextDiffEditor.updateLayout (file:///Users/jrieken/Code/vscode/out/vs/workbench/contrib/notebook/browser/diff/notebookTextDiffEditor.js:346:24)
at async file:///Users/jrieken/Code/vscode/out/vs/workbench/contrib/notebook/browser/diff/notebookTextDiffEditor.js:231:25
log.js:144 ERR Cannot read property 'domNode' of null: TypeError: Cannot read property 'domNode' of null
at ListView.updateItemInDOM (file:///Users/jrieken/Code/vscode/out/vs/base/browser/ui/list/listView.js:568:22)
at ListView.render (file:///Users/jrieken/Code/vscode/out/vs/base/browser/ui/list/listView.js:489:26)
at ListView.updateElementHeight (file:///Users/jrieken/Code/vscode/out/vs/base/browser/ui/list/listView.js:255:18)
at NotebookTextDiffList.updateElementHeight2 (file:///Users/jrieken/Code/vscode/out/vs/workbench/contrib/notebook/browser/diff/notebookTextDiffList.js:252:23)
at relayout (file:///Users/jrieken/Code/vscode/out/vs/workbench/contrib/notebook/browser/diff/notebookTextDiffEditor.js:372:28)
at AnimationFrameQueueItem._runner (file:///Users/jrieken/Code/vscode/out/vs/workbench/contrib/notebook/browser/diff/notebookTextDiffEditor.js:380:17)
at AnimationFrameQueueItem.execute (file:///Users/jrieken/Code/vscode/out/vs/base/browser/dom.js:147:22)
at animationFrameRunner (file:///Users/jrieken/Code/vscode/out/vs/base/browser/dom.js:183:21)
notebook and just wait a little
More insights: this is waiting for some file seems to be fired (unsure when/how) and that causes things to go south. The event is fired from the GIT-file system
Testing #114969
This doesn't seem to happen when the explorer is the active view 🤯