Vassal installation totally corrupted

Hi,

So a few days ago I tried to open my latest logfile by double-clicking it. Vassal started up as expected but then threw a series of alarming exceptions at me and then shut down. When I tried to open the log again, nothing happened. When I tried to run the exe, nothing happened.

Rebooted and got the same behaviour. Uninstalled Vassal, downloaded it again and re-installed it. This didn’t fix the problem, but I did at least start getting meaningful error messages:

2013-11-05 20:47:11,953 [0-main] INFO VASSAL.launch.StartUp - Starting
2013-11-05 20:47:11,966 [0-main] INFO VASSAL.launch.StartUp - OS Windows 7 6.1
2013-11-05 20:47:11,966 [0-main] INFO VASSAL.launch.StartUp - Java version 1.7.0_17
2013-11-05 20:47:11,967 [0-main] INFO VASSAL.launch.StartUp - VASSAL version 3.2.8
2013-11-05 20:47:12,187 [0-AWT-EventQueue-0] INFO VASSAL.launch.ModuleManager - Manager
2013-11-05 20:47:13,512 [0-AWT-EventQueue-0] ERROR VASSAL.tools.ErrorDialog -
java.lang.UnsatisfiedLinkError: C:\Users\matt\AppData\Local\Temp\jna-matt\jna4873434955210472971.dll: Access is denied
at java.lang.ClassLoader$NativeLibrary.load(Native Method) ~[na:1.7.0_17]
at java.lang.ClassLoader.loadLibrary1(Unknown Source) ~[na:1.7.0_17]
at java.lang.ClassLoader.loadLibrary0(Unknown Source) ~[na:1.7.0_17]
at java.lang.ClassLoader.loadLibrary(Unknown Source) ~[na:1.7.0_17]
at java.lang.Runtime.load0(Unknown Source) ~[na:1.7.0_17]
at java.lang.System.load(Unknown Source) ~[na:1.7.0_17]
at com.sun.jna.Native.loadNativeLibraryFromJar(Native.java:752) ~[jna-3.5.2.jar:3.5.2 (b66)]
at com.sun.jna.Native.loadNativeLibrary(Native.java:737) ~[jna-3.5.2.jar:3.5.2 (b66)]
at com.sun.jna.Native.(Native.java:129) ~[jna-3.5.2.jar:3.5.2 (b66)]
at com.sun.jna.Platform.(Platform.java:102) ~[jna-3.5.2.jar:3.5.2 (b66)]
at com.sun.jna.Structure.(Structure.java:136) ~[jna-3.5.2.jar:3.5.2 (b66)]
at VASSAL.tools.lang.MemoryUtils.getPhysicalMemory(MemoryUtils.java:74) ~[Vengine.jar:na]
at VASSAL.launch.AbstractLaunchAction.(AbstractLaunchAction.java:104) ~[Vengine.jar:na]
at VASSAL.launch.ModuleManagerWindow.(ModuleManagerWindow.java:330) ~[Vengine.jar:na]
at VASSAL.launch.ModuleManagerWindow.(ModuleManagerWindow.java:178) ~[Vengine.jar:na]
at VASSAL.launch.ModuleManager.launch(ModuleManager.java:500) ~[Vengine.jar:na]
at VASSAL.launch.ModuleManager$2.run(ModuleManager.java:347) ~[Vengine.jar:na]
at java.awt.event.InvocationEvent.dispatch(Unknown Source) ~[na:1.7.0_17]
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) ~[na:1.7.0_17]
at java.awt.EventQueue.access$200(Unknown Source) ~[na:1.7.0_17]
at java.awt.EventQueue$3.run(Unknown Source) ~[na:1.7.0_17]
at java.awt.EventQueue$3.run(Unknown Source) ~[na:1.7.0_17]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.7.0_17]
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) ~[na:1.7.0_17]
at java.awt.EventQueue.dispatchEvent(Unknown Source) ~[na:1.7.0_17]
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) [na:1.7.0_17]
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) [na:1.7.0_17]
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) [na:1.7.0_17]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [na:1.7.0_17]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [na:1.7.0_17]
at java.awt.EventDispatchThread.run(Unknown Source) [na:1.7.0_17]

