Trino

SPI class found in plugin classloader causes ClassNotFoundException

warning
configurationUpdated Feb 10, 2025(via Exa)
Technologies:
How to detect:

Trino fails to start or load plugins when an SPI (Service Provider Interface) class is not found in the SPI classloader but exists in a plugin-specific classloader (e.g., delta-lake plugin). This indicates classloader isolation issues, typically due to dependency conflicts or incorrect packaging of plugin dependencies.

Recommended action:

Review plugin dependencies to ensure SPI classes are properly packaged in the SPI classloader rather than plugin classloaders. Check for conflicting versions of libraries (e.g., OpenTelemetry) between core Trino and plugins. After Trino 471+, examine the enhanced ClassNotFoundException message which identifies the specific plugin classloader containing the conflicting class to diagnose the source of the conflict.