Latest Threat Research:SANDWORM_MODE: Shai-Hulud-Style npm Worm Hijacks CI Workflows and Poisons AI Toolchains.Details
Socket
Book a DemoInstallSign in
Socket

@jupyterlab/services

Package Overview
Dependencies
Maintainers
8
Versions
441
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@jupyterlab/services - npm Package Compare versions

Comparing version
7.5.4
to
7.5.5
+1
-0
lib/kernel/comm.d.ts

@@ -111,2 +111,3 @@ import { JSONObject } from '@lumino/coreutils';

private _maybeStartSubshell;
private _closePerCommTargetSubshell;
private _maybeCloseSubshell;

@@ -113,0 +114,0 @@ private _subshellStarted;

+97
-26

@@ -100,9 +100,15 @@ "use strict";

set commsOverSubshells(value) {
if (value === this._commsOverSubshells) {
// Do nothing if the value is not changing.
return;
}
const closePromise = this._maybeCloseSubshell(this._commsOverSubshells);
this._commsOverSubshells = value;
if (this._commsOverSubshells === CommsOverSubshells.Disabled) {
this._maybeCloseSubshell();
}
else {
void this._maybeStartSubshell();
}
closePromise
.then(() => {
if (this._commsOverSubshells !== CommsOverSubshells.Disabled) {
void this._maybeStartSubshell();
}
})
.catch(console.warn);
}

