Skip to content

Conversation

@hbcarlos
Copy link
Member

@hbcarlos hbcarlos commented Mar 13, 2023

Fixes #14107

References

This PR was started in #14130 as a fix for lab v3.6. I am opening a new PR because we must also fix it in lab v4.

Code changes

After saving the document with a different name, we do not rename the document in memory. Instead, we close it and open the new one.

User-facing changes

In collaborative mode, we can not rename the document in memory. After a "Save As" action, we need to open the new document and close the old one. By closing the document and opening the new one, we are losing the state of the old document. Most editors do this, and, in my opinion, it is the most predictable behavior.

See #14130 for more context.

Backwards-incompatible changes

Screencast

Grabacion.de.pantalla.2023-03-13.a.las.14.59.33.mov

@jupyterlab-probot
Copy link

Thanks for making a pull request to jupyterlab!
To try out this branch on binder, follow this link: Binder

fcollonval
fcollonval previously approved these changes Mar 15, 2023
Copy link
Member

@fcollonval fcollonval left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks @hbcarlos

@fcollonval fcollonval added this to the 3.6.x milestone Mar 15, 2023
@fcollonval fcollonval dismissed their stale review March 15, 2023 15:36

Fail on binder with RTC

@fcollonval
Copy link
Member

Sorry for the last minute notice, but there is a bug due to the drive name appearing in the Save As... dialog:

Peek 2023-03-15 16-39

I think it is better to solve it within this PR.

@hbcarlos
Copy link
Member Author

Hey @fcollonval! I changed the dialog not to show the drive name and updated jupyter_collaboration to fix the issue.

Grabacion.de.pantalla.2023-03-15.a.las.21.44.03.mov

Copy link
Member

@fcollonval fcollonval left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @hbcarlos

I checked on binder with RTC and locally

CI failures are not related

@fcollonval fcollonval merged commit 19a41ff into jupyterlab:master Mar 16, 2023
@fcollonval
Copy link
Member

@meeseeksdev please backport to 3.6.x

@lumberbot-app
Copy link

lumberbot-app bot commented Mar 16, 2023

Owee, I'm MrMeeseeks, Look at me.

There seem to be a conflict, please backport manually. Here are approximate instructions:

  1. Checkout backport branch and update it.
git checkout 3.6.x
git pull
  1. Cherry pick the first parent branch of the this PR on top of the older branch:
git cherry-pick -x -m1 19a41ffd8f6f0f8ae8cf3b21ee19df9e47c7e439
  1. You will likely have some merge/cherry-pick conflict here, fix them and commit:
git commit -am 'Backport PR #14182: Fix save as in collaborative mode'
  1. Push to a named branch:
git push YOURFORK 3.6.x:auto-backport-of-pr-14182-on-3.6.x
  1. Create a PR against branch 3.6.x, I would have named this PR:

"Backport PR #14182 on branch 3.6.x (Fix save as in collaborative mode)"

And apply the correct labels and milestones.

Congratulations — you did some good work! Hopefully your backport PR will be tested by the continuous integration and merged soon!

Remember to remove the Still Needs Manual Backport label once the PR gets merged.

If these instructions are inaccurate, feel free to suggest an improvement.

@github-actions
Copy link
Contributor

Benchmark report

The execution time (in milliseconds) are grouped by test file, test type and browser.
For each case, the following values are computed: min <- [1st quartile - median - 3rd quartile] -> max.

The mean relative comparison is computed with 95% confidence.

