Long delay after loading 10301+10302

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Long delay after loading 10301+10302

Nicolas Cellier
My image got unresponsive for a long time just at the end of load,
showing the dialog
    2 new update file(s) processed
Attaching gdb to the process and call printAllStacks() gave me:

2033300892 WeakIdentityKeyDictionary>scanForNil:
2033132772 WeakKeyDictionary>rehash
2033128872 WeakKeyDictionary>finalizeValues
2033128780 >finalizationProcess
2033128688 SequenceableCollection>do:
2033128580 >finalizationProcess
2033128488 Semaphore>critical:ifError:
2033128396 BlockClosure>on:do:
2033128284 BlockClosure>ifError:
2033128152 Semaphore>critical:ifError:
2033128060 Semaphore>critical:
2033127968 BlockClosure>ensure:
2033127820 Semaphore>critical:
2033127684 Semaphore>critical:ifError:
2017849452 >finalizationProcess
2017849360 >restartFinalizationProcess
2017849544 BlockClosure>newProcess

And this loop did last very long...
Of course, this is a high priority process, so pressing ALT+. won't
give me much feedback.
Hmm, a high priority process taking CPU for a long time, that smells...

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Long delay after loading 10301+10302

Stéphane Ducasse
Hi nicolas

this is strange because 10301 was a bunch for collection test and a  
merge fix for traits.
then the 302 were mainly your fixes on numbers. So I have no idea about
what is happening.

Did that happened during 10303 because there the changes were the one  
below + InputSensor initalization.





Stef


'From Pharo0.1 of 16 May 2008 [Latest update: #10300] on 11 May 2009  
at 8:00:50 pm'!

!HostSystemMenusMenuItem class methodsFor: 'handlers' stamp:  
'michael.rueger 5/11/2009 19:57'!
fakeKeyboardEventBlockasciiActual: anAsciiValue unicode: aUnicodeValue  
event: evt
        |event |
                event := Array new: 8.
                event at: 1 put: 2 "EventTypeKeyboard";
                  at: 2 put: Time millisecondClockValue;
                  at: 3 put: aUnicodeValue asInteger;
                  at: 4 put: 1; "key down"
                  at: 5 put: 8; "modifier keys  (CmmandKeyBit)"
                  at: 8 put: (evt at: 8).
                Sensor handleEvent: event.
               
                event := Array new: 8.
                event at: 1 put: 2 "EventTypeKeyboard";
                  at: 2 put: Time millisecondClockValue;
                  at: 3 put: anAsciiValue asInteger;
                  at: 4 put: 0; "key char"
                  at: 5 put: 8; "modifier keys  (CmmandKeyBit)"
                  at: 8 put: (evt at: 8).
                Sensor handleEvent: event.

                event := Array new: 8.
                event at: 1 put: 2 "EventTypeKeyboard";
                  at: 2 put: Time millisecondClockValue;
                  at: 3 put: aUnicodeValue asInteger;
                  at: 4 put: 2; "key press/release"
                  at: 5 put: 64; "modifier keys  (CmmandKeyBit)"
                  at: 8 put: (evt at: 8).
                Sensor handleEvent: event! !

!HostSystemMenusMenuItem class methodsFor: 'handlers' stamp:  
'michael.rueger 5/11/2009 19:57'!
fakeKeyboardEventBlockasciiActual: anAsciiValue unicode: aUnicodeValue  
event: evt virtualKey: aVirtualKeyValue
        |event |
       
                event := Array new: 8.
                event at: 1 put: 2 "EventTypeKeyboard";
                  at: 2 put: Time millisecondClockValue;
                  at: 3 put: aVirtualKeyValue asInteger;
                  at: 4 put: 1; "key down"
                  at: 5 put: 8; "modifier keys  (CmmandKeyBit)"
                  at: 8 put: (evt at: 8).
                Sensor handleEvent: event.
               
                event := Array new: 8.
                event at: 1 put: 2 "EventTypeKeyboard";
                  at: 2 put: Time millisecondClockValue;
                  at: 3 put: anAsciiValue asInteger;
                  at: 4 put: 0; "key char"
                  at: 5 put: 8; "modifier keys  (CmmandKeyBit)"
                  at: 6 put: aUnicodeValue asInteger; "virtual key code"
                  at: 8 put: (evt at: 8).
                Sensor handleEvent: event.

                event := Array new: 8.
                event at: 1 put: 2 "EventTypeKeyboard";
                  at: 2 put: Time millisecondClockValue;
                  at: 3 put: aVirtualKeyValue asInteger;
                  at: 4 put: 2; "key press/release"
                  at: 5 put: 64; "modifier keys  (CmmandKeyBit)"
                  at: 8 put: (evt at: 8).
                Sensor handleEvent: event! !