Being a smart alec, I deleted all the files in C:\Users\matt\AppData\Local\Temp\jna-matt\ in case one of them had become locked or corrupted. But that just lead to me getting no error messages again, and still no Vassal.

Anything else I can try to fix this? It’s a pretty major blow having a PC I can’t use for Vassal!

Cheers,
Matt

Thus spake mattdp:

Hi,

So a few days ago I tried to open my latest logfile by double-clicking
it. Vassal started up as expected but then threw a series of alarming
exceptions at me and then shut down. When I tried to open the log again,
nothing happened. When I tried to run the exe, nothing happened.

Rebooted and got the same behaviour. Uninstalled Vassal, downloaded it
again and re-installed it. This didn’t fix the problem, but I did at
least start getting meaningful error messages:

2013-11-05 20:47:11,953 [0-main] INFO VASSAL.launch.StartUp - Starting
2013-11-05 20:47:11,966 [0-main] INFO VASSAL.launch.StartUp - OS
Windows 7 6.1
2013-11-05 20:47:11,966 [0-main] INFO VASSAL.launch.StartUp - Java
version 1.7.0_17
2013-11-05 20:47:11,967 [0-main] INFO VASSAL.launch.StartUp - VASSAL
version 3.2.8
2013-11-05 20:47:12,187 [0-AWT-EventQueue-0] INFO
VASSAL.launch.ModuleManager - Manager
2013-11-05 20:47:13,512 [0-AWT-EventQueue-0] ERROR
VASSAL.tools.ErrorDialog -
java.lang.UnsatisfiedLinkError:
C:\Users\matt\AppData\Local\Temp\jna-matt\jna4873434955210472971.dll:
Access is denied
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
~[na:1.7.0_17]
at java.lang.ClassLoader.loadLibrary1(Unknown Source) ~[na:1.7.0_17]
at java.lang.ClassLoader.loadLibrary0(Unknown Source) ~[na:1.7.0_17]
at java.lang.ClassLoader.loadLibrary(Unknown Source) ~[na:1.7.0_17]
at java.lang.Runtime.load0(Unknown Source) ~[na:1.7.0_17]
at java.lang.System.load(Unknown Source) ~[na:1.7.0_17]
at com.sun.jna.Native.loadNativeLibraryFromJar(Native.java:752)
~[jna-3.5.2.jar:3.5.2 (b66)]
at com.sun.jna.Native.loadNativeLibrary(Native.java:737)
~[jna-3.5.2.jar:3.5.2 (b66)]
at com.sun.jna.Native.(Native.java:129) ~[jna-3.5.2.jar:3.5.2
(b66)]
at com.sun.jna.Platform.(Platform.java:102)
~[jna-3.5.2.jar:3.5.2 (b66)]
at com.sun.jna.Structure.(Structure.java:136)
~[jna-3.5.2.jar:3.5.2 (b66)]
at VASSAL.tools.lang.MemoryUtils.getPhysicalMemory(MemoryUtils.java:74)
~[Vengine.jar:na]
at
VASSAL.launch.AbstractLaunchAction.(AbstractLaunchAction.java:104)
~[Vengine.jar:na]
at
VASSAL.launch.ModuleManagerWindow.(ModuleManagerWindow.java:330)
~[Vengine.jar:na]
at
VASSAL.launch.ModuleManagerWindow.(ModuleManagerWindow.java:178)
~[Vengine.jar:na]
at VASSAL.launch.ModuleManager.launch(ModuleManager.java:500)
~[Vengine.jar:na]
at VASSAL.launch.ModuleManager$2.run(ModuleManager.java:347)
~[Vengine.jar:na]
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
~[na:1.7.0_17]
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) ~[na:1.7.0_17]
at java.awt.EventQueue.access$200(Unknown Source) ~[na:1.7.0_17]
at java.awt.EventQueue$3.run(Unknown Source) ~[na:1.7.0_17]
at java.awt.EventQueue$3.run(Unknown Source) ~[na:1.7.0_17]
at java.security.AccessController.doPrivileged(Native Method)
~[na:1.7.0_17]
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown
Source) ~[na:1.7.0_17]
at java.awt.EventQueue.dispatchEvent(Unknown Source) ~[na:1.7.0_17]
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
[na:1.7.0_17]
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
[na:1.7.0_17]
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
[na:1.7.0_17]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
[na:1.7.0_17]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
[na:1.7.0_17]
at java.awt.EventDispatchThread.run(Unknown Source) [na:1.7.0_17]

