VA 8 Beta 1: Flickering

VA Smalltalk is a "100% VisualAge compatible" IDE that includes the original VisualAge technology and the popular VA Assist and WidgetKit add-ons.

Moderators: Eric Clayberg, wembley, tc, Diane Engles, solveig

VA 8 Beta 1: Flickering

Postby jtuchel » Thu Jan 08, 2009 12:47 am

Hi there,

I am using the VA 8 Beta 1 with the new browsers enabled. The Transcript and browsers seem to constantly flicker (on XP at least, haven't tried any other OS), redrawing their contents quite frequently. Does anybody else see that?

I didn't realize it in the first place, but as soon as you have another window in front of VAST, browsing the net, reading a document or reading trouble tickets, this flickering can be quite disturbing.

cu

Joachim
jtuchel
[|]
 
Posts: 245
Joined: Fri Oct 05, 2007 1:05 am
Location: Ludwigsburg, Germany

Re: VA 8 Beta 1: Flickering

Postby tc » Thu Jan 08, 2009 1:24 am

Hello,

Yes, I've noticed it also. The main place where I noticed it is when I bring up Quicken. Quicken and the ST browser seem to have this flickering contest. The desktop icons flicker as well. It lasts about 5 seconds then stops.

I opened case 38601 for this issue.

--tc
tc
Moderator
 
Posts: 304
Joined: Tue Oct 17, 2006 7:40 am
Location: Raleigh, NC

Re: VA 8 Beta 1: Flickering

Postby tc » Tue Jan 13, 2009 4:16 am

Hello,

I wanted to try and nail down what is flashing because I assumed you meant the browsers but you also mentioned the transcript. The browsers have no connection to the transcript other than being in the same image.

If only a transcript and an application manager are up, do you see flickering? If so, what flickers, the buttons, the contents of the transcripts, or ?

Thanks.

--tc
tc
Moderator
 
Posts: 304
Joined: Tue Oct 17, 2006 7:40 am
Location: Raleigh, NC

Re: VA 8 Beta 1: Flickering

Postby jtuchel » Tue Jan 13, 2009 8:13 am

Taylor

it's the transcript contents and the contents of the editing panes of Browsers.
It's not always there and I've played around a bit to find out whether it's the sUnit-Browser or maybe the new browsers that make it happen, but I couldn't find a pattern yet.

I tried the combination of Transcript and App manager, Transcript and Organizer (btw: it's still named VisualAge Organizer), sUnit Browser, my normal 20+ open windows browsing environment etc. It sometimes shows up, and sometimes disappears. Sorry to be so unspecific...

Maybe there are more important bugs to hunt down before this one ;-)

Joachim
jtuchel
[|]
 
Posts: 245
Joined: Fri Oct 05, 2007 1:05 am
Location: Ludwigsburg, Germany

Re: VA 8 Beta 1: Flickering

Postby marten » Sat Feb 07, 2009 2:23 am

When this thing happens to my running VA80 system I noticed, that the UIProcess is running at full speed (actually no other process is running) - using 25% percent of my quad-core system. Therefore I do not notice this state at once.
Marten Feldtmann, Principal Smalltalk User, Private
SkypeMe callto://marten.feldtmann
marten
[|]
 
Posts: 641
Joined: Sat Oct 14, 2006 7:10 am
Location: Hamburg - Germany

Re: VA 8 Beta 1: Flickering

Postby marten » Tue Feb 24, 2009 12:54 am

marten wrote:When this thing happens to my running VA80 system I noticed, that the UIProcess is running at full speed (actually no other process is running) - using 25% percent of my quad-core system. Therefore I do not notice this state at once.


To get rid of this behaviour I just execute "Scrub Image ..." from the Options menu and the UI process is quiet again. This bug is a quite nasty one, because if this also happens in the runtime, it will influence heavily your application and the user experience - because it slows down the system very much.
Marten Feldtmann, Principal Smalltalk User, Private
SkypeMe callto://marten.feldtmann
marten
[|]
 
Posts: 641
Joined: Sat Oct 14, 2006 7:10 am
Location: Hamburg - Germany

Re: VA 8 Beta 1: Flickering

Postby PhotonDemon » Tue Feb 24, 2009 11:58 am

This sounds like it could be related to or the same as a CPU loop problem I reported "Case 38694 - VA Smalltalk V8 Beta1 dev env CPU loop problem". I don't mean to speak for John O'Keefe but he tells me he thinks it may be a "bad fix that was made to VA Assist Pro in V8 Beta1" that should be fixed in V8 Beta2.

Lou
Louis LaBrunda
Keystone Software Corp.
SkypeMe callto://PhotonDemon
mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
PhotonDemon
[|]
 
Posts: 176
Joined: Thu Dec 20, 2007 1:45 pm

Re: VA 8 Beta 1: Flickering

Postby marten » Wed Mar 04, 2009 1:16 pm

I got this error some minutes ago and I saw in the Transcript an error message about bad font id .... and then flickering began ... scrub image and all was gone
Marten Feldtmann, Principal Smalltalk User, Private
SkypeMe callto://marten.feldtmann
marten
[|]
 
Posts: 641
Joined: Sat Oct 14, 2006 7:10 am
Location: Hamburg - Germany

Re: VA 8 Beta 1: Flickering

Postby wembley » Thu Mar 05, 2009 5:17 am

marten wrote:I got this error some minutes ago and I saw in the Transcript an error message about bad font id .... and then flickering began ... scrub image and all was gone

Did you happen to save the error message?
John O'Keefe [|], Principal Smalltalk Architect, Instantiations Inc.
wembley
Moderator
 
Posts: 405
Joined: Mon Oct 16, 2006 3:01 am
Location: Durham, NC

Re: VA 8 Beta 1: Flickering

Postby jtuchel » Fri Mar 06, 2009 2:47 am

Marten, John,

when I had that flicker, I cannot remember having any warning in my Transcript...

Joachim
jtuchel
[|]
 
Posts: 245
Joined: Fri Oct 05, 2007 1:05 am
Location: Ludwigsburg, Germany

Re: VA 8 Beta 1: Flickering

Postby marten » Fri Mar 06, 2009 3:39 am

jtuchel wrote:Marten, John,

when I had that flicker, I cannot remember having any warning in my Transcript...

Joachim


No, no I've seen this error only once - but actually I get the flickering more often (several times a day) without any error messages.

Marten
Marten Feldtmann, Principal Smalltalk User, Private
SkypeMe callto://marten.feldtmann
marten
[|]
 
Posts: 641
Joined: Sat Oct 14, 2006 7:10 am
Location: Hamburg - Germany

Re: VA 8 Beta 1: Flickering

Postby Bob Whitefield » Thu Mar 26, 2009 10:09 am

I've also noticed this problem, on three different machines, both XP and Vista. I noticed it again just now in a new image, and was able to reproduce it this way:

Open three workspaces, paste some text into each, and select the text to make the flickering easier to see.
Open a hierarchy browser and find a list pane that contains many items.
Use the scroll wheel, scroll bar, or arrow keys to scroll up and down rapidly in the list pane for several seconds.

Text in the workspaces will flicker repeatedly. Flickering occurs in one workspace after another sequentially, not simultaneously. Then a pause of 5-10 seconds, then flickering repeats in each workspace, in the same order. This cycle may continue 2-3 times, up to a minute before it stops completely.

It would be good to track this down, as I imagine it will make Remote Desktop unusable.

Thanks,
Bob
Bob Whitefield
[|]
 
Posts: 17
Joined: Thu May 01, 2008 7:41 pm

Re: VA 8 Beta 1: Flickering

Postby wembley » Fri Mar 27, 2009 10:20 am

Bob -

Did you run the test with VA Assist loaded?

I can't reproduce it following your scenario.
John O'Keefe [|], Principal Smalltalk Architect, Instantiations Inc.
wembley
Moderator
 
Posts: 405
Joined: Mon Oct 16, 2006 3:01 am
Location: Durham, NC

Re: VA 8 Beta 1: Flickering

Postby tc » Fri Mar 27, 2009 11:02 am

Hello,

As an experiment, check if this method looks like the following:
Code: Select all
StsPowerTools class>>#methodSelectorExists:

   MethodSelectors isNil ifTrue: [^true].
   self checkSpelling ifFalse: [^true].
   ^MethodSelectors includes: selector

. . . if not, change it to the above code and retry your test.

Thanks.

--tc
tc
Moderator
 
Posts: 304
Joined: Tue Oct 17, 2006 7:40 am
Location: Raleigh, NC

Re: VA 8 Beta 1: Flickering

Postby Bob Whitefield » Sat Mar 28, 2009 6:16 am

John and Taylor, thanks for your replies.

Yes, VA Assist is loaded (fresh image and install).

Taylor, replacing the 4/22/08 edition of StsPowerTools class>>#methodSelectorExists: with your code didn't solve the problem. But putting a breakpoint there showed the problem seems to be repainting by syntax coloring code--see walkback below. #methodSelectorExists: gets executed hundreds of times for every UI interaction, even just a single click of a scroll up button. Even for interactions in other applications.

I don't have time to debug it, but my question is: why is syntax coloring running when the contents of the text panes hasn't changed, i.e., why is it kicked off in response to events that don't affect pane contents?

Turning off VA Assist spell check prevents the problem.

Bob

Code: Select all
Debugger Stack Trace Report:
Error String: 'Breakpoint #1'
Resumable: false

UIProcess
   Name: (3/28/2009 9:25:44 AM)
   Process State: suspended
   Priority: 7

Executing in: StsPowerTools class>>#methodSelectorExists:

System Configuration Dump


Copyright:

   VA Smalltalk V8.0 BETA1; Image: 8.0
   VM Timestamp: 4.0,(NC) 11/5/2008 (76)
   (C) Copyright Instantiations 1994, 2008.  All rights reserved.
   (C) Copyright International Business Machines Corp. 1994, 2006.  All rights reserved.

Time:  9:27:20 AM
Date:  3/28/2009

Platform:

   Virtual machine:  ES
   Bytecode version:  4.0
   Manager version:  4.00
   'OS' subsystem:  'WIN32s'
   'CLIM' subsystem:  'ES'
   'CP' subsystem:  'WIN32s'
   'CLDT' subsystem:  'ES'
   'CFS' subsystem:  'WIN32s'
   'SCI' subsystem:  'WIN'
   'CW' subsystem:  'WIN32s'
   'CPM' subsystem:  'ES'
   'CG' subsystem:  'WIN32s'
   'CPIC' subsystem:  'WIN32s'

Current user:  Library Supervisor

Connected Library:

   Pathname:  c:\vast80\manager\mgr80.dat

INFO: Trapped error dumping system configuration.
=============<STACK TRACE BEGINS>============
[] in <optimized block>(ExceptionalEvent class)>>#initializeSystemExceptions
   signal=Signal on Exception: (ExHalt) A halt has occurred.
Signal>>#evaluate:
   self=Signal on Exception: (ExHalt) A halt has occurred.
   aBlock=[] in ExceptionalEvent class>>#initializeSystemExceptions
ExceptionalEvent>>#applyDefaultHandler:
   self=Exception: (ExHalt) A halt has occurred.
   aSignal=Signal on Exception: (ExHalt) A halt has occurred.
   exception=Exception: (ExHalt) A halt has occurred.
ExceptionalEvent>>#signalFor:
   self=Exception: (ExHalt) A halt has occurred.
   aSignalOrExceptionSelector=Signal on Exception: (ExHalt) A halt has occurred.
   handler=nil
ExceptionalEvent>>#signalWithArguments:
   self=Exception: (ExHalt) A halt has occurred.
   arguments=('Breakpoint #1' a DbgBreakpoint(StsPowerTools class>>#methodSelectorExists: (#1,active, iteration: 4, trigger: *)))
ExceptionalEvent>>#signalWith:with:
   self=Exception: (ExHalt) A halt has occurred.
   arg1='Breakpoint #1'
   arg2=a DbgBreakpoint(StsPowerTools class>>#methodSelectorExists: (#1,active, iteration: 4, trigger: *))
[] in DbgBreakpoint class>>#breakpointEncountered:
   self=DbgBreakpoint
   breakpointNumber=1
   senderBP=358
   shouldBreak=true
   process=UIProcess:(3/28/2009 9:23:09 AM){dead,3}
   bp=a DbgBreakpoint(StsPowerTools class>>#methodSelectorExists: (#1,active, iteration: 4, trigger: *))
[] in EsCompactBlockContextTemplate(Block)>>#valueWithErrorHandler:oldHandler:onReturnDo:
   self=[] in DbgBreakpoint class>>#breakpointEncountered:
   handler=[] in Block>>#atEndOrWhenExceptionDo:
   oldHandler=nil
   completionBlock=[] in DbgBreakpoint class>>#breakpointEncountered:
EsCompactBlockContextTemplate(Block)>>#valueWithErrorHandler:oldHandler:onReturnDo:
   self=[] in DbgBreakpoint class>>#breakpointEncountered:
   handler=[] in Block>>#atEndOrWhenExceptionDo:
   oldHandler=nil
   completionBlock=[] in DbgBreakpoint class>>#breakpointEncountered:
EsCompactBlockContextTemplate(Block)>>#atEndOrWhenExceptionDo:
   self=[] in DbgBreakpoint class>>#breakpointEncountered:
   completionBlock=[] in DbgBreakpoint class>>#breakpointEncountered:
   oldHandler=nil
   handler=[] in Block>>#atEndOrWhenExceptionDo:
DbgBreakpoint class>>#breakpointEncountered:
   self=DbgBreakpoint
   breakpointNumber=1
   senderBP=358
   shouldBreak=true
   process=UIProcess:(3/28/2009 9:23:09 AM){dead,3}
   bp=a DbgBreakpoint(StsPowerTools class>>#methodSelectorExists: (#1,active, iteration: 4, trigger: *))
StsPowerTools class>>#methodSelectorExists:
   self=StsPowerTools
   selector=#isNil
EsUnaryPattern(EsMessagePattern)>>#stsSelectorExists
   self=isNil
EsUnaryPattern>>#stsNodeColor
   self=isNil
EsUnaryPattern(EsParseNode)>>#stsAppendNodeColorAssociations:
   self=isNil
   nodeColors=OrderedCollection(23 @ 30 -> 8323072 36 @ 50 -> 16711680 )
   nodeColor=nil
[] in EsMethod(EsParseNode)>>#stsAsCollectionOfNodeColors
   self=methodSelectorExists: selector
MethodSelectors isNil ifTrue: [^true
] .
self checkSpelling ifFalse: [^true
] .
^(MethodSelectors includes: selector ) ifTrue: [true
] ifFalse: [(Symbol symbolTable includes: selector ) ifTrue: [StsPowerTools refreshMethodSelectors.

true
]
]

   nodeColors=OrderedCollection(23 @ 30 -> 8323072 36 @ 50 -> 16711680 )
   node=isNil
EsUnaryPattern(EsParseNode)>>#allNodesDo:
   self=isNil
   aBlock=[] in EsParseNode>>#stsAsCollectionOfNodeColors
[] in EsIsNil(EsParseNode)>>#allNodesDo:
   self=MethodSelectors isNil
   aBlock=[] in EsParseNode>>#stsAsCollectionOfNodeColors
   node=isNil
EsIsNil(EsMessageExpression)>>#subnodesDo:
   self=MethodSelectors isNil
   aBlock=[] in EsParseNode>>#allNodesDo:
EsIsNil(EsParseNode)>>#allNodesDo:
   self=MethodSelectors isNil
   aBlock=[] in EsParseNode>>#stsAsCollectionOfNodeColors
[] in EsIfTrue(EsParseNode)>>#allNodesDo:
   self=MethodSelectors isNil ifTrue: [^true
]
   aBlock=[] in EsParseNode>>#stsAsCollectionOfNodeColors
   node=MethodSelectors isNil
EsIfTrue(EsMessageExpression)>>#subnodesDo:
   self=MethodSelectors isNil ifTrue: [^true
]
   aBlock=[] in EsParseNode>>#allNodesDo:
EsIfTrue(EsParseNode)>>#allNodesDo:
   self=MethodSelectors isNil ifTrue: [^true
]
   aBlock=[] in EsParseNode>>#stsAsCollectionOfNodeColors
[] in EsStatement(EsParseNode)>>#allNodesDo:
   self=MethodSelectors isNil ifTrue: [^true
] .

   aBlock=[] in EsParseNode>>#stsAsCollectionOfNodeColors
   node=MethodSelectors isNil ifTrue: [^true
]
EsStatement>>#subnodesDo:
   self=MethodSelectors isNil ifTrue: [^true
] .

   aBlock=[] in EsParseNode>>#allNodesDo:
EsStatement(EsParseNode)>>#allNodesDo:
   self=MethodSelectors isNil ifTrue: [^true
] .

   aBlock=[] in EsParseNode>>#stsAsCollectionOfNodeColors
[] in EsMethod(EsParseNode)>>#allNodesDo:
   self=methodSelectorExists: selector
MethodSelectors isNil ifTrue: [^true
] .
self checkSpelling ifFalse: [^true
] .
^(MethodSelectors includes: selector ) ifTrue: [true
] ifFalse: [(Symbol symbolTable includes: selector ) ifTrue: [StsPowerTools refreshMethodSelectors.

true
]
]

   aBlock=[] in EsParseNode>>#stsAsCollectionOfNodeColors
   node=MethodSelectors isNil ifTrue: [^true
] .

OrderedCollection>>#do:
   self=OrderedCollection(MethodSelectors isNil ifTrue: [^true
] .
self checkSpelling ifFalse: [^true
] .
^(MethodSelectors includes: selector ) ifTrue: [true
] ifFalse: [(Symbol symbolTable includes: selector ) ifTrue: [StsPowerTools refreshMethodSelectors.

true
]
]
)
   aBlock=[] in EsParseNode>>#allNodesDo:
EsMethod>>#subnodesDo:
   self=methodSelectorExists: selector
MethodSelectors isNil ifTrue: [^true
] .
self checkSpelling ifFalse: [^true
] .
^(MethodSelectors includes: selector ) ifTrue: [true
] ifFalse: [(Symbol symbolTable includes: selector ) ifTrue: [StsPowerTools refreshMethodSelectors.

true
]
]

   aBlock=[] in EsParseNode>>#allNodesDo:
EsMethod(EsParseNode)>>#allNodesDo:
   self=methodSelectorExists: selector
MethodSelectors isNil ifTrue: [^true
] .
self checkSpelling ifFalse: [^true
] .
^(MethodSelectors includes: selector ) ifTrue: [true
] ifFalse: [(Symbol symbolTable includes: selector ) ifTrue: [StsPowerTools refreshMethodSelectors.

true
]
]

   aBlock=[] in EsParseNode>>#stsAsCollectionOfNodeColors
EsMethod(EsParseNode)>>#stsAsCollectionOfNodeColors
   self=methodSelectorExists: selector
MethodSelectors isNil ifTrue: [^true
] .
self checkSpelling ifFalse: [^true
] .
^(MethodSelectors includes: selector ) ifTrue: [true
] ifFalse: [(Symbol symbolTable includes: selector ) ifTrue: [StsPowerTools refreshMethodSelectors.

true
]
]

   nodeColors=OrderedCollection(23 @ 30 -> 8323072 36 @ 50 -> 16711680 )
StsOSColorText>>#rawNodeColors
   self=StsOSColorText()
   rawNodeColors=nil
StsOSColorText>>#calculateNodeColors
   self=StsOSColorText()
   rawNodeColors=nil
StsOSColorText>>#drawText:
   self=StsOSColorText()
   aRect=*OSRect {
left: 0
top: 0
right: 726
bottom: 173
}
   nY=nil
   top=nil
   bottom=nil
[] in StsOSColorText(OSLargeText)>>#wmPaint:with:
   self=StsOSColorText()
   rect=*OSRect {
left: 0
top: 0
right: 726
bottom: 173
}
StsOSColorText(OSWidget)>>#paintDo:
   self=StsOSColorText()
   aBlock=[] in OSLargeText>>#wmPaint:with:
   hDC=OSHdc {906038895}
   oldDC=nil
   struct=*OSPaintstruct {
hdc: OSHdc {234950613}
fErase: false
rcPaint: *OSRect {
left: 0
top: 0
right: 726
bottom: 173
}
fRestore: false
fIncUpdate: false
rgbReserved: OSUInt8 [32] {96 250 255 255 160 3 12 0 0 0 0 0 63 192 0 0 0 0 0 0 253 35 27 0 96 249 255 255 160 3 12 0}
}
   rcPaint=*OSRect {
left: 0
top: 0
right: 726
bottom: 173
}
   state=false
StsOSColorText(OSLargeText)>>#wmPaint:with:
   self=StsOSColorText()
   wParam=0
   lParam=0
StsOSColorText(OSWidget)>>#windowProc:with:with:
   self=StsOSColorText()
   msg=15
   arg1=0
   arg2=0
   selector=#wmPaint:with:
   result=nil
OSEventManager class>>#windowProc:msg:with:with:
   self=OSEventManager
   hwnd=787360
   msg=15
   arg1=0
   arg2=0
   object=StsOSColorText()
OSMsg>>#dispatchMessage
   self=*OSMsg {
hwnd: OSHwnd {3803000}
message: 273
wParam: 291
lParam: 0
time: 38586441
pt: *OSPoint {
x: 869
y: 337
}
}
OSEventManager class>>#dispatchEvent
   self=OSEventManager
   state=false
OSWidget class>>#readAndDispatch
   self=OSWidget
   state=true
   gotEvent=true
CwAppContext>>#readAndDispatch
   self=a CwAppContext
AbtWindowSystemStartUp class(EsWindowSystemStartUp class)>>#messageLoop
   self=AbtWindowSystemStartUp
   lastEventTime=38490797
   appContext=a CwAppContext
[] in <optimized block>(UIProcess class)>>#forkUserInterface
[] in UIProcess(Process)>>#executeBlock:withArguments:
   self=UIProcess:(3/28/2009 9:23:09 AM){dead,3}
   aBlock=[] in UIProcess class>>#forkUserInterface
   args=()
UIProcess(Process)>>#executeBlock:withArguments:
   self=UIProcess:(3/28/2009 9:23:09 AM){dead,3}
   aBlock=[] in UIProcess class>>#forkUserInterface
   args=()
UIProcess(Process)>>#newProcessOn:stackSize:withArguments:named:
   self=UIProcess:(3/28/2009 9:23:09 AM){dead,3}
   aBlock=[] in UIProcess class>>#forkUserInterface
   stackSize=1024
   args=()
   procName='(3/28/2009 9:23:09 AM)'
==============<STACK TRACE ENDS>=============
Bob Whitefield
[|]
 
Posts: 17
Joined: Thu May 01, 2008 7:41 pm

Next

Return to VA Smalltalk 7.0, 7.5 & 8.0

Who is online

Users browsing this forum: Yahoo [Bot] and 1 guest