Roon completely broken after update

Sent now. :slight_smile:

1 Like

Yes. completely fresh. No attempt at all to restore a backup.
I think I found a copy of 831 RoonServer installer in my backups. Soon I’ll try a restore, and disable the auto-update (if I can, I don’t remember being asked during install if I want auto-updates or not).

Install without internet. After installing you can change and put auto update off in setting/about/…
Then turn internet on again.

Another possibility is code itself maybe tested on environment running newer .NET Framework and older hardware environment may run on older .NET Framework. For example, Windows 7 and early Windows 10 builds have like .NET Framework version 4.5-4.7. Newer version of Windows 10 will update to .NET Framework version 4.8.

Code itself maybe fine on .NET Framework version 4.8 but the way it was handled on older .NET Framework may not work as intended. I suggest Roon to test their update on older .NET Framework version like 4.6 and they maybe able to reproduce the issue to fix themselves.

By the way, this is my assumption based on Windows release. For Mac and Linux using Mono framework, Roon may need to be tested on older Mono platform version too.

Regards,
Keetakawee

Does your local database engine have a repair utility?

Well, crap. I did have an older copy of RoonServer installer… but build 814. The RoonServer installer doesn’t ask about enabling/disablling updates. I’d blocked Internet access, but the setup blocked me proceeding until an update check was done. I had to re-enable - at which point it refused to proceed until the Core updated to 880.

After that, not restoring a backup, I’m back to empty library and no audio devices. There’s only so much abuse I’m willing to take as a customer…

PS: If I close the Roon client and reopen, I get the “Issue loading database” error.

Anyone else does the Windows RoonServer installer (I can’t install the whole thing due to some graphics dependency) and knows how to avoid the update check, let us know.

I think this maybe the reason why some systems keep encountering database error. It seems new update uses function that doesn’t exist in older .NET Framework/Mono version.

12/16 14:17:06 Critical: Library.Init: System.TypeInitializationException: The type initializer for ‘PetitSearch.Analysis.CommonWordsCollection’ threw an exception. —> System.MissingMethodException: Method not found: ‘System.Collections.Generic.HashSet1<!!0> System.Linq.Enumerable.ToHashSet(System.Collections.Generic.IEnumerable1<!!0>)’.
at PetitSearch.Analysis.CommonWordsCollection…cctor()
— End of inner exception stack trace —
at PetitSearch.SearchIndex1..ctor(DocumentPropertyContainer1 propertyContainer, Boolean storeDocuments)
at Sooloos.Broker.Music.LibrarySearchIndex…ctor()
at Sooloos.Broker.Music.LibraryIndex…ctor(Library library)
at Sooloos.Broker.Music.Library.Init(Database db)

7 Likes

Yup, you nailed it. I’ve already escalated with the R&D team and will see what we can do.

I’m glad to hear that I can help. I still couldn’t figure out why no audio device is detected in build 880 but it’s probably from the similar reason. Please forward to R&D team to test on older .NET Framework and Mono version that is based on older version of Windows/Mac to resolve inconsistencies with new changes in build 880.

Hmm so …YOUR gonna Frekin fix it Right … cause losing Data Bass …is NOT an option … and saying just start over is NOT going to be accepted by RooN community

3 Likes

Did you remove all old Roonfolders/registry entries? I use ccleaner (registry) for that.
After install I restore backup. Then I changed in settings auto update off. Then turned internet on.

There’s another critical error I found from log. I’m not sure how it’s related since it’s null but it seems to be related to library and broker stuff.

12/16 00:19:16 Critical: scx: System.NullReferenceException: Object reference not set to an instance of an object.
at Sooloos.Broker.Music.LibraryApi.get_IsGenreMappingSupported()
at Sooloos_Broker_Api_Library_Adapter.Serialize(Object obj, Stream stream)
at Sooloos.Broker.Remoting.RemotingServer._PutObject(Object o, Stream stream, Boolean inline)
at Sooloos_Broker_Api_Broker_Adapter.Serialize(Object obj, Stream stream)
at Sooloos.Broker.Remoting.RemotingServer._PutObject(Object o, Stream stream, Boolean inline)
at Sooloos.Broker.Remoting.RemotingServer.<>c__DisplayClass28_0.b__0(Result`1 result)
at Sooloos.Broker.Remoting.RemotingServer.OnGetService(Int32 rid, Byte[] body)
at Sooloos.SynchronizationContextThread._Dispatch(SendOrPostWrapper& ret)

1 Like

No, we won’t be able to fix your database if it’s corrupt and you don’t have an uncorrupted backup.

What we suspect we might be able to fix is if you’re starting with a new database and see no audio devices – it’s a different issue.

1 Like

I didn’t try to clear the registry, but executed an uninstall and a removal of all leftover folders. Selected the ‘remove database and settings’ option on the uninstaller.

May give up anyway since I can’t find a backup here for 831 installer.
-Alan

IF it’s corrupt - how do we really know if it is? And if all of my backups are corrupt, that points to a really unfortunate bug in your previous versions.

2 Likes

There are people here with corrupted databases who have only been using Roon a few weeks. How did their databases get corrupted if not by Roon itself? How did so many users experience corrupted databases who did not have them corrupted before after earlier updates?

2 Likes

I found another critical error. This time it’s ArgumentOutOfRangeException. Still can’t find anything unusual with missing audio device. RAATServer looks fine so maybe it’s Roon core talk to RAATServer to get audio devices but got empty result instead.

12/16 09:46:18 Critical: scx: System.ArgumentOutOfRangeException: Number must be either non-negative and less than or equal to Int32.MaxValue or -1.
Parameter name: dueTime
at System.Threading.Timer…ctor(TimerCallback callback, Object state, Int64 dueTime, Int64 period)
at Sooloos.CallingThread.AddOneShotTimer(Int64 ms, Action callback, String name)
at Sooloos.CallingThread.AddOneShotTimer(TimeSpan ts, Action callback, String name)
at Sooloos.Broker.Music.LibraryApi.StartBackgroundGetMixes(Sooid profileid, DateTime localtime)
at Sooloos.Broker.Music.LibraryApi.<>c__DisplayClass541_0.<b__0>d.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.b__6_0(Object state)
at Sooloos.SynchronizationContextThread._Dispatch(SendOrPostWrapper& ret)

1 Like

Who? I’d like to talk with them and take a deeper look because that doesn’t sound right. It’s still possible of course, but we see it less often.

We always get reports of corruption after updates. This community is rapidly growing so it feels louder every time. Thankfully this will be far less common now that we’ve released improved db integrity monitoring, so it will be less likely for folks to experience latent corruption.

1 Like

Ben Goldberg in this thread mentioned that his oldest backup was only a few weeks old.

Oldest backup age is not the same as total Roon usage. Maybe Ben only keeps a few backups.

Edit: for example I’ve been using Roon for more than 6 months now and my oldest backup is just 2 months old.

1 Like