@@ -257,3 +263,3 @@ /**

dispose() {
this._maybeCloseSubshell();
void this._maybeCloseSubshell(this._commsOverSubshells);
super.dispose();

@@ -280,2 +286,3 @@ }

// One shell per comm-target
const subshellStarted = this._subshellStarted;
const kernelId = this._kernel.id;

@@ -285,29 +292,93 @@ if (!CommHandler._commTargetSubShellsId.hasOwnProperty(kernelId)) {

}
const kernelCommTargetSubShells = CommHandler._commTargetSubShellsId[kernelId];
if (kernelCommTargetSubShells[this._target]) {
this._subshellId = await kernelCommTargetSubShells[this._target];
this._subshellStarted.resolve();
const kernelCommTargetSubshells = CommHandler._commTargetSubShellsId[kernelId];
const existingEntry = kernelCommTargetSubshells[this._target];
if (existingEntry) {
existingEntry.referenceCount += 1;
try {
this._subshellId = await existingEntry.subshellId;
subshellStarted.resolve();
}
catch (e) {
// If the future rejected we need to close the subshell to avoid leaks
await this._closePerCommTargetSubshell(false);
subshellStarted.reject(`Per comm-target subshell creation failed: ${e}`);
}
return;
}
else {
// Create subshell
kernelCommTargetSubShells[this._target] = this._kernel
const entry = {
subshellId: this._kernel
.requestCreateSubshell({})
.done.then(replyMsg => {
this._subshellId = replyMsg.content.subshell_id;
return this._subshellId;
});
await kernelCommTargetSubShells[this._target];
this._subshellStarted.resolve();
.done.then(replyMsg => replyMsg.content.subshell_id),
referenceCount: 1
};
kernelCommTargetSubshells[this._target] = entry;
try {
this._subshellId = await entry.subshellId;
subshellStarted.resolve();
}
catch (e) {
// If the future rejected we need to close the subshell to avoid leaks
await this._closePerCommTargetSubshell(false);
subshellStarted.reject(`Per comm-target subshell creation failed: ${e}`);
}
}
_maybeCloseSubshell() {
// Only close subshell if we have one subshell per comm
if (this._commsOverSubshells !== CommsOverSubshells.PerComm) {
async _closePerCommTargetSubshell(shouldAskKernelToDelete = true) {
const kernelId = this._kernel.id;
const target = this._target;
if (CommHandler._commTargetSubShellsId.hasOwnProperty(kernelId)) {
// Close the subshell for this target if this is the last comm.
const kernelTargets = CommHandler._commTargetSubShellsId[kernelId];
const entry = kernelTargets[target];
if (entry) {
entry.referenceCount -= 1;
if (entry.referenceCount <= 0) {
if (shouldAskKernelToDelete) {
let subshellId = null;
try {
subshellId = await entry.subshellId;
}
catch (e) {
console.warn(`Subshell identifier not available in the closeout sequence, will not request deletion: ${e}`);
}
if (subshellId !== null) {
this._kernel.requestDeleteSubshell({ subshell_id: subshellId }, true);
}
}
delete kernelTargets[target];
}
}
if (Object.keys(kernelTargets).length === 0) {
delete CommHandler._commTargetSubShellsId[kernelId];
}
// Clear identifier
this._subshellId = null;
}
// Restart promise delegate to subsequent startup
this._subshellStarted = new coreutils_1.PromiseDelegate();
}
async _maybeCloseSubshell(mode) {
if (this._kernel.status === 'dead') {
return;
}
if (this._subshellId && this._kernel.status !== 'dead') {
this._kernel.requestDeleteSubshell({ subshell_id: this._subshellId }, true);
switch (mode) {
case CommsOverSubshells.PerComm: {
if (this._subshellId) {
// Close the only subshell
this._kernel.requestDeleteSubshell({ subshell_id: this._subshellId }, true);
// Clear identifier
this._subshellId = null;
}
// Restart promise delegate to subsequent startup
this._subshellStarted = new coreutils_1.PromiseDelegate();
break;
}
case CommsOverSubshells.PerCommTarget: {
await this._closePerCommTargetSubshell();
break;
}
case CommsOverSubshells.Disabled: {
// no-op
break;
}
}
this._subshellId = null;
}

@@ -314,0 +385,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"comm.js","sourceRoot":"","sources":["../../src/kernel/comm.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"comm.js","sourceRoot":"","sources":["../../src/kernel/comm.ts"],"names":[],"mappings":"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"}
{
"name": "@jupyterlab/services",
"version": "7.5.4",
"version": "7.5.5",
"description": "Client APIs for the Jupyter services REST APIs",

@@ -49,6 +49,6 @@ "keywords": [

"@jupyter/ydoc": "^3.1.0",
"@jupyterlab/coreutils": "^6.5.4",
"@jupyterlab/nbformat": "^4.5.4",
"@jupyterlab/settingregistry": "^4.5.4",
"@jupyterlab/statedb": "^4.5.4",
"@jupyterlab/coreutils": "^6.5.5",
"@jupyterlab/nbformat": "^4.5.5",
"@jupyterlab/settingregistry": "^4.5.5",
"@jupyterlab/statedb": "^4.5.5",
"@lumino/coreutils": "^2.2.2",

@@ -62,3 +62,3 @@ "@lumino/disposable": "^2.1.5",

"devDependencies": {
"@jupyterlab/testing": "^4.5.4",
"@jupyterlab/testing": "^4.5.5",
"@types/jest": "^29.2.0",

@@ -65,0 +65,0 @@ "@types/ws": "^8.5.3",

@@ -90,8 +90,15 @@ // Copyright (c) Jupyter Development Team.

set commsOverSubshells(value: CommsOverSubshells) {
if (value === this._commsOverSubshells) {
// Do nothing if the value is not changing.
return;
}
const closePromise = this._maybeCloseSubshell(this._commsOverSubshells);
this._commsOverSubshells = value;
if (this._commsOverSubshells === CommsOverSubshells.Disabled) {
this._maybeCloseSubshell();
} else {
void this._maybeStartSubshell();
}
closePromise
.then(() => {
if (this._commsOverSubshells !== CommsOverSubshells.Disabled) {
void this._maybeStartSubshell();
}
})
.catch(console.warn);
}

@@ -271,3 +278,3 @@

dispose(): void {
this._maybeCloseSubshell();
void this._maybeCloseSubshell(this._commsOverSubshells);

@@ -299,2 +306,3 @@ super.dispose();

// One shell per comm-target
const subshellStarted = this._subshellStarted;
const kernelId = this._kernel.id;

@@ -304,34 +312,104 @@ if (!CommHandler._commTargetSubShellsId.hasOwnProperty(kernelId)) {

}
const kernelCommTargetSubShells =
const kernelCommTargetSubshells =
CommHandler._commTargetSubShellsId[kernelId];
if (kernelCommTargetSubShells[this._target]) {
this._subshellId = await kernelCommTargetSubShells[this._target];
this._subshellStarted.resolve();
} else {
// Create subshell
kernelCommTargetSubShells[this._target] = this._kernel
const existingEntry = kernelCommTargetSubshells[this._target];
if (existingEntry) {
existingEntry.referenceCount += 1;
try {
this._subshellId = await existingEntry.subshellId;
subshellStarted.resolve();
} catch (e) {
// If the future rejected we need to close the subshell to avoid leaks
await this._closePerCommTargetSubshell(false);
subshellStarted.reject(
`Per comm-target subshell creation failed: ${e}`
);
}
return;
}
const entry: Private.ISubshellEntry = {
subshellId: this._kernel
.requestCreateSubshell({})
.done.then(replyMsg => {
this._subshellId = replyMsg.content.subshell_id;
return this._subshellId;
});
await kernelCommTargetSubShells[this._target];
this._subshellStarted.resolve();
.done.then(replyMsg => replyMsg.content.subshell_id),
referenceCount: 1
};
kernelCommTargetSubshells[this._target] = entry;
try {
this._subshellId = await entry.subshellId;
subshellStarted.resolve();
} catch (e) {
// If the future rejected we need to close the subshell to avoid leaks
await this._closePerCommTargetSubshell(false);
subshellStarted.reject(`Per comm-target subshell creation failed: ${e}`);
}
}
private _maybeCloseSubshell() {
// Only close subshell if we have one subshell per comm
if (this._commsOverSubshells !== CommsOverSubshells.PerComm) {
private async _closePerCommTargetSubshell(shouldAskKernelToDelete = true) {
const kernelId = this._kernel.id;
const target = this._target;
if (CommHandler._commTargetSubShellsId.hasOwnProperty(kernelId)) {
// Close the subshell for this target if this is the last comm.
const kernelTargets = CommHandler._commTargetSubShellsId[kernelId];
const entry = kernelTargets[target];
if (entry) {
entry.referenceCount -= 1;
if (entry.referenceCount <= 0) {
if (shouldAskKernelToDelete) {
let subshellId: string | null = null;
try {
subshellId = await entry.subshellId;
} catch (e) {
console.warn(
`Subshell identifier not available in the closeout sequence, will not request deletion: ${e}`
);
}
if (subshellId !== null) {
this._kernel.requestDeleteSubshell(
{ subshell_id: subshellId },
true
);
}
}
delete kernelTargets[target];
}
}
if (Object.keys(kernelTargets).length === 0) {
delete CommHandler._commTargetSubShellsId[kernelId];
}
// Clear identifier
this._subshellId = null;
return;
}
// Restart promise delegate to subsequent startup
this._subshellStarted = new PromiseDelegate<void>();
}
if (this._subshellId && this._kernel.status !== 'dead') {
this._kernel.requestDeleteSubshell(
{ subshell_id: this._subshellId },
true
);
private async _maybeCloseSubshell(mode: CommsOverSubshells) {
if (this._kernel.status === 'dead') {
return;
}
this._subshellId = null;
switch (mode) {
case CommsOverSubshells.PerComm: {
if (this._subshellId) {
// Close the only subshell
this._kernel.requestDeleteSubshell(
{ subshell_id: this._subshellId },
true
);
// Clear identifier
this._subshellId = null;
}
// Restart promise delegate to subsequent startup
this._subshellStarted = new PromiseDelegate<void>();
break;
}
case CommsOverSubshells.PerCommTarget: {
await this._closePerCommTargetSubshell();
break;
}
case CommsOverSubshells.Disabled: {
// no-op
break;
}
}
}

@@ -342,3 +420,5 @@

// One subshell per kernel per comm target.
[kernelId: string]: { [targetName: string]: Promise<string> | null };
[kernelId: string]: {
[targetName: string]: Private.ISubshellEntry;
};
} = {};

@@ -357,1 +437,22 @@

}
/**
* Private interfaces of comm handler.
*/
namespace Private {
/**
* Describes an entry in the static tracker of subshells used in per-comm-target mode.
*/
export interface ISubshellEntry {
/**
* Promise which resolves with subshell identifier once it is known.
*/
subshellId: Promise<string>;
/**
* Keeps track of the number of references to the subshell.
*
* This is used to guard subshells shared across comm targets from premature disposal.
*/
referenceCount: number;
}
}

Sorry, the diff of this file is too big to display