Hi, We had a look and the problem is that printOn: on Stream is defined to print the contents of the Stream even though it might not be initialized yet (e.g. when creating a Stream instance with #basicNew).
The simplest solution is to just not print the contents of Streams in #printOn: http://code.google.com/p/pharo/issues/detail?id=5047 Stream should not print its contents in printOn: Reason: => Debugging leads to change the state of Stream when looking at it => Network streams load all content => unitialized Streams has undefined behavior for printing Solution: remove #printOn: On Fri, Dec 2, 2011 at 9:08 AM, Stéphane Ducasse <[email protected]> wrote: >>>> >>>> I only had a look in Pharo 1.4 >>>> It sounds like a subtle bug related to introduction of >>>> SubclassResponsibility in Pharo. >>>> If you revert Object>>subclassResponsibility to its previous version >>>> you get a more reliable error. >>> >>> What would be your hypothesis? Because I'm stuck. >>> error: is also signaling an exception >>> >>> error: aString >>> "Throw a generic Error exception." >>> >>> ^Error new signal: aString >>> >>> So I wonder why one is more robust. >>> >> >> I'm stuck too, and the Debugger is currently unusable in Pharo 1.4 (I >> just can't step over…) > > Strange. Because I use it. > Do you have a scenario that we can focus on to fix the problem you see. > > >> I give up. I only had time for an easy task... >> >> Nicolas >> >>> >>> >>>> >>>> Nicolas >>>> >>>> 2011/12/1 Larry White <[email protected]>: >>>>> I was able to replicate with a clean version of the Seaside 3.0.6 One >>>>> Click >>>>> download by executing Stream #basicNew in a workspace. It did work a >>>>> couple >>>>> times ok using "do it" from the menu, but seems to lock pretty regularly >>>>> using print or explore keyboard shortcuts. >>>>> >>>>> thanks. >>>>> >>>>> >>>>> >>>>> On Thu, Dec 1, 2011 at 1:33 PM, Larry White <[email protected]> wrote: >>>>>> >>>>>> I can do it with control-P (print) in the Workspace. I just did it with >>>>>> a >>>>>> single try, though sometimes it takes more than one. Speed isn't an >>>>>> issue, >>>>>> I can wait 10 minutes and see it happen sometimes.. >>>>>> >>>>>> I have to take a break now, but when I get a few minutes, I'll try again >>>>>> with a fresh install of the latest Seaside one-click for the mac. >>>>>> >>>>>> thanks. >>>>>> >>>>>> On Thu, Dec 1, 2011 at 1:20 PM, Schwab,Wilhelm K <[email protected]> >>>>>> wrote: >>>>>>> >>>>>>> I just tried to hang 1.1.1 (using a traditional linux vm) and a 1.4 >>>>>>> image >>>>>>> with a Cog vm (also linux). No problems, but I do have questions that >>>>>>> might >>>>>>> be important to others trying to reproduce it: >>>>>>> >>>>>>> (1) how fast do you do this? >>>>>>> (2) do you inspect the instances, or just let them get gc'd immediately? >>>>>>> >>>>>>> Bill >>>>>>> >>>>>>> >>>>>>> >>>>>>> ________________________________ >>>>>>> From: [email protected] >>>>>>> [[email protected]] on behalf of Larry White >>>>>>> [[email protected]] >>>>>>> Sent: Thursday, December 01, 2011 12:56 PM >>>>>>> To: [email protected] >>>>>>> Subject: Re: [Pharo-project] VM freezes sending #basicNew to Stream >>>>>>> subclass >>>>>>> >>>>>>> I can do it with >>>>>>> >>>>>>> Stream basicNew. >>>>>>> >>>>>>> but I have to invoke it twice. The first time it works ok. >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Thu, Dec 1, 2011 at 12:48 PM, Stéphane Ducasse >>>>>>> <[email protected]> wrote: >>>>>>>> >>>>>>>> gary >>>>>>>> >>>>>>>> can you post the smallest code that makes the system hangs? >>>>>>>> >>>>>>>> Stef >>>>>>>> >>>>>>>> On Dec 1, 2011, at 4:48 PM, Larry White wrote: >>>>>>>> >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> Throwing this out there because it may be a bug. >>>>>>>>> >>>>>>>>> I'm running the Seaside one-click install on OS X Lion. >>>>>>>>> Pharo1.3 >>>>>>>>> Latest update: #13302 >>>>>>>>> >>>>>>>>> I can reliably cause my VM to freeze up and need to Force-Quit it from >>>>>>>>> the OS. >>>>>>>>> >>>>>>>>> I'm implementing (copying) the probability logic from the blue book. >>>>>>>>> When I tried to create an instance of the Binomial class, the system >>>>>>>>> hung. I >>>>>>>>> can replicate the problem by sending the message #basicNew to >>>>>>>>> ProbabilityDistribution. ProbabilityDistribution is a direct subclass >>>>>>>>> of >>>>>>>>> Stream and I haven't overridden or modified #basicNew. >>>>>>>>> >>>>>>>>> What's happening is that it fails in the BlockClosure [anObject doit], >>>>>>>>> but only when I instantiate a member of this particular class >>>>>>>>> hierarchy. In >>>>>>>>> the probability classes, a #doIt in a Workspace hits the line "self >>>>>>>>> suspend" >>>>>>>>> in the #terminate method of Process and the VM hangs there. >>>>>>>>> >>>>>>>>> I believe they had ProbabilityDistribution subclass from Stream >>>>>>>>> because sampling from a distribution is like reading from a Stream, >>>>>>>>> but I >>>>>>>>> don't think any there's any actual shared code, so I switched the >>>>>>>>> superclass >>>>>>>>> of ProbabilityDistribution to Object and the code works fine now. >>>>>>>>> >>>>>>>>> Thanks. >>>>>>>>> >>>>>>>>> Larry >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >>> >> > > -- -- Marcus Denker -- [email protected] http://www.marcusdenker.de
