.NET Application is abnormal end

We are seeking help for applications operating with “Apalis T30 1GB” in serious circumstances.

We are developing an application that runs on .NET CF 3.5 (VB.NET) to WEC 7.
An error occurs at an undefined timing, such as when an application is left in the standby state, when something is being operated, and the application stops its operation.

181203195950.47	E	[UnhandledException]
System.ObjectDisposedException: ObjectDisposedException
場所 System.Threading.WaitHandle.CheckResultInternal(Boolean r)
場所 System.Threading.EventWaitHandle.Set()
場所 System.Windows.Forms.Control.TASK.MarkDone()
場所 System.Windows.Forms.Control.TASK.Invoke()
場所 System.Windows.Forms.Control._InvokeAll()
場所 System.Windows.Forms.Control.WnProc(WM wm, Int32 wParam, Int32 lParam)
場所 System.Windows.Forms.Control._InternalWnProc(WM wm, Int32 wParam, Int32 lParam)
場所 Microsoft.AGL.Forms.EVL.EnterMainLoop(IntPtr hwnMain)
場所 System.Windows.Forms.Application.Run(Form fm)
場所 AC5Main.ModuleMain.Main()

This application is running under various control as follows.

  • Update of text objects etc. on Form
  • Play mp4 movies on Form (using DirectShowLib-2005.dll)
  • Shooting of the camera in the background (using “usbwebcam_ce6_ce7_01_04.zip” at USB Webcam for Windows CE | Toradex Developer Center)
  • UART communication with control microcomputer

Although we have taken various countermeasures, we can not solve the phenomenon that the application abnormal end.
Even if you attempt to debug using Visual Studio 2008, the connection will be disconnected.
If you have any hints on how to solve something, please let me know.

Additional inquiries

Recently, I suspect a memory shortage.
In WEC 7, is there a possibility that a phenomenon in which the application drops when the memory becomes insufficient?
Is there a possibility to solve if I change to Apalis T30 2 GB?

I am sorry for inquiries that are not inquiries of computer modules, but many programmatic elements, but thank you.

Dear @kyas, thank you for your message. As discussed through email, please try again in release 2.2b4. There is a chance that the issue got solved in newer versions.

Dear @kyas

It is hard enough to debug such complex problems with the actual system on the desk. I’m afraid, giving an analysis from a description is not possible.
However, I will try to help you with some generic information that might support you to track down the problem.

Checking for a memory leak is quite hard in a .NET environment, because memory is basically freed only by the garbage collector, which you don’t know when it kicks in.
Switching to a 2GB module would be nice for Toradex (as it would increase our revenue), but if it is a real memory leak, more memory would only delay the failure, and not fix it.
You could try the opposite: Start a parallel application which does nothing but allocating and using a significant amount of memory. If this makes your system to show the same error sooner, a memory leak might well be the problem.

Beside that, I can only recommend to simplify the system to exclude certain possible error reasons - for example remove the UART communication and/or video playback - does the error still happen…?

I hope this helps

Regards, Andy

Thank you for always helping.
We are currently building a custom image of OS 2.2b4.
I would like to try it once it is completed.

Dear andy.tx

Thank you for your quick reply. And thank you for your valuable suggestions.

I will prepare from now on and carry out a test that you will propose a large amount of memory consumption.

I have something I want to confirm.

As I investigated further, when I unset the wallpaper on the desktop, I noticed that the behavior of the application was lightened.
However, as the application is running, it displays on the full screen so you can not see the wallpaper.
I do not know why invisible wallpaper will affect the behavior of the application, but this is a fact.
Since the application draws with its own double buffering processing, there is a possibility that it is related.

And I have an additional question.

As Mr. Alvaro said in the comment, is there a prospect of solving it by changing the OS version to 2.2b4?
Among the release notes, I am interested in the following items, so please give details.

  • 34995: Enable RAM DFS on T30 by default
  • 34993: Enable dynamically CPUs disabling by default
  • 34698: Colibri and Apalis T30 Freezes UI
  • 30237: USB Device: Losing data if multiple low speed devices are connected on the same hub

Finally, when will the 2.2 release appear?

Dear @kyas

I don’t have an explanation how the wallpaper could affect your application.

About your additional questions:

  • 34995: Enable RAM DFS on T30 by default
    34993: Enable dynamically CPUs disabling by default

    These changes help massively to keep the CPU cool at low CPU load.

  • 34698: Colibri and Apalis T30 Freezes UI
    As stated in the release history it needs a number of combined conditions in order to show the prolbem. On the T20 we observed this problem longer ago, so the fix for the T20 is already successfully in place for a while. Now we found that it also affects the T30, so we added the fix for this CPU, too.

  • 30237: USB Device: Losing data if multiple low speed devices are connected on the same hub
    This affected only low-speed USB devices, such as older mice/keyboards,and only if more than one of this kind was connected to the same hub. All other USB devices (full-speed, high-speed devices) were not affected

We are just about to finsh the release documentation for the V2.2. You should see the imaga available for download by today or tomorrow.

Regards, Andy

We are experiencing a very similar error.
In our case the Stacktrace look absolutely identical but the environment is a little bit different.
We use Colibri VF61 with WEC2013 (BSP V1.5 Binary) and .NET CF 3.9 (C#).

The Application that is affected has been ported from a Colibri PXA270 (CE6) and was running stable on that older System for many years now.

We don’t think a memory leak is the root cause for the Problem, as we think that it should have shown on the old System as well. Also we don’t see any growing memory usage keeping the Application running for Weeks.

Currently we are investigating in the directions given by this thread on the MSDN Forums: ObjectDisposedException from Control.TASK.MarkDone()
We are checking our invokes and Timers but without any Solution so far.
Maybe this gives you also new Ideas on what to look at @kyas.

Also the Problem seems to be related to some external Factor we can’t see right now. The very same Software is running on hundreds of devices without Problems. Only a few crash.

Please let us know if you find anything that we could try too.

I do not intend to kidnap this thread. I just want to make very clear that there are more people with this Problem and hope we can use this thread to work together on a Solution.