This looks like a fairly nasty problem, I hope it can be addressed soon.
On Linux (and we've also seen this on Solaris, though I think that the X display may have been on Linux) VW 7.4.1 sometimes consumes a CPU for no apparent reason. Some facts: * This happens both with our application code loaded and without it loaded. I haven't yet seen it in an image that isn't logged into Store, but I rarely work with images that aren't connected to Store. * I can launch an image, and it starts running hot. * Other launches of the same image may not run hot. * Once it starts running hot, it doesn't stop. * The VW environment responds completely normally, other than consuming CPU continuously. * There don't seem to be any Smalltalk Processes consuming CPU * Linux accounts about 75% of the time taken as system time, leading me to believe that VW is doing many system calls. Below are some C stacks and some Smalltalk stacks taken while running hot. Some of the C stacks indicate interaction with X. It's possible this bug only reproduces on certain X servers. On a machine with X.org 6.8.2, I've seen this reproduce several times this week. About two months ago (on a prerelease 7.4.1) we saw this on a different Linux machine with XFree86 4.3.0. Let me know if there's more information I can gather when I see this happen. Regards, -Martin (gdb) where #0 0xb7d5d771 in getitimer () from /lib/libc.so.6 #1 0x080c70db in pdCheckTimer (close=0, who=0x80eeef6 "waitForIO") at src/plat/unxAlarm.c:204 #2 0x080cc710 in waitForIO () at src/plat/unxUtil.c:728 #3 0x080971a6 in preemptActiveProcess (terminateWithExtremePrejudice=0) at src/mman/mmProcess.c:334 #4 0x0809822a in waitOnSemaphore (semaphore=0x911eb98) at src/mman/mmProcess.c:658 #5 0x080a8c5a in rtPrimGlue0 () #6 0x0911eb98 in ?? () #7 0xbfcb98c4 in ?? () #8 0x00000000 in ?? () #9 0x00000000 in ?? () #10 0x080fddb8 in ?? () #11 0x00000002 in ?? () #12 0x0808adcf in launchSystem () at src/mman/mmInit.c:507 #13 0x080a8360 in minGlueInstr () (gdb) where #0 0xb7d8e07c in poll () from /lib/libc.so.6 #1 0x080cc699 in waitForIO () at src/plat/unxUtil.c:701 #2 0x080971a6 in preemptActiveProcess (terminateWithExtremePrejudice=0) at src/mman/mmProcess.c:334 #3 0x0809822a in waitOnSemaphore (semaphore=0x8bde8a0) at src/mman/mmProcess.c:658 #4 0x080a8c5a in rtPrimGlue0 () #5 0x08bde8a0 in ?? () #6 0xbffb8dc4 in ?? () #7 0x00000000 in ?? () #8 0x00000000 in ?? () #9 0x080fddb8 in ?? () #10 0x00000002 in ?? () #11 0x0808adcf in launchSystem () at src/mman/mmInit.c:507 #12 0x080a8360 in minGlueInstr () (gdb) where #0 0xb7d8e07c in poll () from /lib/libc.so.6 #1 0x080cc81f in waitForIOWithTimeout (fd=0, rwx_flags=0, rwx_results=0x0, milliseconds=0) at src/plat/unxUtil.c:769 #2 0x080e18f1 in getXinputForDisplay (display=0x8117688) at src/plat/x11Win.c:255 #3 0x080dfa18 in xDisplaysDo (func=0x80e1870 <getXinputForDisplay>) at src/plat/x11Resource.c:843 #4 0x080e1910 in getXinput () at src/plat/x11Win.c:279 #5 0x080e192b in pdSynchronizeInputGUI () at src/plat/x11Win.c:302 #6 0x080ad955 in handleAsyncRequests () at src/stack/services.c:183 #7 0x08097198 in preemptActiveProcess (terminateWithExtremePrejudice=0) at src/mman/mmProcess.c:335 #8 0x0809822a in waitOnSemaphore (semaphore=0x89cc548) at src/mman/mmProcess.c:658 #9 0x080a8c5a in rtPrimGlue0 () #10 0x089cc548 in ?? () #11 0xbffb8dc4 in ?? () #12 0x00000000 in ?? () #13 0x00000000 in ?? () #14 0x080fddb8 in ?? () #15 0x00000002 in ?? () #16 0x0808adcf in launchSystem () at src/mman/mmInit.c:507 #17 0x08124f4d in ?? () #18 0x0895fa38 in ?? () (gdb) where #0 0xb7d8e07c in poll () from /lib/libc.so.6 #1 0x080cc699 in waitForIO () at src/plat/unxUtil.c:701 #2 0x080971a6 in preemptActiveProcess (terminateWithExtremePrejudice=0) at src/mman/mmProcess.c:334 #3 0x0809822a in waitOnSemaphore (semaphore=0xb7cd4544) at src/mman/mmProcess.c:658 #4 0x080a8c5a in rtPrimGlue0 () #5 0xb7cd4544 in ?? () #6 0xbffb8dc4 in ?? () #7 0x00000000 in ?? () #8 0x00000000 in ?? () #9 0x080fddb8 in ?? () #10 0x00000002 in ?? () #11 0x0808adcf in launchSystem () at src/mman/mmInit.c:507 #12 0x081275d5 in ?? () #13 0x089ca178 in ?? () (gdb) where #0 0xb7d8e07c in poll () from /lib/libc.so.6 #1 0x080cc4cd in signal_userfds () at src/plat/unxUtil.c:625 #2 0x080ad955 in handleAsyncRequests () at src/stack/services.c:183 #3 0x08097198 in preemptActiveProcess (terminateWithExtremePrejudice=0) at src/mman/mmProcess.c:335 #4 0x0809822a in waitOnSemaphore (semaphore=0xb7cd4544) at src/mman/mmProcess.c:658 #5 0x080a8c5a in rtPrimGlue0 () #6 0xb7cd4544 in ?? () #7 0xbffb8dc4 in ?? () #8 0x00000000 in ?? () #9 0x00000000 in ?? () #10 0x080fddb8 in ?? () #11 0x00000002 in ?? () #12 0x0808adcf in launchSystem () at src/mman/mmInit.c:507 (gdb) where #0 0xb7d8e07c in poll () from /lib/libc.so.6 #1 0x080cc81f in waitForIOWithTimeout (fd=0, rwx_flags=0, rwx_results=0x0, milliseconds=0) at src/plat/unxUtil.c:769 #2 0x080e18f1 in getXinputForDisplay (display=0x8117688) at src/plat/x11Win.c:255 #3 0x080dfa18 in xDisplaysDo (func=0x80e1870 <getXinputForDisplay>) at src/plat/x11Resource.c:843 #4 0x080e1910 in getXinput () at src/plat/x11Win.c:279 #5 0x080e192b in pdSynchronizeInputGUI () at src/plat/x11Win.c:302 #6 0x080ad955 in handleAsyncRequests () at src/stack/services.c:183 #7 0x08097198 in preemptActiveProcess (terminateWithExtremePrejudice=0) at src/mman/mmProcess.c:335 #8 0x0809822a in waitOnSemaphore (semaphore=0x89cc548) at src/mman/mmProcess.c:658 #9 0x080a8c5a in rtPrimGlue0 () #10 0x089cc548 in ?? () #11 0xbffb8dc4 in ?? () #12 0x00000000 in ?? () #13 0x00000000 in ?? () #14 0x080fddb8 in ?? () #15 0x00000002 in ?? () #16 0x0808adcf in launchSystem () at src/mman/mmInit.c:507 #17 0x08124f4d in ?? () ---------------------------------------------------- process 0x81d0d10 priority: 50 frame 0xbfcc2858 a(n) Semaphore wait frame 0xbfcc286c a(n) Delay wait frame 0xbfcc2884 a(n) BlockClosure [] in ProcessMonitorClient>>spawnNextSampler frame 0xbfcc28a0 a(n) BlockClosure on:do: frame 0xbfcc28b8 a(n) BlockClosure [] in Process class>>forBlock:priority: process 0x897a42c priority: 50 suspendedContext is nil process 0x8a322f0 priority: 50 context 0xb7824e5c Semaphore>>wait context 0xb78203d4 EventQueue>>next context 0xb78203bc WindowManager>>processNextEvent context 0x08a2f428 [] in WindowManager>>newProcess context 0x08a31a2c BlockClosure>>on:do: context 0x0892828c [] in WindowManager>>newProcess context 0x08a31a38 BlockClosure>>on:do: context 0x08a5f3e0 [] in Process class>>forBlock:priority: process 0x8ba2060 priority: 50 frame 0xbfcba86c a(n) Semaphore wait frame 0xbfcba888 a(n) EventQueue next frame 0xbfcba8a0 a(n) WindowManager processNextEvent frame 0xbfcba8b8 a(n) BlockClosure [] in WindowManager>>newProcess context 0x08ba2564 BlockClosure>>on:do: context 0x08b9717c [] in WindowManager>>newProcess context 0x08ba254c BlockClosure>>on:do: context 0x08ba2534 [] in Process class>>forBlock:priority: process 0x8c11c78 priority: 100 frame 0xbfcc18a4 a(n) Semaphore wait frame 0xbfcc18b8 a(n) BlockClosure [] in Delay class>>initializeTimingProcess context 0x08c1241c BlockClosure>>on:do: context 0x08c1250c [] in Process class>>forBlock:priority: process 0x9118c7c priority: 85 context 0x09119900 Semaphore>>wait context 0xb71688ec [] in CCallback class>>installForeignCallbackProcess context 0xb7168904 BlockClosure>>on:do: context 0xb728f8d8 [] in Process class>>forBlock:priority: process 0x9118cac priority: 89 context 0x09118cb8 Semaphore>>wait context 0x09172a84 [] in CCallback class>>installCallbackProcess context 0x09172a9c BlockClosure>>on:do: context 0x09175cac [] in CCallback class>>installCallbackProcess context 0x09175cd0 BlockClosure>>on:do: context 0xb71676a4 [] in CCallback class>>installCallbackProcess context 0xb71676f8 BlockClosure>>on:do: context 0xb7167710 [] in Process class>>forBlock:priority: process 0x9119954 priority: 90 context 0xb7841224 Semaphore>>wait context 0xb70ac9cc InputState>>run context 0xb70ac9d8 [] in InputState class>>install context 0xb70aca2c BlockClosure>>on:do: context 0xb728f740 [] in Process class>>forBlock:priority: process 0x911ea84 priority: 90 frame 0xbfcbe89c a(n) Semaphore wait frame 0xbfcbe8b8 a(n) BlockClosure [] in ObjectMemory class>>installScavengeNotification context 0xb74780c0 BlockClosure>>on:do: context 0x0911ea90 [] in Process class>>forBlock:priority: process 0x911eac0 priority: 10 frame 0xbfcbf8a4 a(n) Semaphore wait frame 0xbfcbf8b8 a Class (ObjectMemory) 0x0 no selector context 0xb70d0a98 [] in ObjectMemory class>>installIdleLoopProcess context 0xb70d0d2c BlockClosure>>on:do: context 0x0911eacc [] in Process class>>forBlock:priority: process 0x911eb14 priority: 90 context 0x09118cdc Semaphore>>wait context 0x09172988 [] in ExternalProcess class>>startReaper context 0x091729a0 BlockClosure>>on:do: context 0x0911eb20 [] in Process class>>forBlock:priority: process 0x911eb44 priority: 91 context 0x081cfaa8 Semaphore>>wait context 0x09119c48 ObjectMemory class>>lowSpaceLoop context 0x09119c60 [] in ObjectMemory class>>installLowSpaceProcess context 0x09119c78 BlockClosure>>on:do: context 0x0911eb74 [] in Process class>>forBlock:priority: process 0x9172a24 priority: 98 frame 0xbfcbc89c a(n) Semaphore wait frame 0xbfcbc8b8 a Class (WeakArray) 0x0 no selector context 0xb728f848 [] in WeakArray class>>installFinalizationMechanism context 0xb728f86c BlockClosure>>on:do: context 0xb728f890 [] in Process class>>forBlock:priority: process 0xb70b8024 priority: 50 context 0xb7824ab4 Semaphore>>wait context 0xb7821b14 EventQueue>>next context 0xb7821afc WindowManager>>processNextEvent context 0xb70d6780 [] in WindowManager>>newProcess context 0x091162dc BlockClosure>>on:do: context 0xb70d46c8 [] in WindowManager>>newProcess context 0x091162e8 BlockClosure>>on:do: context 0xb70b8120 [] in Process class>>forBlock:priority: process 0xb782437c priority: 50 frame 0xbfcbb804 a(n) Semaphore wait frame 0xbfcbb820 a(n) EventQueue next frame 0xbfcbb838 a(n) WindowManager processNextEvent frame 0xbfcbb850 a(n) BlockClosure [] in WindowManager>>newProcess frame 0xbfcbb86c a(n) BlockClosure on:do: frame 0xbfcbb884 a(n) BlockClosure [] in WindowManager>>newProcess frame 0xbfcbb8a0 a(n) BlockClosure on:do: frame 0xbfcbb8b8 a(n) BlockClosure [] in Process class>>forBlock:priority: process 0xb78420dc priority: 50 context 0xb7824bbc Semaphore>>wait context 0xb7824bb0 EventQueue>>next context 0xb7824b98 WindowManager>>processNextEvent context 0xb7824b74 [] in WindowManager>>newProcess context 0xb7822960 BlockClosure>>on:do: context 0xb7820ae8 [] in WindowManager>>newProcess context 0xb7822954 BlockClosure>>on:do: context 0xb78420d0 [] in Process class>>forBlock:priority: process 0xb784d080 priority: 50 context 0xb7824f10 Semaphore>>wait context 0xb7824f04 EventQueue>>next context 0xb7824eec WindowManager>>processNextEvent context 0xb7824ec8 [] in WindowManager>>newProcess context 0xb7824eb0 BlockClosure>>on:do: context 0xb7824e98 [] in WindowManager>>newProcess context 0xb7824e80 BlockClosure>>on:do: context 0xb784cf30 [] in Process class>>forBlock:priority: process 0xb784d524 priority: 50 suspendedContext is nil ---------------------------------------------------- process 0x894952c priority: 50 suspendedContext is nil process 0x8a013f0 priority: 50 frame 0xbffb9d6c a(n) Semaphore wait frame 0xbffb9d88 a(n) EventQueue next frame 0xbffb9da0 a(n) WindowManager processNextEvent frame 0xbffb9db8 a(n) BlockClosure [] in WindowManager>>newProcess context 0x08a00b2c BlockClosure>>on:do: context 0x088f738c [] in WindowManager>>newProcess context 0x08a00b38 BlockClosure>>on:do: context 0x08a2e4e0 [] in Process class>>forBlock:priority: process 0x8b71160 priority: 50 suspendedContext is nil process 0x8be0d78 priority: 100 frame 0xbffc0da4 a(n) Semaphore wait frame 0xbffc0db8 a(n) BlockClosure [] in Delay class>>initializeTimingProcess context 0x08be151c BlockClosure>>on:do: context 0x08be160c [] in Process class>>forBlock:priority: process 0x96e4024 priority: 10 suspendedContext is nil process 0x96e406c priority: 90 suspendedContext is nil process 0x96e6b98 priority: 89 suspendedContext is nil process 0x96e7810 priority: 90 suspendedContext is nil process 0x96f6528 priority: 90 suspendedContext is nil process 0x9758940 priority: 98 suspendedContext is nil process 0x99711a8 priority: 50 frame 0xbffc2d6c a(n) Semaphore wait frame 0xbffc2d88 a(n) EventQueue next frame 0xbffc2da0 a(n) WindowManager processNextEvent frame 0xbffc2db8 a(n) BlockClosure [] in WindowManager>>newProcess context 0x09acc500 BlockClosure>>on:do: context 0x09abd5c0 [] in WindowManager>>newProcess context 0x09acc4f4 BlockClosure>>on:do: context 0x09971064 [] in Process class>>forBlock:priority: process 0x9ac53a8 priority: 49 suspendedContext is nil process 0x9ac95b4 priority: 50 suspendedContext is nil process 0xb7b4651c priority: 98 frame 0xbffbad50 a(n) Semaphore wait frame 0xbffbad6c a Class (WeakArray) outerFinalizationLoop frame 0xbffbad84 a(n) BlockClosure [] in WeakArray class>>installFinalizationMechanism frame 0xbffbada0 a(n) BlockClosure on:do: frame 0xbffbadb8 a(n) BlockClosure [] in Process class>>forBlock:priority: process 0xb7cd0fbc priority: 90 frame 0xbffbed58 a(n) Semaphore wait frame 0xbffbed70 a(n) InputState run frame 0xbffbed84 a(n) BlockClosure [] in InputState class>>install frame 0xbffbeda0 a(n) BlockClosure on:do: frame 0xbffbedb8 a(n) BlockClosure [] in Process class>>forBlock:priority: process 0xb7cd1c64 priority: 89 context 0xb7cd1c58 Semaphore>>wait context 0xb7b465ac [] in CCallback class>>installCallbackProcess context 0xb7b45460 BlockClosure>>on:do: context 0xb7b45448 [] in CCallback class>>installCallbackProcess context 0xb797cd54 BlockClosure>>on:do: context 0xb797cd3c [] in CCallback class>>installCallbackProcess context 0xb797cd24 BlockClosure>>on:do: context 0xb7c9894c [] in Process class>>forBlock:priority: process 0xb7cd1c94 priority: 85 context 0xb7cd0ff8 Semaphore>>wait context 0xb797cda8 [] in CCallback class>>installForeignCallbackProcess context 0xb797cd90 BlockClosure>>on:do: context 0xb7c989b8 [] in Process class>>forBlock:priority: process 0xb7cd4568 priority: 90 context 0xb7cd1c34 Semaphore>>wait context 0xb7b46540 [] in ExternalProcess class>>startReaper context 0xb7b454f0 BlockClosure>>on:do: context 0xb7cb976c [] in Process class>>forBlock:priority: process 0xb7cd4a54 priority: 10 frame 0xbffbdd58 a(n) Semaphore wait frame 0xbffbdd6c a Class (ObjectMemory) idleLoop frame 0xbffbdd84 a(n) BlockClosure [] in ObjectMemory class>>installIdleLoopProcess frame 0xbffbdda0 a(n) BlockClosure on:do: frame 0xbffbddb8 a(n) BlockClosure [] in Process class>>forBlock:priority: process 0xb7cd4b98 priority: 91 context 0x081c0b3c Semaphore>>wait context 0xb7cd0c08 ObjectMemory class>>lowSpaceLoop context 0xb7cd0bf0 [] in ObjectMemory class>>installLowSpaceProcess context 0xb7cd0bd8 BlockClosure>>on:do: context 0xb7ccaf74 [] in Process class>>forBlock:priority: process 0xb7cd4bbc priority: 90 frame 0xbffbfd68 a(n) Semaphore wait frame 0xbffbfd84 a(n) BlockClosure [] in ObjectMemory class>>installScavengeNotification frame 0xbffbfda0 a(n) BlockClosure on:do: frame 0xbffbfdb8 a(n) BlockClosure [] in Process class>>forBlock:priority: ---------------------------------------------------- #dumpAllProcessStacks July 11, 2006 3:22:58 pm GemBuilder for Smalltalk 7.0.1 of June 14, 2006. ================================= Process priority: 50 (hash id = 14160) --------------------------------- [1] Process>>resume Receiver: a Process Temporaries: Context PC = 4 --------------------------------- [2] BlockClosure>>forkAt: Receiver: a BlockClosure Temporaries: priority {98} client = 98 forkedProcess {3447} client = a Process in nil Context PC = 8 --------------------------------- [3] GemStone.Gbs.GbsStackDumper class>>printAllProcessStacksOn: Receiver: GemStone.Gbs.GbsStackDumper Temporaries: aStream {9897} client = an ExternalWriteStream on 'StacksAtJuly-11-2006-15.22.58.855.txt' fastStream {325} client = a WriteStream mutex {1798} client = a GbxDelay requestingProcess {14160} client = a Process in Process>>resume done {1} client = nil Context PC = 38 --------------------------------- [4] GemStone.Gbs.GbsStackDumper class>>dumpAllProcessStacksToFileNamed: Receiver: GemStone.Gbs.GbsStackDumper Temporaries: nameString {14688} client = 'StacksAtJuly-11-2006-15.22.58.855.txt' date {9902} client = July 11, 2006 time {11375} client = 3:22:58 pm aStream {9897} client = an ExternalWriteStream on 'StacksAtJuly-11-2006-15.22.58.855.txt' file {15794} client = an UnixFilename('StacksAtJuly-11-2006-15.22.58.855.txt') Context PC = 52 --------------------------------- [5] GemStone.Gbs.GbsStackDumper class>>dumpAllProcessStacks Receiver: GemStone.Gbs.GbsStackDumper Temporaries: filename {14688} client = 'StacksAtJuly-11-2006-15.22.58.855.txt' Context PC = 35 --------------------------------- [6] TextCollector>>unboundMethod Receiver: a TextCollector Temporaries: Context PC = 3 --------------------------------- [7] TextCollector(Object)>>performMethod:arguments: Receiver: a TextCollector Temporaries: method {16141} client = AnnotatedMethod TextCollector>>unboundMethod args {7147} client = #() Context PC = 5 --------------------------------- [8] TextCollector(Object)>>performMethod: Receiver: a TextCollector Temporaries: method {16141} client = AnnotatedMethod TextCollector>>unboundMethod Context PC = 5 --------------------------------- [9] TextEditorController(ParagraphEditor)>>evaluateCompiled: Receiver: a TextEditorController Temporaries: aMethod {16141} client = AnnotatedMethod TextCollector>>unboundMethod context {1} client = nil Context PC = 13 --------------------------------- [10] optimized [] in ParagraphEditor>>evaluateSelection Receiver: an UndefinedObject Temporaries: self {4392} client = a TextEditorController code {16141} client = AnnotatedMethod TextCollector>>unboundMethod Context PC = 7 --------------------------------- [11] BlockClosure>>ensure: Receiver: a BlockClosure Temporaries: aBlock {13783} client = BlockClosure [] in Cursor>>showWhile: result {1} client = nil Context PC = 4 --------------------------------- [12] Cursor>>showWhile: Receiver: a Cursor Temporaries: aBlock {2004} client = BlockClosure [] in ParagraphEditor>>evaluateSelection oldcursor {13602} client = Cursor normal Context PC = 23 --------------------------------- [13] TextEditorController(ParagraphEditor)>>evaluateSelection Receiver: a TextEditorController Temporaries: code {16141} client = AnnotatedMethod TextCollector>>unboundMethod result {1} client = nil Context PC = 14 --------------------------------- [14] optimized [] in ParagraphEditor>>doIt Receiver: an UndefinedObject Temporaries: self {4392} client = a TextEditorController Context PC = 6 --------------------------------- [15] BlockClosure>>on:do: Receiver: a BlockClosure Temporaries: anExceptionSelector {9946} client = CompilationError handlerBlock {5146} client = BlockClosure [] in ParagraphEditor>>doIt Context PC = 18 --------------------------------- [16] TextEditorController(ParagraphEditor)>>doIt Receiver: a TextEditorController Temporaries: Context PC = 20 --------------------------------- [17] TextEditorController>>dispatchMenuSymbol: Receiver: a TextEditorController Temporaries: menuSelection {4745} client = #doIt Context PC = 10 --------------------------------- [18] TextEditorController>>dispatchMenuSelection: Receiver: a TextEditorController Temporaries: menuSelection {4745} client = #doIt Context PC = 20 --------------------------------- [19] TextEditorController(ControllerWithMenu)>>processMenu:at:centered: Receiver: a TextEditorController Temporaries: aMenu {15705} client = a Menu aPoint {11229} client = 292@217 centered {3} client = true valueResult {16258} client = a MenuItem 'Do it' Context PC = 41 --------------------------------- [20] TextEditorController(ControllerWithMenu)>>processMenuAt:centered: Receiver: a TextEditorController Temporaries: aPoint {11229} client = 292@217 centered {3} client = true Context PC = 9 --------------------------------- [21] TextEditorController(ControllerWithMenu)>>yellowButtonPressedEvent: Receiver: a TextEditorController Temporaries: event {5342} client = a YellowButtonPressedEvent Context PC = 13 --------------------------------- [22] TextEditorController(ParagraphEditor)>>yellowButtonPressedEvent: Receiver: a TextEditorController Temporaries: event {5342} client = a YellowButtonPressedEvent Context PC = 9 --------------------------------- [23] TextEditorController>>yellowButtonPressedEvent: Receiver: a TextEditorController Temporaries: anEvent {5342} client = a YellowButtonPressedEvent Context PC = 19 --------------------------------- [24] YellowButtonPressedEvent>>dispatchTo: Receiver: a YellowButtonPressedEvent Temporaries: anObject {4392} client = a TextEditorController Context PC = 4 --------------------------------- [25] TextEditorController(ControllerWithMenu)>>handleEvent: Receiver: a TextEditorController Temporaries: anEvent {5342} client = a YellowButtonPressedEvent Context PC = 38 --------------------------------- [26] EventDispatcher>>dispatch:to: Receiver: an EventDispatcher Temporaries: event {5342} client = a YellowButtonPressedEvent object {4392} client = a TextEditorController tmp {1} client = nil Context PC = 10 --------------------------------- [27] EventDispatcher>>dispatchEvent: Receiver: an EventDispatcher Temporaries: event {5342} client = a YellowButtonPressedEvent objectWantingControl {4392} client = a TextEditorController targetKeyboardProcessor {1} client = nil Context PC = 113 --------------------------------- [28] YellowButtonPressedEvent(Event)>>dispatch Receiver: a YellowButtonPressedEvent Temporaries: Context PC = 16 --------------------------------- [29] YellowButtonPressedEvent(Event)>>dispatchForWindowManager: Receiver: a YellowButtonPressedEvent Temporaries: aWinMgr {9047} client = a WindowManager Context PC = 4 --------------------------------- [30] optimized [] in WindowManager>>safelyDispatchForWindowManager: Receiver: an UndefinedObject Temporaries: event {5342} client = a YellowButtonPressedEvent self {9047} client = a WindowManager Context PC = 6 --------------------------------- [31] BlockClosure>>on:do: Receiver: a BlockClosure Temporaries: anExceptionSelector {8473} client = BadControllerError handlerBlock {8132} client = BlockClosure [] in WindowManager>>safelyDispatchForWindowManager: Context PC = 18 --------------------------------- [32] WindowManager>>safelyDispatchForWindowManager: Receiver: a WindowManager Temporaries: event {5342} client = a YellowButtonPressedEvent Context PC = 13 --------------------------------- [33] WindowManager>>processNextEvent Receiver: a WindowManager Temporaries: event {5342} client = a YellowButtonPressedEvent Context PC = 9 --------------------------------- [34] optimized [] in [] in WindowManager>>newProcess Receiver: an UndefinedObject Temporaries: self {9047} client = a WindowManager Context PC = 13 --------------------------------- [35] BlockClosure>>on:do: Receiver: a BlockClosure Temporaries: anExceptionSelector {3873} client = TerminateException handlerBlock {15874} client = BlockClosure [] in [] in WindowManager>>newProcess Context PC = 18 --------------------------------- [36] optimized [] in WindowManager>>newProcess Receiver: an UndefinedObject Temporaries: self {9047} client = a WindowManager Context PC = 15 --------------------------------- [37] BlockClosure>>on:do: Receiver: a BlockClosure Temporaries: anExceptionSelector {3873} client = TerminateException handlerBlock {14659} client = BlockClosure [] in [] in Process class>>forBlock:priority: Context PC = 18 --------------------------------- [38] optimized [] in Process class>>forBlock:priority: Receiver: an UndefinedObject Temporaries: aBlock {9072} client = BlockClosure [] in WindowManager>>newProcess Context PC = 9 ================================= Process priority: 100 (hash id = 9374) --------------------------------- [1] Semaphore>>wait Receiver: a Semaphore Temporaries: Context PC = 1 --------------------------------- [2] optimized [] in Delay class>>initializeTimingProcess Receiver: an UndefinedObject Temporaries: Context PC = 8 --------------------------------- [3] BlockClosure>>on:do: Receiver: a BlockClosure Temporaries: anExceptionSelector {3873} client = TerminateException handlerBlock {14659} client = BlockClosure [] in [] in Process class>>forBlock:priority: Context PC = 18 --------------------------------- [4] optimized [] in Process class>>forBlock:priority: Receiver: an UndefinedObject Temporaries: aBlock {5443} client = BlockClosure [] in Delay class>>initializeTimingProcess Context PC = 9 ================================= Process priority: 98 (hash id = 11108) --------------------------------- [1] Semaphore>>wait Receiver: a Semaphore Temporaries: Context PC = 4 --------------------------------- [2] WeakArray class>>outerFinalizationLoop Receiver: Core.WeakArray Temporaries: theBereaved {14059} client = WeakArray (0 a PostgreSQLConnection) ratchet {13139} client = Semaphore () Context PC = 11 --------------------------------- [3] optimized [] in WeakArray class>>installFinalizationMechanism Receiver: an UndefinedObject Temporaries: self {8743} client = WeakArray Context PC = 6 --------------------------------- [4] BlockClosure>>on:do: Receiver: a BlockClosure Temporaries: anExceptionSelector {3873} client = TerminateException handlerBlock {14659} client = BlockClosure [] in [] in Process class>>forBlock:priority: Context PC = 18 --------------------------------- [5] optimized [] in Process class>>forBlock:priority: Receiver: an UndefinedObject Temporaries: aBlock {2838} client = BlockClosure [] in WeakArray class>>installFinalizationMechanism Context PC = 9 ================================= Process priority: 91 (hash id = 7122) --------------------------------- [1] Semaphore>>wait Receiver: a Semaphore Temporaries: Context PC = 4 --------------------------------- [2] ObjectMemory class>>lowSpaceLoop Receiver: Kernel.ObjectMemory Temporaries: Context PC = 8 --------------------------------- [3] optimized [] in ObjectMemory class>>installLowSpaceProcess Receiver: an UndefinedObject Temporaries: self {14813} client = ObjectMemory Context PC = 6 --------------------------------- [4] BlockClosure>>on:do: Receiver: a BlockClosure Temporaries: anExceptionSelector {3873} client = TerminateException handlerBlock {14659} client = BlockClosure [] in [] in Process class>>forBlock:priority: Context PC = 18 --------------------------------- [5] optimized [] in Process class>>forBlock:priority: Receiver: an UndefinedObject Temporaries: aBlock {1194} client = BlockClosure [] in ObjectMemory class>>installLowSpaceProcess Context PC = 9 ================================= Process priority: 90 (hash id = 4729) --------------------------------- [1] Semaphore>>wait Receiver: a Semaphore Temporaries: Context PC = 1 --------------------------------- [2] optimized [] in ExternalProcess class>>startReaper Receiver: an UndefinedObject Temporaries: sem {4512} client = Semaphore (a Process in Semaphore>>wait) self {1823} client = UnixProcess Context PC = 10 --------------------------------- [3] BlockClosure>>on:do: Receiver: a BlockClosure Temporaries: anExceptionSelector {3873} client = TerminateException handlerBlock {14659} client = BlockClosure [] in [] in Process class>>forBlock:priority: Context PC = 18 --------------------------------- [4] optimized [] in Process class>>forBlock:priority: Receiver: an UndefinedObject Temporaries: aBlock {2677} client = BlockClosure [] in ExternalProcess class>>startReaper Context PC = 9 ================================= Process priority: 90 (hash id = 10988) --------------------------------- [1] Semaphore>>wait Receiver: a Semaphore Temporaries: Context PC = 1 --------------------------------- [2] InputState>>run Receiver: an InputState Temporaries: event {5628} client = #(0 0 0 0 0 0 0 0 0 an UninterpretedBytes 0 nil nil nil nil nil) Context PC = 38 --------------------------------- [3] optimized [] in InputState class>>install Receiver: an UndefinedObject Temporaries: Context PC = 3 --------------------------------- [4] BlockClosure>>on:do: Receiver: a BlockClosure Temporaries: anExceptionSelector {3873} client = TerminateException handlerBlock {14659} client = BlockClosure [] in [] in Process class>>forBlock:priority: Context PC = 18 --------------------------------- [5] optimized [] in Process class>>forBlock:priority: Receiver: an UndefinedObject Temporaries: aBlock {12322} client = BlockClosure [] in InputState class>>install Context PC = 9 ================================= Process priority: 90 (hash id = 14854) --------------------------------- [1] Semaphore>>wait Receiver: a Semaphore Temporaries: Context PC = 4 --------------------------------- [2] optimized [] in ObjectMemory class>>installScavengeNotification Receiver: an UndefinedObject Temporaries: scavengeSemaphore {11716} client = Semaphore () self {14813} client = ObjectMemory Context PC = 10 --------------------------------- [3] BlockClosure>>on:do: Receiver: a BlockClosure Temporaries: anExceptionSelector {3873} client = TerminateException handlerBlock {14659} client = BlockClosure [] in [] in Process class>>forBlock:priority: Context PC = 18 --------------------------------- [4] optimized [] in Process class>>forBlock:priority: Receiver: an UndefinedObject Temporaries: aBlock {16140} client = BlockClosure [] in ObjectMemory class>>installScavengeNotification Context PC = 9 ================================= Process priority: 89 (hash id = 11354) --------------------------------- [1] Semaphore>>wait Receiver: a Semaphore Temporaries: Context PC = 1 --------------------------------- [2] optimized [] in [] in [] in CCallback class>>installCallbackProcess Receiver: an UndefinedObject Temporaries: self {5147} client = CCallback deadProcess {1} client = nil Context PC = 7 --------------------------------- [3] BlockClosure>>on:do: Receiver: a BlockClosure Temporaries: anExceptionSelector {982} client = FinalizeCallbackProcessNotification handlerBlock {11364} client = BlockClosure [] in [] in [] in CCallback class>>installCallbackProcess Context PC = 18 --------------------------------- [4] optimized [] in [] in CCallback class>>installCallbackProcess Receiver: an UndefinedObject Temporaries: self {5147} client = CCallback deadProcess {1} client = nil Context PC = 17 --------------------------------- [5] BlockClosure>>on:do: Receiver: a BlockClosure Temporaries: anExceptionSelector {7689} client = UnhandledException handlerBlock {6402} client = BlockClosure [] in [] in CCallback class>>installCallbackProcess Context PC = 18 --------------------------------- [6] optimized [] in CCallback class>>installCallbackProcess Receiver: an UndefinedObject Temporaries: deadProcess {5147} client = CCallback self {15612} client = #(BlockClosure [] in CCallback class>>installCallbackProcess) callbackProcessBlock {1} client = nil Context PC = 23 --------------------------------- [7] BlockClosure>>on:do: Receiver: a BlockClosure Temporaries: anExceptionSelector {3873} client = TerminateException handlerBlock {14659} client = BlockClosure [] in [] in Process class>>forBlock:priority: Context PC = 18 --------------------------------- [8] optimized [] in Process class>>forBlock:priority: Receiver: an UndefinedObject Temporaries: aBlock {7518} client = BlockClosure [] in CCallback class>>installCallbackProcess Context PC = 9 ================================= Process priority: 85 (hash id = 2732) --------------------------------- [1] Semaphore>>wait Receiver: a Semaphore Temporaries: Context PC = 1 --------------------------------- [2] optimized [] in CCallback class>>installForeignCallbackProcess Receiver: an UndefinedObject Temporaries: initSemaphore {2184} client = Semaphore () pauseSemaphore {3657} client = Semaphore (a Process in Semaphore>>wait) Context PC = 8 --------------------------------- [3] BlockClosure>>on:do: Receiver: a BlockClosure Temporaries: anExceptionSelector {3873} client = TerminateException handlerBlock {14659} client = BlockClosure [] in [] in Process class>>forBlock:priority: Context PC = 18 --------------------------------- [4] optimized [] in Process class>>forBlock:priority: Receiver: an UndefinedObject Temporaries: aBlock {10474} client = BlockClosure [] in CCallback class>>installForeignCallbackProcess Context PC = 9 ================================= Process priority: 50 (hash id = 863) --------------------------------- [1] Semaphore>>wait Receiver: a Semaphore Temporaries: Context PC = 1 --------------------------------- [2] EventQueue>>next Receiver: an EventQueue Temporaries: isEmpty {1} client = nil value {1} client = nil Context PC = 8 --------------------------------- [3] WindowManager>>processNextEvent Receiver: a WindowManager Temporaries: event {1} client = nil Context PC = 4 --------------------------------- [4] optimized [] in [] in WindowManager>>newProcess Receiver: an UndefinedObject Temporaries: self {14350} client = a WindowManager Context PC = 13 --------------------------------- [5] BlockClosure>>on:do: Receiver: a BlockClosure Temporaries: anExceptionSelector {3873} client = TerminateException handlerBlock {178} client = BlockClosure [] in [] in WindowManager>>newProcess Context PC = 18 --------------------------------- [6] optimized [] in WindowManager>>newProcess Receiver: an UndefinedObject Temporaries: self {14350} client = a WindowManager Context PC = 15 --------------------------------- [7] BlockClosure>>on:do: Receiver: a BlockClosure Temporaries: anExceptionSelector {3873} client = TerminateException handlerBlock {14659} client = BlockClosure [] in [] in Process class>>forBlock:priority: Context PC = 18 --------------------------------- [8] optimized [] in Process class>>forBlock:priority: Receiver: an UndefinedObject Temporaries: aBlock {9760} client = BlockClosure [] in WindowManager>>newProcess Context PC = 9 ================================= Process priority: 10 (hash id = 4974) --------------------------------- [1] Semaphore>>wait Receiver: a Semaphore Temporaries: Context PC = 4 --------------------------------- [2] ObjectMemory class>>idleLoop Receiver: Kernel.ObjectMemory Temporaries: Context PC = 8 --------------------------------- [3] optimized [] in ObjectMemory class>>installIdleLoopProcess Receiver: an UndefinedObject Temporaries: self {14813} client = ObjectMemory Context PC = 6 --------------------------------- [4] BlockClosure>>on:do: Receiver: a BlockClosure Temporaries: anExceptionSelector {3873} client = TerminateException handlerBlock {14659} client = BlockClosure [] in [] in Process class>>forBlock:priority: Context PC = 18 --------------------------------- [5] optimized [] in Process class>>forBlock:priority: Receiver: an UndefinedObject Temporaries: aBlock {2224} client = BlockClosure [] in ObjectMemory class>>installIdleLoopProcess Context PC = 9 <<End of stack dump>> |
Martin McClure wrote:
> This looks like a fairly nasty problem, I hope it can be addressed soon. > > On Linux (and we've also seen this on Solaris, though I think that the > X display may have been on Linux) VW 7.4.1 sometimes consumes a CPU > for no apparent reason. I have the same problem on Ubuntu Dapper, kernel 2.6.15, intel mobile pentium 4, xorg 7.0. It only happens when I connect to store (no matter what repository) and immediately disappears when I disconnect. I have tried to find which VW process is responsible for this without success. |
Maybe the vm is sending a stream of input events to the
image. Try putting a watchpoint probe into InputState>>process: and see if you are getting too many input events. Terry =========================================================== Terry Raymond Smalltalk Professional Debug Package Crafted Smalltalk 80 Lazywood Ln. Tiverton, RI 02878 (401) 624-4517 [hidden email] <http://www.craftedsmalltalk.com> =========================================================== > -----Original Message----- > From: Damien Cassou [mailto:[hidden email]] > Sent: Thursday, July 13, 2006 5:31 AM > To: [hidden email] > Subject: Re: [BUG] Unix VW7.4.1 sometimes runs hot > > Martin McClure wrote: > > This looks like a fairly nasty problem, I hope it can be addressed soon. > > > > On Linux (and we've also seen this on Solaris, though I think that the > > X display may have been on Linux) VW 7.4.1 sometimes consumes a CPU > > for no apparent reason. > > I have the same problem on Ubuntu Dapper, kernel 2.6.15, intel mobile > pentium 4, xorg 7.0. It only happens when I connect to store (no matter > what repository) and immediately disappears when I disconnect. I have > tried to find which VW process is responsible for this without success. |
In reply to this post by Damien Cassou-3-2
Damien Cassou wrote:
> > I have the same problem on Ubuntu Dapper, kernel 2.6.15, intel mobile > pentium 4, xorg 7.0. It only happens when I connect to store (no matter > what repository) and immediately disappears when I disconnect. I have > tried to find which VW process is responsible for this without success. Hey, it does stop if you log out of Store! Thanks for the tip! If I log into and out of Store, it sometimes runs hot and sometimes doesn't. At the moment, it's running hot after most logins, but on previous launches it was a minority. -Martin |
In reply to this post by Terry Raymond
Terry Raymond wrote:
> Maybe the vm is sending a stream of input events to the > image. > > Try putting a watchpoint probe into InputState>>process: > and see if you are getting too many input events. Nope, no input events at all (unless I move the mouse or something), and still running hot. I've been unable to find any Process that is running. As an experiment, I opened a ProcessMonitor, stopping all user Processes (except the ProcessMonitor itself) then opened debuggers on all system Processes, saving the InputStateProcess for last. I believe I succeeded in suspending all processes in the system other than the ProcessMonitor, but the VM is still running hot. -Martin |
In reply to this post by Martin McClure
Does it happen with PostgreSQL, Oracle, other?
Dave Martin McClure wrote: > Damien Cassou wrote: >> >> I have the same problem on Ubuntu Dapper, kernel 2.6.15, intel mobile >> pentium 4, xorg 7.0. It only happens when I connect to store (no matter >> what repository) and immediately disappears when I disconnect. I have >> tried to find which VW process is responsible for this without success. > > Hey, it does stop if you log out of Store! Thanks for the tip! > > If I log into and out of Store, it sometimes runs hot and sometimes > doesn't. At the moment, it's running hot after most logins, but on > previous launches it was a minority. > > -Martin > > |
In reply to this post by Martin McClure
Martin
I guess it is not controllable from the image. Looks like you will need a VM debugger. Terry =========================================================== Terry Raymond Smalltalk Professional Debug Package Crafted Smalltalk 80 Lazywood Ln. Tiverton, RI 02878 (401) 624-4517 [hidden email] <http://www.craftedsmalltalk.com> =========================================================== > -----Original Message----- > From: Martin McClure [mailto:[hidden email]] > Sent: Thursday, July 13, 2006 1:20 PM > To: Terry Raymond > Cc: 'Damien Cassou'; [hidden email] > Subject: Re: [BUG] Unix VW7.4.1 sometimes runs hot > > Terry Raymond wrote: > > Maybe the vm is sending a stream of input events to the > > image. > > > > Try putting a watchpoint probe into InputState>>process: > > and see if you are getting too many input events. > > Nope, no input events at all (unless I move the mouse or something), and > still running hot. > > I've been unable to find any Process that is running. As an experiment, > I opened a ProcessMonitor, stopping all user Processes (except the > ProcessMonitor itself) then opened debuggers on all system Processes, > saving the InputStateProcess for last. I believe I succeeded in > suspending all processes in the system other than the ProcessMonitor, > but the VM is still running hot. > > -Martin |
In reply to this post by Dave Stevenson-2
Dave Stevenson wrote:
> Does it happen with PostgreSQL, Oracle, other? I'm using only PostgreSQL. I just reproduced the problem logging into the Cincom public repository. Once the VM starts running hot, it seems to run hot after every Store login. If I quit and re-launch the same image, it may take a few Store logins before the VM starts running hot, or it may run hot the first time. -Martin |
Martin,
>I'm using only PostgreSQL. > >I just reproduced the problem logging into the Cincom public repository. Wait a second.... Are you by chance using the MacOSX look? If so, then the problem is probably not associated with ANYTHING you may think. Instead, it is remaining processes running for the (stupid) jelly on the progress bar. We have a fix for that, which is in either 7.4.1 (or got slipped to 7.5, don't remember). And So It Goes Sames ______________________________________________________________________ Samuel S. Shuster [|] VisualWorks Engineering, GUI Project Smalltalk Enables Success -- What Are YOU Using? |
When I try to use the helptext: to set a tooltip on toolbar items or
even regular buttons, I get nothing. Do I need to do something more to make it work? -Carl Gundel, author of Liberty BASIC http://www.libertybasic.com |
Carl,
>When I try to use the helptext: to set a tooltip on toolbar items or >even regular buttons, I get nothing. Do I need to do something more to >make it work? Currently, in Pollock, the helpText isn't hooked up to anything. It awaits tools to activate. And So It Goes Sames ______________________________________________________________________ Samuel S. Shuster [|] VisualWorks Engineering, GUI Project Smalltalk Enables Success -- What Are YOU Using? |
In reply to this post by Samuel S. Shuster <sames@interaccess.com>
Samuel S. Shuster wrote:
>> I'm using only PostgreSQL. >> I just reproduced the problem logging into the Cincom public repository. >> > Wait a second.... Are you by chance using the MacOSX look? If so, then the > problem is probably not associated with ANYTHING you may think. Instead, it is > remaining processes running for the (stupid) jelly on the progress bar. We have > a fix for that, which is in either 7.4.1 (or got slipped to 7.5, don't > remember). > This is not my case. I use WindowsXP look. |
In reply to this post by Dave Stevenson-2
Dave Stevenson wrote:
> Does it happen with PostgreSQL, Oracle, other? PostgreSQL for me, never tried the others |
On 16/07/06, Damien Cassou <[hidden email]> wrote:
> Dave Stevenson wrote: > > Does it happen with PostgreSQL, Oracle, other? > PostgreSQL for me, never tried the others Needless to say, I feel a pang of guilt reading this. FWIW I've not seen the symptoms you mention with vw7.4.1nc connected to PostgreSQL repositories. I'm using Debian stable here. All the best, Bruce -- Make the most of your skills - with OpenSkills http://www.openskills.org/ |
I can reproduce it on a Fedora Core 4 (64bit but running the 32-bit VM).
I note that it doesn't run hot when connected to a local repository (on the same host) but does when connecting to any remote one. I've created AR#50994: "A remote Postgres connection makes the Linux VM run hot" for this issue. Thanks to all who reported the problem. Martin Bruce Badger wrote: > On 16/07/06, Damien Cassou <[hidden email]> wrote: > >> Dave Stevenson wrote: >> > Does it happen with PostgreSQL, Oracle, other? >> PostgreSQL for me, never tried the others > > > Needless to say, I feel a pang of guilt reading this. > > FWIW I've not seen the symptoms you mention with vw7.4.1nc connected > to PostgreSQL repositories. I'm using Debian stable here. > > All the best, > Bruce |
In reply to this post by Samuel S. Shuster <sames@interaccess.com>
Samuel S. Shuster wrote:
> Martin, > >> I'm using only PostgreSQL. >> >> I just reproduced the problem logging into the Cincom public repository. > > Wait a second.... Are you by chance using the MacOSX look? If so, then the > problem is probably not associated with ANYTHING you may think. Instead, it is > remaining processes running for the (stupid) jelly on the progress bar. We have > a fix for that, which is in either 7.4.1 (or got slipped to 7.5, don't > remember). No I'm using the MacOSX look. I'm using the default look, which on Linux is, what, the KDE look? :-) I think I've shown that the VM is *not* spending much of its time running Smalltalk while it runs hot. Regards, -Martin |
In reply to this post by kobetic
Martin Kobetic wrote:
> I can reproduce it on a Fedora Core 4 (64bit but running the 32-bit VM). > I note that it doesn't run hot when connected to a local repository (on > the same host) but does when connecting to any remote one. > > I've created AR#50994: "A remote Postgres connection makes the Linux VM > run hot" for this issue. Thanks to all who reported the problem. Thanks for the AR! -Martin |
In reply to this post by kobetic
On 18/07/06, Martin Kobetic <[hidden email]> wrote:
> I note that it doesn't run hot when connected to a local repository (on > the same host) but does when connecting to any remote one. Ah, OK. I can reproduce it now too. As you say, only for remote conections. If I start a clean VW7.4.1nc image and immediately connect to the public store, up goes the CPU usage. Simply disconnecting makes it go down again. I put a breakpoint in PostgreSQLConnection>>socketSession. The CPU goes hot at exactly the point when the socket connects. The CPU load vanishes again when the socket is closed. Here is a simple test case that works every time for me in a work space: connection := NativeSocketSession openOnHost: 'store.cincomsmalltalk.com' port: 5432. (Delay forSeconds: 10) wait. connection close The 10 seconds just lets me see a clear blip on the CPU usage meeter I have. I'm running Debian stable (sarge) with a stock 2.6.8 kernel. All the best, Bruce -- Make the most of your skills - with OpenSkills http://www.openskills.org/ |
Oh, and it's not PostgreSQL in particular, either. Try:
connection := NativeSocketSession openOnHost: 'www.cincom.com' port: 80. (Delay forSeconds: 10) wait. connection close All the best, Bruce -- Make the most of your skills - with OpenSkills http://www.openskills.org/ |
Bruce Badger wrote:
> Oh, and it's not PostgreSQL in particular, either. Try: > > connection := NativeSocketSession openOnHost: 'www.cincom.com' > port: 80. > (Delay forSeconds: 10) wait. > connection close I confirm |
Free forum by Nabble | Edit this page |