Offline file - Database image is malformed

Offline file - Database image is malformed

avatar

Hello!

Sometimes it can happen that a user only sees some entries. In this case the offline cache is defective. After deleting and recreating it all entries are visible again.

In the application log of this user I can find these two lines a bunch of times a day:

Offline file - file has been deleted, will now recreate the file from scratch

Offline file - Database disk image is malformed, trying to delete the file: Path\to\offline.db

We are using RDM 10.1.9.0 with RDMS 2.2.21.0.

Best regards,

Andy

All Comments (40)

avatar

Hi,

Where the database cache is stored exactly? Do you know if it's a network drive or a shared folder?

David Hervieux

avatar

It is stored in the default path in LOCALAPPDATA

avatar

Hi,

again a user complained about this issue. Find the application log attached.

Best regards,

Andy

avatar

Hi Andy

When this occurs, can you check if a process from another RDM is running? I suspect that this sometimes occurs and there is contention when accessing the cache.

Maurice

avatar

Hi Maurice,

yes, I can check that if it happens again. But how can there be another RDM process? I tried to manually start it twice, then there is a second process for about a second but then it ends. RDM works normal after I did that.

Best regards,

Andy

avatar

The issue appeared again for a user. There was only one process for RDM running. After clearing up the cache I could find this new messages in the log, never saw them before:

24.03.2015 13:59:53, 10.1.9.0 - 32-bit, 1, System.ArgumentOutOfRangeException: Der Index lag außerhalb des Bereichs. Er muss nicht negativ und kleiner als die Auflistung sein.

Parametername: index

bei System.ThrowHelper.ThrowArgumentOutOfRangeException()

bei System.Collections.Generic.List`1.RemoveAt(Int32 index)

bei System.Collections.Generic.List`1.Remove(T item)

bei Devolutions.RemoteDesktopManager.Business.DebugStopwatchManager.cb0aac59af60c51d7161165a47a2ad3ae(DebugStopwatch c84e8087bca95a5c8360dbc140f64f30d)

bei Devolutions.RemoteDesktopManager.Business.DebugStopwatch.Dispose()

bei Devolutions.RemoteDesktopManager.Managers.OfflineManager.c2003f33b05659ffe7ea3546ebd6ce300(BaseConnectionDataSource c7f28727fc7a5daa94ba08f688b2a5781, Boolean c0f381ad765fb6350e74d3bf32b4f4713)

bei Devolutions.RemoteDesktopManager.Managers.OfflineManager.Save(BaseConnectionDataSource dataSource)

bei Devolutions.RemoteDesktopManager.Managers.ConnectionManager.c17700cd39476a35b5d68da1c4cb61a28(BaseConnectionDataSource c01af917dca3518ff73ed69848f95f91a, Connection[] c50b46350a70ce17c145f8c929ee5883e)

bei Devolutions.RemoteDesktopManager.Managers.ConnectionManager.ca4799bebd8b706f34eea94a778843b55(BaseConnectionDataSource c01af917dca3518ff73ed69848f95f91a)

bei Devolutions.RemoteDesktopManager.Managers.ConnectionManager.LoadConnections(BaseConnectionDataSource connectionDataSource)

bei Devolutions.RemoteDesktopManager.Managers.ConnectionManager.RefreshConnections()

bei Devolutions.RemoteDesktopManager.Forms.FrmMainRibbonBase.RefreshAllConnectionView(Boolean saveState, Boolean checkOnline)

bei Devolutions.RemoteDesktopManager.Managers.MainFormManager.DoFirstLoad(IMainForm mainform)

bei Devolutions.RemoteDesktopManager.Forms.FrmMainRibbon.cae3b4c7c167cf0d9747ac4fee11ac00a(Object c19f185fd70cefc696ba148af1c4faf54, EventArgs cf1018bb83ec7debd818319fd3cb4844e)

bei System.Windows.Forms.Timer.OnTick(EventArgs e)

bei System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)

bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

24.03.2015 13:59:53, 10.1.9.0 - 32-bit, 2, System.ArgumentOutOfRangeException: Der Index lag außerhalb des Bereichs. Er muss nicht negativ und kleiner als die Auflistung sein.

Parametername: index

bei System.ThrowHelper.ThrowArgumentOutOfRangeException()

