Memory leak SF BO with DevExpress ASPxDataGridView


Author
Message
ChanKK
ChanKK
StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)
Group: Forum Members
Posts: 190, Visits: 1.3K
Ivan George Borges (10/29/2010)
Hi Chan.


Well, are you getting a SystemOutOfMemory exception?

Good to know you are checking with the DevEx guys. Let us know of the outcome.

Cheers.

Yes, I hit systemOutOfMemory exception.

Below is the reply from DevExpress team

It's a well known problem, which is not caused by our components. Please refer to the following issue to find more information about it:Memory leak in Server mode.

Ivan George Borges
Ivan George Borges
Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)
Group: StrataFrame MVPs
Posts: 1.9K, Visits: 21K
Thanks for posting, Chan.

I will reproduce here just in case we loose that link in the future.

From the DevEx team:

"Processed (Won't fix) by DevExpress Team at 8/16/2006 6:42:49 PM

Sorry for the delay in responding. It has taken us some time to perform additional tests. As we can see, the problem is caused by the ASP.NET itself ... it does work in such a manner. To understand this, we have created a similar sample with the standard DataGrid and we do see the same results - the memory usage increases on every postback. Though it is lower in comparison to the ASPxGrid, it is well explained by the fact that our Grid has a more complex server-side structure and creates more objects on the server."
ChanKK
ChanKK
StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)
Group: Forum Members
Posts: 190, Visits: 1.3K
SF team will still investigate on how to avoid this .. right?
Ivan George Borges
Ivan George Borges
Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)
Group: StrataFrame MVPs
Posts: 1.9K, Visits: 21K
Yeah, although DevEx clearly states it is an ASP.NET characteristic and that they won't fix it, I know for a fact that this is on the SF developer's team table to study and see if it is possible to find a workaround.
ChanKK
ChanKK
StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)
Group: Forum Members
Posts: 190, Visits: 1.3K
any news?

Thank you
Ivan George Borges
Ivan George Borges
Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)
Group: StrataFrame MVPs
Posts: 1.9K, Visits: 21K
Not yet, Chan.
ChanKK
ChanKK
StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)
Group: Forum Members
Posts: 190, Visits: 1.3K
Hi
still no luck?
I would like to know if SF team able to reproduce it or not ?

Anyway, I have escalate this issue to Microsoft, by utilize my company MS Incident support token.

Thank you
ChanKK
ChanKK
StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)
Group: Forum Members
Posts: 190, Visits: 1.3K
Hi,
Here is the reply from Microsoft. Hope it give some clue to SF team

I tried to reproduce the problemlocally and did some debugging. I am updating you with the current findings:

 

The problem should be related tohow EmployeesBO object is used.

 

1st time access todefault.aspx

=======================

 

10 EmployeesBO objects werecreated.

 

 

   Address        MT     Size  Gen

0x0628ddfc0x01b8d4c0      604    1BusinessObjectLibrary1.EmployeesBO

0x062e082c0x01b8d4c0      604    1BusinessObjectLibrary1.EmployeesBO

0x062e11600x01b8d4c0      604    1BusinessObjectLibrary1.EmployeesBO

0x062e19580x01b8d4c0      604    1BusinessObjectLibrary1.EmployeesBO

0x062e21500x01b8d4c0      604    1BusinessObjectLibrary1.EmployeesBO

0x062e29480x01b8d4c0      604    1 BusinessObjectLibrary1.EmployeesBO

0x062e31400x01b8d4c0      604    1BusinessObjectLibrary1.EmployeesBO

0x062e39380x01b8d4c0      604    1BusinessObjectLibrary1.EmployeesBO

0x062e41300x01b8d4c0      604    1BusinessObjectLibrary1.EmployeesBO

0x062e4ae4 0x01b8d4c0     604    1 BusinessObjectLibrary1.EmployeesBO

 

I checked the relationship ofthese objects. 0x0628ddfc seems to be a root object and be added to the sessionstate.

 

The other 9 EmployeesBO objectswere referenced by 0x0628ddfc.  (I have 9 records in the Employees table of NorthWinddatabase)

 

