vscode-jupyter: zmq package does not work on Mac High Sierra (results in EH restart)

Environment data

  • VS Code version: 1.78.2
  • Jupyter Extension version (available under the Extensions sidebar): v2023.3.1000892223 (and above)
  • Python Extension version (available under the Extensions sidebar): v2023.8.0
  • OS (Windows | Mac | Linux distro) and version: macOS High Sierra 10.13.6
  • Python and/or Anaconda version: Python 3.8.2
  • Type of virtual environment used (N/A | venv | virtualenv | conda | …): venv

VS Code

  • Version: 1.78.2
  • Commit: b3e4e68a0bc097f0ae7907b217c1119af9e03435
  • Date: 2023-05-10T14:44:45.204Z (3 wks ago)
  • Electron: 22.5.2
  • Chromium: 108.0.5359.215
  • Node.js: 16.17.1
  • V8: 10.8.168.25-electron.0
  • OS: Darwin x64 17.7.0
  • Sandboxed: Yes

VS Code - Insiders

  • Version: 1.79.0-insider (Universal)
  • Commit: 05ae089c791aa5c8ec05abd5687c9a31517579bc
  • Date: 2023-06-02T09:42:42.311Z (23 hrs ago)
  • Electron: 22.5.5
  • Chromium: 108.0.5359.215
  • Node.js: 16.17.1
  • V8: 10.8.168.25-electron.0
  • OS: Darwin x64 17.7.0

Expected behaviour

Kernel should load properly and allow to Select Another Kernel... (if necessary).

Actual behaviour

Kernel crashes with the following error message:

Extension host terminated unexpectedly 3 times within the last 5 minutes.

The option Select Another Kernel... is empty. No other kernels can be selected.

Afterwards, although Jupyter is installed, VS Code outputs the following error message:

Error: Cannot open resource with notebook editor type 'jupyter-notebook'...

Steps to reproduce:

It turns out that one of the node modules of ms-toolsai.jupyter, i.e. zeromq is the culprit.

Newer versions of ms-toolsai.jupyter load node.napi.glibc.node instead of node.napi.node. Note that node.napi.glibc.node was built for macOS Catalina 10.15. Also note that these newer versions come shipped with two folders, namely zeromq and zeromqold. Somehow, zeromqold is not loaded in case that zeromq fails. Else,

What’s the purpose of zeromqold?

Temporary solution

To solve this for older versions of macOS, either:

  1. Manually replace node.napi.glibc.node with node.napi.node. or
  2. Rename the zeromq to zeromqnew, and zeromqold to zeromq.

Preferably save a backup as node.napi.glibc.node.bak just in case.

Logs

Command Palette > Developer: Toggle Developer Tools

[Extension Host] Starting WebSocket: RAW/api/kernels/b7ad93b0-b61d-418a-93a8-adb9d7ae5a64 (at console.<anonymous> (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:99:161026))

Starting WebSocket: RAW/api/kernels/b7ad93b0-b61d-418a-93a8-adb9d7ae5a64
dyld: lazy symbol binding failed: Symbol not found: ____chkstk_darwin
    Referenced from: /Users/user-1/.vscode-insiders/extensions/ms-toolsai.jupyter-2023.4.1011241018-darwin-x64/out/node_modules/zeromq/prebuilds/darwin-x64/node.napi.glibc.node (which was built for Mac OS X 10.15)
    Expected in: /usr/lib/libSystem.B.dylib
dyld: Symbol not found: ____chkstk_darwin
    Referenced from: /Users/user-1/.vscode-insiders/extensions/ms-toolsai.jupyter-2023.4.1011241018-darwin-x64/out/node_modules/zeromq/prebuilds/darwin-x64/node.napi.glibc.node (which was built for Mac OS X 10.15)
    Expected in: /usr/lib/libSystem.B.dylib

The extension host (LocalProcess) terminated unexpectedly. Code: 6, Signal: unknown

Remarks

Please fix this as soon as possible, at least for the Jupyter Pre-Release Version. Thanks!

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Comments: 15 (8 by maintainers)

Most upvoted comments

@DonJayamanne the version which we build has deployment target set to 10.15 and it was changed in this commit https://github.com/zeromq/zeromq.js/commit/6364fddf067ca5f692fac4a5607e9a80c8357b90. I am not sure of the reasoning behind the change from the commit, so we can roll back to 10.13 and check if CI passes.