What Is New in Jenkins 2.332.x
This LTS release introduces significant infrastructure modernization, including a major service manager change for Linux and core library upgrades that impact plugin compatibility.
| Category | Key Changes |
|---|---|
| Infrastructure | Linux packages now use systemd instead of System V init |
| Library Updates | Guava upgraded from 11.0.1 to 31.0.1, JRuby removed |
| Configuration | JNDI setting for Jenkins home directory removed |
| Script Execution | Stricter encoding handling for Windows batch/PowerShell scripts |
| Logging | Log messages may be discarded under JVM memory pressure |
How does the systemd migration affect existing Linux installations?
Existing Debian/Ubuntu (.deb) and Red Hat/SUSE (.rpm) installations automatically migrate to systemd during upgrade. The process reads settings from traditional System V init configuration files (/etc/default/jenkins or /etc/sysconfig/jenkins) and creates a systemd override file.
After upgrade, you manage Jenkins service configuration using systemctl edit jenkins instead of editing init files. This brings modern service management capabilities but requires familiarity with systemd commands for troubleshooting.
What plugin compatibility issues should I prepare for?
The Guava library upgrade from version 11.0.1 to 31.0.1 represents a decade of API changes. Before upgrading Jenkins, update all plugins through the Plugin Manager to ensure compatibility with the new Guava version.
JRuby support has been completely removed from core. Plugins relying on JRuby will break and require alternative solutions. Additionally, the repackaged ASM 5 library was removed - ensure SCM API and any plugins using ASM are updated to use the upstream ASM version.
How does encoding handling change for Windows scripts?
Previously, Jenkins would silently convert problematic characters in Windows batch and PowerShell scripts to question marks. Now, scripts containing characters incompatible with the JVM's default encoding will fail explicitly.
This matters because it prevents silent data corruption. If you encounter failures, either modify scripts to use compatible characters or set the JVM default encoding to UTF-8 using -Dfile.encoding=UTF-8 on nodes executing these scripts.
What should I know about the logging changes?
Under Java memory pressure, Jenkins may now discard log messages instead of preserving them at all costs. These discarded messages appear as empty entries in the Log Recorder.
In practice, this means you might miss diagnostic information during memory-constrained situations. To prevent this, increase Java heap size with -Xmx or install the Support Core plugin to write logs to disk where they're not subject to eviction.
Are there any deprecated features I should migrate from?
Support for configuring the Jenkins home directory via JNDI has been removed. You must now use either the -DJENKINS_HOME Java system property or the JENKINS_HOME environment variable.
For servlet container deployments like Tomcat, consult your container's documentation for setting Java system properties. Typically, this involves using the CATALINA_OPTS environment variable for Tomcat installations.
FAQ
Will my existing Linux service configuration be preserved during the systemd migration?
Yes, the upgrade process automatically migrates settings from /etc/default/jenkins or /etc/sysconfig/jenkins to a systemd override file at /etc/systemd/system/jenkins.service.d/override.conf.
What should I do if I encounter plugin issues after the Guava upgrade?
First ensure all plugins are updated to their latest versions. If issues persist, check plugin documentation for compatibility notes with Jenkins 2.332.x. Some plugins may require specific updates to work with the newer Guava APIs.
How can I check if my Windows scripts will have encoding problems?
Review scripts for non-ASCII characters and test them in a staging environment. The new behavior will immediately fail scripts with encoding issues, making problems obvious during testing rather than production.
What's the best way to handle the logging changes in memory-constrained environments?
Install the Support Core plugin, which writes logs to disk where they aren't subject to memory pressure eviction. This provides the most reliable logging solution for systems with limited memory.
Can I still use JNDI for other purposes if I can't use it for Jenkins home directory?
Yes, the removal only affects the specific use of JNDI for setting the Jenkins home directory. Other JNDI functionality within Jenkins and plugins remains unaffected.