Results table
Test file large_code_notebook large_md_notebook
open
chromium
actual 746 <- [807 - 843 - 889] -> 982 873 <- [1483 - 1611 - 1675] -> 1903
expected 676 <- [785 - 821 - 855] -> 1133 804 <- [1407 - 1536 - 1630] -> 2131
Mean relative change ⚠️ 3.3% ± 2.1% 2.0% ± 5.7%
switch-from
chromium
actual 763 <- [857 - 884 - 909] -> 1038 341 <- [424 - 455 - 504] -> 612
expected 749 <- [822 - 849 - 882] -> 1176 336 <- [397 - 419 - 453] -> 596
Mean relative change ⚠️ 2.4% ± 1.9% 8.6% ± 3.7%
switch-to
chromium
actual 1451 <- [1556 - 1637 - 1680] -> 1929 1031 <- [1117 - 1143 - 1173] -> 1345
expected 1412 <- [1502 - 1559 - 1620] -> 1858 945 <- [1044 - 1079 - 1129] -> 1293
Mean relative change ⚠️ 4.4% ± 1.7% 5.2% ± 1.6%
close
chromium
actual 176 <- [198 - 207 - 217] -> 257 265 <- [291 - 305 - 316] -> 358
expected 163 <- [188 - 199 - 207] -> 250 234 <- [269 - 284 - 303] -> 352
Mean relative change ⚠️ 4.8% ± 2.4% 7.0% ± 2.2%

Changes are computed with expected as reference.

@jupyterlab/benchmarks@1.0.0 test:mocha
mocha ./tests/

Waiting for localhost:8888
localhost:8888 is up

Cell memory leaks

Create a code cell Memory change: +150 kB Leak detected: Yes

Leaking objects:

Object # added Retained size increase
ArraySearchMarker 1 +5 B
ContentDeleted 1 +16 B
ContentString 1 +72 B
Detached Text 1 +72 B
FocusTracker 1 +276 B
ObservableList 1 +60 B
OutputArea 1 +1.4 kB
OutputAreaModel 1 +115 B
Promise 1 +20 B
PromiseDelegate 1 +128 B
ResizeHandle 1 +47 B
RestorablePool 1 +304 B
UndoManager 1 +1.93 kB
WidgetTracker 1 +976 B
YArray 1 +164 B
YCodeCell 1 +107 B
YText 1 +565 B
Detached DOMStringMap 2 +92 B
Detached V8EventHandlerNonNull 2 +80 B
Set 2 +1.21 kB
YMap 2 +464 B
StackItem 3 +1.32 kB
ContentAny 4 +241 B
ContentType 4 +64 B
DeleteItem 4 +80 B
DeleteSet 6 +988 B
Detached HTMLCollection 6 +552 B
EventHandler 8 +256 B
ID 10 +320 B
Item 10 +1.21 kB
Detached DOMTokenList 13 +848 B
Detached Attr 14 +1.01 kB
Detached HTMLDivElement 14 +46.7 kB
Map 17 +2.58 kB
Signal 19 +319 B
Object 35 +66.7 kB
Array 44 +14.6 kB
Detached V8EventListener 263 +23.4 kB
Detached EventListener 265 +42.6 kB
(closure) 270 +25.1 kB
Detached InternalNode 323 +45.1 kB

Leaking collections:

Type Change Preview Size increased at
Array +2 [StackItem, ...]
UndoManager.afterTransactionHandler  http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:5030:15
webpack://jupyterlab/node_modules/lib0/observable.js:73:62
Array.forEach <anonymous>
webpack://jupyterlab/node_modules/lib0/observable.js:73:62
Array.<anonymous> http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:4693:27
webpack://jupyterlab/node_modules/lib0/function.js:19:0
cleanupTransactions http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:4695:62
transact http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:4810:9
Doc.transact http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:2023:5
Array +10 [Item, ...]
addStruct                    http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:4268:11
Item.integrate http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:11054:7
<unknown> http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:6617:22
Array.forEach <anonymous>
typeListInsertGenericsAfter http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:6590:11
typeListInsertGenerics http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:6677:10
<unknown> http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:6996:9
transact http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:4796:5
YArray.insert http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:6995:7
Set +1 Set((anonymous function), ...)
                          webpack://jupyterlab/node_modules/lib0/observable.js:30:56                                                                                     
