Silverlight Client Sockets Memory issue

Bug #1332001 reported by Chris Golden
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Pipelight
New
Undecided
Unassigned

Bug Description

Hi There,

We're trying to create a Linux version of an existing piece of Software that was created in Silverlight. The Software consists of two parts, a service (Console App) which runs all the calculations and a client (Silverlight) which communicates with the service via a socket. We've managed to build and run the service in mono and that seems to work fine. We've also managed to run the Client using Pipelight and the two applications communicate with each other as expected in Firefox.

However, we've been monitoring the CPU and Memory usage of all the processes running on the machine and have noticed that the memory usage of both the pluginloader and the wineserver is steadily increasing. After a couple weeks of investigating we have narrowed the problem down to the use of Client Sockets. (We've created a simple server/client application in which the server sends the current time to the client every second and we still see the problem).

We don't see any memory increase when we just run the service. And we don't see a memory increase in the client when we run it on a windows machine, even when we are connected into the Linux service. We've also tried running it in chromium, and we see the same memory increase in the WineServer.

We also notice that the client regularly loses communication with the service. Although I suspect this is caused by the amount of data we send as we don't see it with the simple application.

We are using the LXDE version of Linux.

I'm pretty new to Linux (The last few week have been my first introduction to this world). So please forgive me if I'm missing something obvious. I can supply the source code of our simple application if necessary.

Chris.

Revision history for this message
Michael Müller (mqchael) wrote :

Hi,

this sounds like you found a memory leak in one of the dlls provided by Wine. The easiest way to narrow this down would be to analyze Wine when running your test application. I would therefore suggest that you either attach the source code + precompiled version (i.e. the xap file) at this bug report or send the files via email to <email address hidden>.

How big is the increase and do you see any relation to the amount of data send or how often you send data?

Michael

Revision history for this message
Chris Golden (chrgol) wrote :

Hi Michael,

Revision history for this message
Chris Golden (chrgol) wrote :

Thanks for the response.

I've just sent the source code to <email address hidden> as requested.

Chris

Revision history for this message
Chris Golden (chrgol) wrote :

Hi There,

Just wondering if there's been any news regarding this issue.

Thanks.

Chris.

Revision history for this message
Sebastian Lackner (slackner) wrote :

Hi Chris,

I've been at a conference during the last week, and tried to reproduce this at the weekend, but was unable to do so (no significant amount of memory leaked). I would really like to know some more details: How fast / how much is the amount of memory increasing over time?

You have to take into account that Wine and Windows works a bit different with respect to some things: whereas Windows kernel objects for example don't consume any memory at all (or only a very small amount), such objects are in userspace in Wine and thus consume memory in both wineserver and pluginloader. Moreover Wine tries to cache some memory to speed up things a bit. This memory is not really "leaked", because the cached information is reused later when possible.

It might be possible that the leak you experience is just caused by the differences between Wine and running on Windows - but difficult to say without some more more details.

Regards,
Sebastian

Revision history for this message
Chris Golden (chrgol) wrote :

Hi Sebastian,

I've just had a quick look to see what the increase is. I've looked at a couple of results, and it always seems to increase in jumps. The value changes by exactly 264KB, although the time increase seems to be different on different test. On the version I sent to you, it looks like the jumps take place every 140s or so.

If you think it would be useful, I can run some tests to see if the amount of data being sent changes the frequency of the jump.

Chris.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.