Being a smart alec, I deleted all the files in
C:\Users\matt\AppData\Local\Temp\jna-matt\ in case one of them had
become locked or corrupted. But that just lead to me getting no error
messages again, and still no Vassal.

This is a problem we’ve known about for a long time, but we’ve never
been able to determine a cause for it. You can see from the stack trace
what’s happening—Windows is preventing Java from opening a temporary
file—but not why it’s happening. Our Windows installer was doing
something wrong in 3.2.6 and before which caused errors that look like
this, but we fixed that problem in 3.2.7, so whatever you’re seeing has
a different cause.

Did you also delete C:\Users\matt\AppData\Local\Temp\jna-matt, and not
just the files in it?

Have you tried running VASSAL as admin?


J.

Tried deleting the folder and running as admin - nothing doing and no error messages either.

Does Vassal have a, ahem, log file I could go look in as opposed to a .vlog style log?

While I’m horribly familiar with finding software bugs for which no apparent cause can be isolated, I’m kind of surprised that a re-install doesn’t fix the problem. Is there really nothing else I can try?

Thus spake mattdp:

Tried deleting the folder and running as admin - nothing doing and no
error messages either.

Does Vassal have a, ahem, log file I could go look in as opposed to a
.vlog style log?

Yes, see vassalengine.org/wiki/Error_Logs for the location.
Post the errorLog from a failed run here.

While I’m horribly familiar with finding software bugs for which no
apparent cause can be isolated, I’m kind of surprised that a re-install
doesn’t fix the problem. Is there really nothing else I can try?

There are no problems I know of after 3.2.6 for which reinstalling
VASSAL is the solution.


J.

Thus spake mattdp:

Tried deleting the folder and running as admin - nothing doing and no
error messages either.

Does Vassal have a, ahem, log file I could go look in as opposed to a
.vlog style log?

While I’m horribly familiar with finding software bugs for which no
apparent cause can be isolated, I’m kind of surprised that a re-install
doesn’t fix the problem. Is there really nothing else I can try?

Also, try 3.2.9-svn8900 or later:

vassalengine.sourceforge.net/builds/

In svn8900, I removed our dependency on JNA, which is the source of the
DLL with which you’re having permissions problems.


J.

Well I tried both newer builds to no avail. No error messages - nothing.

I located the log and, interestingly, it hasn’t been updated since yesterday so it’s not capturing anything to do with the new installs. The dump in it is the same as I posted in the OP though.

Thus spake mattdp:

Well I tried both newer builds to no avail. No error messages - nothing.

The problem you’re having now cannot be the same as the one in the
original errorLog, because the component causing the problem in your
original errorLog doesn’t exist in these newer builds.

Go through the steps here and let us know what you find:

vassalengine.org/wiki/VASSAL_Does_Not_Start


J.

One way to avoid the permissions errors on the JNA DLL is to install the DLL on PATH (which shouldn’t be hard if you have an installer anyway). JNA will unpack the native library from its own jar file if it fails to load it via normal system paths.

Typically the automatic unpack will fail if you have windows UAC enabled; windows is preventing regular users from loading DLLs that it doesn’t consider to be “properly” installed.

Thus spake twall:

One way to avoid the permissions errors on the JNA DLL is to install the
DLL on PATH (which shouldn’t be hard if you have an installer anyway).
JNA will unpack the native library from its own jar file if it fails to
load it via normal system paths.

Typically the automatic unpack will fail if you have windows UAC
enabled; windows is preventing regular users from loading DLLs that it
doesn’t consider to be “properly” installed.

This is moot, as we’re no longer using JNA as of 3.2.9-svn8900.


J.