[Mono-bugs] [Bug 82689][Nor] New - ListView: Win32 hang on infinite recalc (?when both scrollbars needed)
bugzilla-daemon at bugzilla.ximian.com
bugzilla-daemon at bugzilla.ximian.com
Tue Sep 4 10:40:34 EDT 2007
Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.
Changed by andyhume32 at yahoo.co.uk.
http://bugzilla.ximian.com/show_bug.cgi?id=82689
--- shadow/82689 2007-09-04 10:40:34.000000000 -0400
+++ shadow/82689.tmp.18784 2007-09-04 10:40:34.000000000 -0400
@@ -0,0 +1,270 @@
+Bug#: 82689
+Product: Mono: Class Libraries
+Version: 1.2
+OS:
+OS Details: XP SP2
+Status: NEW
+Resolution:
+Severity:
+Priority: Normal
+Component: Windows.Forms
+AssignedTo: mono-bugs at ximian.com
+ReportedBy: andyhume32 at yahoo.co.uk
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+URL:
+Cc:
+Summary: ListView: Win32 hang on infinite recalc (?when both scrollbars needed)
+
+ListView on Win32 often goes into an infinite loop of NCCALCSIZE-NCPAINT-
+ERASEBKGND-WINDOWPOSCHANGED-WINDOWPOSCHANGING-etc and thus hangs the
+application. Partial Windows SDK Spy++ log below, full 250KB log
+available. It seems to occur when the listview needs both scrollbars.
+I'll attach a screenshot.
+
+In some circumstances -- perhaps mouse in window, or child dialog was
+over window -- it instead crashes with:
+
+(trimmed--full trace below)[[
+Unhandled Exception: System.MemberAccessException: Object is busy and
+cannot state allow this operation [GDI+ status: ObjectBusy]
+
+at System.Drawing.GDIPlus.CheckStatus (System.Drawing.Status) [0x000df]
+in System.Drawing\gdipFunctions.cs:206
+at System.Drawing.Graphics.FillRectangle
+(System.Drawing.Brush,int,int,int,int) [0x0002a] in
+System.Drawing\Graphics.cs:1600
+at System.Drawing.Graphics.FillRectangle
+(System.Drawing.Brush,System.Drawing.Rectangle) [0x00012] in
+System.Drawing\Graphics.cs:1591
+at (wrapper remoting-invoke-with-check)
+System.Drawing.Graphics.FillRectangle
+(System.Drawing.Brush,System.Drawing.Rectangle) <0x000ce>
+at System.Windows.Forms.Control.PaintControlBackground
+(System.Windows.Forms.PaintEventArgs) [0x00326] in
+System.Windows.Forms\Control.cs:1398
+at System.Windows.Forms.Control.OnPaintBackground
+(System.Windows.Forms.PaintEventArgs) [0x00000] in
+System.Windows.Forms\Control.cs:5994
+...
+...
+]]
+
+I'm having difficulty creating a small-ish app reproducing this. The
+full application is one of the samples available in my Brecham.Obex
+available from http://32feet.NET However it needs to talk to a OBEX
+peer -- normally an IrDA or Bluetooth device -- that supports the Folder-
+Browsing (Bluetooth's FTP) service. And without patched socket-io.c
+Bluetooth and IrDA sockets can't be used on Mono.
+
+I have test both with patched mono SVN head, and also by using a TCP/IP-
+>Bluetooth proxy server with 1.2.5, and on 1.2.4 with some hacks to the
+app. It shows both behaviours on all three. I think that I've added a
+file with a long name to the remote folder hence not seeing this problems
+previously.
+
+
+[[
+...
+...
+<04954> 000A0C0A S WM_WINDOWPOSCHANGING lpwp:0022F59C
+<04955> 000A0C0A R WM_WINDOWPOSCHANGING
+<04956> 000A0C0A S WM_NCCALCSIZE fCalcValidRects:True lpncsp:0022F570
+<04957> 000A0C0A R WM_NCCALCSIZE fuValidRect:0000 lpncsp:0022F570
+<04958> 000A0C0A S WM_NCPAINT hrgn:48040C49
+<04959> 000A0C0A R WM_NCPAINT
+<04960> 000A0C0A S WM_ERASEBKGND hdc:960117BA
+<04961> 000A0C0A R WM_ERASEBKGND fErased:True
+<04962> 000A0C0A S WM_WINDOWPOSCHANGED lpwp:0022F59C
+<04963> 000A0C0A R WM_WINDOWPOSCHANGED
+<04964> 000A0C0A S WM_WINDOWPOSCHANGING lpwp:0022F59C
+<04965> 000A0C0A R WM_WINDOWPOSCHANGING
+<04966> 000A0C0A S WM_NCCALCSIZE fCalcValidRects:True lpncsp:0022F570
+<04967> 000A0C0A R WM_NCCALCSIZE fuValidRect:0000 lpncsp:0022F570
+<04968> 000A0C0A S WM_WINDOWPOSCHANGED lpwp:0022F59C
+<04969> 000A0C0A R WM_WINDOWPOSCHANGED
+<04970> 000A0C0A S WM_WINDOWPOSCHANGING lpwp:0022F5A8
+<04971> 000A0C0A R WM_WINDOWPOSCHANGING
+<04972> 000A0C0A S WM_NCCALCSIZE fCalcValidRects:True lpncsp:0022F57C
+<04973> 000A0C0A R WM_NCCALCSIZE fuValidRect:0000 lpncsp:0022F57C
+<04974> 000A0C0A S WM_NCPAINT hrgn:0B041789
+<04975> 000A0C0A R WM_NCPAINT
+<04976> 000A0C0A S WM_ERASEBKGND hdc:960117BA
+<04977> 000A0C0A R WM_ERASEBKGND fErased:True
+<04978> 000A0C0A S WM_WINDOWPOSCHANGED lpwp:0022F5A8
+<04979> 000A0C0A R WM_WINDOWPOSCHANGED
+<04980> 000A0C0A S WM_WINDOWPOSCHANGING lpwp:0022F5A8
+<04981> 000A0C0A R WM_WINDOWPOSCHANGING
+<04982> 000A0C0A S WM_NCCALCSIZE fCalcValidRects:True lpncsp:0022F57C
+<04983> 000A0C0A R WM_NCCALCSIZE fuValidRect:0000 lpncsp:0022F57C
+<04984> 000A0C0A S WM_WINDOWPOSCHANGED lpwp:0022F5A8
+<04985> 000A0C0A R WM_WINDOWPOSCHANGED
+<04986> 000A0C0A S WM_WINDOWPOSCHANGING lpwp:0022F59C
+<04987> 000A0C0A R WM_WINDOWPOSCHANGING
+<04988> 000A0C0A S WM_NCCALCSIZE fCalcValidRects:True lpncsp:0022F570
+<04989> 000A0C0A R WM_NCCALCSIZE fuValidRect:0000 lpncsp:0022F570
+<04990> 000A0C0A S WM_NCPAINT hrgn:690419E3
+<04991> 000A0C0A R WM_NCPAINT
+<04992> 000A0C0A S WM_ERASEBKGND hdc:960117BA
+<04993> 000A0C0A R WM_ERASEBKGND fErased:True
+<04994> 000A0C0A S WM_WINDOWPOSCHANGED lpwp:0022F59C
+<04995> 000A0C0A R WM_WINDOWPOSCHANGED
+<04996> 000A0C0A S WM_WINDOWPOSCHANGING lpwp:0022F59C
+<04997> 000A0C0A R WM_WINDOWPOSCHANGING
+<04998> 000A0C0A S WM_NCCALCSIZE fCalcValidRects:True lpncsp:0022F570
+<04999> 000A0C0A R WM_NCCALCSIZE fuValidRect:0000 lpncsp:0022F570
+<05000> 000A0C0A S WM_WINDOWPOSCHANGED lpwp:0022F59C
+]]
+
+[[
+Unhandled Exception: System.MemberAccessException: Object is busy and
+cannot state allow this operation [GDI+ status: ObjectBusy]
+
+at System.Drawing.GDIPlus.CheckStatus (System.Drawing.Status) [0x000df]
+in C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\System.Drawing\System.Drawing\gdipFunctions.cs:206
+at System.Drawing.Graphics.FillRectangle
+(System.Drawing.Brush,int,int,int,int) [0x0002a] in
+C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\System.Drawing\System.Drawing\Graphics.cs:1600
+at System.Drawing.Graphics.FillRectangle
+(System.Drawing.Brush,System.Drawing.Rectangle) [0x00012] in
+C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\System.Drawing\System.Drawing\Graphics.cs:1591
+at (wrapper remoting-invoke-with-check)
+System.Drawing.Graphics.FillRectangle
+(System.Drawing.Brush,System.Drawing.Rectangle) <0x000ce>
+at System.Windows.Forms.Control.PaintControlBackground
+(System.Windows.Forms.PaintEventArgs) [0x00326] in
+C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\Control.cs:1398
+at System.Windows.Forms.Control.OnPaintBackground
+(System.Windows.Forms.PaintEventArgs) [0x00000] in
+C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\Control.cs:5994
+at System.Windows.Forms.Control.WmPaint (System.Windows.Forms.Message&)
+[0x00063] in C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\Control.cs:5169
+at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message&)
+[0x0016c] in C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\Control.cs:4949
+at ItemControl.WndProc (System.Windows.Forms.Message&) [0x00061] in
+C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\ListView.cs:2527
+at ControlWindowTarget.OnMessage (System.Windows.Forms.Message&)
+[0x00000] in C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\Control.cs:224
+at ControlNativeWindow.WndProc (System.Windows.Forms.Message&) [0x00000]
+in C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\Control.cs:205
+at System.Windows.Forms.NativeWindow.WndProc
+(intptr,System.Windows.Forms.Msg,intptr,intptr) [0x0006b] in
+C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\NativeWindow.cs:183
+at System.Windows.Forms.XplatUIWin32.InternalWndProc
+(intptr,System.Windows.Forms.Msg,intptr,intptr) [0x0002d] in
+C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\XplatUIWin32.cs:1859
+at (wrapper native-to-managed)
+System.Windows.Forms.XplatUIWin32.InternalWndProc
+(intptr,System.Windows.Forms.Msg,intptr,intptr) <0x0004d>
+in (unmanaged) 7E418733
+at (wrapper managed-to-native)
+System.Windows.Forms.XplatUIWin32.Win32UpdateWindow (intptr) <0x00004>
+at System.Windows.Forms.XplatUIWin32.UpdateWindow (intptr) [0x00000] in
+C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\XplatUIWin32.cs:1727
+at System.Windows.Forms.XplatUI.UpdateWindow (intptr) [0x00000] in
+C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\XplatUI.cs:1131
+at System.Windows.Forms.Control.Refresh () [0x0001c] in
+C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\Control.cs:3936
+at System.Windows.Forms.Control.Refresh () [0x0003f] in
+C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\Control.cs:3940
+at System.Windows.Forms.ListView.Redraw (bool) [0x00035] in
+C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\ListView.cs:1020
+at (wrapper remoting-invoke-with-check)
+System.Windows.Forms.ListView.Redraw (bool) <0x0004f>
+at ListViewItemCollection.CollectionChanged (bool) [0x00024] in
+C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\ListView.cs:4637
+at ListViewItemCollection.Clear () [0x000b5] in
+C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\ListView.cs:4393
+at FolderExplorer2.Form1.connectButton_Click (object,System.EventArgs)
+<0x00071>
+at System.Windows.Forms.Control.OnClick (System.EventArgs) [0x0001c] in
+C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\Control.cs:5603
+at System.Windows.Forms.Button.OnClick (System.EventArgs) [0x00025] in
+C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\Button.cs:104
+at System.Windows.Forms.ButtonBase.OnMouseUp
+(System.Windows.Forms.MouseEventArgs) [0x00076] in
+C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\ButtonBase.cs:616
+at System.Windows.Forms.Button.OnMouseUp
+(System.Windows.Forms.MouseEventArgs) [0x00000] in
+C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\Button.cs:126
+at System.Windows.Forms.Control.WmLButtonUp
+(System.Windows.Forms.Message&) [0x0005c] in
+C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\Control.cs:5204
+at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message&)
+[0x0017c] in C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\Control.cs:4962
+at System.Windows.Forms.ButtonBase.WndProc
+(System.Windows.Forms.Message&) [0x00055] in
+C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\ButtonBase.cs:674
+at System.Windows.Forms.Button.WndProc (System.Windows.Forms.Message&)
+[0x00000] in C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\Button.cs:148
+at ControlWindowTarget.OnMessage (System.Windows.Forms.Message&)
+[0x00000] in C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\Control.cs:224
+at ControlNativeWindow.WndProc (System.Windows.Forms.Message&) [0x00000]
+in C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\Control.cs:205
+at System.Windows.Forms.NativeWindow.WndProc
+(intptr,System.Windows.Forms.Msg,intptr,intptr) [0x0006b] in
+C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\NativeWindow.cs:183
+at System.Windows.Forms.XplatUIWin32.InternalWndProc
+(intptr,System.Windows.Forms.Msg,intptr,intptr) [0x0002d] in
+C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\XplatUIWin32.cs:1859
+at (wrapper native-to-managed)
+System.Windows.Forms.XplatUIWin32.InternalWndProc
+(intptr,System.Windows.Forms.Msg,intptr,intptr) <0x0004d>
+in (unmanaged) 7E418733
+at (wrapper managed-to-native)
+System.Windows.Forms.XplatUIWin32.Win32DispatchMessage
+(System.Windows.Forms.MSG&) <0x00004>
+at System.Windows.Forms.XplatUIWin32.DispatchMessage
+(System.Windows.Forms.MSG&) [0x00000] in
+C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\XplatUIWin32.cs:2054
+at System.Windows.Forms.XplatUI.DispatchMessage
+(System.Windows.Forms.MSG&) [0x00000] in
+C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\XplatUI.cs:540
+at System.Windows.Forms.Application.RunLoop
+(bool,System.Windows.Forms.ApplicationContext) [0x0037c] in
+C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\Application.cs:747
+at System.Windows.Forms.Application.Run (System.Windows.Forms.Form)
+[0x00000] in C:\cygwin\tmp\monobuild\build\BUILD\mono-1.2.5
+\mcs\class\Managed.Windows.Forms\System.Windows.Forms\Application.cs:534
+at
+Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRu
+n () <0x00040>
+at
+Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run
+(string[]) <0x0000b>
+at FolderExplorer2.My.MyApplication.Main (string[]) <0x0003e>
+]]
More information about the mono-bugs
mailing list