Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] - Using normal Jupyterlab image results in error with missing libs (Qhub 0.3.14) #1161

Closed
yuhuishi-convect opened this issue Mar 12, 2022 · 2 comments

Comments

@yuhuishi-convect
Copy link

yuhuishi-convect commented Mar 12, 2022

OS system and architecture in which you are running QHub

Linux yuhui-mini-itx-desktop 5.13.0-35-generic #40~20.04.1-Ubuntu SMP Mon Mar 7 09:18:32 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

Expected behavior

Once the terminal app is open, the user should log in as user jovyan and operate normally.

Actual behavior

Any command execute will complain about ERROR: ld.so: object 'libnss_wrapper.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.

Though the command can be executed successfully.

jovyan@jupyter-yuhuishi-2dconvect:~$ ls
ERROR: ld.so: object 'libnss_wrapper.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
dask-worker-space  shared  test.ipynb

How to Reproduce the problem?

Add a profile using a non-qhub built image.

For example,

profiles:
  jupyterlab:
  - display_name: Elyra Pipeline toolkit
    description: Run notebooks a pipelines
    kubespawner_override:
      cpu_limit: 1
      cpu_guarantee: 0.75
      mem_limit: 4G
      mem_guarantee: 2.5G
      image: elyra/elyra:3.5.3

Then open the terminal app from the jupyterlab ui

Command output

jovyan@jupyter-yuhuishi-2dconvect:~$ 
jovyan@jupyter-yuhuishi-2dconvect:~$ 
jovyan@jupyter-yuhuishi-2dconvect:~$ 
jovyan@jupyter-yuhuishi-2dconvect:~$ ls
ERROR: ld.so: object 'libnss_wrapper.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
dask-worker-space  shared  test.ipynb
jovyan@jupyter-yuhuishi-2dconvect:~$ 

Versions and dependencies used.

conda 4.10.3

$ kubectl version                                                                                                     
Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.3", GitCommit:"c92036820499fedefec0f847e2054d824aea6cd1", GitTreeState:"clean", BuildDate:"2021-10-27T18:41:28Z", GoVersion:"go1.16.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"21+", GitVersion:"v1.21.5-eks-bc4871b", GitCommit:"5236faf39f1b7a7dabea8df12726f25608131aa9", GitTreeState:"clean", BuildDate:"2021-10-29T23:32:16Z", GoVersion:"go1.16.8", Compiler:"gc", Platform:"linux/amd64"}

qhub == 0.3.14

Compute environment

AWS

Integrations

NA

Anything else?

I assume the reason behind that is in a normal jupyterlab image, there are no configuration steps to fix the user / group mapping. In a qhub jupyterlab image, it relies on nss_wrapper and a few additional libs to fix that. However, these libs are missing in a normal jupyterlab image.

I am wondering, what is the correct way to use a normal jupyterlab image with a qhub deployment.

@yuhuishi-convect yuhuishi-convect added the type: bug 🐛 Something isn't working label Mar 12, 2022
@viniciusdc viniciusdc changed the title [BUG] - [BUG] - Using normal Jupyterlab image results in error with missing libs (Qhub 0.3.14) Mar 15, 2022
@viniciusdc
Copy link
Contributor

Hi @yuhuishi-convect, indeed qhub v0.3.14 uses some user mapping configuration in the docker image. We used that to be sure our group's shared folders and files would have the necessary permissions linked to the user. That was added as part of a refactoring made for v0.4.0, besides that, we also add support for conda/mamba as the package managers for the user's environments.

Answering your question, right now it might be really difficult to use a simple image of jupyterlab within QHub (0.3.14) given the above conditions, a way of doing it is to pass all extra configuration from those images as config maps to Kubernetes deployments. An example of this work can be found in #1143 where we are doing exactly this, moving those restrictions from the image to QHub itself. That addition should show up in a future v0.4.1 release.

Hope this helps you a bit, feel free to reach us out in our Gitter channel as well https://gitter.im/Quansight/qhub

@viniciusdc viniciusdc added type: enhancement 💅🏼 New feature or request type: question-external and removed type: bug 🐛 Something isn't working needs: follow-up 📫 Someone needs to get back to this issue or PR labels Mar 21, 2022
@trallard trallard moved this to Needs Triage 🔍 in QHub Project Mangement 🚀 Apr 9, 2022
@viniciusdc
Copy link
Contributor

@yuhuishi-convect I will be closing this issue as some support for 0.3.+ version is now discontinued, if you encounter a similar issue with 0.4.0 please feel free to open a new issue. As I commented before we are working on a better way to decouple some of those custom settings and restrictions from the docker images.

Repository owner moved this from Needs Triage 🔍 to Done 💪🏾 in QHub Project Mangement 🚀 May 11, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants