Limitations of the Ksplice Enhanced Client

Be aware of the following important Oracle Ksplice limitations:

  • Ksplice reports an error similar to the following if it can't apply updates to processes that don't have access to the /var/cache/ksplice directory:

    Ksplice was unable to load the update as the target process is in a
    different mount namespace or has changed root.  The service must be
    restarted to apply on-disk updates.
    Extra information: the process has changed root or mount namespace.
      └─ rtkit-daemon (3680)

    This error might typically occur with processes that use chroot or those that run in an LXC or Docker container. In such cases, you must restart the process to apply any available updates. For example, to restart the rtkit-daemon service, you would use the systemctl restart rtkit-daemon command.

    To avoid restarting a chrooted application that you maintain and compile, ensure that the /var/cache/ksplice directory is bind-mounted in the chrooted environment.

  • Ksplice can't patch applications that use either setcontext or swapcontext from glibc to perform user space context switching between process threads.

  • Because of certain kernel limitations, Ksplice doesn't patch the init process (PID 1).

    On Oracle Linux 7 and later, the init process, which is systemd, is automatically run again on system updates, so it doesn't require patching with Ksplice.

    On Oracle Linux 6, Upstart isn't capable of running itself again, so any updates to glibc that can affect Upstart might require a reboot.