Doc.on http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:2182:11
new UndoManager http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:5050:14
YCodeCell.setUndoManager http://localhost:8888/static/lab/vendors-node_modules_jupyter_ydoc_lib_index_js-node_modules_process_browser_js.fc8babfba933ff460960.js:398:33
<unknown> http://localhost:8888/static/lab/vendors-node_modules_jupyter_ydoc_lib_index_js-node_modules_process_browser_js.fc8babfba933ff460960.js:1584:15
Array.forEach <anonymous>
YNotebook.insertCells http://localhost:8888/static/lab/vendors-node_modules_jupyter_ydoc_lib_index_js-node_modules_process_browser_js.fc8babfba933ff460960.js:1583:16
YNotebook.insertCell http://localhost:8888/static/lab/vendors-node_modules_jupyter_ydoc_lib_index_js-node_modules_process_browser_js.fc8babfba933ff460960.js:1564:21
webpack://jupyterlab/packages/notebook/src/actions.tsx:404:22
Create a markdown cell Memory change: -121 kB Leak detected: No

Leaking objects:

Object # added Retained size increase
ActivityMonitor 1 +294 B
ArraySearchMarker 1 +5 B
AttachmentsModel 1 +193 B
AttachmentsResolver 1 +14 B
CodeCellModel 1 +377 B
ContentString 1 +66 B
Debouncer 1 +3.46 kB
Detached HTMLAnchorElement 1 +288 B
Detached HTMLButtonElement 1 +5.3 kB
Detached HTMLHeadingElement 1 +912 B
Error 1 +3.06 kB
MarkdownCell 1 +4.73 kB
MarkdownCellModel 1 +237 B
Poll 1 +3.7 kB
RenderMimeRegistry 1 +227 B
RenderedMarkdown 1 +66 B
Transaction 1 +860 B
TypeError 1 +301 B
YArray 1 +164 B
YArrayEvent 1 +357 B
YCodeCell 1 +107 B
YMarkdownCell 1 +45 B
Detached CSSStyleDeclaration 2 +112 B
Detached HTMLElement 2 +288 B
Detached V8EventHandlerNonNull 2 +5.04 kB
Promise 2 +3.06 kB
PromiseDelegate 2 +3.27 kB
UndoManager 2 +2.38 kB
YText 2 +473 B
Detached DOMStringMap 3 +128 B
ObservableMap 3 +381 B
StackItem 3 +1.33 kB
DeleteItem 4 +80 B
YMap 4 +872 B
ContentAny 5 +524 B
DeleteSet 6 +1 kB
ContentType 7 +112 B
Detached Text 7 +448 B
Set 8 +1.76 kB
Detached HTMLDivElement 10 +30.2 kB
Detached DOMTokenList 13 +752 B
ID 13 +416 B
Item 13 +1.78 kB
EventHandler 14 +442 B
Detached HTMLCollection 17 +1.7 kB
Map 27 +12 kB
Signal 28 +740 B
Detached V8EventListener 130 +10.9 kB
Detached EventListener 132 +25.5 kB
(closure) 152 +7.16 kB
Detached InternalNode 162 +28.1 kB

Leaking collections:

Type Change Preview Size increased at
Array +1 [7416ae31-1f77-48bf-90ee-1b00a68c1056, ...]
                                     webpack://jupyterlab/packages/notebook/src/actions.tsx:2425:37            
