Modify

Opened 5 years ago

Closed 5 years ago

#11724 closed defect (irreproducible)

InvalidClassException in IndexedDiskCache

Reported by: naoliv Owned by: naoliv
Priority: normal Milestone:
Component: Core imagery Version:
Keywords: Cc: wiktorn

Description

Clicked to load one IBGE layer and saw this:

[ERROR] IndexedDiskCache - Region [TMS] Problem loading keys for file TMS <java.io.InvalidClassException: org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskElementDescriptor; local class incompatible: stream classdesc serialVersionUID = 7685317388573182052, local class serialVersionUID = -3029163572847659450>java.io.InvalidClassException: org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskElementDescriptor; local class incompatible: stream classdesc serialVersionUID = 7685317388573182052, local class serialVersionUID = -3029163572847659450
	at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:617)
	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1622)
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
	at java.util.HashMap.readObject(HashMap.java:1180)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1893)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
	at org.apache.commons.jcs.utils.serialization.StandardSerializer.deSerialize(StandardSerializer.java:83)
	at org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDisk.readObject(IndexedDisk.java:118)
	at org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskCache.loadKeys(IndexedDiskCache.java:332)
	at org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskCache.initializeStoreFromPersistedData(IndexedDiskCache.java:285)
	at org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskCache.initializeKeysAndData(IndexedDiskCache.java:249)
	at org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskCache.<init>(IndexedDiskCache.java:182)
	at org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskCache.<init>(IndexedDiskCache.java:154)
	at org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory.createCache(IndexedDiskCacheFactory.java:60)
	at org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory.createCache(IndexedDiskCacheFactory.java:33)
	at org.openstreetmap.josm.data.cache.JCSCacheManager.getCacheInner(JCSCacheManager.java:162)
	at org.openstreetmap.josm.data.cache.JCSCacheManager.getCache(JCSCacheManager.java:149)
	at org.openstreetmap.josm.gui.layer.AbstractCachedTileSourceLayer.getCache(AbstractCachedTileSourceLayer.java:90)
	at org.openstreetmap.josm.gui.layer.AbstractCachedTileSourceLayer.<init>(AbstractCachedTileSourceLayer.java:66)
	at org.openstreetmap.josm.gui.layer.TMSLayer.<init>(TMSLayer.java:50)
	at org.openstreetmap.josm.gui.layer.ImageryLayer.create(ImageryLayer.java:163)
	at org.openstreetmap.josm.actions.AddImageryLayerAction.actionPerformed(AddImageryLayerAction.java:84)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
	at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
	at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
	at java.awt.Component.processMouseEvent(Component.java:6516)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3312)
	at java.awt.Component.processEvent(Component.java:6281)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4872)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4698)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2719)
	at java.awt.Component.dispatchEvent(Component.java:4698)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:747)
	at java.awt.EventQueue.access$300(EventQueue.java:103)
	at java.awt.EventQueue$3.run(EventQueue.java:706)
	at java.awt.EventQueue$3.run(EventQueue.java:704)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:720)
	at java.awt.EventQueue$4.run(EventQueue.java:718)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:717)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

JOSM

Repository Root: http://josm.openstreetmap.de/svn
Build-Date: 2015-07-27 01:32:05
Last Changed Author: wiktorn
Revision: 8621
Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Relative URL: ^/trunk
URL: http://josm.openstreetmap.de/svn/trunk
Last Changed Date: 2015-07-27 00:01:30 +0200 (Mon, 27 Jul 2015)
Last Changed Rev: 8621

Identification: JOSM/1.5 (8621 pt_BR) Linux Debian GNU/Linux unstable (sid)
Memory Usage: 247 MB / 4029 MB (149 MB allocated, but free)
Java version: 1.7.0_79, Oracle Corporation, OpenJDK 64-Bit Server VM
Java package: openjdk-7-jre:amd64-7u79-2.5.5-1
VM arguments: [-Dawt.useSystemAAFontSettings=on]

Plugins:
- AddrInterpolation (31241)
- Create_grid_of_ways (31241)
- FastDraw (31265)
- FixAddresses (31241)
- OpeningHoursEditor (31241)
- PicLayer (31241)
- SimplifyArea (31241)
- buildings_tools (31361)
- download_along (31241)
- editgpx (31241)
- geotools (31126)
- graphview (31241)
- jts (31126)
- measurement (31289)
- merge-overlap (31241)
- opendata (31241)
- pdfimport (31241)
- poly (31241)
- reverter (31241)
- tagging-preset-tester (31241)
- todo (29154)
- turnrestrictions (31241)
- undelete (31241)
- utilsplugin2 (31241)

Attachments (0)

Change History (5)

comment:1 Changed 5 years ago by wiktorn

Owner: changed from team to naoliv
Status: newneedinfo

Do you have any way to reproduce this error? There was no changes to IndexElementDescriptor class, so you couldn't have older version of the class. So I suspected disk or RAM corruption.

When I tried converting both values in Windows Calculator to binary form, I've got the same value. When I used Java Long.toBinaryString(), I got a bit different values. I do not know how longs are stored in memory in Java, nor how they are serialized, but disk or RAM corruption might be the case.

It might be rowhammer:
https://github.com/google/rowhammer-test

Or silent disk corruption.

comment:2 Changed 5 years ago by naoliv

Doesn't seem to be rowhammer nor a disk/filesystem issue.
Could it be caused by JOSM getting closed unproperly or some kind of issue when upgrading from an older version?

comment:3 Changed 5 years ago by wiktorn

Upgrading from an older version should not result in such error.

Closing forcibly could result in such error, but if this was a bit-flip, that changed the value from positive to negative, then it is of low probability, that this error was due to forcibly closing. If this was random junk, then yes - closing forcibly could result in such error.

comment:4 Changed 5 years ago by naoliv

Maybe some kind of overflow making the value negative?
But anyway, since it's not a reproducible problem I guess we can close it.

comment:5 Changed 5 years ago by wiktorn

Resolution: irreproducible
Status: needinfoclosed

Then this would be then some Java bug. I'm closing this then.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain naoliv.
as The resolution will be set.
The resolution will be deleted.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.