SOLVED: Mumble server update causes java error SageTV

It crashed, it is bugged, ...

SOLVED: Mumble server update causes java error SageTV

Postby shatter » Wed Feb 08, 2017 3:14 am

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!
Last edited by shatter on Sat Feb 11, 2017 5:54 pm, edited 1 time in total.
shatter
 
Posts: 2
Joined: Wed Feb 08, 2017 3:04 am

Re: Mumble server uninstall or update causes java error Sage

Postby mkrautz » Thu Feb 09, 2017 11:31 pm

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?
mkrautz
Team member
Team member
 
Posts: 186
Joined: Wed Sep 23, 2009 4:57 pm

Re: Mumble server uninstall or update causes java error Sage

Postby mkrautz » Thu Feb 09, 2017 11:35 pm

OK, I realize "trying" a newer version might be hard if it trashes your machine... Let me think of a better solution... :-)
mkrautz
Team member
Team member
 
Posts: 186
Joined: Wed Sep 23, 2009 4:57 pm

Re: Mumble server uninstall or update causes java error Sage

Postby mkrautz » Thu Feb 09, 2017 11:49 pm

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/sys ... lorer.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
mkrautz
Team member
Team member
 
Posts: 186
Joined: Wed Sep 23, 2009 4:57 pm

Re: Mumble server uninstall or update causes java error Sage

Postby shatter » Fri Feb 10, 2017 2:50 am

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
shatter
 
Posts: 2
Joined: Wed Feb 08, 2017 3:04 am


Return to Technical

Who is online

Users browsing this forum: No registered users and 3 guests

cron