For example:

 

DOMAIN(011FF9F0):HANDLE(Strong):ee11fc:Root: 0e2701a4(System.AppDomain)->

 02272b40(System.ResolveEventHandler)->

 0227215c(System.Web.Compilation.BuildManager)->

  02272d44(System.Web.Compilation.MemoryBuildResultCache)->

 0e28bcf0(System.Web.Caching.CacheMultiple)->

 0e28bd08(System.Object[])->

 0e28ea10(System.Web.Caching.CacheSingle)->

 0e28eb24(System.Web.Caching.CacheExpires)->

 0e28eb44(System.Object[])->

 0e28ec94(System.Web.Caching.ExpiresBucket)->

 0a2b5fb4(System.Web.Caching.ExpiresPage[])->

 0a2b6038(System.Web.Caching.ExpiresEntry[])->

 022f5a04(System.Web.Caching.CacheEntry)->

 022f59d4(System.Web.SessionState.InProcSessionState)->

  0a285c28(System.Web.SessionState.SessionStateItemCollection)->

 0a285e3c(System.Collections.Hashtable)->

 0a285e74(System.Collections.Hashtable+bucket[])->

 0628e740(System.Collections.Specialized.NameObjectCollectionBase+NameObjectEntry)->

  0628ddfc(BusinessObjectLibrary1.EmployeesBO)->

  0a329b50(System.Data.DataTable)->

  0e393eec(System.Data.DataView)->

  0e398424(System.ComponentModel.ListChangedEventHandler)->

  0e395d48(System.Object[])->

  0e3960e8(System.ComponentModel.ListChangedEventHandler)->

  062e05e4(MicroFour.StrataFrame.Business.BusinessBindingSource)->

  062e0660(System.Collections.Generic.Dictionary`2[[System.Int32,mscorlib],[MicroFour.StrataFrame.Business.BusinessLayer, MicroFour StrataFrameBusiness]])->

  062e49c8(System.Collections.Generic.Dictionary`2+Entry[[System.Int32,mscorlib],[MicroFour.StrataFrame.Business.BusinessLayer, MicroFour StrataFrameBusiness]][])->

  062e4ae4(BusinessObjectLibrary1.EmployeesBO)

 

It seems that the object0x062e4ae4 was referenced by 0628ddfc through DataTable object and eventhandlers. (highlighted)

 

2nd  time accessto default.aspx

=======================

9 new objects were created andthey were all referenced by the root object 0x0628ddfc which was in turn referenced bysession state.

 

0x0e3985a00x01b8d4c0      604    0BusinessObjectLibrary1.EmployeesBO

0x0e398f540x01b8d4c0      604    0BusinessObjectLibrary1.EmployeesBO

0x0e3997900x01b8d4c0      604    0BusinessObjectLibrary1.EmployeesBO

0x0e399fcc0x01b8d4c0      604    0BusinessObjectLibrary1.EmployeesBO

0x0e39a8ac0x01b8d4c0      604    0BusinessObjectLibrary1.EmployeesBO

0x0e39b1180x01b8d4c0      604    0BusinessObjectLibrary1.EmployeesBO

0x0e39b954 0x01b8d4c0     604    0 BusinessObjectLibrary1.EmployeesBO

0x0e39c2200x01b8d4c0      604    0BusinessObjectLibrary1.EmployeesBO

0x0e39cbc80x01b8d4c0      604    0BusinessObjectLibrary1.EmployeesBO

 

 