>

> Hmm, a high priority process taking CPU for a long time, that  
> smells...


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Long delay after loading 10301+10302

Nicolas Cellier
indeed, I think it's got nothing to do with change contents per se.
It must be kind of bad luck with finalizationProcess...
See also http://bugs.squeak.org/view.php?id=7350 : WeakRegistry
behaves as bad as WeakSet.
It probably has more to do with bug encountered with loadOBalpha. This
one was reproduceable: maybe I should not have pushed a workaround
that soon ;)

Nicolas

2009/5/12 Stéphane Ducasse <[hidden email]>:

> Hi nicolas
>
> this is strange because 10301 was a bunch for collection test and a
> merge fix for traits.
> then the 302 were mainly your fixes on numbers. So I have no idea about
> what is happening.
>
> Did that happened during 10303 because there the changes were the one
> below + InputSensor initalization.
>
>
>
>
>
> Stef
>
>
> 'From Pharo0.1 of 16 May 2008 [Latest update: #10300] on 11 May 2009
> at 8:00:50 pm'!
>
> !HostSystemMenusMenuItem class methodsFor: 'handlers' stamp:
> 'michael.rueger 5/11/2009 19:57'!
> fakeKeyboardEventBlockasciiActual: anAsciiValue unicode: aUnicodeValue
> event: evt
>        |event |
>                event := Array new: 8.
>                event at: 1 put: 2 "EventTypeKeyboard";
>                  at: 2 put: Time millisecondClockValue;
>                  at: 3 put: aUnicodeValue asInteger;
>                  at: 4 put: 1; "key down"
>                  at: 5 put: 8; "modifier keys  (CmmandKeyBit)"
>                  at: 8 put: (evt at: 8).
>                Sensor handleEvent: event.
>
>                event := Array new: 8.
>                event at: 1 put: 2 "EventTypeKeyboard";
>                  at: 2 put: Time millisecondClockValue;
>                  at: 3 put: anAsciiValue asInteger;
>                  at: 4 put: 0; "key char"
>                  at: 5 put: 8; "modifier keys  (CmmandKeyBit)"
>                  at: 8 put: (evt at: 8).
>                Sensor handleEvent: event.
>
>                event := Array new: 8.
>                event at: 1 put: 2 "EventTypeKeyboard";
>                  at: 2 put: Time millisecondClockValue;
>                  at: 3 put: aUnicodeValue asInteger;
>                  at: 4 put: 2; "key press/release"
>                  at: 5 put: 64; "modifier keys  (CmmandKeyBit)"
>                  at: 8 put: (evt at: 8).
>                Sensor handleEvent: event! !
>
> !HostSystemMenusMenuItem class methodsFor: 'handlers' stamp:
> 'michael.rueger 5/11/2009 19:57'!
> fakeKeyboardEventBlockasciiActual: anAsciiValue unicode: aUnicodeValue
> event: evt virtualKey: aVirtualKeyValue
>        |event |
>
>                event := Array new: 8.
>                event at: 1 put: 2 "EventTypeKeyboard";
>                  at: 2 put: Time millisecondClockValue;
>                  at: 3 put: aVirtualKeyValue asInteger;
>                  at: 4 put: 1; "key down"
>                  at: 5 put: 8; "modifier keys  (CmmandKeyBit)"
>                  at: 8 put: (evt at: 8).
>                Sensor handleEvent: event.
>
>                event := Array new: 8.
>                event at: 1 put: 2 "EventTypeKeyboard";
>                  at: 2 put: Time millisecondClockValue;
>                  at: 3 put: anAsciiValue asInteger;
>                  at: 4 put: 0; "key char"
>                  at: 5 put: 8; "modifier keys  (CmmandKeyBit)"
>                  at: 6 put: aUnicodeValue asInteger; "virtual key code"
>                  at: 8 put: (evt at: 8).
>                Sensor handleEvent: event.
>
>                event := Array new: 8.
>                event at: 1 put: 2 "EventTypeKeyboard";
>                  at: 2 put: Time millisecondClockValue;
>                  at: 3 put: aVirtualKeyValue asInteger;
>                  at: 4 put: 2; "key press/release"
>                  at: 5 put: 64; "modifier keys  (CmmandKeyBit)"
>                  at: 8 put: (evt at: 8).
>                Sensor handleEvent: event! !
>>
>
>> Hmm, a high priority process taking CPU for a long time, that
>> smells...
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Long delay after loading 10301+10302

Stéphane Ducasse

On May 12, 2009, at 12:37 AM, Nicolas Cellier wrote:

> indeed, I think it's got nothing to do with change contents per se.
> It must be kind of bad luck with finalizationProcess...
> See also http://bugs.squeak.org/view.php?id=7350 : WeakRegistry
> behaves as bad as WeakSet.
> It probably has more to do with bug encountered with loadOBalpha. This
> one was reproduceable: maybe I should not have pushed a workaround
> that soon ;)

yes probably
may be we could have a cs to revert the fixaround

Stef

>
>
> Nicolas
>
> 2009/5/12 Stéphane Ducasse <[hidden email]>:
>> Hi nicolas
>>
>> this is strange because 10301 was a bunch for collection test and a
>> merge fix for traits.
>> then the 302 were mainly your fixes on numbers. So I have no idea  
>> about
>> what is happening.
>>
>> Did that happened during 10303 because there the changes were the one
>> below + InputSensor initalization.
>>
>>
>>
>>
>>
>> Stef
>>
>>
>> 'From Pharo0.1 of 16 May 2008 [Latest update: #10300] on 11 May 2009
>> at 8:00:50 pm'!
>>
>> !HostSystemMenusMenuItem class methodsFor: 'handlers' stamp:
>> 'michael.rueger 5/11/2009 19:57'!
>> fakeKeyboardEventBlockasciiActual: anAsciiValue unicode:  
>> aUnicodeValue
>> event: evt
>>       |event |
>>               event := Array new: 8.
>>               event at: 1 put: 2 "EventTypeKeyboard";
>>                 at: 2 put: Time millisecondClockValue;
>>                 at: 3 put: aUnicodeValue asInteger;
>>                 at: 4 put: 1; "key down"
>>                 at: 5 put: 8; "modifier keys  (CmmandKeyBit)"
>>                 at: 8 put: (evt at: 8).
>>               Sensor handleEvent: event.
>>
>>               event := Array new: 8.
>>               event at: 1 put: 2 "EventTypeKeyboard";
>>                 at: 2 put: Time millisecondClockValue;
>>                 at: 3 put: anAsciiValue asInteger;
>>                 at: 4 put: 0; "key char"
>>                 at: 5 put: 8; "modifier keys  (CmmandKeyBit)"
>>                 at: 8 put: (evt at: 8).
>>               Sensor handleEvent: event.
>>
>>               event := Array new: 8.
>>               event at: 1 put: 2 "EventTypeKeyboard";
>>                 at: 2 put: Time millisecondClockValue;
>>                 at: 3 put: aUnicodeValue asInteger;
>>                 at: 4 put: 2; "key press/release"
>>                 at: 5 put: 64; "modifier keys  (CmmandKeyBit)"
>>                 at: 8 put: (evt at: 8).
>>               Sensor handleEvent: event! !
>>
>> !HostSystemMenusMenuItem class methodsFor: 'handlers' stamp:
>> 'michael.rueger 5/11/2009 19:57'!
>> fakeKeyboardEventBlockasciiActual: anAsciiValue unicode:  
>> aUnicodeValue
>> event: evt virtualKey: aVirtualKeyValue
>>       |event |
>>
>>               event := Array new: 8.
>>               event at: 1 put: 2 "EventTypeKeyboard";
>>                 at: 2 put: Time millisecondClockValue;
>>                 at: 3 put: aVirtualKeyValue asInteger;
>>                 at: 4 put: 1; "key down"
>>                 at: 5 put: 8; "modifier keys  (CmmandKeyBit)"
>>                 at: 8 put: (evt at: 8).
>>               Sensor handleEvent: event.
>>
>>               event := Array new: 8.
>>               event at: 1 put: 2 "EventTypeKeyboard";
>>                 at: 2 put: Time millisecondClockValue;
>>                 at: 3 put: anAsciiValue asInteger;
>>                 at: 4 put: 0; "key char"
>>                 at: 5 put: 8; "modifier keys  (CmmandKeyBit)"
>>                 at: 6 put: aUnicodeValue asInteger; "virtual key  
>> code"
>>                 at: 8 put: (evt at: 8).
>>               Sensor handleEvent: event.
>>
>>               event := Array new: 8.
>>               event at: 1 put: 2 "EventTypeKeyboard";
>>                 at: 2 put: Time millisecondClockValue;
>>                 at: 3 put: aVirtualKeyValue asInteger;
>>                 at: 4 put: 2; "key press/release"
>>                 at: 5 put: 64; "modifier keys  (CmmandKeyBit)"
>>                 at: 8 put: (evt at: 8).
>>               Sensor handleEvent: event! !
>>>
>>
>>> Hmm, a high priority process taking CPU for a long time, that
>>> smells...
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project