This is a read-only archive of the Mumble forums.

This website archives and makes accessible historical state. It receives no updates or corrections. It is provided only to keep the information accessible as-is, under their old address.

For up-to-date information please refer to the Mumble website and its linked documentation and other resources. For support please refer to one of our other community/support channels.

Jump to content

SOLVED: Mumble server update causes java error SageTV


shatter
 Share

Recommended Posts

Hi,


I have run into a problem that has completely stumped me. Whenever I uninstall or upgrade my Mumble server, it is causing a JVM.DLL not found error in SageTV. I first posted in the SageTV forums and even the founder of the company (since acquired by Google) cannot see a reason why this is happening. So I am coming here to find out what is going on when the server is being uninstalled or upgraded that could be causing the problem.


The detailed thread on the SageTV forums can be found here:

https://forums.sagetv.com/forums/showthread.php?t=64031


I am running Windows 10 64-bit, SageTV v9 (open source) Java 8 (both 64 and 32-bit versions) and Murmur v1.2.8. I have upgraded Murmur in the past without having problems so not sure why it no longer works. I have been unable to resolve the error and have tried to uninstall java and sagetv before uninstalling the mumble server but that doesn't help. Without a solution, I am faced with either a complete OS reinstall or never updating the mumble server again or removing it from the system.


My java registry keys and control panel settings can be found here:

http://imgur.com/a/5faxX


All suggestions are appreciated. Thank you!

Edited by shatter
Link to comment
Share on other sites

  • Administrators

Murmur 1.2.8 is very old.


That installer used to use "merge modules" for the MSVC2010 C Runtime. Basically, that means that every time Mumble is installed (I am not sure how uninstalls are affected), it call out to a bundled C runtime MSI file to ensure the correct C runtime is properly installed.


If the JVM is built against MSVC2010 CRT that, I suppose that could affect it, somehow.


That is pretty much the only thing I can think of that could potentially cause something like this.


Can you try with Murmur 1.2.19 instead, and see if that installer has the same behavior?

Link to comment
Share on other sites

  • Administrators

OK, I just tried something on my local machine.


I used Dependency Walker to see what jvm.dll from C:\Program Files\Java\jre1.8.0_121\bin\server depends on.


And it does indeed depend on msvcr100.dll -- a MS VC 2010 CRT DLL.


Since there is no msvcr100.dll next to JVM.dll, it loads the copy from c:\Windows\system32.


Now... What happens on your system might be that on Murmur uninstall, the MSVC2010 CRT is uninstalled, and thus no longer available in c:\Windows\system32.


That means jvm.dll is no longer loadable.


The easy fix would probably be to copy msvcr100.dll from C:\Program Files\Java\jre1.8.0_121\bin into C:\Program Files\Java\jre1.8.0_121\bin\server so JVM.dll has a local copy.


You can even do the above trick without uninstalling Murmur first.

Just do it, and reboot, to ensure SageTV's JVM uses its own local copy of msvcr100.dll.


I suppose SageTV is using jvm.dll directly, instead of using java.exe/javaw.exe? If it used those, I imagine the jvm.dll would in fact load the msvcr100.dll from C:\Program Files\Java\jre1.8.0_121\bin. (It would be required to, since java.exe/javaw.exe use that DLL.)


Finally, to ensure that that is actually the case, I'd recommend finding the SaveTV process via Process Explorer (https://technet.microsoft.com/en-us/sysinternals/processexplorer.aspx) to check whether the correct msvcr100.dll is loaded into the proces. Try to find the process in Process Explorer, and use the module view at the bottom of the screen to see the loaded DLLs.


You should expect SageTV to be using the msvcr100.dll not from C:\Windows\system32, but instead from the JRE diretory, probably C:\Program Files\Java\jre1.8.0_121\bin\server\msvcr100.dll.


Once you have confirmed that SageTV is not using msvcr100.dll from c:\Windows\system32, you should be able to safely uninstall Murmur.


Hope it helps,

Mikkel

Link to comment
Share on other sites

Thank you, thank you, thank you!! I can't say thanks enough.


msvcr100.dll was being deleted from the C:\windows\SysWOW64 directory when Mumble was uninstalled and then SageTV would fail to find JVM.DLL. I copied msvcr100.dll from the Java directory over to SysWOW64 and SageTV fired right up.


Can I buy you a beer or a coffee?


:D

Link to comment
Share on other sites

 Share

×
×
  • Create New...