DOMAIN(011FF9F0):HANDLE(Strong):ee11fc:Root: 0e2701a4(System.AppDomain)->

 02272b40(System.ResolveEventHandler)->

 0227215c(System.Web.Compilation.BuildManager)->

 02272d44(System.Web.Compilation.MemoryBuildResultCache)->

 0e28bcf0(System.Web.Caching.CacheMultiple)->

 0e28bd08(System.Object[])->

  0e28ea10(System.Web.Caching.CacheSingle)->

 0e28eb24(System.Web.Caching.CacheExpires)->

 0e28eb44(System.Object[])->

 0e28ec94(System.Web.Caching.ExpiresBucket)->

 0a2b5fb4(System.Web.Caching.ExpiresPage[])->

 0a2b6038(System.Web.Caching.ExpiresEntry[])->

  022f5a04(System.Web.Caching.CacheEntry)->

 022f59d4(System.Web.SessionState.InProcSessionState)->

 0a285c28(System.Web.SessionState.SessionStateItemCollection)->

 0a285e3c(System.Collections.Hashtable)->

 0a285e74(System.Collections.Hashtable+bucket[])->

 0628e740(System.Collections.Specialized.NameObjectCollectionBase+NameObjectEntry)->

  0628ddfc(BusinessObjectLibrary1.EmployeesBO)->

 0a329b50(System.Data.DataTable)->

 0e393eec(System.Data.DataView)->

 0e398424(System.ComponentModel.ListChangedEventHandler)->

 0e395d48(System.Object[])->

 0e398404(System.ComponentModel.ListChangedEventHandler)->

 0e39822c(MicroFour.StrataFrame.Business.BusinessBindingSource)->

 0e398270(System.Collections.Generic.Dictionary`2[[System.Int32,mscorlib],[MicroFour.StrataFrame.Business.BusinessLayer, MicroFour StrataFrameBusiness]])->

 0e39ca78(System.Collections.Generic.Dictionary`2+Entry[[System.Int32,mscorlib],[MicroFour.StrataFrame.Business.BusinessLayer, MicroFour StrataFrameBusiness]][])->

  0e399fcc(BusinessObjectLibrary1.EmployeesBO)

 

 

In addition, I found theseobjects were referenced byMicroFour.StrataFrame.Business.BusinessLayer.SharedDataTableCollection.

 

DOMAIN(011FF9F0):HANDLE(Pinned):fe11f4:Root: 12277ad8(System.Object[])->

  0628e08c(MicroFour.StrataFrame.Business.BusinessLayer+SharedDataTableCollection)->

 0628e0a0(System.Collections.Generic.Dictionary`2[[System.String,mscorlib],[System.Collections.Generic.List`1[[MicroFour.StrataFrame.Business.BusinessLayer,MicroFour StrataFrame Business]], mscorlib]])->

 062e1104(System.Collections.Generic.Dictionary`2+Entry[[System.String,mscorlib],[System.Collections.Generic.List`1[[MicroFour.StrataFrame.Business.BusinessLayer,MicroFour StrataFrame Business]], mscorlib]][])->

  062e10d4(System.Collections.Generic.List`1[[MicroFour.StrataFrame.Business.BusinessLayer,MicroFour StrataFrame Business]])->

 062e4928(System.Object[])->

 062e082c(BusinessObjectLibrary1.EmployeesBO)

 

 

Recommendation

==============

If I use multiple users(multiple sessions) to do load test, the memory usage increases quickly becausethere will be multiple root EmployeesBO objects which are stored in sessionstate.

 

Please do involve yourdevelopers of these components (e.g. MicroFour.StrataFrame.Business.BusinessBindingSource,BusinessObjectLibrary1.EmployeesBO,MicroFour.StrataFrame.Business.BusinessLayer.SharedDataTableCollection) tocheck the logic relationship of these components.

 

If they want to keep a copy ofthe data, please make sure only keep one copy.


Ivan George Borges
Ivan George Borges
Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)
Group: StrataFrame MVPs
Posts: 1.9K, Visits: 21K
Thanks Chan.

Although this has been concluded as an ASP.NET issue, your message has been forwarded to be checked.
ChanKK
ChanKK
StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)StrataFrame User (414 reputation)
Group: Forum Members
Posts: 190, Visits: 1.3K
Ivan George Borges (12/2/2010)
Thanks Chan.

Although this has been concluded as an ASP.NET issue, your message has been forwarded to be checked.


Hi
The log is sent by Microsoft, I doubt it is ASP.NET issue or not. But from the reply, it seem Microsoft NEVER mentioned it is ASP.NET issue.
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Similar Topics

Reading This Topic

Login

Explore
Messages
Mentions
Search