Cloudron makes it easy to run web apps like WordPress, Nextcloud, GitLab on your server. Find out more or install now.


Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Bookmarks
  • Search
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Cloudron Forum

Apps | Demo | Docs | Install
  1. Cloudron Forum
  2. JupyterHub
  3. Installing JupyterHub extensions

Installing JupyterHub extensions

Scheduled Pinned Locked Moved JupyterHub
5 Posts 3 Posters 1.1k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • infogulchI Offline
      infogulchI Offline
      infogulch
      wrote on last edited by infogulch
      #1

      The JupyterHub app allows you to install extensions, such as jupyterlab-git.

      6acba7fd-8f85-47fb-975a-4681432b386f-image.png

      When I select to install the extension and trigger a rebuild (required apparently), the rebuild fails, and suggests to run it manually with jupyter lab build.

      jovyan@5a04ce7f0bf2:~$ jupyter lab build
      [LabBuildApp] JupyterLab 3.0.15
      [LabBuildApp] Building in /opt/conda/share/jupyter/lab
      [LabBuildApp] Building jupyterlab assets (production, minimized)
      Build failed.
      Troubleshooting: If the build failed due to an out-of-memory error, you
      may be able to fix it by disabling the `dev_build` and/or `minimize` options.
      
      If you are building via the `jupyter lab build` command, you can disable
      these options like so:
      
      jupyter lab build --dev-build=False --minimize=False
      
      You can also disable these options for all JupyterLab builds by adding these
      lines to a Jupyter config file named `jupyter_config.py`:
      
      c.LabBuildApp.minimize = False
      c.LabBuildApp.dev_build = False
      
      If you don't already have a `jupyter_config.py` file, you can create one by
      adding a blank file of that name to any of the Jupyter config directories.
      The config directories can be listed by running:
      
      jupyter --paths
      
      Explanation:
      
      - `dev-build`: This option controls whether a `dev` or a more streamlined
      `production` build is used. This option will default to `False` (i.e., the
      `production` build) for most users. However, if you have any labextensions
      installed from local files, this option will instead default to `True`.
      Explicitly setting `dev-build` to `False` will ensure that the `production`
      build is used in all circumstances.
      
      - `minimize`: This option controls whether your JS bundle is minified
      during the Webpack build, which helps to improve JupyterLab's overall
      performance. However, the minifier plugin used by Webpack is very memory
      intensive, so turning it off may help the build finish successfully in
      low-memory environments.
      
      An error occured.
      RuntimeError: JupyterLab failed to build
      See the log file for details:  /tmp/jupyterlab-debug-dk5alq3x.log
      

      Printing the logs shows:

      jovyan@5a04ce7f0bf2:~$ cat /tmp/jupyterlab-debug-dk5alq3x.log
      [LabBuildApp] Building in /opt/conda/share/jupyter/lab
      [LabBuildApp] Node v15.14.0
      
      [LabBuildApp] Yarn configuration loaded.
      [LabBuildApp] Building jupyterlab assets (production, minimized)
      [LabBuildApp] > node /opt/conda/lib/python3.9/site-packages/jupyterlab/staging/yarn.js install --non-interactive
      [LabBuildApp] yarn install v1.21.1
      [1/5] Validating package.json...
      [2/5] Resolving packages...
      success Already up-to-date.
      Done in 1.18s.
      
      [LabBuildApp] > node /opt/conda/lib/python3.9/site-packages/jupyterlab/staging/yarn.js yarn-deduplicate -s fewer --fail
      [LabBuildApp] yarn run v1.21.1
      $ /opt/conda/share/jupyter/lab/staging/node_modules/.bin/yarn-deduplicate -s fewer --fail
      Done in 0.81s.
      
      [LabBuildApp] > node /opt/conda/lib/python3.9/site-packages/jupyterlab/staging/yarn.js run build:prod:minimize
      [LabBuildApp] yarn run v1.21.1
      $ webpack --config webpack.prod.minimize.config.js
      
      <--- Last few GCs --->
      
      [281:0x56120a659a50]    43888 ms: Scavenge 248.8 (257.5) -> 248.4 (257.5) MB, 1.9 / 0.0 ms  (average mu = 0.501, current mu = 0.333) allocation failure 
      [281:0x56120a659a50]    43897 ms: Scavenge 248.8 (257.5) -> 248.6 (258.0) MB, 2.8 / 0.0 ms  (average mu = 0.501, current mu = 0.333) allocation failure 
      [281:0x56120a659a50]    44272 ms: Mark-sweep 249.5 (258.0) -> 248.8 (259.0) MB, 361.5 / 0.0 ms  (average mu = 0.363, current mu = 0.115) allocation failure scavenge might not succeed
      
      
      <--- JS stacktrace --->
      
      FATAL ERROR: MarkCompactCollector: young object promotion failed Allocation failed - JavaScript heap out of memory
       1: 0x7f6679728ed9 node::Abort() [/opt/conda/bin/../lib/libnode.so.88]
       2: 0x7f6679619e37 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > node::SPrintFImpl<int&, char const*>(char const*, int&, char const*&&) [/opt/conda/bin/../lib/libnode.so.88]
       3: 0x7f6679ae9442 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/opt/conda/bin/../lib/libnode.so.88]
       4: 0x7f6679ae971b v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/opt/conda/bin/../lib/libnode.so.88]
       5: 0x7f6679caef36  [/opt/conda/bin/../lib/libnode.so.88]
       6: 0x7f6679ce37a4  [/opt/conda/bin/../lib/libnode.so.88]
       7: 0x7f6679ced83d void v8::internal::LiveObjectVisitor::VisitBlackObjectsNoFail<v8::internal::EvacuateNewSpaceVisitor, v8::internal::MajorNonAtomicMarkingState>(v8::internal::MemoryChunk*, v8::internal::MajorNonAtomicMarkingState*, v8::internal::EvacuateNewSpaceVisitor*, v8::internal::LiveObjectVisitor::IterationMode) [/opt/conda/bin/../lib/libnode.so.88]
       8: 0x7f6679cf4b6d v8::internal::FullEvacuator::RawEvacuatePage(v8::internal::MemoryChunk*, long*) [/opt/conda/bin/../lib/libnode.so.88]
       9: 0x7f6679cdc334 v8::internal::Evacuator::EvacuatePage(v8::internal::MemoryChunk*) [/opt/conda/bin/../lib/libnode.so.88]
      10: 0x7f6679cdc60a  [/opt/conda/bin/../lib/libnode.so.88]
      11: 0x7f6679cccf35 v8::internal::ItemParallelJob::Task::RunInternal() [/opt/conda/bin/../lib/libnode.so.88]
      12: 0x7f6679ccd321 v8::internal::ItemParallelJob::Run() [/opt/conda/bin/../lib/libnode.so.88]
      13: 0x7f6679ceea8f void v8::internal::MarkCompactCollectorBase::CreateAndExecuteEvacuationTasks<v8::internal::FullEvacuator, v8::internal::MarkCompactCollector>(v8::internal::MarkCompactCollector*, v8::internal::ItemParallelJob*, v8::internal::MigrationObserver*, long) [/opt/conda/bin/../lib/libnode.so.88]
      14: 0x7f6679cf35b5 v8::internal::MarkCompactCollector::EvacuatePagesInParallel() [/opt/conda/bin/../lib/libnode.so.88]
      15: 0x7f6679cf38dd v8::internal::MarkCompactCollector::Evacuate() [/opt/conda/bin/../lib/libnode.so.88]
      16: 0x7f6679d106ce v8::internal::MarkCompactCollector::CollectGarbage() [/opt/conda/bin/../lib/libnode.so.88]
      17: 0x7f6679cc1ae5 v8::internal::Heap::MarkCompact() [/opt/conda/bin/../lib/libnode.so.88]
      18: 0x7f6679cc22e9 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/opt/conda/bin/../lib/libnode.so.88]
      19: 0x7f6679cc2a5a v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/opt/conda/bin/../lib/libnode.so.88]
      20: 0x7f6679cc5d2d v8::internal::Heap::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/opt/conda/bin/../lib/libnode.so.88]
      21: 0x7f6679cc5d95 v8::internal::Heap::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/opt/conda/bin/../lib/libnode.so.88]
      22: 0x7f6679c8af6b v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationType, v8::internal::AllocationOrigin) [/opt/conda/bin/../lib/libnode.so.88]
      23: 0x7f6679fed92c v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [/opt/conda/bin/../lib/libnode.so.88]
      24: 0x7f667995f3f9  [/opt/conda/bin/../lib/libnode.so.88]
      Aborted (core dumped)
      error Command failed with exit code 134.
      info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
      
      [LabBuildApp] JupyterLab failed to build
      [LabBuildApp] Traceback (most recent call last):
      
      [LabBuildApp]   File "/opt/conda/lib/python3.9/site-packages/jupyterlab/debuglog.py", line 47, in debug_logging
          yield
      
      [LabBuildApp]   File "/opt/conda/lib/python3.9/site-packages/jupyterlab/labapp.py", line 166, in start
          raise e
      
      [LabBuildApp]   File "/opt/conda/lib/python3.9/site-packages/jupyterlab/labapp.py", line 162, in start
          build(name=self.name, version=self.version,
      
      [LabBuildApp]   File "/opt/conda/lib/python3.9/site-packages/jupyterlab/commands.py", line 469, in build
          return handler.build(name=name, version=version, static_url=static_url,
      
      [LabBuildApp]   File "/opt/conda/lib/python3.9/site-packages/jupyterlab/commands.py", line 678, in build
          raise RuntimeError(msg)
      
      [LabBuildApp] RuntimeError: JupyterLab failed to build
      
      [LabBuildApp] Exiting application: JupyterLab
      

      This seems to indicate that it runs out of memory during the rebuild. I increased the app memory usage in cloudron to 1G and also set c.Spawner.mem_limit = '1G', then restarted both the app and the notebook 'server' from the control panel, but neither of those actions changed the outcome.

      Thoughts?

      girishG 2 Replies Last reply
      0
      • infogulchI Offline
        infogulchI Offline
        infogulch
        wrote on last edited by
        #2

        I just noticed that git is available from the terminal, which solves my immediate problem, though I am still interested in how to use extensions.

        1 Reply Last reply
        0
        • infogulchI infogulch

          The JupyterHub app allows you to install extensions, such as jupyterlab-git.

          6acba7fd-8f85-47fb-975a-4681432b386f-image.png

          When I select to install the extension and trigger a rebuild (required apparently), the rebuild fails, and suggests to run it manually with jupyter lab build.

          jovyan@5a04ce7f0bf2:~$ jupyter lab build
          [LabBuildApp] JupyterLab 3.0.15
          [LabBuildApp] Building in /opt/conda/share/jupyter/lab
          [LabBuildApp] Building jupyterlab assets (production, minimized)
          Build failed.
          Troubleshooting: If the build failed due to an out-of-memory error, you
          may be able to fix it by disabling the `dev_build` and/or `minimize` options.
          
          If you are building via the `jupyter lab build` command, you can disable
          these options like so:
          
          jupyter lab build --dev-build=False --minimize=False
          
          You can also disable these options for all JupyterLab builds by adding these
          lines to a Jupyter config file named `jupyter_config.py`:
          
          c.LabBuildApp.minimize = False
          c.LabBuildApp.dev_build = False
          
          If you don't already have a `jupyter_config.py` file, you can create one by
          adding a blank file of that name to any of the Jupyter config directories.
          The config directories can be listed by running:
          
          jupyter --paths
          
          Explanation:
          
          - `dev-build`: This option controls whether a `dev` or a more streamlined
          `production` build is used. This option will default to `False` (i.e., the
          `production` build) for most users. However, if you have any labextensions
          installed from local files, this option will instead default to `True`.
          Explicitly setting `dev-build` to `False` will ensure that the `production`
          build is used in all circumstances.
          
          - `minimize`: This option controls whether your JS bundle is minified
          during the Webpack build, which helps to improve JupyterLab's overall
          performance. However, the minifier plugin used by Webpack is very memory
          intensive, so turning it off may help the build finish successfully in
          low-memory environments.
          
          An error occured.
          RuntimeError: JupyterLab failed to build
          See the log file for details:  /tmp/jupyterlab-debug-dk5alq3x.log
          

          Printing the logs shows:

          jovyan@5a04ce7f0bf2:~$ cat /tmp/jupyterlab-debug-dk5alq3x.log
          [LabBuildApp] Building in /opt/conda/share/jupyter/lab
          [LabBuildApp] Node v15.14.0
          
          [LabBuildApp] Yarn configuration loaded.
          [LabBuildApp] Building jupyterlab assets (production, minimized)
          [LabBuildApp] > node /opt/conda/lib/python3.9/site-packages/jupyterlab/staging/yarn.js install --non-interactive
          [LabBuildApp] yarn install v1.21.1
          [1/5] Validating package.json...
          [2/5] Resolving packages...
          success Already up-to-date.
          Done in 1.18s.
          
          [LabBuildApp] > node /opt/conda/lib/python3.9/site-packages/jupyterlab/staging/yarn.js yarn-deduplicate -s fewer --fail
          [LabBuildApp] yarn run v1.21.1
          $ /opt/conda/share/jupyter/lab/staging/node_modules/.bin/yarn-deduplicate -s fewer --fail
          Done in 0.81s.
          
          [LabBuildApp] > node /opt/conda/lib/python3.9/site-packages/jupyterlab/staging/yarn.js run build:prod:minimize
          [LabBuildApp] yarn run v1.21.1
          $ webpack --config webpack.prod.minimize.config.js
          
          <--- Last few GCs --->
          
          [281:0x56120a659a50]    43888 ms: Scavenge 248.8 (257.5) -> 248.4 (257.5) MB, 1.9 / 0.0 ms  (average mu = 0.501, current mu = 0.333) allocation failure 
          [281:0x56120a659a50]    43897 ms: Scavenge 248.8 (257.5) -> 248.6 (258.0) MB, 2.8 / 0.0 ms  (average mu = 0.501, current mu = 0.333) allocation failure 
          [281:0x56120a659a50]    44272 ms: Mark-sweep 249.5 (258.0) -> 248.8 (259.0) MB, 361.5 / 0.0 ms  (average mu = 0.363, current mu = 0.115) allocation failure scavenge might not succeed
          
          
          <--- JS stacktrace --->
          
          FATAL ERROR: MarkCompactCollector: young object promotion failed Allocation failed - JavaScript heap out of memory
           1: 0x7f6679728ed9 node::Abort() [/opt/conda/bin/../lib/libnode.so.88]
           2: 0x7f6679619e37 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > node::SPrintFImpl<int&, char const*>(char const*, int&, char const*&&) [/opt/conda/bin/../lib/libnode.so.88]
           3: 0x7f6679ae9442 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/opt/conda/bin/../lib/libnode.so.88]
           4: 0x7f6679ae971b v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/opt/conda/bin/../lib/libnode.so.88]
           5: 0x7f6679caef36  [/opt/conda/bin/../lib/libnode.so.88]
           6: 0x7f6679ce37a4  [/opt/conda/bin/../lib/libnode.so.88]
           7: 0x7f6679ced83d void v8::internal::LiveObjectVisitor::VisitBlackObjectsNoFail<v8::internal::EvacuateNewSpaceVisitor, v8::internal::MajorNonAtomicMarkingState>(v8::internal::MemoryChunk*, v8::internal::MajorNonAtomicMarkingState*, v8::internal::EvacuateNewSpaceVisitor*, v8::internal::LiveObjectVisitor::IterationMode) [/opt/conda/bin/../lib/libnode.so.88]
           8: 0x7f6679cf4b6d v8::internal::FullEvacuator::RawEvacuatePage(v8::internal::MemoryChunk*, long*) [/opt/conda/bin/../lib/libnode.so.88]
           9: 0x7f6679cdc334 v8::internal::Evacuator::EvacuatePage(v8::internal::MemoryChunk*) [/opt/conda/bin/../lib/libnode.so.88]
          10: 0x7f6679cdc60a  [/opt/conda/bin/../lib/libnode.so.88]
          11: 0x7f6679cccf35 v8::internal::ItemParallelJob::Task::RunInternal() [/opt/conda/bin/../lib/libnode.so.88]
          12: 0x7f6679ccd321 v8::internal::ItemParallelJob::Run() [/opt/conda/bin/../lib/libnode.so.88]
          13: 0x7f6679ceea8f void v8::internal::MarkCompactCollectorBase::CreateAndExecuteEvacuationTasks<v8::internal::FullEvacuator, v8::internal::MarkCompactCollector>(v8::internal::MarkCompactCollector*, v8::internal::ItemParallelJob*, v8::internal::MigrationObserver*, long) [/opt/conda/bin/../lib/libnode.so.88]
          14: 0x7f6679cf35b5 v8::internal::MarkCompactCollector::EvacuatePagesInParallel() [/opt/conda/bin/../lib/libnode.so.88]
          15: 0x7f6679cf38dd v8::internal::MarkCompactCollector::Evacuate() [/opt/conda/bin/../lib/libnode.so.88]
          16: 0x7f6679d106ce v8::internal::MarkCompactCollector::CollectGarbage() [/opt/conda/bin/../lib/libnode.so.88]
          17: 0x7f6679cc1ae5 v8::internal::Heap::MarkCompact() [/opt/conda/bin/../lib/libnode.so.88]
          18: 0x7f6679cc22e9 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/opt/conda/bin/../lib/libnode.so.88]
          19: 0x7f6679cc2a5a v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/opt/conda/bin/../lib/libnode.so.88]
          20: 0x7f6679cc5d2d v8::internal::Heap::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/opt/conda/bin/../lib/libnode.so.88]
          21: 0x7f6679cc5d95 v8::internal::Heap::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/opt/conda/bin/../lib/libnode.so.88]
          22: 0x7f6679c8af6b v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationType, v8::internal::AllocationOrigin) [/opt/conda/bin/../lib/libnode.so.88]
          23: 0x7f6679fed92c v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [/opt/conda/bin/../lib/libnode.so.88]
          24: 0x7f667995f3f9  [/opt/conda/bin/../lib/libnode.so.88]
          Aborted (core dumped)
          error Command failed with exit code 134.
          info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
          
          [LabBuildApp] JupyterLab failed to build
          [LabBuildApp] Traceback (most recent call last):
          
          [LabBuildApp]   File "/opt/conda/lib/python3.9/site-packages/jupyterlab/debuglog.py", line 47, in debug_logging
              yield
          
          [LabBuildApp]   File "/opt/conda/lib/python3.9/site-packages/jupyterlab/labapp.py", line 166, in start
              raise e
          
          [LabBuildApp]   File "/opt/conda/lib/python3.9/site-packages/jupyterlab/labapp.py", line 162, in start
              build(name=self.name, version=self.version,
          
          [LabBuildApp]   File "/opt/conda/lib/python3.9/site-packages/jupyterlab/commands.py", line 469, in build
              return handler.build(name=name, version=version, static_url=static_url,
          
          [LabBuildApp]   File "/opt/conda/lib/python3.9/site-packages/jupyterlab/commands.py", line 678, in build
              raise RuntimeError(msg)
          
          [LabBuildApp] RuntimeError: JupyterLab failed to build
          
          [LabBuildApp] Exiting application: JupyterLab
          

          This seems to indicate that it runs out of memory during the rebuild. I increased the app memory usage in cloudron to 1G and also set c.Spawner.mem_limit = '1G', then restarted both the app and the notebook 'server' from the control panel, but neither of those actions changed the outcome.

          Thoughts?

          girishG Offline
          girishG Offline
          girish
          Staff
          wrote on last edited by
          #3

          @infogulch said in Installing JupyterHub extensions:

          This seems to indicate that it runs out of memory during the rebuild. I increased the app memory usage in cloudron to 1G and also set c.Spawner.mem_limit = '1G', then restarted both the app and the notebook 'server' from the control panel, but neither of those actions changed the outcome.

          Did you also remove the existing notebook containers? Changing just the memory limit does not change the memory limit of already created notebook containers. This is because re-creating container is "lossy" (as in the conda/pip packages that got installed have to be re-installed). Please see https://docs.cloudron.io/apps/jupyterhub/#notebook-memory-limit . You have to run /app/code/remove_notebook_containers.py

          1 Reply Last reply
          0
          • infogulchI infogulch

            The JupyterHub app allows you to install extensions, such as jupyterlab-git.

            6acba7fd-8f85-47fb-975a-4681432b386f-image.png

            When I select to install the extension and trigger a rebuild (required apparently), the rebuild fails, and suggests to run it manually with jupyter lab build.

            jovyan@5a04ce7f0bf2:~$ jupyter lab build
            [LabBuildApp] JupyterLab 3.0.15
            [LabBuildApp] Building in /opt/conda/share/jupyter/lab
            [LabBuildApp] Building jupyterlab assets (production, minimized)
            Build failed.
            Troubleshooting: If the build failed due to an out-of-memory error, you
            may be able to fix it by disabling the `dev_build` and/or `minimize` options.
            
            If you are building via the `jupyter lab build` command, you can disable
            these options like so:
            
            jupyter lab build --dev-build=False --minimize=False
            
            You can also disable these options for all JupyterLab builds by adding these
            lines to a Jupyter config file named `jupyter_config.py`:
            
            c.LabBuildApp.minimize = False
            c.LabBuildApp.dev_build = False
            
            If you don't already have a `jupyter_config.py` file, you can create one by
            adding a blank file of that name to any of the Jupyter config directories.
            The config directories can be listed by running:
            
            jupyter --paths
            
            Explanation:
            
            - `dev-build`: This option controls whether a `dev` or a more streamlined
            `production` build is used. This option will default to `False` (i.e., the
            `production` build) for most users. However, if you have any labextensions
            installed from local files, this option will instead default to `True`.
            Explicitly setting `dev-build` to `False` will ensure that the `production`
            build is used in all circumstances.
            
            - `minimize`: This option controls whether your JS bundle is minified
            during the Webpack build, which helps to improve JupyterLab's overall
            performance. However, the minifier plugin used by Webpack is very memory
            intensive, so turning it off may help the build finish successfully in
            low-memory environments.
            
            An error occured.
            RuntimeError: JupyterLab failed to build
            See the log file for details:  /tmp/jupyterlab-debug-dk5alq3x.log
            

            Printing the logs shows:

            jovyan@5a04ce7f0bf2:~$ cat /tmp/jupyterlab-debug-dk5alq3x.log
            [LabBuildApp] Building in /opt/conda/share/jupyter/lab
            [LabBuildApp] Node v15.14.0
            
            [LabBuildApp] Yarn configuration loaded.
            [LabBuildApp] Building jupyterlab assets (production, minimized)
            [LabBuildApp] > node /opt/conda/lib/python3.9/site-packages/jupyterlab/staging/yarn.js install --non-interactive
            [LabBuildApp] yarn install v1.21.1
            [1/5] Validating package.json...
            [2/5] Resolving packages...
            success Already up-to-date.
            Done in 1.18s.
            
            [LabBuildApp] > node /opt/conda/lib/python3.9/site-packages/jupyterlab/staging/yarn.js yarn-deduplicate -s fewer --fail
            [LabBuildApp] yarn run v1.21.1
            $ /opt/conda/share/jupyter/lab/staging/node_modules/.bin/yarn-deduplicate -s fewer --fail
            Done in 0.81s.
            
            [LabBuildApp] > node /opt/conda/lib/python3.9/site-packages/jupyterlab/staging/yarn.js run build:prod:minimize
            [LabBuildApp] yarn run v1.21.1
            $ webpack --config webpack.prod.minimize.config.js
            
            <--- Last few GCs --->
            
            [281:0x56120a659a50]    43888 ms: Scavenge 248.8 (257.5) -> 248.4 (257.5) MB, 1.9 / 0.0 ms  (average mu = 0.501, current mu = 0.333) allocation failure 
            [281:0x56120a659a50]    43897 ms: Scavenge 248.8 (257.5) -> 248.6 (258.0) MB, 2.8 / 0.0 ms  (average mu = 0.501, current mu = 0.333) allocation failure 
            [281:0x56120a659a50]    44272 ms: Mark-sweep 249.5 (258.0) -> 248.8 (259.0) MB, 361.5 / 0.0 ms  (average mu = 0.363, current mu = 0.115) allocation failure scavenge might not succeed
            
            
            <--- JS stacktrace --->
            
            FATAL ERROR: MarkCompactCollector: young object promotion failed Allocation failed - JavaScript heap out of memory
             1: 0x7f6679728ed9 node::Abort() [/opt/conda/bin/../lib/libnode.so.88]
             2: 0x7f6679619e37 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > node::SPrintFImpl<int&, char const*>(char const*, int&, char const*&&) [/opt/conda/bin/../lib/libnode.so.88]
             3: 0x7f6679ae9442 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/opt/conda/bin/../lib/libnode.so.88]
             4: 0x7f6679ae971b v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/opt/conda/bin/../lib/libnode.so.88]
             5: 0x7f6679caef36  [/opt/conda/bin/../lib/libnode.so.88]
             6: 0x7f6679ce37a4  [/opt/conda/bin/../lib/libnode.so.88]
             7: 0x7f6679ced83d void v8::internal::LiveObjectVisitor::VisitBlackObjectsNoFail<v8::internal::EvacuateNewSpaceVisitor, v8::internal::MajorNonAtomicMarkingState>(v8::internal::MemoryChunk*, v8::internal::MajorNonAtomicMarkingState*, v8::internal::EvacuateNewSpaceVisitor*, v8::internal::LiveObjectVisitor::IterationMode) [/opt/conda/bin/../lib/libnode.so.88]
             8: 0x7f6679cf4b6d v8::internal::FullEvacuator::RawEvacuatePage(v8::internal::MemoryChunk*, long*) [/opt/conda/bin/../lib/libnode.so.88]
             9: 0x7f6679cdc334 v8::internal::Evacuator::EvacuatePage(v8::internal::MemoryChunk*) [/opt/conda/bin/../lib/libnode.so.88]
            10: 0x7f6679cdc60a  [/opt/conda/bin/../lib/libnode.so.88]
            11: 0x7f6679cccf35 v8::internal::ItemParallelJob::Task::RunInternal() [/opt/conda/bin/../lib/libnode.so.88]
            12: 0x7f6679ccd321 v8::internal::ItemParallelJob::Run() [/opt/conda/bin/../lib/libnode.so.88]
            13: 0x7f6679ceea8f void v8::internal::MarkCompactCollectorBase::CreateAndExecuteEvacuationTasks<v8::internal::FullEvacuator, v8::internal::MarkCompactCollector>(v8::internal::MarkCompactCollector*, v8::internal::ItemParallelJob*, v8::internal::MigrationObserver*, long) [/opt/conda/bin/../lib/libnode.so.88]
            14: 0x7f6679cf35b5 v8::internal::MarkCompactCollector::EvacuatePagesInParallel() [/opt/conda/bin/../lib/libnode.so.88]
            15: 0x7f6679cf38dd v8::internal::MarkCompactCollector::Evacuate() [/opt/conda/bin/../lib/libnode.so.88]
            16: 0x7f6679d106ce v8::internal::MarkCompactCollector::CollectGarbage() [/opt/conda/bin/../lib/libnode.so.88]
            17: 0x7f6679cc1ae5 v8::internal::Heap::MarkCompact() [/opt/conda/bin/../lib/libnode.so.88]
            18: 0x7f6679cc22e9 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/opt/conda/bin/../lib/libnode.so.88]
            19: 0x7f6679cc2a5a v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/opt/conda/bin/../lib/libnode.so.88]
            20: 0x7f6679cc5d2d v8::internal::Heap::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/opt/conda/bin/../lib/libnode.so.88]
            21: 0x7f6679cc5d95 v8::internal::Heap::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/opt/conda/bin/../lib/libnode.so.88]
            22: 0x7f6679c8af6b v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationType, v8::internal::AllocationOrigin) [/opt/conda/bin/../lib/libnode.so.88]
            23: 0x7f6679fed92c v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [/opt/conda/bin/../lib/libnode.so.88]
            24: 0x7f667995f3f9  [/opt/conda/bin/../lib/libnode.so.88]
            Aborted (core dumped)
            error Command failed with exit code 134.
            info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
            
            [LabBuildApp] JupyterLab failed to build
            [LabBuildApp] Traceback (most recent call last):
            
            [LabBuildApp]   File "/opt/conda/lib/python3.9/site-packages/jupyterlab/debuglog.py", line 47, in debug_logging
                yield
            
            [LabBuildApp]   File "/opt/conda/lib/python3.9/site-packages/jupyterlab/labapp.py", line 166, in start
                raise e
            
            [LabBuildApp]   File "/opt/conda/lib/python3.9/site-packages/jupyterlab/labapp.py", line 162, in start
                build(name=self.name, version=self.version,
            
            [LabBuildApp]   File "/opt/conda/lib/python3.9/site-packages/jupyterlab/commands.py", line 469, in build
                return handler.build(name=name, version=version, static_url=static_url,
            
            [LabBuildApp]   File "/opt/conda/lib/python3.9/site-packages/jupyterlab/commands.py", line 678, in build
                raise RuntimeError(msg)
            
            [LabBuildApp] RuntimeError: JupyterLab failed to build
            
            [LabBuildApp] Exiting application: JupyterLab
            

            This seems to indicate that it runs out of memory during the rebuild. I increased the app memory usage in cloudron to 1G and also set c.Spawner.mem_limit = '1G', then restarted both the app and the notebook 'server' from the control panel, but neither of those actions changed the outcome.

            Thoughts?

            girishG Offline
            girishG Offline
            girish
            Staff
            wrote on last edited by girish
            #4

            @infogulch OK, I tried this quickly now and it looks like 1GB is not enough for those webpack builds. I just put it to 4GB and that worked out. Maybe 2GB will suffice too...

            jovyan@195c02caae19:~$ jupyter lab build
            [LabBuildApp] JupyterLab 3.0.15
            [LabBuildApp] Building in /opt/conda/share/jupyter/lab
            [LabBuildApp] Building jupyterlab assets (production, minimized)
            jovyan@195c02caae19:~$ 
            
            B 1 Reply Last reply
            1
            • girishG girish

              @infogulch OK, I tried this quickly now and it looks like 1GB is not enough for those webpack builds. I just put it to 4GB and that worked out. Maybe 2GB will suffice too...

              jovyan@195c02caae19:~$ jupyter lab build
              [LabBuildApp] JupyterLab 3.0.15
              [LabBuildApp] Building in /opt/conda/share/jupyter/lab
              [LabBuildApp] Building jupyterlab assets (production, minimized)
              jovyan@195c02caae19:~$ 
              
              B Offline
              B Offline
              bitjungle
              wrote on last edited by
              #5

              @girish said in Installing JupyterHub extensions:

              @infogulch OK, I tried this quickly now and it looks like 1GB is not enough for those webpack builds. I just put it to 4GB and that worked out. Maybe 2GB will suffice too...

              I tried several different memory settings. In my use case 4G was the minimum needed for rebuilding.

              1 Reply Last reply
              2
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


                • Login

                • Don't have an account? Register

                • Login or register to search.
                • First post
                  Last post
                0
                • Categories
                • Recent
                • Tags
                • Popular
                • Bookmarks
                • Search