Known Issues and Limitations in ML Runtimes version 2024.10.01
You might run into some known issues while using ML Runtimes 2024.10.01.
DSE-25143 Assembling plots in PBJ R Runtimes does not work
When trying to plot additional content on already existing plots, PBJ R Runtimes throw an
        error. Plots can only be created using the plot function.
DSE-32839 Extra configuration needed when using Spark in a PBJ Workbench-based R Runtime
When using Spark in R workloads that are running PBJ Workbench Runtimes, the environmental
        variable R_LIBS_USER must be passed to the Spark executors with the value
        set to "/home/cdsw/.local/lib/R/<R_VERSION>/library". 
library(sparklyr)
config <- spark_config()
config$spark.executorEnv.R_LIBS_USER="/home/cdsw/.local/lib/R/4.3/library"
sc <- spark_connect(config = config)        DSE-27222 Workbench editor for Python Runtimes and PBJ Runtimes cannot parse multiline strings properly
Workbench editor for Python 3.7 Runtime cannot parse multiline strings properly. Trying to evaluate multiline strings in some cases result in a "SyntaxError: EOF while scanning triple-quoted string literal" error message. This has been fixed in Python 3.8 and higher.
Workaround: Transform multiline strings to single line strings in code that is entered into the workbench directly.
Packages can fail to load in a session
When installing R or Python packages in a Session, the kernel might not be able to load the package in the same session, if a previous version of the package or its newly installed dependencies have been loaded in the same Session. Such issues are observable more often in PBJ R Runtimes, which automatically load basic R packages like vctrs, lifecycle, rlang, cli at session startup.
Workaround: Start a new session, import and use the newly installed package there.
Python Runtimes in Cloudera AI fail to import the
          setuptools Python library and can fail installing some Python
        packages
      
      Python Runtimes in Cloudera AI fail to import the
          setuptools Python library and therefore can fail installing some Python
        packages when the library setuptools is present on the Runtime or is
        installed into the Cloudera AI project with version 60.0.0 or
        higher.
Python 3.10 Runtimes from the 2023.05 Runtime release ship with a newer version of
          setuptools, so customers can run into this issue when they are using that
        Runtime. Also they can run into this issue when they are using Custom Runtimes that has a
        newer setuptools library version or when they install a new
          setuptools version into their project (regardless of what Runtime they
        use). 
Workaround: Set the environmental variable
          SETUPTOOLS_USE_DISTUTILS=stdlib either on a project level under
          Project Settings -> Advanced or on a workbench level under
          Site Administration -> Runtime -> Environment variables.
Version of jupyter-client Python package must be less than version 8 for PBJ Runtimes
Upgrading the Python package jupyter-client with a version greater than
        7.4.9 can temporarily break a Project. Workloads using PBJ Runtimes will not be able to
        start Projects if the jupyter-client version is greater than 7.4.9.
Workaround: Launch the same version of Python, but not on a PBJ Runtime (either
        Workbench or JupyterLab). Open a Terminal window and uninstall the
          jupyter-client package from the Project by executing pip3
          uninstall jupyter-client. Verify your change by running pip3
          list and checking that the version of the jupyter-client package
        is less than version 8.
DSE-9818 JupyterLab Conda Technical Preview Runtime
- Sessions
 - When starting a Notebook or a Console for a specific environment, the installed
              packages will be available and the interpreter used to evaluate the contents of the
              Notebook or Console will be the one installed in the environment. However, the Conda
              environment is not "activated" in these sessions, therefore commands like
                
!which pythonwill return with the base Python 3.10 interpreter on the Runtime. The recommended ways to modify a Conda environments or install packages are the following:- conda commands must be used with the 
-nor--nameargument to specify the environment, for exampleconda -n myenv install pandas - When installing packages with pip, use the 
%pipmagic to install packages in the active kernel’s environment, for example%pip install pandas 
 - conda commands must be used with the 
 - Applications and Jobs
 - To start an Application or Job, first create a launcher Python script containing the
              following line: 
!source activate <conda_env_name> && python <job / application script.py> - Models
 - Models are currently not supported for the Conda Runtime.
 - Spark
 - Spark is not supported in JupyterLab Notebooks and Consoles.
 
Adding a new ML Runtimes when using a custom root certificate might generate error messages
When trying to add new ML Runtimes, a number of error messages might appear in various places when using a custom root certificate. For example, you might see: "Could not fetch the image metadata" or "certificate signed by unknown authority". This is caused by the runtime-puller pods not having access to the custom root certificate that is in use.
Workaround:
- Create a directory at any location on the master node:
For example:
mkdir -p /certs/ - Copy the full server certificate chain into this folder. It is usually easier to
            create a single file with all of your certificates (server, intermediate(s), root): 
# copy all certificates into a single file: cat server-cert.pem intermediate.pem root.pem > /certs/cert-chain.crt - (Optional) If you are using a custom docker registry that has its own certificate, you
            need to copy this certificate chain into this same
            file:
cat docker-registry-cert.pem >> /certs/cert-chain.crt - Copy the global CA certificates into this new file:
            
# cat /etc/ssl/certs/ca-bundle.crt >> /certs/cert-chain.crt - Edit your deployment of runtime manager and add the new mount. 
Do not delete any existing objects.
#kubectl edit deployment runtime-manager - Under VolumeMounts, add the following lines. 
Note that the text is white-space sensitive - use spaces and not tabs.
- mountPath: /etc/ssl/certs/ca-certificates.crt name: mycert subPath: cert-chain.crt #this should match the new file name created in step 4Under Volumes add the following text in the same edit:
- hostPath: path: /certs/ #this needs to match the folder created in step 1 type: "" name: mycert - Save your changes: 
wq!Once saved, you will receive the message "deployment.apps/runtime-manager edited" and the pod will be restarted with your new changes.
 - To persist these changes across cluster restarts, use the following Knowledge Base article to create a kubernetes patch file for the runtime-manager deployment: https://community.cloudera.com/t5/Customer/Patching-CDSW-Kubernetes-deployments/ta-p/90241
 
Cloudera Bug: DSE-20530
Spark Runtime Add-on required for Spark 2 integration with Scala Runtimes
Scala Runtimes on Cloudera AI require Spark Runtime Addon to enable Spark2 integration. Spark3 is not supported with the Scala Runtime.
DSE-17981 - Disable Scala runtimes in models, experiments and applications runtime selection
Scala Runtimes should not appear as an option for Models, Experiments, and Applications in the user interface. Currently Scala Runtimes only support Session and Jobs.
Impyla is not compatible with Python 3.12
The Python 3.12 editions of ML Runtimes, that is ML Runtimes 2024.10 version and higher versions, are not supported by the Impyla package. Therefore, Impyla cannot be used with these ML Runtimes to connect to Apache Impala.