Array.forEach <anonymous>
webpack://jupyterlab/packages/notebook/src/actions.tsx:2420:21
webpack://jupyterlab/packages/notebook/src/actions.tsx:350:12
webpack://jupyterlab/packages/notebook-extension/src/index.ts:2573:15
CommandRegistry.execute http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:5748:33
CommandRegistry._executeKeyBinding http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:5906:14
CommandRegistry.processKeydownEvent http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:5846:18
JupyterLab.evtKeydown http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:4660:23
Array +1 [{signal, slot, thisArg}, ...]
Object.connect  http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:10490:17
Signal.connect http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:10230:24
webpack://jupyterlab/packages/cell-toolbar/src/celltoolbartracker.ts:121:37
invokeSlot http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:10699:18
Object.emit http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:10657:17
Signal.emit http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:10256:17
webpack://jupyterlab/packages/notebook/src/widget.ts:1321:30
webpack://jupyterlab/packages/notebook/src/actions.tsx:408:28
webpack://jupyterlab/packages/notebook-extension/src/index.ts:2642:15
Array +1 [{signal, slot, thisArg}, ...]
Object.connect  http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:10490:17
Signal.connect http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:10230:24
webpack://jupyterlab/packages/notebook/src/notebooktools.ts:226:33
invokeSlot http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:10699:18
Object.emit http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:10657:17
Signal.emit http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:10256:17
webpack://jupyterlab/packages/notebook/src/tracker.ts:90:30
invokeSlot http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:10699:18
Object.emit http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:10657:17
Array +2 [StackItem, ...]
UndoManager.afterTransactionHandler  http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:5030:15
webpack://jupyterlab/node_modules/lib0/observable.js:73:62
Array.forEach <anonymous>
webpack://jupyterlab/node_modules/lib0/observable.js:73:62
Array.<anonymous> http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:4693:27
webpack://jupyterlab/node_modules/lib0/function.js:19:0
cleanupTransactions http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:4695:62
transact http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:4810:9
Doc.transact http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:2023:5
Array +13 [Item, ...]
addStruct                    http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:4268:11
Item.integrate http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:11054:7
<unknown> http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:6617:22
Array.forEach <anonymous>
typeListInsertGenericsAfter http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:6590:11
typeListInsertGenerics http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:6677:10
<unknown> http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:6996:9
transact http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:4796:5
YArray.insert http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:6995:7
Set +2 Set((anonymous function), ...)
                          webpack://jupyterlab/node_modules/lib0/observable.js:30:56                                                                                     
Doc.on http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:2182:11
new UndoManager http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:5050:14
YCodeCell.setUndoManager http://localhost:8888/static/lab/vendors-node_modules_jupyter_ydoc_lib_index_js-node_modules_process_browser_js.fc8babfba933ff460960.js:398:33
<unknown> http://localhost:8888/static/lab/vendors-node_modules_jupyter_ydoc_lib_index_js-node_modules_process_browser_js.fc8babfba933ff460960.js:1584:15
Array.forEach <anonymous>
YNotebook.insertCells http://localhost:8888/static/lab/vendors-node_modules_jupyter_ydoc_lib_index_js-node_modules_process_browser_js.fc8babfba933ff460960.js:1583:16
YNotebook.insertCell http://localhost:8888/static/lab/vendors-node_modules_jupyter_ydoc_lib_index_js-node_modules_process_browser_js.fc8babfba933ff460960.js:1564:21
webpack://jupyterlab/packages/notebook/src/actions.tsx:404:22
Create a raw cell Memory change: -175 kB Leak detected: No

Leaking objects:

Object # added Retained size increase
ArraySearchMarker 1 +5 B
CodeCellModel 1 +359 B
ContentString 1 +690 B
Detached CSSStyleDeclaration 1 +60 B
Detached V8EventHandlerNonNull 1 +40 B
ObservableMap 1 +109 B
TypeError 1 +301 B
YArray 1 +164 B
YCodeCell 1 +107 B
YRawCell 1 +45 B
Detached DOMStringMap 2 +92 B
Set 2 +1.31 kB
UndoManager 2 +2.38 kB
YText 2 +454 B
StackItem 3 +1.33 kB
DeleteItem 4 +80 B
YMap 4 +872 B
ContentAny 5 +524 B
Detached HTMLCollection 5 +468 B
DeleteSet 6 +1 kB
ContentType 7 +112 B
Detached DOMTokenList 9 +568 B
Detached HTMLDivElement 9 +22.5 kB
Signal 11 +450 B
ID 13 +416 B
Item 13 +2.41 kB
EventHandler 14 +448 B
Map 19 +11.3 kB
Detached V8EventListener 130 +10.9 kB
Detached EventListener 131 +20.4 kB
(closure) 140 +-6.85 kB
Detached InternalNode 151 +21.6 kB

Leaking collections:

