I just ported my app to Seaside 2.8 and under production load I'm suddenly
getting a whole bunch of "There is no free space in this set!" errors. I say a previous thread mention this http://www.iam.unibe.ch/pipermail/smallwiki/2007-March/002656.html but it was related to backtracking state, which I'm not currently using. Lukas any idea what's going on here? Here's the full error details... VM: unix - a SmalltalkImage Image: Squeak3.9 [latest update: #7067] SecurityManager state: Restricted: false FileAccess: true SocketAccess: true Working Dir /etc/squeak7 Trusted Dir /etc/squeak7/secure Untrusted Dir /etc/squeak7/My Squeak Error(Exception)>>signal Receiver: Error: There is no free space in this set! Arguments and temporary variables: Receiver's instance variables: messageText: 'There is no free space in this set!' tag: nil signalContext: Error(Exception)>>signal handlerContext: BlockContext>>on:do: outerContext: nil Error(Exception)>>signal: Receiver: Error: There is no free space in this set! Arguments and temporary variables: signalerText: 'There is no free space in this set!' Receiver's instance variables: messageText: 'There is no free space in this set!' tag: nil signalContext: Error(Exception)>>signal handlerContext: BlockContext>>on:do: outerContext: nil Dictionary(Object)>>error: Receiver: a Dictionary( <ArnRequest> <Availability DisplayCurrency="USD" SearchTimeout="30"> <HotelA...etc... Arguments and temporary variables: aString: 'There is no free space in this set!' Receiver's instance variables: tally: 10 array: { <ArnRequest> <Availability DisplayCurrency="USD" SearchTimeout="30"> <...etc... Dictionary(Set)>>findElementOrNil: Receiver: a Dictionary( <ArnRequest> <Availability DisplayCurrency="USD" SearchTimeout="30"> <HotelA...etc... Arguments and temporary variables: anObject: <ArnRequest> <Availability DisplayCurrency="USD" SearchTimeout="30">...etc... index: 0 Receiver's instance variables: tally: 10 array: { <ArnRequest> <Availability DisplayCurrency="USD" SearchTimeout="30"> <...etc... --- The full stack --- Error(Exception)>>signal Error(Exception)>>signal: Dictionary(Object)>>error: Dictionary(Set)>>findElementOrNil: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Dictionary>>at:ifAbsent: [] in WBBookingEngine>>findRatesFor: {[self cachedRates at: availabilityRequest ifAbsent: [self cachedRates at...]} BlockContext>>on:do: WBBookingEngine>>findRatesFor: WBBookingEngine>>isLowRateGuarantee: WBPropertyView>>renderAjaxedRateDetailsFor:on: [] in WBPropertyView>>renderRateCellOn: {[:r :price | self renderAjaxedRateDetailsFor: price on: r]} [] in WAGenericTag(WATagBrush)>>waitMax:forWork:thenRender: {[:r | (result at: #result) ifNil: [r text: (self attributeAt: #default...]} BlockContext>>renderOn: WARenderCanvas(WACanvas)>>render: SUPeriodical(SUObject)>>render:on: SUPeriodical(SUUpdater)>>processOn: SUPeriodical(SUAjax)>>process [] in SUPeriodical(SUAjax)>>setCanvas: {[self process]} SUCallback(WAActionCallback)>>evaluateWithArgument: SUCallback(WACallback)>>evaluateWithField: WACallbackStream>>processCallbacksWithOwner: WBPropertyView(WAPresenter)>>processCallbackStream: WBPropertyView(SSComponent)>>processCallbackStream: [] in WBBookingEngine(WAPresenter)>>processChildCallbacks: {[:ea | ea processCallbackStream: aStream]} WBPropertyView(WAComponent)>>decorationChainDo: [] in WBBookingEngine(WAComponent)>>nextPresentersDo: {[:ea | ea decorationChainDo: aBlock]} [] in WBBookingEngine(WAComponent)>>childrenDo: {[:ea | ea ifNotNil: [aBlock value: ea]]} OrderedCollection>>do: WBBookingEngine(WAComponent)>>childrenDo: WBBookingEngine(WAComponent)>>nextPresentersDo: WBBookingEngine(WAPresenter)>>processChildCallbacks: WBBookingEngine(WAPresenter)>>processCallbackStream: WBBookingEngine(SSComponent)>>processCallbackStream: [] in WARenderContinuation>>processCallbacks: {[:each | each processCallbackStream: callbackStream]} WBBookingEngine(WAComponent)>>decorationChainDo: WARenderContinuation>>processCallbacks: [] in WARenderContinuation>>handleRequest: {[self processCallbacks: aRequest]} BlockContext>>on:do: WARenderContinuation>>withNotificationHandler: WARenderContinuation>>handleRequest: WARenderContinuation(WASessionContinuation)>>value: WBBookingSession(WASession)>>performRequest: [] in WBBookingSession(WASession)>>responseForRequest: {[self performRequest: aRequest]} BlockContext>>on:do: [] in WBBookingSession(WASession)>>withErrorHandler: {[aBlock on: Error do: [:e | self errorHandler handleError: e. WAP...]} BlockContext>>on:do: ...etc... _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
> I just ported my app to Seaside 2.8 and under production load I'm suddenly
> getting a whole bunch of "There is no free space in this set!" errors. This is supposed to be fixed in 2.8 (finally, it was broken for years). Does the WABacktrackingTest pass? > I say a previous thread mention this > http://www.iam.unibe.ch/pipermail/smallwiki/2007-March/002656.html but it > was related to backtracking state, which I'm not currently using. Do you accidently have a method called #states or #updateStates: overridden in one of your components? Seaside seems to try to backtrack a dictionary containing some XML: <ArnRequest> <Availability DisplayCurrency="USD" SearchTimeout="30"> <HotelA... Lukas -- Lukas Renggli http://www.lukas-renggli.ch _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
> > I just ported my app to Seaside 2.8 and under production load I'm
> > suddenly getting a whole bunch of "There is no free space > in this set!" errors. > > This is supposed to be fixed in 2.8 (finally, it was broken > for years). > > Does the WABacktrackingTest pass? Tests pass fine. > > I say a previous thread mention this > > > http://www.iam.unibe.ch/pipermail/smallwiki/2007-March/002656. > html but > > it was related to backtracking state, which I'm not currently using. > > Do you accidently have a method called #states or #updateStates: > overridden in one of your components? Nope. > Seaside seems to try to backtrack a dictionary containing some XML: > > <ArnRequest> > <Availability DisplayCurrency="USD" SearchTimeout="30"> <HotelA... > > Lukas I seem to have fixed it, I found an old thread where someone mentioned #hash, so I looked and I was using a custom biz object as a key into a dictionary. I think I was a bit careless with overriding #= and #hash and had maybe done something wrong. I changed the key to a string instead of a custom object and the error seems to have gone away. Haven't had an error in the last hour and a half since pushing this out. I did actually have this error in 2.7 as well but it was so rare I'd never bothered with it. Not sure why 2.8 made it happen at a much higher frequency, but I don't think it was a Seaside problem now. Ramon Leon _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
> I seem to have fixed it, I found an old thread where someone mentioned
> #hash, so I looked and I was using a custom biz object as a key into a > dictionary. I think I was a bit careless with overriding #= and #hash and > had maybe done something wrong. I changed the key to a string instead of a > custom object and the error seems to have gone away. Haven't had an error > in the last hour and a half since pushing this out. Glad you found the bug. "There is no free space in this set!" usually happens when an object within a set or as key of a dictionary changes its hash. Rehashing the set/dictionary helps, but usually the hash should not depend on mutable values. "There is no free space in this set!" occasionally happened in earlier versions of Seaside, because the backtracking screwed up some internal data structure of the set/dictionary/bag. Cheers, Lukas -- Lukas Renggli http://www.lukas-renggli.ch _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Free forum by Nabble | Edit this page |