Issue Description:
Any upgrade to SRM 6.0.0.2 with Power Solution Pack, the PowerStorecollector stopped collecting data due to runtime errors (NoClassDefFoundError).
Summary:
SRM
6.0.0.2 includes older versions of key libraries, specifically commons-io-2.5
and commons-lang3-3.12.0. However, the PowerStore collector (and its underlying
processing components) relies on newer APIs that are not available in these
versions.
In particular, the required class org.apache.commons.io.function.IOIterator
is missing in the older Commons IO library. As a result, when the collector
attempts to process data (during archive extraction via ZipExtractTransformer),
it fails with a ClassNotFoundException, which escalates to a NoClassDefFoundError,
ultimately causing the collector to stop processing data.
Resolution:
Hotfix is provided to resolve the power store collection issue.This hotfix needs to be applied after upgrading the SRM to 6.0.0.2 version.
Steps:
Below steps needs to be executed on the collector host where PowerstoreSolution Pack is installed
1. Download the new commons-io-2.19.0.jar and commons-lang3-3.18.0.jar available as attachment and unzip powerstore-libraries.zip
2. Navigate to the below installation path on collector host
/opt/APG/Collecting/Collector-Manager/emc-powerstore/lib//opt/APG/Collecting/Stream-Collector/emc-powerstore/lib/
3. Backup the existing commons-io-2.5.jar and commons-lang3-3.12.0.jar
mv /opt/APG/Collecting/Collector-Manager/emc-powerstore/lib/commons-io-2.5.jar
/opt/APG/Collecting/Collector-Manager/emc-powerstore/lib/commons-io-2.5.jar.backup
mv /opt/APG/Collecting/Collector-Manager/emc-powerstore/lib/commons-lang3-3.12.0.jar
/opt/APG/Collecting/Collector-Manager/emc-powerstore/lib/commons-lang3-3.12.0.jar.backup
mv /opt/APG/Collecting/Stream-Collector/emc-powerstore/lib/commons-io-2.5.jar
/opt/APG/Collecting/Stream-Collector/emc-powerstore/lib/commons-io-2.5.jar.backup
mv /opt/APG/Collecting/Stream-Collector/emc-powerstore/lib/commons-lang3-3.12.0.jar
/opt/APG/Collecting/Stream-Collector/emc-powerstore/lib/commons-lang3-3.12.0.jar.backup
4. Stop the PowerStore collector services
manage-modules.sh service stop collector-manager emc-powerstore
5. Copy the new jar from the extracted download to below locations
/opt/APG/Collecting/Collector-Manager/emc-powerstore/lib/
/opt/APG/Collecting/Stream-Collector/emc-powerstore/lib/
6. Modify the required permissions
chown apg:apg commons-io-2.19.0.jar
chown apg:apg commons-lang3-3.18.0.jar
7. Restart PowerStore collector services
manage-modules.sh service restart collector-manager emc-powerstore