Type Change Preview Size increased at
Array +1 [{signal, slot, thisArg}, ...]
Object.connect  http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:10490:17
Signal.connect http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:10230:24
webpack://jupyterlab/packages/cell-toolbar/src/celltoolbartracker.ts:121:37
invokeSlot http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:10699:18
Object.emit http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:10657:17
Signal.emit http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:10256:17
webpack://jupyterlab/packages/notebook/src/widget.ts:1321:30
webpack://jupyterlab/packages/notebook/src/actions.tsx:408:28
webpack://jupyterlab/packages/notebook-extension/src/index.ts:2642:15
Array +1 [{signal, slot, thisArg}, ...]
Object.connect  http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:10490:17
Signal.connect http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:10230:24
webpack://jupyterlab/packages/notebook/src/notebooktools.ts:226:33
invokeSlot http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:10699:18
Object.emit http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:10657:17
Signal.emit http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:10256:17
webpack://jupyterlab/packages/notebook/src/tracker.ts:90:30
invokeSlot http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:10699:18
Object.emit http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:10657:17
Array +1 [90d91961-429c-42b6-af4b-a669994aa18f, ...]
                                     webpack://jupyterlab/packages/notebook/src/actions.tsx:2425:37            
Array.forEach <anonymous>
webpack://jupyterlab/packages/notebook/src/actions.tsx:2420:21
webpack://jupyterlab/packages/notebook/src/actions.tsx:350:12
webpack://jupyterlab/packages/notebook-extension/src/index.ts:2573:15
CommandRegistry.execute http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:5748:33
CommandRegistry._executeKeyBinding http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:5906:14
CommandRegistry.processKeydownEvent http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:5846:18
JupyterLab.evtKeydown http://localhost:8888/static/lab/jlab_core.e1a913e5a1839ee16b95.js:4660:23
Array +2 [StackItem, ...]
UndoManager.afterTransactionHandler  http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:5030:15
webpack://jupyterlab/node_modules/lib0/observable.js:73:62
Array.forEach <anonymous>
webpack://jupyterlab/node_modules/lib0/observable.js:73:62
Array.<anonymous> http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:4693:27
webpack://jupyterlab/node_modules/lib0/function.js:19:0
cleanupTransactions http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:4695:62
transact http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:4810:9
Doc.transact http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:2023:5
Array +13 [Item, ...]
addStruct                    http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:4268:11
Item.integrate http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:11054:7
<unknown> http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:6617:22
Array.forEach <anonymous>
typeListInsertGenericsAfter http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:6590:11
typeListInsertGenerics http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:6677:10
<unknown> http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:6996:9
transact http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:4796:5
YArray.insert http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:6995:7
Set +2 Set((anonymous function), ...)
                          webpack://jupyterlab/node_modules/lib0/observable.js:30:56                                                                                     
Doc.on http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:2182:11
new UndoManager http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.4fbeace2166db933a6e2.js:5050:14
YCodeCell.setUndoManager http://localhost:8888/static/lab/vendors-node_modules_jupyter_ydoc_lib_index_js-node_modules_process_browser_js.fc8babfba933ff460960.js:398:33
<unknown> http://localhost:8888/static/lab/vendors-node_modules_jupyter_ydoc_lib_index_js-node_modules_process_browser_js.fc8babfba933ff460960.js:1584:15
Array.forEach <anonymous>
YNotebook.insertCells http://localhost:8888/static/lab/vendors-node_modules_jupyter_ydoc_lib_index_js-node_modules_process_browser_js.fc8babfba933ff460960.js:1583:16
YNotebook.insertCell http://localhost:8888/static/lab/vendors-node_modules_jupyter_ydoc_lib_index_js-node_modules_process_browser_js.fc8babfba933ff460960.js:1564:21
webpack://jupyterlab/packages/notebook/src/actions.tsx:404:22
- Drag and drop a cell

File editor memory leaks

Create a file Memory change: -89.5 kB Leak detected: No

Leaking objects:

