Issue
This morning ELS for CentOS 7 updates for tzdata and tzdata-java have been rolled out.
Unfortunately this update breaks tomcat. After restart tomcat or a reboot of the system tomcat will not come up.
On some systems we where able to downgrade tzadata and tzdata-java.
Exception in thread "main" java.lang.Error: java.lang.ArrayIndexOutOfBoundsException: -496 at sun.util.calendar.ZoneInfoFile$1.run(ZoneInfoFile.java:261) at java.security.AccessController.doPrivileged(Native Method) at sun.util.calendar.ZoneInfoFile.<clinit>(ZoneInfoFile.java:251) at sun.util.calendar.ZoneInfo.getTimeZone(ZoneInfo.java:589) at java.util.TimeZone.getTimeZone(TimeZone.java:560) at java.util.TimeZone.setDefaultZone(TimeZone.java:666) at java.util.TimeZone.getDefaultRef(TimeZone.java:636) at java.util.Date.normalize(Date.java:1197) at java.util.Date.getYear(Date.java:651) at java.sql.Timestamp.toString(Timestamp.java:279) at org.apache.juli.FileHandler.configure(FileHandler.java:278) at org.apache.juli.FileHandler.<init>(FileHandler.java:96) at org.apache.juli.FileHandler.<init>(FileHandler.java:88) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at java.lang.Class.newInstance(Class.java:442) at org.apache.juli.ClassLoaderLogManager.readConfiguration(ClassLoaderLogManager.java:560) at org.apache.juli.ClassLoaderLogManager.readConfiguration(ClassLoaderLogManager.java:503) at org.apache.juli.ClassLoaderLogManager.readConfiguration(ClassLoaderLogManager.java:311) at java.util.logging.LogManager$3.run(LogManager.java:399) at java.util.logging.LogManager$3.run(LogManager.java:396) at java.security.AccessController.doPrivileged(Native Method) at java.util.logging.LogManager.readPrimordialConfiguration(LogManager.java:396) at java.util.logging.LogManager.access$800(LogManager.java:145) at java.util.logging.LogManager$2.run(LogManager.java:345) at java.security.AccessController.doPrivileged(Native Method) at java.util.logging.LogManager.ensureLogManagerInitialized(LogManager.java:338) at java.util.logging.LogManager.getLogManager(LogManager.java:378) at java.util.logging.Logger.demandLogger(Logger.java:448) at java.util.logging.Logger.getLogger(Logger.java:502) at org.apache.juli.logging.DirectJDKLog.<init>(DirectJDKLog.java:71) at org.apache.juli.logging.DirectJDKLog.getInstance(DirectJDKLog.java:196) at org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:169) at org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:241) at org.apache.juli.logging.LogFactory.getLog(LogFactory.java:292) at org.apache.catalina.startup.Bootstrap.<clinit>(Bootstrap.java:49) Caused by: java.lang.ArrayIndexOutOfBoundsException: -496 at sun.util.calendar.ZoneInfoFile.load(ZoneInfoFile.java:339) at sun.util.calendar.ZoneInfoFile.access$000(ZoneInfoFile.java:61) at sun.util.calendar.ZoneInfoFile$1.run(ZoneInfoFile.java:258) ... 37 more
Environment
- CentOS 6/7 ELS
- tzdata
Solution
Our development team has informed us that the package containing the fix is currently available in the rollout repository.
To apply the update, please use the following commands according to your operating system version:
- For Centos 6 ELS:
yum update tzdata* --enablerepo=ELS6-rollout-3-bypass
- For Centos 7 ELS:
yum update tzdata* --enablerepo=centos7els-rollout-3-bypass
Cause
This issue is caused by an incorrect timezone database (tzdata) file due to hardlink errors.
Useful links
- https://cve.tuxcare.com/els/releases/CLSA-2025:1752091066 (Centos 6 ELS)
- https://cve.tuxcare.com/els/releases/CLSA-2025:1752091182 (Centos 7 ELS)
Comments
0 comments
Please sign in to leave a comment.