Changes on OC groups failed if wasp auditing is enabled in Linux: Internal Server Error 500
search cancel

Changes on OC groups failed if wasp auditing is enabled in Linux: Internal Server Error 500

book

Article ID: 435328

calendar_today

Updated On:

Products

DX Unified Infrastructure Management (Nimsoft / UIM)

Issue/Introduction

  • Symptoms:

    • When attempting to edit, create, or save a Group in the DX UIM Operator Console (OC) on Linux, the action fails with an "Internal Server Error."
    • Save of changed groups failed if wasp auditing is enabled: 500 errors are found on browser's DevTools:

 

  • Key Observations:

    • The issue is NOT present in 23.4 CU5 or earlier. The issue begins occurring immediately after upgrading to 23.4 CU6 (or higher).
    • The issue only occurs when auditing key in wasp/setup/auditing is set to true





    • When auditing is set to false, the issue does not occur. 
    • The error is specific to Linux-hosted OC
    • Reinstalling OC from Scratch doesn't resolve the issue

 

  • Error Strings in OC GUI when the issue occurs: 

    java.lang.NoClassDefFoundError: Could not initialize class org.springframework.jdbc.core.metadata.TableMetaDataProviderFactory

    java.lang.NoSuchMethodError: 'java.lang.ClassLoader org.apache.commons.logging.LogFactory.getClassLoader(java.lang.Class)'

Environment

  • DX UIM 23. CU6 and higher
  • wasp probe (Operator Console)
  • OS on OC: Linux (All distributions)

Cause

  • Starting with CU6, the OC frameworks was updated which have a strict requirement for updated logging and database metadata handling.

  • Legacy JAR files (leftovers from previous versions) may exist in the /probes/service/wasp/lib/ directory, the Linux JVM loads them before the updated libraries inside the OC portlet, causing this issue. 

Resolution

Steps to resolve this issue: 

  • Step 1: Set Java Headless Mode

    Open the wasp probe in Raw Configure.

    1. Navigate to the setup section.
    2. Add the following to the options (JVM options) key:

      -Djava.awt.headless=true

    3. Remove any legacy overrides, specifically: 

      -Dorg.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl

      Example from a lab on how the section should look like:

      <startup>
          options = -Dfile.encoding=UTF-8 --add-opens java.base/java.util=ALL-UNNAMED -Djava.awt.headless=true
          <opt>
              java_mem_max = -Xmx4096m
              java_mem_init = -Xms512m
          </opt>
      </startup>



  • Step 2: Remove Legacy Conflict JARs

    Identify and remove the "shadow" JARs from the shared library path.

    1. Navigate to: /opt/nimsoft/probes/service/wasp/lib/

    2. Move the following legacy files to a backup location outside of the Nimsoft directory:
      • commons-logging-1.1.3.jar
      • spring-data-jdbc-core-1.2.1.RELEASE.jar


  • Step 3: Clear Cache and Restart

    1. Deactivate the wasp probe.

    2. Clear the work directory to remove "poisoned" compiled classes:

      rm -rf /opt/nimsoft/probes/service/wasp/work/*


    3. Activate the wasp probe.