Object # added Retained size increase
Detached HTMLUListElement 1 +2.3 kB
Detached V8EventHandlerNonNull 1 +40 B
VirtualElementPass 1 +46 B
Detached HTMLButtonElement 2 +23.5 kB
Detached SVGCircleElement 2 +1.1 kB
HTMLDivElement 2 +1.11 kB
LabIcon 2 +1.07 kB
Detached CSSStyleDeclaration 3 +200 B
Detached HTMLLIElement 3 +5.17 kB
Detached NodeList 3 +188 B
NavigationHistoryEntry 3 +720 B
VirtualText 3 +109 B
Detached SVGGElement 4 +2.94 kB
VirtualElement 4 +969 B
Detached SVGAnimatedPreserveAspectRatio 5 +320 B
Detached SVGAnimatedRect 5 +320 B
Detached SVGPathElement 5 +1.77 kB
Detached SVGSVGElement 5 +7.91 kB
Detached HTMLSpanElement 6 +2.22 kB
Detached DOMStringMap 7 +364 B
Detached SVGAnimatedNumber 7 +448 B
Detached Attr 10 +720 B
Detached Text 10 +696 B
Detached HTMLCollection 13 +1.37 kB
Detached DOMTokenList 14 +860 B
Detached HTMLDivElement 15 +32.6 kB
DOMRectReadOnly 16 +896 B
Detached SVGAnimatedString 16 +896 B
Detached SVGAnimatedTransformList 16 +1.02 kB
Detached SVGAnimatedLength 26 +1.66 kB
Detached V8EventListener 130 +10.9 kB
Detached EventListener 131 +20.4 kB
(closure) 138 +8.79 kB
✔ Opening a text file (71382ms)

Notebook memory leaks

Create a notebook Memory change: +35.9 kB Leak detected: Yes

Leaking objects:

Object # added Retained size increase
Detached HTMLUListElement 1 +2.33 kB
Detached V8EventHandlerNonNull 1 +40 B
VirtualElementPass 1 +55 B
Detached HTMLButtonElement 2 +23.8 kB
Detached SVGCircleElement 2 +1.1 kB
HTMLDivElement 2 +-109 B
LabIcon 2 +935 B
Detached CSSStyleDeclaration 3 +204 B
Detached HTMLLIElement 3 +6.04 kB
Detached NodeList 3 +180 B
NavigationHistoryEntry 3 +720 B
VirtualText 3 +111 B
VirtualElement 4 +1.24 kB
Detached SVGAnimatedPreserveAspectRatio 5 +320 B
Detached SVGAnimatedRect 5 +320 B
Detached SVGSVGElement 5 +9.23 kB
Detached HTMLSpanElement 6 +3.05 kB
Detached SVGGElement 6 +4.9 kB
Detached SVGPathElement 7 +2.47 kB
Detached SVGAnimatedNumber 9 +576 B
Detached Attr 10 +720 B
Detached Text 10 +740 B
Detached HTMLCollection 13 +1.46 kB
Detached DOMTokenList 15 +988 B
Detached HTMLDivElement 15 +33.3 kB
Detached SVGAnimatedString 20 +1.12 kB
Detached SVGAnimatedTransformList 20 +1.28 kB
Detached SVGAnimatedLength 26 +1.66 kB
Detached V8EventListener 130 +10.9 kB
Detached EventListener 131 +20.4 kB
(closure) 138 +38.8 kB
✔ Opening a notebook (75109ms)

2 passing (7m)
1 pending
1 failing

   Adding a cell:

  Create a code cell - Objects leaking
  + expected - actual

  -1357
  +1308
  
  at file:///home/runner/work/_actions/jupyterlab/benchmarks/v1/memory-leaks/tests/utils.mjs:43:16
  at Array.forEach (<anonymous>)
  at expectNoLeaks (file:///home/runner/work/_actions/jupyterlab/benchmarks/v1/memory-leaks/tests/utils.mjs:28:11)
  at testScenario (file:///home/runner/work/_actions/jupyterlab/benchmarks/v1/memory-leaks/tests/utils.mjs:230:3)
  at async Context.<anonymous> (file:///home/runner/work/_actions/jupyterlab/benchmarks/v1/memory-leaks/tests/cell.test.mjs:7:5)

hbcarlos added a commit that referenced this pull request Mar 16, 2023
Backport PR #14182 on branch 3.6.x (Fix save as in collaborative mode)
@hbcarlos hbcarlos deleted the save_as branch March 20, 2023 09:27
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 21, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SaveAs not working in collaborative mode

2 participants