bei System.Collections.Generic.List`1.RemoveAt(Int32 index)

bei System.Collections.Generic.List`1.Remove(T item)

bei Devolutions.RemoteDesktopManager.Business.DebugStopwatchManager.cb0aac59af60c51d7161165a47a2ad3ae(DebugStopwatch c84e8087bca95a5c8360dbc140f64f30d)

bei Devolutions.RemoteDesktopManager.Business.DebugStopwatch.Dispose()

bei Devolutions.RemoteDesktopManager.Managers.OfflineManager.c2003f33b05659ffe7ea3546ebd6ce300(BaseConnectionDataSource c7f28727fc7a5daa94ba08f688b2a5781, Boolean c0f381ad765fb6350e74d3bf32b4f4713)

bei Devolutions.RemoteDesktopManager.Managers.OfflineManager.Save(BaseConnectionDataSource dataSource)

bei Devolutions.RemoteDesktopManager.Managers.ConnectionManager.c17700cd39476a35b5d68da1c4cb61a28(BaseConnectionDataSource c01af917dca3518ff73ed69848f95f91a, Connection[] c50b46350a70ce17c145f8c929ee5883e)

bei Devolutions.RemoteDesktopManager.Managers.ConnectionManager.ca4799bebd8b706f34eea94a778843b55(BaseConnectionDataSource c01af917dca3518ff73ed69848f95f91a)

bei Devolutions.RemoteDesktopManager.Managers.ConnectionManager.LoadConnections(BaseConnectionDataSource connectionDataSource)

bei Devolutions.RemoteDesktopManager.Managers.ConnectionManager.RefreshConnections()

bei Devolutions.RemoteDesktopManager.Forms.FrmMainRibbonBase.RefreshAllConnectionView(Boolean saveState, Boolean checkOnline)

bei Devolutions.RemoteDesktopManager.Managers.MainFormManager.DoFirstLoad(IMainForm mainform)

bei Devolutions.RemoteDesktopManager.Forms.FrmMainRibbon.cae3b4c7c167cf0d9747ac4fee11ac00a(Object c19f185fd70cefc696ba148af1c4faf54, EventArgs cf1018bb83ec7debd818319fd3cb4844e)

bei System.Windows.Forms.Timer.OnTick(EventArgs e)

bei System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)

bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Another point is that this issue mostly happens for the same users.

avatar

Thank you for the logs they have been proven very helpful. I will resolve the issue. Should be in the next beta release.

Best regards,

Stéfane Lavergne

avatar

I've made a fix that should resolve the issue. It will be in the next beta build.

Best regards,

Stéfane Lavergne

avatar

Should it be in V 10.4.1.0 ?

avatar

Yes that's correct.

http://remotedesktopmanager.com/Home/Download#beta

Stéfane Lavergne

avatar

Thank you! We will test it immediately.

avatar

Hello Stefane,

unfortunately the same issue appears again with V 10.4.1.0 and 10.5.0.0.

Can I somehow offer you more information to eliminate it?

Best regards,

Andy

edited by andybandy on 4/1/2015

avatar

Could you please double check the file version of the following files: (it should be v1.0.84.0)

System.Data.SQLite.dll

x86\SQLite.Interop.dll

x64\SQLite.Interop.dll

Back in v9.? we had issues with a version of SQLite (causing malformed file errors), could it be that for some reason that machine still has the other version of SQLite.

Best regards,

Stéfane Lavergne

avatar

This 3 files have version 1.0.84.0

avatar

That would have been too easy :-(

Ok so I re-read the entire thread and nothing else has jumped out that could help me. So let's try this, please:

- on the affected machine

- close RDM

- find and delete the offline.db file

- start RDM

- open Profiler (Help -> Profiler)

- CTRL + refresh (F5)

- the trace information should be normal, no crash or anything

- keep the profiler running

- provoke, if possible, the malformed issue

- CTRL + refresh

- send me the trace information via "Send Trace to Support" with "Attn: Stefane"

I hoping there is something in the trace to can pint point the issue. In the mean time I will add an option in the next build to force the offline cache on the main thread (not background). It will slow down the load but should stop this issue from happening in this particular case.

Best regards,

Stéfane Lavergne