Larry,
Object does not exist errors are not good things ... and the gem coming down in this case is probably a good thing ... The fact that the problem is showing up in a GsProcess means that the Seaside session data structures are corrupted but not your model data ... You can check for corruption in your data base by running an object audit (see section 8.2 of the System Administration Guide[1]). If you follow these steps you own't need to run the object audit as single user (see the docs): - expire sessions - mfc - reclaimAll - object audit If, as I suspect, you've got corruption in GsProcess objects they only impact Seaside session state, and should have disappeared by the time you run the object audit ... This problems seems to ring a bell, but it seems to me that the problem I am thinking of showed up in GemStone 3.0 and I think it was fixed in GemStone 3.0.1... so I'm curious what version of GemStone you are using. As I think about this, I seem to recall that the problem was related to deeply nested block structure in a method that was involved in partial continuations, so I am curious if you happen to have some deeply nested block structures let's say more than 5 or 6 levels deep in your method? In fact even in 3.0.1 I think that there might be an effective limit (the engineer that worked on this will be back on Monday for exact details), so if you are running with 3.0.1, you should definitely be suspicious of deep nesting of blocks... Dale [1] http://community.gemstone.com/display/GSS64/GemStoneS+64+Documentation ----- Original Message ----- | From: "Lawrence Kellogg" <[hidden email]> | To: "GemStone Seaside beta discussion" <[hidden email]> | Sent: Friday, February 10, 2012 2:13:15 PM | Subject: [GS/SS Beta] Object does not exist error - Worry about it? | | | | Hello, | After a long series of calls and answers in Seaside, I got an Object | does not exist error that brought down the fast cgi gateway. My | production error handler was not triggered, although it was | installed, as far as I could tell. Strange. My supervise fastcgi | process also did not pick up my dead fastcgi process. Not a good | day. | | Here is the walkback: | | | | USER IDS: REAL=seasideuser (500) EFFECTIVE=seasideuser (500) | | |_____________________________________________________________________________| | topaz> topaz> topaz> topaz> topaz> topaz> topaz> [Info]: LNK | client/gem GCI levels = 844/844 | [Info]: User ID: DataCurator | [Info]: Repository: seaside | [Info]: Session ID: 5 | [Info]: GCI Client Host: <Linked> | [Info]: Page server PID: -1 | [Info]: Login Time: 02/10/2012 09:27:56 PM.572 UTC | [02/10/2012 09:27:56 PM.592 UTC] gci login: currSession 1 rpc gem | processId -1 | successful login | topaz 1> topaz 1> [20 sz:0 cls: 76289 UndefinedObject] nil | topaz 1> topaz 1> [76033 sz:19 cls: 801793 System class] System class | superClass [72193 sz:19 cls: 206081 Object class] Object class | format [258 sz:0 cls: 74241 SmallInteger] 32 | instVars [2 sz:0 cls: 74241 SmallInteger] 0 | instVarNames [422145 sz:0 cls: 66817 Array] an Array | constraints [421889 sz:0 cls: 66817 Array] an Array | classVars [421633 sz:26 cls: 111361 SymbolDictionary] a | SymbolDictionary | methodDict [711937 sz:112 cls: 99073 GsMethodDictionary] a | GsMethodDictionary | poolDictionaries [421377 sz:0 cls: 66817 Array] an Array | categories [421121 sz:28 cls: 99073 GsMethodDictionary] a | GsMethodDictionary | secondarySuperclasses [20 sz:0 cls: 76289 UndefinedObject] nil | name [801537 sz:6 cls: 110849 Symbol] System | classHistory [420865 sz:3 cls: 82689 ClassHistory] a ClassHistory | description [13498369 sz:10 cls: 95233 GsClassDocumentation] a | GsClassDocumentation | migrationDestination [20 sz:0 cls: 76289 UndefinedObject] nil | timeStamp [14510593 sz:4 cls: 118785 DateTime] a DateTime | userId [14508801 sz:10 cls: 74753 String] SystemUser | extraDict [14524929 sz:14 cls: 111361 SymbolDictionary] a | SymbolDictionary | classCategory [20 sz:0 cls: 76289 UndefinedObject] nil | subclasses [20 sz:0 cls: 76289 UndefinedObject] nil | | | topaz 1> topaz 1> WAFastCGIAdaptor Server started on port 9001 | ----------------------------------------------------- | GemStone: Error Nonfatal | The object with object ID 81065894683350528 does not exist. | Error Category: 231169 [GemStone] Number: 2101 Arg Count: 1 Context : | 526648321 | Arg 1: [648527157466804226 sz:0 cls: 74241 SmallInteger] | 81065894683350528 | | | Now executing the following command saved from "iferr 1": | where | ==> 1 GsProcess class >> installPartialContinuation:atLevel:value: @2 | line 1 [GsMethod 4487425] | 2 WAPartialContinuation >> value: @13 line 11 [GsMethod 212791041] | 3 WAPartialContinuation >> valueWithPossibleArguments: @2 line 2 | [GsMethod 218326273] | 4 ComplexBlock in WAComponent >> show:onAnswer:delegation: @7 line 7 | [GsMethod 194749185] | 5 ComplexBlock in ExecutableBlock >> valueWithPossibleArguments: @12 | line 8 [GsMethod 116163585] | 6 WAAnswerHandler >> handleAnswer:continueWith: @3 line 2 [GsMethod | 194735873] | 7 WADecoration >> handleAnswer: @6 line 3 [GsMethod 194731009] | 8 WAComponent >> answer: @2 line 5 [GsMethod 194751745] | | | | | I found this on the net: | | | | Object does not exist errors | GBS applications may encounter object does not exist errors in | non-persistent | objects. This is due to a problem with the fix for bug #40703 in | version | 2.4.4, which resulted in non-persistent objects not properly | protected | from garbage collection. | | Workaround: | | none/not applicable | from: | | | | | | | http://www.gemstone.com/docs/GemStoneS/bugnotes/bugnotes/40948.html | | | | So, should I worry about this? I implemented code that allowed a user | to call an editor, switch out on the navigation menu, call another | editor, | switch out. With each switch, I send answer: false to the open editor | to close it so that it is not hanging around open. My idea | was to hide the section navigation when the editor came up but I'm | getting push back from my user. | | | What do you think? | | | Larry | | | | |
In reply to this post by Larry Kellogg
Am 10.02.2012 um 23:30 schrieb Lawrence Kellogg: It doesn't matter what you are told. The update is managed by the TTL I showed you. Any non-lame DNS will obey. Ok, this mailing list is not the best place to discuss these kind of things. Just a few words more. To solve your problems you need a little understanding how those things work together. If you ask a provider you probably get an answer what you need to do in their system in order to get it done. That doesn't necessarily mean it is generally right. You have a domain (e.g. yourdomain.com) that is registered by a registrar. The registrar adds a record in the topmost DNS hierarchy which DNS provider is responsible for your domain. The DNS provider holds a so called zone file that contains the whole configuration for your domain. A zone file consists of A, CNAME,... and some other records. The needed refresh period for these entries are defined in the zone. So it makes no difference in updating if it is an A record or a CNAME. The CNAME needs an additional lookup to a another domain that has its own caching time (e.g. amazon). So your worst case for time needed for an update is the addition of the time for your own domain and the domain the CNAME points to. If you have an A record "www 172.45.67.98" then a name www.yourdomain.com will be resolved to the IP 172.45.67.98. So requests will arrive at your host. If you have a CNAME "www dummyhost.amazonaws.com" then any lookup for www.yourdomain.com will be redirected to another lookup for dummyhost.amazonaws.com. If amazon configured an A record "dummyhost.amazonaws.com 172.45.67.98" requests will again arrive at your machine. So having an A record has nothing to do with a type of machine. An A record is just configured in the domain even if there is no machine with a corresponding IP address. Last but not least a request to your machine will arrive with name requested www.yourdomain.com. The apache/nginx/cherokee/... servers takes the name and looks for a configuration that fits that name. So you always need a DNS configuration that matches your webserver configuration. For the uptime in amazon you need to esitmate the risk. You might think the service does not need to be restarted. If you scan the things again you didn't read when ackowledging the terms of use at amazon you might have noticed that amazon has the right to reboot the machine at will. If you cannot afford a 3 hours outtake you need an alternative approach. hope this helps, Norbert
|
Comments below...
On Feb 10, 2012, at 7:10 PM, Norbert Hartl wrote:
Yes, you're right, this is not the correct place for these discussions. I'm sorry for bringing the subject up on the list. Thanks for all your help. I will figure out a good way to configure my site, after I digest all of your comments along with other things I have read. I'm still not clear on why my rewrite rule did not work on nginx. I'l think about it some more. By the way, Register has their own forwarding set up in the A record for my site. I wonder if that is just to allow them to sell the redirect service. Anyway, thanks again for your help. We can let this issue rest. Regards, Larry
|
In reply to this post by Dale Henrichs
Dale,
Thanks for your help. At least now I know I have to work on the problem. On Feb 10, 2012, at 7:04 PM, Dale Henrichs wrote: > Larry, > > Object does not exist errors are not good things ... and the gem coming down in this case is probably a good thing ... The fact that the problem is showing up in a GsProcess means that the Seaside session data structures are corrupted but not your model data ... > > You can check for corruption in your data base by running an object audit (see section 8.2 of the System Administration Guide[1]). If you follow these steps you own't need to run the object audit as single user (see the docs): > > - expire sessions > - mfc > - reclaimAll > - object audit > > If, as I suspect, you've got corruption in GsProcess objects they only impact Seaside session state, and should have disappeared by the time you run the object audit ... > > This problems seems to ring a bell, but it seems to me that the problem I am thinking of showed up in GemStone 3.0 and I think it was fixed in GemStone 3.0.1... so I'm curious what version of GemStone you are using. > I'm on 2.4.4.1. Should I upgrade to 3.0.1? Tomorrow, I will go through the object audit, as you recommended. > As I think about this, I seem to recall that the problem was related to deeply nested block structure in a method that was involved in partial continuations, so I am curious if you happen to have some deeply nested block structures let's say more than 5 or 6 levels deep in your method? In fact even in 3.0.1 I think that there might be an effective limit (the engineer that worked on this will be back on Monday for exact details), so if you are running with 3.0.1, you should definitely be suspicious of deep nesting of blocks... > I'm trying to think if I am deeply nesting block structures in my methods. My top level WATask is like this self call: self userLoginView. (self userLoginView user) notNil ifTrue: [ component := self firstComponentToDisplayForUser: self userLoginView user. [ component notNil ] whileTrue: [ self call: component. component := component nextComponentToBeDisplayed ] ]. Each of the subcomponents does an answer and returns the next component to call. Is this a bad way of implementing my system? In the case where I got the crash, we were hitting a sequence of calls over and over again, but with an answer:false being sent to each one before calling another component. Shouldn't that implementation prevent the deep nesting of continuations? What other kinds of structures should I look for in trying to figure out my nesting level? I have written a lot of code, ;-) , but I didn't think it was nested deeply. Regards, Larry > Dale > > [1] http://community.gemstone.com/display/GSS64/GemStoneS+64+Documentation > > ----- Original Message ----- > | From: "Lawrence Kellogg" <[hidden email]> > | To: "GemStone Seaside beta discussion" <[hidden email]> > | Sent: Friday, February 10, 2012 2:13:15 PM > | Subject: [GS/SS Beta] Object does not exist error - Worry about it? > | > | > | > | Hello, > | After a long series of calls and answers in Seaside, I got an Object > | does not exist error that brought down the fast cgi gateway. My > | production error handler was not triggered, although it was > | installed, as far as I could tell. Strange. My supervise fastcgi > | process also did not pick up my dead fastcgi process. Not a good > | day. > | > | Here is the walkback: > | > | > | > | USER IDS: REAL=seasideuser (500) EFFECTIVE=seasideuser (500) | > | |_____________________________________________________________________________| > | topaz> topaz> topaz> topaz> topaz> topaz> topaz> [Info]: LNK > | client/gem GCI levels = 844/844 > | [Info]: User ID: DataCurator > | [Info]: Repository: seaside > | [Info]: Session ID: 5 > | [Info]: GCI Client Host: <Linked> > | [Info]: Page server PID: -1 > | [Info]: Login Time: 02/10/2012 09:27:56 PM.572 UTC > | [02/10/2012 09:27:56 PM.592 UTC] gci login: currSession 1 rpc gem > | processId -1 > | successful login > | topaz 1> topaz 1> [20 sz:0 cls: 76289 UndefinedObject] nil > | topaz 1> topaz 1> [76033 sz:19 cls: 801793 System class] System class > | superClass [72193 sz:19 cls: 206081 Object class] Object class > | format [258 sz:0 cls: 74241 SmallInteger] 32 > | instVars [2 sz:0 cls: 74241 SmallInteger] 0 > | instVarNames [422145 sz:0 cls: 66817 Array] an Array > | constraints [421889 sz:0 cls: 66817 Array] an Array > | classVars [421633 sz:26 cls: 111361 SymbolDictionary] a > | SymbolDictionary > | methodDict [711937 sz:112 cls: 99073 GsMethodDictionary] a > | GsMethodDictionary > | poolDictionaries [421377 sz:0 cls: 66817 Array] an Array > | categories [421121 sz:28 cls: 99073 GsMethodDictionary] a > | GsMethodDictionary > | secondarySuperclasses [20 sz:0 cls: 76289 UndefinedObject] nil > | name [801537 sz:6 cls: 110849 Symbol] System > | classHistory [420865 sz:3 cls: 82689 ClassHistory] a ClassHistory > | description [13498369 sz:10 cls: 95233 GsClassDocumentation] a > | GsClassDocumentation > | migrationDestination [20 sz:0 cls: 76289 UndefinedObject] nil > | timeStamp [14510593 sz:4 cls: 118785 DateTime] a DateTime > | userId [14508801 sz:10 cls: 74753 String] SystemUser > | extraDict [14524929 sz:14 cls: 111361 SymbolDictionary] a > | SymbolDictionary > | classCategory [20 sz:0 cls: 76289 UndefinedObject] nil > | subclasses [20 sz:0 cls: 76289 UndefinedObject] nil > | > | > | topaz 1> topaz 1> WAFastCGIAdaptor Server started on port 9001 > | ----------------------------------------------------- > | GemStone: Error Nonfatal > | The object with object ID 81065894683350528 does not exist. > | Error Category: 231169 [GemStone] Number: 2101 Arg Count: 1 Context : > | 526648321 > | Arg 1: [648527157466804226 sz:0 cls: 74241 SmallInteger] > | 81065894683350528 > | > | > | Now executing the following command saved from "iferr 1": > | where > | ==> 1 GsProcess class >> installPartialContinuation:atLevel:value: @2 > | line 1 [GsMethod 4487425] > | 2 WAPartialContinuation >> value: @13 line 11 [GsMethod 212791041] > | 3 WAPartialContinuation >> valueWithPossibleArguments: @2 line 2 > | [GsMethod 218326273] > | 4 ComplexBlock in WAComponent >> show:onAnswer:delegation: @7 line 7 > | [GsMethod 194749185] > | 5 ComplexBlock in ExecutableBlock >> valueWithPossibleArguments: @12 > | line 8 [GsMethod 116163585] > | 6 WAAnswerHandler >> handleAnswer:continueWith: @3 line 2 [GsMethod > | 194735873] > | 7 WADecoration >> handleAnswer: @6 line 3 [GsMethod 194731009] > | 8 WAComponent >> answer: @2 line 5 [GsMethod 194751745] > | > | > | > | > | I found this on the net: > | > | > | > | Object does not exist errors > | GBS applications may encounter object does not exist errors in > | non-persistent > | objects. This is due to a problem with the fix for bug #40703 in > | version > | 2.4.4, which resulted in non-persistent objects not properly > | protected > | from garbage collection. > | > | Workaround: > | > | none/not applicable > | from: > | > | > | > | > | > | > | http://www.gemstone.com/docs/GemStoneS/bugnotes/bugnotes/40948.html > | > | > | > | So, should I worry about this? I implemented code that allowed a user > | to call an editor, switch out on the navigation menu, call another > | editor, > | switch out. With each switch, I send answer: false to the open editor > | to close it so that it is not hanging around open. My idea > | was to hide the section navigation when the editor came up but I'm > | getting push back from my user. > | > | > | What do you think? > | > | > | Larry > | > | > | > | |
In reply to this post by Dale Henrichs
On Feb 10, 2012, at 7:04 PM, Dale Henrichs wrote: > Larry, > > Object does not exist errors are not good things ... and the gem coming down in this case is probably a good thing ... The fact that the problem is showing up in a GsProcess means that the Seaside session data structures are corrupted but not your model data ... > > You can check for corruption in your data base by running an object audit (see section 8.2 of the System Administration Guide[1]). If you follow these steps you own't need to run the object audit as single user (see the docs): > > - expire sessions > - mfc > - reclaimAll > - object audit > Hello Dale, Ok, I ran: System stopUserSessions SystemRepository objectAudit SystemRepository markForCollection SystemRepository reclaimAll SystemRepository objectAudit I don't see any errors. Here is my log. What do you make of it? Larry [Info]: Login Time: 02/11/2012 12:06:22 PM.972 UTC [02/11/2012 12:06:23 PM.001 UTC] gci login: currSession 1 rpc gem processId -1 successful login topaz 1> printit System hasMissingGcGems % false topaz 1> printit System stopUserSessions % System class superClass Object class format 32 instVars 0 instVarNames an Array constraints an Array classVars a SymbolDictionary methodDict a GsMethodDictionary poolDictionaries an Array categories a GsMethodDictionary secondarySuperclasses nil name System classHistory a ClassHistory description a GsClassDocumentation migrationDestination nil timeStamp a DateTime userId SystemUser extraDict a SymbolDictionary classCategory nil subclasses nil topaz 1> printit SystemRepository objectAudit % --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 --setGcConfig: set reclaimMinPages to 1 --reclaimAll: changed reclaimMinPages from 40 to 1 --setGcConfig: set reclaimSleepTime to 1 --setGcConfig: set sleepTimeBetweenReclaimMs to 0 --reclaimAll: using reclaimDeadEnabled true --reclaimAll: simpleCommit loopCount 10 02/11/2012 12:07:41 PM.070 UTC: Starting object table scan 02/11/2012 12:07:41 PM.698 UTC: Finished object table scan Object audit is proceeding in FullAudit mode: Scavenging completed (either single user mode or no pages to scavenge). All audit checks are enabled. Object audit as of 02/11/2012 12:07:41 PM UTC. Summary of objects whose sizes exceed 100000 Bytes or Oops: ObjectID Class ClassName LogicalSize -------------------------------------------------------------------------------------------------------------- 305743617 74753 String 134740 Oops 149534721 74753 String 164661 Oops 173784833 74753 String 163312 Oops 196368897 74753 String 164661 Oops 305774593 74753 String 134740 Oops 175519489 74753 String 376305 Oops 196571393 74753 String 379399 Oops 175494145 74753 String 201874 Oops 197005569 74753 String 202074 Oops 149996289 74753 String 236426 Oops 151722753 74753 String 379399 Oops 151723777 74753 String 202074 Oops 274619393 74753 String 1170577 Oops 265139713 74753 String 1170577 Oops 215910913 66817 Array 331214 Oops 164965121 74753 String 236201 Oops 197155585 74753 String 236426 Oops 271373057 74753 String 1170577 Oops 268426753 74753 String 134740 Oops 264103681 74753 String 1170577 Oops ----------- Object Statistics Summary ----------------- ----- Instances of invisible (private) classes ------ Number of instances: 1072 Total size: 15855 K Bytes Average size: 14.8 Bytes Class: 209153 Instances: 0 Total Size: 0 K Bytes Class: 209409 Instances: 1072 Total Size: 15855 K Bytes Class: 209665 Instances: 0 Total Size: 0 K Bytes Class: 209921 Instances: 0 Total Size: 0 K Bytes Class: 210177 Instances: 0 Total Size: 0 K Bytes Class: 210433 Instances: 0 Total Size: 0 K Bytes Class: 210689 Instances: 0 Total Size: 0 K Bytes Class: 210945 Instances: 0 Total Size: 0 K Bytes Class: 211201 Instances: 0 Total Size: 0 K Bytes Class: 211457 Instances: 0 Total Size: 0 K Bytes Class: 211713 Instances: 0 Total Size: 0 K Bytes Class: 211969 Instances: 0 Total Size: 0 K Bytes Class: 212225 Instances: 0 Total Size: 0 K Bytes Class: 212481 Instances: 0 Total Size: 0 K Bytes Class: 212737 Instances: 0 Total Size: 0 K Bytes Class: 212993 Instances: 0 Total Size: 0 K Bytes Class: 213249 Instances: 0 Total Size: 0 K Bytes Class: 213505 Instances: 0 Total Size: 0 K Bytes Class: 213761 Instances: 0 Total Size: 0 K Bytes ----- Instances of visible classes ----------------- Number of objects : 1633432 Total Size : 157861 K Bytes size of Object Headers : 38283 K Bytes size of Object Values : 116978 K Bytes size of Object Tags : 0 K Bytes average of Object Value: 73.3 Bytes Object Audit: Audit successfully completed; no errors were detected. --setGcConfig: set reclaimMinPages to 40 --setGcConfig: set reclaimSleepTime to 10 --setGcConfig: set sleepTimeBetweenReclaimMs to 0 --postReclaimAll: restored reclaimMinPages to 40 true topaz 1> printit SystemRepository markForCollection % start MFC mark/sweep phase: 02/11/2012 12:08:56 PM UTC WARNING, unable to resolve either garMarkSweepPageBufSize or mfcGcPageBufSize, using default 320 MarkSweepArgsSType::(): buffer size= 320 pages start MFC process dead phase: 02/11/2012 12:08:59 PM UTC end MFC: 02/11/2012 12:08:59 PM UTC Successful completion of markForCollection. 1613875 live objects found. 20629 possible dead objects, occupying approximately 1856610 bytes, may be reclaimed. topaz 1> printit SystemRepository reclaimAll % --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 --setGcConfig: set reclaimMinPages to 1 --reclaimAll: changed reclaimMinPages from 40 to 1 --setGcConfig: set reclaimSleepTime to 1 --setGcConfig: set sleepTimeBetweenReclaimMs to 0 --reclaimAll: using reclaimDeadEnabled true --reclaimAll: simpleCommit loopCount 10 an Array #1 40 #2 10 #3 0 topaz 1> printit SystemRepository objectAudit % --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 --setGcConfig: set reclaimMinPages to 1 --reclaimAll: changed reclaimMinPages from 1 to 1 --setGcConfig: set reclaimSleepTime to 1 --setGcConfig: set sleepTimeBetweenReclaimMs to 0 --reclaimAll: using reclaimDeadEnabled true 02/11/2012 12:11:27 PM.328 UTC: Starting object table scan 02/11/2012 12:11:27 PM.921 UTC: Finished object table scan Object audit is proceeding in FullAudit mode: Scavenging completed (either single user mode or no pages to scavenge). All audit checks are enabled. Object audit as of 02/11/2012 12:11:27 PM UTC. Summary of objects whose sizes exceed 100000 Bytes or Oops: ObjectID Class ClassName LogicalSize -------------------------------------------------------------------------------------------------------------- 305743617 74753 String 134740 Oops 149534721 74753 String 164661 Oops 173784833 74753 String 163312 Oops 196368897 74753 String 164661 Oops 305774593 74753 String 134740 Oops 175519489 74753 String 376305 Oops 196571393 74753 String 379399 Oops 175494145 74753 String 201874 Oops 197005569 74753 String 202074 Oops 149996289 74753 String 236426 Oops 151722753 74753 String 379399 Oops 151723777 74753 String 202074 Oops 274619393 74753 String 1170577 Oops 265139713 74753 String 1170577 Oops 215910913 66817 Array 331214 Oops 164965121 74753 String 236201 Oops 197155585 74753 String 236426 Oops 271373057 74753 String 1170577 Oops 268426753 74753 String 134740 Oops 264103681 74753 String 1170577 Oops ----------- Object Statistics Summary ----------------- ----- Instances of invisible (private) classes ------ Number of instances: 1072 Total size: 15855 K Bytes Average size: 14.8 Bytes Class: 209153 Instances: 0 Total Size: 0 K Bytes Class: 209409 Instances: 1072 Total Size: 15855 K Bytes Class: 209665 Instances: 0 Total Size: 0 K Bytes Class: 209921 Instances: 0 Total Size: 0 K Bytes Class: 210177 Instances: 0 Total Size: 0 K Bytes Class: 210433 Instances: 0 Total Size: 0 K Bytes Class: 210689 Instances: 0 Total Size: 0 K Bytes Class: 210945 Instances: 0 Total Size: 0 K Bytes Class: 211201 Instances: 0 Total Size: 0 K Bytes Class: 211457 Instances: 0 Total Size: 0 K Bytes Class: 211713 Instances: 0 Total Size: 0 K Bytes Class: 211969 Instances: 0 Total Size: 0 K Bytes Class: 212225 Instances: 0 Total Size: 0 K Bytes Class: 212481 Instances: 0 Total Size: 0 K Bytes Class: 212737 Instances: 0 Total Size: 0 K Bytes Class: 212993 Instances: 0 Total Size: 0 K Bytes Class: 213249 Instances: 0 Total Size: 0 K Bytes Class: 213505 Instances: 0 Total Size: 0 K Bytes Class: 213761 Instances: 0 Total Size: 0 K Bytes ----- Instances of visible classes ----------------- Number of objects : 1612803 Total Size : 156912 K Bytes size of Object Headers : 37800 K Bytes size of Object Values : 116516 K Bytes size of Object Tags : 0 K Bytes average of Object Value: 74.0 Bytes Object Audit: Audit successfully completed; no errors were detected. --setGcConfig: set reclaimMinPages to 1 --setGcConfig: set reclaimSleepTime to 1 --setGcConfig: set sleepTimeBetweenReclaimMs to 0 --postReclaimAll: restored reclaimMinPages to 1 true topaz 1> topaz 1> > If, as I suspect, you've got corruption in GsProcess objects they only impact Seaside session state, and should have disappeared by the time you run the object audit ... > > This problems seems to ring a bell, but it seems to me that the problem I am thinking of showed up in GemStone 3.0 and I think it was fixed in GemStone 3.0.1... so I'm curious what version of GemStone you are using. > > As I think about this, I seem to recall that the problem was related to deeply nested block structure in a method that was involved in partial continuations, so I am curious if you happen to have some deeply nested block structures let's say more than 5 or 6 levels deep in your method? In fact even in 3.0.1 I think that there might be an effective limit (the engineer that worked on this will be back on Monday for exact details), so if you are running with 3.0.1, you should definitely be suspicious of deep nesting of blocks... > > Dale > > [1] http://community.gemstone.com/display/GSS64/GemStoneS+64+Documentation > > ----- Original Message ----- > | From: "Lawrence Kellogg" <[hidden email]> > | To: "GemStone Seaside beta discussion" <[hidden email]> > | Sent: Friday, February 10, 2012 2:13:15 PM > | Subject: [GS/SS Beta] Object does not exist error - Worry about it? > | > | > | > | Hello, > | After a long series of calls and answers in Seaside, I got an Object > | does not exist error that brought down the fast cgi gateway. My > | production error handler was not triggered, although it was > | installed, as far as I could tell. Strange. My supervise fastcgi > | process also did not pick up my dead fastcgi process. Not a good > | day. > | > | Here is the walkback: > | > | > | > | USER IDS: REAL=seasideuser (500) EFFECTIVE=seasideuser (500) | > | |_____________________________________________________________________________| > | topaz> topaz> topaz> topaz> topaz> topaz> topaz> [Info]: LNK > | client/gem GCI levels = 844/844 > | [Info]: User ID: DataCurator > | [Info]: Repository: seaside > | [Info]: Session ID: 5 > | [Info]: GCI Client Host: <Linked> > | [Info]: Page server PID: -1 > | [Info]: Login Time: 02/10/2012 09:27:56 PM.572 UTC > | [02/10/2012 09:27:56 PM.592 UTC] gci login: currSession 1 rpc gem > | processId -1 > | successful login > | topaz 1> topaz 1> [20 sz:0 cls: 76289 UndefinedObject] nil > | topaz 1> topaz 1> [76033 sz:19 cls: 801793 System class] System class > | superClass [72193 sz:19 cls: 206081 Object class] Object class > | format [258 sz:0 cls: 74241 SmallInteger] 32 > | instVars [2 sz:0 cls: 74241 SmallInteger] 0 > | instVarNames [422145 sz:0 cls: 66817 Array] an Array > | constraints [421889 sz:0 cls: 66817 Array] an Array > | classVars [421633 sz:26 cls: 111361 SymbolDictionary] a > | SymbolDictionary > | methodDict [711937 sz:112 cls: 99073 GsMethodDictionary] a > | GsMethodDictionary > | poolDictionaries [421377 sz:0 cls: 66817 Array] an Array > | categories [421121 sz:28 cls: 99073 GsMethodDictionary] a > | GsMethodDictionary > | secondarySuperclasses [20 sz:0 cls: 76289 UndefinedObject] nil > | name [801537 sz:6 cls: 110849 Symbol] System > | classHistory [420865 sz:3 cls: 82689 ClassHistory] a ClassHistory > | description [13498369 sz:10 cls: 95233 GsClassDocumentation] a > | GsClassDocumentation > | migrationDestination [20 sz:0 cls: 76289 UndefinedObject] nil > | timeStamp [14510593 sz:4 cls: 118785 DateTime] a DateTime > | userId [14508801 sz:10 cls: 74753 String] SystemUser > | extraDict [14524929 sz:14 cls: 111361 SymbolDictionary] a > | SymbolDictionary > | classCategory [20 sz:0 cls: 76289 UndefinedObject] nil > | subclasses [20 sz:0 cls: 76289 UndefinedObject] nil > | > | > | topaz 1> topaz 1> WAFastCGIAdaptor Server started on port 9001 > | ----------------------------------------------------- > | GemStone: Error Nonfatal > | The object with object ID 81065894683350528 does not exist. > | Error Category: 231169 [GemStone] Number: 2101 Arg Count: 1 Context : > | 526648321 > | Arg 1: [648527157466804226 sz:0 cls: 74241 SmallInteger] > | 81065894683350528 > | > | > | Now executing the following command saved from "iferr 1": > | where > | ==> 1 GsProcess class >> installPartialContinuation:atLevel:value: @2 > | line 1 [GsMethod 4487425] > | 2 WAPartialContinuation >> value: @13 line 11 [GsMethod 212791041] > | 3 WAPartialContinuation >> valueWithPossibleArguments: @2 line 2 > | [GsMethod 218326273] > | 4 ComplexBlock in WAComponent >> show:onAnswer:delegation: @7 line 7 > | [GsMethod 194749185] > | 5 ComplexBlock in ExecutableBlock >> valueWithPossibleArguments: @12 > | line 8 [GsMethod 116163585] > | 6 WAAnswerHandler >> handleAnswer:continueWith: @3 line 2 [GsMethod > | 194735873] > | 7 WADecoration >> handleAnswer: @6 line 3 [GsMethod 194731009] > | 8 WAComponent >> answer: @2 line 5 [GsMethod 194751745] > | > | > | > | > | I found this on the net: > | > | > | > | Object does not exist errors > | GBS applications may encounter object does not exist errors in > | non-persistent > | objects. This is due to a problem with the fix for bug #40703 in > | version > | 2.4.4, which resulted in non-persistent objects not properly > | protected > | from garbage collection. > | > | Workaround: > | > | none/not applicable > | from: > | > | > | > | > | > | > | http://www.gemstone.com/docs/GemStoneS/bugnotes/bugnotes/40948.html > | > | > | > | So, should I worry about this? I implemented code that allowed a user > | to call an editor, switch out on the navigation menu, call another > | editor, > | switch out. With each switch, I send answer: false to the open editor > | to close it so that it is not hanging around open. My idea > | was to hide the section navigation when the editor came up but I'm > | getting push back from my user. > | > | > | What do you think? > | > | > | Larry > | > | > | > | |
Larry,
Yes, everything looks clean, I'm a little bit surprised that you didn't find the original error in you first audit, but the implication is that the "corrupt object" never got persisted ... indicating some other type of corruption ... A clean object audit means that your data base has no corruption so you're good to go ... I'll talk to some guys on Monday and see if they have some ideas as to what might have happened...there's a bug in there somewhere, but for now it looks like it is isolated to the local state in a gem ... Dale ----- Original Message ----- | From: "Lawrence Kellogg" <[hidden email]> | To: "GemStone Seaside beta discussion" <[hidden email]> | Sent: Saturday, February 11, 2012 4:18:06 AM | Subject: Re: [GS/SS Beta] Object does not exist error - Worry about it? | | | On Feb 10, 2012, at 7:04 PM, Dale Henrichs wrote: | | > Larry, | > | > Object does not exist errors are not good things ... and the gem | > coming down in this case is probably a good thing ... The fact | > that the problem is showing up in a GsProcess means that the | > Seaside session data structures are corrupted but not your model | > data ... | > | > You can check for corruption in your data base by running an object | > audit (see section 8.2 of the System Administration Guide[1]). If | > you follow these steps you own't need to run the object audit as | > single user (see the docs): | > | > - expire sessions | > - mfc | > - reclaimAll | > - object audit | > | | Hello Dale, | Ok, I ran: | | System stopUserSessions | SystemRepository objectAudit | SystemRepository markForCollection | SystemRepository reclaimAll | SystemRepository objectAudit | | I don't see any errors. Here is my log. What do you make of it? | | Larry | | | [Info]: Login Time: 02/11/2012 12:06:22 PM.972 UTC | [02/11/2012 12:06:23 PM.001 UTC] gci login: currSession 1 rpc gem | processId -1 | successful login | topaz 1> printit | System hasMissingGcGems | % | false | topaz 1> printit | System stopUserSessions | % | System class | superClass Object class | format 32 | instVars 0 | instVarNames an Array | constraints an Array | classVars a SymbolDictionary | methodDict a GsMethodDictionary | poolDictionaries an Array | categories a GsMethodDictionary | secondarySuperclasses nil | name System | classHistory a ClassHistory | description a GsClassDocumentation | migrationDestination nil | timeStamp a DateTime | userId SystemUser | extraDict a SymbolDictionary | classCategory nil | subclasses nil | | topaz 1> printit | SystemRepository objectAudit | % | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 | --setGcConfig: set reclaimMinPages to 1 | --reclaimAll: changed reclaimMinPages from 40 to 1 | --setGcConfig: set reclaimSleepTime to 1 | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | --reclaimAll: using reclaimDeadEnabled true | --reclaimAll: simpleCommit loopCount 10 | 02/11/2012 12:07:41 PM.070 UTC: Starting object table scan | 02/11/2012 12:07:41 PM.698 UTC: Finished object table scan | | Object audit is proceeding in FullAudit mode: | Scavenging completed (either single user mode or no pages to | scavenge). | All audit checks are enabled. | | Object audit as of 02/11/2012 12:07:41 PM UTC. | Summary of objects whose sizes exceed 100000 Bytes or Oops: | | ObjectID Class ClassName | LogicalSize | -------------------------------------------------------------------------------------------------------------- | 305743617 74753 String | 134740 Oops | 149534721 74753 String | 164661 Oops | 173784833 74753 String | 163312 Oops | 196368897 74753 String | 164661 Oops | 305774593 74753 String | 134740 Oops | 175519489 74753 String | 376305 Oops | 196571393 74753 String | 379399 Oops | 175494145 74753 String | 201874 Oops | 197005569 74753 String | 202074 Oops | 149996289 74753 String | 236426 Oops | 151722753 74753 String | 379399 Oops | 151723777 74753 String | 202074 Oops | 274619393 74753 String | 1170577 Oops | 265139713 74753 String | 1170577 Oops | 215910913 66817 Array | 331214 Oops | 164965121 74753 String | 236201 Oops | 197155585 74753 String | 236426 Oops | 271373057 74753 String | 1170577 Oops | 268426753 74753 String | 134740 Oops | 264103681 74753 String | 1170577 Oops | | ----------- Object Statistics Summary ----------------- | | ----- Instances of invisible (private) classes ------ | Number of instances: 1072 | Total size: 15855 K Bytes | Average size: 14.8 Bytes | | Class: 209153 Instances: 0 Total Size: | 0 K Bytes | Class: 209409 Instances: 1072 Total Size: | 15855 K Bytes | Class: 209665 Instances: 0 Total Size: | 0 K Bytes | Class: 209921 Instances: 0 Total Size: | 0 K Bytes | Class: 210177 Instances: 0 Total Size: | 0 K Bytes | Class: 210433 Instances: 0 Total Size: | 0 K Bytes | Class: 210689 Instances: 0 Total Size: | 0 K Bytes | Class: 210945 Instances: 0 Total Size: | 0 K Bytes | Class: 211201 Instances: 0 Total Size: | 0 K Bytes | Class: 211457 Instances: 0 Total Size: | 0 K Bytes | Class: 211713 Instances: 0 Total Size: | 0 K Bytes | Class: 211969 Instances: 0 Total Size: | 0 K Bytes | Class: 212225 Instances: 0 Total Size: | 0 K Bytes | Class: 212481 Instances: 0 Total Size: | 0 K Bytes | Class: 212737 Instances: 0 Total Size: | 0 K Bytes | Class: 212993 Instances: 0 Total Size: | 0 K Bytes | Class: 213249 Instances: 0 Total Size: | 0 K Bytes | Class: 213505 Instances: 0 Total Size: | 0 K Bytes | Class: 213761 Instances: 0 Total Size: | 0 K Bytes | | | ----- Instances of visible classes ----------------- | Number of objects : 1633432 | Total Size : 157861 K Bytes | size of Object Headers : 38283 K Bytes | size of Object Values : 116978 K Bytes | size of Object Tags : 0 K Bytes | average of Object Value: 73.3 Bytes | | Object Audit: Audit successfully completed; no errors were detected. | --setGcConfig: set reclaimMinPages to 40 | --setGcConfig: set reclaimSleepTime to 10 | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | --postReclaimAll: restored reclaimMinPages to 40 | true | topaz 1> printit | SystemRepository markForCollection | % | start MFC mark/sweep phase: 02/11/2012 12:08:56 PM UTC | WARNING, unable to resolve either garMarkSweepPageBufSize or | mfcGcPageBufSize, using default 320 | MarkSweepArgsSType::(): buffer size= 320 pages | start MFC process dead phase: 02/11/2012 12:08:59 PM UTC | end MFC: 02/11/2012 12:08:59 PM UTC | Successful completion of markForCollection. | 1613875 live objects found. | 20629 possible dead objects, occupying approximately 1856610 | bytes, may be reclaimed. | topaz 1> printit | SystemRepository reclaimAll | % | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 | --setGcConfig: set reclaimMinPages to 1 | --reclaimAll: changed reclaimMinPages from 40 to 1 | --setGcConfig: set reclaimSleepTime to 1 | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | --reclaimAll: using reclaimDeadEnabled true | --reclaimAll: simpleCommit loopCount 10 | an Array | #1 40 | #2 10 | #3 0 | | topaz 1> printit | SystemRepository objectAudit | % | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 | --setGcConfig: set reclaimMinPages to 1 | --reclaimAll: changed reclaimMinPages from 1 to 1 | --setGcConfig: set reclaimSleepTime to 1 | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | --reclaimAll: using reclaimDeadEnabled true | 02/11/2012 12:11:27 PM.328 UTC: Starting object table scan | 02/11/2012 12:11:27 PM.921 UTC: Finished object table scan | | Object audit is proceeding in FullAudit mode: | Scavenging completed (either single user mode or no pages to | scavenge). | All audit checks are enabled. | | Object audit as of 02/11/2012 12:11:27 PM UTC. | Summary of objects whose sizes exceed 100000 Bytes or Oops: | | ObjectID Class ClassName | LogicalSize | -------------------------------------------------------------------------------------------------------------- | 305743617 74753 String | 134740 Oops | 149534721 74753 String | 164661 Oops | 173784833 74753 String | 163312 Oops | 196368897 74753 String | 164661 Oops | 305774593 74753 String | 134740 Oops | 175519489 74753 String | 376305 Oops | 196571393 74753 String | 379399 Oops | 175494145 74753 String | 201874 Oops | 197005569 74753 String | 202074 Oops | 149996289 74753 String | 236426 Oops | 151722753 74753 String | 379399 Oops | 151723777 74753 String | 202074 Oops | 274619393 74753 String | 1170577 Oops | 265139713 74753 String | 1170577 Oops | 215910913 66817 Array | 331214 Oops | 164965121 74753 String | 236201 Oops | 197155585 74753 String | 236426 Oops | 271373057 74753 String | 1170577 Oops | 268426753 74753 String | 134740 Oops | 264103681 74753 String | 1170577 Oops | | ----------- Object Statistics Summary ----------------- | | ----- Instances of invisible (private) classes ------ | Number of instances: 1072 | Total size: 15855 K Bytes | Average size: 14.8 Bytes | | Class: 209153 Instances: 0 Total Size: | 0 K Bytes | Class: 209409 Instances: 1072 Total Size: | 15855 K Bytes | Class: 209665 Instances: 0 Total Size: | 0 K Bytes | Class: 209921 Instances: 0 Total Size: | 0 K Bytes | Class: 210177 Instances: 0 Total Size: | 0 K Bytes | Class: 210433 Instances: 0 Total Size: | 0 K Bytes | Class: 210689 Instances: 0 Total Size: | 0 K Bytes | Class: 210945 Instances: 0 Total Size: | 0 K Bytes | Class: 211201 Instances: 0 Total Size: | 0 K Bytes | Class: 211457 Instances: 0 Total Size: | 0 K Bytes | Class: 211713 Instances: 0 Total Size: | 0 K Bytes | Class: 211969 Instances: 0 Total Size: | 0 K Bytes | Class: 212225 Instances: 0 Total Size: | 0 K Bytes | Class: 212481 Instances: 0 Total Size: | 0 K Bytes | Class: 212737 Instances: 0 Total Size: | 0 K Bytes | Class: 212993 Instances: 0 Total Size: | 0 K Bytes | Class: 213249 Instances: 0 Total Size: | 0 K Bytes | Class: 213505 Instances: 0 Total Size: | 0 K Bytes | Class: 213761 Instances: 0 Total Size: | 0 K Bytes | | | ----- Instances of visible classes ----------------- | Number of objects : 1612803 | Total Size : 156912 K Bytes | size of Object Headers : 37800 K Bytes | size of Object Values : 116516 K Bytes | size of Object Tags : 0 K Bytes | average of Object Value: 74.0 Bytes | | Object Audit: Audit successfully completed; no errors were detected. | --setGcConfig: set reclaimMinPages to 1 | --setGcConfig: set reclaimSleepTime to 1 | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | --postReclaimAll: restored reclaimMinPages to 1 | true | topaz 1> | topaz 1> | | | > If, as I suspect, you've got corruption in GsProcess objects they | > only impact Seaside session state, and should have disappeared by | > the time you run the object audit ... | > | > This problems seems to ring a bell, but it seems to me that the | > problem I am thinking of showed up in GemStone 3.0 and I think it | > was fixed in GemStone 3.0.1... so I'm curious what version of | > GemStone you are using. | > | > As I think about this, I seem to recall that the problem was | > related to deeply nested block structure in a method that was | > involved in partial continuations, so I am curious if you happen | > to have some deeply nested block structures let's say more than 5 | > or 6 levels deep in your method? In fact even in 3.0.1 I think | > that there might be an effective limit (the engineer that worked | > on this will be back on Monday for exact details), so if you are | > running with 3.0.1, you should definitely be suspicious of deep | > nesting of blocks... | > | > Dale | > | > [1] | > http://community.gemstone.com/display/GSS64/GemStoneS+64+Documentation | > | > ----- Original Message ----- | > | From: "Lawrence Kellogg" <[hidden email]> | > | To: "GemStone Seaside beta discussion" | > | <[hidden email]> | > | Sent: Friday, February 10, 2012 2:13:15 PM | > | Subject: [GS/SS Beta] Object does not exist error - Worry about | > | it? | > | | > | | > | | > | Hello, | > | After a long series of calls and answers in Seaside, I got an | > | Object | > | does not exist error that brought down the fast cgi gateway. My | > | production error handler was not triggered, although it was | > | installed, as far as I could tell. Strange. My supervise fastcgi | > | process also did not pick up my dead fastcgi process. Not a good | > | day. | > | | > | Here is the walkback: | > | | > | | > | | > | USER IDS: REAL=seasideuser (500) EFFECTIVE=seasideuser (500) | | > | |_____________________________________________________________________________| | > | topaz> topaz> topaz> topaz> topaz> topaz> topaz> [Info]: LNK | > | client/gem GCI levels = 844/844 | > | [Info]: User ID: DataCurator | > | [Info]: Repository: seaside | > | [Info]: Session ID: 5 | > | [Info]: GCI Client Host: <Linked> | > | [Info]: Page server PID: -1 | > | [Info]: Login Time: 02/10/2012 09:27:56 PM.572 UTC | > | [02/10/2012 09:27:56 PM.592 UTC] gci login: currSession 1 rpc gem | > | processId -1 | > | successful login | > | topaz 1> topaz 1> [20 sz:0 cls: 76289 UndefinedObject] nil | > | topaz 1> topaz 1> [76033 sz:19 cls: 801793 System class] System | > | class | > | superClass [72193 sz:19 cls: 206081 Object class] Object class | > | format [258 sz:0 cls: 74241 SmallInteger] 32 | > | instVars [2 sz:0 cls: 74241 SmallInteger] 0 | > | instVarNames [422145 sz:0 cls: 66817 Array] an Array | > | constraints [421889 sz:0 cls: 66817 Array] an Array | > | classVars [421633 sz:26 cls: 111361 SymbolDictionary] a | > | SymbolDictionary | > | methodDict [711937 sz:112 cls: 99073 GsMethodDictionary] a | > | GsMethodDictionary | > | poolDictionaries [421377 sz:0 cls: 66817 Array] an Array | > | categories [421121 sz:28 cls: 99073 GsMethodDictionary] a | > | GsMethodDictionary | > | secondarySuperclasses [20 sz:0 cls: 76289 UndefinedObject] nil | > | name [801537 sz:6 cls: 110849 Symbol] System | > | classHistory [420865 sz:3 cls: 82689 ClassHistory] a ClassHistory | > | description [13498369 sz:10 cls: 95233 GsClassDocumentation] a | > | GsClassDocumentation | > | migrationDestination [20 sz:0 cls: 76289 UndefinedObject] nil | > | timeStamp [14510593 sz:4 cls: 118785 DateTime] a DateTime | > | userId [14508801 sz:10 cls: 74753 String] SystemUser | > | extraDict [14524929 sz:14 cls: 111361 SymbolDictionary] a | > | SymbolDictionary | > | classCategory [20 sz:0 cls: 76289 UndefinedObject] nil | > | subclasses [20 sz:0 cls: 76289 UndefinedObject] nil | > | | > | | > | topaz 1> topaz 1> WAFastCGIAdaptor Server started on port 9001 | > | ----------------------------------------------------- | > | GemStone: Error Nonfatal | > | The object with object ID 81065894683350528 does not exist. | > | Error Category: 231169 [GemStone] Number: 2101 Arg Count: 1 | > | Context : | > | 526648321 | > | Arg 1: [648527157466804226 sz:0 cls: 74241 SmallInteger] | > | 81065894683350528 | > | | > | | > | Now executing the following command saved from "iferr 1": | > | where | > | ==> 1 GsProcess class >> | > | installPartialContinuation:atLevel:value: @2 | > | line 1 [GsMethod 4487425] | > | 2 WAPartialContinuation >> value: @13 line 11 [GsMethod | > | 212791041] | > | 3 WAPartialContinuation >> valueWithPossibleArguments: @2 line 2 | > | [GsMethod 218326273] | > | 4 ComplexBlock in WAComponent >> show:onAnswer:delegation: @7 | > | line 7 | > | [GsMethod 194749185] | > | 5 ComplexBlock in ExecutableBlock >> valueWithPossibleArguments: | > | @12 | > | line 8 [GsMethod 116163585] | > | 6 WAAnswerHandler >> handleAnswer:continueWith: @3 line 2 | > | [GsMethod | > | 194735873] | > | 7 WADecoration >> handleAnswer: @6 line 3 [GsMethod 194731009] | > | 8 WAComponent >> answer: @2 line 5 [GsMethod 194751745] | > | | > | | > | | > | | > | I found this on the net: | > | | > | | > | | > | Object does not exist errors | > | GBS applications may encounter object does not exist errors in | > | non-persistent | > | objects. This is due to a problem with the fix for bug #40703 in | > | version | > | 2.4.4, which resulted in non-persistent objects not properly | > | protected | > | from garbage collection. | > | | > | Workaround: | > | | > | none/not applicable | > | from: | > | | > | | > | | > | | > | | > | | > | http://www.gemstone.com/docs/GemStoneS/bugnotes/bugnotes/40948.html | > | | > | | > | | > | So, should I worry about this? I implemented code that allowed a | > | user | > | to call an editor, switch out on the navigation menu, call | > | another | > | editor, | > | switch out. With each switch, I send answer: false to the open | > | editor | > | to close it so that it is not hanging around open. My idea | > | was to hide the section navigation when the editor came up but | > | I'm | > | getting push back from my user. | > | | > | | > | What do you think? | > | | > | | > | Larry | > | | > | | > | | > | | | |
In reply to this post by Larry Kellogg
2012/2/10 Lawrence Kellogg <[hidden email]>:
> > This is probably a stupid error on my part, but I'll share it. > > Â So, my wife told me I needed to link the logo on the top of all > the pages back to the home page, which is a dynamically generated Seaside > page. > > Â Without thinking too hard about it, I coded this: > > html anchor > Â Â url: 'http://www.example.com'; > Â Â with: [ html image url: 'example.jpg' ] > > and clicked on the image from within one of other Seaside pages. > Boom, it went into an infinite recursion, (I think), and > everything fell down. Eventually some Error 404 got spit out. Strange, do you have a stack trace? > Â It took be quite a while to get everything shut down, and > restarted to bring the app back to life. > > Â So, I can see why this is a big no-no. I don't need > to really get back to that login page, I just need to build some links > on the other pages to some static content. Well it's not so simple because Seaside doesn't know about pages. For Seaside there's really only just one page that's made up of the root component. Messing directly with URLs in Seaside is error prone. For example do you want a new session or keep the existing one? If so how do you track sessions? In addition if you don't attach a continuation key the following request will be treated as the first request of the session and #initialRequest: will be sent to the root component. Is that what you want? The Seaside way to solve this is swapping components until the page looks like the home page. If you're inside the right component this is easy. If not you'll probably need some kind of message bus [1] to inform the right component about what it should do. [1] http://onsmalltalk.com/maintaining-loose-coupling-in-seaside-components Cheers Philippe |
On Feb 12, 2012, at 12:16 PM, Philippe Marschall wrote: > 2012/2/10 Lawrence Kellogg <[hidden email]>: >> >> This is probably a stupid error on my part, but I'll share it. >> >> So, my wife told me I needed to link the logo on the top of all >> the pages back to the home page, which is a dynamically generated Seaside >> page. >> >> Without thinking too hard about it, I coded this: >> >> html anchor >> url: 'http://www.example.com'; >> with: [ html image url: 'example.jpg' ] >> >> and clicked on the image from within one of other Seaside pages. >> Boom, it went into an infinite recursion, (I think), and >> everything fell down. Eventually some Error 404 got spit out. > > Strange, do you have a stack trace? No, unfortunately, I could not seem to find a stack trace anywhere. > >> It took be quite a while to get everything shut down, and >> restarted to bring the app back to life. >> >> So, I can see why this is a big no-no. I don't need >> to really get back to that login page, I just need to build some links >> on the other pages to some static content. > > Well it's not so simple because Seaside doesn't know about pages. For > Seaside there's really only just one page that's made up of the root > component. Messing directly with URLs in Seaside is error prone. Yes, that's true, as I see now. I tried to explain this to my wife who thinks that you should be able to navigate to any link, at any time, no matter what you're doing. It is kind of the web view versus the desktop application view of the world. For instance, if you have a bunch of navigation options, and you bring up an editor component to create something, should you be allow the user to ignore the save/cancel buttons and navigate away to look at something else? What happens to the open view? Do you close it or leave it. If you leave it, then people are confused that it is still open when they stumble upon it later. I started to hide other navigation options when a user brings up an editor but I got pushback saying that it was too confusing. If you decide to create something, is it should a bother to press the Cancel button to say you've changed your mind? Some people think so. So, I wrote a bunch of code to send answer: false to the open view when the people tried to navigate to other places, but it is a real pain. > For > example do you want a new session or keep the existing one? If so how > do you track sessions? In addition if you don't attach a continuation > key the following request will be treated as the first request of the > session and #initialRequest: will be sent to the root component. Is > that what you want? > Right, I realized that creating a whole new session was not something I wanted to do so I just cut off navigating back to the root of the application that way. I don't link back to my login page from inside of the application. You can only get back to the login page by logging out of the application. I can build links to some of the lower level static information pages that are accessible from the application pages without going back to the login screen. > The Seaside way to solve this is swapping components until the page > looks like the home page. If you're inside the right component this is > easy. If not you'll probably need some kind of message bus [1] to > inform the right component about what it should do. > > [1] http://onsmalltalk.com/maintaining-loose-coupling-in-seaside-components > Thanks for the link. I'll check it out. I have tried to make my components loosely coupled so that i can use them anywhere. > Cheers > Philippe |
In reply to this post by Dale Henrichs
Hello Dale,
Well, my system has been up for days, running with no problems, not that it has been getting a lot of traffic, but still, no crashes. Today, I hit the Object does not exist error again. I guess I can do another object audit but, other than that, I'm not sure how to proceed. Do you think an upgrade to 2.4.5 will help me? Here is the walkback: topaz 1> topaz 1> WAFastCGIAdaptor Server started on port 9001 ----------------------------------------------------- GemStone: Error Nonfatal The object with object ID 76562293713797632 does not exist. Error Category: 231169 [GemStone] Number: 2101 Arg Count: 1 Context : 412915713 Arg 1: [612498349710381058 sz:0 cls: 74241 SmallInteger] 76562293713797632 Now executing the following command saved from "iferr 1": where ==> 1 WAComponent >> decoration @3 line 1 [GsMethod 194749441] 2 WAComponent >> addDecoration: @2 line 6 [GsMethod 194748417] 3 WAComponent >> show:onAnswer:delegation: @10 line 8 [GsMethod 194749185] 4 WAComponent >> show:onAnswer: @5 line 5 [GsMethod 499699713] 5 WAComponent >> call:onAnswer: @5 line 8 [GsMethod 194750977] 6 ComplexBlock in WAComponent >> call: @3 line 4 [GsMethod 191317249] 7 ComplexBlock in WAComponent >> wait: @3 line 3 [GsMethod 191268353] 8 GRGemStonePlatform >> seasideSuspendFlowDo: @9 line 5 [GsMethod 499655937] 9 WAComponent >> wait: @4 line 3 [GsMethod 191268353] 10 WAComponent >> call: @4 line 4 [GsMethod 191317249] 11 PracticeJournalLoginTask >> go @14 line 9 [GsMethod 371393537] Larry On Feb 11, 2012, at 2:34 PM, Dale Henrichs wrote: > Larry, > > Yes, everything looks clean, I'm a little bit surprised that you didn't find the original error in you first audit, but the implication is that the "corrupt object" never got persisted ... indicating some other type of corruption ... > > A clean object audit means that your data base has no corruption so you're good to go ... I'll talk to some guys on Monday and see if they have some ideas as to what might have happened...there's a bug in there somewhere, but for now it looks like it is isolated to the local state in a gem ... > > Dale > > ----- Original Message ----- > | From: "Lawrence Kellogg" <[hidden email]> > | To: "GemStone Seaside beta discussion" <[hidden email]> > | Sent: Saturday, February 11, 2012 4:18:06 AM > | Subject: Re: [GS/SS Beta] Object does not exist error - Worry about it? > | > | > | On Feb 10, 2012, at 7:04 PM, Dale Henrichs wrote: > | > | > Larry, > | > > | > Object does not exist errors are not good things ... and the gem > | > coming down in this case is probably a good thing ... The fact > | > that the problem is showing up in a GsProcess means that the > | > Seaside session data structures are corrupted but not your model > | > data ... > | > > | > You can check for corruption in your data base by running an object > | > audit (see section 8.2 of the System Administration Guide[1]). If > | > you follow these steps you own't need to run the object audit as > | > single user (see the docs): > | > > | > - expire sessions > | > - mfc > | > - reclaimAll > | > - object audit > | > > | > | Hello Dale, > | Ok, I ran: > | > | System stopUserSessions > | SystemRepository objectAudit > | SystemRepository markForCollection > | SystemRepository reclaimAll > | SystemRepository objectAudit > | > | I don't see any errors. Here is my log. What do you make of it? > | > | Larry > | > | > | [Info]: Login Time: 02/11/2012 12:06:22 PM.972 UTC > | [02/11/2012 12:06:23 PM.001 UTC] gci login: currSession 1 rpc gem > | processId -1 > | successful login > | topaz 1> printit > | System hasMissingGcGems > | % > | false > | topaz 1> printit > | System stopUserSessions > | % > | System class > | superClass Object class > | format 32 > | instVars 0 > | instVarNames an Array > | constraints an Array > | classVars a SymbolDictionary > | methodDict a GsMethodDictionary > | poolDictionaries an Array > | categories a GsMethodDictionary > | secondarySuperclasses nil > | name System > | classHistory a ClassHistory > | description a GsClassDocumentation > | migrationDestination nil > | timeStamp a DateTime > | userId SystemUser > | extraDict a SymbolDictionary > | classCategory nil > | subclasses nil > | > | topaz 1> printit > | SystemRepository objectAudit > | % > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 > | --setGcConfig: set reclaimMinPages to 1 > | --reclaimAll: changed reclaimMinPages from 40 to 1 > | --setGcConfig: set reclaimSleepTime to 1 > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 > | --reclaimAll: using reclaimDeadEnabled true > | --reclaimAll: simpleCommit loopCount 10 > | 02/11/2012 12:07:41 PM.070 UTC: Starting object table scan > | 02/11/2012 12:07:41 PM.698 UTC: Finished object table scan > | > | Object audit is proceeding in FullAudit mode: > | Scavenging completed (either single user mode or no pages to > | scavenge). > | All audit checks are enabled. > | > | Object audit as of 02/11/2012 12:07:41 PM UTC. > | Summary of objects whose sizes exceed 100000 Bytes or Oops: > | > | ObjectID Class ClassName > | LogicalSize > | -------------------------------------------------------------------------------------------------------------- > | 305743617 74753 String > | 134740 Oops > | 149534721 74753 String > | 164661 Oops > | 173784833 74753 String > | 163312 Oops > | 196368897 74753 String > | 164661 Oops > | 305774593 74753 String > | 134740 Oops > | 175519489 74753 String > | 376305 Oops > | 196571393 74753 String > | 379399 Oops > | 175494145 74753 String > | 201874 Oops > | 197005569 74753 String > | 202074 Oops > | 149996289 74753 String > | 236426 Oops > | 151722753 74753 String > | 379399 Oops > | 151723777 74753 String > | 202074 Oops > | 274619393 74753 String > | 1170577 Oops > | 265139713 74753 String > | 1170577 Oops > | 215910913 66817 Array > | 331214 Oops > | 164965121 74753 String > | 236201 Oops > | 197155585 74753 String > | 236426 Oops > | 271373057 74753 String > | 1170577 Oops > | 268426753 74753 String > | 134740 Oops > | 264103681 74753 String > | 1170577 Oops > | > | ----------- Object Statistics Summary ----------------- > | > | ----- Instances of invisible (private) classes ------ > | Number of instances: 1072 > | Total size: 15855 K Bytes > | Average size: 14.8 Bytes > | > | Class: 209153 Instances: 0 Total Size: > | 0 K Bytes > | Class: 209409 Instances: 1072 Total Size: > | 15855 K Bytes > | Class: 209665 Instances: 0 Total Size: > | 0 K Bytes > | Class: 209921 Instances: 0 Total Size: > | 0 K Bytes > | Class: 210177 Instances: 0 Total Size: > | 0 K Bytes > | Class: 210433 Instances: 0 Total Size: > | 0 K Bytes > | Class: 210689 Instances: 0 Total Size: > | 0 K Bytes > | Class: 210945 Instances: 0 Total Size: > | 0 K Bytes > | Class: 211201 Instances: 0 Total Size: > | 0 K Bytes > | Class: 211457 Instances: 0 Total Size: > | 0 K Bytes > | Class: 211713 Instances: 0 Total Size: > | 0 K Bytes > | Class: 211969 Instances: 0 Total Size: > | 0 K Bytes > | Class: 212225 Instances: 0 Total Size: > | 0 K Bytes > | Class: 212481 Instances: 0 Total Size: > | 0 K Bytes > | Class: 212737 Instances: 0 Total Size: > | 0 K Bytes > | Class: 212993 Instances: 0 Total Size: > | 0 K Bytes > | Class: 213249 Instances: 0 Total Size: > | 0 K Bytes > | Class: 213505 Instances: 0 Total Size: > | 0 K Bytes > | Class: 213761 Instances: 0 Total Size: > | 0 K Bytes > | > | > | ----- Instances of visible classes ----------------- > | Number of objects : 1633432 > | Total Size : 157861 K Bytes > | size of Object Headers : 38283 K Bytes > | size of Object Values : 116978 K Bytes > | size of Object Tags : 0 K Bytes > | average of Object Value: 73.3 Bytes > | > | Object Audit: Audit successfully completed; no errors were detected. > | --setGcConfig: set reclaimMinPages to 40 > | --setGcConfig: set reclaimSleepTime to 10 > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 > | --postReclaimAll: restored reclaimMinPages to 40 > | true > | topaz 1> printit > | SystemRepository markForCollection > | % > | start MFC mark/sweep phase: 02/11/2012 12:08:56 PM UTC > | WARNING, unable to resolve either garMarkSweepPageBufSize or > | mfcGcPageBufSize, using default 320 > | MarkSweepArgsSType::(): buffer size= 320 pages > | start MFC process dead phase: 02/11/2012 12:08:59 PM UTC > | end MFC: 02/11/2012 12:08:59 PM UTC > | Successful completion of markForCollection. > | 1613875 live objects found. > | 20629 possible dead objects, occupying approximately 1856610 > | bytes, may be reclaimed. > | topaz 1> printit > | SystemRepository reclaimAll > | % > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 > | --setGcConfig: set reclaimMinPages to 1 > | --reclaimAll: changed reclaimMinPages from 40 to 1 > | --setGcConfig: set reclaimSleepTime to 1 > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 > | --reclaimAll: using reclaimDeadEnabled true > | --reclaimAll: simpleCommit loopCount 10 > | an Array > | #1 40 > | #2 10 > | #3 0 > | > | topaz 1> printit > | SystemRepository objectAudit > | % > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 > | --setGcConfig: set reclaimMinPages to 1 > | --reclaimAll: changed reclaimMinPages from 1 to 1 > | --setGcConfig: set reclaimSleepTime to 1 > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 > | --reclaimAll: using reclaimDeadEnabled true > | 02/11/2012 12:11:27 PM.328 UTC: Starting object table scan > | 02/11/2012 12:11:27 PM.921 UTC: Finished object table scan > | > | Object audit is proceeding in FullAudit mode: > | Scavenging completed (either single user mode or no pages to > | scavenge). > | All audit checks are enabled. > | > | Object audit as of 02/11/2012 12:11:27 PM UTC. > | Summary of objects whose sizes exceed 100000 Bytes or Oops: > | > | ObjectID Class ClassName > | LogicalSize > | -------------------------------------------------------------------------------------------------------------- > | 305743617 74753 String > | 134740 Oops > | 149534721 74753 String > | 164661 Oops > | 173784833 74753 String > | 163312 Oops > | 196368897 74753 String > | 164661 Oops > | 305774593 74753 String > | 134740 Oops > | 175519489 74753 String > | 376305 Oops > | 196571393 74753 String > | 379399 Oops > | 175494145 74753 String > | 201874 Oops > | 197005569 74753 String > | 202074 Oops > | 149996289 74753 String > | 236426 Oops > | 151722753 74753 String > | 379399 Oops > | 151723777 74753 String > | 202074 Oops > | 274619393 74753 String > | 1170577 Oops > | 265139713 74753 String > | 1170577 Oops > | 215910913 66817 Array > | 331214 Oops > | 164965121 74753 String > | 236201 Oops > | 197155585 74753 String > | 236426 Oops > | 271373057 74753 String > | 1170577 Oops > | 268426753 74753 String > | 134740 Oops > | 264103681 74753 String > | 1170577 Oops > | > | ----------- Object Statistics Summary ----------------- > | > | ----- Instances of invisible (private) classes ------ > | Number of instances: 1072 > | Total size: 15855 K Bytes > | Average size: 14.8 Bytes > | > | Class: 209153 Instances: 0 Total Size: > | 0 K Bytes > | Class: 209409 Instances: 1072 Total Size: > | 15855 K Bytes > | Class: 209665 Instances: 0 Total Size: > | 0 K Bytes > | Class: 209921 Instances: 0 Total Size: > | 0 K Bytes > | Class: 210177 Instances: 0 Total Size: > | 0 K Bytes > | Class: 210433 Instances: 0 Total Size: > | 0 K Bytes > | Class: 210689 Instances: 0 Total Size: > | 0 K Bytes > | Class: 210945 Instances: 0 Total Size: > | 0 K Bytes > | Class: 211201 Instances: 0 Total Size: > | 0 K Bytes > | Class: 211457 Instances: 0 Total Size: > | 0 K Bytes > | Class: 211713 Instances: 0 Total Size: > | 0 K Bytes > | Class: 211969 Instances: 0 Total Size: > | 0 K Bytes > | Class: 212225 Instances: 0 Total Size: > | 0 K Bytes > | Class: 212481 Instances: 0 Total Size: > | 0 K Bytes > | Class: 212737 Instances: 0 Total Size: > | 0 K Bytes > | Class: 212993 Instances: 0 Total Size: > | 0 K Bytes > | Class: 213249 Instances: 0 Total Size: > | 0 K Bytes > | Class: 213505 Instances: 0 Total Size: > | 0 K Bytes > | Class: 213761 Instances: 0 Total Size: > | 0 K Bytes > | > | > | ----- Instances of visible classes ----------------- > | Number of objects : 1612803 > | Total Size : 156912 K Bytes > | size of Object Headers : 37800 K Bytes > | size of Object Values : 116516 K Bytes > | size of Object Tags : 0 K Bytes > | average of Object Value: 74.0 Bytes > | > | Object Audit: Audit successfully completed; no errors were detected. > | --setGcConfig: set reclaimMinPages to 1 > | --setGcConfig: set reclaimSleepTime to 1 > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 > | --postReclaimAll: restored reclaimMinPages to 1 > | true > | topaz 1> > | topaz 1> > | > | > | > If, as I suspect, you've got corruption in GsProcess objects they > | > only impact Seaside session state, and should have disappeared by > | > the time you run the object audit ... > | > > | > This problems seems to ring a bell, but it seems to me that the > | > problem I am thinking of showed up in GemStone 3.0 and I think it > | > was fixed in GemStone 3.0.1... so I'm curious what version of > | > GemStone you are using. > | > > | > As I think about this, I seem to recall that the problem was > | > related to deeply nested block structure in a method that was > | > involved in partial continuations, so I am curious if you happen > | > to have some deeply nested block structures let's say more than 5 > | > or 6 levels deep in your method? In fact even in 3.0.1 I think > | > that there might be an effective limit (the engineer that worked > | > on this will be back on Monday for exact details), so if you are > | > running with 3.0.1, you should definitely be suspicious of deep > | > nesting of blocks... > | > > | > Dale > | > > | > [1] > | > http://community.gemstone.com/display/GSS64/GemStoneS+64+Documentation > | > > | > ----- Original Message ----- > | > | From: "Lawrence Kellogg" <[hidden email]> > | > | To: "GemStone Seaside beta discussion" > | > | <[hidden email]> > | > | Sent: Friday, February 10, 2012 2:13:15 PM > | > | Subject: [GS/SS Beta] Object does not exist error - Worry about > | > | it? > | > | > | > | > | > | > | > | Hello, > | > | After a long series of calls and answers in Seaside, I got an > | > | Object > | > | does not exist error that brought down the fast cgi gateway. My > | > | production error handler was not triggered, although it was > | > | installed, as far as I could tell. Strange. My supervise fastcgi > | > | process also did not pick up my dead fastcgi process. Not a good > | > | day. > | > | > | > | Here is the walkback: > | > | > | > | > | > | > | > | USER IDS: REAL=seasideuser (500) EFFECTIVE=seasideuser (500) | > | > | |_____________________________________________________________________________| > | > | topaz> topaz> topaz> topaz> topaz> topaz> topaz> [Info]: LNK > | > | client/gem GCI levels = 844/844 > | > | [Info]: User ID: DataCurator > | > | [Info]: Repository: seaside > | > | [Info]: Session ID: 5 > | > | [Info]: GCI Client Host: <Linked> > | > | [Info]: Page server PID: -1 > | > | [Info]: Login Time: 02/10/2012 09:27:56 PM.572 UTC > | > | [02/10/2012 09:27:56 PM.592 UTC] gci login: currSession 1 rpc gem > | > | processId -1 > | > | successful login > | > | topaz 1> topaz 1> [20 sz:0 cls: 76289 UndefinedObject] nil > | > | topaz 1> topaz 1> [76033 sz:19 cls: 801793 System class] System > | > | class > | > | superClass [72193 sz:19 cls: 206081 Object class] Object class > | > | format [258 sz:0 cls: 74241 SmallInteger] 32 > | > | instVars [2 sz:0 cls: 74241 SmallInteger] 0 > | > | instVarNames [422145 sz:0 cls: 66817 Array] an Array > | > | constraints [421889 sz:0 cls: 66817 Array] an Array > | > | classVars [421633 sz:26 cls: 111361 SymbolDictionary] a > | > | SymbolDictionary > | > | methodDict [711937 sz:112 cls: 99073 GsMethodDictionary] a > | > | GsMethodDictionary > | > | poolDictionaries [421377 sz:0 cls: 66817 Array] an Array > | > | categories [421121 sz:28 cls: 99073 GsMethodDictionary] a > | > | GsMethodDictionary > | > | secondarySuperclasses [20 sz:0 cls: 76289 UndefinedObject] nil > | > | name [801537 sz:6 cls: 110849 Symbol] System > | > | classHistory [420865 sz:3 cls: 82689 ClassHistory] a ClassHistory > | > | description [13498369 sz:10 cls: 95233 GsClassDocumentation] a > | > | GsClassDocumentation > | > | migrationDestination [20 sz:0 cls: 76289 UndefinedObject] nil > | > | timeStamp [14510593 sz:4 cls: 118785 DateTime] a DateTime > | > | userId [14508801 sz:10 cls: 74753 String] SystemUser > | > | extraDict [14524929 sz:14 cls: 111361 SymbolDictionary] a > | > | SymbolDictionary > | > | classCategory [20 sz:0 cls: 76289 UndefinedObject] nil > | > | subclasses [20 sz:0 cls: 76289 UndefinedObject] nil > | > | > | > | > | > | topaz 1> topaz 1> WAFastCGIAdaptor Server started on port 9001 > | > | ----------------------------------------------------- > | > | GemStone: Error Nonfatal > | > | The object with object ID 81065894683350528 does not exist. > | > | Error Category: 231169 [GemStone] Number: 2101 Arg Count: 1 > | > | Context : > | > | 526648321 > | > | Arg 1: [648527157466804226 sz:0 cls: 74241 SmallInteger] > | > | 81065894683350528 > | > | > | > | > | > | Now executing the following command saved from "iferr 1": > | > | where > | > | ==> 1 GsProcess class >> > | > | installPartialContinuation:atLevel:value: @2 > | > | line 1 [GsMethod 4487425] > | > | 2 WAPartialContinuation >> value: @13 line 11 [GsMethod > | > | 212791041] > | > | 3 WAPartialContinuation >> valueWithPossibleArguments: @2 line 2 > | > | [GsMethod 218326273] > | > | 4 ComplexBlock in WAComponent >> show:onAnswer:delegation: @7 > | > | line 7 > | > | [GsMethod 194749185] > | > | 5 ComplexBlock in ExecutableBlock >> valueWithPossibleArguments: > | > | @12 > | > | line 8 [GsMethod 116163585] > | > | 6 WAAnswerHandler >> handleAnswer:continueWith: @3 line 2 > | > | [GsMethod > | > | 194735873] > | > | 7 WADecoration >> handleAnswer: @6 line 3 [GsMethod 194731009] > | > | 8 WAComponent >> answer: @2 line 5 [GsMethod 194751745] > | > | > | > | > | > | > | > | > | > | I found this on the net: > | > | > | > | > | > | > | > | Object does not exist errors > | > | GBS applications may encounter object does not exist errors in > | > | non-persistent > | > | objects. This is due to a problem with the fix for bug #40703 in > | > | version > | > | 2.4.4, which resulted in non-persistent objects not properly > | > | protected > | > | from garbage collection. > | > | > | > | Workaround: > | > | > | > | none/not applicable > | > | from: > | > | > | > | > | > | > | > | > | > | > | > | > | > | http://www.gemstone.com/docs/GemStoneS/bugnotes/bugnotes/40948.html > | > | > | > | > | > | > | > | So, should I worry about this? I implemented code that allowed a > | > | user > | > | to call an editor, switch out on the navigation menu, call > | > | another > | > | editor, > | > | switch out. With each switch, I send answer: false to the open > | > | editor > | > | to close it so that it is not hanging around open. My idea > | > | was to hide the section navigation when the editor came up but > | > | I'm > | > | getting push back from my user. > | > | > | > | > | > | What do you think? > | > | > | > | > | > | Larry > | > | > | > | > | > | > | > | > | > | |
On Feb 20, 2012, at 11:48 AM, Lawrence Kellogg wrote: > Hello Dale, > Well, my system has been up for days, running with no problems, not that it has been getting a lot of traffic, but still, no crashes. Today, I hit the Object does not exist error again. I guess I can do another object audit but, other than that, I'm not sure how to proceed. Do you think an upgrade to 2.4.5 will help me? > By the way, I went through the ObjectAudit steps again and did not find any errors….. Larry > Here is the walkback: > > topaz 1> topaz 1> WAFastCGIAdaptor Server started on port 9001 > ----------------------------------------------------- > GemStone: Error Nonfatal > The object with object ID 76562293713797632 does not exist. > Error Category: 231169 [GemStone] Number: 2101 Arg Count: 1 Context : 412915713 > Arg 1: [612498349710381058 sz:0 cls: 74241 SmallInteger] 76562293713797632 > > Now executing the following command saved from "iferr 1": > where > ==> 1 WAComponent >> decoration @3 line 1 [GsMethod 194749441] > 2 WAComponent >> addDecoration: @2 line 6 [GsMethod 194748417] > 3 WAComponent >> show:onAnswer:delegation: @10 line 8 [GsMethod 194749185] > 4 WAComponent >> show:onAnswer: @5 line 5 [GsMethod 499699713] > 5 WAComponent >> call:onAnswer: @5 line 8 [GsMethod 194750977] > 6 ComplexBlock in WAComponent >> call: @3 line 4 [GsMethod 191317249] > 7 ComplexBlock in WAComponent >> wait: @3 line 3 [GsMethod 191268353] > 8 GRGemStonePlatform >> seasideSuspendFlowDo: @9 line 5 [GsMethod 499655937] > 9 WAComponent >> wait: @4 line 3 [GsMethod 191268353] > 10 WAComponent >> call: @4 line 4 [GsMethod 191317249] > 11 PracticeJournalLoginTask >> go @14 line 9 [GsMethod 371393537] > > > Larry > > On Feb 11, 2012, at 2:34 PM, Dale Henrichs wrote: > >> Larry, >> >> Yes, everything looks clean, I'm a little bit surprised that you didn't find the original error in you first audit, but the implication is that the "corrupt object" never got persisted ... indicating some other type of corruption ... >> >> A clean object audit means that your data base has no corruption so you're good to go ... I'll talk to some guys on Monday and see if they have some ideas as to what might have happened...there's a bug in there somewhere, but for now it looks like it is isolated to the local state in a gem ... >> >> Dale >> >> ----- Original Message ----- >> | From: "Lawrence Kellogg" <[hidden email]> >> | To: "GemStone Seaside beta discussion" <[hidden email]> >> | Sent: Saturday, February 11, 2012 4:18:06 AM >> | Subject: Re: [GS/SS Beta] Object does not exist error - Worry about it? >> | >> | >> | On Feb 10, 2012, at 7:04 PM, Dale Henrichs wrote: >> | >> | > Larry, >> | > >> | > Object does not exist errors are not good things ... and the gem >> | > coming down in this case is probably a good thing ... The fact >> | > that the problem is showing up in a GsProcess means that the >> | > Seaside session data structures are corrupted but not your model >> | > data ... >> | > >> | > You can check for corruption in your data base by running an object >> | > audit (see section 8.2 of the System Administration Guide[1]). If >> | > you follow these steps you own't need to run the object audit as >> | > single user (see the docs): >> | > >> | > - expire sessions >> | > - mfc >> | > - reclaimAll >> | > - object audit >> | > >> | >> | Hello Dale, >> | Ok, I ran: >> | >> | System stopUserSessions >> | SystemRepository objectAudit >> | SystemRepository markForCollection >> | SystemRepository reclaimAll >> | SystemRepository objectAudit >> | >> | I don't see any errors. Here is my log. What do you make of it? >> | >> | Larry >> | >> | >> | [Info]: Login Time: 02/11/2012 12:06:22 PM.972 UTC >> | [02/11/2012 12:06:23 PM.001 UTC] gci login: currSession 1 rpc gem >> | processId -1 >> | successful login >> | topaz 1> printit >> | System hasMissingGcGems >> | % >> | false >> | topaz 1> printit >> | System stopUserSessions >> | % >> | System class >> | superClass Object class >> | format 32 >> | instVars 0 >> | instVarNames an Array >> | constraints an Array >> | classVars a SymbolDictionary >> | methodDict a GsMethodDictionary >> | poolDictionaries an Array >> | categories a GsMethodDictionary >> | secondarySuperclasses nil >> | name System >> | classHistory a ClassHistory >> | description a GsClassDocumentation >> | migrationDestination nil >> | timeStamp a DateTime >> | userId SystemUser >> | extraDict a SymbolDictionary >> | classCategory nil >> | subclasses nil >> | >> | topaz 1> printit >> | SystemRepository objectAudit >> | % >> | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 >> | --setGcConfig: set reclaimMinPages to 1 >> | --reclaimAll: changed reclaimMinPages from 40 to 1 >> | --setGcConfig: set reclaimSleepTime to 1 >> | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 >> | --reclaimAll: using reclaimDeadEnabled true >> | --reclaimAll: simpleCommit loopCount 10 >> | 02/11/2012 12:07:41 PM.070 UTC: Starting object table scan >> | 02/11/2012 12:07:41 PM.698 UTC: Finished object table scan >> | >> | Object audit is proceeding in FullAudit mode: >> | Scavenging completed (either single user mode or no pages to >> | scavenge). >> | All audit checks are enabled. >> | >> | Object audit as of 02/11/2012 12:07:41 PM UTC. >> | Summary of objects whose sizes exceed 100000 Bytes or Oops: >> | >> | ObjectID Class ClassName >> | LogicalSize >> | -------------------------------------------------------------------------------------------------------------- >> | 305743617 74753 String >> | 134740 Oops >> | 149534721 74753 String >> | 164661 Oops >> | 173784833 74753 String >> | 163312 Oops >> | 196368897 74753 String >> | 164661 Oops >> | 305774593 74753 String >> | 134740 Oops >> | 175519489 74753 String >> | 376305 Oops >> | 196571393 74753 String >> | 379399 Oops >> | 175494145 74753 String >> | 201874 Oops >> | 197005569 74753 String >> | 202074 Oops >> | 149996289 74753 String >> | 236426 Oops >> | 151722753 74753 String >> | 379399 Oops >> | 151723777 74753 String >> | 202074 Oops >> | 274619393 74753 String >> | 1170577 Oops >> | 265139713 74753 String >> | 1170577 Oops >> | 215910913 66817 Array >> | 331214 Oops >> | 164965121 74753 String >> | 236201 Oops >> | 197155585 74753 String >> | 236426 Oops >> | 271373057 74753 String >> | 1170577 Oops >> | 268426753 74753 String >> | 134740 Oops >> | 264103681 74753 String >> | 1170577 Oops >> | >> | ----------- Object Statistics Summary ----------------- >> | >> | ----- Instances of invisible (private) classes ------ >> | Number of instances: 1072 >> | Total size: 15855 K Bytes >> | Average size: 14.8 Bytes >> | >> | Class: 209153 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 209409 Instances: 1072 Total Size: >> | 15855 K Bytes >> | Class: 209665 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 209921 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 210177 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 210433 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 210689 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 210945 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 211201 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 211457 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 211713 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 211969 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 212225 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 212481 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 212737 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 212993 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 213249 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 213505 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 213761 Instances: 0 Total Size: >> | 0 K Bytes >> | >> | >> | ----- Instances of visible classes ----------------- >> | Number of objects : 1633432 >> | Total Size : 157861 K Bytes >> | size of Object Headers : 38283 K Bytes >> | size of Object Values : 116978 K Bytes >> | size of Object Tags : 0 K Bytes >> | average of Object Value: 73.3 Bytes >> | >> | Object Audit: Audit successfully completed; no errors were detected. >> | --setGcConfig: set reclaimMinPages to 40 >> | --setGcConfig: set reclaimSleepTime to 10 >> | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 >> | --postReclaimAll: restored reclaimMinPages to 40 >> | true >> | topaz 1> printit >> | SystemRepository markForCollection >> | % >> | start MFC mark/sweep phase: 02/11/2012 12:08:56 PM UTC >> | WARNING, unable to resolve either garMarkSweepPageBufSize or >> | mfcGcPageBufSize, using default 320 >> | MarkSweepArgsSType::(): buffer size= 320 pages >> | start MFC process dead phase: 02/11/2012 12:08:59 PM UTC >> | end MFC: 02/11/2012 12:08:59 PM UTC >> | Successful completion of markForCollection. >> | 1613875 live objects found. >> | 20629 possible dead objects, occupying approximately 1856610 >> | bytes, may be reclaimed. >> | topaz 1> printit >> | SystemRepository reclaimAll >> | % >> | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 >> | --setGcConfig: set reclaimMinPages to 1 >> | --reclaimAll: changed reclaimMinPages from 40 to 1 >> | --setGcConfig: set reclaimSleepTime to 1 >> | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 >> | --reclaimAll: using reclaimDeadEnabled true >> | --reclaimAll: simpleCommit loopCount 10 >> | an Array >> | #1 40 >> | #2 10 >> | #3 0 >> | >> | topaz 1> printit >> | SystemRepository objectAudit >> | % >> | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 >> | --setGcConfig: set reclaimMinPages to 1 >> | --reclaimAll: changed reclaimMinPages from 1 to 1 >> | --setGcConfig: set reclaimSleepTime to 1 >> | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 >> | --reclaimAll: using reclaimDeadEnabled true >> | 02/11/2012 12:11:27 PM.328 UTC: Starting object table scan >> | 02/11/2012 12:11:27 PM.921 UTC: Finished object table scan >> | >> | Object audit is proceeding in FullAudit mode: >> | Scavenging completed (either single user mode or no pages to >> | scavenge). >> | All audit checks are enabled. >> | >> | Object audit as of 02/11/2012 12:11:27 PM UTC. >> | Summary of objects whose sizes exceed 100000 Bytes or Oops: >> | >> | ObjectID Class ClassName >> | LogicalSize >> | -------------------------------------------------------------------------------------------------------------- >> | 305743617 74753 String >> | 134740 Oops >> | 149534721 74753 String >> | 164661 Oops >> | 173784833 74753 String >> | 163312 Oops >> | 196368897 74753 String >> | 164661 Oops >> | 305774593 74753 String >> | 134740 Oops >> | 175519489 74753 String >> | 376305 Oops >> | 196571393 74753 String >> | 379399 Oops >> | 175494145 74753 String >> | 201874 Oops >> | 197005569 74753 String >> | 202074 Oops >> | 149996289 74753 String >> | 236426 Oops >> | 151722753 74753 String >> | 379399 Oops >> | 151723777 74753 String >> | 202074 Oops >> | 274619393 74753 String >> | 1170577 Oops >> | 265139713 74753 String >> | 1170577 Oops >> | 215910913 66817 Array >> | 331214 Oops >> | 164965121 74753 String >> | 236201 Oops >> | 197155585 74753 String >> | 236426 Oops >> | 271373057 74753 String >> | 1170577 Oops >> | 268426753 74753 String >> | 134740 Oops >> | 264103681 74753 String >> | 1170577 Oops >> | >> | ----------- Object Statistics Summary ----------------- >> | >> | ----- Instances of invisible (private) classes ------ >> | Number of instances: 1072 >> | Total size: 15855 K Bytes >> | Average size: 14.8 Bytes >> | >> | Class: 209153 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 209409 Instances: 1072 Total Size: >> | 15855 K Bytes >> | Class: 209665 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 209921 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 210177 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 210433 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 210689 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 210945 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 211201 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 211457 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 211713 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 211969 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 212225 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 212481 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 212737 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 212993 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 213249 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 213505 Instances: 0 Total Size: >> | 0 K Bytes >> | Class: 213761 Instances: 0 Total Size: >> | 0 K Bytes >> | >> | >> | ----- Instances of visible classes ----------------- >> | Number of objects : 1612803 >> | Total Size : 156912 K Bytes >> | size of Object Headers : 37800 K Bytes >> | size of Object Values : 116516 K Bytes >> | size of Object Tags : 0 K Bytes >> | average of Object Value: 74.0 Bytes >> | >> | Object Audit: Audit successfully completed; no errors were detected. >> | --setGcConfig: set reclaimMinPages to 1 >> | --setGcConfig: set reclaimSleepTime to 1 >> | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 >> | --postReclaimAll: restored reclaimMinPages to 1 >> | true >> | topaz 1> >> | topaz 1> >> | >> | >> | > If, as I suspect, you've got corruption in GsProcess objects they >> | > only impact Seaside session state, and should have disappeared by >> | > the time you run the object audit ... >> | > >> | > This problems seems to ring a bell, but it seems to me that the >> | > problem I am thinking of showed up in GemStone 3.0 and I think it >> | > was fixed in GemStone 3.0.1... so I'm curious what version of >> | > GemStone you are using. >> | > >> | > As I think about this, I seem to recall that the problem was >> | > related to deeply nested block structure in a method that was >> | > involved in partial continuations, so I am curious if you happen >> | > to have some deeply nested block structures let's say more than 5 >> | > or 6 levels deep in your method? In fact even in 3.0.1 I think >> | > that there might be an effective limit (the engineer that worked >> | > on this will be back on Monday for exact details), so if you are >> | > running with 3.0.1, you should definitely be suspicious of deep >> | > nesting of blocks... >> | > >> | > Dale >> | > >> | > [1] >> | > http://community.gemstone.com/display/GSS64/GemStoneS+64+Documentation >> | > >> | > ----- Original Message ----- >> | > | From: "Lawrence Kellogg" <[hidden email]> >> | > | To: "GemStone Seaside beta discussion" >> | > | <[hidden email]> >> | > | Sent: Friday, February 10, 2012 2:13:15 PM >> | > | Subject: [GS/SS Beta] Object does not exist error - Worry about >> | > | it? >> | > | >> | > | >> | > | >> | > | Hello, >> | > | After a long series of calls and answers in Seaside, I got an >> | > | Object >> | > | does not exist error that brought down the fast cgi gateway. My >> | > | production error handler was not triggered, although it was >> | > | installed, as far as I could tell. Strange. My supervise fastcgi >> | > | process also did not pick up my dead fastcgi process. Not a good >> | > | day. >> | > | >> | > | Here is the walkback: >> | > | >> | > | >> | > | >> | > | USER IDS: REAL=seasideuser (500) EFFECTIVE=seasideuser (500) | >> | > | |_____________________________________________________________________________| >> | > | topaz> topaz> topaz> topaz> topaz> topaz> topaz> [Info]: LNK >> | > | client/gem GCI levels = 844/844 >> | > | [Info]: User ID: DataCurator >> | > | [Info]: Repository: seaside >> | > | [Info]: Session ID: 5 >> | > | [Info]: GCI Client Host: <Linked> >> | > | [Info]: Page server PID: -1 >> | > | [Info]: Login Time: 02/10/2012 09:27:56 PM.572 UTC >> | > | [02/10/2012 09:27:56 PM.592 UTC] gci login: currSession 1 rpc gem >> | > | processId -1 >> | > | successful login >> | > | topaz 1> topaz 1> [20 sz:0 cls: 76289 UndefinedObject] nil >> | > | topaz 1> topaz 1> [76033 sz:19 cls: 801793 System class] System >> | > | class >> | > | superClass [72193 sz:19 cls: 206081 Object class] Object class >> | > | format [258 sz:0 cls: 74241 SmallInteger] 32 >> | > | instVars [2 sz:0 cls: 74241 SmallInteger] 0 >> | > | instVarNames [422145 sz:0 cls: 66817 Array] an Array >> | > | constraints [421889 sz:0 cls: 66817 Array] an Array >> | > | classVars [421633 sz:26 cls: 111361 SymbolDictionary] a >> | > | SymbolDictionary >> | > | methodDict [711937 sz:112 cls: 99073 GsMethodDictionary] a >> | > | GsMethodDictionary >> | > | poolDictionaries [421377 sz:0 cls: 66817 Array] an Array >> | > | categories [421121 sz:28 cls: 99073 GsMethodDictionary] a >> | > | GsMethodDictionary >> | > | secondarySuperclasses [20 sz:0 cls: 76289 UndefinedObject] nil >> | > | name [801537 sz:6 cls: 110849 Symbol] System >> | > | classHistory [420865 sz:3 cls: 82689 ClassHistory] a ClassHistory >> | > | description [13498369 sz:10 cls: 95233 GsClassDocumentation] a >> | > | GsClassDocumentation >> | > | migrationDestination [20 sz:0 cls: 76289 UndefinedObject] nil >> | > | timeStamp [14510593 sz:4 cls: 118785 DateTime] a DateTime >> | > | userId [14508801 sz:10 cls: 74753 String] SystemUser >> | > | extraDict [14524929 sz:14 cls: 111361 SymbolDictionary] a >> | > | SymbolDictionary >> | > | classCategory [20 sz:0 cls: 76289 UndefinedObject] nil >> | > | subclasses [20 sz:0 cls: 76289 UndefinedObject] nil >> | > | >> | > | >> | > | topaz 1> topaz 1> WAFastCGIAdaptor Server started on port 9001 >> | > | ----------------------------------------------------- >> | > | GemStone: Error Nonfatal >> | > | The object with object ID 81065894683350528 does not exist. >> | > | Error Category: 231169 [GemStone] Number: 2101 Arg Count: 1 >> | > | Context : >> | > | 526648321 >> | > | Arg 1: [648527157466804226 sz:0 cls: 74241 SmallInteger] >> | > | 81065894683350528 >> | > | >> | > | >> | > | Now executing the following command saved from "iferr 1": >> | > | where >> | > | ==> 1 GsProcess class >> >> | > | installPartialContinuation:atLevel:value: @2 >> | > | line 1 [GsMethod 4487425] >> | > | 2 WAPartialContinuation >> value: @13 line 11 [GsMethod >> | > | 212791041] >> | > | 3 WAPartialContinuation >> valueWithPossibleArguments: @2 line 2 >> | > | [GsMethod 218326273] >> | > | 4 ComplexBlock in WAComponent >> show:onAnswer:delegation: @7 >> | > | line 7 >> | > | [GsMethod 194749185] >> | > | 5 ComplexBlock in ExecutableBlock >> valueWithPossibleArguments: >> | > | @12 >> | > | line 8 [GsMethod 116163585] >> | > | 6 WAAnswerHandler >> handleAnswer:continueWith: @3 line 2 >> | > | [GsMethod >> | > | 194735873] >> | > | 7 WADecoration >> handleAnswer: @6 line 3 [GsMethod 194731009] >> | > | 8 WAComponent >> answer: @2 line 5 [GsMethod 194751745] >> | > | >> | > | >> | > | >> | > | >> | > | I found this on the net: >> | > | >> | > | >> | > | >> | > | Object does not exist errors >> | > | GBS applications may encounter object does not exist errors in >> | > | non-persistent >> | > | objects. This is due to a problem with the fix for bug #40703 in >> | > | version >> | > | 2.4.4, which resulted in non-persistent objects not properly >> | > | protected >> | > | from garbage collection. >> | > | >> | > | Workaround: >> | > | >> | > | none/not applicable >> | > | from: >> | > | >> | > | >> | > | >> | > | >> | > | >> | > | >> | > | http://www.gemstone.com/docs/GemStoneS/bugnotes/bugnotes/40948.html >> | > | >> | > | >> | > | >> | > | So, should I worry about this? I implemented code that allowed a >> | > | user >> | > | to call an editor, switch out on the navigation menu, call >> | > | another >> | > | editor, >> | > | switch out. With each switch, I send answer: false to the open >> | > | editor >> | > | to close it so that it is not hanging around open. My idea >> | > | was to hide the section navigation when the editor came up but >> | > | I'm >> | > | getting push back from my user. >> | > | >> | > | >> | > | What do you think? >> | > | >> | > | >> | > | Larry >> | > | >> | > | >> | > | >> | > | >> | >> | > |
In reply to this post by Larry Kellogg
Larry,
We should try to dig into this one some more. To start with what version of Gemstone are you using? If you are using 2.4.4.1, then I'm not aware of an issue that would warrant an upgrade to 2.4.5, but I will check around a bit...As I said before, the only place that I've seen "Obj does not exist errors" is in 3.0 and those bugs were fixed in 3.0.1. This time we are getting the error while creating the continuation ... the last episode occurred when you were trying to execute from a continuation. Could you share the source code for PracticeJournalLoginTask >> go? That's the first non-Seaside method on the stack below the error, so it's as good a place as any to start ... It would be useful to see the entire stack as well. The partial continuation copies the stack back to a marker method and it would be useful to examine the source for the methods that are on the stck for clues as to what might be going on... Dale ----- Original Message ----- | From: "Lawrence Kellogg" <[hidden email]> | To: "GemStone Seaside beta discussion" <[hidden email]> | Sent: Monday, February 20, 2012 8:48:22 AM | Subject: Re: [GS/SS Beta] Object does not exist error - Worry about it? | | Hello Dale, | Well, my system has been up for days, running with no problems, not | that it has been getting a lot of traffic, but still, no crashes. | Today, I hit the Object does not exist error again. I guess I can | do another object audit but, other than that, I'm not sure how to | proceed. Do you think an upgrade to 2.4.5 will help me? | | Here is the walkback: | | topaz 1> topaz 1> WAFastCGIAdaptor Server started on port 9001 | ----------------------------------------------------- | GemStone: Error Nonfatal | The object with object ID 76562293713797632 does not exist. | Error Category: 231169 [GemStone] Number: 2101 Arg Count: 1 Context : | 412915713 | Arg 1: [612498349710381058 sz:0 cls: 74241 SmallInteger] | 76562293713797632 | | Now executing the following command saved from "iferr 1": | where | ==> 1 WAComponent >> decoration @3 line 1 [GsMethod 194749441] | 2 WAComponent >> addDecoration: @2 line 6 [GsMethod 194748417] | 3 WAComponent >> show:onAnswer:delegation: @10 line 8 [GsMethod | 194749185] | 4 WAComponent >> show:onAnswer: @5 line 5 [GsMethod 499699713] | 5 WAComponent >> call:onAnswer: @5 line 8 [GsMethod 194750977] | 6 ComplexBlock in WAComponent >> call: @3 line 4 [GsMethod | 191317249] | 7 ComplexBlock in WAComponent >> wait: @3 line 3 [GsMethod | 191268353] | 8 GRGemStonePlatform >> seasideSuspendFlowDo: @9 line 5 [GsMethod | 499655937] | 9 WAComponent >> wait: @4 line 3 [GsMethod 191268353] | 10 WAComponent >> call: @4 line 4 [GsMethod 191317249] | 11 PracticeJournalLoginTask >> go @14 line 9 [GsMethod 371393537] | | | Larry | | On Feb 11, 2012, at 2:34 PM, Dale Henrichs wrote: | | > Larry, | > | > Yes, everything looks clean, I'm a little bit surprised that you | > didn't find the original error in you first audit, but the | > implication is that the "corrupt object" never got persisted ... | > indicating some other type of corruption ... | > | > A clean object audit means that your data base has no corruption so | > you're good to go ... I'll talk to some guys on Monday and see if | > they have some ideas as to what might have happened...there's a | > bug in there somewhere, but for now it looks like it is isolated | > to the local state in a gem ... | > | > Dale | > | > ----- Original Message ----- | > | From: "Lawrence Kellogg" <[hidden email]> | > | To: "GemStone Seaside beta discussion" | > | <[hidden email]> | > | Sent: Saturday, February 11, 2012 4:18:06 AM | > | Subject: Re: [GS/SS Beta] Object does not exist error - Worry | > | about it? | > | | > | | > | On Feb 10, 2012, at 7:04 PM, Dale Henrichs wrote: | > | | > | > Larry, | > | > | > | > Object does not exist errors are not good things ... and the | > | > gem | > | > coming down in this case is probably a good thing ... The fact | > | > that the problem is showing up in a GsProcess means that the | > | > Seaside session data structures are corrupted but not your | > | > model | > | > data ... | > | > | > | > You can check for corruption in your data base by running an | > | > object | > | > audit (see section 8.2 of the System Administration Guide[1]). | > | > If | > | > you follow these steps you own't need to run the object audit | > | > as | > | > single user (see the docs): | > | > | > | > - expire sessions | > | > - mfc | > | > - reclaimAll | > | > - object audit | > | > | > | | > | Hello Dale, | > | Ok, I ran: | > | | > | System stopUserSessions | > | SystemRepository objectAudit | > | SystemRepository markForCollection | > | SystemRepository reclaimAll | > | SystemRepository objectAudit | > | | > | I don't see any errors. Here is my log. What do you make of it? | > | | > | Larry | > | | > | | > | [Info]: Login Time: 02/11/2012 12:06:22 PM.972 UTC | > | [02/11/2012 12:06:23 PM.001 UTC] gci login: currSession 1 rpc gem | > | processId -1 | > | successful login | > | topaz 1> printit | > | System hasMissingGcGems | > | % | > | false | > | topaz 1> printit | > | System stopUserSessions | > | % | > | System class | > | superClass Object class | > | format 32 | > | instVars 0 | > | instVarNames an Array | > | constraints an Array | > | classVars a SymbolDictionary | > | methodDict a GsMethodDictionary | > | poolDictionaries an Array | > | categories a GsMethodDictionary | > | secondarySuperclasses nil | > | name System | > | classHistory a ClassHistory | > | description a GsClassDocumentation | > | migrationDestination nil | > | timeStamp a DateTime | > | userId SystemUser | > | extraDict a SymbolDictionary | > | classCategory nil | > | subclasses nil | > | | > | topaz 1> printit | > | SystemRepository objectAudit | > | % | > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 | > | --setGcConfig: set reclaimMinPages to 1 | > | --reclaimAll: changed reclaimMinPages from 40 to 1 | > | --setGcConfig: set reclaimSleepTime to 1 | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | > | --reclaimAll: using reclaimDeadEnabled true | > | --reclaimAll: simpleCommit loopCount 10 | > | 02/11/2012 12:07:41 PM.070 UTC: Starting object table scan | > | 02/11/2012 12:07:41 PM.698 UTC: Finished object table scan | > | | > | Object audit is proceeding in FullAudit mode: | > | Scavenging completed (either single user mode or no pages to | > | scavenge). | > | All audit checks are enabled. | > | | > | Object audit as of 02/11/2012 12:07:41 PM UTC. | > | Summary of objects whose sizes exceed 100000 Bytes or Oops: | > | | > | ObjectID Class ClassName | > | LogicalSize | > | -------------------------------------------------------------------------------------------------------------- | > | 305743617 74753 String | > | 134740 Oops | > | 149534721 74753 String | > | 164661 Oops | > | 173784833 74753 String | > | 163312 Oops | > | 196368897 74753 String | > | 164661 Oops | > | 305774593 74753 String | > | 134740 Oops | > | 175519489 74753 String | > | 376305 Oops | > | 196571393 74753 String | > | 379399 Oops | > | 175494145 74753 String | > | 201874 Oops | > | 197005569 74753 String | > | 202074 Oops | > | 149996289 74753 String | > | 236426 Oops | > | 151722753 74753 String | > | 379399 Oops | > | 151723777 74753 String | > | 202074 Oops | > | 274619393 74753 String | > | 1170577 Oops | > | 265139713 74753 String | > | 1170577 Oops | > | 215910913 66817 Array | > | 331214 Oops | > | 164965121 74753 String | > | 236201 Oops | > | 197155585 74753 String | > | 236426 Oops | > | 271373057 74753 String | > | 1170577 Oops | > | 268426753 74753 String | > | 134740 Oops | > | 264103681 74753 String | > | 1170577 Oops | > | | > | ----------- Object Statistics Summary ----------------- | > | | > | ----- Instances of invisible (private) classes ------ | > | Number of instances: 1072 | > | Total size: 15855 K Bytes | > | Average size: 14.8 Bytes | > | | > | Class: 209153 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 209409 Instances: 1072 Total Size: | > | 15855 K Bytes | > | Class: 209665 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 209921 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 210177 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 210433 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 210689 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 210945 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 211201 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 211457 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 211713 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 211969 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 212225 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 212481 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 212737 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 212993 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 213249 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 213505 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 213761 Instances: 0 Total Size: | > | 0 K Bytes | > | | > | | > | ----- Instances of visible classes ----------------- | > | Number of objects : 1633432 | > | Total Size : 157861 K Bytes | > | size of Object Headers : 38283 K Bytes | > | size of Object Values : 116978 K Bytes | > | size of Object Tags : 0 K Bytes | > | average of Object Value: 73.3 Bytes | > | | > | Object Audit: Audit successfully completed; no errors were | > | detected. | > | --setGcConfig: set reclaimMinPages to 40 | > | --setGcConfig: set reclaimSleepTime to 10 | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | > | --postReclaimAll: restored reclaimMinPages to 40 | > | true | > | topaz 1> printit | > | SystemRepository markForCollection | > | % | > | start MFC mark/sweep phase: 02/11/2012 12:08:56 PM UTC | > | WARNING, unable to resolve either garMarkSweepPageBufSize or | > | mfcGcPageBufSize, using default 320 | > | MarkSweepArgsSType::(): buffer size= 320 pages | > | start MFC process dead phase: 02/11/2012 12:08:59 PM UTC | > | end MFC: 02/11/2012 12:08:59 PM UTC | > | Successful completion of markForCollection. | > | 1613875 live objects found. | > | 20629 possible dead objects, occupying approximately 1856610 | > | bytes, may be reclaimed. | > | topaz 1> printit | > | SystemRepository reclaimAll | > | % | > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 | > | --setGcConfig: set reclaimMinPages to 1 | > | --reclaimAll: changed reclaimMinPages from 40 to 1 | > | --setGcConfig: set reclaimSleepTime to 1 | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | > | --reclaimAll: using reclaimDeadEnabled true | > | --reclaimAll: simpleCommit loopCount 10 | > | an Array | > | #1 40 | > | #2 10 | > | #3 0 | > | | > | topaz 1> printit | > | SystemRepository objectAudit | > | % | > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 | > | --setGcConfig: set reclaimMinPages to 1 | > | --reclaimAll: changed reclaimMinPages from 1 to 1 | > | --setGcConfig: set reclaimSleepTime to 1 | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | > | --reclaimAll: using reclaimDeadEnabled true | > | 02/11/2012 12:11:27 PM.328 UTC: Starting object table scan | > | 02/11/2012 12:11:27 PM.921 UTC: Finished object table scan | > | | > | Object audit is proceeding in FullAudit mode: | > | Scavenging completed (either single user mode or no pages to | > | scavenge). | > | All audit checks are enabled. | > | | > | Object audit as of 02/11/2012 12:11:27 PM UTC. | > | Summary of objects whose sizes exceed 100000 Bytes or Oops: | > | | > | ObjectID Class ClassName | > | LogicalSize | > | -------------------------------------------------------------------------------------------------------------- | > | 305743617 74753 String | > | 134740 Oops | > | 149534721 74753 String | > | 164661 Oops | > | 173784833 74753 String | > | 163312 Oops | > | 196368897 74753 String | > | 164661 Oops | > | 305774593 74753 String | > | 134740 Oops | > | 175519489 74753 String | > | 376305 Oops | > | 196571393 74753 String | > | 379399 Oops | > | 175494145 74753 String | > | 201874 Oops | > | 197005569 74753 String | > | 202074 Oops | > | 149996289 74753 String | > | 236426 Oops | > | 151722753 74753 String | > | 379399 Oops | > | 151723777 74753 String | > | 202074 Oops | > | 274619393 74753 String | > | 1170577 Oops | > | 265139713 74753 String | > | 1170577 Oops | > | 215910913 66817 Array | > | 331214 Oops | > | 164965121 74753 String | > | 236201 Oops | > | 197155585 74753 String | > | 236426 Oops | > | 271373057 74753 String | > | 1170577 Oops | > | 268426753 74753 String | > | 134740 Oops | > | 264103681 74753 String | > | 1170577 Oops | > | | > | ----------- Object Statistics Summary ----------------- | > | | > | ----- Instances of invisible (private) classes ------ | > | Number of instances: 1072 | > | Total size: 15855 K Bytes | > | Average size: 14.8 Bytes | > | | > | Class: 209153 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 209409 Instances: 1072 Total Size: | > | 15855 K Bytes | > | Class: 209665 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 209921 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 210177 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 210433 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 210689 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 210945 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 211201 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 211457 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 211713 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 211969 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 212225 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 212481 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 212737 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 212993 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 213249 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 213505 Instances: 0 Total Size: | > | 0 K Bytes | > | Class: 213761 Instances: 0 Total Size: | > | 0 K Bytes | > | | > | | > | ----- Instances of visible classes ----------------- | > | Number of objects : 1612803 | > | Total Size : 156912 K Bytes | > | size of Object Headers : 37800 K Bytes | > | size of Object Values : 116516 K Bytes | > | size of Object Tags : 0 K Bytes | > | average of Object Value: 74.0 Bytes | > | | > | Object Audit: Audit successfully completed; no errors were | > | detected. | > | --setGcConfig: set reclaimMinPages to 1 | > | --setGcConfig: set reclaimSleepTime to 1 | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | > | --postReclaimAll: restored reclaimMinPages to 1 | > | true | > | topaz 1> | > | topaz 1> | > | | > | | > | > If, as I suspect, you've got corruption in GsProcess objects | > | > they | > | > only impact Seaside session state, and should have disappeared | > | > by | > | > the time you run the object audit ... | > | > | > | > This problems seems to ring a bell, but it seems to me that the | > | > problem I am thinking of showed up in GemStone 3.0 and I think | > | > it | > | > was fixed in GemStone 3.0.1... so I'm curious what version of | > | > GemStone you are using. | > | > | > | > As I think about this, I seem to recall that the problem was | > | > related to deeply nested block structure in a method that was | > | > involved in partial continuations, so I am curious if you | > | > happen | > | > to have some deeply nested block structures let's say more than | > | > 5 | > | > or 6 levels deep in your method? In fact even in 3.0.1 I think | > | > that there might be an effective limit (the engineer that | > | > worked | > | > on this will be back on Monday for exact details), so if you | > | > are | > | > running with 3.0.1, you should definitely be suspicious of deep | > | > nesting of blocks... | > | > | > | > Dale | > | > | > | > [1] | > | > http://community.gemstone.com/display/GSS64/GemStoneS+64+Documentation | > | > | > | > ----- Original Message ----- | > | > | From: "Lawrence Kellogg" <[hidden email]> | > | > | To: "GemStone Seaside beta discussion" | > | > | <[hidden email]> | > | > | Sent: Friday, February 10, 2012 2:13:15 PM | > | > | Subject: [GS/SS Beta] Object does not exist error - Worry | > | > | about | > | > | it? | > | > | | > | > | | > | > | | > | > | Hello, | > | > | After a long series of calls and answers in Seaside, I got an | > | > | Object | > | > | does not exist error that brought down the fast cgi gateway. | > | > | My | > | > | production error handler was not triggered, although it was | > | > | installed, as far as I could tell. Strange. My supervise | > | > | fastcgi | > | > | process also did not pick up my dead fastcgi process. Not a | > | > | good | > | > | day. | > | > | | > | > | Here is the walkback: | > | > | | > | > | | > | > | | > | > | USER IDS: REAL=seasideuser (500) EFFECTIVE=seasideuser (500) | > | > | | | > | > | |_____________________________________________________________________________| | > | > | topaz> topaz> topaz> topaz> topaz> topaz> topaz> [Info]: LNK | > | > | client/gem GCI levels = 844/844 | > | > | [Info]: User ID: DataCurator | > | > | [Info]: Repository: seaside | > | > | [Info]: Session ID: 5 | > | > | [Info]: GCI Client Host: <Linked> | > | > | [Info]: Page server PID: -1 | > | > | [Info]: Login Time: 02/10/2012 09:27:56 PM.572 UTC | > | > | [02/10/2012 09:27:56 PM.592 UTC] gci login: currSession 1 rpc | > | > | gem | > | > | processId -1 | > | > | successful login | > | > | topaz 1> topaz 1> [20 sz:0 cls: 76289 UndefinedObject] nil | > | > | topaz 1> topaz 1> [76033 sz:19 cls: 801793 System class] | > | > | System | > | > | class | > | > | superClass [72193 sz:19 cls: 206081 Object class] Object | > | > | class | > | > | format [258 sz:0 cls: 74241 SmallInteger] 32 | > | > | instVars [2 sz:0 cls: 74241 SmallInteger] 0 | > | > | instVarNames [422145 sz:0 cls: 66817 Array] an Array | > | > | constraints [421889 sz:0 cls: 66817 Array] an Array | > | > | classVars [421633 sz:26 cls: 111361 SymbolDictionary] a | > | > | SymbolDictionary | > | > | methodDict [711937 sz:112 cls: 99073 GsMethodDictionary] a | > | > | GsMethodDictionary | > | > | poolDictionaries [421377 sz:0 cls: 66817 Array] an Array | > | > | categories [421121 sz:28 cls: 99073 GsMethodDictionary] a | > | > | GsMethodDictionary | > | > | secondarySuperclasses [20 sz:0 cls: 76289 UndefinedObject] | > | > | nil | > | > | name [801537 sz:6 cls: 110849 Symbol] System | > | > | classHistory [420865 sz:3 cls: 82689 ClassHistory] a | > | > | ClassHistory | > | > | description [13498369 sz:10 cls: 95233 GsClassDocumentation] | > | > | a | > | > | GsClassDocumentation | > | > | migrationDestination [20 sz:0 cls: 76289 UndefinedObject] nil | > | > | timeStamp [14510593 sz:4 cls: 118785 DateTime] a DateTime | > | > | userId [14508801 sz:10 cls: 74753 String] SystemUser | > | > | extraDict [14524929 sz:14 cls: 111361 SymbolDictionary] a | > | > | SymbolDictionary | > | > | classCategory [20 sz:0 cls: 76289 UndefinedObject] nil | > | > | subclasses [20 sz:0 cls: 76289 UndefinedObject] nil | > | > | | > | > | | > | > | topaz 1> topaz 1> WAFastCGIAdaptor Server started on port | > | > | 9001 | > | > | ----------------------------------------------------- | > | > | GemStone: Error Nonfatal | > | > | The object with object ID 81065894683350528 does not exist. | > | > | Error Category: 231169 [GemStone] Number: 2101 Arg Count: 1 | > | > | Context : | > | > | 526648321 | > | > | Arg 1: [648527157466804226 sz:0 cls: 74241 SmallInteger] | > | > | 81065894683350528 | > | > | | > | > | | > | > | Now executing the following command saved from "iferr 1": | > | > | where | > | > | ==> 1 GsProcess class >> | > | > | installPartialContinuation:atLevel:value: @2 | > | > | line 1 [GsMethod 4487425] | > | > | 2 WAPartialContinuation >> value: @13 line 11 [GsMethod | > | > | 212791041] | > | > | 3 WAPartialContinuation >> valueWithPossibleArguments: @2 | > | > | line 2 | > | > | [GsMethod 218326273] | > | > | 4 ComplexBlock in WAComponent >> show:onAnswer:delegation: @7 | > | > | line 7 | > | > | [GsMethod 194749185] | > | > | 5 ComplexBlock in ExecutableBlock >> | > | > | valueWithPossibleArguments: | > | > | @12 | > | > | line 8 [GsMethod 116163585] | > | > | 6 WAAnswerHandler >> handleAnswer:continueWith: @3 line 2 | > | > | [GsMethod | > | > | 194735873] | > | > | 7 WADecoration >> handleAnswer: @6 line 3 [GsMethod | > | > | 194731009] | > | > | 8 WAComponent >> answer: @2 line 5 [GsMethod 194751745] | > | > | | > | > | | > | > | | > | > | | > | > | I found this on the net: | > | > | | > | > | | > | > | | > | > | Object does not exist errors | > | > | GBS applications may encounter object does not exist errors | > | > | in | > | > | non-persistent | > | > | objects. This is due to a problem with the fix for bug #40703 | > | > | in | > | > | version | > | > | 2.4.4, which resulted in non-persistent objects not properly | > | > | protected | > | > | from garbage collection. | > | > | | > | > | Workaround: | > | > | | > | > | none/not applicable | > | > | from: | > | > | | > | > | | > | > | | > | > | | > | > | | > | > | | > | > | http://www.gemstone.com/docs/GemStoneS/bugnotes/bugnotes/40948.html | > | > | | > | > | | > | > | | > | > | So, should I worry about this? I implemented code that | > | > | allowed a | > | > | user | > | > | to call an editor, switch out on the navigation menu, call | > | > | another | > | > | editor, | > | > | switch out. With each switch, I send answer: false to the | > | > | open | > | > | editor | > | > | to close it so that it is not hanging around open. My idea | > | > | was to hide the section navigation when the editor came up | > | > | but | > | > | I'm | > | > | getting push back from my user. | > | > | | > | > | | > | > | What do you think? | > | > | | > | > | | > | > | Larry | > | > | | > | > | | > | > | | > | > | | > | | > | | | |
On Feb 21, 2012, at 1:05 PM, Dale Henrichs wrote: > Larry, > > We should try to dig into this one some more. > > To start with what version of Gemstone are you using? If you are using 2.4.4.1, then I'm not aware of an issue that would warrant an upgrade to 2.4.5, but I will check around a bit...As I said before, the only place that I've seen "Obj does not exist errors" is in 3.0 and those bugs were fixed in 3.0.1. > Dale, Thanks for the help. I would like to get to the bottom of this error. This crash takes down Fastcgi so it kills the service. According to the file in the directory, I'm on 2.4.4.1 GemStone64Bit2.4.4.1-x86_64.Linux > This time we are getting the error while creating the continuation ... the last episode occurred when you were trying to execute from a continuation. > > Could you share the source code for PracticeJournalLoginTask >> go? That's the first non-Seaside method on the stack below the error, so it's as good a place as any to start … > Here is the complete source code for the go method: ;-) go | user component | self call: self userLoginView. (self userLoginView user) notNil ifTrue: [ component := self firstComponentToDisplayForUser: self userLoginView user. [ component notNil ] whileTrue: [ self call: component. component := component nextComponentToBeDisplayed ] ] A component is called, and when another component is selected the current component is sent answer: false and the new component to call is returned from that nextComponentToBeDisplayed method. I used to have an implementation that would give me a huge recursive nesting of continuations, as shown by halo, but this shows everything on just a few levels, although I have to say that the walkback looks deep and gnarly. > It would be useful to see the entire stack as well. The partial continuation copies the stack back to a marker method and it would be useful to examine the source for the methods that are on the stck for clues as to what might be going on... > > Dale Here is the complete walk back: topaz 1> topaz 1> WAFastCGIAdaptor Server started on port 9001 ----------------------------------------------------- GemStone: Error Nonfatal The object with object ID 76562293713797632 does not exist. Error Category: 231169 [GemStone] Number: 2101 Arg Count: 1 Context : 412915713 Arg 1: [612498349710381058 sz:0 cls: 74241 SmallInteger] 76562293713797632 Now executing the following command saved from "iferr 1": where ==> 1 WAComponent >> decoration @3 line 1 [GsMethod 194749441] 2 WAComponent >> addDecoration: @2 line 6 [GsMethod 194748417] 3 WAComponent >> show:onAnswer:delegation: @10 line 8 [GsMethod 194749185] 4 WAComponent >> show:onAnswer: @5 line 5 [GsMethod 499699713] 5 WAComponent >> call:onAnswer: @5 line 8 [GsMethod 194750977] 6 ComplexBlock in WAComponent >> call: @3 line 4 [GsMethod 191317249] 7 ComplexBlock in WAComponent >> wait: @3 line 3 [GsMethod 191268353] 8 GRGemStonePlatform >> seasideSuspendFlowDo: @9 line 5 [GsMethod 499655937] 9 WAComponent >> wait: @4 line 3 [GsMethod 191268353] 10 WAComponent >> call: @4 line 4 [GsMethod 191317249] 11 PracticeJournalLoginTask >> go @14 line 9 [GsMethod 371393537] 12 WATask >> execute @1 line 7 [GsMethod 195261697] 13 ComplexBlock in WATaskVisitor >> visitTask: @6 line 4 [GsMethod 194755841] 14 WACallback >> evaluateWithFieldValues: @5 line 2 [GsMethod 177495553] 15 ComplexBlock in WACallbackRegistry >> handle: @16 line 10 [GsMethod 177951489] 16 Collection >> do: @5 line 10 [GsMethod 1547777] 17 WACallbackRegistry >> handle: @17 line 9 [GsMethod 177951489] 18 ComplexBlock in WAActionPhaseContinuation >> runCallbacks @7 line 4 [GsMethod 202613505] 19 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] 20 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] 21 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] 22 WARenderLoopContinuation >> withNotificationHandlerDo: @3 line 2 [GsMethod 202608385] 23 ComplexVCBlock in WAActionPhaseContinuation >> runCallbacks @8 line 3 [GsMethod 202613505] 24 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 [GsMethod 2304001] 25 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11 [GsMethod 2304001] 26 WAActionPhaseContinuation >> runCallbacks @18 line 6 [GsMethod 202613505] 27 WAActionPhaseContinuation >> handleRequest @1 line 2 [GsMethod 202614017] 28 ComplexBlock in WASessionContinuation >> basicValue @3 line 2 [GsMethod 202625537] 29 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] 30 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] 31 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] 32 WASessionContinuation >> withUnregisteredHandlerDo: @7 line 3 [GsMethod 202627073] 33 WASessionContinuation >> basicValue @4 line 2 [GsMethod 202625537] 34 WASessionContinuation >> value @3 line 5 [GsMethod 202623745] 35 WASession >> handleFiltered: @14 line 10 [GsMethod 202205441] 36 WARequestFilter >> handleFiltered: @2 line 4 [GsMethod 176192513] 37 ComplexBlock in WADeprecatedToolFilter >> handleFiltered: @3 line 2 [GsMethod 203213313] 38 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] 39 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] 40 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] 41 WADeprecatedToolFilter >> handleFiltered: @6 line 3 [GsMethod 203213313] 42 WARequestFilter >> handleFiltered: @2 line 4 [GsMethod 176192513] 43 ComplexBlock in WATimingToolFilter >> handleFiltered: @4 line 3 [GsMethod 203208449] 44 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 [GsMethod 2304001] 45 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 [GsMethod 2304001] 46 WATimingToolFilter >> handleFiltered: @8 line 4 [GsMethod 203208449] 47 ComplexBlock in WARequestHandler >> handle: @4 line 4 [GsMethod 178568961] 48 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] 49 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] 50 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] 51 WADynamicVariable class >> use:during: @4 line 4 [GsMethod 177805825] 52 ComplexBlock in WARequestContext >> push:during: @4 line 5 [GsMethod 176176129] 53 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 [GsMethod 2304001] 54 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 [GsMethod 2304001] 55 WARequestContext >> push:during: @7 line 6 [GsMethod 176176129] 56 WARequestHandler >> handle: @5 line 4 [GsMethod 178568961] 57 WASession >> handle: @10 line 11 [GsMethod 202210561] 58 WARegistry >> dispatch:to: @1 line 5 [GsMethod 176153857] 59 WARegistry >> handleKeyed:with: @2 line 5 [GsMethod 176155137] 60 WARegistry >> handleFiltered: @33 line 19 [GsMethod 176146945] 61 WAApplication >> handleFiltered: @9 line 8 [GsMethod 202644225] 62 WARequestFilter >> handleFiltered: @2 line 4 [GsMethod 176192513] 63 ComplexBlock in WAExceptionFilter >> handleFiltered: @6 line 7 [GsMethod 499529473] 64 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] 65 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] 66 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] 67 WADynamicVariable class >> use:during: @4 line 4 [GsMethod 177805825] 68 ComplexVCBlock in WAExceptionFilter >> handleFiltered: @7 line 6 [GsMethod 499529473] 69 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] 70 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] 71 ComplexVCBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] 72 WAExceptionHandler >> handleExceptionsDuring: @8 line 3 [GsMethod 177803521] 73 WAExceptionFilter >> handleFiltered: @8 line 4 [GsMethod 499529473] 74 ComplexBlock in WARequestHandler >> handle: @4 line 4 [GsMethod 178568961] 75 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] 76 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] 77 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] 78 WADynamicVariable class >> use:during: @4 line 4 [GsMethod 177805825] 79 ComplexBlock in WARequestContext >> push:during: @4 line 5 [GsMethod 176176129] 80 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 [GsMethod 2304001] 81 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 [GsMethod 2304001] 82 WARequestContext >> push:during: @7 line 6 [GsMethod 176176129] 83 WARequestHandler >> handle: @5 line 4 [GsMethod 178568961] 84 WADispatcher >> handleFiltered:named: @7 line 5 [GsMethod 179090945] 85 WADispatcher >> handleFiltered: @7 line 6 [GsMethod 179087617] 86 ComplexBlock in WARequestHandler >> handle: @4 line 4 [GsMethod 178568961] 87 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] 88 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] 89 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] 90 WADynamicVariable class >> use:during: @4 line 4 [GsMethod 177805825] 91 ComplexBlock in WARequestContext >> push:during: @4 line 5 [GsMethod 176176129] 92 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 [GsMethod 2304001] 93 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 [GsMethod 2304001] 94 WARequestContext >> push:during: @7 line 6 [GsMethod 176176129] 95 WARequestHandler >> handle: @5 line 4 [GsMethod 178568961] 96 ComplexBlock in WAServerAdaptor >> handleRequest: @4 line 4 [GsMethod 176816641] 97 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] 98 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] 99 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] 100 WAServerAdaptor >> handleRequest: @6 line 5 [GsMethod 176816641] 101 WAServerAdaptor >> handle: @1 line 4 [GsMethod 176817921] 102 ComplexBlock in WAServerAdaptor >> process: @5 line 6 [GsMethod 176817153] 103 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 [GsMethod 2304001] 104 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 [GsMethod 2304001] 105 WAServerAdaptor >> process: @9 line 7 [GsMethod 176817153] 106 ComplexBlock in WAFastCGIAdaptor >> process: @3 line 6 [GsMethod 212442369] 107 ComplexBlock in GRGemStonePlatform >> seasideProcessRequestWithRetry:resultBlock: @12 line 11 [GsMethod 175179265] 108 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] 109 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] 110 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] 111 ComplexVCBlock in GRGemStonePlatform >> seasideProcessRequestWithRetry:resultBlock: @18 line 12 [GsMethod 175179265] 112 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 [GsMethod 2304001] 113 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11 [GsMethod 2304001] 114 TransientRecursionLock >> critical: @15 line 8 [GsMethod 21159937] 115 GRGemStonePlatform >> seasideProcessRequestWithRetry:resultBlock: @39 line 5 [GsMethod 175179265] 116 ComplexBlock in GRGemStonePlatform >> seasideProcessRequest:adaptor:resultBlock: @7 line 9 [GsMethod 175179521] 117 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] 118 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] 119 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] 120 GRGemStonePlatform >> seasideProcessRequest:adaptor:resultBlock: @32 line 17 [GsMethod 175179521] 121 WAFastCGIAdaptor >> process: @4 line 4 [GsMethod 212442369] 122 ComplexBlock in WAFastCGIAdaptor >> answerResponderRole: @3 line 4 [GsMethod 212444161] 123 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] 124 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] 125 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] 126 WAFastCGIAdaptor >> answerResponderRole: @9 line 5 [GsMethod 212444161] 127 FSResponderRole >> answer @2 line 4 [GsMethod 218695937] 128 FSRole >> handleConnection @3 line 5 [GsMethod 218705409] 129 FSConnection >> unsafeServe @4 line 8 [GsMethod 219646465] 130 ComplexBlock in FSConnection >> safeServe @5 line 8 [GsMethod 499288833] 131 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] 132 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] 133 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] 134 ComplexVCBlock in FSConnection >> safeServe @8 line 9 [GsMethod 499288833] 135 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] 136 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] 137 ComplexVCBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] 138 ComplexVCBlock in FSConnection >> safeServe @11 line 12 [GsMethod 499288833] 139 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 [GsMethod 2304001] 140 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11 [GsMethod 2304001] 141 FSConnection >> safeServe @14 line 15 [GsMethod 499288833] 142 FSConnection >> serve @1 line 4 [GsMethod 219654145] 143 ComplexBlock in FSSocketServer >> listen: @9 line 15 [GsMethod 219292673] 144 GsProcess >> _startPart2 @15 line 17 [GsMethod 4501249] 145 GsProcess >> _start @1 line 9 [GsMethod 4501761] [GsProcess 412915713] topaz 1> [268 sz:0 cls: 68097 Boolean] true topaz 1> HostCallDebugger: invoked at: Mon Feb 20 16:38:18 UTC 2012 UTL_GUARANTEE failed, File /export/toronto3/users/buildgss/244x-1/src/omverify.c line 28 Begin attempt to print C-level stack at: Mon Feb 20 16:38:18 UTC 2012 End of C-level stack: hostcalldebugger invoked in process 6550, at 02/20/2012 04:38:18 PM.681 UTC notifying stone of fatal error [Info]: Logging out at 02/20/2012 04:38:18 PM UTC > > ----- Original Message ----- > | From: "Lawrence Kellogg" <[hidden email]> > | To: "GemStone Seaside beta discussion" <[hidden email]> > | Sent: Monday, February 20, 2012 8:48:22 AM > | Subject: Re: [GS/SS Beta] Object does not exist error - Worry about it? > | > | Hello Dale, > | Well, my system has been up for days, running with no problems, not > | that it has been getting a lot of traffic, but still, no crashes. > | Today, I hit the Object does not exist error again. I guess I can > | do another object audit but, other than that, I'm not sure how to > | proceed. Do you think an upgrade to 2.4.5 will help me? > | > | Here is the walkback: > | > | topaz 1> topaz 1> WAFastCGIAdaptor Server started on port 9001 > | ----------------------------------------------------- > | GemStone: Error Nonfatal > | The object with object ID 76562293713797632 does not exist. > | Error Category: 231169 [GemStone] Number: 2101 Arg Count: 1 Context : > | 412915713 > | Arg 1: [612498349710381058 sz:0 cls: 74241 SmallInteger] > | 76562293713797632 > | > | Now executing the following command saved from "iferr 1": > | where > | ==> 1 WAComponent >> decoration @3 line 1 [GsMethod 194749441] > | 2 WAComponent >> addDecoration: @2 line 6 [GsMethod 194748417] > | 3 WAComponent >> show:onAnswer:delegation: @10 line 8 [GsMethod > | 194749185] > | 4 WAComponent >> show:onAnswer: @5 line 5 [GsMethod 499699713] > | 5 WAComponent >> call:onAnswer: @5 line 8 [GsMethod 194750977] > | 6 ComplexBlock in WAComponent >> call: @3 line 4 [GsMethod > | 191317249] > | 7 ComplexBlock in WAComponent >> wait: @3 line 3 [GsMethod > | 191268353] > | 8 GRGemStonePlatform >> seasideSuspendFlowDo: @9 line 5 [GsMethod > | 499655937] > | 9 WAComponent >> wait: @4 line 3 [GsMethod 191268353] > | 10 WAComponent >> call: @4 line 4 [GsMethod 191317249] > | 11 PracticeJournalLoginTask >> go @14 line 9 [GsMethod 371393537] > | > | > | Larry > | > | On Feb 11, 2012, at 2:34 PM, Dale Henrichs wrote: > | > | > Larry, > | > > | > Yes, everything looks clean, I'm a little bit surprised that you > | > didn't find the original error in you first audit, but the > | > implication is that the "corrupt object" never got persisted ... > | > indicating some other type of corruption ... > | > > | > A clean object audit means that your data base has no corruption so > | > you're good to go ... I'll talk to some guys on Monday and see if > | > they have some ideas as to what might have happened...there's a > | > bug in there somewhere, but for now it looks like it is isolated > | > to the local state in a gem ... > | > > | > Dale > | > > | > ----- Original Message ----- > | > | From: "Lawrence Kellogg" <[hidden email]> > | > | To: "GemStone Seaside beta discussion" > | > | <[hidden email]> > | > | Sent: Saturday, February 11, 2012 4:18:06 AM > | > | Subject: Re: [GS/SS Beta] Object does not exist error - Worry > | > | about it? > | > | > | > | > | > | On Feb 10, 2012, at 7:04 PM, Dale Henrichs wrote: > | > | > | > | > Larry, > | > | > > | > | > Object does not exist errors are not good things ... and the > | > | > gem > | > | > coming down in this case is probably a good thing ... The fact > | > | > that the problem is showing up in a GsProcess means that the > | > | > Seaside session data structures are corrupted but not your > | > | > model > | > | > data ... > | > | > > | > | > You can check for corruption in your data base by running an > | > | > object > | > | > audit (see section 8.2 of the System Administration Guide[1]). > | > | > If > | > | > you follow these steps you own't need to run the object audit > | > | > as > | > | > single user (see the docs): > | > | > > | > | > - expire sessions > | > | > - mfc > | > | > - reclaimAll > | > | > - object audit > | > | > > | > | > | > | Hello Dale, > | > | Ok, I ran: > | > | > | > | System stopUserSessions > | > | SystemRepository objectAudit > | > | SystemRepository markForCollection > | > | SystemRepository reclaimAll > | > | SystemRepository objectAudit > | > | > | > | I don't see any errors. Here is my log. What do you make of it? > | > | > | > | Larry > | > | > | > | > | > | [Info]: Login Time: 02/11/2012 12:06:22 PM.972 UTC > | > | [02/11/2012 12:06:23 PM.001 UTC] gci login: currSession 1 rpc gem > | > | processId -1 > | > | successful login > | > | topaz 1> printit > | > | System hasMissingGcGems > | > | % > | > | false > | > | topaz 1> printit > | > | System stopUserSessions > | > | % > | > | System class > | > | superClass Object class > | > | format 32 > | > | instVars 0 > | > | instVarNames an Array > | > | constraints an Array > | > | classVars a SymbolDictionary > | > | methodDict a GsMethodDictionary > | > | poolDictionaries an Array > | > | categories a GsMethodDictionary > | > | secondarySuperclasses nil > | > | name System > | > | classHistory a ClassHistory > | > | description a GsClassDocumentation > | > | migrationDestination nil > | > | timeStamp a DateTime > | > | userId SystemUser > | > | extraDict a SymbolDictionary > | > | classCategory nil > | > | subclasses nil > | > | > | > | topaz 1> printit > | > | SystemRepository objectAudit > | > | % > | > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 > | > | --setGcConfig: set reclaimMinPages to 1 > | > | --reclaimAll: changed reclaimMinPages from 40 to 1 > | > | --setGcConfig: set reclaimSleepTime to 1 > | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 > | > | --reclaimAll: using reclaimDeadEnabled true > | > | --reclaimAll: simpleCommit loopCount 10 > | > | 02/11/2012 12:07:41 PM.070 UTC: Starting object table scan > | > | 02/11/2012 12:07:41 PM.698 UTC: Finished object table scan > | > | > | > | Object audit is proceeding in FullAudit mode: > | > | Scavenging completed (either single user mode or no pages to > | > | scavenge). > | > | All audit checks are enabled. > | > | > | > | Object audit as of 02/11/2012 12:07:41 PM UTC. > | > | Summary of objects whose sizes exceed 100000 Bytes or Oops: > | > | > | > | ObjectID Class ClassName > | > | LogicalSize > | > | -------------------------------------------------------------------------------------------------------------- > | > | 305743617 74753 String > | > | 134740 Oops > | > | 149534721 74753 String > | > | 164661 Oops > | > | 173784833 74753 String > | > | 163312 Oops > | > | 196368897 74753 String > | > | 164661 Oops > | > | 305774593 74753 String > | > | 134740 Oops > | > | 175519489 74753 String > | > | 376305 Oops > | > | 196571393 74753 String > | > | 379399 Oops > | > | 175494145 74753 String > | > | 201874 Oops > | > | 197005569 74753 String > | > | 202074 Oops > | > | 149996289 74753 String > | > | 236426 Oops > | > | 151722753 74753 String > | > | 379399 Oops > | > | 151723777 74753 String > | > | 202074 Oops > | > | 274619393 74753 String > | > | 1170577 Oops > | > | 265139713 74753 String > | > | 1170577 Oops > | > | 215910913 66817 Array > | > | 331214 Oops > | > | 164965121 74753 String > | > | 236201 Oops > | > | 197155585 74753 String > | > | 236426 Oops > | > | 271373057 74753 String > | > | 1170577 Oops > | > | 268426753 74753 String > | > | 134740 Oops > | > | 264103681 74753 String > | > | 1170577 Oops > | > | > | > | ----------- Object Statistics Summary ----------------- > | > | > | > | ----- Instances of invisible (private) classes ------ > | > | Number of instances: 1072 > | > | Total size: 15855 K Bytes > | > | Average size: 14.8 Bytes > | > | > | > | Class: 209153 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 209409 Instances: 1072 Total Size: > | > | 15855 K Bytes > | > | Class: 209665 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 209921 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 210177 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 210433 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 210689 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 210945 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 211201 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 211457 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 211713 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 211969 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 212225 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 212481 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 212737 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 212993 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 213249 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 213505 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 213761 Instances: 0 Total Size: > | > | 0 K Bytes > | > | > | > | > | > | ----- Instances of visible classes ----------------- > | > | Number of objects : 1633432 > | > | Total Size : 157861 K Bytes > | > | size of Object Headers : 38283 K Bytes > | > | size of Object Values : 116978 K Bytes > | > | size of Object Tags : 0 K Bytes > | > | average of Object Value: 73.3 Bytes > | > | > | > | Object Audit: Audit successfully completed; no errors were > | > | detected. > | > | --setGcConfig: set reclaimMinPages to 40 > | > | --setGcConfig: set reclaimSleepTime to 10 > | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 > | > | --postReclaimAll: restored reclaimMinPages to 40 > | > | true > | > | topaz 1> printit > | > | SystemRepository markForCollection > | > | % > | > | start MFC mark/sweep phase: 02/11/2012 12:08:56 PM UTC > | > | WARNING, unable to resolve either garMarkSweepPageBufSize or > | > | mfcGcPageBufSize, using default 320 > | > | MarkSweepArgsSType::(): buffer size= 320 pages > | > | start MFC process dead phase: 02/11/2012 12:08:59 PM UTC > | > | end MFC: 02/11/2012 12:08:59 PM UTC > | > | Successful completion of markForCollection. > | > | 1613875 live objects found. > | > | 20629 possible dead objects, occupying approximately 1856610 > | > | bytes, may be reclaimed. > | > | topaz 1> printit > | > | SystemRepository reclaimAll > | > | % > | > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 > | > | --setGcConfig: set reclaimMinPages to 1 > | > | --reclaimAll: changed reclaimMinPages from 40 to 1 > | > | --setGcConfig: set reclaimSleepTime to 1 > | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 > | > | --reclaimAll: using reclaimDeadEnabled true > | > | --reclaimAll: simpleCommit loopCount 10 > | > | an Array > | > | #1 40 > | > | #2 10 > | > | #3 0 > | > | > | > | topaz 1> printit > | > | SystemRepository objectAudit > | > | % > | > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 > | > | --setGcConfig: set reclaimMinPages to 1 > | > | --reclaimAll: changed reclaimMinPages from 1 to 1 > | > | --setGcConfig: set reclaimSleepTime to 1 > | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 > | > | --reclaimAll: using reclaimDeadEnabled true > | > | 02/11/2012 12:11:27 PM.328 UTC: Starting object table scan > | > | 02/11/2012 12:11:27 PM.921 UTC: Finished object table scan > | > | > | > | Object audit is proceeding in FullAudit mode: > | > | Scavenging completed (either single user mode or no pages to > | > | scavenge). > | > | All audit checks are enabled. > | > | > | > | Object audit as of 02/11/2012 12:11:27 PM UTC. > | > | Summary of objects whose sizes exceed 100000 Bytes or Oops: > | > | > | > | ObjectID Class ClassName > | > | LogicalSize > | > | -------------------------------------------------------------------------------------------------------------- > | > | 305743617 74753 String > | > | 134740 Oops > | > | 149534721 74753 String > | > | 164661 Oops > | > | 173784833 74753 String > | > | 163312 Oops > | > | 196368897 74753 String > | > | 164661 Oops > | > | 305774593 74753 String > | > | 134740 Oops > | > | 175519489 74753 String > | > | 376305 Oops > | > | 196571393 74753 String > | > | 379399 Oops > | > | 175494145 74753 String > | > | 201874 Oops > | > | 197005569 74753 String > | > | 202074 Oops > | > | 149996289 74753 String > | > | 236426 Oops > | > | 151722753 74753 String > | > | 379399 Oops > | > | 151723777 74753 String > | > | 202074 Oops > | > | 274619393 74753 String > | > | 1170577 Oops > | > | 265139713 74753 String > | > | 1170577 Oops > | > | 215910913 66817 Array > | > | 331214 Oops > | > | 164965121 74753 String > | > | 236201 Oops > | > | 197155585 74753 String > | > | 236426 Oops > | > | 271373057 74753 String > | > | 1170577 Oops > | > | 268426753 74753 String > | > | 134740 Oops > | > | 264103681 74753 String > | > | 1170577 Oops > | > | > | > | ----------- Object Statistics Summary ----------------- > | > | > | > | ----- Instances of invisible (private) classes ------ > | > | Number of instances: 1072 > | > | Total size: 15855 K Bytes > | > | Average size: 14.8 Bytes > | > | > | > | Class: 209153 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 209409 Instances: 1072 Total Size: > | > | 15855 K Bytes > | > | Class: 209665 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 209921 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 210177 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 210433 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 210689 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 210945 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 211201 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 211457 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 211713 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 211969 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 212225 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 212481 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 212737 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 212993 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 213249 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 213505 Instances: 0 Total Size: > | > | 0 K Bytes > | > | Class: 213761 Instances: 0 Total Size: > | > | 0 K Bytes > | > | > | > | > | > | ----- Instances of visible classes ----------------- > | > | Number of objects : 1612803 > | > | Total Size : 156912 K Bytes > | > | size of Object Headers : 37800 K Bytes > | > | size of Object Values : 116516 K Bytes > | > | size of Object Tags : 0 K Bytes > | > | average of Object Value: 74.0 Bytes > | > | > | > | Object Audit: Audit successfully completed; no errors were > | > | detected. > | > | --setGcConfig: set reclaimMinPages to 1 > | > | --setGcConfig: set reclaimSleepTime to 1 > | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 > | > | --postReclaimAll: restored reclaimMinPages to 1 > | > | true > | > | topaz 1> > | > | topaz 1> > | > | > | > | > | > | > If, as I suspect, you've got corruption in GsProcess objects > | > | > they > | > | > only impact Seaside session state, and should have disappeared > | > | > by > | > | > the time you run the object audit ... > | > | > > | > | > This problems seems to ring a bell, but it seems to me that the > | > | > problem I am thinking of showed up in GemStone 3.0 and I think > | > | > it > | > | > was fixed in GemStone 3.0.1... so I'm curious what version of > | > | > GemStone you are using. > | > | > > | > | > As I think about this, I seem to recall that the problem was > | > | > related to deeply nested block structure in a method that was > | > | > involved in partial continuations, so I am curious if you > | > | > happen > | > | > to have some deeply nested block structures let's say more than > | > | > 5 > | > | > or 6 levels deep in your method? In fact even in 3.0.1 I think > | > | > that there might be an effective limit (the engineer that > | > | > worked > | > | > on this will be back on Monday for exact details), so if you > | > | > are > | > | > running with 3.0.1, you should definitely be suspicious of deep > | > | > nesting of blocks... > | > | > > | > | > Dale > | > | > > | > | > [1] > | > | > http://community.gemstone.com/display/GSS64/GemStoneS+64+Documentation > | > | > > | > | > ----- Original Message ----- > | > | > | From: "Lawrence Kellogg" <[hidden email]> > | > | > | To: "GemStone Seaside beta discussion" > | > | > | <[hidden email]> > | > | > | Sent: Friday, February 10, 2012 2:13:15 PM > | > | > | Subject: [GS/SS Beta] Object does not exist error - Worry > | > | > | about > | > | > | it? > | > | > | > | > | > | > | > | > | > | > | > | Hello, > | > | > | After a long series of calls and answers in Seaside, I got an > | > | > | Object > | > | > | does not exist error that brought down the fast cgi gateway. > | > | > | My > | > | > | production error handler was not triggered, although it was > | > | > | installed, as far as I could tell. Strange. My supervise > | > | > | fastcgi > | > | > | process also did not pick up my dead fastcgi process. Not a > | > | > | good > | > | > | day. > | > | > | > | > | > | Here is the walkback: > | > | > | > | > | > | > | > | > | > | > | > | USER IDS: REAL=seasideuser (500) EFFECTIVE=seasideuser (500) > | > | > | | > | > | > | |_____________________________________________________________________________| > | > | > | topaz> topaz> topaz> topaz> topaz> topaz> topaz> [Info]: LNK > | > | > | client/gem GCI levels = 844/844 > | > | > | [Info]: User ID: DataCurator > | > | > | [Info]: Repository: seaside > | > | > | [Info]: Session ID: 5 > | > | > | [Info]: GCI Client Host: <Linked> > | > | > | [Info]: Page server PID: -1 > | > | > | [Info]: Login Time: 02/10/2012 09:27:56 PM.572 UTC > | > | > | [02/10/2012 09:27:56 PM.592 UTC] gci login: currSession 1 rpc > | > | > | gem > | > | > | processId -1 > | > | > | successful login > | > | > | topaz 1> topaz 1> [20 sz:0 cls: 76289 UndefinedObject] nil > | > | > | topaz 1> topaz 1> [76033 sz:19 cls: 801793 System class] > | > | > | System > | > | > | class > | > | > | superClass [72193 sz:19 cls: 206081 Object class] Object > | > | > | class > | > | > | format [258 sz:0 cls: 74241 SmallInteger] 32 > | > | > | instVars [2 sz:0 cls: 74241 SmallInteger] 0 > | > | > | instVarNames [422145 sz:0 cls: 66817 Array] an Array > | > | > | constraints [421889 sz:0 cls: 66817 Array] an Array > | > | > | classVars [421633 sz:26 cls: 111361 SymbolDictionary] a > | > | > | SymbolDictionary > | > | > | methodDict [711937 sz:112 cls: 99073 GsMethodDictionary] a > | > | > | GsMethodDictionary > | > | > | poolDictionaries [421377 sz:0 cls: 66817 Array] an Array > | > | > | categories [421121 sz:28 cls: 99073 GsMethodDictionary] a > | > | > | GsMethodDictionary > | > | > | secondarySuperclasses [20 sz:0 cls: 76289 UndefinedObject] > | > | > | nil > | > | > | name [801537 sz:6 cls: 110849 Symbol] System > | > | > | classHistory [420865 sz:3 cls: 82689 ClassHistory] a > | > | > | ClassHistory > | > | > | description [13498369 sz:10 cls: 95233 GsClassDocumentation] > | > | > | a > | > | > | GsClassDocumentation > | > | > | migrationDestination [20 sz:0 cls: 76289 UndefinedObject] nil > | > | > | timeStamp [14510593 sz:4 cls: 118785 DateTime] a DateTime > | > | > | userId [14508801 sz:10 cls: 74753 String] SystemUser > | > | > | extraDict [14524929 sz:14 cls: 111361 SymbolDictionary] a > | > | > | SymbolDictionary > | > | > | classCategory [20 sz:0 cls: 76289 UndefinedObject] nil > | > | > | subclasses [20 sz:0 cls: 76289 UndefinedObject] nil > | > | > | > | > | > | > | > | > | topaz 1> topaz 1> WAFastCGIAdaptor Server started on port > | > | > | 9001 > | > | > | ----------------------------------------------------- > | > | > | GemStone: Error Nonfatal > | > | > | The object with object ID 81065894683350528 does not exist. > | > | > | Error Category: 231169 [GemStone] Number: 2101 Arg Count: 1 > | > | > | Context : > | > | > | 526648321 > | > | > | Arg 1: [648527157466804226 sz:0 cls: 74241 SmallInteger] > | > | > | 81065894683350528 > | > | > | > | > | > | > | > | > | Now executing the following command saved from "iferr 1": > | > | > | where > | > | > | ==> 1 GsProcess class >> > | > | > | installPartialContinuation:atLevel:value: @2 > | > | > | line 1 [GsMethod 4487425] > | > | > | 2 WAPartialContinuation >> value: @13 line 11 [GsMethod > | > | > | 212791041] > | > | > | 3 WAPartialContinuation >> valueWithPossibleArguments: @2 > | > | > | line 2 > | > | > | [GsMethod 218326273] > | > | > | 4 ComplexBlock in WAComponent >> show:onAnswer:delegation: @7 > | > | > | line 7 > | > | > | [GsMethod 194749185] > | > | > | 5 ComplexBlock in ExecutableBlock >> > | > | > | valueWithPossibleArguments: > | > | > | @12 > | > | > | line 8 [GsMethod 116163585] > | > | > | 6 WAAnswerHandler >> handleAnswer:continueWith: @3 line 2 > | > | > | [GsMethod > | > | > | 194735873] > | > | > | 7 WADecoration >> handleAnswer: @6 line 3 [GsMethod > | > | > | 194731009] > | > | > | 8 WAComponent >> answer: @2 line 5 [GsMethod 194751745] > | > | > | > | > | > | > | > | > | > | > | > | > | > | > | I found this on the net: > | > | > | > | > | > | > | > | > | > | > | > | Object does not exist errors > | > | > | GBS applications may encounter object does not exist errors > | > | > | in > | > | > | non-persistent > | > | > | objects. This is due to a problem with the fix for bug #40703 > | > | > | in > | > | > | version > | > | > | 2.4.4, which resulted in non-persistent objects not properly > | > | > | protected > | > | > | from garbage collection. > | > | > | > | > | > | Workaround: > | > | > | > | > | > | none/not applicable > | > | > | from: > | > | > | > | > | > | > | > | > | > | > | > | > | > | > | > | > | > | > | > | > | http://www.gemstone.com/docs/GemStoneS/bugnotes/bugnotes/40948.html > | > | > | > | > | > | > | > | > | > | > | > | So, should I worry about this? I implemented code that > | > | > | allowed a > | > | > | user > | > | > | to call an editor, switch out on the navigation menu, call > | > | > | another > | > | > | editor, > | > | > | switch out. With each switch, I send answer: false to the > | > | > | open > | > | > | editor > | > | > | to close it so that it is not hanging around open. My idea > | > | > | was to hide the section navigation when the editor came up > | > | > | but > | > | > | I'm > | > | > | getting push back from my user. > | > | > | > | > | > | > | > | > | What do you think? > | > | > | > | > | > | > | > | > | Larry > | > | > | > | > | > | > | > | > | > | > | > | > | > | > | > | > | > | |
fyi, I have been observing occurrences of this bug as well, with exactly the same point of failure in the stack.
No repository problems or audit warnings. Funnily, I've never seen this in any stone running Yesplan. The stone where we have this problem is also running a Seaside application but the only discriminating factor I can observe is that this application uses call/answer a lot more (while we almost never use that in Yesplan). It probably does not help a lot finding the error... but I will look up the stack traces and post them here if they might contain some clues. On 21 Feb 2012, at 20:13, Lawrence Kellogg wrote: > > On Feb 21, 2012, at 1:05 PM, Dale Henrichs wrote: > >> Larry, >> >> We should try to dig into this one some more. >> >> To start with what version of Gemstone are you using? If you are using 2.4.4.1, then I'm not aware of an issue that would warrant an upgrade to 2.4.5, but I will check around a bit...As I said before, the only place that I've seen "Obj does not exist errors" is in 3.0 and those bugs were fixed in 3.0.1. >> > > Dale, > Thanks for the help. I would like to get to the bottom of this error. This crash takes down Fastcgi so it kills the service. > > According to the file in the directory, I'm on 2.4.4.1 > > GemStone64Bit2.4.4.1-x86_64.Linux > > > > >> This time we are getting the error while creating the continuation ... the last episode occurred when you were trying to execute from a continuation. >> >> Could you share the source code for PracticeJournalLoginTask >> go? That's the first non-Seaside method on the stack below the error, so it's as good a place as any to start … >> > > Here is the complete source code for the go method: ;-) > > go > | user component | > self call: self userLoginView. > (self userLoginView user) notNil > ifTrue: [ > component := self firstComponentToDisplayForUser: self userLoginView user. > [ component notNil ] > whileTrue: [ > self call: component. > component := component nextComponentToBeDisplayed ] ] > > A component is called, and when another component is selected the current component is sent answer: false and > the new component to call is returned from that nextComponentToBeDisplayed method. > > I used to have an implementation that would give me a huge recursive nesting of continuations, as shown by > halo, but this shows everything on just a few levels, although I have to say that the walkback looks deep and gnarly. > > >> It would be useful to see the entire stack as well. The partial continuation copies the stack back to a marker method and it would be useful to examine the source for the methods that are on the stck for clues as to what might be going on... >> >> Dale > > > Here is the complete walk back: > > topaz 1> topaz 1> WAFastCGIAdaptor Server started on port 9001 > ----------------------------------------------------- > GemStone: Error Nonfatal > The object with object ID 76562293713797632 does not exist. > Error Category: 231169 [GemStone] Number: 2101 Arg Count: 1 Context : 412915713 > Arg 1: [612498349710381058 sz:0 cls: 74241 SmallInteger] 76562293713797632 > > Now executing the following command saved from "iferr 1": > where > ==> 1 WAComponent >> decoration @3 line 1 [GsMethod 194749441] > 2 WAComponent >> addDecoration: @2 line 6 [GsMethod 194748417] > 3 WAComponent >> show:onAnswer:delegation: @10 line 8 [GsMethod 194749185] > 4 WAComponent >> show:onAnswer: @5 line 5 [GsMethod 499699713] > 5 WAComponent >> call:onAnswer: @5 line 8 [GsMethod 194750977] > 6 ComplexBlock in WAComponent >> call: @3 line 4 [GsMethod 191317249] > 7 ComplexBlock in WAComponent >> wait: @3 line 3 [GsMethod 191268353] > 8 GRGemStonePlatform >> seasideSuspendFlowDo: @9 line 5 [GsMethod 499655937] > 9 WAComponent >> wait: @4 line 3 [GsMethod 191268353] > 10 WAComponent >> call: @4 line 4 [GsMethod 191317249] > 11 PracticeJournalLoginTask >> go @14 line 9 [GsMethod 371393537] > 12 WATask >> execute @1 line 7 [GsMethod 195261697] > 13 ComplexBlock in WATaskVisitor >> visitTask: @6 line 4 [GsMethod 194755841] > 14 WACallback >> evaluateWithFieldValues: @5 line 2 [GsMethod 177495553] > 15 ComplexBlock in WACallbackRegistry >> handle: @16 line 10 [GsMethod 177951489] > 16 Collection >> do: @5 line 10 [GsMethod 1547777] > 17 WACallbackRegistry >> handle: @17 line 9 [GsMethod 177951489] > 18 ComplexBlock in WAActionPhaseContinuation >> runCallbacks @7 line 4 [GsMethod 202613505] > 19 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] > 20 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] > 21 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] > 22 WARenderLoopContinuation >> withNotificationHandlerDo: @3 line 2 [GsMethod 202608385] > 23 ComplexVCBlock in WAActionPhaseContinuation >> runCallbacks @8 line 3 [GsMethod 202613505] > 24 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 [GsMethod 2304001] > 25 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11 [GsMethod 2304001] > 26 WAActionPhaseContinuation >> runCallbacks @18 line 6 [GsMethod 202613505] > 27 WAActionPhaseContinuation >> handleRequest @1 line 2 [GsMethod 202614017] > 28 ComplexBlock in WASessionContinuation >> basicValue @3 line 2 [GsMethod 202625537] > 29 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] > 30 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] > 31 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] > 32 WASessionContinuation >> withUnregisteredHandlerDo: @7 line 3 [GsMethod 202627073] > 33 WASessionContinuation >> basicValue @4 line 2 [GsMethod 202625537] > 34 WASessionContinuation >> value @3 line 5 [GsMethod 202623745] > 35 WASession >> handleFiltered: @14 line 10 [GsMethod 202205441] > 36 WARequestFilter >> handleFiltered: @2 line 4 [GsMethod 176192513] > 37 ComplexBlock in WADeprecatedToolFilter >> handleFiltered: @3 line 2 [GsMethod 203213313] > 38 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] > 39 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] > 40 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] > 41 WADeprecatedToolFilter >> handleFiltered: @6 line 3 [GsMethod 203213313] > 42 WARequestFilter >> handleFiltered: @2 line 4 [GsMethod 176192513] > 43 ComplexBlock in WATimingToolFilter >> handleFiltered: @4 line 3 [GsMethod 203208449] > 44 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 [GsMethod 2304001] > 45 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 [GsMethod 2304001] > 46 WATimingToolFilter >> handleFiltered: @8 line 4 [GsMethod 203208449] > 47 ComplexBlock in WARequestHandler >> handle: @4 line 4 [GsMethod 178568961] > 48 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] > 49 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] > 50 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] > 51 WADynamicVariable class >> use:during: @4 line 4 [GsMethod 177805825] > 52 ComplexBlock in WARequestContext >> push:during: @4 line 5 [GsMethod 176176129] > 53 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 [GsMethod 2304001] > 54 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 [GsMethod 2304001] > 55 WARequestContext >> push:during: @7 line 6 [GsMethod 176176129] > 56 WARequestHandler >> handle: @5 line 4 [GsMethod 178568961] > 57 WASession >> handle: @10 line 11 [GsMethod 202210561] > 58 WARegistry >> dispatch:to: @1 line 5 [GsMethod 176153857] > 59 WARegistry >> handleKeyed:with: @2 line 5 [GsMethod 176155137] > 60 WARegistry >> handleFiltered: @33 line 19 [GsMethod 176146945] > 61 WAApplication >> handleFiltered: @9 line 8 [GsMethod 202644225] > 62 WARequestFilter >> handleFiltered: @2 line 4 [GsMethod 176192513] > 63 ComplexBlock in WAExceptionFilter >> handleFiltered: @6 line 7 [GsMethod 499529473] > 64 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] > 65 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] > 66 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] > 67 WADynamicVariable class >> use:during: @4 line 4 [GsMethod 177805825] > 68 ComplexVCBlock in WAExceptionFilter >> handleFiltered: @7 line 6 [GsMethod 499529473] > 69 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] > 70 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] > 71 ComplexVCBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] > 72 WAExceptionHandler >> handleExceptionsDuring: @8 line 3 [GsMethod 177803521] > 73 WAExceptionFilter >> handleFiltered: @8 line 4 [GsMethod 499529473] > 74 ComplexBlock in WARequestHandler >> handle: @4 line 4 [GsMethod 178568961] > 75 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] > 76 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] > 77 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] > 78 WADynamicVariable class >> use:during: @4 line 4 [GsMethod 177805825] > 79 ComplexBlock in WARequestContext >> push:during: @4 line 5 [GsMethod 176176129] > 80 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 [GsMethod 2304001] > 81 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 [GsMethod 2304001] > 82 WARequestContext >> push:during: @7 line 6 [GsMethod 176176129] > 83 WARequestHandler >> handle: @5 line 4 [GsMethod 178568961] > 84 WADispatcher >> handleFiltered:named: @7 line 5 [GsMethod 179090945] > 85 WADispatcher >> handleFiltered: @7 line 6 [GsMethod 179087617] > 86 ComplexBlock in WARequestHandler >> handle: @4 line 4 [GsMethod 178568961] > 87 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] > 88 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] > 89 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] > 90 WADynamicVariable class >> use:during: @4 line 4 [GsMethod 177805825] > 91 ComplexBlock in WARequestContext >> push:during: @4 line 5 [GsMethod 176176129] > 92 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 [GsMethod 2304001] > 93 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 [GsMethod 2304001] > 94 WARequestContext >> push:during: @7 line 6 [GsMethod 176176129] > 95 WARequestHandler >> handle: @5 line 4 [GsMethod 178568961] > 96 ComplexBlock in WAServerAdaptor >> handleRequest: @4 line 4 [GsMethod 176816641] > 97 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] > 98 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] > 99 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] > 100 WAServerAdaptor >> handleRequest: @6 line 5 [GsMethod 176816641] > 101 WAServerAdaptor >> handle: @1 line 4 [GsMethod 176817921] > 102 ComplexBlock in WAServerAdaptor >> process: @5 line 6 [GsMethod 176817153] > 103 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 [GsMethod 2304001] > 104 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 [GsMethod 2304001] > 105 WAServerAdaptor >> process: @9 line 7 [GsMethod 176817153] > 106 ComplexBlock in WAFastCGIAdaptor >> process: @3 line 6 [GsMethod 212442369] > 107 ComplexBlock in GRGemStonePlatform >> seasideProcessRequestWithRetry:resultBlock: @12 line 11 [GsMethod 175179265] > 108 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] > 109 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] > 110 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] > 111 ComplexVCBlock in GRGemStonePlatform >> seasideProcessRequestWithRetry:resultBlock: @18 line 12 [GsMethod 175179265] > 112 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 [GsMethod 2304001] > 113 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11 [GsMethod 2304001] > 114 TransientRecursionLock >> critical: @15 line 8 [GsMethod 21159937] > 115 GRGemStonePlatform >> seasideProcessRequestWithRetry:resultBlock: @39 line 5 [GsMethod 175179265] > 116 ComplexBlock in GRGemStonePlatform >> seasideProcessRequest:adaptor:resultBlock: @7 line 9 [GsMethod 175179521] > 117 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] > 118 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] > 119 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] > 120 GRGemStonePlatform >> seasideProcessRequest:adaptor:resultBlock: @32 line 17 [GsMethod 175179521] > 121 WAFastCGIAdaptor >> process: @4 line 4 [GsMethod 212442369] > 122 ComplexBlock in WAFastCGIAdaptor >> answerResponderRole: @3 line 4 [GsMethod 212444161] > 123 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] > 124 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] > 125 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] > 126 WAFastCGIAdaptor >> answerResponderRole: @9 line 5 [GsMethod 212444161] > 127 FSResponderRole >> answer @2 line 4 [GsMethod 218695937] > 128 FSRole >> handleConnection @3 line 5 [GsMethod 218705409] > 129 FSConnection >> unsafeServe @4 line 8 [GsMethod 219646465] > 130 ComplexBlock in FSConnection >> safeServe @5 line 8 [GsMethod 499288833] > 131 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] > 132 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] > 133 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] > 134 ComplexVCBlock in FSConnection >> safeServe @8 line 9 [GsMethod 499288833] > 135 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] > 136 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] > 137 ComplexVCBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] > 138 ComplexVCBlock in FSConnection >> safeServe @11 line 12 [GsMethod 499288833] > 139 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 [GsMethod 2304001] > 140 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11 [GsMethod 2304001] > 141 FSConnection >> safeServe @14 line 15 [GsMethod 499288833] > 142 FSConnection >> serve @1 line 4 [GsMethod 219654145] > 143 ComplexBlock in FSSocketServer >> listen: @9 line 15 [GsMethod 219292673] > 144 GsProcess >> _startPart2 @15 line 17 [GsMethod 4501249] > 145 GsProcess >> _start @1 line 9 [GsMethod 4501761] > [GsProcess 412915713] > topaz 1> [268 sz:0 cls: 68097 Boolean] true > topaz 1> > HostCallDebugger: invoked at: Mon Feb 20 16:38:18 UTC 2012 > > UTL_GUARANTEE failed, File /export/toronto3/users/buildgss/244x-1/src/omverify.c line 28 > > Begin attempt to print C-level stack at: Mon Feb 20 16:38:18 UTC 2012 > > > End of C-level stack: > > > hostcalldebugger invoked in process 6550, at 02/20/2012 04:38:18 PM.681 UTC > notifying stone of fatal error > > [Info]: Logging out at 02/20/2012 04:38:18 PM UTC > > > >> >> ----- Original Message ----- >> | From: "Lawrence Kellogg" <[hidden email]> >> | To: "GemStone Seaside beta discussion" <[hidden email]> >> | Sent: Monday, February 20, 2012 8:48:22 AM >> | Subject: Re: [GS/SS Beta] Object does not exist error - Worry about it? >> | >> | Hello Dale, >> | Well, my system has been up for days, running with no problems, not >> | that it has been getting a lot of traffic, but still, no crashes. >> | Today, I hit the Object does not exist error again. I guess I can >> | do another object audit but, other than that, I'm not sure how to >> | proceed. Do you think an upgrade to 2.4.5 will help me? >> | >> | Here is the walkback: >> | >> | topaz 1> topaz 1> WAFastCGIAdaptor Server started on port 9001 >> | ----------------------------------------------------- >> | GemStone: Error Nonfatal >> | The object with object ID 76562293713797632 does not exist. >> | Error Category: 231169 [GemStone] Number: 2101 Arg Count: 1 Context : >> | 412915713 >> | Arg 1: [612498349710381058 sz:0 cls: 74241 SmallInteger] >> | 76562293713797632 >> | >> | Now executing the following command saved from "iferr 1": >> | where >> | ==> 1 WAComponent >> decoration @3 line 1 [GsMethod 194749441] >> | 2 WAComponent >> addDecoration: @2 line 6 [GsMethod 194748417] >> | 3 WAComponent >> show:onAnswer:delegation: @10 line 8 [GsMethod >> | 194749185] >> | 4 WAComponent >> show:onAnswer: @5 line 5 [GsMethod 499699713] >> | 5 WAComponent >> call:onAnswer: @5 line 8 [GsMethod 194750977] >> | 6 ComplexBlock in WAComponent >> call: @3 line 4 [GsMethod >> | 191317249] >> | 7 ComplexBlock in WAComponent >> wait: @3 line 3 [GsMethod >> | 191268353] >> | 8 GRGemStonePlatform >> seasideSuspendFlowDo: @9 line 5 [GsMethod >> | 499655937] >> | 9 WAComponent >> wait: @4 line 3 [GsMethod 191268353] >> | 10 WAComponent >> call: @4 line 4 [GsMethod 191317249] >> | 11 PracticeJournalLoginTask >> go @14 line 9 [GsMethod 371393537] >> | >> | >> | Larry >> | >> | On Feb 11, 2012, at 2:34 PM, Dale Henrichs wrote: >> | >> | > Larry, >> | > >> | > Yes, everything looks clean, I'm a little bit surprised that you >> | > didn't find the original error in you first audit, but the >> | > implication is that the "corrupt object" never got persisted ... >> | > indicating some other type of corruption ... >> | > >> | > A clean object audit means that your data base has no corruption so >> | > you're good to go ... I'll talk to some guys on Monday and see if >> | > they have some ideas as to what might have happened...there's a >> | > bug in there somewhere, but for now it looks like it is isolated >> | > to the local state in a gem ... >> | > >> | > Dale >> | > >> | > ----- Original Message ----- >> | > | From: "Lawrence Kellogg" <[hidden email]> >> | > | To: "GemStone Seaside beta discussion" >> | > | <[hidden email]> >> | > | Sent: Saturday, February 11, 2012 4:18:06 AM >> | > | Subject: Re: [GS/SS Beta] Object does not exist error - Worry >> | > | about it? >> | > | >> | > | >> | > | On Feb 10, 2012, at 7:04 PM, Dale Henrichs wrote: >> | > | >> | > | > Larry, >> | > | > >> | > | > Object does not exist errors are not good things ... and the >> | > | > gem >> | > | > coming down in this case is probably a good thing ... The fact >> | > | > that the problem is showing up in a GsProcess means that the >> | > | > Seaside session data structures are corrupted but not your >> | > | > model >> | > | > data ... >> | > | > >> | > | > You can check for corruption in your data base by running an >> | > | > object >> | > | > audit (see section 8.2 of the System Administration Guide[1]). >> | > | > If >> | > | > you follow these steps you own't need to run the object audit >> | > | > as >> | > | > single user (see the docs): >> | > | > >> | > | > - expire sessions >> | > | > - mfc >> | > | > - reclaimAll >> | > | > - object audit >> | > | > >> | > | >> | > | Hello Dale, >> | > | Ok, I ran: >> | > | >> | > | System stopUserSessions >> | > | SystemRepository objectAudit >> | > | SystemRepository markForCollection >> | > | SystemRepository reclaimAll >> | > | SystemRepository objectAudit >> | > | >> | > | I don't see any errors. Here is my log. What do you make of it? >> | > | >> | > | Larry >> | > | >> | > | >> | > | [Info]: Login Time: 02/11/2012 12:06:22 PM.972 UTC >> | > | [02/11/2012 12:06:23 PM.001 UTC] gci login: currSession 1 rpc gem >> | > | processId -1 >> | > | successful login >> | > | topaz 1> printit >> | > | System hasMissingGcGems >> | > | % >> | > | false >> | > | topaz 1> printit >> | > | System stopUserSessions >> | > | % >> | > | System class >> | > | superClass Object class >> | > | format 32 >> | > | instVars 0 >> | > | instVarNames an Array >> | > | constraints an Array >> | > | classVars a SymbolDictionary >> | > | methodDict a GsMethodDictionary >> | > | poolDictionaries an Array >> | > | categories a GsMethodDictionary >> | > | secondarySuperclasses nil >> | > | name System >> | > | classHistory a ClassHistory >> | > | description a GsClassDocumentation >> | > | migrationDestination nil >> | > | timeStamp a DateTime >> | > | userId SystemUser >> | > | extraDict a SymbolDictionary >> | > | classCategory nil >> | > | subclasses nil >> | > | >> | > | topaz 1> printit >> | > | SystemRepository objectAudit >> | > | % >> | > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 >> | > | --setGcConfig: set reclaimMinPages to 1 >> | > | --reclaimAll: changed reclaimMinPages from 40 to 1 >> | > | --setGcConfig: set reclaimSleepTime to 1 >> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 >> | > | --reclaimAll: using reclaimDeadEnabled true >> | > | --reclaimAll: simpleCommit loopCount 10 >> | > | 02/11/2012 12:07:41 PM.070 UTC: Starting object table scan >> | > | 02/11/2012 12:07:41 PM.698 UTC: Finished object table scan >> | > | >> | > | Object audit is proceeding in FullAudit mode: >> | > | Scavenging completed (either single user mode or no pages to >> | > | scavenge). >> | > | All audit checks are enabled. >> | > | >> | > | Object audit as of 02/11/2012 12:07:41 PM UTC. >> | > | Summary of objects whose sizes exceed 100000 Bytes or Oops: >> | > | >> | > | ObjectID Class ClassName >> | > | LogicalSize >> | > | -------------------------------------------------------------------------------------------------------------- >> | > | 305743617 74753 String >> | > | 134740 Oops >> | > | 149534721 74753 String >> | > | 164661 Oops >> | > | 173784833 74753 String >> | > | 163312 Oops >> | > | 196368897 74753 String >> | > | 164661 Oops >> | > | 305774593 74753 String >> | > | 134740 Oops >> | > | 175519489 74753 String >> | > | 376305 Oops >> | > | 196571393 74753 String >> | > | 379399 Oops >> | > | 175494145 74753 String >> | > | 201874 Oops >> | > | 197005569 74753 String >> | > | 202074 Oops >> | > | 149996289 74753 String >> | > | 236426 Oops >> | > | 151722753 74753 String >> | > | 379399 Oops >> | > | 151723777 74753 String >> | > | 202074 Oops >> | > | 274619393 74753 String >> | > | 1170577 Oops >> | > | 265139713 74753 String >> | > | 1170577 Oops >> | > | 215910913 66817 Array >> | > | 331214 Oops >> | > | 164965121 74753 String >> | > | 236201 Oops >> | > | 197155585 74753 String >> | > | 236426 Oops >> | > | 271373057 74753 String >> | > | 1170577 Oops >> | > | 268426753 74753 String >> | > | 134740 Oops >> | > | 264103681 74753 String >> | > | 1170577 Oops >> | > | >> | > | ----------- Object Statistics Summary ----------------- >> | > | >> | > | ----- Instances of invisible (private) classes ------ >> | > | Number of instances: 1072 >> | > | Total size: 15855 K Bytes >> | > | Average size: 14.8 Bytes >> | > | >> | > | Class: 209153 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 209409 Instances: 1072 Total Size: >> | > | 15855 K Bytes >> | > | Class: 209665 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 209921 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 210177 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 210433 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 210689 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 210945 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 211201 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 211457 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 211713 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 211969 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 212225 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 212481 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 212737 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 212993 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 213249 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 213505 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 213761 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | >> | > | >> | > | ----- Instances of visible classes ----------------- >> | > | Number of objects : 1633432 >> | > | Total Size : 157861 K Bytes >> | > | size of Object Headers : 38283 K Bytes >> | > | size of Object Values : 116978 K Bytes >> | > | size of Object Tags : 0 K Bytes >> | > | average of Object Value: 73.3 Bytes >> | > | >> | > | Object Audit: Audit successfully completed; no errors were >> | > | detected. >> | > | --setGcConfig: set reclaimMinPages to 40 >> | > | --setGcConfig: set reclaimSleepTime to 10 >> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 >> | > | --postReclaimAll: restored reclaimMinPages to 40 >> | > | true >> | > | topaz 1> printit >> | > | SystemRepository markForCollection >> | > | % >> | > | start MFC mark/sweep phase: 02/11/2012 12:08:56 PM UTC >> | > | WARNING, unable to resolve either garMarkSweepPageBufSize or >> | > | mfcGcPageBufSize, using default 320 >> | > | MarkSweepArgsSType::(): buffer size= 320 pages >> | > | start MFC process dead phase: 02/11/2012 12:08:59 PM UTC >> | > | end MFC: 02/11/2012 12:08:59 PM UTC >> | > | Successful completion of markForCollection. >> | > | 1613875 live objects found. >> | > | 20629 possible dead objects, occupying approximately 1856610 >> | > | bytes, may be reclaimed. >> | > | topaz 1> printit >> | > | SystemRepository reclaimAll >> | > | % >> | > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 >> | > | --setGcConfig: set reclaimMinPages to 1 >> | > | --reclaimAll: changed reclaimMinPages from 40 to 1 >> | > | --setGcConfig: set reclaimSleepTime to 1 >> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 >> | > | --reclaimAll: using reclaimDeadEnabled true >> | > | --reclaimAll: simpleCommit loopCount 10 >> | > | an Array >> | > | #1 40 >> | > | #2 10 >> | > | #3 0 >> | > | >> | > | topaz 1> printit >> | > | SystemRepository objectAudit >> | > | % >> | > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 >> | > | --setGcConfig: set reclaimMinPages to 1 >> | > | --reclaimAll: changed reclaimMinPages from 1 to 1 >> | > | --setGcConfig: set reclaimSleepTime to 1 >> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 >> | > | --reclaimAll: using reclaimDeadEnabled true >> | > | 02/11/2012 12:11:27 PM.328 UTC: Starting object table scan >> | > | 02/11/2012 12:11:27 PM.921 UTC: Finished object table scan >> | > | >> | > | Object audit is proceeding in FullAudit mode: >> | > | Scavenging completed (either single user mode or no pages to >> | > | scavenge). >> | > | All audit checks are enabled. >> | > | >> | > | Object audit as of 02/11/2012 12:11:27 PM UTC. >> | > | Summary of objects whose sizes exceed 100000 Bytes or Oops: >> | > | >> | > | ObjectID Class ClassName >> | > | LogicalSize >> | > | -------------------------------------------------------------------------------------------------------------- >> | > | 305743617 74753 String >> | > | 134740 Oops >> | > | 149534721 74753 String >> | > | 164661 Oops >> | > | 173784833 74753 String >> | > | 163312 Oops >> | > | 196368897 74753 String >> | > | 164661 Oops >> | > | 305774593 74753 String >> | > | 134740 Oops >> | > | 175519489 74753 String >> | > | 376305 Oops >> | > | 196571393 74753 String >> | > | 379399 Oops >> | > | 175494145 74753 String >> | > | 201874 Oops >> | > | 197005569 74753 String >> | > | 202074 Oops >> | > | 149996289 74753 String >> | > | 236426 Oops >> | > | 151722753 74753 String >> | > | 379399 Oops >> | > | 151723777 74753 String >> | > | 202074 Oops >> | > | 274619393 74753 String >> | > | 1170577 Oops >> | > | 265139713 74753 String >> | > | 1170577 Oops >> | > | 215910913 66817 Array >> | > | 331214 Oops >> | > | 164965121 74753 String >> | > | 236201 Oops >> | > | 197155585 74753 String >> | > | 236426 Oops >> | > | 271373057 74753 String >> | > | 1170577 Oops >> | > | 268426753 74753 String >> | > | 134740 Oops >> | > | 264103681 74753 String >> | > | 1170577 Oops >> | > | >> | > | ----------- Object Statistics Summary ----------------- >> | > | >> | > | ----- Instances of invisible (private) classes ------ >> | > | Number of instances: 1072 >> | > | Total size: 15855 K Bytes >> | > | Average size: 14.8 Bytes >> | > | >> | > | Class: 209153 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 209409 Instances: 1072 Total Size: >> | > | 15855 K Bytes >> | > | Class: 209665 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 209921 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 210177 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 210433 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 210689 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 210945 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 211201 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 211457 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 211713 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 211969 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 212225 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 212481 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 212737 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 212993 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 213249 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 213505 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | Class: 213761 Instances: 0 Total Size: >> | > | 0 K Bytes >> | > | >> | > | >> | > | ----- Instances of visible classes ----------------- >> | > | Number of objects : 1612803 >> | > | Total Size : 156912 K Bytes >> | > | size of Object Headers : 37800 K Bytes >> | > | size of Object Values : 116516 K Bytes >> | > | size of Object Tags : 0 K Bytes >> | > | average of Object Value: 74.0 Bytes >> | > | >> | > | Object Audit: Audit successfully completed; no errors were >> | > | detected. >> | > | --setGcConfig: set reclaimMinPages to 1 >> | > | --setGcConfig: set reclaimSleepTime to 1 >> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 >> | > | --postReclaimAll: restored reclaimMinPages to 1 >> | > | true >> | > | topaz 1> >> | > | topaz 1> >> | > | >> | > | >> | > | > If, as I suspect, you've got corruption in GsProcess objects >> | > | > they >> | > | > only impact Seaside session state, and should have disappeared >> | > | > by >> | > | > the time you run the object audit ... >> | > | > >> | > | > This problems seems to ring a bell, but it seems to me that the >> | > | > problem I am thinking of showed up in GemStone 3.0 and I think >> | > | > it >> | > | > was fixed in GemStone 3.0.1... so I'm curious what version of >> | > | > GemStone you are using. >> | > | > >> | > | > As I think about this, I seem to recall that the problem was >> | > | > related to deeply nested block structure in a method that was >> | > | > involved in partial continuations, so I am curious if you >> | > | > happen >> | > | > to have some deeply nested block structures let's say more than >> | > | > 5 >> | > | > or 6 levels deep in your method? In fact even in 3.0.1 I think >> | > | > that there might be an effective limit (the engineer that >> | > | > worked >> | > | > on this will be back on Monday for exact details), so if you >> | > | > are >> | > | > running with 3.0.1, you should definitely be suspicious of deep >> | > | > nesting of blocks... >> | > | > >> | > | > Dale >> | > | > >> | > | > [1] >> | > | > http://community.gemstone.com/display/GSS64/GemStoneS+64+Documentation >> | > | > >> | > | > ----- Original Message ----- >> | > | > | From: "Lawrence Kellogg" <[hidden email]> >> | > | > | To: "GemStone Seaside beta discussion" >> | > | > | <[hidden email]> >> | > | > | Sent: Friday, February 10, 2012 2:13:15 PM >> | > | > | Subject: [GS/SS Beta] Object does not exist error - Worry >> | > | > | about >> | > | > | it? >> | > | > | >> | > | > | >> | > | > | >> | > | > | Hello, >> | > | > | After a long series of calls and answers in Seaside, I got an >> | > | > | Object >> | > | > | does not exist error that brought down the fast cgi gateway. >> | > | > | My >> | > | > | production error handler was not triggered, although it was >> | > | > | installed, as far as I could tell. Strange. My supervise >> | > | > | fastcgi >> | > | > | process also did not pick up my dead fastcgi process. Not a >> | > | > | good >> | > | > | day. >> | > | > | >> | > | > | Here is the walkback: >> | > | > | >> | > | > | >> | > | > | >> | > | > | USER IDS: REAL=seasideuser (500) EFFECTIVE=seasideuser (500) >> | > | > | | >> | > | > | |_____________________________________________________________________________| >> | > | > | topaz> topaz> topaz> topaz> topaz> topaz> topaz> [Info]: LNK >> | > | > | client/gem GCI levels = 844/844 >> | > | > | [Info]: User ID: DataCurator >> | > | > | [Info]: Repository: seaside >> | > | > | [Info]: Session ID: 5 >> | > | > | [Info]: GCI Client Host: <Linked> >> | > | > | [Info]: Page server PID: -1 >> | > | > | [Info]: Login Time: 02/10/2012 09:27:56 PM.572 UTC >> | > | > | [02/10/2012 09:27:56 PM.592 UTC] gci login: currSession 1 rpc >> | > | > | gem >> | > | > | processId -1 >> | > | > | successful login >> | > | > | topaz 1> topaz 1> [20 sz:0 cls: 76289 UndefinedObject] nil >> | > | > | topaz 1> topaz 1> [76033 sz:19 cls: 801793 System class] >> | > | > | System >> | > | > | class >> | > | > | superClass [72193 sz:19 cls: 206081 Object class] Object >> | > | > | class >> | > | > | format [258 sz:0 cls: 74241 SmallInteger] 32 >> | > | > | instVars [2 sz:0 cls: 74241 SmallInteger] 0 >> | > | > | instVarNames [422145 sz:0 cls: 66817 Array] an Array >> | > | > | constraints [421889 sz:0 cls: 66817 Array] an Array >> | > | > | classVars [421633 sz:26 cls: 111361 SymbolDictionary] a >> | > | > | SymbolDictionary >> | > | > | methodDict [711937 sz:112 cls: 99073 GsMethodDictionary] a >> | > | > | GsMethodDictionary >> | > | > | poolDictionaries [421377 sz:0 cls: 66817 Array] an Array >> | > | > | categories [421121 sz:28 cls: 99073 GsMethodDictionary] a >> | > | > | GsMethodDictionary >> | > | > | secondarySuperclasses [20 sz:0 cls: 76289 UndefinedObject] >> | > | > | nil >> | > | > | name [801537 sz:6 cls: 110849 Symbol] System >> | > | > | classHistory [420865 sz:3 cls: 82689 ClassHistory] a >> | > | > | ClassHistory >> | > | > | description [13498369 sz:10 cls: 95233 GsClassDocumentation] >> | > | > | a >> | > | > | GsClassDocumentation >> | > | > | migrationDestination [20 sz:0 cls: 76289 UndefinedObject] nil >> | > | > | timeStamp [14510593 sz:4 cls: 118785 DateTime] a DateTime >> | > | > | userId [14508801 sz:10 cls: 74753 String] SystemUser >> | > | > | extraDict [14524929 sz:14 cls: 111361 SymbolDictionary] a >> | > | > | SymbolDictionary >> | > | > | classCategory [20 sz:0 cls: 76289 UndefinedObject] nil >> | > | > | subclasses [20 sz:0 cls: 76289 UndefinedObject] nil >> | > | > | >> | > | > | >> | > | > | topaz 1> topaz 1> WAFastCGIAdaptor Server started on port >> | > | > | 9001 >> | > | > | ----------------------------------------------------- >> | > | > | GemStone: Error Nonfatal >> | > | > | The object with object ID 81065894683350528 does not exist. >> | > | > | Error Category: 231169 [GemStone] Number: 2101 Arg Count: 1 >> | > | > | Context : >> | > | > | 526648321 >> | > | > | Arg 1: [648527157466804226 sz:0 cls: 74241 SmallInteger] >> | > | > | 81065894683350528 >> | > | > | >> | > | > | >> | > | > | Now executing the following command saved from "iferr 1": >> | > | > | where >> | > | > | ==> 1 GsProcess class >> >> | > | > | installPartialContinuation:atLevel:value: @2 >> | > | > | line 1 [GsMethod 4487425] >> | > | > | 2 WAPartialContinuation >> value: @13 line 11 [GsMethod >> | > | > | 212791041] >> | > | > | 3 WAPartialContinuation >> valueWithPossibleArguments: @2 >> | > | > | line 2 >> | > | > | [GsMethod 218326273] >> | > | > | 4 ComplexBlock in WAComponent >> show:onAnswer:delegation: @7 >> | > | > | line 7 >> | > | > | [GsMethod 194749185] >> | > | > | 5 ComplexBlock in ExecutableBlock >> >> | > | > | valueWithPossibleArguments: >> | > | > | @12 >> | > | > | line 8 [GsMethod 116163585] >> | > | > | 6 WAAnswerHandler >> handleAnswer:continueWith: @3 line 2 >> | > | > | [GsMethod >> | > | > | 194735873] >> | > | > | 7 WADecoration >> handleAnswer: @6 line 3 [GsMethod >> | > | > | 194731009] >> | > | > | 8 WAComponent >> answer: @2 line 5 [GsMethod 194751745] >> | > | > | >> | > | > | >> | > | > | >> | > | > | >> | > | > | I found this on the net: >> | > | > | >> | > | > | >> | > | > | >> | > | > | Object does not exist errors >> | > | > | GBS applications may encounter object does not exist errors >> | > | > | in >> | > | > | non-persistent >> | > | > | objects. This is due to a problem with the fix for bug #40703 >> | > | > | in >> | > | > | version >> | > | > | 2.4.4, which resulted in non-persistent objects not properly >> | > | > | protected >> | > | > | from garbage collection. >> | > | > | >> | > | > | Workaround: >> | > | > | >> | > | > | none/not applicable >> | > | > | from: >> | > | > | >> | > | > | >> | > | > | >> | > | > | >> | > | > | >> | > | > | >> | > | > | http://www.gemstone.com/docs/GemStoneS/bugnotes/bugnotes/40948.html >> | > | > | >> | > | > | >> | > | > | >> | > | > | So, should I worry about this? I implemented code that >> | > | > | allowed a >> | > | > | user >> | > | > | to call an editor, switch out on the navigation menu, call >> | > | > | another >> | > | > | editor, >> | > | > | switch out. With each switch, I send answer: false to the >> | > | > | open >> | > | > | editor >> | > | > | to close it so that it is not hanging around open. My idea >> | > | > | was to hide the section navigation when the editor came up >> | > | > | but >> | > | > | I'm >> | > | > | getting push back from my user. >> | > | > | >> | > | > | >> | > | > | What do you think? >> | > | > | >> | > | > | >> | > | > | Larry >> | > | > | >> | > | > | >> | > | > | >> | > | > | >> | > | >> | > | >> | >> | > |
On Feb 21, 2012, at 2:40 PM, Johan Brichau wrote: > fyi, I have been observing occurrences of this bug as well, with exactly the same point of failure in the stack. > > No repository problems or audit warnings. > > Funnily, I've never seen this in any stone running Yesplan. The stone where we have this problem is also running a Seaside application but the only discriminating factor I can observe is that this application uses call/answer a lot more (while we almost never use that in Yesplan). It probably does not help a lot finding the error... but I will look up the stack traces and post them here if they might contain some clues. Hello Johan, Thanks for looking into this problem. I use call/answer quite a bit. Dale, did you see the stack dump I posted? Larry > > On 21 Feb 2012, at 20:13, Lawrence Kellogg wrote: > >> >> On Feb 21, 2012, at 1:05 PM, Dale Henrichs wrote: >> >>> Larry, >>> >>> We should try to dig into this one some more. >>> >>> To start with what version of Gemstone are you using? If you are using 2.4.4.1, then I'm not aware of an issue that would warrant an upgrade to 2.4.5, but I will check around a bit...As I said before, the only place that I've seen "Obj does not exist errors" is in 3.0 and those bugs were fixed in 3.0.1. >>> >> >> Dale, >> Thanks for the help. I would like to get to the bottom of this error. This crash takes down Fastcgi so it kills the service. >> >> According to the file in the directory, I'm on 2.4.4.1 >> >> GemStone64Bit2.4.4.1-x86_64.Linux >> >> >> >> >>> This time we are getting the error while creating the continuation ... the last episode occurred when you were trying to execute from a continuation. >>> >>> Could you share the source code for PracticeJournalLoginTask >> go? That's the first non-Seaside method on the stack below the error, so it's as good a place as any to start … >>> >> >> Here is the complete source code for the go method: ;-) >> >> go >> | user component | >> self call: self userLoginView. >> (self userLoginView user) notNil >> ifTrue: [ >> component := self firstComponentToDisplayForUser: self userLoginView user. >> [ component notNil ] >> whileTrue: [ >> self call: component. >> component := component nextComponentToBeDisplayed ] ] >> >> A component is called, and when another component is selected the current component is sent answer: false and >> the new component to call is returned from that nextComponentToBeDisplayed method. >> >> I used to have an implementation that would give me a huge recursive nesting of continuations, as shown by >> halo, but this shows everything on just a few levels, although I have to say that the walkback looks deep and gnarly. >> >> >>> It would be useful to see the entire stack as well. The partial continuation copies the stack back to a marker method and it would be useful to examine the source for the methods that are on the stck for clues as to what might be going on... >>> >>> Dale >> >> >> Here is the complete walk back: >> >> topaz 1> topaz 1> WAFastCGIAdaptor Server started on port 9001 >> ----------------------------------------------------- >> GemStone: Error Nonfatal >> The object with object ID 76562293713797632 does not exist. >> Error Category: 231169 [GemStone] Number: 2101 Arg Count: 1 Context : 412915713 >> Arg 1: [612498349710381058 sz:0 cls: 74241 SmallInteger] 76562293713797632 >> >> Now executing the following command saved from "iferr 1": >> where >> ==> 1 WAComponent >> decoration @3 line 1 [GsMethod 194749441] >> 2 WAComponent >> addDecoration: @2 line 6 [GsMethod 194748417] >> 3 WAComponent >> show:onAnswer:delegation: @10 line 8 [GsMethod 194749185] >> 4 WAComponent >> show:onAnswer: @5 line 5 [GsMethod 499699713] >> 5 WAComponent >> call:onAnswer: @5 line 8 [GsMethod 194750977] >> 6 ComplexBlock in WAComponent >> call: @3 line 4 [GsMethod 191317249] >> 7 ComplexBlock in WAComponent >> wait: @3 line 3 [GsMethod 191268353] >> 8 GRGemStonePlatform >> seasideSuspendFlowDo: @9 line 5 [GsMethod 499655937] >> 9 WAComponent >> wait: @4 line 3 [GsMethod 191268353] >> 10 WAComponent >> call: @4 line 4 [GsMethod 191317249] >> 11 PracticeJournalLoginTask >> go @14 line 9 [GsMethod 371393537] >> 12 WATask >> execute @1 line 7 [GsMethod 195261697] >> 13 ComplexBlock in WATaskVisitor >> visitTask: @6 line 4 [GsMethod 194755841] >> 14 WACallback >> evaluateWithFieldValues: @5 line 2 [GsMethod 177495553] >> 15 ComplexBlock in WACallbackRegistry >> handle: @16 line 10 [GsMethod 177951489] >> 16 Collection >> do: @5 line 10 [GsMethod 1547777] >> 17 WACallbackRegistry >> handle: @17 line 9 [GsMethod 177951489] >> 18 ComplexBlock in WAActionPhaseContinuation >> runCallbacks @7 line 4 [GsMethod 202613505] >> 19 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] >> 20 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] >> 21 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] >> 22 WARenderLoopContinuation >> withNotificationHandlerDo: @3 line 2 [GsMethod 202608385] >> 23 ComplexVCBlock in WAActionPhaseContinuation >> runCallbacks @8 line 3 [GsMethod 202613505] >> 24 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 [GsMethod 2304001] >> 25 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11 [GsMethod 2304001] >> 26 WAActionPhaseContinuation >> runCallbacks @18 line 6 [GsMethod 202613505] >> 27 WAActionPhaseContinuation >> handleRequest @1 line 2 [GsMethod 202614017] >> 28 ComplexBlock in WASessionContinuation >> basicValue @3 line 2 [GsMethod 202625537] >> 29 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] >> 30 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] >> 31 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] >> 32 WASessionContinuation >> withUnregisteredHandlerDo: @7 line 3 [GsMethod 202627073] >> 33 WASessionContinuation >> basicValue @4 line 2 [GsMethod 202625537] >> 34 WASessionContinuation >> value @3 line 5 [GsMethod 202623745] >> 35 WASession >> handleFiltered: @14 line 10 [GsMethod 202205441] >> 36 WARequestFilter >> handleFiltered: @2 line 4 [GsMethod 176192513] >> 37 ComplexBlock in WADeprecatedToolFilter >> handleFiltered: @3 line 2 [GsMethod 203213313] >> 38 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] >> 39 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] >> 40 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] >> 41 WADeprecatedToolFilter >> handleFiltered: @6 line 3 [GsMethod 203213313] >> 42 WARequestFilter >> handleFiltered: @2 line 4 [GsMethod 176192513] >> 43 ComplexBlock in WATimingToolFilter >> handleFiltered: @4 line 3 [GsMethod 203208449] >> 44 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 [GsMethod 2304001] >> 45 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 [GsMethod 2304001] >> 46 WATimingToolFilter >> handleFiltered: @8 line 4 [GsMethod 203208449] >> 47 ComplexBlock in WARequestHandler >> handle: @4 line 4 [GsMethod 178568961] >> 48 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] >> 49 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] >> 50 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] >> 51 WADynamicVariable class >> use:during: @4 line 4 [GsMethod 177805825] >> 52 ComplexBlock in WARequestContext >> push:during: @4 line 5 [GsMethod 176176129] >> 53 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 [GsMethod 2304001] >> 54 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 [GsMethod 2304001] >> 55 WARequestContext >> push:during: @7 line 6 [GsMethod 176176129] >> 56 WARequestHandler >> handle: @5 line 4 [GsMethod 178568961] >> 57 WASession >> handle: @10 line 11 [GsMethod 202210561] >> 58 WARegistry >> dispatch:to: @1 line 5 [GsMethod 176153857] >> 59 WARegistry >> handleKeyed:with: @2 line 5 [GsMethod 176155137] >> 60 WARegistry >> handleFiltered: @33 line 19 [GsMethod 176146945] >> 61 WAApplication >> handleFiltered: @9 line 8 [GsMethod 202644225] >> 62 WARequestFilter >> handleFiltered: @2 line 4 [GsMethod 176192513] >> 63 ComplexBlock in WAExceptionFilter >> handleFiltered: @6 line 7 [GsMethod 499529473] >> 64 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] >> 65 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] >> 66 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] >> 67 WADynamicVariable class >> use:during: @4 line 4 [GsMethod 177805825] >> 68 ComplexVCBlock in WAExceptionFilter >> handleFiltered: @7 line 6 [GsMethod 499529473] >> 69 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] >> 70 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] >> 71 ComplexVCBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] >> 72 WAExceptionHandler >> handleExceptionsDuring: @8 line 3 [GsMethod 177803521] >> 73 WAExceptionFilter >> handleFiltered: @8 line 4 [GsMethod 499529473] >> 74 ComplexBlock in WARequestHandler >> handle: @4 line 4 [GsMethod 178568961] >> 75 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] >> 76 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] >> 77 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] >> 78 WADynamicVariable class >> use:during: @4 line 4 [GsMethod 177805825] >> 79 ComplexBlock in WARequestContext >> push:during: @4 line 5 [GsMethod 176176129] >> 80 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 [GsMethod 2304001] >> 81 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 [GsMethod 2304001] >> 82 WARequestContext >> push:during: @7 line 6 [GsMethod 176176129] >> 83 WARequestHandler >> handle: @5 line 4 [GsMethod 178568961] >> 84 WADispatcher >> handleFiltered:named: @7 line 5 [GsMethod 179090945] >> 85 WADispatcher >> handleFiltered: @7 line 6 [GsMethod 179087617] >> 86 ComplexBlock in WARequestHandler >> handle: @4 line 4 [GsMethod 178568961] >> 87 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] >> 88 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] >> 89 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] >> 90 WADynamicVariable class >> use:during: @4 line 4 [GsMethod 177805825] >> 91 ComplexBlock in WARequestContext >> push:during: @4 line 5 [GsMethod 176176129] >> 92 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 [GsMethod 2304001] >> 93 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 [GsMethod 2304001] >> 94 WARequestContext >> push:during: @7 line 6 [GsMethod 176176129] >> 95 WARequestHandler >> handle: @5 line 4 [GsMethod 178568961] >> 96 ComplexBlock in WAServerAdaptor >> handleRequest: @4 line 4 [GsMethod 176816641] >> 97 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] >> 98 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] >> 99 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] >> 100 WAServerAdaptor >> handleRequest: @6 line 5 [GsMethod 176816641] >> 101 WAServerAdaptor >> handle: @1 line 4 [GsMethod 176817921] >> 102 ComplexBlock in WAServerAdaptor >> process: @5 line 6 [GsMethod 176817153] >> 103 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 [GsMethod 2304001] >> 104 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 [GsMethod 2304001] >> 105 WAServerAdaptor >> process: @9 line 7 [GsMethod 176817153] >> 106 ComplexBlock in WAFastCGIAdaptor >> process: @3 line 6 [GsMethod 212442369] >> 107 ComplexBlock in GRGemStonePlatform >> seasideProcessRequestWithRetry:resultBlock: @12 line 11 [GsMethod 175179265] >> 108 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] >> 109 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] >> 110 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] >> 111 ComplexVCBlock in GRGemStonePlatform >> seasideProcessRequestWithRetry:resultBlock: @18 line 12 [GsMethod 175179265] >> 112 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 [GsMethod 2304001] >> 113 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11 [GsMethod 2304001] >> 114 TransientRecursionLock >> critical: @15 line 8 [GsMethod 21159937] >> 115 GRGemStonePlatform >> seasideProcessRequestWithRetry:resultBlock: @39 line 5 [GsMethod 175179265] >> 116 ComplexBlock in GRGemStonePlatform >> seasideProcessRequest:adaptor:resultBlock: @7 line 9 [GsMethod 175179521] >> 117 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] >> 118 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] >> 119 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] >> 120 GRGemStonePlatform >> seasideProcessRequest:adaptor:resultBlock: @32 line 17 [GsMethod 175179521] >> 121 WAFastCGIAdaptor >> process: @4 line 4 [GsMethod 212442369] >> 122 ComplexBlock in WAFastCGIAdaptor >> answerResponderRole: @3 line 4 [GsMethod 212444161] >> 123 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] >> 124 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] >> 125 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] >> 126 WAFastCGIAdaptor >> answerResponderRole: @9 line 5 [GsMethod 212444161] >> 127 FSResponderRole >> answer @2 line 4 [GsMethod 218695937] >> 128 FSRole >> handleConnection @3 line 5 [GsMethod 218705409] >> 129 FSConnection >> unsafeServe @4 line 8 [GsMethod 219646465] >> 130 ComplexBlock in FSConnection >> safeServe @5 line 8 [GsMethod 499288833] >> 131 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] >> 132 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] >> 133 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] >> 134 ComplexVCBlock in FSConnection >> safeServe @8 line 9 [GsMethod 499288833] >> 135 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] >> 136 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod 10062081] >> 137 ComplexVCBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod 9005057] >> 138 ComplexVCBlock in FSConnection >> safeServe @11 line 12 [GsMethod 499288833] >> 139 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 [GsMethod 2304001] >> 140 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11 [GsMethod 2304001] >> 141 FSConnection >> safeServe @14 line 15 [GsMethod 499288833] >> 142 FSConnection >> serve @1 line 4 [GsMethod 219654145] >> 143 ComplexBlock in FSSocketServer >> listen: @9 line 15 [GsMethod 219292673] >> 144 GsProcess >> _startPart2 @15 line 17 [GsMethod 4501249] >> 145 GsProcess >> _start @1 line 9 [GsMethod 4501761] >> [GsProcess 412915713] >> topaz 1> [268 sz:0 cls: 68097 Boolean] true >> topaz 1> >> HostCallDebugger: invoked at: Mon Feb 20 16:38:18 UTC 2012 >> >> UTL_GUARANTEE failed, File /export/toronto3/users/buildgss/244x-1/src/omverify.c line 28 >> >> Begin attempt to print C-level stack at: Mon Feb 20 16:38:18 UTC 2012 >> >> >> End of C-level stack: >> >> >> hostcalldebugger invoked in process 6550, at 02/20/2012 04:38:18 PM.681 UTC >> notifying stone of fatal error >> >> [Info]: Logging out at 02/20/2012 04:38:18 PM UTC >> >> >> >>> >>> ----- Original Message ----- >>> | From: "Lawrence Kellogg" <[hidden email]> >>> | To: "GemStone Seaside beta discussion" <[hidden email]> >>> | Sent: Monday, February 20, 2012 8:48:22 AM >>> | Subject: Re: [GS/SS Beta] Object does not exist error - Worry about it? >>> | >>> | Hello Dale, >>> | Well, my system has been up for days, running with no problems, not >>> | that it has been getting a lot of traffic, but still, no crashes. >>> | Today, I hit the Object does not exist error again. I guess I can >>> | do another object audit but, other than that, I'm not sure how to >>> | proceed. Do you think an upgrade to 2.4.5 will help me? >>> | >>> | Here is the walkback: >>> | >>> | topaz 1> topaz 1> WAFastCGIAdaptor Server started on port 9001 >>> | ----------------------------------------------------- >>> | GemStone: Error Nonfatal >>> | The object with object ID 76562293713797632 does not exist. >>> | Error Category: 231169 [GemStone] Number: 2101 Arg Count: 1 Context : >>> | 412915713 >>> | Arg 1: [612498349710381058 sz:0 cls: 74241 SmallInteger] >>> | 76562293713797632 >>> | >>> | Now executing the following command saved from "iferr 1": >>> | where >>> | ==> 1 WAComponent >> decoration @3 line 1 [GsMethod 194749441] >>> | 2 WAComponent >> addDecoration: @2 line 6 [GsMethod 194748417] >>> | 3 WAComponent >> show:onAnswer:delegation: @10 line 8 [GsMethod >>> | 194749185] >>> | 4 WAComponent >> show:onAnswer: @5 line 5 [GsMethod 499699713] >>> | 5 WAComponent >> call:onAnswer: @5 line 8 [GsMethod 194750977] >>> | 6 ComplexBlock in WAComponent >> call: @3 line 4 [GsMethod >>> | 191317249] >>> | 7 ComplexBlock in WAComponent >> wait: @3 line 3 [GsMethod >>> | 191268353] >>> | 8 GRGemStonePlatform >> seasideSuspendFlowDo: @9 line 5 [GsMethod >>> | 499655937] >>> | 9 WAComponent >> wait: @4 line 3 [GsMethod 191268353] >>> | 10 WAComponent >> call: @4 line 4 [GsMethod 191317249] >>> | 11 PracticeJournalLoginTask >> go @14 line 9 [GsMethod 371393537] >>> | >>> | >>> | Larry >>> | >>> | On Feb 11, 2012, at 2:34 PM, Dale Henrichs wrote: >>> | >>> | > Larry, >>> | > >>> | > Yes, everything looks clean, I'm a little bit surprised that you >>> | > didn't find the original error in you first audit, but the >>> | > implication is that the "corrupt object" never got persisted ... >>> | > indicating some other type of corruption ... >>> | > >>> | > A clean object audit means that your data base has no corruption so >>> | > you're good to go ... I'll talk to some guys on Monday and see if >>> | > they have some ideas as to what might have happened...there's a >>> | > bug in there somewhere, but for now it looks like it is isolated >>> | > to the local state in a gem ... >>> | > >>> | > Dale >>> | > >>> | > ----- Original Message ----- >>> | > | From: "Lawrence Kellogg" <[hidden email]> >>> | > | To: "GemStone Seaside beta discussion" >>> | > | <[hidden email]> >>> | > | Sent: Saturday, February 11, 2012 4:18:06 AM >>> | > | Subject: Re: [GS/SS Beta] Object does not exist error - Worry >>> | > | about it? >>> | > | >>> | > | >>> | > | On Feb 10, 2012, at 7:04 PM, Dale Henrichs wrote: >>> | > | >>> | > | > Larry, >>> | > | > >>> | > | > Object does not exist errors are not good things ... and the >>> | > | > gem >>> | > | > coming down in this case is probably a good thing ... The fact >>> | > | > that the problem is showing up in a GsProcess means that the >>> | > | > Seaside session data structures are corrupted but not your >>> | > | > model >>> | > | > data ... >>> | > | > >>> | > | > You can check for corruption in your data base by running an >>> | > | > object >>> | > | > audit (see section 8.2 of the System Administration Guide[1]). >>> | > | > If >>> | > | > you follow these steps you own't need to run the object audit >>> | > | > as >>> | > | > single user (see the docs): >>> | > | > >>> | > | > - expire sessions >>> | > | > - mfc >>> | > | > - reclaimAll >>> | > | > - object audit >>> | > | > >>> | > | >>> | > | Hello Dale, >>> | > | Ok, I ran: >>> | > | >>> | > | System stopUserSessions >>> | > | SystemRepository objectAudit >>> | > | SystemRepository markForCollection >>> | > | SystemRepository reclaimAll >>> | > | SystemRepository objectAudit >>> | > | >>> | > | I don't see any errors. Here is my log. What do you make of it? >>> | > | >>> | > | Larry >>> | > | >>> | > | >>> | > | [Info]: Login Time: 02/11/2012 12:06:22 PM.972 UTC >>> | > | [02/11/2012 12:06:23 PM.001 UTC] gci login: currSession 1 rpc gem >>> | > | processId -1 >>> | > | successful login >>> | > | topaz 1> printit >>> | > | System hasMissingGcGems >>> | > | % >>> | > | false >>> | > | topaz 1> printit >>> | > | System stopUserSessions >>> | > | % >>> | > | System class >>> | > | superClass Object class >>> | > | format 32 >>> | > | instVars 0 >>> | > | instVarNames an Array >>> | > | constraints an Array >>> | > | classVars a SymbolDictionary >>> | > | methodDict a GsMethodDictionary >>> | > | poolDictionaries an Array >>> | > | categories a GsMethodDictionary >>> | > | secondarySuperclasses nil >>> | > | name System >>> | > | classHistory a ClassHistory >>> | > | description a GsClassDocumentation >>> | > | migrationDestination nil >>> | > | timeStamp a DateTime >>> | > | userId SystemUser >>> | > | extraDict a SymbolDictionary >>> | > | classCategory nil >>> | > | subclasses nil >>> | > | >>> | > | topaz 1> printit >>> | > | SystemRepository objectAudit >>> | > | % >>> | > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 >>> | > | --setGcConfig: set reclaimMinPages to 1 >>> | > | --reclaimAll: changed reclaimMinPages from 40 to 1 >>> | > | --setGcConfig: set reclaimSleepTime to 1 >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 >>> | > | --reclaimAll: using reclaimDeadEnabled true >>> | > | --reclaimAll: simpleCommit loopCount 10 >>> | > | 02/11/2012 12:07:41 PM.070 UTC: Starting object table scan >>> | > | 02/11/2012 12:07:41 PM.698 UTC: Finished object table scan >>> | > | >>> | > | Object audit is proceeding in FullAudit mode: >>> | > | Scavenging completed (either single user mode or no pages to >>> | > | scavenge). >>> | > | All audit checks are enabled. >>> | > | >>> | > | Object audit as of 02/11/2012 12:07:41 PM UTC. >>> | > | Summary of objects whose sizes exceed 100000 Bytes or Oops: >>> | > | >>> | > | ObjectID Class ClassName >>> | > | LogicalSize >>> | > | -------------------------------------------------------------------------------------------------------------- >>> | > | 305743617 74753 String >>> | > | 134740 Oops >>> | > | 149534721 74753 String >>> | > | 164661 Oops >>> | > | 173784833 74753 String >>> | > | 163312 Oops >>> | > | 196368897 74753 String >>> | > | 164661 Oops >>> | > | 305774593 74753 String >>> | > | 134740 Oops >>> | > | 175519489 74753 String >>> | > | 376305 Oops >>> | > | 196571393 74753 String >>> | > | 379399 Oops >>> | > | 175494145 74753 String >>> | > | 201874 Oops >>> | > | 197005569 74753 String >>> | > | 202074 Oops >>> | > | 149996289 74753 String >>> | > | 236426 Oops >>> | > | 151722753 74753 String >>> | > | 379399 Oops >>> | > | 151723777 74753 String >>> | > | 202074 Oops >>> | > | 274619393 74753 String >>> | > | 1170577 Oops >>> | > | 265139713 74753 String >>> | > | 1170577 Oops >>> | > | 215910913 66817 Array >>> | > | 331214 Oops >>> | > | 164965121 74753 String >>> | > | 236201 Oops >>> | > | 197155585 74753 String >>> | > | 236426 Oops >>> | > | 271373057 74753 String >>> | > | 1170577 Oops >>> | > | 268426753 74753 String >>> | > | 134740 Oops >>> | > | 264103681 74753 String >>> | > | 1170577 Oops >>> | > | >>> | > | ----------- Object Statistics Summary ----------------- >>> | > | >>> | > | ----- Instances of invisible (private) classes ------ >>> | > | Number of instances: 1072 >>> | > | Total size: 15855 K Bytes >>> | > | Average size: 14.8 Bytes >>> | > | >>> | > | Class: 209153 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 209409 Instances: 1072 Total Size: >>> | > | 15855 K Bytes >>> | > | Class: 209665 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 209921 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 210177 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 210433 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 210689 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 210945 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 211201 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 211457 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 211713 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 211969 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 212225 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 212481 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 212737 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 212993 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 213249 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 213505 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 213761 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | >>> | > | >>> | > | ----- Instances of visible classes ----------------- >>> | > | Number of objects : 1633432 >>> | > | Total Size : 157861 K Bytes >>> | > | size of Object Headers : 38283 K Bytes >>> | > | size of Object Values : 116978 K Bytes >>> | > | size of Object Tags : 0 K Bytes >>> | > | average of Object Value: 73.3 Bytes >>> | > | >>> | > | Object Audit: Audit successfully completed; no errors were >>> | > | detected. >>> | > | --setGcConfig: set reclaimMinPages to 40 >>> | > | --setGcConfig: set reclaimSleepTime to 10 >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 >>> | > | --postReclaimAll: restored reclaimMinPages to 40 >>> | > | true >>> | > | topaz 1> printit >>> | > | SystemRepository markForCollection >>> | > | % >>> | > | start MFC mark/sweep phase: 02/11/2012 12:08:56 PM UTC >>> | > | WARNING, unable to resolve either garMarkSweepPageBufSize or >>> | > | mfcGcPageBufSize, using default 320 >>> | > | MarkSweepArgsSType::(): buffer size= 320 pages >>> | > | start MFC process dead phase: 02/11/2012 12:08:59 PM UTC >>> | > | end MFC: 02/11/2012 12:08:59 PM UTC >>> | > | Successful completion of markForCollection. >>> | > | 1613875 live objects found. >>> | > | 20629 possible dead objects, occupying approximately 1856610 >>> | > | bytes, may be reclaimed. >>> | > | topaz 1> printit >>> | > | SystemRepository reclaimAll >>> | > | % >>> | > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 >>> | > | --setGcConfig: set reclaimMinPages to 1 >>> | > | --reclaimAll: changed reclaimMinPages from 40 to 1 >>> | > | --setGcConfig: set reclaimSleepTime to 1 >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 >>> | > | --reclaimAll: using reclaimDeadEnabled true >>> | > | --reclaimAll: simpleCommit loopCount 10 >>> | > | an Array >>> | > | #1 40 >>> | > | #2 10 >>> | > | #3 0 >>> | > | >>> | > | topaz 1> printit >>> | > | SystemRepository objectAudit >>> | > | % >>> | > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 >>> | > | --setGcConfig: set reclaimMinPages to 1 >>> | > | --reclaimAll: changed reclaimMinPages from 1 to 1 >>> | > | --setGcConfig: set reclaimSleepTime to 1 >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 >>> | > | --reclaimAll: using reclaimDeadEnabled true >>> | > | 02/11/2012 12:11:27 PM.328 UTC: Starting object table scan >>> | > | 02/11/2012 12:11:27 PM.921 UTC: Finished object table scan >>> | > | >>> | > | Object audit is proceeding in FullAudit mode: >>> | > | Scavenging completed (either single user mode or no pages to >>> | > | scavenge). >>> | > | All audit checks are enabled. >>> | > | >>> | > | Object audit as of 02/11/2012 12:11:27 PM UTC. >>> | > | Summary of objects whose sizes exceed 100000 Bytes or Oops: >>> | > | >>> | > | ObjectID Class ClassName >>> | > | LogicalSize >>> | > | -------------------------------------------------------------------------------------------------------------- >>> | > | 305743617 74753 String >>> | > | 134740 Oops >>> | > | 149534721 74753 String >>> | > | 164661 Oops >>> | > | 173784833 74753 String >>> | > | 163312 Oops >>> | > | 196368897 74753 String >>> | > | 164661 Oops >>> | > | 305774593 74753 String >>> | > | 134740 Oops >>> | > | 175519489 74753 String >>> | > | 376305 Oops >>> | > | 196571393 74753 String >>> | > | 379399 Oops >>> | > | 175494145 74753 String >>> | > | 201874 Oops >>> | > | 197005569 74753 String >>> | > | 202074 Oops >>> | > | 149996289 74753 String >>> | > | 236426 Oops >>> | > | 151722753 74753 String >>> | > | 379399 Oops >>> | > | 151723777 74753 String >>> | > | 202074 Oops >>> | > | 274619393 74753 String >>> | > | 1170577 Oops >>> | > | 265139713 74753 String >>> | > | 1170577 Oops >>> | > | 215910913 66817 Array >>> | > | 331214 Oops >>> | > | 164965121 74753 String >>> | > | 236201 Oops >>> | > | 197155585 74753 String >>> | > | 236426 Oops >>> | > | 271373057 74753 String >>> | > | 1170577 Oops >>> | > | 268426753 74753 String >>> | > | 134740 Oops >>> | > | 264103681 74753 String >>> | > | 1170577 Oops >>> | > | >>> | > | ----------- Object Statistics Summary ----------------- >>> | > | >>> | > | ----- Instances of invisible (private) classes ------ >>> | > | Number of instances: 1072 >>> | > | Total size: 15855 K Bytes >>> | > | Average size: 14.8 Bytes >>> | > | >>> | > | Class: 209153 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 209409 Instances: 1072 Total Size: >>> | > | 15855 K Bytes >>> | > | Class: 209665 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 209921 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 210177 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 210433 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 210689 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 210945 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 211201 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 211457 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 211713 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 211969 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 212225 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 212481 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 212737 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 212993 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 213249 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 213505 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | Class: 213761 Instances: 0 Total Size: >>> | > | 0 K Bytes >>> | > | >>> | > | >>> | > | ----- Instances of visible classes ----------------- >>> | > | Number of objects : 1612803 >>> | > | Total Size : 156912 K Bytes >>> | > | size of Object Headers : 37800 K Bytes >>> | > | size of Object Values : 116516 K Bytes >>> | > | size of Object Tags : 0 K Bytes >>> | > | average of Object Value: 74.0 Bytes >>> | > | >>> | > | Object Audit: Audit successfully completed; no errors were >>> | > | detected. >>> | > | --setGcConfig: set reclaimMinPages to 1 >>> | > | --setGcConfig: set reclaimSleepTime to 1 >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 >>> | > | --postReclaimAll: restored reclaimMinPages to 1 >>> | > | true >>> | > | topaz 1> >>> | > | topaz 1> >>> | > | >>> | > | >>> | > | > If, as I suspect, you've got corruption in GsProcess objects >>> | > | > they >>> | > | > only impact Seaside session state, and should have disappeared >>> | > | > by >>> | > | > the time you run the object audit ... >>> | > | > >>> | > | > This problems seems to ring a bell, but it seems to me that the >>> | > | > problem I am thinking of showed up in GemStone 3.0 and I think >>> | > | > it >>> | > | > was fixed in GemStone 3.0.1... so I'm curious what version of >>> | > | > GemStone you are using. >>> | > | > >>> | > | > As I think about this, I seem to recall that the problem was >>> | > | > related to deeply nested block structure in a method that was >>> | > | > involved in partial continuations, so I am curious if you >>> | > | > happen >>> | > | > to have some deeply nested block structures let's say more than >>> | > | > 5 >>> | > | > or 6 levels deep in your method? In fact even in 3.0.1 I think >>> | > | > that there might be an effective limit (the engineer that >>> | > | > worked >>> | > | > on this will be back on Monday for exact details), so if you >>> | > | > are >>> | > | > running with 3.0.1, you should definitely be suspicious of deep >>> | > | > nesting of blocks... >>> | > | > >>> | > | > Dale >>> | > | > >>> | > | > [1] >>> | > | > http://community.gemstone.com/display/GSS64/GemStoneS+64+Documentation >>> | > | > >>> | > | > ----- Original Message ----- >>> | > | > | From: "Lawrence Kellogg" <[hidden email]> >>> | > | > | To: "GemStone Seaside beta discussion" >>> | > | > | <[hidden email]> >>> | > | > | Sent: Friday, February 10, 2012 2:13:15 PM >>> | > | > | Subject: [GS/SS Beta] Object does not exist error - Worry >>> | > | > | about >>> | > | > | it? >>> | > | > | >>> | > | > | >>> | > | > | >>> | > | > | Hello, >>> | > | > | After a long series of calls and answers in Seaside, I got an >>> | > | > | Object >>> | > | > | does not exist error that brought down the fast cgi gateway. >>> | > | > | My >>> | > | > | production error handler was not triggered, although it was >>> | > | > | installed, as far as I could tell. Strange. My supervise >>> | > | > | fastcgi >>> | > | > | process also did not pick up my dead fastcgi process. Not a >>> | > | > | good >>> | > | > | day. >>> | > | > | >>> | > | > | Here is the walkback: >>> | > | > | >>> | > | > | >>> | > | > | >>> | > | > | USER IDS: REAL=seasideuser (500) EFFECTIVE=seasideuser (500) >>> | > | > | | >>> | > | > | |_____________________________________________________________________________| >>> | > | > | topaz> topaz> topaz> topaz> topaz> topaz> topaz> [Info]: LNK >>> | > | > | client/gem GCI levels = 844/844 >>> | > | > | [Info]: User ID: DataCurator >>> | > | > | [Info]: Repository: seaside >>> | > | > | [Info]: Session ID: 5 >>> | > | > | [Info]: GCI Client Host: <Linked> >>> | > | > | [Info]: Page server PID: -1 >>> | > | > | [Info]: Login Time: 02/10/2012 09:27:56 PM.572 UTC >>> | > | > | [02/10/2012 09:27:56 PM.592 UTC] gci login: currSession 1 rpc >>> | > | > | gem >>> | > | > | processId -1 >>> | > | > | successful login >>> | > | > | topaz 1> topaz 1> [20 sz:0 cls: 76289 UndefinedObject] nil >>> | > | > | topaz 1> topaz 1> [76033 sz:19 cls: 801793 System class] >>> | > | > | System >>> | > | > | class >>> | > | > | superClass [72193 sz:19 cls: 206081 Object class] Object >>> | > | > | class >>> | > | > | format [258 sz:0 cls: 74241 SmallInteger] 32 >>> | > | > | instVars [2 sz:0 cls: 74241 SmallInteger] 0 >>> | > | > | instVarNames [422145 sz:0 cls: 66817 Array] an Array >>> | > | > | constraints [421889 sz:0 cls: 66817 Array] an Array >>> | > | > | classVars [421633 sz:26 cls: 111361 SymbolDictionary] a >>> | > | > | SymbolDictionary >>> | > | > | methodDict [711937 sz:112 cls: 99073 GsMethodDictionary] a >>> | > | > | GsMethodDictionary >>> | > | > | poolDictionaries [421377 sz:0 cls: 66817 Array] an Array >>> | > | > | categories [421121 sz:28 cls: 99073 GsMethodDictionary] a >>> | > | > | GsMethodDictionary >>> | > | > | secondarySuperclasses [20 sz:0 cls: 76289 UndefinedObject] >>> | > | > | nil >>> | > | > | name [801537 sz:6 cls: 110849 Symbol] System >>> | > | > | classHistory [420865 sz:3 cls: 82689 ClassHistory] a >>> | > | > | ClassHistory >>> | > | > | description [13498369 sz:10 cls: 95233 GsClassDocumentation] >>> | > | > | a >>> | > | > | GsClassDocumentation >>> | > | > | migrationDestination [20 sz:0 cls: 76289 UndefinedObject] nil >>> | > | > | timeStamp [14510593 sz:4 cls: 118785 DateTime] a DateTime >>> | > | > | userId [14508801 sz:10 cls: 74753 String] SystemUser >>> | > | > | extraDict [14524929 sz:14 cls: 111361 SymbolDictionary] a >>> | > | > | SymbolDictionary >>> | > | > | classCategory [20 sz:0 cls: 76289 UndefinedObject] nil >>> | > | > | subclasses [20 sz:0 cls: 76289 UndefinedObject] nil >>> | > | > | >>> | > | > | >>> | > | > | topaz 1> topaz 1> WAFastCGIAdaptor Server started on port >>> | > | > | 9001 >>> | > | > | ----------------------------------------------------- >>> | > | > | GemStone: Error Nonfatal >>> | > | > | The object with object ID 81065894683350528 does not exist. >>> | > | > | Error Category: 231169 [GemStone] Number: 2101 Arg Count: 1 >>> | > | > | Context : >>> | > | > | 526648321 >>> | > | > | Arg 1: [648527157466804226 sz:0 cls: 74241 SmallInteger] >>> | > | > | 81065894683350528 >>> | > | > | >>> | > | > | >>> | > | > | Now executing the following command saved from "iferr 1": >>> | > | > | where >>> | > | > | ==> 1 GsProcess class >> >>> | > | > | installPartialContinuation:atLevel:value: @2 >>> | > | > | line 1 [GsMethod 4487425] >>> | > | > | 2 WAPartialContinuation >> value: @13 line 11 [GsMethod >>> | > | > | 212791041] >>> | > | > | 3 WAPartialContinuation >> valueWithPossibleArguments: @2 >>> | > | > | line 2 >>> | > | > | [GsMethod 218326273] >>> | > | > | 4 ComplexBlock in WAComponent >> show:onAnswer:delegation: @7 >>> | > | > | line 7 >>> | > | > | [GsMethod 194749185] >>> | > | > | 5 ComplexBlock in ExecutableBlock >> >>> | > | > | valueWithPossibleArguments: >>> | > | > | @12 >>> | > | > | line 8 [GsMethod 116163585] >>> | > | > | 6 WAAnswerHandler >> handleAnswer:continueWith: @3 line 2 >>> | > | > | [GsMethod >>> | > | > | 194735873] >>> | > | > | 7 WADecoration >> handleAnswer: @6 line 3 [GsMethod >>> | > | > | 194731009] >>> | > | > | 8 WAComponent >> answer: @2 line 5 [GsMethod 194751745] >>> | > | > | >>> | > | > | >>> | > | > | >>> | > | > | >>> | > | > | I found this on the net: >>> | > | > | >>> | > | > | >>> | > | > | >>> | > | > | Object does not exist errors >>> | > | > | GBS applications may encounter object does not exist errors >>> | > | > | in >>> | > | > | non-persistent >>> | > | > | objects. This is due to a problem with the fix for bug #40703 >>> | > | > | in >>> | > | > | version >>> | > | > | 2.4.4, which resulted in non-persistent objects not properly >>> | > | > | protected >>> | > | > | from garbage collection. >>> | > | > | >>> | > | > | Workaround: >>> | > | > | >>> | > | > | none/not applicable >>> | > | > | from: >>> | > | > | >>> | > | > | >>> | > | > | >>> | > | > | >>> | > | > | >>> | > | > | >>> | > | > | http://www.gemstone.com/docs/GemStoneS/bugnotes/bugnotes/40948.html >>> | > | > | >>> | > | > | >>> | > | > | >>> | > | > | So, should I worry about this? I implemented code that >>> | > | > | allowed a >>> | > | > | user >>> | > | > | to call an editor, switch out on the navigation menu, call >>> | > | > | another >>> | > | > | editor, >>> | > | > | switch out. With each switch, I send answer: false to the >>> | > | > | open >>> | > | > | editor >>> | > | > | to close it so that it is not hanging around open. My idea >>> | > | > | was to hide the section navigation when the editor came up >>> | > | > | but >>> | > | > | I'm >>> | > | > | getting push back from my user. >>> | > | > | >>> | > | > | >>> | > | > | What do you think? >>> | > | > | >>> | > | > | >>> | > | > | Larry >>> | > | > | >>> | > | > | >>> | > | > | >>> | > | > | >>> | > | >>> | > | >>> | >>> | >> > |
Sorry ... got side-tracked ... I'm looking now ...
Dale ----- Original Message ----- | From: "Lawrence Kellogg" <[hidden email]> | To: "GemStone Seaside beta discussion" <[hidden email]> | Sent: Monday, February 27, 2012 7:01:58 PM | Subject: Re: [GS/SS Beta] Object does not exist error - Worry about it? | | | On Feb 21, 2012, at 2:40 PM, Johan Brichau wrote: | | > fyi, I have been observing occurrences of this bug as well, with | > exactly the same point of failure in the stack. | > | > No repository problems or audit warnings. | > | > Funnily, I've never seen this in any stone running Yesplan. The | > stone where we have this problem is also running a Seaside | > application but the only discriminating factor I can observe is | > that this application uses call/answer a lot more (while we almost | > never use that in Yesplan). It probably does not help a lot | > finding the error... but I will look up the stack traces and post | > them here if they might contain some clues. | | Hello Johan, | Thanks for looking into this problem. I use call/answer quite a | bit. | | Dale, did you see the stack dump I posted? | | Larry | | | > | > On 21 Feb 2012, at 20:13, Lawrence Kellogg wrote: | > | >> | >> On Feb 21, 2012, at 1:05 PM, Dale Henrichs wrote: | >> | >>> Larry, | >>> | >>> We should try to dig into this one some more. | >>> | >>> To start with what version of Gemstone are you using? If you are | >>> using 2.4.4.1, then I'm not aware of an issue that would warrant | >>> an upgrade to 2.4.5, but I will check around a bit...As I said | >>> before, the only place that I've seen "Obj does not exist | >>> errors" is in 3.0 and those bugs were fixed in 3.0.1. | >>> | >> | >> Dale, | >> Thanks for the help. I would like to get to the bottom of this | >> error. This crash takes down Fastcgi so it kills the service. | >> | >> According to the file in the directory, I'm on 2.4.4.1 | >> | >> GemStone64Bit2.4.4.1-x86_64.Linux | >> | >> | >> | >> | >>> This time we are getting the error while creating the | >>> continuation ... the last episode occurred when you were trying | >>> to execute from a continuation. | >>> | >>> Could you share the source code for PracticeJournalLoginTask >> | >>> go? That's the first non-Seaside method on the stack below the | >>> error, so it's as good a place as any to start … | >>> | >> | >> Here is the complete source code for the go method: ;-) | >> | >> go | >> | user component | | >> self call: self userLoginView. | >> (self userLoginView user) notNil | >> ifTrue: [ | >> component := self firstComponentToDisplayForUser: self | >> userLoginView user. | >> [ component notNil ] | >> whileTrue: [ | >> self call: component. | >> component := component nextComponentToBeDisplayed ] ] | >> | >> A component is called, and when another component is selected the | >> current component is sent answer: false and | >> the new component to call is returned from that | >> nextComponentToBeDisplayed method. | >> | >> I used to have an implementation that would give me a huge | >> recursive nesting of continuations, as shown by | >> halo, but this shows everything on just a few levels, although I | >> have to say that the walkback looks deep and gnarly. | >> | >> | >>> It would be useful to see the entire stack as well. The partial | >>> continuation copies the stack back to a marker method and it | >>> would be useful to examine the source for the methods that are | >>> on the stck for clues as to what might be going on... | >>> | >>> Dale | >> | >> | >> Here is the complete walk back: | >> | >> topaz 1> topaz 1> WAFastCGIAdaptor Server started on port 9001 | >> ----------------------------------------------------- | >> GemStone: Error Nonfatal | >> The object with object ID 76562293713797632 does not exist. | >> Error Category: 231169 [GemStone] Number: 2101 Arg Count: 1 | >> Context : 412915713 | >> Arg 1: [612498349710381058 sz:0 cls: 74241 SmallInteger] | >> 76562293713797632 | >> | >> Now executing the following command saved from "iferr 1": | >> where | >> ==> 1 WAComponent >> decoration @3 line 1 [GsMethod 194749441] | >> 2 WAComponent >> addDecoration: @2 line 6 [GsMethod 194748417] | >> 3 WAComponent >> show:onAnswer:delegation: @10 line 8 [GsMethod | >> 194749185] | >> 4 WAComponent >> show:onAnswer: @5 line 5 [GsMethod 499699713] | >> 5 WAComponent >> call:onAnswer: @5 line 8 [GsMethod 194750977] | >> 6 ComplexBlock in WAComponent >> call: @3 line 4 [GsMethod | >> 191317249] | >> 7 ComplexBlock in WAComponent >> wait: @3 line 3 [GsMethod | >> 191268353] | >> 8 GRGemStonePlatform >> seasideSuspendFlowDo: @9 line 5 | >> [GsMethod 499655937] | >> 9 WAComponent >> wait: @4 line 3 [GsMethod 191268353] | >> 10 WAComponent >> call: @4 line 4 [GsMethod 191317249] | >> 11 PracticeJournalLoginTask >> go @14 line 9 [GsMethod | >> 371393537] | >> 12 WATask >> execute @1 line 7 [GsMethod 195261697] | >> 13 ComplexBlock in WATaskVisitor >> visitTask: @6 line 4 | >> [GsMethod 194755841] | >> 14 WACallback >> evaluateWithFieldValues: @5 line 2 [GsMethod | >> 177495553] | >> 15 ComplexBlock in WACallbackRegistry >> handle: @16 line 10 | >> [GsMethod 177951489] | >> 16 Collection >> do: @5 line 10 [GsMethod 1547777] | >> 17 WACallbackRegistry >> handle: @17 line 9 [GsMethod 177951489] | >> 18 ComplexBlock in WAActionPhaseContinuation >> runCallbacks @7 | >> line 4 [GsMethod 202613505] | >> 19 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] | >> 20 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | >> 10062081] | >> 21 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod | >> 9005057] | >> 22 WARenderLoopContinuation >> withNotificationHandlerDo: @3 line | >> 2 [GsMethod 202608385] | >> 23 ComplexVCBlock in WAActionPhaseContinuation >> runCallbacks @8 | >> line 3 [GsMethod 202613505] | >> 24 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | >> [GsMethod 2304001] | >> 25 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11 | >> [GsMethod 2304001] | >> 26 WAActionPhaseContinuation >> runCallbacks @18 line 6 | >> [GsMethod 202613505] | >> 27 WAActionPhaseContinuation >> handleRequest @1 line 2 | >> [GsMethod 202614017] | >> 28 ComplexBlock in WASessionContinuation >> basicValue @3 line 2 | >> [GsMethod 202625537] | >> 29 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] | >> 30 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | >> 10062081] | >> 31 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod | >> 9005057] | >> 32 WASessionContinuation >> withUnregisteredHandlerDo: @7 line 3 | >> [GsMethod 202627073] | >> 33 WASessionContinuation >> basicValue @4 line 2 [GsMethod | >> 202625537] | >> 34 WASessionContinuation >> value @3 line 5 [GsMethod 202623745] | >> 35 WASession >> handleFiltered: @14 line 10 [GsMethod 202205441] | >> 36 WARequestFilter >> handleFiltered: @2 line 4 [GsMethod | >> 176192513] | >> 37 ComplexBlock in WADeprecatedToolFilter >> handleFiltered: @3 | >> line 2 [GsMethod 203213313] | >> 38 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] | >> 39 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | >> 10062081] | >> 40 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod | >> 9005057] | >> 41 WADeprecatedToolFilter >> handleFiltered: @6 line 3 [GsMethod | >> 203213313] | >> 42 WARequestFilter >> handleFiltered: @2 line 4 [GsMethod | >> 176192513] | >> 43 ComplexBlock in WATimingToolFilter >> handleFiltered: @4 line 3 | >> [GsMethod 203208449] | >> 44 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | >> [GsMethod 2304001] | >> 45 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 | >> [GsMethod 2304001] | >> 46 WATimingToolFilter >> handleFiltered: @8 line 4 [GsMethod | >> 203208449] | >> 47 ComplexBlock in WARequestHandler >> handle: @4 line 4 | >> [GsMethod 178568961] | >> 48 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] | >> 49 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | >> 10062081] | >> 50 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod | >> 9005057] | >> 51 WADynamicVariable class >> use:during: @4 line 4 [GsMethod | >> 177805825] | >> 52 ComplexBlock in WARequestContext >> push:during: @4 line 5 | >> [GsMethod 176176129] | >> 53 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | >> [GsMethod 2304001] | >> 54 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 | >> [GsMethod 2304001] | >> 55 WARequestContext >> push:during: @7 line 6 [GsMethod | >> 176176129] | >> 56 WARequestHandler >> handle: @5 line 4 [GsMethod 178568961] | >> 57 WASession >> handle: @10 line 11 [GsMethod 202210561] | >> 58 WARegistry >> dispatch:to: @1 line 5 [GsMethod 176153857] | >> 59 WARegistry >> handleKeyed:with: @2 line 5 [GsMethod | >> 176155137] | >> 60 WARegistry >> handleFiltered: @33 line 19 [GsMethod | >> 176146945] | >> 61 WAApplication >> handleFiltered: @9 line 8 [GsMethod | >> 202644225] | >> 62 WARequestFilter >> handleFiltered: @2 line 4 [GsMethod | >> 176192513] | >> 63 ComplexBlock in WAExceptionFilter >> handleFiltered: @6 line 7 | >> [GsMethod 499529473] | >> 64 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] | >> 65 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | >> 10062081] | >> 66 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod | >> 9005057] | >> 67 WADynamicVariable class >> use:during: @4 line 4 [GsMethod | >> 177805825] | >> 68 ComplexVCBlock in WAExceptionFilter >> handleFiltered: @7 line | >> 6 [GsMethod 499529473] | >> 69 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] | >> 70 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | >> 10062081] | >> 71 ComplexVCBlock in ExecutableBlock >> on:do: @2 line 8 | >> [GsMethod 9005057] | >> 72 WAExceptionHandler >> handleExceptionsDuring: @8 line 3 | >> [GsMethod 177803521] | >> 73 WAExceptionFilter >> handleFiltered: @8 line 4 [GsMethod | >> 499529473] | >> 74 ComplexBlock in WARequestHandler >> handle: @4 line 4 | >> [GsMethod 178568961] | >> 75 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] | >> 76 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | >> 10062081] | >> 77 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod | >> 9005057] | >> 78 WADynamicVariable class >> use:during: @4 line 4 [GsMethod | >> 177805825] | >> 79 ComplexBlock in WARequestContext >> push:during: @4 line 5 | >> [GsMethod 176176129] | >> 80 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | >> [GsMethod 2304001] | >> 81 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 | >> [GsMethod 2304001] | >> 82 WARequestContext >> push:during: @7 line 6 [GsMethod | >> 176176129] | >> 83 WARequestHandler >> handle: @5 line 4 [GsMethod 178568961] | >> 84 WADispatcher >> handleFiltered:named: @7 line 5 [GsMethod | >> 179090945] | >> 85 WADispatcher >> handleFiltered: @7 line 6 [GsMethod | >> 179087617] | >> 86 ComplexBlock in WARequestHandler >> handle: @4 line 4 | >> [GsMethod 178568961] | >> 87 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] | >> 88 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | >> 10062081] | >> 89 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod | >> 9005057] | >> 90 WADynamicVariable class >> use:during: @4 line 4 [GsMethod | >> 177805825] | >> 91 ComplexBlock in WARequestContext >> push:during: @4 line 5 | >> [GsMethod 176176129] | >> 92 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | >> [GsMethod 2304001] | >> 93 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 | >> [GsMethod 2304001] | >> 94 WARequestContext >> push:during: @7 line 6 [GsMethod | >> 176176129] | >> 95 WARequestHandler >> handle: @5 line 4 [GsMethod 178568961] | >> 96 ComplexBlock in WAServerAdaptor >> handleRequest: @4 line 4 | >> [GsMethod 176816641] | >> 97 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] | >> 98 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | >> 10062081] | >> 99 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod | >> 9005057] | >> 100 WAServerAdaptor >> handleRequest: @6 line 5 [GsMethod | >> 176816641] | >> 101 WAServerAdaptor >> handle: @1 line 4 [GsMethod 176817921] | >> 102 ComplexBlock in WAServerAdaptor >> process: @5 line 6 | >> [GsMethod 176817153] | >> 103 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | >> [GsMethod 2304001] | >> 104 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 | >> [GsMethod 2304001] | >> 105 WAServerAdaptor >> process: @9 line 7 [GsMethod 176817153] | >> 106 ComplexBlock in WAFastCGIAdaptor >> process: @3 line 6 | >> [GsMethod 212442369] | >> 107 ComplexBlock in GRGemStonePlatform >> | >> seasideProcessRequestWithRetry:resultBlock: @12 line 11 | >> [GsMethod 175179265] | >> 108 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | >> 10065409] | >> 109 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | >> 10062081] | >> 110 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | >> [GsMethod 9005057] | >> 111 ComplexVCBlock in GRGemStonePlatform >> | >> seasideProcessRequestWithRetry:resultBlock: @18 line 12 | >> [GsMethod 175179265] | >> 112 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | >> [GsMethod 2304001] | >> 113 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11 | >> [GsMethod 2304001] | >> 114 TransientRecursionLock >> critical: @15 line 8 [GsMethod | >> 21159937] | >> 115 GRGemStonePlatform >> | >> seasideProcessRequestWithRetry:resultBlock: @39 line 5 | >> [GsMethod 175179265] | >> 116 ComplexBlock in GRGemStonePlatform >> | >> seasideProcessRequest:adaptor:resultBlock: @7 line 9 [GsMethod | >> 175179521] | >> 117 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | >> 10065409] | >> 118 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | >> 10062081] | >> 119 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | >> [GsMethod 9005057] | >> 120 GRGemStonePlatform >> | >> seasideProcessRequest:adaptor:resultBlock: @32 line 17 | >> [GsMethod 175179521] | >> 121 WAFastCGIAdaptor >> process: @4 line 4 [GsMethod 212442369] | >> 122 ComplexBlock in WAFastCGIAdaptor >> answerResponderRole: @3 | >> line 4 [GsMethod 212444161] | >> 123 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | >> 10065409] | >> 124 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | >> 10062081] | >> 125 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | >> [GsMethod 9005057] | >> 126 WAFastCGIAdaptor >> answerResponderRole: @9 line 5 [GsMethod | >> 212444161] | >> 127 FSResponderRole >> answer @2 line 4 [GsMethod 218695937] | >> 128 FSRole >> handleConnection @3 line 5 [GsMethod 218705409] | >> 129 FSConnection >> unsafeServe @4 line 8 [GsMethod 219646465] | >> 130 ComplexBlock in FSConnection >> safeServe @5 line 8 | >> [GsMethod 499288833] | >> 131 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | >> 10065409] | >> 132 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | >> 10062081] | >> 133 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | >> [GsMethod 9005057] | >> 134 ComplexVCBlock in FSConnection >> safeServe @8 line 9 | >> [GsMethod 499288833] | >> 135 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | >> 10065409] | >> 136 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | >> 10062081] | >> 137 ComplexVCBlock in ExecutableBlock >> on:do: @2 line 8 | >> [GsMethod 9005057] | >> 138 ComplexVCBlock in FSConnection >> safeServe @11 line 12 | >> [GsMethod 499288833] | >> 139 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | >> [GsMethod 2304001] | >> 140 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11 | >> [GsMethod 2304001] | >> 141 FSConnection >> safeServe @14 line 15 [GsMethod 499288833] | >> 142 FSConnection >> serve @1 line 4 [GsMethod 219654145] | >> 143 ComplexBlock in FSSocketServer >> listen: @9 line 15 | >> [GsMethod 219292673] | >> 144 GsProcess >> _startPart2 @15 line 17 [GsMethod 4501249] | >> 145 GsProcess >> _start @1 line 9 [GsMethod 4501761] | >> [GsProcess 412915713] | >> topaz 1> [268 sz:0 cls: 68097 Boolean] true | >> topaz 1> | >> HostCallDebugger: invoked at: Mon Feb 20 16:38:18 UTC 2012 | >> | >> UTL_GUARANTEE failed, File | >> /export/toronto3/users/buildgss/244x-1/src/omverify.c line 28 | >> | >> Begin attempt to print C-level stack at: Mon Feb 20 16:38:18 UTC | >> 2012 | >> | >> | >> End of C-level stack: | >> | >> | >> hostcalldebugger invoked in process 6550, at 02/20/2012 04:38:18 | >> PM.681 UTC | >> notifying stone of fatal error | >> | >> [Info]: Logging out at 02/20/2012 04:38:18 PM UTC | >> | >> | >> | >>> | >>> ----- Original Message ----- | >>> | From: "Lawrence Kellogg" <[hidden email]> | >>> | To: "GemStone Seaside beta discussion" | >>> | <[hidden email]> | >>> | Sent: Monday, February 20, 2012 8:48:22 AM | >>> | Subject: Re: [GS/SS Beta] Object does not exist error - Worry | >>> | about it? | >>> | | >>> | Hello Dale, | >>> | Well, my system has been up for days, running with no | >>> | problems, not | >>> | that it has been getting a lot of traffic, but still, no | >>> | crashes. | >>> | Today, I hit the Object does not exist error again. I guess I | >>> | can | >>> | do another object audit but, other than that, I'm not sure | >>> | how to | >>> | proceed. Do you think an upgrade to 2.4.5 will help me? | >>> | | >>> | Here is the walkback: | >>> | | >>> | topaz 1> topaz 1> WAFastCGIAdaptor Server started on port 9001 | >>> | ----------------------------------------------------- | >>> | GemStone: Error Nonfatal | >>> | The object with object ID 76562293713797632 does not exist. | >>> | Error Category: 231169 [GemStone] Number: 2101 Arg Count: 1 | >>> | Context : | >>> | 412915713 | >>> | Arg 1: [612498349710381058 sz:0 cls: 74241 SmallInteger] | >>> | 76562293713797632 | >>> | | >>> | Now executing the following command saved from "iferr 1": | >>> | where | >>> | ==> 1 WAComponent >> decoration @3 line 1 [GsMethod | >>> | 194749441] | >>> | 2 WAComponent >> addDecoration: @2 line 6 [GsMethod | >>> | 194748417] | >>> | 3 WAComponent >> show:onAnswer:delegation: @10 line 8 | >>> | [GsMethod | >>> | 194749185] | >>> | 4 WAComponent >> show:onAnswer: @5 line 5 [GsMethod | >>> | 499699713] | >>> | 5 WAComponent >> call:onAnswer: @5 line 8 [GsMethod | >>> | 194750977] | >>> | 6 ComplexBlock in WAComponent >> call: @3 line 4 [GsMethod | >>> | 191317249] | >>> | 7 ComplexBlock in WAComponent >> wait: @3 line 3 [GsMethod | >>> | 191268353] | >>> | 8 GRGemStonePlatform >> seasideSuspendFlowDo: @9 line 5 | >>> | [GsMethod | >>> | 499655937] | >>> | 9 WAComponent >> wait: @4 line 3 [GsMethod 191268353] | >>> | 10 WAComponent >> call: @4 line 4 [GsMethod 191317249] | >>> | 11 PracticeJournalLoginTask >> go @14 line 9 [GsMethod | >>> | 371393537] | >>> | | >>> | | >>> | Larry | >>> | | >>> | On Feb 11, 2012, at 2:34 PM, Dale Henrichs wrote: | >>> | | >>> | > Larry, | >>> | > | >>> | > Yes, everything looks clean, I'm a little bit surprised that | >>> | > you | >>> | > didn't find the original error in you first audit, but the | >>> | > implication is that the "corrupt object" never got persisted | >>> | > ... | >>> | > indicating some other type of corruption ... | >>> | > | >>> | > A clean object audit means that your data base has no | >>> | > corruption so | >>> | > you're good to go ... I'll talk to some guys on Monday and | >>> | > see if | >>> | > they have some ideas as to what might have happened...there's | >>> | > a | >>> | > bug in there somewhere, but for now it looks like it is | >>> | > isolated | >>> | > to the local state in a gem ... | >>> | > | >>> | > Dale | >>> | > | >>> | > ----- Original Message ----- | >>> | > | From: "Lawrence Kellogg" <[hidden email]> | >>> | > | To: "GemStone Seaside beta discussion" | >>> | > | <[hidden email]> | >>> | > | Sent: Saturday, February 11, 2012 4:18:06 AM | >>> | > | Subject: Re: [GS/SS Beta] Object does not exist error - | >>> | > | Worry | >>> | > | about it? | >>> | > | | >>> | > | | >>> | > | On Feb 10, 2012, at 7:04 PM, Dale Henrichs wrote: | >>> | > | | >>> | > | > Larry, | >>> | > | > | >>> | > | > Object does not exist errors are not good things ... and | >>> | > | > the | >>> | > | > gem | >>> | > | > coming down in this case is probably a good thing ... The | >>> | > | > fact | >>> | > | > that the problem is showing up in a GsProcess means that | >>> | > | > the | >>> | > | > Seaside session data structures are corrupted but not | >>> | > | > your | >>> | > | > model | >>> | > | > data ... | >>> | > | > | >>> | > | > You can check for corruption in your data base by running | >>> | > | > an | >>> | > | > object | >>> | > | > audit (see section 8.2 of the System Administration | >>> | > | > Guide[1]). | >>> | > | > If | >>> | > | > you follow these steps you own't need to run the object | >>> | > | > audit | >>> | > | > as | >>> | > | > single user (see the docs): | >>> | > | > | >>> | > | > - expire sessions | >>> | > | > - mfc | >>> | > | > - reclaimAll | >>> | > | > - object audit | >>> | > | > | >>> | > | | >>> | > | Hello Dale, | >>> | > | Ok, I ran: | >>> | > | | >>> | > | System stopUserSessions | >>> | > | SystemRepository objectAudit | >>> | > | SystemRepository markForCollection | >>> | > | SystemRepository reclaimAll | >>> | > | SystemRepository objectAudit | >>> | > | | >>> | > | I don't see any errors. Here is my log. What do you make of | >>> | > | it? | >>> | > | | >>> | > | Larry | >>> | > | | >>> | > | | >>> | > | [Info]: Login Time: 02/11/2012 12:06:22 PM.972 UTC | >>> | > | [02/11/2012 12:06:23 PM.001 UTC] gci login: currSession 1 | >>> | > | rpc gem | >>> | > | processId -1 | >>> | > | successful login | >>> | > | topaz 1> printit | >>> | > | System hasMissingGcGems | >>> | > | % | >>> | > | false | >>> | > | topaz 1> printit | >>> | > | System stopUserSessions | >>> | > | % | >>> | > | System class | >>> | > | superClass Object class | >>> | > | format 32 | >>> | > | instVars 0 | >>> | > | instVarNames an Array | >>> | > | constraints an Array | >>> | > | classVars a SymbolDictionary | >>> | > | methodDict a GsMethodDictionary | >>> | > | poolDictionaries an Array | >>> | > | categories a GsMethodDictionary | >>> | > | secondarySuperclasses nil | >>> | > | name System | >>> | > | classHistory a ClassHistory | >>> | > | description a GsClassDocumentation | >>> | > | migrationDestination nil | >>> | > | timeStamp a DateTime | >>> | > | userId SystemUser | >>> | > | extraDict a SymbolDictionary | >>> | > | classCategory nil | >>> | > | subclasses nil | >>> | > | | >>> | > | topaz 1> printit | >>> | > | SystemRepository objectAudit | >>> | > | % | >>> | > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 | >>> | > | --setGcConfig: set reclaimMinPages to 1 | >>> | > | --reclaimAll: changed reclaimMinPages from 40 to 1 | >>> | > | --setGcConfig: set reclaimSleepTime to 1 | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | >>> | > | --reclaimAll: using reclaimDeadEnabled true | >>> | > | --reclaimAll: simpleCommit loopCount 10 | >>> | > | 02/11/2012 12:07:41 PM.070 UTC: Starting object table scan | >>> | > | 02/11/2012 12:07:41 PM.698 UTC: Finished object table scan | >>> | > | | >>> | > | Object audit is proceeding in FullAudit mode: | >>> | > | Scavenging completed (either single user mode or no pages | >>> | > | to | >>> | > | scavenge). | >>> | > | All audit checks are enabled. | >>> | > | | >>> | > | Object audit as of 02/11/2012 12:07:41 PM UTC. | >>> | > | Summary of objects whose sizes exceed 100000 Bytes or Oops: | >>> | > | | >>> | > | ObjectID Class ClassName | >>> | > | LogicalSize | >>> | > | -------------------------------------------------------------------------------------------------------------- | >>> | > | 305743617 74753 String | >>> | > | 134740 Oops | >>> | > | 149534721 74753 String | >>> | > | 164661 Oops | >>> | > | 173784833 74753 String | >>> | > | 163312 Oops | >>> | > | 196368897 74753 String | >>> | > | 164661 Oops | >>> | > | 305774593 74753 String | >>> | > | 134740 Oops | >>> | > | 175519489 74753 String | >>> | > | 376305 Oops | >>> | > | 196571393 74753 String | >>> | > | 379399 Oops | >>> | > | 175494145 74753 String | >>> | > | 201874 Oops | >>> | > | 197005569 74753 String | >>> | > | 202074 Oops | >>> | > | 149996289 74753 String | >>> | > | 236426 Oops | >>> | > | 151722753 74753 String | >>> | > | 379399 Oops | >>> | > | 151723777 74753 String | >>> | > | 202074 Oops | >>> | > | 274619393 74753 String | >>> | > | 1170577 Oops | >>> | > | 265139713 74753 String | >>> | > | 1170577 Oops | >>> | > | 215910913 66817 Array | >>> | > | 331214 Oops | >>> | > | 164965121 74753 String | >>> | > | 236201 Oops | >>> | > | 197155585 74753 String | >>> | > | 236426 Oops | >>> | > | 271373057 74753 String | >>> | > | 1170577 Oops | >>> | > | 268426753 74753 String | >>> | > | 134740 Oops | >>> | > | 264103681 74753 String | >>> | > | 1170577 Oops | >>> | > | | >>> | > | ----------- Object Statistics Summary ----------------- | >>> | > | | >>> | > | ----- Instances of invisible (private) classes ------ | >>> | > | Number of instances: 1072 | >>> | > | Total size: 15855 K Bytes | >>> | > | Average size: 14.8 Bytes | >>> | > | | >>> | > | Class: 209153 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 209409 Instances: 1072 Total | >>> | > | Size: | >>> | > | 15855 K Bytes | >>> | > | Class: 209665 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 209921 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 210177 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 210433 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 210689 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 210945 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 211201 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 211457 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 211713 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 211969 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 212225 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 212481 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 212737 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 212993 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 213249 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 213505 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 213761 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | | >>> | > | | >>> | > | ----- Instances of visible classes ----------------- | >>> | > | Number of objects : 1633432 | >>> | > | Total Size : 157861 K Bytes | >>> | > | size of Object Headers : 38283 K Bytes | >>> | > | size of Object Values : 116978 K Bytes | >>> | > | size of Object Tags : 0 K Bytes | >>> | > | average of Object Value: 73.3 Bytes | >>> | > | | >>> | > | Object Audit: Audit successfully completed; no errors were | >>> | > | detected. | >>> | > | --setGcConfig: set reclaimMinPages to 40 | >>> | > | --setGcConfig: set reclaimSleepTime to 10 | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | >>> | > | --postReclaimAll: restored reclaimMinPages to 40 | >>> | > | true | >>> | > | topaz 1> printit | >>> | > | SystemRepository markForCollection | >>> | > | % | >>> | > | start MFC mark/sweep phase: 02/11/2012 12:08:56 PM UTC | >>> | > | WARNING, unable to resolve either garMarkSweepPageBufSize | >>> | > | or | >>> | > | mfcGcPageBufSize, using default 320 | >>> | > | MarkSweepArgsSType::(): buffer size= 320 pages | >>> | > | start MFC process dead phase: 02/11/2012 12:08:59 PM UTC | >>> | > | end MFC: 02/11/2012 12:08:59 PM UTC | >>> | > | Successful completion of markForCollection. | >>> | > | 1613875 live objects found. | >>> | > | 20629 possible dead objects, occupying approximately | >>> | > | 1856610 | >>> | > | bytes, may be reclaimed. | >>> | > | topaz 1> printit | >>> | > | SystemRepository reclaimAll | >>> | > | % | >>> | > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 | >>> | > | --setGcConfig: set reclaimMinPages to 1 | >>> | > | --reclaimAll: changed reclaimMinPages from 40 to 1 | >>> | > | --setGcConfig: set reclaimSleepTime to 1 | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | >>> | > | --reclaimAll: using reclaimDeadEnabled true | >>> | > | --reclaimAll: simpleCommit loopCount 10 | >>> | > | an Array | >>> | > | #1 40 | >>> | > | #2 10 | >>> | > | #3 0 | >>> | > | | >>> | > | topaz 1> printit | >>> | > | SystemRepository objectAudit | >>> | > | % | >>> | > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 | >>> | > | --setGcConfig: set reclaimMinPages to 1 | >>> | > | --reclaimAll: changed reclaimMinPages from 1 to 1 | >>> | > | --setGcConfig: set reclaimSleepTime to 1 | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | >>> | > | --reclaimAll: using reclaimDeadEnabled true | >>> | > | 02/11/2012 12:11:27 PM.328 UTC: Starting object table scan | >>> | > | 02/11/2012 12:11:27 PM.921 UTC: Finished object table scan | >>> | > | | >>> | > | Object audit is proceeding in FullAudit mode: | >>> | > | Scavenging completed (either single user mode or no pages | >>> | > | to | >>> | > | scavenge). | >>> | > | All audit checks are enabled. | >>> | > | | >>> | > | Object audit as of 02/11/2012 12:11:27 PM UTC. | >>> | > | Summary of objects whose sizes exceed 100000 Bytes or Oops: | >>> | > | | >>> | > | ObjectID Class ClassName | >>> | > | LogicalSize | >>> | > | -------------------------------------------------------------------------------------------------------------- | >>> | > | 305743617 74753 String | >>> | > | 134740 Oops | >>> | > | 149534721 74753 String | >>> | > | 164661 Oops | >>> | > | 173784833 74753 String | >>> | > | 163312 Oops | >>> | > | 196368897 74753 String | >>> | > | 164661 Oops | >>> | > | 305774593 74753 String | >>> | > | 134740 Oops | >>> | > | 175519489 74753 String | >>> | > | 376305 Oops | >>> | > | 196571393 74753 String | >>> | > | 379399 Oops | >>> | > | 175494145 74753 String | >>> | > | 201874 Oops | >>> | > | 197005569 74753 String | >>> | > | 202074 Oops | >>> | > | 149996289 74753 String | >>> | > | 236426 Oops | >>> | > | 151722753 74753 String | >>> | > | 379399 Oops | >>> | > | 151723777 74753 String | >>> | > | 202074 Oops | >>> | > | 274619393 74753 String | >>> | > | 1170577 Oops | >>> | > | 265139713 74753 String | >>> | > | 1170577 Oops | >>> | > | 215910913 66817 Array | >>> | > | 331214 Oops | >>> | > | 164965121 74753 String | >>> | > | 236201 Oops | >>> | > | 197155585 74753 String | >>> | > | 236426 Oops | >>> | > | 271373057 74753 String | >>> | > | 1170577 Oops | >>> | > | 268426753 74753 String | >>> | > | 134740 Oops | >>> | > | 264103681 74753 String | >>> | > | 1170577 Oops | >>> | > | | >>> | > | ----------- Object Statistics Summary ----------------- | >>> | > | | >>> | > | ----- Instances of invisible (private) classes ------ | >>> | > | Number of instances: 1072 | >>> | > | Total size: 15855 K Bytes | >>> | > | Average size: 14.8 Bytes | >>> | > | | >>> | > | Class: 209153 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 209409 Instances: 1072 Total | >>> | > | Size: | >>> | > | 15855 K Bytes | >>> | > | Class: 209665 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 209921 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 210177 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 210433 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 210689 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 210945 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 211201 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 211457 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 211713 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 211969 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 212225 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 212481 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 212737 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 212993 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 213249 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 213505 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 213761 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | | >>> | > | | >>> | > | ----- Instances of visible classes ----------------- | >>> | > | Number of objects : 1612803 | >>> | > | Total Size : 156912 K Bytes | >>> | > | size of Object Headers : 37800 K Bytes | >>> | > | size of Object Values : 116516 K Bytes | >>> | > | size of Object Tags : 0 K Bytes | >>> | > | average of Object Value: 74.0 Bytes | >>> | > | | >>> | > | Object Audit: Audit successfully completed; no errors were | >>> | > | detected. | >>> | > | --setGcConfig: set reclaimMinPages to 1 | >>> | > | --setGcConfig: set reclaimSleepTime to 1 | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | >>> | > | --postReclaimAll: restored reclaimMinPages to 1 | >>> | > | true | >>> | > | topaz 1> | >>> | > | topaz 1> | >>> | > | | >>> | > | | >>> | > | > If, as I suspect, you've got corruption in GsProcess | >>> | > | > objects | >>> | > | > they | >>> | > | > only impact Seaside session state, and should have | >>> | > | > disappeared | >>> | > | > by | >>> | > | > the time you run the object audit ... | >>> | > | > | >>> | > | > This problems seems to ring a bell, but it seems to me | >>> | > | > that the | >>> | > | > problem I am thinking of showed up in GemStone 3.0 and I | >>> | > | > think | >>> | > | > it | >>> | > | > was fixed in GemStone 3.0.1... so I'm curious what | >>> | > | > version of | >>> | > | > GemStone you are using. | >>> | > | > | >>> | > | > As I think about this, I seem to recall that the problem | >>> | > | > was | >>> | > | > related to deeply nested block structure in a method that | >>> | > | > was | >>> | > | > involved in partial continuations, so I am curious if you | >>> | > | > happen | >>> | > | > to have some deeply nested block structures let's say | >>> | > | > more than | >>> | > | > 5 | >>> | > | > or 6 levels deep in your method? In fact even in 3.0.1 I | >>> | > | > think | >>> | > | > that there might be an effective limit (the engineer that | >>> | > | > worked | >>> | > | > on this will be back on Monday for exact details), so if | >>> | > | > you | >>> | > | > are | >>> | > | > running with 3.0.1, you should definitely be suspicious | >>> | > | > of deep | >>> | > | > nesting of blocks... | >>> | > | > | >>> | > | > Dale | >>> | > | > | >>> | > | > [1] | >>> | > | > http://community.gemstone.com/display/GSS64/GemStoneS+64+Documentation | >>> | > | > | >>> | > | > ----- Original Message ----- | >>> | > | > | From: "Lawrence Kellogg" <[hidden email]> | >>> | > | > | To: "GemStone Seaside beta discussion" | >>> | > | > | <[hidden email]> | >>> | > | > | Sent: Friday, February 10, 2012 2:13:15 PM | >>> | > | > | Subject: [GS/SS Beta] Object does not exist error - | >>> | > | > | Worry | >>> | > | > | about | >>> | > | > | it? | >>> | > | > | | >>> | > | > | | >>> | > | > | | >>> | > | > | Hello, | >>> | > | > | After a long series of calls and answers in Seaside, I | >>> | > | > | got an | >>> | > | > | Object | >>> | > | > | does not exist error that brought down the fast cgi | >>> | > | > | gateway. | >>> | > | > | My | >>> | > | > | production error handler was not triggered, although it | >>> | > | > | was | >>> | > | > | installed, as far as I could tell. Strange. My | >>> | > | > | supervise | >>> | > | > | fastcgi | >>> | > | > | process also did not pick up my dead fastcgi process. | >>> | > | > | Not a | >>> | > | > | good | >>> | > | > | day. | >>> | > | > | | >>> | > | > | Here is the walkback: | >>> | > | > | | >>> | > | > | | >>> | > | > | | >>> | > | > | USER IDS: REAL=seasideuser (500) EFFECTIVE=seasideuser | >>> | > | > | (500) | >>> | > | > | | | >>> | > | > | |_____________________________________________________________________________| | >>> | > | > | topaz> topaz> topaz> topaz> topaz> topaz> topaz> | >>> | > | > | [Info]: LNK | >>> | > | > | client/gem GCI levels = 844/844 | >>> | > | > | [Info]: User ID: DataCurator | >>> | > | > | [Info]: Repository: seaside | >>> | > | > | [Info]: Session ID: 5 | >>> | > | > | [Info]: GCI Client Host: <Linked> | >>> | > | > | [Info]: Page server PID: -1 | >>> | > | > | [Info]: Login Time: 02/10/2012 09:27:56 PM.572 UTC | >>> | > | > | [02/10/2012 09:27:56 PM.592 UTC] gci login: currSession | >>> | > | > | 1 rpc | >>> | > | > | gem | >>> | > | > | processId -1 | >>> | > | > | successful login | >>> | > | > | topaz 1> topaz 1> [20 sz:0 cls: 76289 UndefinedObject] | >>> | > | > | nil | >>> | > | > | topaz 1> topaz 1> [76033 sz:19 cls: 801793 System | >>> | > | > | class] | >>> | > | > | System | >>> | > | > | class | >>> | > | > | superClass [72193 sz:19 cls: 206081 Object class] | >>> | > | > | Object | >>> | > | > | class | >>> | > | > | format [258 sz:0 cls: 74241 SmallInteger] 32 | >>> | > | > | instVars [2 sz:0 cls: 74241 SmallInteger] 0 | >>> | > | > | instVarNames [422145 sz:0 cls: 66817 Array] an Array | >>> | > | > | constraints [421889 sz:0 cls: 66817 Array] an Array | >>> | > | > | classVars [421633 sz:26 cls: 111361 SymbolDictionary] a | >>> | > | > | SymbolDictionary | >>> | > | > | methodDict [711937 sz:112 cls: 99073 | >>> | > | > | GsMethodDictionary] a | >>> | > | > | GsMethodDictionary | >>> | > | > | poolDictionaries [421377 sz:0 cls: 66817 Array] an | >>> | > | > | Array | >>> | > | > | categories [421121 sz:28 cls: 99073 GsMethodDictionary] | >>> | > | > | a | >>> | > | > | GsMethodDictionary | >>> | > | > | secondarySuperclasses [20 sz:0 cls: 76289 | >>> | > | > | UndefinedObject] | >>> | > | > | nil | >>> | > | > | name [801537 sz:6 cls: 110849 Symbol] System | >>> | > | > | classHistory [420865 sz:3 cls: 82689 ClassHistory] a | >>> | > | > | ClassHistory | >>> | > | > | description [13498369 sz:10 cls: 95233 | >>> | > | > | GsClassDocumentation] | >>> | > | > | a | >>> | > | > | GsClassDocumentation | >>> | > | > | migrationDestination [20 sz:0 cls: 76289 | >>> | > | > | UndefinedObject] nil | >>> | > | > | timeStamp [14510593 sz:4 cls: 118785 DateTime] a | >>> | > | > | DateTime | >>> | > | > | userId [14508801 sz:10 cls: 74753 String] SystemUser | >>> | > | > | extraDict [14524929 sz:14 cls: 111361 SymbolDictionary] | >>> | > | > | a | >>> | > | > | SymbolDictionary | >>> | > | > | classCategory [20 sz:0 cls: 76289 UndefinedObject] nil | >>> | > | > | subclasses [20 sz:0 cls: 76289 UndefinedObject] nil | >>> | > | > | | >>> | > | > | | >>> | > | > | topaz 1> topaz 1> WAFastCGIAdaptor Server started on | >>> | > | > | port | >>> | > | > | 9001 | >>> | > | > | ----------------------------------------------------- | >>> | > | > | GemStone: Error Nonfatal | >>> | > | > | The object with object ID 81065894683350528 does not | >>> | > | > | exist. | >>> | > | > | Error Category: 231169 [GemStone] Number: 2101 Arg | >>> | > | > | Count: 1 | >>> | > | > | Context : | >>> | > | > | 526648321 | >>> | > | > | Arg 1: [648527157466804226 sz:0 cls: 74241 | >>> | > | > | SmallInteger] | >>> | > | > | 81065894683350528 | >>> | > | > | | >>> | > | > | | >>> | > | > | Now executing the following command saved from "iferr | >>> | > | > | 1": | >>> | > | > | where | >>> | > | > | ==> 1 GsProcess class >> | >>> | > | > | installPartialContinuation:atLevel:value: @2 | >>> | > | > | line 1 [GsMethod 4487425] | >>> | > | > | 2 WAPartialContinuation >> value: @13 line 11 [GsMethod | >>> | > | > | 212791041] | >>> | > | > | 3 WAPartialContinuation >> valueWithPossibleArguments: | >>> | > | > | @2 | >>> | > | > | line 2 | >>> | > | > | [GsMethod 218326273] | >>> | > | > | 4 ComplexBlock in WAComponent >> | >>> | > | > | show:onAnswer:delegation: @7 | >>> | > | > | line 7 | >>> | > | > | [GsMethod 194749185] | >>> | > | > | 5 ComplexBlock in ExecutableBlock >> | >>> | > | > | valueWithPossibleArguments: | >>> | > | > | @12 | >>> | > | > | line 8 [GsMethod 116163585] | >>> | > | > | 6 WAAnswerHandler >> handleAnswer:continueWith: @3 line | >>> | > | > | 2 | >>> | > | > | [GsMethod | >>> | > | > | 194735873] | >>> | > | > | 7 WADecoration >> handleAnswer: @6 line 3 [GsMethod | >>> | > | > | 194731009] | >>> | > | > | 8 WAComponent >> answer: @2 line 5 [GsMethod 194751745] | >>> | > | > | | >>> | > | > | | >>> | > | > | | >>> | > | > | | >>> | > | > | I found this on the net: | >>> | > | > | | >>> | > | > | | >>> | > | > | | >>> | > | > | Object does not exist errors | >>> | > | > | GBS applications may encounter object does not exist | >>> | > | > | errors | >>> | > | > | in | >>> | > | > | non-persistent | >>> | > | > | objects. This is due to a problem with the fix for bug | >>> | > | > | #40703 | >>> | > | > | in | >>> | > | > | version | >>> | > | > | 2.4.4, which resulted in non-persistent objects not | >>> | > | > | properly | >>> | > | > | protected | >>> | > | > | from garbage collection. | >>> | > | > | | >>> | > | > | Workaround: | >>> | > | > | | >>> | > | > | none/not applicable | >>> | > | > | from: | >>> | > | > | | >>> | > | > | | >>> | > | > | | >>> | > | > | | >>> | > | > | | >>> | > | > | | >>> | > | > | http://www.gemstone.com/docs/GemStoneS/bugnotes/bugnotes/40948.html | >>> | > | > | | >>> | > | > | | >>> | > | > | | >>> | > | > | So, should I worry about this? I implemented code that | >>> | > | > | allowed a | >>> | > | > | user | >>> | > | > | to call an editor, switch out on the navigation menu, | >>> | > | > | call | >>> | > | > | another | >>> | > | > | editor, | >>> | > | > | switch out. With each switch, I send answer: false to | >>> | > | > | the | >>> | > | > | open | >>> | > | > | editor | >>> | > | > | to close it so that it is not hanging around open. My | >>> | > | > | idea | >>> | > | > | was to hide the section navigation when the editor came | >>> | > | > | up | >>> | > | > | but | >>> | > | > | I'm | >>> | > | > | getting push back from my user. | >>> | > | > | | >>> | > | > | | >>> | > | > | What do you think? | >>> | > | > | | >>> | > | > | | >>> | > | > | Larry | >>> | > | > | | >>> | > | > | | >>> | > | > | | >>> | > | > | | >>> | > | | >>> | > | | >>> | | >>> | | >> | > | | |
In reply to this post by Larry Kellogg
Larry,
Okay, here's the stack that covers the range of the partial continuation: ==> 1 WAComponent >> decoration @3 line 1 [GsMethod 194749441] 2 WAComponent >> addDecoration: @2 line 6 [GsMethod 194748417] 3 WAComponent >> show:onAnswerelegation: @10 line 8 [GsMethod 194749185] 4 WAComponent >> show:onAnswer: @5 line 5 [GsMethod 499699713] 5 WAComponent >> call:onAnswer: @5 line 8 [GsMethod 194750977] 6 ComplexBlock in WAComponent >> call: @3 line 4 [GsMethod 191317249] 7 ComplexBlock in WAComponent >> wait: @3 line 3 [GsMethod 191268353] 8 GRGemStonePlatform >> seasideSuspendFlowDo: @9 line 5 [GsMethod 499655937] 9 WAComponent >> wait: @4 line 3 [GsMethod 191268353] 10 WAComponent >> call: @4 line 4 [GsMethod 191317249] 11 PracticeJournalLoginTask >> go @14 line 9 [GsMethod 371393537] 12 WATask >> execute @1 line 7 [GsMethod 195261697] 13 ComplexBlock in WATaskVisitor >> visitTask: @6 line 4 [GsMethod 194755841] WAComponent >> decoration is the source of the error and it is sending #contents to a 'decoration' of the component ... it's not quite clear whether the decoration iv is the corrupt object or the result of the #contents message send ... To get a better picture of what's happening we need a C stack when the error occurs. If you set GEM_HALT_ON_ERROR = 2101; in your system.conf file, then when the obj does not exist error occurs the gem will halt, dump a c stack, wait 60 seconds and then shutdown ... This is pretty intrusive, but it will get us a couple steps closer to understanding what's going on. If you (or Johan) can duplicate the error under controlled conditions then you would fire up a topaz manually to service requests and when the halt on error hits, you'll be dropped to the topaz prompt where you can view the smalltalk stack and inspect the objects involved ... Dale ----- Original Message ----- | From: "Lawrence Kellogg" <[hidden email]> | To: "GemStone Seaside beta discussion" <[hidden email]> | Sent: Monday, February 27, 2012 7:01:58 PM | Subject: Re: [GS/SS Beta] Object does not exist error - Worry about it? | | | On Feb 21, 2012, at 2:40 PM, Johan Brichau wrote: | | > fyi, I have been observing occurrences of this bug as well, with | > exactly the same point of failure in the stack. | > | > No repository problems or audit warnings. | > | > Funnily, I've never seen this in any stone running Yesplan. The | > stone where we have this problem is also running a Seaside | > application but the only discriminating factor I can observe is | > that this application uses call/answer a lot more (while we almost | > never use that in Yesplan). It probably does not help a lot | > finding the error... but I will look up the stack traces and post | > them here if they might contain some clues. | | Hello Johan, | Thanks for looking into this problem. I use call/answer quite a | bit. | | Dale, did you see the stack dump I posted? | | Larry | | | > | > On 21 Feb 2012, at 20:13, Lawrence Kellogg wrote: | > | >> | >> On Feb 21, 2012, at 1:05 PM, Dale Henrichs wrote: | >> | >>> Larry, | >>> | >>> We should try to dig into this one some more. | >>> | >>> To start with what version of Gemstone are you using? If you are | >>> using 2.4.4.1, then I'm not aware of an issue that would warrant | >>> an upgrade to 2.4.5, but I will check around a bit...As I said | >>> before, the only place that I've seen "Obj does not exist | >>> errors" is in 3.0 and those bugs were fixed in 3.0.1. | >>> | >> | >> Dale, | >> Thanks for the help. I would like to get to the bottom of this | >> error. This crash takes down Fastcgi so it kills the service. | >> | >> According to the file in the directory, I'm on 2.4.[ component notNil ] | >> whileTrue: [ | >> self call: component. | >> component := component nextComponentToBeDisplayed ] ]4.1 | >> | >> GemStone64Bit2.4.4.1-x86_64.Linux | >> | >> | >> | >> | >>> This time we are getting the error while creating the | >>> continuation ... the last episode occurred when you were trying | >>> to execute from a continuation. | >>> | >>> Could you share the source code for PracticeJournalLoginTask >> | >>> go? That's the first non-Seaside method on the stack below the | >>> error, so it's as good a place as any to start … | >>> | >> | >> Here is the complete source code for the go method: ;-) | >> | >> go | >> | user component | | >> self call: self userLoginView. | >> (self userLoginView user) notNil | >> ifTrue: [ | >> component := self firstComponentToDisplayForUser: self | >> userLoginView user. | >> [ component notNil ] | >> whileTrue: [ | >> self call: component. | >> component := component nextComponentToBeDisplayed ] ] | >> | >> A component is called, and when another component is selected the | >> current component is sent answer: false and | >> the new component to call is returned from that | >> nextComponentToBeDisplayed method. | >> | >> I used to have an implementation that would give me a huge | >> recursive nesting of continuations, as shown by | >> halo, but this shows everything on just a few levels, although I | >> have to say that the walkback looks deep and gnarly. | >> | >> | >>> It would be useful to see the entire stack as well. The partial | >>> continuation copies the stack back to a marker method and it | >>> would be useful to examine the source for the methods that are | >>> on the stck for clues as to what might be going on... | >>> | >>> Dale | >> | >> | >> Here is the complete walk back: | >> | >> topaz 1> topaz 1> WAFastCGIAdaptor Server started on port 9001 | >> ----------------------------------------------------- | >> GemStone: Error Nonfatal | >> The object with object ID 76562293713797632 does not exist. | >> Error Category: 231169 [GemStone] Number: 2101 Arg Count: 1 | >> Context : 412915713 | >> Arg 1: [612498349710381058 sz:0 cls: 74241 SmallInteger] | >> 76562293713797632 | >> | >> Now executing the following command saved from "iferr 1": | >> where | >> ==> 1 WAComponent >> decoration @3 line 1 [GsMethod 194749441] | >> 2 WAComponent >> addDecoration: @2 line 6 [GsMethod 194748417] | >> 3 WAComponent >> show:onAnswer:delegation: @10 line 8 [GsMethod | >> 194749185] | >> 4 WAComponent >> show:onAnswer: @5 line 5 [GsMethod 499699713] | >> 5 WAComponent >> call:onAnswer: @5 line 8 [GsMethod 194750977] | >> 6 ComplexBlock in WAComponent >> call: @3 line 4 [GsMethod | >> 191317249] | >> 7 ComplexBlock in WAComponent >> wait: @3 line 3 [GsMethod | >> 191268353] | >> 8 GRGemStonePlatform >> seasideSuspendFlowDo: @9 line 5 | >> [GsMethod 499655937] | >> 9 WAComponent >> wait: @4 line 3 [GsMethod 191268353] | >> 10 WAComponent >> call: @4 line 4 [GsMethod 191317249] | >> 11 PracticeJournalLoginTask >> go @14 line 9 [GsMethod | >> 371393537] | >> 12 WATask >> execute @1 line 7 [GsMethod 195261697] | >> 13 ComplexBlock in WATaskVisitor >> visitTask: @6 line 4 | >> [GsMethod 194755841] | >> 14 WACallback >> evaluateWithFieldValues: @5 line 2 [GsMethod | >> 177495553] | >> 15 ComplexBlock in WACallbackRegistry >> handle: @16 line 10 | >> [GsMethod 177951489] | >> 16 Collection >> do: @5 line 10 [GsMethod 1547777] | >> 17 WACallbackRegistry >> handle: @17 line 9 [GsMethod 177951489] | >> 18 ComplexBlock in WAActionPhaseContinuation >> runCallbacks @7 | >> line 4 [GsMethod 202613505] | >> 19 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] | >> 20 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | >> 10062081] | >> 21 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod | >> 9005057] | >> 22 WARenderLoopContinuation >> withNotificationHandlerDo: @3 line | >> 2 [GsMethod 202608385] | >> 23 ComplexVCBlock in WAActionPhaseContinuation >> runCallbacks @8 | >> line 3 [GsMethod 202613505] | >> 24 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | >> [GsMethod 2304001] | >> 25 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11 | >> [GsMethod 2304001] | >> 26 WAActionPhaseContinuation >> runCallbacks @18 line 6 | >> [GsMethod 202613505] | >> 27 WAActionPhaseContinuation >> handleRequest @1 line 2 | >> [GsMethod 202614017] | >> 28 ComplexBlock in WASessionContinuation >> basicValue @3 line 2 | >> [GsMethod 202625537] | >> 29 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] | >> 30 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | >> 10062081] | >> 31 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod | >> 9005057] | >> 32 WASessionContinuation >> withUnregisteredHandlerDo: @7 line 3 | >> [GsMethod 202627073] | >> 33 WASessionContinuation >> basicValue @4 line 2 [GsMethod | >> 202625537] | >> 34 WASessionContinuation >> value @3 line 5 [GsMethod 202623745] | >> 35 WASession >> handleFiltered: @14 line 10 [GsMethod 202205441] | >> 36 WARequestFilter >> handleFiltered: @2 line 4 [GsMethod | >> 176192513] | >> 37 ComplexBlock in WADeprecatedToolFilter >> handleFiltered: @3 | >> line 2 [GsMethod 203213313] | >> 38 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] | >> 39 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | >> 10062081] | >> 40 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod | >> 9005057] | >> 41 WADeprecatedToolFilter >> handleFiltered: @6 line 3 [GsMethod | >> 203213313] | >> 42 WARequestFilter >> handleFiltered: @2 line 4 [GsMethod | >> 176192513] | >> 43 ComplexBlock in WATimingToolFilter >> handleFiltered: @4 line 3 | >> [GsMethod 203208449] | >> 44 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | >> [GsMethod 2304001] | >> 45 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 | >> [GsMethod 2304001] | >> 46 WATimingToolFilter >> handleFiltered: @8 line 4 [GsMethod | >> 203208449] | >> 47 ComplexBlock in WARequestHandler >> handle: @4 line 4 | >> [GsMethod 178568961] | >> 48 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] | >> 49 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | >> 10062081] | >> 50 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod | >> 9005057] | >> 51 WADynamicVariable class >> use:during: @4 line 4 [GsMethod | >> 177805825] | >> 52 ComplexBlock in WARequestContext >> push:during: @4 line 5 | >> [GsMethod 176176129] | >> 53 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | >> [GsMethod 2304001] | >> 54 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 | >> [GsMethod 2304001] | >> 55 WARequestContext >> push:during: @7 line 6 [GsMethod | >> 176176129] | >> 56 WARequestHandler >> handle: @5 line 4 [GsMethod 178568961] | >> 57 WASession >> handle: @10 line 11 [GsMethod 202210561] | >> 58 WARegistry >> dispatch:to: @1 line 5 [GsMethod 176153857] | >> 59 WARegistry >> handleKeyed:with: @2 line 5 [GsMethod | >> 176155137] | >> 60 WARegistry >> handleFiltered: @33 line 19 [GsMethod | >> 176146945] | >> 61 WAApplication >> handleFiltered: @9 line 8 [GsMethod | >> 202644225] | >> 62 WARequestFilter >> handleFiltered: @2 line 4 [GsMethod | >> 176192513] | >> 63 ComplexBlock in WAExceptionFilter >> handleFiltered: @6 line 7 | >> [GsMethod 499529473] | >> 64 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] | >> 65 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | >> 10062081] | >> 66 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod | >> 9005057] | >> 67 WADynamicVariable class >> use:during: @4 line 4 [GsMethod | >> 177805825] | >> 68 ComplexVCBlock in WAExceptionFilter >> handleFiltered: @7 line | >> 6 [GsMethod 499529473] | >> 69 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] | >> 70 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | >> 10062081] | >> 71 ComplexVCBlock in ExecutableBlock >> on:do: @2 line 8 | >> [GsMethod 9005057] | >> 72 WAExceptionHandler >> handleExceptionsDuring: @8 line 3 | >> [GsMethod 177803521] | >> 73 WAExceptionFilter >> handleFiltered: @8 line 4 [GsMethod | >> 499529473] | >> 74 ComplexBlock in WARequestHandler >> handle: @4 line 4 | >> [GsMethod 178568961] | >> 75 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] | >> 76 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | >> 10062081] | >> 77 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod | >> 9005057] | >> 78 WADynamicVariable class >> use:during: @4 line 4 [GsMethod | >> 177805825] | >> 79 ComplexBlock in WARequestContext >> push:during: @4 line 5 | >> [GsMethod 176176129] | >> 80 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | >> [GsMethod 2304001] | >> 81 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 | >> [GsMethod 2304001] | >> 82 WARequestContext >> push:during: @7 line 6 [GsMethod | >> 176176129] | >> 83 WARequestHandler >> handle: @5 line 4 [GsMethod 178568961] | >> 84 WADispatcher >> handleFiltered:named: @7 line 5 [GsMethod | >> 179090945] | >> 85 WADispatcher >> handleFiltered: @7 line 6 [GsMethod | >> 179087617] | >> 86 ComplexBlock in WARequestHandler >> handle: @4 line 4 | >> [GsMethod 178568961] | >> 87 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] | >> 88 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | >> 10062081] | >> 89 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod | >> 9005057] | >> 90 WADynamicVariable class >> use:during: @4 line 4 [GsMethod | >> 177805825] | >> 91 ComplexBlock in WARequestContext >> push:during: @4 line 5 | >> [GsMethod 176176129] | >> 92 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | >> [GsMethod 2304001] | >> 93 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 | >> [GsMethod 2304001] | >> 94 WARequestContext >> push:during: @7 line 6 [GsMethod | >> 176176129] | >> 95 WARequestHandler >> handle: @5 line 4 [GsMethod 178568961] | >> 96 ComplexBlock in WAServerAdaptor >> handleRequest: @4 line 4 | >> [GsMethod 176816641] | >> 97 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] | >> 98 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | >> 10062081] | >> 99 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod | >> 9005057] | >> 100 WAServerAdaptor >> handleRequest: @6 line 5 [GsMethod | >> 176816641] | >> 101 WAServerAdaptor >> handle: @1 line 4 [GsMethod 176817921] | >> 102 ComplexBlock in WAServerAdaptor >> process: @5 line 6 | >> [GsMethod 176817153] | >> 103 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | >> [GsMethod 2304001] | >> 104 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 | >> [GsMethod 2304001] | >> 105 WAServerAdaptor >> process: @9 line 7 [GsMethod 176817153] | >> 106 ComplexBlock in WAFastCGIAdaptor >> process: @3 line 6 | >> [GsMethod 212442369] | >> 107 ComplexBlock in GRGemStonePlatform >> | >> seasideProcessRequestWithRetry:resultBlock: @12 line 11 | >> [GsMethod 175179265] | >> 108 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | >> 10065409] | >> 109 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | >> 10062081] | >> 110 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | >> [GsMethod 9005057] | >> 111 ComplexVCBlock in GRGemStonePlatform >> | >> seasideProcessRequestWithRetry:resultBlock: @18 line 12 | >> [GsMethod 175179265] | >> 112 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | >> [GsMethod 2304001] | >> 113 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11 | >> [GsMethod 2304001] | >> 114 TransientRecursionLock >> critical: @15 line 8 [GsMethod | >> 21159937] | >> 115 GRGemStonePlatform >> | >> seasideProcessRequestWithRetry:resultBlock: @39 line 5 | >> [GsMethod 175179265] | >> 116 ComplexBlock in GRGemStonePlatform >> | >> seasideProcessRequest:adaptor:resultBlock: @7 line 9 [GsMethod | >> 175179521] | >> 117 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | >> 10065409] | >> 118 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | >> 10062081] | >> 119 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | >> [GsMethod 9005057] | >> 120 GRGemStonePlatform >> | >> seasideProcessRequest:adaptor:resultBlock: @32 line 17 | >> [GsMethod 175179521] | >> 121 WAFastCGIAdaptor >> process: @4 line 4 [GsMethod 212442369] | >> 122 ComplexBlock in WAFastCGIAdaptor >> answerResponderRole: @3 | >> line 4 [GsMethod 212444161] | >> 123 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | >> 10065409] | >> 124 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | >> 10062081] | >> 125 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | >> [GsMethod 9005057] | >> 126 WAFastCGIAdaptor >> answerResponderRole: @9 line 5 [GsMethod | >> 212444161] | >> 127 FSResponderRole >> answer @2 line 4 [GsMethod 218695937] | >> 128 FSRole >> handleConnection @3 line 5 [GsMethod 218705409] | >> 129 FSConnection >> unsafeServe @4 line 8 [GsMethod 219646465] | >> 130 ComplexBlock in FSConnection >> safeServe @5 line 8 | >> [GsMethod 499288833] | >> 131 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | >> 10065409] | >> 132 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | >> 10062081] | >> 133 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | >> [GsMethod 9005057] | >> 134 ComplexVCBlock in FSConnection >> safeServe @8 line 9 | >> [GsMethod 499288833] | >> 135 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | >> 10065409] | >> 136 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | >> 10062081] | >> 137 ComplexVCBlock in ExecutableBlock >> on:do: @2 line 8 | >> [GsMethod 9005057] | >> 138 ComplexVCBlock in FSConnection >> safeServe @11 line 12 | >> [GsMethod 499288833] | >> 139 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | >> [GsMethod 2304001] | >> 140 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11 | >> [GsMethod 2304001] | >> 141 FSConnection >> safeServe @14 line 15 [GsMethod 499288833] | >> 142 FSConnection >> serve @1 line 4 [GsMethod 219654145] | >> 143 ComplexBlock in FSSocketServer >> listen: @9 line 15 | >> [GsMethod 219292673] | >> 144 GsProcess >> _startPart2 @15 line 17 [GsMethod 4501249] | >> 145 GsProcess >> _start @1 line 9 [GsMethod 4501761] | >> [GsProcess 412915713] | >> topaz 1> [268 sz:0 cls: 68097 Boolean] true | >> topaz 1> | >> HostCallDebugger: invoked at: Mon Feb 20 16:38:18 UTC 2012 | >> | >> UTL_GUARANTEE failed, File | >> /export/toronto3/users/buildgss/244x-1/src/omverify.c line 28 | >> | >> Begin attempt to print C-level stack at: Mon Feb 20 16:38:18 UTC | >> 2012 | >> | >> | >> End of C-level stack: | >> | >> | >> hostcalldebugger invoked in process 6550, at 02/20/2012 04:38:18 | >> PM.681 UTC | >> notifying stone of fatal error | >> | >> [Info]: Logging out at 02/20/2012 04:38:18 PM UTC | >> | >> | >> | >>> | >>> ----- Original Message ----- | >>> | From: "Lawrence Kellogg" <[hidden email]> | >>> | To: "GemStone Seaside beta discussion" | >>> | <[hidden email]> | >>> | Sent: Monday, February 20, 2012 8:48:22 AM | >>> | Subject: Re: [GS/SS Beta] Object does not exist error - Worry | >>> | about it? | >>> | | >>> | Hello Dale, | >>> | Well, my system has been up for days, running with no | >>> | problems, not | >>> | that it has been getting a lot of traffic, but still, no | >>> | crashes. | >>> | Today, I hit the Object does not exist error again. I guess I | >>> | can | >>> | do another object audit but, other than that, I'm not sure | >>> | how to | >>> | proceed. Do you think an upgrade to 2.4.5 will help me? | >>> | | >>> | Here is the walkback: | >>> | | >>> | topaz 1> topaz 1> WAFastCGIAdaptor Server started on port 9001 | >>> | ----------------------------------------------------- | >>> | GemStone: Error Nonfatal | >>> | The object with object ID 76562293713797632 does not exist. | >>> | Error Category: 231169 [GemStone] Number: 2101 Arg Count: 1 | >>> | Context : | >>> | 412915713 | >>> | Arg 1: [612498349710381058 sz:0 cls: 74241 SmallInteger] | >>> | 76562293713797632 | >>> | | >>> | Now executing the following command saved from "iferr 1": | >>> | where | >>> | ==> 1 WAComponent >> decoration @3 line 1 [GsMethod | >>> | 194749441] | >>> | 2 WAComponent >> addDecoration: @2 line 6 [GsMethod | >>> | 194748417] | >>> | 3 WAComponent >> show:onAnswer:delegation: @10 line 8 | >>> | [GsMethod | >>> | 194749185] | >>> | 4 WAComponent >> show:onAnswer: @5 line 5 [GsMethod | >>> | 499699713] | >>> | 5 WAComponent >> call:onAnswer: @5 line 8 [GsMethod | >>> | 194750977] | >>> | 6 ComplexBlock in WAComponent >> call: @3 line 4 [GsMethod | >>> | 191317249] | >>> | 7 ComplexBlock in WAComponent >> wait: @3 line 3 [GsMethod | >>> | 191268353] | >>> | 8 GRGemStonePlatform >> seasideSuspendFlowDo: @9 line 5 | >>> | [GsMethod | >>> | 499655937] | >>> | 9 WAComponent >> wait: @4 line 3 [GsMethod 191268353] | >>> | 10 WAComponent >> call: @4 line 4 [GsMethod 191317249] | >>> | 11 PracticeJournalLoginTask >> go @14 line 9 [GsMethod | >>> | 371393537] | >>> | | >>> | | >>> | Larry | >>> | | >>> | On Feb 11, 2012, at 2:34 PM, Dale Henrichs wrote: | >>> | | >>> | > Larry, | >>> | > | >>> | > Yes, everything looks clean, I'm a little bit surprised that | >>> | > you | >>> | > didn't find the original error in you first audit, but the | >>> | > implication is that the "corrupt object" never got persisted | >>> | > ... | >>> | > indicating some other type of corruption ... | >>> | > | >>> | > A clean object audit means that your data base has no | >>> | > corruption so | >>> | > you're good to go ... I'll talk to some guys on Monday and | >>> | > see if | >>> | > they have some ideas as to what might have happened...there's | >>> | > a | >>> | > bug in there somewhere, but for now it looks like it is | >>> | > isolated | >>> | > to the local state in a gem ... | >>> | > | >>> | > Dale | >>> | > | >>> | > ----- Original Message ----- | >>> | > | From: "Lawrence Kellogg" <[hidden email]> | >>> | > | To: "GemStone Seaside beta discussion" | >>> | > | <[hidden email]> | >>> | > | Sent: Saturday, February 11, 2012 4:18:06 AM | >>> | > | Subject: Re: [GS/SS Beta] Object does not exist error - | >>> | > | Worry | >>> | > | about it? | >>> | > | | >>> | > | | >>> | > | On Feb 10, 2012, at 7:04 PM, Dale Henrichs wrote: | >>> | > | | >>> | > | > Larry, | >>> | > | > | >>> | > | > Object does not exist errors are not good things ... and | >>> | > | > the | >>> | > | > gem | >>> | > | > coming down in this case is probably a good thing ... The | >>> | > | > fact | >>> | > | > that the problem is showing up in a GsProcess means that | >>> | > | > the | >>> | > | > Seaside session data structures are corrupted but not | >>> | > | > your | >>> | > | > model | >>> | > | > data ... | >>> | > | > | >>> | > | > You can check for corruption in your data base by running | >>> | > | > an | >>> | > | > object | >>> | > | > audit (see section 8.2 of the System Administration | >>> | > | > Guide[1]). | >>> | > | > If | >>> | > | > you follow these steps you own't need to run the object | >>> | > | > audit | >>> | > | > as | >>> | > | > single user (see the docs): | >>> | > | > | >>> | > | > - expire sessions | >>> | > | > - mfc | >>> | > | > - reclaimAll | >>> | > | > - object audit | >>> | > | > | >>> | > | | >>> | > | Hello Dale, | >>> | > | Ok, I ran: | >>> | > | | >>> | > | System stopUserSessions | >>> | > | SystemRepository objectAudit | >>> | > | SystemRepository markForCollection | >>> | > | SystemRepository reclaimAll | >>> | > | SystemRepository objectAudit | >>> | > | | >>> | > | I don't see any errors. Here is my log. What do you make of | >>> | > | it? | >>> | > | | >>> | > | Larry | >>> | > | | >>> | > | | >>> | > | [Info]: Login Time: 02/11/2012 12:06:22 PM.972 UTC | >>> | > | [02/11/2012 12:06:23 PM.001 UTC] gci login: currSession 1 | >>> | > | rpc gem | >>> | > | processId -1 | >>> | > | successful login | >>> | > | topaz 1> printit | >>> | > | System hasMissingGcGems | >>> | > | % | >>> | > | false | >>> | > | topaz 1> printit | >>> | > | System stopUserSessions | >>> | > | % | >>> | > | System class | >>> | > | superClass Object class | >>> | > | format 32 | >>> | > | instVars 0 | >>> | > | instVarNames an Array | >>> | > | constraints an Array | >>> | > | classVars a SymbolDictionary | >>> | > | methodDict a GsMethodDictionary | >>> | > | poolDictionaries an Array | >>> | > | categories a GsMethodDictionary | >>> | > | secondarySuperclasses nil | >>> | > | name System | >>> | > | classHistory a ClassHistory | >>> | > | description a GsClassDocumentation | >>> | > | migrationDestination nil | >>> | > | timeStamp a DateTime | >>> | > | userId SystemUser | >>> | > | extraDict a SymbolDictionary | >>> | > | classCategory nil | >>> | > | subclasses nil | >>> | > | | >>> | > | topaz 1> printit | >>> | > | SystemRepository objectAudit | >>> | > | % | >>> | > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 | >>> | > | --setGcConfig: set reclaimMinPages to 1 | >>> | > | --reclaimAll: changed reclaimMinPages from 40 to 1 | >>> | > | --setGcConfig: set reclaimSleepTime to 1 | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | >>> | > | --reclaimAll: using reclaimDeadEnabled true | >>> | > | --reclaimAll: simpleCommit loopCount 10 | >>> | > | 02/11/2012 12:07:41 PM.070 UTC: Starting object table scan | >>> | > | 02/11/2012 12:07:41 PM.698 UTC: Finished object table scan | >>> | > | | >>> | > | Object audit is proceeding in FullAudit mode: | >>> | > | Scavenging completed (either single user mode or no pages | >>> | > | to | >>> | > | scavenge). | >>> | > | All audit checks are enabled. | >>> | > | | >>> | > | Object audit as of 02/11/2012 12:07:41 PM UTC. | >>> | > | Summary of objects whose sizes exceed 100000 Bytes or Oops: | >>> | > | | >>> | > | ObjectID Class ClassName | >>> | > | LogicalSize | >>> | > | -------------------------------------------------------------------------------------------------------------- | >>> | > | 305743617 74753 String | >>> | > | 134740 Oops | >>> | > | 149534721 74753 String | >>> | > | 164661 Oops | >>> | > | 173784833 74753 String | >>> | > | 163312 Oops | >>> | > | 196368897 74753 String | >>> | > | 164661 Oops | >>> | > | 305774593 74753 String | >>> | > | 134740 Oops | >>> | > | 175519489 74753 String | >>> | > | 376305 Oops | >>> | > | 196571393 74753 String | >>> | > | 379399 Oops | >>> | > | 175494145 74753 String | >>> | > | 201874 Oops | >>> | > | 197005569 74753 String | >>> | > | 202074 Oops | >>> | > | 149996289 74753 String | >>> | > | 236426 Oops | >>> | > | 151722753 74753 String | >>> | > | 379399 Oops | >>> | > | 151723777 74753 String | >>> | > | 202074 Oops | >>> | > | 274619393 74753 String | >>> | > | 1170577 Oops | >>> | > | 265139713 74753 String | >>> | > | 1170577 Oops | >>> | > | 215910913 66817 Array | >>> | > | 331214 Oops | >>> | > | 164965121 74753 String | >>> | > | 236201 Oops | >>> | > | 197155585 74753 String | >>> | > | 236426 Oops | >>> | > | 271373057 74753 String | >>> | > | 1170577 Oops | >>> | > | 268426753 74753 String | >>> | > | 134740 Oops | >>> | > | 264103681 74753 String | >>> | > | 1170577 Oops | >>> | > | | >>> | > | ----------- Object Statistics Summary ----------------- | >>> | > | | >>> | > | ----- Instances of invisible (private) classes ------ | >>> | > | Number of instances: 1072 | >>> | > | Total size: 15855 K Bytes | >>> | > | Average size: 14.8 Bytes | >>> | > | | >>> | > | Class: 209153 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 209409 Instances: 1072 Total | >>> | > | Size: | >>> | > | 15855 K Bytes | >>> | > | Class: 209665 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 209921 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 210177 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 210433 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 210689 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 210945 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 211201 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 211457 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 211713 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 211969 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 212225 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 212481 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 212737 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 212993 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 213249 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 213505 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 213761 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | | >>> | > | | >>> | > | ----- Instances of visible classes ----------------- | >>> | > | Number of objects : 1633432 | >>> | > | Total Size : 157861 K Bytes | >>> | > | size of Object Headers : 38283 K Bytes | >>> | > | size of Object Values : 116978 K Bytes | >>> | > | size of Object Tags : 0 K Bytes | >>> | > | average of Object Value: 73.3 Bytes | >>> | > | | >>> | > | Object Audit: Audit successfully completed; no errors were | >>> | > | detected. | >>> | > | --setGcConfig: set reclaimMinPages to 40 | >>> | > | --setGcConfig: set reclaimSleepTime to 10 | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | >>> | > | --postReclaimAll: restored reclaimMinPages to 40 | >>> | > | true | >>> | > | topaz 1> printit | >>> | > | SystemRepository markForCollection | >>> | > | % | >>> | > | start MFC mark/sweep phase: 02/11/2012 12:08:56 PM UTC | >>> | > | WARNING, unable to resolve either garMarkSweepPageBufSize | >>> | > | or | >>> | > | mfcGcPageBufSize, using default 320 | >>> | > | MarkSweepArgsSType::(): buffer size= 320 pages | >>> | > | start MFC process dead phase: 02/11/2012 12:08:59 PM UTC | >>> | > | end MFC: 02/11/2012 12:08:59 PM UTC | >>> | > | Successful completion of markForCollection. | >>> | > | 1613875 live objects found. | >>> | > | 20629 possible dead objects, occupying approximately | >>> | > | 1856610 | >>> | > | bytes, may be reclaimed. | >>> | > | topaz 1> printit | >>> | > | SystemRepository reclaimAll | >>> | > | % | >>> | > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 | >>> | > | --setGcConfig: set reclaimMinPages to 1 | >>> | > | --reclaimAll: changed reclaimMinPages from 40 to 1 | >>> | > | --setGcConfig: set reclaimSleepTime to 1 | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | >>> | > | --reclaimAll: using reclaimDeadEnabled true | >>> | > | --reclaimAll: simpleCommit loopCount 10 | >>> | > | an Array | >>> | > | #1 40 | >>> | > | #2 10 | >>> | > | #3 0 | >>> | > | | >>> | > | topaz 1> printit | >>> | > | SystemRepository objectAudit | >>> | > | % | >>> | > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 | >>> | > | --setGcConfig: set reclaimMinPages to 1 | >>> | > | --reclaimAll: changed reclaimMinPages from 1 to 1 | >>> | > | --setGcConfig: set reclaimSleepTime to 1 | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | >>> | > | --reclaimAll: using reclaimDeadEnabled true | >>> | > | 02/11/2012 12:11:27 PM.328 UTC: Starting object table scan | >>> | > | 02/11/2012 12:11:27 PM.921 UTC: Finished object table scan | >>> | > | | >>> | > | Object audit is proceeding in FullAudit mode: | >>> | > | Scavenging completed (either single user mode or no pages | >>> | > | to | >>> | > | scavenge). | >>> | > | All audit checks are enabled. | >>> | > | | >>> | > | Object audit as of 02/11/2012 12:11:27 PM UTC. | >>> | > | Summary of objects whose sizes exceed 100000 Bytes or Oops: | >>> | > | | >>> | > | ObjectID Class ClassName | >>> | > | LogicalSize | >>> | > | -------------------------------------------------------------------------------------------------------------- | >>> | > | 305743617 74753 String | >>> | > | 134740 Oops | >>> | > | 149534721 74753 String | >>> | > | 164661 Oops | >>> | > | 173784833 74753 String | >>> | > | 163312 Oops | >>> | > | 196368897 74753 String | >>> | > | 164661 Oops | >>> | > | 305774593 74753 String | >>> | > | 134740 Oops | >>> | > | 175519489 74753 String | >>> | > | 376305 Oops | >>> | > | 196571393 74753 String | >>> | > | 379399 Oops | >>> | > | 175494145 74753 String | >>> | > | 201874 Oops | >>> | > | 197005569 74753 String | >>> | > | 202074 Oops | >>> | > | 149996289 74753 String | >>> | > | 236426 Oops | >>> | > | 151722753 74753 String | >>> | > | 379399 Oops | >>> | > | 151723777 74753 String | >>> | > | 202074 Oops | >>> | > | 274619393 74753 String | >>> | > | 1170577 Oops | >>> | > | 265139713 74753 String | >>> | > | 1170577 Oops | >>> | > | 215910913 66817 Array | >>> | > | 331214 Oops | >>> | > | 164965121 74753 String | >>> | > | 236201 Oops | >>> | > | 197155585 74753 String | >>> | > | 236426 Oops | >>> | > | 271373057 74753 String | >>> | > | 1170577 Oops | >>> | > | 268426753 74753 String | >>> | > | 134740 Oops | >>> | > | 264103681 74753 String | >>> | > | 1170577 Oops | >>> | > | | >>> | > | ----------- Object Statistics Summary ----------------- | >>> | > | | >>> | > | ----- Instances of invisible (private) classes ------ | >>> | > | Number of instances: 1072 | >>> | > | Total size: 15855 K Bytes | >>> | > | Average size: 14.8 Bytes | >>> | > | | >>> | > | Class: 209153 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 209409 Instances: 1072 Total | >>> | > | Size: | >>> | > | 15855 K Bytes | >>> | > | Class: 209665 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 209921 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 210177 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 210433 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 210689 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 210945 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 211201 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 211457 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 211713 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 211969 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 212225 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 212481 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 212737 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 212993 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 213249 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 213505 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | Class: 213761 Instances: 0 Total | >>> | > | Size: | >>> | > | 0 K Bytes | >>> | > | | >>> | > | | >>> | > | ----- Instances of visible classes ----------------- | >>> | > | Number of objects : 1612803 | >>> | > | Total Size : 156912 K Bytes | >>> | > | size of Object Headers : 37800 K Bytes | >>> | > | size of Object Values : 116516 K Bytes | >>> | > | size of Object Tags : 0 K Bytes | >>> | > | average of Object Value: 74.0 Bytes | >>> | > | | >>> | > | Object Audit: Audit successfully completed; no errors were | >>> | > | detected. | >>> | > | --setGcConfig: set reclaimMinPages to 1 | >>> | > | --setGcConfig: set reclaimSleepTime to 1 | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | >>> | > | --postReclaimAll: restored reclaimMinPages to 1 | >>> | > | true | >>> | > | topaz 1> | >>> | > | topaz 1> | >>> | > | | >>> | > | | >>> | > | > If, as I suspect, you've got corruption in GsProcess | >>> | > | > objects | >>> | > | > they | >>> | > | > only impact Seaside session state, and should have | >>> | > | > disappeared | >>> | > | > by | >>> | > | > the time you run the object audit ... | >>> | > | > | >>> | > | > This problems seems to ring a bell, but it seems to me | >>> | > | > that the | >>> | > | > problem I am thinking of showed up in GemStone 3.0 and I | >>> | > | > think | >>> | > | > it | >>> | > | > was fixed in GemStone 3.0.1... so I'm curious what | >>> | > | > version of | >>> | > | > GemStone you are using. | >>> | > | > | >>> | > | > As I think about this, I seem to recall that the problem | >>> | > | > was | >>> | > | > related to deeply nested block structure in a method that | >>> | > | > was | >>> | > | > involved in partial continuations, so I am curious if you | >>> | > | > happen | >>> | > | > to have some deeply nested block structures let's say | >>> | > | > more than | >>> | > | > 5 | >>> | > | > or 6 levels deep in your method? In fact even in 3.0.1 I | >>> | > | > think | >>> | > | > that there might be an effective limit (the engineer that | >>> | > | > worked | >>> | > | > on this will be back on Monday for exact details), so if | >>> | > | > you | >>> | > | > are | >>> | > | > running with 3.0.1, you should definitely be suspicious | >>> | > | > of deep | >>> | > | > nesting of blocks... | >>> | > | > | >>> | > | > Dale | >>> | > | > | >>> | > | > [1] | >>> | > | > http://community.gemstone.com/display/GSS64/GemStoneS+64+Documentation | >>> | > | > | >>> | > | > ----- Original Message ----- | >>> | > | > | From: "Lawrence Kellogg" <[hidden email]> | >>> | > | > | To: "GemStone Seaside beta discussion" | >>> | > | > | <[hidden email]> | >>> | > | > | Sent: Friday, February 10, 2012 2:13:15 PM | >>> | > | > | Subject: [GS/SS Beta] Object does not exist error - | >>> | > | > | Worry | >>> | > | > | about | >>> | > | > | it? | >>> | > | > | | >>> | > | > | | >>> | > | > | | >>> | > | > | Hello, | >>> | > | > | After a long series of calls and answers in Seaside, I | >>> | > | > | got an | >>> | > | > | Object | >>> | > | > | does not exist error that brought down the fast cgi | >>> | > | > | gateway. | >>> | > | > | My | >>> | > | > | production error handler was not triggered, although it | >>> | > | > | was | >>> | > | > | installed, as far as I could tell. Strange. My | >>> | > | > | supervise | >>> | > | > | fastcgi | >>> | > | > | process also did not pick up my dead fastcgi process. | >>> | > | > | Not a | >>> | > | > | good | >>> | > | > | day. | >>> | > | > | | >>> | > | > | Here is the walkback: | >>> | > | > | | >>> | > | > | | >>> | > | > | | >>> | > | > | USER IDS: REAL=seasideuser (500) EFFECTIVE=seasideuser | >>> | > | > | (500) | >>> | > | > | | | >>> | > | > | |_____________________________________________________________________________| | >>> | > | > | topaz> topaz> topaz> topaz> topaz> topaz> topaz> | >>> | > | > | [Info]: LNK | >>> | > | > | client/gem GCI levels = 844/844 | >>> | > | > | [Info]: User ID: DataCurator | >>> | > | > | [Info]: Repository: seaside | >>> | > | > | [Info]: Session ID: 5 | >>> | > | > | [Info]: GCI Client Host: <Linked> | >>> | > | > | [Info]: Page server PID: -1 | >>> | > | > | [Info]: Login Time: 02/10/2012 09:27:56 PM.572 UTC | >>> | > | > | [02/10/2012 09:27:56 PM.592 UTC] gci login: currSession | >>> | > | > | 1 rpc | >>> | > | > | gem | >>> | > | > | processId -1 | >>> | > | > | successful login | >>> | > | > | topaz 1> topaz 1> [20 sz:0 cls: 76289 UndefinedObject] | >>> | > | > | nil | >>> | > | > | topaz 1> topaz 1> [76033 sz:19 cls: 801793 System | >>> | > | > | class] | >>> | > | > | System | >>> | > | > | class | >>> | > | > | superClass [72193 sz:19 cls: 206081 Object class] | >>> | > | > | Object | >>> | > | > | class | >>> | > | > | format [258 sz:0 cls: 74241 SmallInteger] 32 | >>> | > | > | instVars [2 sz:0 cls: 74241 SmallInteger] 0 | >>> | > | > | instVarNames [422145 sz:0 cls: 66817 Array] an Array | >>> | > | > | constraints [421889 sz:0 cls: 66817 Array] an Array | >>> | > | > | classVars [421633 sz:26 cls: 111361 SymbolDictionary] a | >>> | > | > | SymbolDictionary | >>> | > | > | methodDict [711937 sz:112 cls: 99073 | >>> | > | > | GsMethodDictionary] a | >>> | > | > | GsMethodDictionary | >>> | > | > | poolDictionaries [421377 sz:0 cls: 66817 Array] an | >>> | > | > | Array | >>> | > | > | categories [421121 sz:28 cls: 99073 GsMethodDictionary] | >>> | > | > | a | >>> | > | > | GsMethodDictionary | >>> | > | > | secondarySuperclasses [20 sz:0 cls: 76289 | >>> | > | > | UndefinedObject] | >>> | > | > | nil | >>> | > | > | name [801537 sz:6 cls: 110849 Symbol] System | >>> | > | > | classHistory [420865 sz:3 cls: 82689 ClassHistory] a | >>> | > | > | ClassHistory | >>> | > | > | description [13498369 sz:10 cls: 95233 | >>> | > | > | GsClassDocumentation] | >>> | > | > | a | >>> | > | > | GsClassDocumentation | >>> | > | > | migrationDestination [20 sz:0 cls: 76289 | >>> | > | > | UndefinedObject] nil | >>> | > | > | timeStamp [14510593 sz:4 cls: 118785 DateTime] a | >>> | > | > | DateTime | >>> | > | > | userId [14508801 sz:10 cls: 74753 String] SystemUser | >>> | > | > | extraDict [14524929 sz:14 cls: 111361 SymbolDictionary] | >>> | > | > | a | >>> | > | > | SymbolDictionary | >>> | > | > | classCategory [20 sz:0 cls: 76289 UndefinedObject] nil | >>> | > | > | subclasses [20 sz:0 cls: 76289 UndefinedObject] nil | >>> | > | > | | >>> | > | > | | >>> | > | > | topaz 1> topaz 1> WAFastCGIAdaptor Server started on | >>> | > | > | port | >>> | > | > | 9001 | >>> | > | > | ----------------------------------------------------- | >>> | > | > | GemStone: Error Nonfatal | >>> | > | > | The object with object ID 81065894683350528 does not | >>> | > | > | exist. | >>> | > | > | Error Category: 231169 [GemStone] Number: 2101 Arg | >>> | > | > | Count: 1 | >>> | > | > | Context : | >>> | > | > | 526648321 | >>> | > | > | Arg 1: [648527157466804226 sz:0 cls: 74241 | >>> | > | > | SmallInteger] | >>> | > | > | 81065894683350528 | >>> | > | > | | >>> | > | > | | >>> | > | > | Now executing the following command saved from "iferr | >>> | > | > | 1": | >>> | > | > | where | >>> | > | > | ==> 1 GsProcess class >> | >>> | > | > | installPartialContinuation:atLevel:value: @2 | >>> | > | > | line 1 [GsMethod 4487425] | >>> | > | > | 2 WAPartialContinuation >> value: @13 line 11 [GsMethod | >>> | > | > | 212791041] | >>> | > | > | 3 WAPartialContinuation >> valueWithPossibleArguments: | >>> | > | > | @2 | >>> | > | > | line 2 | >>> | > | > | [GsMethod 218326273] | >>> | > | > | 4 ComplexBlock in WAComponent >> | >>> | > | > | show:onAnswer:delegation: @7 | >>> | > | > | line 7 | >>> | > | > | [GsMethod 194749185] | >>> | > | > | 5 ComplexBlock in ExecutableBlock >> | >>> | > | > | valueWithPossibleArguments: | >>> | > | > | @12 | >>> | > | > | line 8 [GsMethod 116163585] | >>> | > | > | 6 WAAnswerHandler >> handleAnswer:continueWith: @3 line | >>> | > | > | 2 | >>> | > | > | [GsMethod | >>> | > | > | 194735873] | >>> | > | > | 7 WADecoration >> handleAnswer: @6 line 3 [GsMethod | >>> | > | > | 194731009] | >>> | > | > | 8 WAComponent >> answer: @2 line 5 [GsMethod 194751745] | >>> | > | > | | >>> | > | > | | >>> | > | > | | >>> | > | > | | >>> | > | > | I found this on the net: | >>> | > | > | | >>> | > | > | | >>> | > | > | | >>> | > | > | Object does not exist errors | >>> | > | > | GBS applications may encounter object does not exist | >>> | > | > | errors | >>> | > | > | in | >>> | > | > | non-persistent | >>> | > | > | objects. This is due to a problem with the fix for bug | >>> | > | > | #40703 | >>> | > | > | in | >>> | > | > | version | >>> | > | > | 2.4.4, which resulted in non-persistent objects not | >>> | > | > | properly | >>> | > | > | protected | >>> | > | > | from garbage collection. | >>> | > | > | | >>> | > | > | Workaround: | >>> | > | > | | >>> | > | > | none/not applicable | >>> | > | > | from: | >>> | > | > | | >>> | > | > | | >>> | > | > | | >>> | > | > | | >>> | > | > | | >>> | > | > | | >>> | > | > | http://www.gemstone.com/docs/GemStoneS/bugnotes/bugnotes/40948.html | >>> | > | > | | >>> | > | > | | >>> | > | > | | >>> | > | > | So, should I worry about this? I implemented code that | >>> | > | > | allowed a | >>> | > | > | user | >>> | > | > | to call an editor, switch out on the navigation menu, | >>> | > | > | call | >>> | > | > | another | >>> | > | > | editor, | >>> | > | > | switch out. With each switch, I send answer: false to | >>> | > | > | the | >>> | > | > | open | >>> | > | > | editor | >>> | > | > | to close it so that it is not hanging around open. My | >>> | > | > | idea | >>> | > | > | was to hide the section navigation when the editor came | >>> | > | > | up | >>> | > | > | but | >>> | > | > | I'm | >>> | > | > | getting push back from my user. | >>> | > | > | | >>> | > | > | | >>> | > | > | What do you think? | >>> | > | > | | >>> | > | > | | >>> | > | > | Larry | >>> | > | > | | >>> | > | > | | >>> | > | > | | >>> | > | > | | >>> | > | | >>> | > | | >>> | | >>> | | >> | > | | |
On Feb 28, 2012, at 2:41 PM, Dale Henrichs wrote: > Larry, > > Okay, here's the stack that covers the range of the partial continuation: > > ==> 1 WAComponent >> decoration @3 line 1 [GsMethod 194749441] > 2 WAComponent >> addDecoration: @2 line 6 [GsMethod 194748417] > 3 WAComponent >> show:onAnswerelegation: @10 line 8 [GsMethod 194749185] > 4 WAComponent >> show:onAnswer: @5 line 5 [GsMethod 499699713] > 5 WAComponent >> call:onAnswer: @5 line 8 [GsMethod 194750977] > 6 ComplexBlock in WAComponent >> call: @3 line 4 [GsMethod 191317249] > 7 ComplexBlock in WAComponent >> wait: @3 line 3 [GsMethod 191268353] > 8 GRGemStonePlatform >> seasideSuspendFlowDo: @9 line 5 [GsMethod 499655937] > 9 WAComponent >> wait: @4 line 3 [GsMethod 191268353] > 10 WAComponent >> call: @4 line 4 [GsMethod 191317249] > 11 PracticeJournalLoginTask >> go @14 line 9 [GsMethod 371393537] > 12 WATask >> execute @1 line 7 [GsMethod 195261697] > 13 ComplexBlock in WATaskVisitor >> visitTask: @6 line 4 [GsMethod 194755841] > > WAComponent >> decoration is the source of the error and it is sending #contents to a 'decoration' of the component ... it's not quite clear whether the decoration iv is the corrupt object or the result of the #contents message send ... > > To get a better picture of what's happening we need a C stack when the error occurs. If you set > > GEM_HALT_ON_ERROR = 2101; > > in your system.conf file, then when the obj does not exist error occurs the gem will halt, dump a c stack, wait 60 seconds and then shutdown ... This is pretty intrusive, but it will get us a couple steps closer to understanding what's going on. > > If you (or Johan) can duplicate the error under controlled conditions then you would fire up a topaz manually to service requests and when the halt on error hits, you'll be dropped to the topaz prompt where you can view the smalltalk stack and inspect the objects involved … > Thanks, Dale. I think I can make it crash in my Staging environment by going through many call/answers invocations. I will try. Unfortunately, I don't think I know enough about what Seaside is doing at that level to fix the problem. I see that the WADecoration is a WAValueHolder but that's about the end of my knowledge. I guess there is no way of knowing from this stack dump what kind of WADecoration we're talking about. Regards, Larry > Dale > > ----- Original Message ----- > | From: "Lawrence Kellogg" <[hidden email]> > | To: "GemStone Seaside beta discussion" <[hidden email]> > | Sent: Monday, February 27, 2012 7:01:58 PM > | Subject: Re: [GS/SS Beta] Object does not exist error - Worry about it? > | > | > | On Feb 21, 2012, at 2:40 PM, Johan Brichau wrote: > | > | > fyi, I have been observing occurrences of this bug as well, with > | > exactly the same point of failure in the stack. > | > > | > No repository problems or audit warnings. > | > > | > Funnily, I've never seen this in any stone running Yesplan. The > | > stone where we have this problem is also running a Seaside > | > application but the only discriminating factor I can observe is > | > that this application uses call/answer a lot more (while we almost > | > never use that in Yesplan). It probably does not help a lot > | > finding the error... but I will look up the stack traces and post > | > them here if they might contain some clues. > | > | Hello Johan, > | Thanks for looking into this problem. I use call/answer quite a > | bit. > | > | Dale, did you see the stack dump I posted? > | > | Larry > | > | > | > > | > On 21 Feb 2012, at 20:13, Lawrence Kellogg wrote: > | > > | >> > | >> On Feb 21, 2012, at 1:05 PM, Dale Henrichs wrote: > | >> > | >>> Larry, > | >>> > | >>> We should try to dig into this one some more. > | >>> > | >>> To start with what version of Gemstone are you using? If you are > | >>> using 2.4.4.1, then I'm not aware of an issue that would warrant > | >>> an upgrade to 2.4.5, but I will check around a bit...As I said > | >>> before, the only place that I've seen "Obj does not exist > | >>> errors" is in 3.0 and those bugs were fixed in 3.0.1. > | >>> > | >> > | >> Dale, > | >> Thanks for the help. I would like to get to the bottom of this > | >> error. This crash takes down Fastcgi so it kills the service. > | >> > | >> According to the file in the directory, I'm on 2.4.[ component notNil ] > | >> whileTrue: [ > | >> self call: component. > | >> component := component nextComponentToBeDisplayed ] ]4.1 > | >> > | >> GemStone64Bit2.4.4.1-x86_64.Linux > | >> > | >> > | >> > | >> > | >>> This time we are getting the error while creating the > | >>> continuation ... the last episode occurred when you were trying > | >>> to execute from a continuation. > | >>> > | >>> Could you share the source code for PracticeJournalLoginTask >> > | >>> go? That's the first non-Seaside method on the stack below the > | >>> error, so it's as good a place as any to start … > | >>> > | >> > | >> Here is the complete source code for the go method: ;-) > | >> > | >> go > | >> | user component | > | >> self call: self userLoginView. > | >> (self userLoginView user) notNil > | >> ifTrue: [ > | >> component := self firstComponentToDisplayForUser: self > | >> userLoginView user. > | >> [ component notNil ] > | >> whileTrue: [ > | >> self call: component. > | >> component := component nextComponentToBeDisplayed ] ] > | >> > | >> A component is called, and when another component is selected the > | >> current component is sent answer: false and > | >> the new component to call is returned from that > | >> nextComponentToBeDisplayed method. > | >> > | >> I used to have an implementation that would give me a huge > | >> recursive nesting of continuations, as shown by > | >> halo, but this shows everything on just a few levels, although I > | >> have to say that the walkback looks deep and gnarly. > | >> > | >> > | >>> It would be useful to see the entire stack as well. The partial > | >>> continuation copies the stack back to a marker method and it > | >>> would be useful to examine the source for the methods that are > | >>> on the stck for clues as to what might be going on... > | >>> > | >>> Dale > | >> > | >> > | >> Here is the complete walk back: > | >> > | >> topaz 1> topaz 1> WAFastCGIAdaptor Server started on port 9001 > | >> ----------------------------------------------------- > | >> GemStone: Error Nonfatal > | >> The object with object ID 76562293713797632 does not exist. > | >> Error Category: 231169 [GemStone] Number: 2101 Arg Count: 1 > | >> Context : 412915713 > | >> Arg 1: [612498349710381058 sz:0 cls: 74241 SmallInteger] > | >> 76562293713797632 > | >> > | >> Now executing the following command saved from "iferr 1": > | >> where > | >> ==> 1 WAComponent >> decoration @3 line 1 [GsMethod 194749441] > | >> 2 WAComponent >> addDecoration: @2 line 6 [GsMethod 194748417] > | >> 3 WAComponent >> show:onAnswer:delegation: @10 line 8 [GsMethod > | >> 194749185] > | >> 4 WAComponent >> show:onAnswer: @5 line 5 [GsMethod 499699713] > | >> 5 WAComponent >> call:onAnswer: @5 line 8 [GsMethod 194750977] > | >> 6 ComplexBlock in WAComponent >> call: @3 line 4 [GsMethod > | >> 191317249] > | >> 7 ComplexBlock in WAComponent >> wait: @3 line 3 [GsMethod > | >> 191268353] > | >> 8 GRGemStonePlatform >> seasideSuspendFlowDo: @9 line 5 > | >> [GsMethod 499655937] > | >> 9 WAComponent >> wait: @4 line 3 [GsMethod 191268353] > | >> 10 WAComponent >> call: @4 line 4 [GsMethod 191317249] > | >> 11 PracticeJournalLoginTask >> go @14 line 9 [GsMethod > | >> 371393537] > | >> 12 WATask >> execute @1 line 7 [GsMethod 195261697] > | >> 13 ComplexBlock in WATaskVisitor >> visitTask: @6 line 4 > | >> [GsMethod 194755841] > | >> 14 WACallback >> evaluateWithFieldValues: @5 line 2 [GsMethod > | >> 177495553] > | >> 15 ComplexBlock in WACallbackRegistry >> handle: @16 line 10 > | >> [GsMethod 177951489] > | >> 16 Collection >> do: @5 line 10 [GsMethod 1547777] > | >> 17 WACallbackRegistry >> handle: @17 line 9 [GsMethod 177951489] > | >> 18 ComplexBlock in WAActionPhaseContinuation >> runCallbacks @7 > | >> line 4 [GsMethod 202613505] > | >> 19 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] > | >> 20 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod > | >> 10062081] > | >> 21 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod > | >> 9005057] > | >> 22 WARenderLoopContinuation >> withNotificationHandlerDo: @3 line > | >> 2 [GsMethod 202608385] > | >> 23 ComplexVCBlock in WAActionPhaseContinuation >> runCallbacks @8 > | >> line 3 [GsMethod 202613505] > | >> 24 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 > | >> [GsMethod 2304001] > | >> 25 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11 > | >> [GsMethod 2304001] > | >> 26 WAActionPhaseContinuation >> runCallbacks @18 line 6 > | >> [GsMethod 202613505] > | >> 27 WAActionPhaseContinuation >> handleRequest @1 line 2 > | >> [GsMethod 202614017] > | >> 28 ComplexBlock in WASessionContinuation >> basicValue @3 line 2 > | >> [GsMethod 202625537] > | >> 29 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] > | >> 30 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod > | >> 10062081] > | >> 31 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod > | >> 9005057] > | >> 32 WASessionContinuation >> withUnregisteredHandlerDo: @7 line 3 > | >> [GsMethod 202627073] > | >> 33 WASessionContinuation >> basicValue @4 line 2 [GsMethod > | >> 202625537] > | >> 34 WASessionContinuation >> value @3 line 5 [GsMethod 202623745] > | >> 35 WASession >> handleFiltered: @14 line 10 [GsMethod 202205441] > | >> 36 WARequestFilter >> handleFiltered: @2 line 4 [GsMethod > | >> 176192513] > | >> 37 ComplexBlock in WADeprecatedToolFilter >> handleFiltered: @3 > | >> line 2 [GsMethod 203213313] > | >> 38 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] > | >> 39 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod > | >> 10062081] > | >> 40 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod > | >> 9005057] > | >> 41 WADeprecatedToolFilter >> handleFiltered: @6 line 3 [GsMethod > | >> 203213313] > | >> 42 WARequestFilter >> handleFiltered: @2 line 4 [GsMethod > | >> 176192513] > | >> 43 ComplexBlock in WATimingToolFilter >> handleFiltered: @4 line 3 > | >> [GsMethod 203208449] > | >> 44 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 > | >> [GsMethod 2304001] > | >> 45 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 > | >> [GsMethod 2304001] > | >> 46 WATimingToolFilter >> handleFiltered: @8 line 4 [GsMethod > | >> 203208449] > | >> 47 ComplexBlock in WARequestHandler >> handle: @4 line 4 > | >> [GsMethod 178568961] > | >> 48 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] > | >> 49 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod > | >> 10062081] > | >> 50 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod > | >> 9005057] > | >> 51 WADynamicVariable class >> use:during: @4 line 4 [GsMethod > | >> 177805825] > | >> 52 ComplexBlock in WARequestContext >> push:during: @4 line 5 > | >> [GsMethod 176176129] > | >> 53 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 > | >> [GsMethod 2304001] > | >> 54 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 > | >> [GsMethod 2304001] > | >> 55 WARequestContext >> push:during: @7 line 6 [GsMethod > | >> 176176129] > | >> 56 WARequestHandler >> handle: @5 line 4 [GsMethod 178568961] > | >> 57 WASession >> handle: @10 line 11 [GsMethod 202210561] > | >> 58 WARegistry >> dispatch:to: @1 line 5 [GsMethod 176153857] > | >> 59 WARegistry >> handleKeyed:with: @2 line 5 [GsMethod > | >> 176155137] > | >> 60 WARegistry >> handleFiltered: @33 line 19 [GsMethod > | >> 176146945] > | >> 61 WAApplication >> handleFiltered: @9 line 8 [GsMethod > | >> 202644225] > | >> 62 WARequestFilter >> handleFiltered: @2 line 4 [GsMethod > | >> 176192513] > | >> 63 ComplexBlock in WAExceptionFilter >> handleFiltered: @6 line 7 > | >> [GsMethod 499529473] > | >> 64 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] > | >> 65 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod > | >> 10062081] > | >> 66 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod > | >> 9005057] > | >> 67 WADynamicVariable class >> use:during: @4 line 4 [GsMethod > | >> 177805825] > | >> 68 ComplexVCBlock in WAExceptionFilter >> handleFiltered: @7 line > | >> 6 [GsMethod 499529473] > | >> 69 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] > | >> 70 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod > | >> 10062081] > | >> 71 ComplexVCBlock in ExecutableBlock >> on:do: @2 line 8 > | >> [GsMethod 9005057] > | >> 72 WAExceptionHandler >> handleExceptionsDuring: @8 line 3 > | >> [GsMethod 177803521] > | >> 73 WAExceptionFilter >> handleFiltered: @8 line 4 [GsMethod > | >> 499529473] > | >> 74 ComplexBlock in WARequestHandler >> handle: @4 line 4 > | >> [GsMethod 178568961] > | >> 75 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] > | >> 76 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod > | >> 10062081] > | >> 77 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod > | >> 9005057] > | >> 78 WADynamicVariable class >> use:during: @4 line 4 [GsMethod > | >> 177805825] > | >> 79 ComplexBlock in WARequestContext >> push:during: @4 line 5 > | >> [GsMethod 176176129] > | >> 80 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 > | >> [GsMethod 2304001] > | >> 81 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 > | >> [GsMethod 2304001] > | >> 82 WARequestContext >> push:during: @7 line 6 [GsMethod > | >> 176176129] > | >> 83 WARequestHandler >> handle: @5 line 4 [GsMethod 178568961] > | >> 84 WADispatcher >> handleFiltered:named: @7 line 5 [GsMethod > | >> 179090945] > | >> 85 WADispatcher >> handleFiltered: @7 line 6 [GsMethod > | >> 179087617] > | >> 86 ComplexBlock in WARequestHandler >> handle: @4 line 4 > | >> [GsMethod 178568961] > | >> 87 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] > | >> 88 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod > | >> 10062081] > | >> 89 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod > | >> 9005057] > | >> 90 WADynamicVariable class >> use:during: @4 line 4 [GsMethod > | >> 177805825] > | >> 91 ComplexBlock in WARequestContext >> push:during: @4 line 5 > | >> [GsMethod 176176129] > | >> 92 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 > | >> [GsMethod 2304001] > | >> 93 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 > | >> [GsMethod 2304001] > | >> 94 WARequestContext >> push:during: @7 line 6 [GsMethod > | >> 176176129] > | >> 95 WARequestHandler >> handle: @5 line 4 [GsMethod 178568961] > | >> 96 ComplexBlock in WAServerAdaptor >> handleRequest: @4 line 4 > | >> [GsMethod 176816641] > | >> 97 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod 10065409] > | >> 98 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod > | >> 10062081] > | >> 99 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 [GsMethod > | >> 9005057] > | >> 100 WAServerAdaptor >> handleRequest: @6 line 5 [GsMethod > | >> 176816641] > | >> 101 WAServerAdaptor >> handle: @1 line 4 [GsMethod 176817921] > | >> 102 ComplexBlock in WAServerAdaptor >> process: @5 line 6 > | >> [GsMethod 176817153] > | >> 103 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 > | >> [GsMethod 2304001] > | >> 104 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 > | >> [GsMethod 2304001] > | >> 105 WAServerAdaptor >> process: @9 line 7 [GsMethod 176817153] > | >> 106 ComplexBlock in WAFastCGIAdaptor >> process: @3 line 6 > | >> [GsMethod 212442369] > | >> 107 ComplexBlock in GRGemStonePlatform >> > | >> seasideProcessRequestWithRetry:resultBlock: @12 line 11 > | >> [GsMethod 175179265] > | >> 108 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod > | >> 10065409] > | >> 109 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod > | >> 10062081] > | >> 110 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 > | >> [GsMethod 9005057] > | >> 111 ComplexVCBlock in GRGemStonePlatform >> > | >> seasideProcessRequestWithRetry:resultBlock: @18 line 12 > | >> [GsMethod 175179265] > | >> 112 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 > | >> [GsMethod 2304001] > | >> 113 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11 > | >> [GsMethod 2304001] > | >> 114 TransientRecursionLock >> critical: @15 line 8 [GsMethod > | >> 21159937] > | >> 115 GRGemStonePlatform >> > | >> seasideProcessRequestWithRetry:resultBlock: @39 line 5 > | >> [GsMethod 175179265] > | >> 116 ComplexBlock in GRGemStonePlatform >> > | >> seasideProcessRequest:adaptor:resultBlock: @7 line 9 [GsMethod > | >> 175179521] > | >> 117 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod > | >> 10065409] > | >> 118 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod > | >> 10062081] > | >> 119 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 > | >> [GsMethod 9005057] > | >> 120 GRGemStonePlatform >> > | >> seasideProcessRequest:adaptor:resultBlock: @32 line 17 > | >> [GsMethod 175179521] > | >> 121 WAFastCGIAdaptor >> process: @4 line 4 [GsMethod 212442369] > | >> 122 ComplexBlock in WAFastCGIAdaptor >> answerResponderRole: @3 > | >> line 4 [GsMethod 212444161] > | >> 123 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod > | >> 10065409] > | >> 124 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod > | >> 10062081] > | >> 125 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 > | >> [GsMethod 9005057] > | >> 126 WAFastCGIAdaptor >> answerResponderRole: @9 line 5 [GsMethod > | >> 212444161] > | >> 127 FSResponderRole >> answer @2 line 4 [GsMethod 218695937] > | >> 128 FSRole >> handleConnection @3 line 5 [GsMethod 218705409] > | >> 129 FSConnection >> unsafeServe @4 line 8 [GsMethod 219646465] > | >> 130 ComplexBlock in FSConnection >> safeServe @5 line 8 > | >> [GsMethod 499288833] > | >> 131 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod > | >> 10065409] > | >> 132 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod > | >> 10062081] > | >> 133 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 > | >> [GsMethod 9005057] > | >> 134 ComplexVCBlock in FSConnection >> safeServe @8 line 9 > | >> [GsMethod 499288833] > | >> 135 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod > | >> 10065409] > | >> 136 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod > | >> 10062081] > | >> 137 ComplexVCBlock in ExecutableBlock >> on:do: @2 line 8 > | >> [GsMethod 9005057] > | >> 138 ComplexVCBlock in FSConnection >> safeServe @11 line 12 > | >> [GsMethod 499288833] > | >> 139 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 > | >> [GsMethod 2304001] > | >> 140 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11 > | >> [GsMethod 2304001] > | >> 141 FSConnection >> safeServe @14 line 15 [GsMethod 499288833] > | >> 142 FSConnection >> serve @1 line 4 [GsMethod 219654145] > | >> 143 ComplexBlock in FSSocketServer >> listen: @9 line 15 > | >> [GsMethod 219292673] > | >> 144 GsProcess >> _startPart2 @15 line 17 [GsMethod 4501249] > | >> 145 GsProcess >> _start @1 line 9 [GsMethod 4501761] > | >> [GsProcess 412915713] > | >> topaz 1> [268 sz:0 cls: 68097 Boolean] true > | >> topaz 1> > | >> HostCallDebugger: invoked at: Mon Feb 20 16:38:18 UTC 2012 > | >> > | >> UTL_GUARANTEE failed, File > | >> /export/toronto3/users/buildgss/244x-1/src/omverify.c line 28 > | >> > | >> Begin attempt to print C-level stack at: Mon Feb 20 16:38:18 UTC > | >> 2012 > | >> > | >> > | >> End of C-level stack: > | >> > | >> > | >> hostcalldebugger invoked in process 6550, at 02/20/2012 04:38:18 > | >> PM.681 UTC > | >> notifying stone of fatal error > | >> > | >> [Info]: Logging out at 02/20/2012 04:38:18 PM UTC > | >> > | >> > | >> > | >>> > | >>> ----- Original Message ----- > | >>> | From: "Lawrence Kellogg" <[hidden email]> > | >>> | To: "GemStone Seaside beta discussion" > | >>> | <[hidden email]> > | >>> | Sent: Monday, February 20, 2012 8:48:22 AM > | >>> | Subject: Re: [GS/SS Beta] Object does not exist error - Worry > | >>> | about it? > | >>> | > | >>> | Hello Dale, > | >>> | Well, my system has been up for days, running with no > | >>> | problems, not > | >>> | that it has been getting a lot of traffic, but still, no > | >>> | crashes. > | >>> | Today, I hit the Object does not exist error again. I guess I > | >>> | can > | >>> | do another object audit but, other than that, I'm not sure > | >>> | how to > | >>> | proceed. Do you think an upgrade to 2.4.5 will help me? > | >>> | > | >>> | Here is the walkback: > | >>> | > | >>> | topaz 1> topaz 1> WAFastCGIAdaptor Server started on port 9001 > | >>> | ----------------------------------------------------- > | >>> | GemStone: Error Nonfatal > | >>> | The object with object ID 76562293713797632 does not exist. > | >>> | Error Category: 231169 [GemStone] Number: 2101 Arg Count: 1 > | >>> | Context : > | >>> | 412915713 > | >>> | Arg 1: [612498349710381058 sz:0 cls: 74241 SmallInteger] > | >>> | 76562293713797632 > | >>> | > | >>> | Now executing the following command saved from "iferr 1": > | >>> | where > | >>> | ==> 1 WAComponent >> decoration @3 line 1 [GsMethod > | >>> | 194749441] > | >>> | 2 WAComponent >> addDecoration: @2 line 6 [GsMethod > | >>> | 194748417] > | >>> | 3 WAComponent >> show:onAnswer:delegation: @10 line 8 > | >>> | [GsMethod > | >>> | 194749185] > | >>> | 4 WAComponent >> show:onAnswer: @5 line 5 [GsMethod > | >>> | 499699713] > | >>> | 5 WAComponent >> call:onAnswer: @5 line 8 [GsMethod > | >>> | 194750977] > | >>> | 6 ComplexBlock in WAComponent >> call: @3 line 4 [GsMethod > | >>> | 191317249] > | >>> | 7 ComplexBlock in WAComponent >> wait: @3 line 3 [GsMethod > | >>> | 191268353] > | >>> | 8 GRGemStonePlatform >> seasideSuspendFlowDo: @9 line 5 > | >>> | [GsMethod > | >>> | 499655937] > | >>> | 9 WAComponent >> wait: @4 line 3 [GsMethod 191268353] > | >>> | 10 WAComponent >> call: @4 line 4 [GsMethod 191317249] > | >>> | 11 PracticeJournalLoginTask >> go @14 line 9 [GsMethod > | >>> | 371393537] > | >>> | > | >>> | > | >>> | Larry > | >>> | > | >>> | On Feb 11, 2012, at 2:34 PM, Dale Henrichs wrote: > | >>> | > | >>> | > Larry, > | >>> | > > | >>> | > Yes, everything looks clean, I'm a little bit surprised that > | >>> | > you > | >>> | > didn't find the original error in you first audit, but the > | >>> | > implication is that the "corrupt object" never got persisted > | >>> | > ... > | >>> | > indicating some other type of corruption ... > | >>> | > > | >>> | > A clean object audit means that your data base has no > | >>> | > corruption so > | >>> | > you're good to go ... I'll talk to some guys on Monday and > | >>> | > see if > | >>> | > they have some ideas as to what might have happened...there's > | >>> | > a > | >>> | > bug in there somewhere, but for now it looks like it is > | >>> | > isolated > | >>> | > to the local state in a gem ... > | >>> | > > | >>> | > Dale > | >>> | > > | >>> | > ----- Original Message ----- > | >>> | > | From: "Lawrence Kellogg" <[hidden email]> > | >>> | > | To: "GemStone Seaside beta discussion" > | >>> | > | <[hidden email]> > | >>> | > | Sent: Saturday, February 11, 2012 4:18:06 AM > | >>> | > | Subject: Re: [GS/SS Beta] Object does not exist error - > | >>> | > | Worry > | >>> | > | about it? > | >>> | > | > | >>> | > | > | >>> | > | On Feb 10, 2012, at 7:04 PM, Dale Henrichs wrote: > | >>> | > | > | >>> | > | > Larry, > | >>> | > | > > | >>> | > | > Object does not exist errors are not good things ... and > | >>> | > | > the > | >>> | > | > gem > | >>> | > | > coming down in this case is probably a good thing ... The > | >>> | > | > fact > | >>> | > | > that the problem is showing up in a GsProcess means that > | >>> | > | > the > | >>> | > | > Seaside session data structures are corrupted but not > | >>> | > | > your > | >>> | > | > model > | >>> | > | > data ... > | >>> | > | > > | >>> | > | > You can check for corruption in your data base by running > | >>> | > | > an > | >>> | > | > object > | >>> | > | > audit (see section 8.2 of the System Administration > | >>> | > | > Guide[1]). > | >>> | > | > If > | >>> | > | > you follow these steps you own't need to run the object > | >>> | > | > audit > | >>> | > | > as > | >>> | > | > single user (see the docs): > | >>> | > | > > | >>> | > | > - expire sessions > | >>> | > | > - mfc > | >>> | > | > - reclaimAll > | >>> | > | > - object audit > | >>> | > | > > | >>> | > | > | >>> | > | Hello Dale, > | >>> | > | Ok, I ran: > | >>> | > | > | >>> | > | System stopUserSessions > | >>> | > | SystemRepository objectAudit > | >>> | > | SystemRepository markForCollection > | >>> | > | SystemRepository reclaimAll > | >>> | > | SystemRepository objectAudit > | >>> | > | > | >>> | > | I don't see any errors. Here is my log. What do you make of > | >>> | > | it? > | >>> | > | > | >>> | > | Larry > | >>> | > | > | >>> | > | > | >>> | > | [Info]: Login Time: 02/11/2012 12:06:22 PM.972 UTC > | >>> | > | [02/11/2012 12:06:23 PM.001 UTC] gci login: currSession 1 > | >>> | > | rpc gem > | >>> | > | processId -1 > | >>> | > | successful login > | >>> | > | topaz 1> printit > | >>> | > | System hasMissingGcGems > | >>> | > | % > | >>> | > | false > | >>> | > | topaz 1> printit > | >>> | > | System stopUserSessions > | >>> | > | % > | >>> | > | System class > | >>> | > | superClass Object class > | >>> | > | format 32 > | >>> | > | instVars 0 > | >>> | > | instVarNames an Array > | >>> | > | constraints an Array > | >>> | > | classVars a SymbolDictionary > | >>> | > | methodDict a GsMethodDictionary > | >>> | > | poolDictionaries an Array > | >>> | > | categories a GsMethodDictionary > | >>> | > | secondarySuperclasses nil > | >>> | > | name System > | >>> | > | classHistory a ClassHistory > | >>> | > | description a GsClassDocumentation > | >>> | > | migrationDestination nil > | >>> | > | timeStamp a DateTime > | >>> | > | userId SystemUser > | >>> | > | extraDict a SymbolDictionary > | >>> | > | classCategory nil > | >>> | > | subclasses nil > | >>> | > | > | >>> | > | topaz 1> printit > | >>> | > | SystemRepository objectAudit > | >>> | > | % > | >>> | > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 > | >>> | > | --setGcConfig: set reclaimMinPages to 1 > | >>> | > | --reclaimAll: changed reclaimMinPages from 40 to 1 > | >>> | > | --setGcConfig: set reclaimSleepTime to 1 > | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 > | >>> | > | --reclaimAll: using reclaimDeadEnabled true > | >>> | > | --reclaimAll: simpleCommit loopCount 10 > | >>> | > | 02/11/2012 12:07:41 PM.070 UTC: Starting object table scan > | >>> | > | 02/11/2012 12:07:41 PM.698 UTC: Finished object table scan > | >>> | > | > | >>> | > | Object audit is proceeding in FullAudit mode: > | >>> | > | Scavenging completed (either single user mode or no pages > | >>> | > | to > | >>> | > | scavenge). > | >>> | > | All audit checks are enabled. > | >>> | > | > | >>> | > | Object audit as of 02/11/2012 12:07:41 PM UTC. > | >>> | > | Summary of objects whose sizes exceed 100000 Bytes or Oops: > | >>> | > | > | >>> | > | ObjectID Class ClassName > | >>> | > | LogicalSize > | >>> | > | -------------------------------------------------------------------------------------------------------------- > | >>> | > | 305743617 74753 String > | >>> | > | 134740 Oops > | >>> | > | 149534721 74753 String > | >>> | > | 164661 Oops > | >>> | > | 173784833 74753 String > | >>> | > | 163312 Oops > | >>> | > | 196368897 74753 String > | >>> | > | 164661 Oops > | >>> | > | 305774593 74753 String > | >>> | > | 134740 Oops > | >>> | > | 175519489 74753 String > | >>> | > | 376305 Oops > | >>> | > | 196571393 74753 String > | >>> | > | 379399 Oops > | >>> | > | 175494145 74753 String > | >>> | > | 201874 Oops > | >>> | > | 197005569 74753 String > | >>> | > | 202074 Oops > | >>> | > | 149996289 74753 String > | >>> | > | 236426 Oops > | >>> | > | 151722753 74753 String > | >>> | > | 379399 Oops > | >>> | > | 151723777 74753 String > | >>> | > | 202074 Oops > | >>> | > | 274619393 74753 String > | >>> | > | 1170577 Oops > | >>> | > | 265139713 74753 String > | >>> | > | 1170577 Oops > | >>> | > | 215910913 66817 Array > | >>> | > | 331214 Oops > | >>> | > | 164965121 74753 String > | >>> | > | 236201 Oops > | >>> | > | 197155585 74753 String > | >>> | > | 236426 Oops > | >>> | > | 271373057 74753 String > | >>> | > | 1170577 Oops > | >>> | > | 268426753 74753 String > | >>> | > | 134740 Oops > | >>> | > | 264103681 74753 String > | >>> | > | 1170577 Oops > | >>> | > | > | >>> | > | ----------- Object Statistics Summary ----------------- > | >>> | > | > | >>> | > | ----- Instances of invisible (private) classes ------ > | >>> | > | Number of instances: 1072 > | >>> | > | Total size: 15855 K Bytes > | >>> | > | Average size: 14.8 Bytes > | >>> | > | > | >>> | > | Class: 209153 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 209409 Instances: 1072 Total > | >>> | > | Size: > | >>> | > | 15855 K Bytes > | >>> | > | Class: 209665 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 209921 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 210177 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 210433 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 210689 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 210945 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 211201 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 211457 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 211713 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 211969 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 212225 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 212481 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 212737 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 212993 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 213249 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 213505 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 213761 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | > | >>> | > | > | >>> | > | ----- Instances of visible classes ----------------- > | >>> | > | Number of objects : 1633432 > | >>> | > | Total Size : 157861 K Bytes > | >>> | > | size of Object Headers : 38283 K Bytes > | >>> | > | size of Object Values : 116978 K Bytes > | >>> | > | size of Object Tags : 0 K Bytes > | >>> | > | average of Object Value: 73.3 Bytes > | >>> | > | > | >>> | > | Object Audit: Audit successfully completed; no errors were > | >>> | > | detected. > | >>> | > | --setGcConfig: set reclaimMinPages to 40 > | >>> | > | --setGcConfig: set reclaimSleepTime to 10 > | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 > | >>> | > | --postReclaimAll: restored reclaimMinPages to 40 > | >>> | > | true > | >>> | > | topaz 1> printit > | >>> | > | SystemRepository markForCollection > | >>> | > | % > | >>> | > | start MFC mark/sweep phase: 02/11/2012 12:08:56 PM UTC > | >>> | > | WARNING, unable to resolve either garMarkSweepPageBufSize > | >>> | > | or > | >>> | > | mfcGcPageBufSize, using default 320 > | >>> | > | MarkSweepArgsSType::(): buffer size= 320 pages > | >>> | > | start MFC process dead phase: 02/11/2012 12:08:59 PM UTC > | >>> | > | end MFC: 02/11/2012 12:08:59 PM UTC > | >>> | > | Successful completion of markForCollection. > | >>> | > | 1613875 live objects found. > | >>> | > | 20629 possible dead objects, occupying approximately > | >>> | > | 1856610 > | >>> | > | bytes, may be reclaimed. > | >>> | > | topaz 1> printit > | >>> | > | SystemRepository reclaimAll > | >>> | > | % > | >>> | > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 > | >>> | > | --setGcConfig: set reclaimMinPages to 1 > | >>> | > | --reclaimAll: changed reclaimMinPages from 40 to 1 > | >>> | > | --setGcConfig: set reclaimSleepTime to 1 > | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 > | >>> | > | --reclaimAll: using reclaimDeadEnabled true > | >>> | > | --reclaimAll: simpleCommit loopCount 10 > | >>> | > | an Array > | >>> | > | #1 40 > | >>> | > | #2 10 > | >>> | > | #3 0 > | >>> | > | > | >>> | > | topaz 1> printit > | >>> | > | SystemRepository objectAudit > | >>> | > | % > | >>> | > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 to 3 > | >>> | > | --setGcConfig: set reclaimMinPages to 1 > | >>> | > | --reclaimAll: changed reclaimMinPages from 1 to 1 > | >>> | > | --setGcConfig: set reclaimSleepTime to 1 > | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 > | >>> | > | --reclaimAll: using reclaimDeadEnabled true > | >>> | > | 02/11/2012 12:11:27 PM.328 UTC: Starting object table scan > | >>> | > | 02/11/2012 12:11:27 PM.921 UTC: Finished object table scan > | >>> | > | > | >>> | > | Object audit is proceeding in FullAudit mode: > | >>> | > | Scavenging completed (either single user mode or no pages > | >>> | > | to > | >>> | > | scavenge). > | >>> | > | All audit checks are enabled. > | >>> | > | > | >>> | > | Object audit as of 02/11/2012 12:11:27 PM UTC. > | >>> | > | Summary of objects whose sizes exceed 100000 Bytes or Oops: > | >>> | > | > | >>> | > | ObjectID Class ClassName > | >>> | > | LogicalSize > | >>> | > | -------------------------------------------------------------------------------------------------------------- > | >>> | > | 305743617 74753 String > | >>> | > | 134740 Oops > | >>> | > | 149534721 74753 String > | >>> | > | 164661 Oops > | >>> | > | 173784833 74753 String > | >>> | > | 163312 Oops > | >>> | > | 196368897 74753 String > | >>> | > | 164661 Oops > | >>> | > | 305774593 74753 String > | >>> | > | 134740 Oops > | >>> | > | 175519489 74753 String > | >>> | > | 376305 Oops > | >>> | > | 196571393 74753 String > | >>> | > | 379399 Oops > | >>> | > | 175494145 74753 String > | >>> | > | 201874 Oops > | >>> | > | 197005569 74753 String > | >>> | > | 202074 Oops > | >>> | > | 149996289 74753 String > | >>> | > | 236426 Oops > | >>> | > | 151722753 74753 String > | >>> | > | 379399 Oops > | >>> | > | 151723777 74753 String > | >>> | > | 202074 Oops > | >>> | > | 274619393 74753 String > | >>> | > | 1170577 Oops > | >>> | > | 265139713 74753 String > | >>> | > | 1170577 Oops > | >>> | > | 215910913 66817 Array > | >>> | > | 331214 Oops > | >>> | > | 164965121 74753 String > | >>> | > | 236201 Oops > | >>> | > | 197155585 74753 String > | >>> | > | 236426 Oops > | >>> | > | 271373057 74753 String > | >>> | > | 1170577 Oops > | >>> | > | 268426753 74753 String > | >>> | > | 134740 Oops > | >>> | > | 264103681 74753 String > | >>> | > | 1170577 Oops > | >>> | > | > | >>> | > | ----------- Object Statistics Summary ----------------- > | >>> | > | > | >>> | > | ----- Instances of invisible (private) classes ------ > | >>> | > | Number of instances: 1072 > | >>> | > | Total size: 15855 K Bytes > | >>> | > | Average size: 14.8 Bytes > | >>> | > | > | >>> | > | Class: 209153 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 209409 Instances: 1072 Total > | >>> | > | Size: > | >>> | > | 15855 K Bytes > | >>> | > | Class: 209665 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 209921 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 210177 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 210433 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 210689 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 210945 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 211201 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 211457 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 211713 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 211969 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 212225 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 212481 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 212737 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 212993 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 213249 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 213505 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | Class: 213761 Instances: 0 Total > | >>> | > | Size: > | >>> | > | 0 K Bytes > | >>> | > | > | >>> | > | > | >>> | > | ----- Instances of visible classes ----------------- > | >>> | > | Number of objects : 1612803 > | >>> | > | Total Size : 156912 K Bytes > | >>> | > | size of Object Headers : 37800 K Bytes > | >>> | > | size of Object Values : 116516 K Bytes > | >>> | > | size of Object Tags : 0 K Bytes > | >>> | > | average of Object Value: 74.0 Bytes > | >>> | > | > | >>> | > | Object Audit: Audit successfully completed; no errors were > | >>> | > | detected. > | >>> | > | --setGcConfig: set reclaimMinPages to 1 > | >>> | > | --setGcConfig: set reclaimSleepTime to 1 > | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 > | >>> | > | --postReclaimAll: restored reclaimMinPages to 1 > | >>> | > | true > | >>> | > | topaz 1> > | >>> | > | topaz 1> > | >>> | > | > | >>> | > | > | >>> | > | > If, as I suspect, you've got corruption in GsProcess > | >>> | > | > objects > | >>> | > | > they > | >>> | > | > only impact Seaside session state, and should have > | >>> | > | > disappeared > | >>> | > | > by > | >>> | > | > the time you run the object audit ... > | >>> | > | > > | >>> | > | > This problems seems to ring a bell, but it seems to me > | >>> | > | > that the > | >>> | > | > problem I am thinking of showed up in GemStone 3.0 and I > | >>> | > | > think > | >>> | > | > it > | >>> | > | > was fixed in GemStone 3.0.1... so I'm curious what > | >>> | > | > version of > | >>> | > | > GemStone you are using. > | >>> | > | > > | >>> | > | > As I think about this, I seem to recall that the problem > | >>> | > | > was > | >>> | > | > related to deeply nested block structure in a method that > | >>> | > | > was > | >>> | > | > involved in partial continuations, so I am curious if you > | >>> | > | > happen > | >>> | > | > to have some deeply nested block structures let's say > | >>> | > | > more than > | >>> | > | > 5 > | >>> | > | > or 6 levels deep in your method? In fact even in 3.0.1 I > | >>> | > | > think > | >>> | > | > that there might be an effective limit (the engineer that > | >>> | > | > worked > | >>> | > | > on this will be back on Monday for exact details), so if > | >>> | > | > you > | >>> | > | > are > | >>> | > | > running with 3.0.1, you should definitely be suspicious > | >>> | > | > of deep > | >>> | > | > nesting of blocks... > | >>> | > | > > | >>> | > | > Dale > | >>> | > | > > | >>> | > | > [1] > | >>> | > | > http://community.gemstone.com/display/GSS64/GemStoneS+64+Documentation > | >>> | > | > > | >>> | > | > ----- Original Message ----- > | >>> | > | > | From: "Lawrence Kellogg" <[hidden email]> > | >>> | > | > | To: "GemStone Seaside beta discussion" > | >>> | > | > | <[hidden email]> > | >>> | > | > | Sent: Friday, February 10, 2012 2:13:15 PM > | >>> | > | > | Subject: [GS/SS Beta] Object does not exist error - > | >>> | > | > | Worry > | >>> | > | > | about > | >>> | > | > | it? > | >>> | > | > | > | >>> | > | > | > | >>> | > | > | > | >>> | > | > | Hello, > | >>> | > | > | After a long series of calls and answers in Seaside, I > | >>> | > | > | got an > | >>> | > | > | Object > | >>> | > | > | does not exist error that brought down the fast cgi > | >>> | > | > | gateway. > | >>> | > | > | My > | >>> | > | > | production error handler was not triggered, although it > | >>> | > | > | was > | >>> | > | > | installed, as far as I could tell. Strange. My > | >>> | > | > | supervise > | >>> | > | > | fastcgi > | >>> | > | > | process also did not pick up my dead fastcgi process. > | >>> | > | > | Not a > | >>> | > | > | good > | >>> | > | > | day. > | >>> | > | > | > | >>> | > | > | Here is the walkback: > | >>> | > | > | > | >>> | > | > | > | >>> | > | > | > | >>> | > | > | USER IDS: REAL=seasideuser (500) EFFECTIVE=seasideuser > | >>> | > | > | (500) > | >>> | > | > | | > | >>> | > | > | |_____________________________________________________________________________| > | >>> | > | > | topaz> topaz> topaz> topaz> topaz> topaz> topaz> > | >>> | > | > | [Info]: LNK > | >>> | > | > | client/gem GCI levels = 844/844 > | >>> | > | > | [Info]: User ID: DataCurator > | >>> | > | > | [Info]: Repository: seaside > | >>> | > | > | [Info]: Session ID: 5 > | >>> | > | > | [Info]: GCI Client Host: <Linked> > | >>> | > | > | [Info]: Page server PID: -1 > | >>> | > | > | [Info]: Login Time: 02/10/2012 09:27:56 PM.572 UTC > | >>> | > | > | [02/10/2012 09:27:56 PM.592 UTC] gci login: currSession > | >>> | > | > | 1 rpc > | >>> | > | > | gem > | >>> | > | > | processId -1 > | >>> | > | > | successful login > | >>> | > | > | topaz 1> topaz 1> [20 sz:0 cls: 76289 UndefinedObject] > | >>> | > | > | nil > | >>> | > | > | topaz 1> topaz 1> [76033 sz:19 cls: 801793 System > | >>> | > | > | class] > | >>> | > | > | System > | >>> | > | > | class > | >>> | > | > | superClass [72193 sz:19 cls: 206081 Object class] > | >>> | > | > | Object > | >>> | > | > | class > | >>> | > | > | format [258 sz:0 cls: 74241 SmallInteger] 32 > | >>> | > | > | instVars [2 sz:0 cls: 74241 SmallInteger] 0 > | >>> | > | > | instVarNames [422145 sz:0 cls: 66817 Array] an Array > | >>> | > | > | constraints [421889 sz:0 cls: 66817 Array] an Array > | >>> | > | > | classVars [421633 sz:26 cls: 111361 SymbolDictionary] a > | >>> | > | > | SymbolDictionary > | >>> | > | > | methodDict [711937 sz:112 cls: 99073 > | >>> | > | > | GsMethodDictionary] a > | >>> | > | > | GsMethodDictionary > | >>> | > | > | poolDictionaries [421377 sz:0 cls: 66817 Array] an > | >>> | > | > | Array > | >>> | > | > | categories [421121 sz:28 cls: 99073 GsMethodDictionary] > | >>> | > | > | a > | >>> | > | > | GsMethodDictionary > | >>> | > | > | secondarySuperclasses [20 sz:0 cls: 76289 > | >>> | > | > | UndefinedObject] > | >>> | > | > | nil > | >>> | > | > | name [801537 sz:6 cls: 110849 Symbol] System > | >>> | > | > | classHistory [420865 sz:3 cls: 82689 ClassHistory] a > | >>> | > | > | ClassHistory > | >>> | > | > | description [13498369 sz:10 cls: 95233 > | >>> | > | > | GsClassDocumentation] > | >>> | > | > | a > | >>> | > | > | GsClassDocumentation > | >>> | > | > | migrationDestination [20 sz:0 cls: 76289 > | >>> | > | > | UndefinedObject] nil > | >>> | > | > | timeStamp [14510593 sz:4 cls: 118785 DateTime] a > | >>> | > | > | DateTime > | >>> | > | > | userId [14508801 sz:10 cls: 74753 String] SystemUser > | >>> | > | > | extraDict [14524929 sz:14 cls: 111361 SymbolDictionary] > | >>> | > | > | a > | >>> | > | > | SymbolDictionary > | >>> | > | > | classCategory [20 sz:0 cls: 76289 UndefinedObject] nil > | >>> | > | > | subclasses [20 sz:0 cls: 76289 UndefinedObject] nil > | >>> | > | > | > | >>> | > | > | > | >>> | > | > | topaz 1> topaz 1> WAFastCGIAdaptor Server started on > | >>> | > | > | port > | >>> | > | > | 9001 > | >>> | > | > | ----------------------------------------------------- > | >>> | > | > | GemStone: Error Nonfatal > | >>> | > | > | The object with object ID 81065894683350528 does not > | >>> | > | > | exist. > | >>> | > | > | Error Category: 231169 [GemStone] Number: 2101 Arg > | >>> | > | > | Count: 1 > | >>> | > | > | Context : > | >>> | > | > | 526648321 > | >>> | > | > | Arg 1: [648527157466804226 sz:0 cls: 74241 > | >>> | > | > | SmallInteger] > | >>> | > | > | 81065894683350528 > | >>> | > | > | > | >>> | > | > | > | >>> | > | > | Now executing the following command saved from "iferr > | >>> | > | > | 1": > | >>> | > | > | where > | >>> | > | > | ==> 1 GsProcess class >> > | >>> | > | > | installPartialContinuation:atLevel:value: @2 > | >>> | > | > | line 1 [GsMethod 4487425] > | >>> | > | > | 2 WAPartialContinuation >> value: @13 line 11 [GsMethod > | >>> | > | > | 212791041] > | >>> | > | > | 3 WAPartialContinuation >> valueWithPossibleArguments: > | >>> | > | > | @2 > | >>> | > | > | line 2 > | >>> | > | > | [GsMethod 218326273] > | >>> | > | > | 4 ComplexBlock in WAComponent >> > | >>> | > | > | show:onAnswer:delegation: @7 > | >>> | > | > | line 7 > | >>> | > | > | [GsMethod 194749185] > | >>> | > | > | 5 ComplexBlock in ExecutableBlock >> > | >>> | > | > | valueWithPossibleArguments: > | >>> | > | > | @12 > | >>> | > | > | line 8 [GsMethod 116163585] > | >>> | > | > | 6 WAAnswerHandler >> handleAnswer:continueWith: @3 line > | >>> | > | > | 2 > | >>> | > | > | [GsMethod > | >>> | > | > | 194735873] > | >>> | > | > | 7 WADecoration >> handleAnswer: @6 line 3 [GsMethod > | >>> | > | > | 194731009] > | >>> | > | > | 8 WAComponent >> answer: @2 line 5 [GsMethod 194751745] > | >>> | > | > | > | >>> | > | > | > | >>> | > | > | > | >>> | > | > | > | >>> | > | > | I found this on the net: > | >>> | > | > | > | >>> | > | > | > | >>> | > | > | > | >>> | > | > | Object does not exist errors > | >>> | > | > | GBS applications may encounter object does not exist > | >>> | > | > | errors > | >>> | > | > | in > | >>> | > | > | non-persistent > | >>> | > | > | objects. This is due to a problem with the fix for bug > | >>> | > | > | #40703 > | >>> | > | > | in > | >>> | > | > | version > | >>> | > | > | 2.4.4, which resulted in non-persistent objects not > | >>> | > | > | properly > | >>> | > | > | protected > | >>> | > | > | from garbage collection. > | >>> | > | > | > | >>> | > | > | Workaround: > | >>> | > | > | > | >>> | > | > | none/not applicable > | >>> | > | > | from: > | >>> | > | > | > | >>> | > | > | > | >>> | > | > | > | >>> | > | > | > | >>> | > | > | > | >>> | > | > | > | >>> | > | > | http://www.gemstone.com/docs/GemStoneS/bugnotes/bugnotes/40948.html > | >>> | > | > | > | >>> | > | > | > | >>> | > | > | > | >>> | > | > | So, should I worry about this? I implemented code that > | >>> | > | > | allowed a > | >>> | > | > | user > | >>> | > | > | to call an editor, switch out on the navigation menu, > | >>> | > | > | call > | >>> | > | > | another > | >>> | > | > | editor, > | >>> | > | > | switch out. With each switch, I send answer: false to > | >>> | > | > | the > | >>> | > | > | open > | >>> | > | > | editor > | >>> | > | > | to close it so that it is not hanging around open. My > | >>> | > | > | idea > | >>> | > | > | was to hide the section navigation when the editor came > | >>> | > | > | up > | >>> | > | > | but > | >>> | > | > | I'm > | >>> | > | > | getting push back from my user. > | >>> | > | > | > | >>> | > | > | > | >>> | > | > | What do you think? > | >>> | > | > | > | >>> | > | > | > | >>> | > | > | Larry > | >>> | > | > | > | >>> | > | > | > | >>> | > | > | > | >>> | > | > | > | >>> | > | > | >>> | > | > | >>> | > | >>> | > | >> > | > > | > | |
Larry,
The C stack dump will tell us where in the vm the error is occurring. If you are doing this in your Staging environment then you can attach the c process with gdb and get the stack dump ... with a live gdb we may want additional info ... the stack dump will be useful to start. With the smalltalk stack we'll get to look at the objects around the corrupt object and perhaps learn something ... Right now, I am curious whether the corrupt object is a WAValue or a WADelegation... Dale ----- Original Message ----- | From: "Lawrence Kellogg" <[hidden email]> | To: "GemStone Seaside beta discussion" <[hidden email]> | Sent: Tuesday, February 28, 2012 12:19:33 PM | Subject: Re: [GS/SS Beta] Object does not exist error - Worry about it? | | | On Feb 28, 2012, at 2:41 PM, Dale Henrichs wrote: | | > Larry, | > | > Okay, here's the stack that covers the range of the partial | > continuation: | > | > ==> 1 WAComponent >> decoration @3 line 1 [GsMethod 194749441] | > 2 WAComponent >> addDecoration: @2 line 6 [GsMethod 194748417] | > 3 WAComponent >> show:onAnswerelegation: @10 line 8 [GsMethod | > 194749185] | > 4 WAComponent >> show:onAnswer: @5 line 5 [GsMethod 499699713] | > 5 WAComponent >> call:onAnswer: @5 line 8 [GsMethod 194750977] | > 6 ComplexBlock in WAComponent >> call: @3 line 4 [GsMethod | > 191317249] | > 7 ComplexBlock in WAComponent >> wait: @3 line 3 [GsMethod | > 191268353] | > 8 GRGemStonePlatform >> seasideSuspendFlowDo: @9 line 5 [GsMethod | > 499655937] | > 9 WAComponent >> wait: @4 line 3 [GsMethod 191268353] | > 10 WAComponent >> call: @4 line 4 [GsMethod 191317249] | > 11 PracticeJournalLoginTask >> go @14 line 9 [GsMethod 371393537] | > 12 WATask >> execute @1 line 7 [GsMethod 195261697] | > 13 ComplexBlock in WATaskVisitor >> visitTask: @6 line 4 | > [GsMethod 194755841] | > | > WAComponent >> decoration is the source of the error and it is | > sending #contents to a 'decoration' of the component ... it's not | > quite clear whether the decoration iv is the corrupt object or the | > result of the #contents message send ... | > | > To get a better picture of what's happening we need a C stack when | > the error occurs. If you set | > | > GEM_HALT_ON_ERROR = 2101; | > | > in your system.conf file, then when the obj does not exist error | > occurs the gem will halt, dump a c stack, wait 60 seconds and then | > shutdown ... This is pretty intrusive, but it will get us a couple | > steps closer to understanding what's going on. | > | > If you (or Johan) can duplicate the error under controlled | > conditions then you would fire up a topaz manually to service | > requests and when the halt on error hits, you'll be dropped to the | > topaz prompt where you can view the smalltalk stack and inspect | > the objects involved … | > | | Thanks, Dale. I think I can make it crash in my Staging environment | by going through many call/answers invocations. I will try. | Unfortunately, I don't think I know enough about what Seaside is | doing at that level to fix the problem. I see that the | WADecoration is a WAValueHolder but that's about the end of my | knowledge. | | I guess there is no way of knowing from this stack dump what kind | of WADecoration we're talking about. | | Regards, | | Larry | | | > Dale | > | > ----- Original Message ----- | > | From: "Lawrence Kellogg" <[hidden email]> | > | To: "GemStone Seaside beta discussion" | > | <[hidden email]> | > | Sent: Monday, February 27, 2012 7:01:58 PM | > | Subject: Re: [GS/SS Beta] Object does not exist error - Worry | > | about it? | > | | > | | > | On Feb 21, 2012, at 2:40 PM, Johan Brichau wrote: | > | | > | > fyi, I have been observing occurrences of this bug as well, | > | > with | > | > exactly the same point of failure in the stack. | > | > | > | > No repository problems or audit warnings. | > | > | > | > Funnily, I've never seen this in any stone running Yesplan. The | > | > stone where we have this problem is also running a Seaside | > | > application but the only discriminating factor I can observe is | > | > that this application uses call/answer a lot more (while we | > | > almost | > | > never use that in Yesplan). It probably does not help a lot | > | > finding the error... but I will look up the stack traces and | > | > post | > | > them here if they might contain some clues. | > | | > | Hello Johan, | > | Thanks for looking into this problem. I use call/answer quite a | > | bit. | > | | > | Dale, did you see the stack dump I posted? | > | | > | Larry | > | | > | | > | > | > | > On 21 Feb 2012, at 20:13, Lawrence Kellogg wrote: | > | > | > | >> | > | >> On Feb 21, 2012, at 1:05 PM, Dale Henrichs wrote: | > | >> | > | >>> Larry, | > | >>> | > | >>> We should try to dig into this one some more. | > | >>> | > | >>> To start with what version of Gemstone are you using? If you | > | >>> are | > | >>> using 2.4.4.1, then I'm not aware of an issue that would | > | >>> warrant | > | >>> an upgrade to 2.4.5, but I will check around a bit...As I | > | >>> said | > | >>> before, the only place that I've seen "Obj does not exist | > | >>> errors" is in 3.0 and those bugs were fixed in 3.0.1. | > | >>> | > | >> | > | >> Dale, | > | >> Thanks for the help. I would like to get to the bottom of this | > | >> error. This crash takes down Fastcgi so it kills the service. | > | >> | > | >> According to the file in the directory, I'm on 2.4.[ component | > | >> notNil ] | > | >> whileTrue: [ | > | >> self call: component. | > | >> component := component nextComponentToBeDisplayed ] ]4.1 | > | >> | > | >> GemStone64Bit2.4.4.1-x86_64.Linux | > | >> | > | >> | > | >> | > | >> | > | >>> This time we are getting the error while creating the | > | >>> continuation ... the last episode occurred when you were | > | >>> trying | > | >>> to execute from a continuation. | > | >>> | > | >>> Could you share the source code for PracticeJournalLoginTask | > | >>> >> | > | >>> go? That's the first non-Seaside method on the stack below | > | >>> the | > | >>> error, so it's as good a place as any to start … | > | >>> | > | >> | > | >> Here is the complete source code for the go method: ;-) | > | >> | > | >> go | > | >> | user component | | > | >> self call: self userLoginView. | > | >> (self userLoginView user) notNil | > | >> ifTrue: [ | > | >> component := self firstComponentToDisplayForUser: self | > | >> userLoginView user. | > | >> [ component notNil ] | > | >> whileTrue: [ | > | >> self call: component. | > | >> component := component nextComponentToBeDisplayed ] ] | > | >> | > | >> A component is called, and when another component is selected | > | >> the | > | >> current component is sent answer: false and | > | >> the new component to call is returned from that | > | >> nextComponentToBeDisplayed method. | > | >> | > | >> I used to have an implementation that would give me a huge | > | >> recursive nesting of continuations, as shown by | > | >> halo, but this shows everything on just a few levels, although | > | >> I | > | >> have to say that the walkback looks deep and gnarly. | > | >> | > | >> | > | >>> It would be useful to see the entire stack as well. The | > | >>> partial | > | >>> continuation copies the stack back to a marker method and it | > | >>> would be useful to examine the source for the methods that | > | >>> are | > | >>> on the stck for clues as to what might be going on... | > | >>> | > | >>> Dale | > | >> | > | >> | > | >> Here is the complete walk back: | > | >> | > | >> topaz 1> topaz 1> WAFastCGIAdaptor Server started on port 9001 | > | >> ----------------------------------------------------- | > | >> GemStone: Error Nonfatal | > | >> The object with object ID 76562293713797632 does not exist. | > | >> Error Category: 231169 [GemStone] Number: 2101 Arg Count: 1 | > | >> Context : 412915713 | > | >> Arg 1: [612498349710381058 sz:0 cls: 74241 SmallInteger] | > | >> 76562293713797632 | > | >> | > | >> Now executing the following command saved from "iferr 1": | > | >> where | > | >> ==> 1 WAComponent >> decoration @3 line 1 [GsMethod | > | >> 194749441] | > | >> 2 WAComponent >> addDecoration: @2 line 6 [GsMethod | > | >> 194748417] | > | >> 3 WAComponent >> show:onAnswer:delegation: @10 line 8 | > | >> [GsMethod | > | >> 194749185] | > | >> 4 WAComponent >> show:onAnswer: @5 line 5 [GsMethod | > | >> 499699713] | > | >> 5 WAComponent >> call:onAnswer: @5 line 8 [GsMethod | > | >> 194750977] | > | >> 6 ComplexBlock in WAComponent >> call: @3 line 4 [GsMethod | > | >> 191317249] | > | >> 7 ComplexBlock in WAComponent >> wait: @3 line 3 [GsMethod | > | >> 191268353] | > | >> 8 GRGemStonePlatform >> seasideSuspendFlowDo: @9 line 5 | > | >> [GsMethod 499655937] | > | >> 9 WAComponent >> wait: @4 line 3 [GsMethod 191268353] | > | >> 10 WAComponent >> call: @4 line 4 [GsMethod 191317249] | > | >> 11 PracticeJournalLoginTask >> go @14 line 9 [GsMethod | > | >> 371393537] | > | >> 12 WATask >> execute @1 line 7 [GsMethod 195261697] | > | >> 13 ComplexBlock in WATaskVisitor >> visitTask: @6 line 4 | > | >> [GsMethod 194755841] | > | >> 14 WACallback >> evaluateWithFieldValues: @5 line 2 | > | >> [GsMethod | > | >> 177495553] | > | >> 15 ComplexBlock in WACallbackRegistry >> handle: @16 line 10 | > | >> [GsMethod 177951489] | > | >> 16 Collection >> do: @5 line 10 [GsMethod 1547777] | > | >> 17 WACallbackRegistry >> handle: @17 line 9 [GsMethod | > | >> 177951489] | > | >> 18 ComplexBlock in WAActionPhaseContinuation >> runCallbacks | > | >> @7 | > | >> line 4 [GsMethod 202613505] | > | >> 19 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | > | >> 10065409] | > | >> 20 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | > | >> 10062081] | > | >> 21 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | > | >> [GsMethod | > | >> 9005057] | > | >> 22 WARenderLoopContinuation >> withNotificationHandlerDo: @3 | > | >> line | > | >> 2 [GsMethod 202608385] | > | >> 23 ComplexVCBlock in WAActionPhaseContinuation >> runCallbacks | > | >> @8 | > | >> line 3 [GsMethod 202613505] | > | >> 24 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | > | >> [GsMethod 2304001] | > | >> 25 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11 | > | >> [GsMethod 2304001] | > | >> 26 WAActionPhaseContinuation >> runCallbacks @18 line 6 | > | >> [GsMethod 202613505] | > | >> 27 WAActionPhaseContinuation >> handleRequest @1 line 2 | > | >> [GsMethod 202614017] | > | >> 28 ComplexBlock in WASessionContinuation >> basicValue @3 line | > | >> 2 | > | >> [GsMethod 202625537] | > | >> 29 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | > | >> 10065409] | > | >> 30 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | > | >> 10062081] | > | >> 31 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | > | >> [GsMethod | > | >> 9005057] | > | >> 32 WASessionContinuation >> withUnregisteredHandlerDo: @7 line | > | >> 3 | > | >> [GsMethod 202627073] | > | >> 33 WASessionContinuation >> basicValue @4 line 2 [GsMethod | > | >> 202625537] | > | >> 34 WASessionContinuation >> value @3 line 5 [GsMethod | > | >> 202623745] | > | >> 35 WASession >> handleFiltered: @14 line 10 [GsMethod | > | >> 202205441] | > | >> 36 WARequestFilter >> handleFiltered: @2 line 4 [GsMethod | > | >> 176192513] | > | >> 37 ComplexBlock in WADeprecatedToolFilter >> handleFiltered: | > | >> @3 | > | >> line 2 [GsMethod 203213313] | > | >> 38 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | > | >> 10065409] | > | >> 39 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | > | >> 10062081] | > | >> 40 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | > | >> [GsMethod | > | >> 9005057] | > | >> 41 WADeprecatedToolFilter >> handleFiltered: @6 line 3 | > | >> [GsMethod | > | >> 203213313] | > | >> 42 WARequestFilter >> handleFiltered: @2 line 4 [GsMethod | > | >> 176192513] | > | >> 43 ComplexBlock in WATimingToolFilter >> handleFiltered: @4 | > | >> line 3 | > | >> [GsMethod 203208449] | > | >> 44 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | > | >> [GsMethod 2304001] | > | >> 45 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 | > | >> [GsMethod 2304001] | > | >> 46 WATimingToolFilter >> handleFiltered: @8 line 4 [GsMethod | > | >> 203208449] | > | >> 47 ComplexBlock in WARequestHandler >> handle: @4 line 4 | > | >> [GsMethod 178568961] | > | >> 48 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | > | >> 10065409] | > | >> 49 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | > | >> 10062081] | > | >> 50 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | > | >> [GsMethod | > | >> 9005057] | > | >> 51 WADynamicVariable class >> use:during: @4 line 4 | > | >> [GsMethod | > | >> 177805825] | > | >> 52 ComplexBlock in WARequestContext >> push:during: @4 line 5 | > | >> [GsMethod 176176129] | > | >> 53 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | > | >> [GsMethod 2304001] | > | >> 54 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 | > | >> [GsMethod 2304001] | > | >> 55 WARequestContext >> push:during: @7 line 6 [GsMethod | > | >> 176176129] | > | >> 56 WARequestHandler >> handle: @5 line 4 [GsMethod | > | >> 178568961] | > | >> 57 WASession >> handle: @10 line 11 [GsMethod 202210561] | > | >> 58 WARegistry >> dispatch:to: @1 line 5 [GsMethod 176153857] | > | >> 59 WARegistry >> handleKeyed:with: @2 line 5 [GsMethod | > | >> 176155137] | > | >> 60 WARegistry >> handleFiltered: @33 line 19 [GsMethod | > | >> 176146945] | > | >> 61 WAApplication >> handleFiltered: @9 line 8 [GsMethod | > | >> 202644225] | > | >> 62 WARequestFilter >> handleFiltered: @2 line 4 [GsMethod | > | >> 176192513] | > | >> 63 ComplexBlock in WAExceptionFilter >> handleFiltered: @6 | > | >> line 7 | > | >> [GsMethod 499529473] | > | >> 64 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | > | >> 10065409] | > | >> 65 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | > | >> 10062081] | > | >> 66 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | > | >> [GsMethod | > | >> 9005057] | > | >> 67 WADynamicVariable class >> use:during: @4 line 4 | > | >> [GsMethod | > | >> 177805825] | > | >> 68 ComplexVCBlock in WAExceptionFilter >> handleFiltered: @7 | > | >> line | > | >> 6 [GsMethod 499529473] | > | >> 69 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | > | >> 10065409] | > | >> 70 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | > | >> 10062081] | > | >> 71 ComplexVCBlock in ExecutableBlock >> on:do: @2 line 8 | > | >> [GsMethod 9005057] | > | >> 72 WAExceptionHandler >> handleExceptionsDuring: @8 line 3 | > | >> [GsMethod 177803521] | > | >> 73 WAExceptionFilter >> handleFiltered: @8 line 4 [GsMethod | > | >> 499529473] | > | >> 74 ComplexBlock in WARequestHandler >> handle: @4 line 4 | > | >> [GsMethod 178568961] | > | >> 75 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | > | >> 10065409] | > | >> 76 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | > | >> 10062081] | > | >> 77 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | > | >> [GsMethod | > | >> 9005057] | > | >> 78 WADynamicVariable class >> use:during: @4 line 4 | > | >> [GsMethod | > | >> 177805825] | > | >> 79 ComplexBlock in WARequestContext >> push:during: @4 line 5 | > | >> [GsMethod 176176129] | > | >> 80 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | > | >> [GsMethod 2304001] | > | >> 81 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 | > | >> [GsMethod 2304001] | > | >> 82 WARequestContext >> push:during: @7 line 6 [GsMethod | > | >> 176176129] | > | >> 83 WARequestHandler >> handle: @5 line 4 [GsMethod | > | >> 178568961] | > | >> 84 WADispatcher >> handleFiltered:named: @7 line 5 [GsMethod | > | >> 179090945] | > | >> 85 WADispatcher >> handleFiltered: @7 line 6 [GsMethod | > | >> 179087617] | > | >> 86 ComplexBlock in WARequestHandler >> handle: @4 line 4 | > | >> [GsMethod 178568961] | > | >> 87 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | > | >> 10065409] | > | >> 88 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | > | >> 10062081] | > | >> 89 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | > | >> [GsMethod | > | >> 9005057] | > | >> 90 WADynamicVariable class >> use:during: @4 line 4 | > | >> [GsMethod | > | >> 177805825] | > | >> 91 ComplexBlock in WARequestContext >> push:during: @4 line 5 | > | >> [GsMethod 176176129] | > | >> 92 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | > | >> [GsMethod 2304001] | > | >> 93 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 | > | >> [GsMethod 2304001] | > | >> 94 WARequestContext >> push:during: @7 line 6 [GsMethod | > | >> 176176129] | > | >> 95 WARequestHandler >> handle: @5 line 4 [GsMethod | > | >> 178568961] | > | >> 96 ComplexBlock in WAServerAdaptor >> handleRequest: @4 line 4 | > | >> [GsMethod 176816641] | > | >> 97 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | > | >> 10065409] | > | >> 98 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | > | >> 10062081] | > | >> 99 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | > | >> [GsMethod | > | >> 9005057] | > | >> 100 WAServerAdaptor >> handleRequest: @6 line 5 [GsMethod | > | >> 176816641] | > | >> 101 WAServerAdaptor >> handle: @1 line 4 [GsMethod | > | >> 176817921] | > | >> 102 ComplexBlock in WAServerAdaptor >> process: @5 line 6 | > | >> [GsMethod 176817153] | > | >> 103 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | > | >> [GsMethod 2304001] | > | >> 104 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 | > | >> [GsMethod 2304001] | > | >> 105 WAServerAdaptor >> process: @9 line 7 [GsMethod | > | >> 176817153] | > | >> 106 ComplexBlock in WAFastCGIAdaptor >> process: @3 line 6 | > | >> [GsMethod 212442369] | > | >> 107 ComplexBlock in GRGemStonePlatform >> | > | >> seasideProcessRequestWithRetry:resultBlock: @12 line 11 | > | >> [GsMethod 175179265] | > | >> 108 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | > | >> 10065409] | > | >> 109 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | > | >> 10062081] | > | >> 110 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | > | >> [GsMethod 9005057] | > | >> 111 ComplexVCBlock in GRGemStonePlatform >> | > | >> seasideProcessRequestWithRetry:resultBlock: @18 line 12 | > | >> [GsMethod 175179265] | > | >> 112 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | > | >> [GsMethod 2304001] | > | >> 113 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11 | > | >> [GsMethod 2304001] | > | >> 114 TransientRecursionLock >> critical: @15 line 8 [GsMethod | > | >> 21159937] | > | >> 115 GRGemStonePlatform >> | > | >> seasideProcessRequestWithRetry:resultBlock: @39 line 5 | > | >> [GsMethod 175179265] | > | >> 116 ComplexBlock in GRGemStonePlatform >> | > | >> seasideProcessRequest:adaptor:resultBlock: @7 line 9 | > | >> [GsMethod | > | >> 175179521] | > | >> 117 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | > | >> 10065409] | > | >> 118 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | > | >> 10062081] | > | >> 119 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | > | >> [GsMethod 9005057] | > | >> 120 GRGemStonePlatform >> | > | >> seasideProcessRequest:adaptor:resultBlock: @32 line 17 | > | >> [GsMethod 175179521] | > | >> 121 WAFastCGIAdaptor >> process: @4 line 4 [GsMethod | > | >> 212442369] | > | >> 122 ComplexBlock in WAFastCGIAdaptor >> answerResponderRole: | > | >> @3 | > | >> line 4 [GsMethod 212444161] | > | >> 123 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | > | >> 10065409] | > | >> 124 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | > | >> 10062081] | > | >> 125 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | > | >> [GsMethod 9005057] | > | >> 126 WAFastCGIAdaptor >> answerResponderRole: @9 line 5 | > | >> [GsMethod | > | >> 212444161] | > | >> 127 FSResponderRole >> answer @2 line 4 [GsMethod 218695937] | > | >> 128 FSRole >> handleConnection @3 line 5 [GsMethod | > | >> 218705409] | > | >> 129 FSConnection >> unsafeServe @4 line 8 [GsMethod | > | >> 219646465] | > | >> 130 ComplexBlock in FSConnection >> safeServe @5 line 8 | > | >> [GsMethod 499288833] | > | >> 131 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | > | >> 10065409] | > | >> 132 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | > | >> 10062081] | > | >> 133 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | > | >> [GsMethod 9005057] | > | >> 134 ComplexVCBlock in FSConnection >> safeServe @8 line 9 | > | >> [GsMethod 499288833] | > | >> 135 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | > | >> 10065409] | > | >> 136 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | > | >> 10062081] | > | >> 137 ComplexVCBlock in ExecutableBlock >> on:do: @2 line 8 | > | >> [GsMethod 9005057] | > | >> 138 ComplexVCBlock in FSConnection >> safeServe @11 line 12 | > | >> [GsMethod 499288833] | > | >> 139 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | > | >> [GsMethod 2304001] | > | >> 140 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11 | > | >> [GsMethod 2304001] | > | >> 141 FSConnection >> safeServe @14 line 15 [GsMethod | > | >> 499288833] | > | >> 142 FSConnection >> serve @1 line 4 [GsMethod 219654145] | > | >> 143 ComplexBlock in FSSocketServer >> listen: @9 line 15 | > | >> [GsMethod 219292673] | > | >> 144 GsProcess >> _startPart2 @15 line 17 [GsMethod 4501249] | > | >> 145 GsProcess >> _start @1 line 9 [GsMethod 4501761] | > | >> [GsProcess 412915713] | > | >> topaz 1> [268 sz:0 cls: 68097 Boolean] true | > | >> topaz 1> | > | >> HostCallDebugger: invoked at: Mon Feb 20 16:38:18 UTC 2012 | > | >> | > | >> UTL_GUARANTEE failed, File | > | >> /export/toronto3/users/buildgss/244x-1/src/omverify.c line 28 | > | >> | > | >> Begin attempt to print C-level stack at: Mon Feb 20 16:38:18 | > | >> UTC | > | >> 2012 | > | >> | > | >> | > | >> End of C-level stack: | > | >> | > | >> | > | >> hostcalldebugger invoked in process 6550, at 02/20/2012 | > | >> 04:38:18 | > | >> PM.681 UTC | > | >> notifying stone of fatal error | > | >> | > | >> [Info]: Logging out at 02/20/2012 04:38:18 PM UTC | > | >> | > | >> | > | >> | > | >>> | > | >>> ----- Original Message ----- | > | >>> | From: "Lawrence Kellogg" <[hidden email]> | > | >>> | To: "GemStone Seaside beta discussion" | > | >>> | <[hidden email]> | > | >>> | Sent: Monday, February 20, 2012 8:48:22 AM | > | >>> | Subject: Re: [GS/SS Beta] Object does not exist error - | > | >>> | Worry | > | >>> | about it? | > | >>> | | > | >>> | Hello Dale, | > | >>> | Well, my system has been up for days, running with no | > | >>> | problems, not | > | >>> | that it has been getting a lot of traffic, but still, no | > | >>> | crashes. | > | >>> | Today, I hit the Object does not exist error again. I | > | >>> | guess I | > | >>> | can | > | >>> | do another object audit but, other than that, I'm not | > | >>> | sure | > | >>> | how to | > | >>> | proceed. Do you think an upgrade to 2.4.5 will help me? | > | >>> | | > | >>> | Here is the walkback: | > | >>> | | > | >>> | topaz 1> topaz 1> WAFastCGIAdaptor Server started on port | > | >>> | 9001 | > | >>> | ----------------------------------------------------- | > | >>> | GemStone: Error Nonfatal | > | >>> | The object with object ID 76562293713797632 does not exist. | > | >>> | Error Category: 231169 [GemStone] Number: 2101 Arg Count: 1 | > | >>> | Context : | > | >>> | 412915713 | > | >>> | Arg 1: [612498349710381058 sz:0 cls: 74241 SmallInteger] | > | >>> | 76562293713797632 | > | >>> | | > | >>> | Now executing the following command saved from "iferr 1": | > | >>> | where | > | >>> | ==> 1 WAComponent >> decoration @3 line 1 [GsMethod | > | >>> | 194749441] | > | >>> | 2 WAComponent >> addDecoration: @2 line 6 [GsMethod | > | >>> | 194748417] | > | >>> | 3 WAComponent >> show:onAnswer:delegation: @10 line 8 | > | >>> | [GsMethod | > | >>> | 194749185] | > | >>> | 4 WAComponent >> show:onAnswer: @5 line 5 [GsMethod | > | >>> | 499699713] | > | >>> | 5 WAComponent >> call:onAnswer: @5 line 8 [GsMethod | > | >>> | 194750977] | > | >>> | 6 ComplexBlock in WAComponent >> call: @3 line 4 | > | >>> | [GsMethod | > | >>> | 191317249] | > | >>> | 7 ComplexBlock in WAComponent >> wait: @3 line 3 | > | >>> | [GsMethod | > | >>> | 191268353] | > | >>> | 8 GRGemStonePlatform >> seasideSuspendFlowDo: @9 line 5 | > | >>> | [GsMethod | > | >>> | 499655937] | > | >>> | 9 WAComponent >> wait: @4 line 3 [GsMethod 191268353] | > | >>> | 10 WAComponent >> call: @4 line 4 [GsMethod 191317249] | > | >>> | 11 PracticeJournalLoginTask >> go @14 line 9 [GsMethod | > | >>> | 371393537] | > | >>> | | > | >>> | | > | >>> | Larry | > | >>> | | > | >>> | On Feb 11, 2012, at 2:34 PM, Dale Henrichs wrote: | > | >>> | | > | >>> | > Larry, | > | >>> | > | > | >>> | > Yes, everything looks clean, I'm a little bit surprised | > | >>> | > that | > | >>> | > you | > | >>> | > didn't find the original error in you first audit, but | > | >>> | > the | > | >>> | > implication is that the "corrupt object" never got | > | >>> | > persisted | > | >>> | > ... | > | >>> | > indicating some other type of corruption ... | > | >>> | > | > | >>> | > A clean object audit means that your data base has no | > | >>> | > corruption so | > | >>> | > you're good to go ... I'll talk to some guys on Monday | > | >>> | > and | > | >>> | > see if | > | >>> | > they have some ideas as to what might have | > | >>> | > happened...there's | > | >>> | > a | > | >>> | > bug in there somewhere, but for now it looks like it is | > | >>> | > isolated | > | >>> | > to the local state in a gem ... | > | >>> | > | > | >>> | > Dale | > | >>> | > | > | >>> | > ----- Original Message ----- | > | >>> | > | From: "Lawrence Kellogg" <[hidden email]> | > | >>> | > | To: "GemStone Seaside beta discussion" | > | >>> | > | <[hidden email]> | > | >>> | > | Sent: Saturday, February 11, 2012 4:18:06 AM | > | >>> | > | Subject: Re: [GS/SS Beta] Object does not exist error - | > | >>> | > | Worry | > | >>> | > | about it? | > | >>> | > | | > | >>> | > | | > | >>> | > | On Feb 10, 2012, at 7:04 PM, Dale Henrichs wrote: | > | >>> | > | | > | >>> | > | > Larry, | > | >>> | > | > | > | >>> | > | > Object does not exist errors are not good things ... | > | >>> | > | > and | > | >>> | > | > the | > | >>> | > | > gem | > | >>> | > | > coming down in this case is probably a good thing ... | > | >>> | > | > The | > | >>> | > | > fact | > | >>> | > | > that the problem is showing up in a GsProcess means | > | >>> | > | > that | > | >>> | > | > the | > | >>> | > | > Seaside session data structures are corrupted but not | > | >>> | > | > your | > | >>> | > | > model | > | >>> | > | > data ... | > | >>> | > | > | > | >>> | > | > You can check for corruption in your data base by | > | >>> | > | > running | > | >>> | > | > an | > | >>> | > | > object | > | >>> | > | > audit (see section 8.2 of the System Administration | > | >>> | > | > Guide[1]). | > | >>> | > | > If | > | >>> | > | > you follow these steps you own't need to run the | > | >>> | > | > object | > | >>> | > | > audit | > | >>> | > | > as | > | >>> | > | > single user (see the docs): | > | >>> | > | > | > | >>> | > | > - expire sessions | > | >>> | > | > - mfc | > | >>> | > | > - reclaimAll | > | >>> | > | > - object audit | > | >>> | > | > | > | >>> | > | | > | >>> | > | Hello Dale, | > | >>> | > | Ok, I ran: | > | >>> | > | | > | >>> | > | System stopUserSessions | > | >>> | > | SystemRepository objectAudit | > | >>> | > | SystemRepository markForCollection | > | >>> | > | SystemRepository reclaimAll | > | >>> | > | SystemRepository objectAudit | > | >>> | > | | > | >>> | > | I don't see any errors. Here is my log. What do you | > | >>> | > | make of | > | >>> | > | it? | > | >>> | > | | > | >>> | > | Larry | > | >>> | > | | > | >>> | > | | > | >>> | > | [Info]: Login Time: 02/11/2012 12:06:22 PM.972 UTC | > | >>> | > | [02/11/2012 12:06:23 PM.001 UTC] gci login: currSession | > | >>> | > | 1 | > | >>> | > | rpc gem | > | >>> | > | processId -1 | > | >>> | > | successful login | > | >>> | > | topaz 1> printit | > | >>> | > | System hasMissingGcGems | > | >>> | > | % | > | >>> | > | false | > | >>> | > | topaz 1> printit | > | >>> | > | System stopUserSessions | > | >>> | > | % | > | >>> | > | System class | > | >>> | > | superClass Object class | > | >>> | > | format 32 | > | >>> | > | instVars 0 | > | >>> | > | instVarNames an Array | > | >>> | > | constraints an Array | > | >>> | > | classVars a SymbolDictionary | > | >>> | > | methodDict a GsMethodDictionary | > | >>> | > | poolDictionaries an Array | > | >>> | > | categories a GsMethodDictionary | > | >>> | > | secondarySuperclasses nil | > | >>> | > | name System | > | >>> | > | classHistory a ClassHistory | > | >>> | > | description a GsClassDocumentation | > | >>> | > | migrationDestination nil | > | >>> | > | timeStamp a DateTime | > | >>> | > | userId SystemUser | > | >>> | > | extraDict a SymbolDictionary | > | >>> | > | classCategory nil | > | >>> | > | subclasses nil | > | >>> | > | | > | >>> | > | topaz 1> printit | > | >>> | > | SystemRepository objectAudit | > | >>> | > | % | > | >>> | > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 | > | >>> | > | to 3 | > | >>> | > | --setGcConfig: set reclaimMinPages to 1 | > | >>> | > | --reclaimAll: changed reclaimMinPages from 40 to 1 | > | >>> | > | --setGcConfig: set reclaimSleepTime to 1 | > | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | > | >>> | > | --reclaimAll: using reclaimDeadEnabled true | > | >>> | > | --reclaimAll: simpleCommit loopCount 10 | > | >>> | > | 02/11/2012 12:07:41 PM.070 UTC: Starting object table | > | >>> | > | scan | > | >>> | > | 02/11/2012 12:07:41 PM.698 UTC: Finished object table | > | >>> | > | scan | > | >>> | > | | > | >>> | > | Object audit is proceeding in FullAudit mode: | > | >>> | > | Scavenging completed (either single user mode or no | > | >>> | > | pages | > | >>> | > | to | > | >>> | > | scavenge). | > | >>> | > | All audit checks are enabled. | > | >>> | > | | > | >>> | > | Object audit as of 02/11/2012 12:07:41 PM UTC. | > | >>> | > | Summary of objects whose sizes exceed 100000 Bytes or | > | >>> | > | Oops: | > | >>> | > | | > | >>> | > | ObjectID Class ClassName | > | >>> | > | LogicalSize | > | >>> | > | -------------------------------------------------------------------------------------------------------------- | > | >>> | > | 305743617 74753 String | > | >>> | > | 134740 Oops | > | >>> | > | 149534721 74753 String | > | >>> | > | 164661 Oops | > | >>> | > | 173784833 74753 String | > | >>> | > | 163312 Oops | > | >>> | > | 196368897 74753 String | > | >>> | > | 164661 Oops | > | >>> | > | 305774593 74753 String | > | >>> | > | 134740 Oops | > | >>> | > | 175519489 74753 String | > | >>> | > | 376305 Oops | > | >>> | > | 196571393 74753 String | > | >>> | > | 379399 Oops | > | >>> | > | 175494145 74753 String | > | >>> | > | 201874 Oops | > | >>> | > | 197005569 74753 String | > | >>> | > | 202074 Oops | > | >>> | > | 149996289 74753 String | > | >>> | > | 236426 Oops | > | >>> | > | 151722753 74753 String | > | >>> | > | 379399 Oops | > | >>> | > | 151723777 74753 String | > | >>> | > | 202074 Oops | > | >>> | > | 274619393 74753 String | > | >>> | > | 1170577 Oops | > | >>> | > | 265139713 74753 String | > | >>> | > | 1170577 Oops | > | >>> | > | 215910913 66817 Array | > | >>> | > | 331214 Oops | > | >>> | > | 164965121 74753 String | > | >>> | > | 236201 Oops | > | >>> | > | 197155585 74753 String | > | >>> | > | 236426 Oops | > | >>> | > | 271373057 74753 String | > | >>> | > | 1170577 Oops | > | >>> | > | 268426753 74753 String | > | >>> | > | 134740 Oops | > | >>> | > | 264103681 74753 String | > | >>> | > | 1170577 Oops | > | >>> | > | | > | >>> | > | ----------- Object Statistics Summary ----------------- | > | >>> | > | | > | >>> | > | ----- Instances of invisible (private) classes ------ | > | >>> | > | Number of instances: 1072 | > | >>> | > | Total size: 15855 K Bytes | > | >>> | > | Average size: 14.8 Bytes | > | >>> | > | | > | >>> | > | Class: 209153 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 209409 Instances: 1072 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 15855 K Bytes | > | >>> | > | Class: 209665 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 209921 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 210177 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 210433 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 210689 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 210945 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 211201 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 211457 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 211713 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 211969 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 212225 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 212481 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 212737 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 212993 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 213249 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 213505 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 213761 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | | > | >>> | > | | > | >>> | > | ----- Instances of visible classes ----------------- | > | >>> | > | Number of objects : 1633432 | > | >>> | > | Total Size : 157861 K Bytes | > | >>> | > | size of Object Headers : 38283 K Bytes | > | >>> | > | size of Object Values : 116978 K Bytes | > | >>> | > | size of Object Tags : 0 K Bytes | > | >>> | > | average of Object Value: 73.3 Bytes | > | >>> | > | | > | >>> | > | Object Audit: Audit successfully completed; no errors | > | >>> | > | were | > | >>> | > | detected. | > | >>> | > | --setGcConfig: set reclaimMinPages to 40 | > | >>> | > | --setGcConfig: set reclaimSleepTime to 10 | > | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | > | >>> | > | --postReclaimAll: restored reclaimMinPages to 40 | > | >>> | > | true | > | >>> | > | topaz 1> printit | > | >>> | > | SystemRepository markForCollection | > | >>> | > | % | > | >>> | > | start MFC mark/sweep phase: 02/11/2012 12:08:56 PM UTC | > | >>> | > | WARNING, unable to resolve either | > | >>> | > | garMarkSweepPageBufSize | > | >>> | > | or | > | >>> | > | mfcGcPageBufSize, using default 320 | > | >>> | > | MarkSweepArgsSType::(): buffer size= 320 pages | > | >>> | > | start MFC process dead phase: 02/11/2012 12:08:59 PM | > | >>> | > | UTC | > | >>> | > | end MFC: 02/11/2012 12:08:59 PM UTC | > | >>> | > | Successful completion of markForCollection. | > | >>> | > | 1613875 live objects found. | > | >>> | > | 20629 possible dead objects, occupying | > | >>> | > | approximately | > | >>> | > | 1856610 | > | >>> | > | bytes, may be reclaimed. | > | >>> | > | topaz 1> printit | > | >>> | > | SystemRepository reclaimAll | > | >>> | > | % | > | >>> | > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 | > | >>> | > | to 3 | > | >>> | > | --setGcConfig: set reclaimMinPages to 1 | > | >>> | > | --reclaimAll: changed reclaimMinPages from 40 to 1 | > | >>> | > | --setGcConfig: set reclaimSleepTime to 1 | > | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | > | >>> | > | --reclaimAll: using reclaimDeadEnabled true | > | >>> | > | --reclaimAll: simpleCommit loopCount 10 | > | >>> | > | an Array | > | >>> | > | #1 40 | > | >>> | > | #2 10 | > | >>> | > | #3 0 | > | >>> | > | | > | >>> | > | topaz 1> printit | > | >>> | > | SystemRepository objectAudit | > | >>> | > | % | > | >>> | > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 | > | >>> | > | to 3 | > | >>> | > | --setGcConfig: set reclaimMinPages to 1 | > | >>> | > | --reclaimAll: changed reclaimMinPages from 1 to 1 | > | >>> | > | --setGcConfig: set reclaimSleepTime to 1 | > | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | > | >>> | > | --reclaimAll: using reclaimDeadEnabled true | > | >>> | > | 02/11/2012 12:11:27 PM.328 UTC: Starting object table | > | >>> | > | scan | > | >>> | > | 02/11/2012 12:11:27 PM.921 UTC: Finished object table | > | >>> | > | scan | > | >>> | > | | > | >>> | > | Object audit is proceeding in FullAudit mode: | > | >>> | > | Scavenging completed (either single user mode or no | > | >>> | > | pages | > | >>> | > | to | > | >>> | > | scavenge). | > | >>> | > | All audit checks are enabled. | > | >>> | > | | > | >>> | > | Object audit as of 02/11/2012 12:11:27 PM UTC. | > | >>> | > | Summary of objects whose sizes exceed 100000 Bytes or | > | >>> | > | Oops: | > | >>> | > | | > | >>> | > | ObjectID Class ClassName | > | >>> | > | LogicalSize | > | >>> | > | -------------------------------------------------------------------------------------------------------------- | > | >>> | > | 305743617 74753 String | > | >>> | > | 134740 Oops | > | >>> | > | 149534721 74753 String | > | >>> | > | 164661 Oops | > | >>> | > | 173784833 74753 String | > | >>> | > | 163312 Oops | > | >>> | > | 196368897 74753 String | > | >>> | > | 164661 Oops | > | >>> | > | 305774593 74753 String | > | >>> | > | 134740 Oops | > | >>> | > | 175519489 74753 String | > | >>> | > | 376305 Oops | > | >>> | > | 196571393 74753 String | > | >>> | > | 379399 Oops | > | >>> | > | 175494145 74753 String | > | >>> | > | 201874 Oops | > | >>> | > | 197005569 74753 String | > | >>> | > | 202074 Oops | > | >>> | > | 149996289 74753 String | > | >>> | > | 236426 Oops | > | >>> | > | 151722753 74753 String | > | >>> | > | 379399 Oops | > | >>> | > | 151723777 74753 String | > | >>> | > | 202074 Oops | > | >>> | > | 274619393 74753 String | > | >>> | > | 1170577 Oops | > | >>> | > | 265139713 74753 String | > | >>> | > | 1170577 Oops | > | >>> | > | 215910913 66817 Array | > | >>> | > | 331214 Oops | > | >>> | > | 164965121 74753 String | > | >>> | > | 236201 Oops | > | >>> | > | 197155585 74753 String | > | >>> | > | 236426 Oops | > | >>> | > | 271373057 74753 String | > | >>> | > | 1170577 Oops | > | >>> | > | 268426753 74753 String | > | >>> | > | 134740 Oops | > | >>> | > | 264103681 74753 String | > | >>> | > | 1170577 Oops | > | >>> | > | | > | >>> | > | ----------- Object Statistics Summary ----------------- | > | >>> | > | | > | >>> | > | ----- Instances of invisible (private) classes ------ | > | >>> | > | Number of instances: 1072 | > | >>> | > | Total size: 15855 K Bytes | > | >>> | > | Average size: 14.8 Bytes | > | >>> | > | | > | >>> | > | Class: 209153 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 209409 Instances: 1072 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 15855 K Bytes | > | >>> | > | Class: 209665 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 209921 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 210177 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 210433 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 210689 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 210945 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 211201 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 211457 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 211713 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 211969 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 212225 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 212481 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 212737 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 212993 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 213249 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 213505 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | Class: 213761 Instances: 0 | > | >>> | > | Total | > | >>> | > | Size: | > | >>> | > | 0 K Bytes | > | >>> | > | | > | >>> | > | | > | >>> | > | ----- Instances of visible classes ----------------- | > | >>> | > | Number of objects : 1612803 | > | >>> | > | Total Size : 156912 K Bytes | > | >>> | > | size of Object Headers : 37800 K Bytes | > | >>> | > | size of Object Values : 116516 K Bytes | > | >>> | > | size of Object Tags : 0 K Bytes | > | >>> | > | average of Object Value: 74.0 Bytes | > | >>> | > | | > | >>> | > | Object Audit: Audit successfully completed; no errors | > | >>> | > | were | > | >>> | > | detected. | > | >>> | > | --setGcConfig: set reclaimMinPages to 1 | > | >>> | > | --setGcConfig: set reclaimSleepTime to 1 | > | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | > | >>> | > | --postReclaimAll: restored reclaimMinPages to 1 | > | >>> | > | true | > | >>> | > | topaz 1> | > | >>> | > | topaz 1> | > | >>> | > | | > | >>> | > | | > | >>> | > | > If, as I suspect, you've got corruption in GsProcess | > | >>> | > | > objects | > | >>> | > | > they | > | >>> | > | > only impact Seaside session state, and should have | > | >>> | > | > disappeared | > | >>> | > | > by | > | >>> | > | > the time you run the object audit ... | > | >>> | > | > | > | >>> | > | > This problems seems to ring a bell, but it seems to | > | >>> | > | > me | > | >>> | > | > that the | > | >>> | > | > problem I am thinking of showed up in GemStone 3.0 | > | >>> | > | > and I | > | >>> | > | > think | > | >>> | > | > it | > | >>> | > | > was fixed in GemStone 3.0.1... so I'm curious what | > | >>> | > | > version of | > | >>> | > | > GemStone you are using. | > | >>> | > | > | > | >>> | > | > As I think about this, I seem to recall that the | > | >>> | > | > problem | > | >>> | > | > was | > | >>> | > | > related to deeply nested block structure in a method | > | >>> | > | > that | > | >>> | > | > was | > | >>> | > | > involved in partial continuations, so I am curious if | > | >>> | > | > you | > | >>> | > | > happen | > | >>> | > | > to have some deeply nested block structures let's say | > | >>> | > | > more than | > | >>> | > | > 5 | > | >>> | > | > or 6 levels deep in your method? In fact even in | > | >>> | > | > 3.0.1 I | > | >>> | > | > think | > | >>> | > | > that there might be an effective limit (the engineer | > | >>> | > | > that | > | >>> | > | > worked | > | >>> | > | > on this will be back on Monday for exact details), so | > | >>> | > | > if | > | >>> | > | > you | > | >>> | > | > are | > | >>> | > | > running with 3.0.1, you should definitely be | > | >>> | > | > suspicious | > | >>> | > | > of deep | > | >>> | > | > nesting of blocks... | > | >>> | > | > | > | >>> | > | > Dale | > | >>> | > | > | > | >>> | > | > [1] | > | >>> | > | > http://community.gemstone.com/display/GSS64/GemStoneS+64+Documentation | > | >>> | > | > | > | >>> | > | > ----- Original Message ----- | > | >>> | > | > | From: "Lawrence Kellogg" <[hidden email]> | > | >>> | > | > | To: "GemStone Seaside beta discussion" | > | >>> | > | > | <[hidden email]> | > | >>> | > | > | Sent: Friday, February 10, 2012 2:13:15 PM | > | >>> | > | > | Subject: [GS/SS Beta] Object does not exist error - | > | >>> | > | > | Worry | > | >>> | > | > | about | > | >>> | > | > | it? | > | >>> | > | > | | > | >>> | > | > | | > | >>> | > | > | | > | >>> | > | > | Hello, | > | >>> | > | > | After a long series of calls and answers in | > | >>> | > | > | Seaside, I | > | >>> | > | > | got an | > | >>> | > | > | Object | > | >>> | > | > | does not exist error that brought down the fast cgi | > | >>> | > | > | gateway. | > | >>> | > | > | My | > | >>> | > | > | production error handler was not triggered, | > | >>> | > | > | although it | > | >>> | > | > | was | > | >>> | > | > | installed, as far as I could tell. Strange. My | > | >>> | > | > | supervise | > | >>> | > | > | fastcgi | > | >>> | > | > | process also did not pick up my dead fastcgi | > | >>> | > | > | process. | > | >>> | > | > | Not a | > | >>> | > | > | good | > | >>> | > | > | day. | > | >>> | > | > | | > | >>> | > | > | Here is the walkback: | > | >>> | > | > | | > | >>> | > | > | | > | >>> | > | > | | > | >>> | > | > | USER IDS: REAL=seasideuser (500) | > | >>> | > | > | EFFECTIVE=seasideuser | > | >>> | > | > | (500) | > | >>> | > | > | | | > | >>> | > | > | |_____________________________________________________________________________| | > | >>> | > | > | topaz> topaz> topaz> topaz> topaz> topaz> topaz> | > | >>> | > | > | [Info]: LNK | > | >>> | > | > | client/gem GCI levels = 844/844 | > | >>> | > | > | [Info]: User ID: DataCurator | > | >>> | > | > | [Info]: Repository: seaside | > | >>> | > | > | [Info]: Session ID: 5 | > | >>> | > | > | [Info]: GCI Client Host: <Linked> | > | >>> | > | > | [Info]: Page server PID: -1 | > | >>> | > | > | [Info]: Login Time: 02/10/2012 09:27:56 PM.572 UTC | > | >>> | > | > | [02/10/2012 09:27:56 PM.592 UTC] gci login: | > | >>> | > | > | currSession | > | >>> | > | > | 1 rpc | > | >>> | > | > | gem | > | >>> | > | > | processId -1 | > | >>> | > | > | successful login | > | >>> | > | > | topaz 1> topaz 1> [20 sz:0 cls: 76289 | > | >>> | > | > | UndefinedObject] | > | >>> | > | > | nil | > | >>> | > | > | topaz 1> topaz 1> [76033 sz:19 cls: 801793 System | > | >>> | > | > | class] | > | >>> | > | > | System | > | >>> | > | > | class | > | >>> | > | > | superClass [72193 sz:19 cls: 206081 Object class] | > | >>> | > | > | Object | > | >>> | > | > | class | > | >>> | > | > | format [258 sz:0 cls: 74241 SmallInteger] 32 | > | >>> | > | > | instVars [2 sz:0 cls: 74241 SmallInteger] 0 | > | >>> | > | > | instVarNames [422145 sz:0 cls: 66817 Array] an | > | >>> | > | > | Array | > | >>> | > | > | constraints [421889 sz:0 cls: 66817 Array] an Array | > | >>> | > | > | classVars [421633 sz:26 cls: 111361 | > | >>> | > | > | SymbolDictionary] a | > | >>> | > | > | SymbolDictionary | > | >>> | > | > | methodDict [711937 sz:112 cls: 99073 | > | >>> | > | > | GsMethodDictionary] a | > | >>> | > | > | GsMethodDictionary | > | >>> | > | > | poolDictionaries [421377 sz:0 cls: 66817 Array] an | > | >>> | > | > | Array | > | >>> | > | > | categories [421121 sz:28 cls: 99073 | > | >>> | > | > | GsMethodDictionary] | > | >>> | > | > | a | > | >>> | > | > | GsMethodDictionary | > | >>> | > | > | secondarySuperclasses [20 sz:0 cls: 76289 | > | >>> | > | > | UndefinedObject] | > | >>> | > | > | nil | > | >>> | > | > | name [801537 sz:6 cls: 110849 Symbol] System | > | >>> | > | > | classHistory [420865 sz:3 cls: 82689 ClassHistory] | > | >>> | > | > | a | > | >>> | > | > | ClassHistory | > | >>> | > | > | description [13498369 sz:10 cls: 95233 | > | >>> | > | > | GsClassDocumentation] | > | >>> | > | > | a | > | >>> | > | > | GsClassDocumentation | > | >>> | > | > | migrationDestination [20 sz:0 cls: 76289 | > | >>> | > | > | UndefinedObject] nil | > | >>> | > | > | timeStamp [14510593 sz:4 cls: 118785 DateTime] a | > | >>> | > | > | DateTime | > | >>> | > | > | userId [14508801 sz:10 cls: 74753 String] | > | >>> | > | > | SystemUser | > | >>> | > | > | extraDict [14524929 sz:14 cls: 111361 | > | >>> | > | > | SymbolDictionary] | > | >>> | > | > | a | > | >>> | > | > | SymbolDictionary | > | >>> | > | > | classCategory [20 sz:0 cls: 76289 UndefinedObject] | > | >>> | > | > | nil | > | >>> | > | > | subclasses [20 sz:0 cls: 76289 UndefinedObject] nil | > | >>> | > | > | | > | >>> | > | > | | > | >>> | > | > | topaz 1> topaz 1> WAFastCGIAdaptor Server started | > | >>> | > | > | on | > | >>> | > | > | port | > | >>> | > | > | 9001 | > | >>> | > | > | ----------------------------------------------------- | > | >>> | > | > | GemStone: Error Nonfatal | > | >>> | > | > | The object with object ID 81065894683350528 does | > | >>> | > | > | not | > | >>> | > | > | exist. | > | >>> | > | > | Error Category: 231169 [GemStone] Number: 2101 Arg | > | >>> | > | > | Count: 1 | > | >>> | > | > | Context : | > | >>> | > | > | 526648321 | > | >>> | > | > | Arg 1: [648527157466804226 sz:0 cls: 74241 | > | >>> | > | > | SmallInteger] | > | >>> | > | > | 81065894683350528 | > | >>> | > | > | | > | >>> | > | > | | > | >>> | > | > | Now executing the following command saved from | > | >>> | > | > | "iferr | > | >>> | > | > | 1": | > | >>> | > | > | where | > | >>> | > | > | ==> 1 GsProcess class >> | > | >>> | > | > | installPartialContinuation:atLevel:value: @2 | > | >>> | > | > | line 1 [GsMethod 4487425] | > | >>> | > | > | 2 WAPartialContinuation >> value: @13 line 11 | > | >>> | > | > | [GsMethod | > | >>> | > | > | 212791041] | > | >>> | > | > | 3 WAPartialContinuation >> | > | >>> | > | > | valueWithPossibleArguments: | > | >>> | > | > | @2 | > | >>> | > | > | line 2 | > | >>> | > | > | [GsMethod 218326273] | > | >>> | > | > | 4 ComplexBlock in WAComponent >> | > | >>> | > | > | show:onAnswer:delegation: @7 | > | >>> | > | > | line 7 | > | >>> | > | > | [GsMethod 194749185] | > | >>> | > | > | 5 ComplexBlock in ExecutableBlock >> | > | >>> | > | > | valueWithPossibleArguments: | > | >>> | > | > | @12 | > | >>> | > | > | line 8 [GsMethod 116163585] | > | >>> | > | > | 6 WAAnswerHandler >> handleAnswer:continueWith: @3 | > | >>> | > | > | line | > | >>> | > | > | 2 | > | >>> | > | > | [GsMethod | > | >>> | > | > | 194735873] | > | >>> | > | > | 7 WADecoration >> handleAnswer: @6 line 3 [GsMethod | > | >>> | > | > | 194731009] | > | >>> | > | > | 8 WAComponent >> answer: @2 line 5 [GsMethod | > | >>> | > | > | 194751745] | > | >>> | > | > | | > | >>> | > | > | | > | >>> | > | > | | > | >>> | > | > | | > | >>> | > | > | I found this on the net: | > | >>> | > | > | | > | >>> | > | > | | > | >>> | > | > | | > | >>> | > | > | Object does not exist errors | > | >>> | > | > | GBS applications may encounter object does not | > | >>> | > | > | exist | > | >>> | > | > | errors | > | >>> | > | > | in | > | >>> | > | > | non-persistent | > | >>> | > | > | objects. This is due to a problem with the fix for | > | >>> | > | > | bug | > | >>> | > | > | #40703 | > | >>> | > | > | in | > | >>> | > | > | version | > | >>> | > | > | 2.4.4, which resulted in non-persistent objects not | > | >>> | > | > | properly | > | >>> | > | > | protected | > | >>> | > | > | from garbage collection. | > | >>> | > | > | | > | >>> | > | > | Workaround: | > | >>> | > | > | | > | >>> | > | > | none/not applicable | > | >>> | > | > | from: | > | >>> | > | > | | > | >>> | > | > | | > | >>> | > | > | | > | >>> | > | > | | > | >>> | > | > | | > | >>> | > | > | | > | >>> | > | > | http://www.gemstone.com/docs/GemStoneS/bugnotes/bugnotes/40948.html | > | >>> | > | > | | > | >>> | > | > | | > | >>> | > | > | | > | >>> | > | > | So, should I worry about this? I implemented code | > | >>> | > | > | that | > | >>> | > | > | allowed a | > | >>> | > | > | user | > | >>> | > | > | to call an editor, switch out on the navigation | > | >>> | > | > | menu, | > | >>> | > | > | call | > | >>> | > | > | another | > | >>> | > | > | editor, | > | >>> | > | > | switch out. With each switch, I send answer: false | > | >>> | > | > | to | > | >>> | > | > | the | > | >>> | > | > | open | > | >>> | > | > | editor | > | >>> | > | > | to close it so that it is not hanging around open. | > | >>> | > | > | My | > | >>> | > | > | idea | > | >>> | > | > | was to hide the section navigation when the editor | > | >>> | > | > | came | > | >>> | > | > | up | > | >>> | > | > | but | > | >>> | > | > | I'm | > | >>> | > | > | getting push back from my user. | > | >>> | > | > | | > | >>> | > | > | | > | >>> | > | > | What do you think? | > | >>> | > | > | | > | >>> | > | > | | > | >>> | > | > | Larry | > | >>> | > | > | | > | >>> | > | > | | > | >>> | > | > | | > | >>> | > | > | | > | >>> | > | | > | >>> | > | | > | >>> | | > | >>> | | > | >> | > | > | > | | > | | | |
On Feb 28, 2012, at 3:55 PM, Dale Henrichs wrote: > Larry, > > The C stack dump will tell us where in the vm the error is occurring. If you are doing this in your Staging environment then you can attach the c process with gdb and get the stack dump ... with a live gdb we may want additional info ... the stack dump will be useful to start. > > With the smalltalk stack we'll get to look at the objects around the corrupt object and perhaps learn something ... > > Right now, I am curious whether the corrupt object is a WAValue or a WADelegation… > Dale, I've been banging on my Staging system all morning, and haven't made it crash yet. It's a strange bug. Sometimes, it pops up on the most innocent click when switching between views. In this case, I'm hitting call/answers many, many times, to try to make it fail. I thought we had seen it fail this way in the past, but now I'm not sure. I guess it is good news that the bug is difficult to reproduce. I'll keep trying. Where does the C stack get dumped when it gets dumped? To the console or a file? Larry > Dale > > ----- Original Message ----- > | From: "Lawrence Kellogg" <[hidden email]> > | To: "GemStone Seaside beta discussion" <[hidden email]> > | Sent: Tuesday, February 28, 2012 12:19:33 PM > | Subject: Re: [GS/SS Beta] Object does not exist error - Worry about it? > | > | > | On Feb 28, 2012, at 2:41 PM, Dale Henrichs wrote: > | > | > Larry, > | > > | > Okay, here's the stack that covers the range of the partial > | > continuation: > | > > | > ==> 1 WAComponent >> decoration @3 line 1 [GsMethod 194749441] > | > 2 WAComponent >> addDecoration: @2 line 6 [GsMethod 194748417] > | > 3 WAComponent >> show:onAnswerelegation: @10 line 8 [GsMethod > | > 194749185] > | > 4 WAComponent >> show:onAnswer: @5 line 5 [GsMethod 499699713] > | > 5 WAComponent >> call:onAnswer: @5 line 8 [GsMethod 194750977] > | > 6 ComplexBlock in WAComponent >> call: @3 line 4 [GsMethod > | > 191317249] > | > 7 ComplexBlock in WAComponent >> wait: @3 line 3 [GsMethod > | > 191268353] > | > 8 GRGemStonePlatform >> seasideSuspendFlowDo: @9 line 5 [GsMethod > | > 499655937] > | > 9 WAComponent >> wait: @4 line 3 [GsMethod 191268353] > | > 10 WAComponent >> call: @4 line 4 [GsMethod 191317249] > | > 11 PracticeJournalLoginTask >> go @14 line 9 [GsMethod 371393537] > | > 12 WATask >> execute @1 line 7 [GsMethod 195261697] > | > 13 ComplexBlock in WATaskVisitor >> visitTask: @6 line 4 > | > [GsMethod 194755841] > | > > | > WAComponent >> decoration is the source of the error and it is > | > sending #contents to a 'decoration' of the component ... it's not > | > quite clear whether the decoration iv is the corrupt object or the > | > result of the #contents message send ... > | > > | > To get a better picture of what's happening we need a C stack when > | > the error occurs. If you set > | > > | > GEM_HALT_ON_ERROR = 2101; > | > > | > in your system.conf file, then when the obj does not exist error > | > occurs the gem will halt, dump a c stack, wait 60 seconds and then > | > shutdown ... This is pretty intrusive, but it will get us a couple > | > steps closer to understanding what's going on. > | > > | > If you (or Johan) can duplicate the error under controlled > | > conditions then you would fire up a topaz manually to service > | > requests and when the halt on error hits, you'll be dropped to the > | > topaz prompt where you can view the smalltalk stack and inspect > | > the objects involved … > | > > | > | Thanks, Dale. I think I can make it crash in my Staging environment > | by going through many call/answers invocations. I will try. > | Unfortunately, I don't think I know enough about what Seaside is > | doing at that level to fix the problem. I see that the > | WADecoration is a WAValueHolder but that's about the end of my > | knowledge. > | > | I guess there is no way of knowing from this stack dump what kind > | of WADecoration we're talking about. > | > | Regards, > | > | Larry > | > | > | > Dale > | > > | > ----- Original Message ----- > | > | From: "Lawrence Kellogg" <[hidden email]> > | > | To: "GemStone Seaside beta discussion" > | > | <[hidden email]> > | > | Sent: Monday, February 27, 2012 7:01:58 PM > | > | Subject: Re: [GS/SS Beta] Object does not exist error - Worry > | > | about it? > | > | > | > | > | > | On Feb 21, 2012, at 2:40 PM, Johan Brichau wrote: > | > | > | > | > fyi, I have been observing occurrences of this bug as well, > | > | > with > | > | > exactly the same point of failure in the stack. > | > | > > | > | > No repository problems or audit warnings. > | > | > > | > | > Funnily, I've never seen this in any stone running Yesplan. The > | > | > stone where we have this problem is also running a Seaside > | > | > application but the only discriminating factor I can observe is > | > | > that this application uses call/answer a lot more (while we > | > | > almost > | > | > never use that in Yesplan). It probably does not help a lot > | > | > finding the error... but I will look up the stack traces and > | > | > post > | > | > them here if they might contain some clues. > | > | > | > | Hello Johan, > | > | Thanks for looking into this problem. I use call/answer quite a > | > | bit. > | > | > | > | Dale, did you see the stack dump I posted? > | > | > | > | Larry > | > | > | > | > | > | > > | > | > On 21 Feb 2012, at 20:13, Lawrence Kellogg wrote: > | > | > > | > | >> > | > | >> On Feb 21, 2012, at 1:05 PM, Dale Henrichs wrote: > | > | >> > | > | >>> Larry, > | > | >>> > | > | >>> We should try to dig into this one some more. > | > | >>> > | > | >>> To start with what version of Gemstone are you using? If you > | > | >>> are > | > | >>> using 2.4.4.1, then I'm not aware of an issue that would > | > | >>> warrant > | > | >>> an upgrade to 2.4.5, but I will check around a bit...As I > | > | >>> said > | > | >>> before, the only place that I've seen "Obj does not exist > | > | >>> errors" is in 3.0 and those bugs were fixed in 3.0.1. > | > | >>> > | > | >> > | > | >> Dale, > | > | >> Thanks for the help. I would like to get to the bottom of this > | > | >> error. This crash takes down Fastcgi so it kills the service. > | > | >> > | > | >> According to the file in the directory, I'm on 2.4.[ component > | > | >> notNil ] > | > | >> whileTrue: [ > | > | >> self call: component. > | > | >> component := component nextComponentToBeDisplayed ] ]4.1 > | > | >> > | > | >> GemStone64Bit2.4.4.1-x86_64.Linux > | > | >> > | > | >> > | > | >> > | > | >> > | > | >>> This time we are getting the error while creating the > | > | >>> continuation ... the last episode occurred when you were > | > | >>> trying > | > | >>> to execute from a continuation. > | > | >>> > | > | >>> Could you share the source code for PracticeJournalLoginTask > | > | >>> >> > | > | >>> go? That's the first non-Seaside method on the stack below > | > | >>> the > | > | >>> error, so it's as good a place as any to start … > | > | >>> > | > | >> > | > | >> Here is the complete source code for the go method: ;-) > | > | >> > | > | >> go > | > | >> | user component | > | > | >> self call: self userLoginView. > | > | >> (self userLoginView user) notNil > | > | >> ifTrue: [ > | > | >> component := self firstComponentToDisplayForUser: self > | > | >> userLoginView user. > | > | >> [ component notNil ] > | > | >> whileTrue: [ > | > | >> self call: component. > | > | >> component := component nextComponentToBeDisplayed ] ] > | > | >> > | > | >> A component is called, and when another component is selected > | > | >> the > | > | >> current component is sent answer: false and > | > | >> the new component to call is returned from that > | > | >> nextComponentToBeDisplayed method. > | > | >> > | > | >> I used to have an implementation that would give me a huge > | > | >> recursive nesting of continuations, as shown by > | > | >> halo, but this shows everything on just a few levels, although > | > | >> I > | > | >> have to say that the walkback looks deep and gnarly. > | > | >> > | > | >> > | > | >>> It would be useful to see the entire stack as well. The > | > | >>> partial > | > | >>> continuation copies the stack back to a marker method and it > | > | >>> would be useful to examine the source for the methods that > | > | >>> are > | > | >>> on the stck for clues as to what might be going on... > | > | >>> > | > | >>> Dale > | > | >> > | > | >> > | > | >> Here is the complete walk back: > | > | >> > | > | >> topaz 1> topaz 1> WAFastCGIAdaptor Server started on port 9001 > | > | >> ----------------------------------------------------- > | > | >> GemStone: Error Nonfatal > | > | >> The object with object ID 76562293713797632 does not exist. > | > | >> Error Category: 231169 [GemStone] Number: 2101 Arg Count: 1 > | > | >> Context : 412915713 > | > | >> Arg 1: [612498349710381058 sz:0 cls: 74241 SmallInteger] > | > | >> 76562293713797632 > | > | >> > | > | >> Now executing the following command saved from "iferr 1": > | > | >> where > | > | >> ==> 1 WAComponent >> decoration @3 line 1 [GsMethod > | > | >> 194749441] > | > | >> 2 WAComponent >> addDecoration: @2 line 6 [GsMethod > | > | >> 194748417] > | > | >> 3 WAComponent >> show:onAnswer:delegation: @10 line 8 > | > | >> [GsMethod > | > | >> 194749185] > | > | >> 4 WAComponent >> show:onAnswer: @5 line 5 [GsMethod > | > | >> 499699713] > | > | >> 5 WAComponent >> call:onAnswer: @5 line 8 [GsMethod > | > | >> 194750977] > | > | >> 6 ComplexBlock in WAComponent >> call: @3 line 4 [GsMethod > | > | >> 191317249] > | > | >> 7 ComplexBlock in WAComponent >> wait: @3 line 3 [GsMethod > | > | >> 191268353] > | > | >> 8 GRGemStonePlatform >> seasideSuspendFlowDo: @9 line 5 > | > | >> [GsMethod 499655937] > | > | >> 9 WAComponent >> wait: @4 line 3 [GsMethod 191268353] > | > | >> 10 WAComponent >> call: @4 line 4 [GsMethod 191317249] > | > | >> 11 PracticeJournalLoginTask >> go @14 line 9 [GsMethod > | > | >> 371393537] > | > | >> 12 WATask >> execute @1 line 7 [GsMethod 195261697] > | > | >> 13 ComplexBlock in WATaskVisitor >> visitTask: @6 line 4 > | > | >> [GsMethod 194755841] > | > | >> 14 WACallback >> evaluateWithFieldValues: @5 line 2 > | > | >> [GsMethod > | > | >> 177495553] > | > | >> 15 ComplexBlock in WACallbackRegistry >> handle: @16 line 10 > | > | >> [GsMethod 177951489] > | > | >> 16 Collection >> do: @5 line 10 [GsMethod 1547777] > | > | >> 17 WACallbackRegistry >> handle: @17 line 9 [GsMethod > | > | >> 177951489] > | > | >> 18 ComplexBlock in WAActionPhaseContinuation >> runCallbacks > | > | >> @7 > | > | >> line 4 [GsMethod 202613505] > | > | >> 19 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod > | > | >> 10065409] > | > | >> 20 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod > | > | >> 10062081] > | > | >> 21 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 > | > | >> [GsMethod > | > | >> 9005057] > | > | >> 22 WARenderLoopContinuation >> withNotificationHandlerDo: @3 > | > | >> line > | > | >> 2 [GsMethod 202608385] > | > | >> 23 ComplexVCBlock in WAActionPhaseContinuation >> runCallbacks > | > | >> @8 > | > | >> line 3 [GsMethod 202613505] > | > | >> 24 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 > | > | >> [GsMethod 2304001] > | > | >> 25 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11 > | > | >> [GsMethod 2304001] > | > | >> 26 WAActionPhaseContinuation >> runCallbacks @18 line 6 > | > | >> [GsMethod 202613505] > | > | >> 27 WAActionPhaseContinuation >> handleRequest @1 line 2 > | > | >> [GsMethod 202614017] > | > | >> 28 ComplexBlock in WASessionContinuation >> basicValue @3 line > | > | >> 2 > | > | >> [GsMethod 202625537] > | > | >> 29 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod > | > | >> 10065409] > | > | >> 30 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod > | > | >> 10062081] > | > | >> 31 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 > | > | >> [GsMethod > | > | >> 9005057] > | > | >> 32 WASessionContinuation >> withUnregisteredHandlerDo: @7 line > | > | >> 3 > | > | >> [GsMethod 202627073] > | > | >> 33 WASessionContinuation >> basicValue @4 line 2 [GsMethod > | > | >> 202625537] > | > | >> 34 WASessionContinuation >> value @3 line 5 [GsMethod > | > | >> 202623745] > | > | >> 35 WASession >> handleFiltered: @14 line 10 [GsMethod > | > | >> 202205441] > | > | >> 36 WARequestFilter >> handleFiltered: @2 line 4 [GsMethod > | > | >> 176192513] > | > | >> 37 ComplexBlock in WADeprecatedToolFilter >> handleFiltered: > | > | >> @3 > | > | >> line 2 [GsMethod 203213313] > | > | >> 38 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod > | > | >> 10065409] > | > | >> 39 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod > | > | >> 10062081] > | > | >> 40 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 > | > | >> [GsMethod > | > | >> 9005057] > | > | >> 41 WADeprecatedToolFilter >> handleFiltered: @6 line 3 > | > | >> [GsMethod > | > | >> 203213313] > | > | >> 42 WARequestFilter >> handleFiltered: @2 line 4 [GsMethod > | > | >> 176192513] > | > | >> 43 ComplexBlock in WATimingToolFilter >> handleFiltered: @4 > | > | >> line 3 > | > | >> [GsMethod 203208449] > | > | >> 44 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 > | > | >> [GsMethod 2304001] > | > | >> 45 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 > | > | >> [GsMethod 2304001] > | > | >> 46 WATimingToolFilter >> handleFiltered: @8 line 4 [GsMethod > | > | >> 203208449] > | > | >> 47 ComplexBlock in WARequestHandler >> handle: @4 line 4 > | > | >> [GsMethod 178568961] > | > | >> 48 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod > | > | >> 10065409] > | > | >> 49 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod > | > | >> 10062081] > | > | >> 50 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 > | > | >> [GsMethod > | > | >> 9005057] > | > | >> 51 WADynamicVariable class >> use:during: @4 line 4 > | > | >> [GsMethod > | > | >> 177805825] > | > | >> 52 ComplexBlock in WARequestContext >> push:during: @4 line 5 > | > | >> [GsMethod 176176129] > | > | >> 53 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 > | > | >> [GsMethod 2304001] > | > | >> 54 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 > | > | >> [GsMethod 2304001] > | > | >> 55 WARequestContext >> push:during: @7 line 6 [GsMethod > | > | >> 176176129] > | > | >> 56 WARequestHandler >> handle: @5 line 4 [GsMethod > | > | >> 178568961] > | > | >> 57 WASession >> handle: @10 line 11 [GsMethod 202210561] > | > | >> 58 WARegistry >> dispatch:to: @1 line 5 [GsMethod 176153857] > | > | >> 59 WARegistry >> handleKeyed:with: @2 line 5 [GsMethod > | > | >> 176155137] > | > | >> 60 WARegistry >> handleFiltered: @33 line 19 [GsMethod > | > | >> 176146945] > | > | >> 61 WAApplication >> handleFiltered: @9 line 8 [GsMethod > | > | >> 202644225] > | > | >> 62 WARequestFilter >> handleFiltered: @2 line 4 [GsMethod > | > | >> 176192513] > | > | >> 63 ComplexBlock in WAExceptionFilter >> handleFiltered: @6 > | > | >> line 7 > | > | >> [GsMethod 499529473] > | > | >> 64 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod > | > | >> 10065409] > | > | >> 65 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod > | > | >> 10062081] > | > | >> 66 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 > | > | >> [GsMethod > | > | >> 9005057] > | > | >> 67 WADynamicVariable class >> use:during: @4 line 4 > | > | >> [GsMethod > | > | >> 177805825] > | > | >> 68 ComplexVCBlock in WAExceptionFilter >> handleFiltered: @7 > | > | >> line > | > | >> 6 [GsMethod 499529473] > | > | >> 69 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod > | > | >> 10065409] > | > | >> 70 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod > | > | >> 10062081] > | > | >> 71 ComplexVCBlock in ExecutableBlock >> on:do: @2 line 8 > | > | >> [GsMethod 9005057] > | > | >> 72 WAExceptionHandler >> handleExceptionsDuring: @8 line 3 > | > | >> [GsMethod 177803521] > | > | >> 73 WAExceptionFilter >> handleFiltered: @8 line 4 [GsMethod > | > | >> 499529473] > | > | >> 74 ComplexBlock in WARequestHandler >> handle: @4 line 4 > | > | >> [GsMethod 178568961] > | > | >> 75 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod > | > | >> 10065409] > | > | >> 76 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod > | > | >> 10062081] > | > | >> 77 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 > | > | >> [GsMethod > | > | >> 9005057] > | > | >> 78 WADynamicVariable class >> use:during: @4 line 4 > | > | >> [GsMethod > | > | >> 177805825] > | > | >> 79 ComplexBlock in WARequestContext >> push:during: @4 line 5 > | > | >> [GsMethod 176176129] > | > | >> 80 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 > | > | >> [GsMethod 2304001] > | > | >> 81 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 > | > | >> [GsMethod 2304001] > | > | >> 82 WARequestContext >> push:during: @7 line 6 [GsMethod > | > | >> 176176129] > | > | >> 83 WARequestHandler >> handle: @5 line 4 [GsMethod > | > | >> 178568961] > | > | >> 84 WADispatcher >> handleFiltered:named: @7 line 5 [GsMethod > | > | >> 179090945] > | > | >> 85 WADispatcher >> handleFiltered: @7 line 6 [GsMethod > | > | >> 179087617] > | > | >> 86 ComplexBlock in WARequestHandler >> handle: @4 line 4 > | > | >> [GsMethod 178568961] > | > | >> 87 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod > | > | >> 10065409] > | > | >> 88 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod > | > | >> 10062081] > | > | >> 89 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 > | > | >> [GsMethod > | > | >> 9005057] > | > | >> 90 WADynamicVariable class >> use:during: @4 line 4 > | > | >> [GsMethod > | > | >> 177805825] > | > | >> 91 ComplexBlock in WARequestContext >> push:during: @4 line 5 > | > | >> [GsMethod 176176129] > | > | >> 92 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 > | > | >> [GsMethod 2304001] > | > | >> 93 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 > | > | >> [GsMethod 2304001] > | > | >> 94 WARequestContext >> push:during: @7 line 6 [GsMethod > | > | >> 176176129] > | > | >> 95 WARequestHandler >> handle: @5 line 4 [GsMethod > | > | >> 178568961] > | > | >> 96 ComplexBlock in WAServerAdaptor >> handleRequest: @4 line 4 > | > | >> [GsMethod 176816641] > | > | >> 97 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod > | > | >> 10065409] > | > | >> 98 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod > | > | >> 10062081] > | > | >> 99 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 > | > | >> [GsMethod > | > | >> 9005057] > | > | >> 100 WAServerAdaptor >> handleRequest: @6 line 5 [GsMethod > | > | >> 176816641] > | > | >> 101 WAServerAdaptor >> handle: @1 line 4 [GsMethod > | > | >> 176817921] > | > | >> 102 ComplexBlock in WAServerAdaptor >> process: @5 line 6 > | > | >> [GsMethod 176817153] > | > | >> 103 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 > | > | >> [GsMethod 2304001] > | > | >> 104 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 > | > | >> [GsMethod 2304001] > | > | >> 105 WAServerAdaptor >> process: @9 line 7 [GsMethod > | > | >> 176817153] > | > | >> 106 ComplexBlock in WAFastCGIAdaptor >> process: @3 line 6 > | > | >> [GsMethod 212442369] > | > | >> 107 ComplexBlock in GRGemStonePlatform >> > | > | >> seasideProcessRequestWithRetry:resultBlock: @12 line 11 > | > | >> [GsMethod 175179265] > | > | >> 108 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod > | > | >> 10065409] > | > | >> 109 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod > | > | >> 10062081] > | > | >> 110 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 > | > | >> [GsMethod 9005057] > | > | >> 111 ComplexVCBlock in GRGemStonePlatform >> > | > | >> seasideProcessRequestWithRetry:resultBlock: @18 line 12 > | > | >> [GsMethod 175179265] > | > | >> 112 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 > | > | >> [GsMethod 2304001] > | > | >> 113 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11 > | > | >> [GsMethod 2304001] > | > | >> 114 TransientRecursionLock >> critical: @15 line 8 [GsMethod > | > | >> 21159937] > | > | >> 115 GRGemStonePlatform >> > | > | >> seasideProcessRequestWithRetry:resultBlock: @39 line 5 > | > | >> [GsMethod 175179265] > | > | >> 116 ComplexBlock in GRGemStonePlatform >> > | > | >> seasideProcessRequest:adaptor:resultBlock: @7 line 9 > | > | >> [GsMethod > | > | >> 175179521] > | > | >> 117 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod > | > | >> 10065409] > | > | >> 118 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod > | > | >> 10062081] > | > | >> 119 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 > | > | >> [GsMethod 9005057] > | > | >> 120 GRGemStonePlatform >> > | > | >> seasideProcessRequest:adaptor:resultBlock: @32 line 17 > | > | >> [GsMethod 175179521] > | > | >> 121 WAFastCGIAdaptor >> process: @4 line 4 [GsMethod > | > | >> 212442369] > | > | >> 122 ComplexBlock in WAFastCGIAdaptor >> answerResponderRole: > | > | >> @3 > | > | >> line 4 [GsMethod 212444161] > | > | >> 123 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod > | > | >> 10065409] > | > | >> 124 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod > | > | >> 10062081] > | > | >> 125 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 > | > | >> [GsMethod 9005057] > | > | >> 126 WAFastCGIAdaptor >> answerResponderRole: @9 line 5 > | > | >> [GsMethod > | > | >> 212444161] > | > | >> 127 FSResponderRole >> answer @2 line 4 [GsMethod 218695937] > | > | >> 128 FSRole >> handleConnection @3 line 5 [GsMethod > | > | >> 218705409] > | > | >> 129 FSConnection >> unsafeServe @4 line 8 [GsMethod > | > | >> 219646465] > | > | >> 130 ComplexBlock in FSConnection >> safeServe @5 line 8 > | > | >> [GsMethod 499288833] > | > | >> 131 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod > | > | >> 10065409] > | > | >> 132 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod > | > | >> 10062081] > | > | >> 133 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 > | > | >> [GsMethod 9005057] > | > | >> 134 ComplexVCBlock in FSConnection >> safeServe @8 line 9 > | > | >> [GsMethod 499288833] > | > | >> 135 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod > | > | >> 10065409] > | > | >> 136 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod > | > | >> 10062081] > | > | >> 137 ComplexVCBlock in ExecutableBlock >> on:do: @2 line 8 > | > | >> [GsMethod 9005057] > | > | >> 138 ComplexVCBlock in FSConnection >> safeServe @11 line 12 > | > | >> [GsMethod 499288833] > | > | >> 139 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 > | > | >> [GsMethod 2304001] > | > | >> 140 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11 > | > | >> [GsMethod 2304001] > | > | >> 141 FSConnection >> safeServe @14 line 15 [GsMethod > | > | >> 499288833] > | > | >> 142 FSConnection >> serve @1 line 4 [GsMethod 219654145] > | > | >> 143 ComplexBlock in FSSocketServer >> listen: @9 line 15 > | > | >> [GsMethod 219292673] > | > | >> 144 GsProcess >> _startPart2 @15 line 17 [GsMethod 4501249] > | > | >> 145 GsProcess >> _start @1 line 9 [GsMethod 4501761] > | > | >> [GsProcess 412915713] > | > | >> topaz 1> [268 sz:0 cls: 68097 Boolean] true > | > | >> topaz 1> > | > | >> HostCallDebugger: invoked at: Mon Feb 20 16:38:18 UTC 2012 > | > | >> > | > | >> UTL_GUARANTEE failed, File > | > | >> /export/toronto3/users/buildgss/244x-1/src/omverify.c line 28 > | > | >> > | > | >> Begin attempt to print C-level stack at: Mon Feb 20 16:38:18 > | > | >> UTC > | > | >> 2012 > | > | >> > | > | >> > | > | >> End of C-level stack: > | > | >> > | > | >> > | > | >> hostcalldebugger invoked in process 6550, at 02/20/2012 > | > | >> 04:38:18 > | > | >> PM.681 UTC > | > | >> notifying stone of fatal error > | > | >> > | > | >> [Info]: Logging out at 02/20/2012 04:38:18 PM UTC > | > | >> > | > | >> > | > | >> > | > | >>> > | > | >>> ----- Original Message ----- > | > | >>> | From: "Lawrence Kellogg" <[hidden email]> > | > | >>> | To: "GemStone Seaside beta discussion" > | > | >>> | <[hidden email]> > | > | >>> | Sent: Monday, February 20, 2012 8:48:22 AM > | > | >>> | Subject: Re: [GS/SS Beta] Object does not exist error - > | > | >>> | Worry > | > | >>> | about it? > | > | >>> | > | > | >>> | Hello Dale, > | > | >>> | Well, my system has been up for days, running with no > | > | >>> | problems, not > | > | >>> | that it has been getting a lot of traffic, but still, no > | > | >>> | crashes. > | > | >>> | Today, I hit the Object does not exist error again. I > | > | >>> | guess I > | > | >>> | can > | > | >>> | do another object audit but, other than that, I'm not > | > | >>> | sure > | > | >>> | how to > | > | >>> | proceed. Do you think an upgrade to 2.4.5 will help me? > | > | >>> | > | > | >>> | Here is the walkback: > | > | >>> | > | > | >>> | topaz 1> topaz 1> WAFastCGIAdaptor Server started on port > | > | >>> | 9001 > | > | >>> | ----------------------------------------------------- > | > | >>> | GemStone: Error Nonfatal > | > | >>> | The object with object ID 76562293713797632 does not exist. > | > | >>> | Error Category: 231169 [GemStone] Number: 2101 Arg Count: 1 > | > | >>> | Context : > | > | >>> | 412915713 > | > | >>> | Arg 1: [612498349710381058 sz:0 cls: 74241 SmallInteger] > | > | >>> | 76562293713797632 > | > | >>> | > | > | >>> | Now executing the following command saved from "iferr 1": > | > | >>> | where > | > | >>> | ==> 1 WAComponent >> decoration @3 line 1 [GsMethod > | > | >>> | 194749441] > | > | >>> | 2 WAComponent >> addDecoration: @2 line 6 [GsMethod > | > | >>> | 194748417] > | > | >>> | 3 WAComponent >> show:onAnswer:delegation: @10 line 8 > | > | >>> | [GsMethod > | > | >>> | 194749185] > | > | >>> | 4 WAComponent >> show:onAnswer: @5 line 5 [GsMethod > | > | >>> | 499699713] > | > | >>> | 5 WAComponent >> call:onAnswer: @5 line 8 [GsMethod > | > | >>> | 194750977] > | > | >>> | 6 ComplexBlock in WAComponent >> call: @3 line 4 > | > | >>> | [GsMethod > | > | >>> | 191317249] > | > | >>> | 7 ComplexBlock in WAComponent >> wait: @3 line 3 > | > | >>> | [GsMethod > | > | >>> | 191268353] > | > | >>> | 8 GRGemStonePlatform >> seasideSuspendFlowDo: @9 line 5 > | > | >>> | [GsMethod > | > | >>> | 499655937] > | > | >>> | 9 WAComponent >> wait: @4 line 3 [GsMethod 191268353] > | > | >>> | 10 WAComponent >> call: @4 line 4 [GsMethod 191317249] > | > | >>> | 11 PracticeJournalLoginTask >> go @14 line 9 [GsMethod > | > | >>> | 371393537] > | > | >>> | > | > | >>> | > | > | >>> | Larry > | > | >>> | > | > | >>> | On Feb 11, 2012, at 2:34 PM, Dale Henrichs wrote: > | > | >>> | > | > | >>> | > Larry, > | > | >>> | > > | > | >>> | > Yes, everything looks clean, I'm a little bit surprised > | > | >>> | > that > | > | >>> | > you > | > | >>> | > didn't find the original error in you first audit, but > | > | >>> | > the > | > | >>> | > implication is that the "corrupt object" never got > | > | >>> | > persisted > | > | >>> | > ... > | > | >>> | > indicating some other type of corruption ... > | > | >>> | > > | > | >>> | > A clean object audit means that your data base has no > | > | >>> | > corruption so > | > | >>> | > you're good to go ... I'll talk to some guys on Monday > | > | >>> | > and > | > | >>> | > see if > | > | >>> | > they have some ideas as to what might have > | > | >>> | > happened...there's > | > | >>> | > a > | > | >>> | > bug in there somewhere, but for now it looks like it is > | > | >>> | > isolated > | > | >>> | > to the local state in a gem ... > | > | >>> | > > | > | >>> | > Dale > | > | >>> | > > | > | >>> | > ----- Original Message ----- > | > | >>> | > | From: "Lawrence Kellogg" <[hidden email]> > | > | >>> | > | To: "GemStone Seaside beta discussion" > | > | >>> | > | <[hidden email]> > | > | >>> | > | Sent: Saturday, February 11, 2012 4:18:06 AM > | > | >>> | > | Subject: Re: [GS/SS Beta] Object does not exist error - > | > | >>> | > | Worry > | > | >>> | > | about it? > | > | >>> | > | > | > | >>> | > | > | > | >>> | > | On Feb 10, 2012, at 7:04 PM, Dale Henrichs wrote: > | > | >>> | > | > | > | >>> | > | > Larry, > | > | >>> | > | > > | > | >>> | > | > Object does not exist errors are not good things ... > | > | >>> | > | > and > | > | >>> | > | > the > | > | >>> | > | > gem > | > | >>> | > | > coming down in this case is probably a good thing ... > | > | >>> | > | > The > | > | >>> | > | > fact > | > | >>> | > | > that the problem is showing up in a GsProcess means > | > | >>> | > | > that > | > | >>> | > | > the > | > | >>> | > | > Seaside session data structures are corrupted but not > | > | >>> | > | > your > | > | >>> | > | > model > | > | >>> | > | > data ... > | > | >>> | > | > > | > | >>> | > | > You can check for corruption in your data base by > | > | >>> | > | > running > | > | >>> | > | > an > | > | >>> | > | > object > | > | >>> | > | > audit (see section 8.2 of the System Administration > | > | >>> | > | > Guide[1]). > | > | >>> | > | > If > | > | >>> | > | > you follow these steps you own't need to run the > | > | >>> | > | > object > | > | >>> | > | > audit > | > | >>> | > | > as > | > | >>> | > | > single user (see the docs): > | > | >>> | > | > > | > | >>> | > | > - expire sessions > | > | >>> | > | > - mfc > | > | >>> | > | > - reclaimAll > | > | >>> | > | > - object audit > | > | >>> | > | > > | > | >>> | > | > | > | >>> | > | Hello Dale, > | > | >>> | > | Ok, I ran: > | > | >>> | > | > | > | >>> | > | System stopUserSessions > | > | >>> | > | SystemRepository objectAudit > | > | >>> | > | SystemRepository markForCollection > | > | >>> | > | SystemRepository reclaimAll > | > | >>> | > | SystemRepository objectAudit > | > | >>> | > | > | > | >>> | > | I don't see any errors. Here is my log. What do you > | > | >>> | > | make of > | > | >>> | > | it? > | > | >>> | > | > | > | >>> | > | Larry > | > | >>> | > | > | > | >>> | > | > | > | >>> | > | [Info]: Login Time: 02/11/2012 12:06:22 PM.972 UTC > | > | >>> | > | [02/11/2012 12:06:23 PM.001 UTC] gci login: currSession > | > | >>> | > | 1 > | > | >>> | > | rpc gem > | > | >>> | > | processId -1 > | > | >>> | > | successful login > | > | >>> | > | topaz 1> printit > | > | >>> | > | System hasMissingGcGems > | > | >>> | > | % > | > | >>> | > | false > | > | >>> | > | topaz 1> printit > | > | >>> | > | System stopUserSessions > | > | >>> | > | % > | > | >>> | > | System class > | > | >>> | > | superClass Object class > | > | >>> | > | format 32 > | > | >>> | > | instVars 0 > | > | >>> | > | instVarNames an Array > | > | >>> | > | constraints an Array > | > | >>> | > | classVars a SymbolDictionary > | > | >>> | > | methodDict a GsMethodDictionary > | > | >>> | > | poolDictionaries an Array > | > | >>> | > | categories a GsMethodDictionary > | > | >>> | > | secondarySuperclasses nil > | > | >>> | > | name System > | > | >>> | > | classHistory a ClassHistory > | > | >>> | > | description a GsClassDocumentation > | > | >>> | > | migrationDestination nil > | > | >>> | > | timeStamp a DateTime > | > | >>> | > | userId SystemUser > | > | >>> | > | extraDict a SymbolDictionary > | > | >>> | > | classCategory nil > | > | >>> | > | subclasses nil > | > | >>> | > | > | > | >>> | > | topaz 1> printit > | > | >>> | > | SystemRepository objectAudit > | > | >>> | > | % > | > | >>> | > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 > | > | >>> | > | to 3 > | > | >>> | > | --setGcConfig: set reclaimMinPages to 1 > | > | >>> | > | --reclaimAll: changed reclaimMinPages from 40 to 1 > | > | >>> | > | --setGcConfig: set reclaimSleepTime to 1 > | > | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 > | > | >>> | > | --reclaimAll: using reclaimDeadEnabled true > | > | >>> | > | --reclaimAll: simpleCommit loopCount 10 > | > | >>> | > | 02/11/2012 12:07:41 PM.070 UTC: Starting object table > | > | >>> | > | scan > | > | >>> | > | 02/11/2012 12:07:41 PM.698 UTC: Finished object table > | > | >>> | > | scan > | > | >>> | > | > | > | >>> | > | Object audit is proceeding in FullAudit mode: > | > | >>> | > | Scavenging completed (either single user mode or no > | > | >>> | > | pages > | > | >>> | > | to > | > | >>> | > | scavenge). > | > | >>> | > | All audit checks are enabled. > | > | >>> | > | > | > | >>> | > | Object audit as of 02/11/2012 12:07:41 PM UTC. > | > | >>> | > | Summary of objects whose sizes exceed 100000 Bytes or > | > | >>> | > | Oops: > | > | >>> | > | > | > | >>> | > | ObjectID Class ClassName > | > | >>> | > | LogicalSize > | > | >>> | > | -------------------------------------------------------------------------------------------------------------- > | > | >>> | > | 305743617 74753 String > | > | >>> | > | 134740 Oops > | > | >>> | > | 149534721 74753 String > | > | >>> | > | 164661 Oops > | > | >>> | > | 173784833 74753 String > | > | >>> | > | 163312 Oops > | > | >>> | > | 196368897 74753 String > | > | >>> | > | 164661 Oops > | > | >>> | > | 305774593 74753 String > | > | >>> | > | 134740 Oops > | > | >>> | > | 175519489 74753 String > | > | >>> | > | 376305 Oops > | > | >>> | > | 196571393 74753 String > | > | >>> | > | 379399 Oops > | > | >>> | > | 175494145 74753 String > | > | >>> | > | 201874 Oops > | > | >>> | > | 197005569 74753 String > | > | >>> | > | 202074 Oops > | > | >>> | > | 149996289 74753 String > | > | >>> | > | 236426 Oops > | > | >>> | > | 151722753 74753 String > | > | >>> | > | 379399 Oops > | > | >>> | > | 151723777 74753 String > | > | >>> | > | 202074 Oops > | > | >>> | > | 274619393 74753 String > | > | >>> | > | 1170577 Oops > | > | >>> | > | 265139713 74753 String > | > | >>> | > | 1170577 Oops > | > | >>> | > | 215910913 66817 Array > | > | >>> | > | 331214 Oops > | > | >>> | > | 164965121 74753 String > | > | >>> | > | 236201 Oops > | > | >>> | > | 197155585 74753 String > | > | >>> | > | 236426 Oops > | > | >>> | > | 271373057 74753 String > | > | >>> | > | 1170577 Oops > | > | >>> | > | 268426753 74753 String > | > | >>> | > | 134740 Oops > | > | >>> | > | 264103681 74753 String > | > | >>> | > | 1170577 Oops > | > | >>> | > | > | > | >>> | > | ----------- Object Statistics Summary ----------------- > | > | >>> | > | > | > | >>> | > | ----- Instances of invisible (private) classes ------ > | > | >>> | > | Number of instances: 1072 > | > | >>> | > | Total size: 15855 K Bytes > | > | >>> | > | Average size: 14.8 Bytes > | > | >>> | > | > | > | >>> | > | Class: 209153 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 209409 Instances: 1072 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 15855 K Bytes > | > | >>> | > | Class: 209665 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 209921 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 210177 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 210433 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 210689 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 210945 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 211201 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 211457 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 211713 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 211969 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 212225 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 212481 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 212737 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 212993 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 213249 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 213505 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 213761 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | > | > | >>> | > | > | > | >>> | > | ----- Instances of visible classes ----------------- > | > | >>> | > | Number of objects : 1633432 > | > | >>> | > | Total Size : 157861 K Bytes > | > | >>> | > | size of Object Headers : 38283 K Bytes > | > | >>> | > | size of Object Values : 116978 K Bytes > | > | >>> | > | size of Object Tags : 0 K Bytes > | > | >>> | > | average of Object Value: 73.3 Bytes > | > | >>> | > | > | > | >>> | > | Object Audit: Audit successfully completed; no errors > | > | >>> | > | were > | > | >>> | > | detected. > | > | >>> | > | --setGcConfig: set reclaimMinPages to 40 > | > | >>> | > | --setGcConfig: set reclaimSleepTime to 10 > | > | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 > | > | >>> | > | --postReclaimAll: restored reclaimMinPages to 40 > | > | >>> | > | true > | > | >>> | > | topaz 1> printit > | > | >>> | > | SystemRepository markForCollection > | > | >>> | > | % > | > | >>> | > | start MFC mark/sweep phase: 02/11/2012 12:08:56 PM UTC > | > | >>> | > | WARNING, unable to resolve either > | > | >>> | > | garMarkSweepPageBufSize > | > | >>> | > | or > | > | >>> | > | mfcGcPageBufSize, using default 320 > | > | >>> | > | MarkSweepArgsSType::(): buffer size= 320 pages > | > | >>> | > | start MFC process dead phase: 02/11/2012 12:08:59 PM > | > | >>> | > | UTC > | > | >>> | > | end MFC: 02/11/2012 12:08:59 PM UTC > | > | >>> | > | Successful completion of markForCollection. > | > | >>> | > | 1613875 live objects found. > | > | >>> | > | 20629 possible dead objects, occupying > | > | >>> | > | approximately > | > | >>> | > | 1856610 > | > | >>> | > | bytes, may be reclaimed. > | > | >>> | > | topaz 1> printit > | > | >>> | > | SystemRepository reclaimAll > | > | >>> | > | % > | > | >>> | > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 > | > | >>> | > | to 3 > | > | >>> | > | --setGcConfig: set reclaimMinPages to 1 > | > | >>> | > | --reclaimAll: changed reclaimMinPages from 40 to 1 > | > | >>> | > | --setGcConfig: set reclaimSleepTime to 1 > | > | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 > | > | >>> | > | --reclaimAll: using reclaimDeadEnabled true > | > | >>> | > | --reclaimAll: simpleCommit loopCount 10 > | > | >>> | > | an Array > | > | >>> | > | #1 40 > | > | >>> | > | #2 10 > | > | >>> | > | #3 0 > | > | >>> | > | > | > | >>> | > | topaz 1> printit > | > | >>> | > | SystemRepository objectAudit > | > | >>> | > | % > | > | >>> | > | --reclaimAll: changed StnSignalAbortCrBacklog from 20 > | > | >>> | > | to 3 > | > | >>> | > | --setGcConfig: set reclaimMinPages to 1 > | > | >>> | > | --reclaimAll: changed reclaimMinPages from 1 to 1 > | > | >>> | > | --setGcConfig: set reclaimSleepTime to 1 > | > | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 > | > | >>> | > | --reclaimAll: using reclaimDeadEnabled true > | > | >>> | > | 02/11/2012 12:11:27 PM.328 UTC: Starting object table > | > | >>> | > | scan > | > | >>> | > | 02/11/2012 12:11:27 PM.921 UTC: Finished object table > | > | >>> | > | scan > | > | >>> | > | > | > | >>> | > | Object audit is proceeding in FullAudit mode: > | > | >>> | > | Scavenging completed (either single user mode or no > | > | >>> | > | pages > | > | >>> | > | to > | > | >>> | > | scavenge). > | > | >>> | > | All audit checks are enabled. > | > | >>> | > | > | > | >>> | > | Object audit as of 02/11/2012 12:11:27 PM UTC. > | > | >>> | > | Summary of objects whose sizes exceed 100000 Bytes or > | > | >>> | > | Oops: > | > | >>> | > | > | > | >>> | > | ObjectID Class ClassName > | > | >>> | > | LogicalSize > | > | >>> | > | -------------------------------------------------------------------------------------------------------------- > | > | >>> | > | 305743617 74753 String > | > | >>> | > | 134740 Oops > | > | >>> | > | 149534721 74753 String > | > | >>> | > | 164661 Oops > | > | >>> | > | 173784833 74753 String > | > | >>> | > | 163312 Oops > | > | >>> | > | 196368897 74753 String > | > | >>> | > | 164661 Oops > | > | >>> | > | 305774593 74753 String > | > | >>> | > | 134740 Oops > | > | >>> | > | 175519489 74753 String > | > | >>> | > | 376305 Oops > | > | >>> | > | 196571393 74753 String > | > | >>> | > | 379399 Oops > | > | >>> | > | 175494145 74753 String > | > | >>> | > | 201874 Oops > | > | >>> | > | 197005569 74753 String > | > | >>> | > | 202074 Oops > | > | >>> | > | 149996289 74753 String > | > | >>> | > | 236426 Oops > | > | >>> | > | 151722753 74753 String > | > | >>> | > | 379399 Oops > | > | >>> | > | 151723777 74753 String > | > | >>> | > | 202074 Oops > | > | >>> | > | 274619393 74753 String > | > | >>> | > | 1170577 Oops > | > | >>> | > | 265139713 74753 String > | > | >>> | > | 1170577 Oops > | > | >>> | > | 215910913 66817 Array > | > | >>> | > | 331214 Oops > | > | >>> | > | 164965121 74753 String > | > | >>> | > | 236201 Oops > | > | >>> | > | 197155585 74753 String > | > | >>> | > | 236426 Oops > | > | >>> | > | 271373057 74753 String > | > | >>> | > | 1170577 Oops > | > | >>> | > | 268426753 74753 String > | > | >>> | > | 134740 Oops > | > | >>> | > | 264103681 74753 String > | > | >>> | > | 1170577 Oops > | > | >>> | > | > | > | >>> | > | ----------- Object Statistics Summary ----------------- > | > | >>> | > | > | > | >>> | > | ----- Instances of invisible (private) classes ------ > | > | >>> | > | Number of instances: 1072 > | > | >>> | > | Total size: 15855 K Bytes > | > | >>> | > | Average size: 14.8 Bytes > | > | >>> | > | > | > | >>> | > | Class: 209153 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 209409 Instances: 1072 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 15855 K Bytes > | > | >>> | > | Class: 209665 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 209921 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 210177 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 210433 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 210689 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 210945 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 211201 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 211457 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 211713 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 211969 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 212225 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 212481 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 212737 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 212993 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 213249 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 213505 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | Class: 213761 Instances: 0 > | > | >>> | > | Total > | > | >>> | > | Size: > | > | >>> | > | 0 K Bytes > | > | >>> | > | > | > | >>> | > | > | > | >>> | > | ----- Instances of visible classes ----------------- > | > | >>> | > | Number of objects : 1612803 > | > | >>> | > | Total Size : 156912 K Bytes > | > | >>> | > | size of Object Headers : 37800 K Bytes > | > | >>> | > | size of Object Values : 116516 K Bytes > | > | >>> | > | size of Object Tags : 0 K Bytes > | > | >>> | > | average of Object Value: 74.0 Bytes > | > | >>> | > | > | > | >>> | > | Object Audit: Audit successfully completed; no errors > | > | >>> | > | were > | > | >>> | > | detected. > | > | >>> | > | --setGcConfig: set reclaimMinPages to 1 > | > | >>> | > | --setGcConfig: set reclaimSleepTime to 1 > | > | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 > | > | >>> | > | --postReclaimAll: restored reclaimMinPages to 1 > | > | >>> | > | true > | > | >>> | > | topaz 1> > | > | >>> | > | topaz 1> > | > | >>> | > | > | > | >>> | > | > | > | >>> | > | > If, as I suspect, you've got corruption in GsProcess > | > | >>> | > | > objects > | > | >>> | > | > they > | > | >>> | > | > only impact Seaside session state, and should have > | > | >>> | > | > disappeared > | > | >>> | > | > by > | > | >>> | > | > the time you run the object audit ... > | > | >>> | > | > > | > | >>> | > | > This problems seems to ring a bell, but it seems to > | > | >>> | > | > me > | > | >>> | > | > that the > | > | >>> | > | > problem I am thinking of showed up in GemStone 3.0 > | > | >>> | > | > and I > | > | >>> | > | > think > | > | >>> | > | > it > | > | >>> | > | > was fixed in GemStone 3.0.1... so I'm curious what > | > | >>> | > | > version of > | > | >>> | > | > GemStone you are using. > | > | >>> | > | > > | > | >>> | > | > As I think about this, I seem to recall that the > | > | >>> | > | > problem > | > | >>> | > | > was > | > | >>> | > | > related to deeply nested block structure in a method > | > | >>> | > | > that > | > | >>> | > | > was > | > | >>> | > | > involved in partial continuations, so I am curious if > | > | >>> | > | > you > | > | >>> | > | > happen > | > | >>> | > | > to have some deeply nested block structures let's say > | > | >>> | > | > more than > | > | >>> | > | > 5 > | > | >>> | > | > or 6 levels deep in your method? In fact even in > | > | >>> | > | > 3.0.1 I > | > | >>> | > | > think > | > | >>> | > | > that there might be an effective limit (the engineer > | > | >>> | > | > that > | > | >>> | > | > worked > | > | >>> | > | > on this will be back on Monday for exact details), so > | > | >>> | > | > if > | > | >>> | > | > you > | > | >>> | > | > are > | > | >>> | > | > running with 3.0.1, you should definitely be > | > | >>> | > | > suspicious > | > | >>> | > | > of deep > | > | >>> | > | > nesting of blocks... > | > | >>> | > | > > | > | >>> | > | > Dale > | > | >>> | > | > > | > | >>> | > | > [1] > | > | >>> | > | > http://community.gemstone.com/display/GSS64/GemStoneS+64+Documentation > | > | >>> | > | > > | > | >>> | > | > ----- Original Message ----- > | > | >>> | > | > | From: "Lawrence Kellogg" <[hidden email]> > | > | >>> | > | > | To: "GemStone Seaside beta discussion" > | > | >>> | > | > | <[hidden email]> > | > | >>> | > | > | Sent: Friday, February 10, 2012 2:13:15 PM > | > | >>> | > | > | Subject: [GS/SS Beta] Object does not exist error - > | > | >>> | > | > | Worry > | > | >>> | > | > | about > | > | >>> | > | > | it? > | > | >>> | > | > | > | > | >>> | > | > | > | > | >>> | > | > | > | > | >>> | > | > | Hello, > | > | >>> | > | > | After a long series of calls and answers in > | > | >>> | > | > | Seaside, I > | > | >>> | > | > | got an > | > | >>> | > | > | Object > | > | >>> | > | > | does not exist error that brought down the fast cgi > | > | >>> | > | > | gateway. > | > | >>> | > | > | My > | > | >>> | > | > | production error handler was not triggered, > | > | >>> | > | > | although it > | > | >>> | > | > | was > | > | >>> | > | > | installed, as far as I could tell. Strange. My > | > | >>> | > | > | supervise > | > | >>> | > | > | fastcgi > | > | >>> | > | > | process also did not pick up my dead fastcgi > | > | >>> | > | > | process. > | > | >>> | > | > | Not a > | > | >>> | > | > | good > | > | >>> | > | > | day. > | > | >>> | > | > | > | > | >>> | > | > | Here is the walkback: > | > | >>> | > | > | > | > | >>> | > | > | > | > | >>> | > | > | > | > | >>> | > | > | USER IDS: REAL=seasideuser (500) > | > | >>> | > | > | EFFECTIVE=seasideuser > | > | >>> | > | > | (500) > | > | >>> | > | > | | > | > | >>> | > | > | |_____________________________________________________________________________| > | > | >>> | > | > | topaz> topaz> topaz> topaz> topaz> topaz> topaz> > | > | >>> | > | > | [Info]: LNK > | > | >>> | > | > | client/gem GCI levels = 844/844 > | > | >>> | > | > | [Info]: User ID: DataCurator > | > | >>> | > | > | [Info]: Repository: seaside > | > | >>> | > | > | [Info]: Session ID: 5 > | > | >>> | > | > | [Info]: GCI Client Host: <Linked> > | > | >>> | > | > | [Info]: Page server PID: -1 > | > | >>> | > | > | [Info]: Login Time: 02/10/2012 09:27:56 PM.572 UTC > | > | >>> | > | > | [02/10/2012 09:27:56 PM.592 UTC] gci login: > | > | >>> | > | > | currSession > | > | >>> | > | > | 1 rpc > | > | >>> | > | > | gem > | > | >>> | > | > | processId -1 > | > | >>> | > | > | successful login > | > | >>> | > | > | topaz 1> topaz 1> [20 sz:0 cls: 76289 > | > | >>> | > | > | UndefinedObject] > | > | >>> | > | > | nil > | > | >>> | > | > | topaz 1> topaz 1> [76033 sz:19 cls: 801793 System > | > | >>> | > | > | class] > | > | >>> | > | > | System > | > | >>> | > | > | class > | > | >>> | > | > | superClass [72193 sz:19 cls: 206081 Object class] > | > | >>> | > | > | Object > | > | >>> | > | > | class > | > | >>> | > | > | format [258 sz:0 cls: 74241 SmallInteger] 32 > | > | >>> | > | > | instVars [2 sz:0 cls: 74241 SmallInteger] 0 > | > | >>> | > | > | instVarNames [422145 sz:0 cls: 66817 Array] an > | > | >>> | > | > | Array > | > | >>> | > | > | constraints [421889 sz:0 cls: 66817 Array] an Array > | > | >>> | > | > | classVars [421633 sz:26 cls: 111361 > | > | >>> | > | > | SymbolDictionary] a > | > | >>> | > | > | SymbolDictionary > | > | >>> | > | > | methodDict [711937 sz:112 cls: 99073 > | > | >>> | > | > | GsMethodDictionary] a > | > | >>> | > | > | GsMethodDictionary > | > | >>> | > | > | poolDictionaries [421377 sz:0 cls: 66817 Array] an > | > | >>> | > | > | Array > | > | >>> | > | > | categories [421121 sz:28 cls: 99073 > | > | >>> | > | > | GsMethodDictionary] > | > | >>> | > | > | a > | > | >>> | > | > | GsMethodDictionary > | > | >>> | > | > | secondarySuperclasses [20 sz:0 cls: 76289 > | > | >>> | > | > | UndefinedObject] > | > | >>> | > | > | nil > | > | >>> | > | > | name [801537 sz:6 cls: 110849 Symbol] System > | > | >>> | > | > | classHistory [420865 sz:3 cls: 82689 ClassHistory] > | > | >>> | > | > | a > | > | >>> | > | > | ClassHistory > | > | >>> | > | > | description [13498369 sz:10 cls: 95233 > | > | >>> | > | > | GsClassDocumentation] > | > | >>> | > | > | a > | > | >>> | > | > | GsClassDocumentation > | > | >>> | > | > | migrationDestination [20 sz:0 cls: 76289 > | > | >>> | > | > | UndefinedObject] nil > | > | >>> | > | > | timeStamp [14510593 sz:4 cls: 118785 DateTime] a > | > | >>> | > | > | DateTime > | > | >>> | > | > | userId [14508801 sz:10 cls: 74753 String] > | > | >>> | > | > | SystemUser > | > | >>> | > | > | extraDict [14524929 sz:14 cls: 111361 > | > | >>> | > | > | SymbolDictionary] > | > | >>> | > | > | a > | > | >>> | > | > | SymbolDictionary > | > | >>> | > | > | classCategory [20 sz:0 cls: 76289 UndefinedObject] > | > | >>> | > | > | nil > | > | >>> | > | > | subclasses [20 sz:0 cls: 76289 UndefinedObject] nil > | > | >>> | > | > | > | > | >>> | > | > | > | > | >>> | > | > | topaz 1> topaz 1> WAFastCGIAdaptor Server started > | > | >>> | > | > | on > | > | >>> | > | > | port > | > | >>> | > | > | 9001 > | > | >>> | > | > | ----------------------------------------------------- > | > | >>> | > | > | GemStone: Error Nonfatal > | > | >>> | > | > | The object with object ID 81065894683350528 does > | > | >>> | > | > | not > | > | >>> | > | > | exist. > | > | >>> | > | > | Error Category: 231169 [GemStone] Number: 2101 Arg > | > | >>> | > | > | Count: 1 > | > | >>> | > | > | Context : > | > | >>> | > | > | 526648321 > | > | >>> | > | > | Arg 1: [648527157466804226 sz:0 cls: 74241 > | > | >>> | > | > | SmallInteger] > | > | >>> | > | > | 81065894683350528 > | > | >>> | > | > | > | > | >>> | > | > | > | > | >>> | > | > | Now executing the following command saved from > | > | >>> | > | > | "iferr > | > | >>> | > | > | 1": > | > | >>> | > | > | where > | > | >>> | > | > | ==> 1 GsProcess class >> > | > | >>> | > | > | installPartialContinuation:atLevel:value: @2 > | > | >>> | > | > | line 1 [GsMethod 4487425] > | > | >>> | > | > | 2 WAPartialContinuation >> value: @13 line 11 > | > | >>> | > | > | [GsMethod > | > | >>> | > | > | 212791041] > | > | >>> | > | > | 3 WAPartialContinuation >> > | > | >>> | > | > | valueWithPossibleArguments: > | > | >>> | > | > | @2 > | > | >>> | > | > | line 2 > | > | >>> | > | > | [GsMethod 218326273] > | > | >>> | > | > | 4 ComplexBlock in WAComponent >> > | > | >>> | > | > | show:onAnswer:delegation: @7 > | > | >>> | > | > | line 7 > | > | >>> | > | > | [GsMethod 194749185] > | > | >>> | > | > | 5 ComplexBlock in ExecutableBlock >> > | > | >>> | > | > | valueWithPossibleArguments: > | > | >>> | > | > | @12 > | > | >>> | > | > | line 8 [GsMethod 116163585] > | > | >>> | > | > | 6 WAAnswerHandler >> handleAnswer:continueWith: @3 > | > | >>> | > | > | line > | > | >>> | > | > | 2 > | > | >>> | > | > | [GsMethod > | > | >>> | > | > | 194735873] > | > | >>> | > | > | 7 WADecoration >> handleAnswer: @6 line 3 [GsMethod > | > | >>> | > | > | 194731009] > | > | >>> | > | > | 8 WAComponent >> answer: @2 line 5 [GsMethod > | > | >>> | > | > | 194751745] > | > | >>> | > | > | > | > | >>> | > | > | > | > | >>> | > | > | > | > | >>> | > | > | > | > | >>> | > | > | I found this on the net: > | > | >>> | > | > | > | > | >>> | > | > | > | > | >>> | > | > | > | > | >>> | > | > | Object does not exist errors > | > | >>> | > | > | GBS applications may encounter object does not > | > | >>> | > | > | exist > | > | >>> | > | > | errors > | > | >>> | > | > | in > | > | >>> | > | > | non-persistent > | > | >>> | > | > | objects. This is due to a problem with the fix for > | > | >>> | > | > | bug > | > | >>> | > | > | #40703 > | > | >>> | > | > | in > | > | >>> | > | > | version > | > | >>> | > | > | 2.4.4, which resulted in non-persistent objects not > | > | >>> | > | > | properly > | > | >>> | > | > | protected > | > | >>> | > | > | from garbage collection. > | > | >>> | > | > | > | > | >>> | > | > | Workaround: > | > | >>> | > | > | > | > | >>> | > | > | none/not applicable > | > | >>> | > | > | from: > | > | >>> | > | > | > | > | >>> | > | > | > | > | >>> | > | > | > | > | >>> | > | > | > | > | >>> | > | > | > | > | >>> | > | > | > | > | >>> | > | > | http://www.gemstone.com/docs/GemStoneS/bugnotes/bugnotes/40948.html > | > | >>> | > | > | > | > | >>> | > | > | > | > | >>> | > | > | > | > | >>> | > | > | So, should I worry about this? I implemented code > | > | >>> | > | > | that > | > | >>> | > | > | allowed a > | > | >>> | > | > | user > | > | >>> | > | > | to call an editor, switch out on the navigation > | > | >>> | > | > | menu, > | > | >>> | > | > | call > | > | >>> | > | > | another > | > | >>> | > | > | editor, > | > | >>> | > | > | switch out. With each switch, I send answer: false > | > | >>> | > | > | to > | > | >>> | > | > | the > | > | >>> | > | > | open > | > | >>> | > | > | editor > | > | >>> | > | > | to close it so that it is not hanging around open. > | > | >>> | > | > | My > | > | >>> | > | > | idea > | > | >>> | > | > | was to hide the section navigation when the editor > | > | >>> | > | > | came > | > | >>> | > | > | up > | > | >>> | > | > | but > | > | >>> | > | > | I'm > | > | >>> | > | > | getting push back from my user. > | > | >>> | > | > | > | > | >>> | > | > | > | > | >>> | > | > | What do you think? > | > | >>> | > | > | > | > | >>> | > | > | > | > | >>> | > | > | Larry > | > | >>> | > | > | > | > | >>> | > | > | > | > | >>> | > | > | > | > | >>> | > | > | > | > | >>> | > | > | > | >>> | > | > | > | >>> | > | > | >>> | > | > | >> > | > | > > | > | > | > | > | > | |
Larry,
It should be dumped to the log file ... One time I stalked a bug for 9 months:) Dale ----- Original Message ----- | From: "Lawrence Kellogg" <[hidden email]> | To: "GemStone Seaside beta discussion" <[hidden email]> | Sent: Wednesday, February 29, 2012 6:01:59 AM | Subject: Re: [GS/SS Beta] Object does not exist error - Worry about it? | | | On Feb 28, 2012, at 3:55 PM, Dale Henrichs wrote: | | > Larry, | > | > The C stack dump will tell us where in the vm the error is | > occurring. If you are doing this in your Staging environment then | > you can attach the c process with gdb and get the stack dump ... | > with a live gdb we may want additional info ... the stack dump | > will be useful to start. | > | > With the smalltalk stack we'll get to look at the objects around | > the corrupt object and perhaps learn something ... | > | > Right now, I am curious whether the corrupt object is a WAValue or | > a WADelegation… | > | | Dale, | I've been banging on my Staging system all morning, and haven't | made it crash yet. It's a strange bug. Sometimes, it pops up on | the most innocent click when switching between views. In this | case, I'm hitting call/answers many, many times, to try to make it | fail. I thought we had seen it fail this way in the past, but now | I'm not sure. | | I guess it is good news that the bug is difficult to reproduce. | I'll keep trying. | | Where does the C stack get dumped when it gets dumped? To the | console or a file? | | Larry | | | | > Dale | > | > ----- Original Message ----- | > | From: "Lawrence Kellogg" <[hidden email]> | > | To: "GemStone Seaside beta discussion" | > | <[hidden email]> | > | Sent: Tuesday, February 28, 2012 12:19:33 PM | > | Subject: Re: [GS/SS Beta] Object does not exist error - Worry | > | about it? | > | | > | | > | On Feb 28, 2012, at 2:41 PM, Dale Henrichs wrote: | > | | > | > Larry, | > | > | > | > Okay, here's the stack that covers the range of the partial | > | > continuation: | > | > | > | > ==> 1 WAComponent >> decoration @3 line 1 [GsMethod | > | > 194749441] | > | > 2 WAComponent >> addDecoration: @2 line 6 [GsMethod | > | > 194748417] | > | > 3 WAComponent >> show:onAnswerelegation: @10 line 8 [GsMethod | > | > 194749185] | > | > 4 WAComponent >> show:onAnswer: @5 line 5 [GsMethod | > | > 499699713] | > | > 5 WAComponent >> call:onAnswer: @5 line 8 [GsMethod | > | > 194750977] | > | > 6 ComplexBlock in WAComponent >> call: @3 line 4 [GsMethod | > | > 191317249] | > | > 7 ComplexBlock in WAComponent >> wait: @3 line 3 [GsMethod | > | > 191268353] | > | > 8 GRGemStonePlatform >> seasideSuspendFlowDo: @9 line 5 | > | > [GsMethod | > | > 499655937] | > | > 9 WAComponent >> wait: @4 line 3 [GsMethod 191268353] | > | > 10 WAComponent >> call: @4 line 4 [GsMethod 191317249] | > | > 11 PracticeJournalLoginTask >> go @14 line 9 [GsMethod | > | > 371393537] | > | > 12 WATask >> execute @1 line 7 [GsMethod 195261697] | > | > 13 ComplexBlock in WATaskVisitor >> visitTask: @6 line 4 | > | > [GsMethod 194755841] | > | > | > | > WAComponent >> decoration is the source of the error and it is | > | > sending #contents to a 'decoration' of the component ... it's | > | > not | > | > quite clear whether the decoration iv is the corrupt object or | > | > the | > | > result of the #contents message send ... | > | > | > | > To get a better picture of what's happening we need a C stack | > | > when | > | > the error occurs. If you set | > | > | > | > GEM_HALT_ON_ERROR = 2101; | > | > | > | > in your system.conf file, then when the obj does not exist | > | > error | > | > occurs the gem will halt, dump a c stack, wait 60 seconds and | > | > then | > | > shutdown ... This is pretty intrusive, but it will get us a | > | > couple | > | > steps closer to understanding what's going on. | > | > | > | > If you (or Johan) can duplicate the error under controlled | > | > conditions then you would fire up a topaz manually to service | > | > requests and when the halt on error hits, you'll be dropped to | > | > the | > | > topaz prompt where you can view the smalltalk stack and inspect | > | > the objects involved … | > | > | > | | > | Thanks, Dale. I think I can make it crash in my Staging | > | environment | > | by going through many call/answers invocations. I will try. | > | Unfortunately, I don't think I know enough about what Seaside is | > | doing at that level to fix the problem. I see that the | > | WADecoration is a WAValueHolder but that's about the end of my | > | knowledge. | > | | > | I guess there is no way of knowing from this stack dump what | > | kind | > | of WADecoration we're talking about. | > | | > | Regards, | > | | > | Larry | > | | > | | > | > Dale | > | > | > | > ----- Original Message ----- | > | > | From: "Lawrence Kellogg" <[hidden email]> | > | > | To: "GemStone Seaside beta discussion" | > | > | <[hidden email]> | > | > | Sent: Monday, February 27, 2012 7:01:58 PM | > | > | Subject: Re: [GS/SS Beta] Object does not exist error - Worry | > | > | about it? | > | > | | > | > | | > | > | On Feb 21, 2012, at 2:40 PM, Johan Brichau wrote: | > | > | | > | > | > fyi, I have been observing occurrences of this bug as well, | > | > | > with | > | > | > exactly the same point of failure in the stack. | > | > | > | > | > | > No repository problems or audit warnings. | > | > | > | > | > | > Funnily, I've never seen this in any stone running Yesplan. | > | > | > The | > | > | > stone where we have this problem is also running a Seaside | > | > | > application but the only discriminating factor I can | > | > | > observe is | > | > | > that this application uses call/answer a lot more (while we | > | > | > almost | > | > | > never use that in Yesplan). It probably does not help a lot | > | > | > finding the error... but I will look up the stack traces | > | > | > and | > | > | > post | > | > | > them here if they might contain some clues. | > | > | | > | > | Hello Johan, | > | > | Thanks for looking into this problem. I use call/answer | > | > | quite a | > | > | bit. | > | > | | > | > | Dale, did you see the stack dump I posted? | > | > | | > | > | Larry | > | > | | > | > | | > | > | > | > | > | > On 21 Feb 2012, at 20:13, Lawrence Kellogg wrote: | > | > | > | > | > | >> | > | > | >> On Feb 21, 2012, at 1:05 PM, Dale Henrichs wrote: | > | > | >> | > | > | >>> Larry, | > | > | >>> | > | > | >>> We should try to dig into this one some more. | > | > | >>> | > | > | >>> To start with what version of Gemstone are you using? If | > | > | >>> you | > | > | >>> are | > | > | >>> using 2.4.4.1, then I'm not aware of an issue that would | > | > | >>> warrant | > | > | >>> an upgrade to 2.4.5, but I will check around a bit...As I | > | > | >>> said | > | > | >>> before, the only place that I've seen "Obj does not exist | > | > | >>> errors" is in 3.0 and those bugs were fixed in 3.0.1. | > | > | >>> | > | > | >> | > | > | >> Dale, | > | > | >> Thanks for the help. I would like to get to the bottom of | > | > | >> this | > | > | >> error. This crash takes down Fastcgi so it kills the | > | > | >> service. | > | > | >> | > | > | >> According to the file in the directory, I'm on 2.4.[ | > | > | >> component | > | > | >> notNil ] | > | > | >> whileTrue: [ | > | > | >> self call: component. | > | > | >> component := component nextComponentToBeDisplayed ] | > | > | >> ]4.1 | > | > | >> | > | > | >> GemStone64Bit2.4.4.1-x86_64.Linux | > | > | >> | > | > | >> | > | > | >> | > | > | >> | > | > | >>> This time we are getting the error while creating the | > | > | >>> continuation ... the last episode occurred when you were | > | > | >>> trying | > | > | >>> to execute from a continuation. | > | > | >>> | > | > | >>> Could you share the source code for | > | > | >>> PracticeJournalLoginTask | > | > | >>> >> | > | > | >>> go? That's the first non-Seaside method on the stack | > | > | >>> below | > | > | >>> the | > | > | >>> error, so it's as good a place as any to start … | > | > | >>> | > | > | >> | > | > | >> Here is the complete source code for the go method: ;-) | > | > | >> | > | > | >> go | > | > | >> | user component | | > | > | >> self call: self userLoginView. | > | > | >> (self userLoginView user) notNil | > | > | >> ifTrue: [ | > | > | >> component := self firstComponentToDisplayForUser: self | > | > | >> userLoginView user. | > | > | >> [ component notNil ] | > | > | >> whileTrue: [ | > | > | >> self call: component. | > | > | >> component := component nextComponentToBeDisplayed ] ] | > | > | >> | > | > | >> A component is called, and when another component is | > | > | >> selected | > | > | >> the | > | > | >> current component is sent answer: false and | > | > | >> the new component to call is returned from that | > | > | >> nextComponentToBeDisplayed method. | > | > | >> | > | > | >> I used to have an implementation that would give me a huge | > | > | >> recursive nesting of continuations, as shown by | > | > | >> halo, but this shows everything on just a few levels, | > | > | >> although | > | > | >> I | > | > | >> have to say that the walkback looks deep and gnarly. | > | > | >> | > | > | >> | > | > | >>> It would be useful to see the entire stack as well. The | > | > | >>> partial | > | > | >>> continuation copies the stack back to a marker method and | > | > | >>> it | > | > | >>> would be useful to examine the source for the methods | > | > | >>> that | > | > | >>> are | > | > | >>> on the stck for clues as to what might be going on... | > | > | >>> | > | > | >>> Dale | > | > | >> | > | > | >> | > | > | >> Here is the complete walk back: | > | > | >> | > | > | >> topaz 1> topaz 1> WAFastCGIAdaptor Server started on port | > | > | >> 9001 | > | > | >> ----------------------------------------------------- | > | > | >> GemStone: Error Nonfatal | > | > | >> The object with object ID 76562293713797632 does not | > | > | >> exist. | > | > | >> Error Category: 231169 [GemStone] Number: 2101 Arg Count: | > | > | >> 1 | > | > | >> Context : 412915713 | > | > | >> Arg 1: [612498349710381058 sz:0 cls: 74241 SmallInteger] | > | > | >> 76562293713797632 | > | > | >> | > | > | >> Now executing the following command saved from "iferr 1": | > | > | >> where | > | > | >> ==> 1 WAComponent >> decoration @3 line 1 [GsMethod | > | > | >> 194749441] | > | > | >> 2 WAComponent >> addDecoration: @2 line 6 [GsMethod | > | > | >> 194748417] | > | > | >> 3 WAComponent >> show:onAnswer:delegation: @10 line 8 | > | > | >> [GsMethod | > | > | >> 194749185] | > | > | >> 4 WAComponent >> show:onAnswer: @5 line 5 [GsMethod | > | > | >> 499699713] | > | > | >> 5 WAComponent >> call:onAnswer: @5 line 8 [GsMethod | > | > | >> 194750977] | > | > | >> 6 ComplexBlock in WAComponent >> call: @3 line 4 | > | > | >> [GsMethod | > | > | >> 191317249] | > | > | >> 7 ComplexBlock in WAComponent >> wait: @3 line 3 | > | > | >> [GsMethod | > | > | >> 191268353] | > | > | >> 8 GRGemStonePlatform >> seasideSuspendFlowDo: @9 line 5 | > | > | >> [GsMethod 499655937] | > | > | >> 9 WAComponent >> wait: @4 line 3 [GsMethod 191268353] | > | > | >> 10 WAComponent >> call: @4 line 4 [GsMethod 191317249] | > | > | >> 11 PracticeJournalLoginTask >> go @14 line 9 [GsMethod | > | > | >> 371393537] | > | > | >> 12 WATask >> execute @1 line 7 [GsMethod 195261697] | > | > | >> 13 ComplexBlock in WATaskVisitor >> visitTask: @6 line 4 | > | > | >> [GsMethod 194755841] | > | > | >> 14 WACallback >> evaluateWithFieldValues: @5 line 2 | > | > | >> [GsMethod | > | > | >> 177495553] | > | > | >> 15 ComplexBlock in WACallbackRegistry >> handle: @16 line | > | > | >> 10 | > | > | >> [GsMethod 177951489] | > | > | >> 16 Collection >> do: @5 line 10 [GsMethod 1547777] | > | > | >> 17 WACallbackRegistry >> handle: @17 line 9 [GsMethod | > | > | >> 177951489] | > | > | >> 18 ComplexBlock in WAActionPhaseContinuation >> | > | > | >> runCallbacks | > | > | >> @7 | > | > | >> line 4 [GsMethod 202613505] | > | > | >> 19 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | > | > | >> 10065409] | > | > | >> 20 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | > | > | >> 10062081] | > | > | >> 21 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | > | > | >> [GsMethod | > | > | >> 9005057] | > | > | >> 22 WARenderLoopContinuation >> withNotificationHandlerDo: | > | > | >> @3 | > | > | >> line | > | > | >> 2 [GsMethod 202608385] | > | > | >> 23 ComplexVCBlock in WAActionPhaseContinuation >> | > | > | >> runCallbacks | > | > | >> @8 | > | > | >> line 3 [GsMethod 202613505] | > | > | >> 24 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | > | > | >> [GsMethod 2304001] | > | > | >> 25 ComplexVCBlock in ExecutableBlock >> ensure: @6 line 11 | > | > | >> [GsMethod 2304001] | > | > | >> 26 WAActionPhaseContinuation >> runCallbacks @18 line 6 | > | > | >> [GsMethod 202613505] | > | > | >> 27 WAActionPhaseContinuation >> handleRequest @1 line 2 | > | > | >> [GsMethod 202614017] | > | > | >> 28 ComplexBlock in WASessionContinuation >> basicValue @3 | > | > | >> line | > | > | >> 2 | > | > | >> [GsMethod 202625537] | > | > | >> 29 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | > | > | >> 10065409] | > | > | >> 30 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | > | > | >> 10062081] | > | > | >> 31 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | > | > | >> [GsMethod | > | > | >> 9005057] | > | > | >> 32 WASessionContinuation >> withUnregisteredHandlerDo: @7 | > | > | >> line | > | > | >> 3 | > | > | >> [GsMethod 202627073] | > | > | >> 33 WASessionContinuation >> basicValue @4 line 2 | > | > | >> [GsMethod | > | > | >> 202625537] | > | > | >> 34 WASessionContinuation >> value @3 line 5 [GsMethod | > | > | >> 202623745] | > | > | >> 35 WASession >> handleFiltered: @14 line 10 [GsMethod | > | > | >> 202205441] | > | > | >> 36 WARequestFilter >> handleFiltered: @2 line 4 | > | > | >> [GsMethod | > | > | >> 176192513] | > | > | >> 37 ComplexBlock in WADeprecatedToolFilter >> | > | > | >> handleFiltered: | > | > | >> @3 | > | > | >> line 2 [GsMethod 203213313] | > | > | >> 38 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | > | > | >> 10065409] | > | > | >> 39 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | > | > | >> 10062081] | > | > | >> 40 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | > | > | >> [GsMethod | > | > | >> 9005057] | > | > | >> 41 WADeprecatedToolFilter >> handleFiltered: @6 line 3 | > | > | >> [GsMethod | > | > | >> 203213313] | > | > | >> 42 WARequestFilter >> handleFiltered: @2 line 4 | > | > | >> [GsMethod | > | > | >> 176192513] | > | > | >> 43 ComplexBlock in WATimingToolFilter >> handleFiltered: | > | > | >> @4 | > | > | >> line 3 | > | > | >> [GsMethod 203208449] | > | > | >> 44 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | > | > | >> [GsMethod 2304001] | > | > | >> 45 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 | > | > | >> [GsMethod 2304001] | > | > | >> 46 WATimingToolFilter >> handleFiltered: @8 line 4 | > | > | >> [GsMethod | > | > | >> 203208449] | > | > | >> 47 ComplexBlock in WARequestHandler >> handle: @4 line 4 | > | > | >> [GsMethod 178568961] | > | > | >> 48 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | > | > | >> 10065409] | > | > | >> 49 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | > | > | >> 10062081] | > | > | >> 50 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | > | > | >> [GsMethod | > | > | >> 9005057] | > | > | >> 51 WADynamicVariable class >> use:during: @4 line 4 | > | > | >> [GsMethod | > | > | >> 177805825] | > | > | >> 52 ComplexBlock in WARequestContext >> push:during: @4 | > | > | >> line 5 | > | > | >> [GsMethod 176176129] | > | > | >> 53 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | > | > | >> [GsMethod 2304001] | > | > | >> 54 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 | > | > | >> [GsMethod 2304001] | > | > | >> 55 WARequestContext >> push:during: @7 line 6 [GsMethod | > | > | >> 176176129] | > | > | >> 56 WARequestHandler >> handle: @5 line 4 [GsMethod | > | > | >> 178568961] | > | > | >> 57 WASession >> handle: @10 line 11 [GsMethod 202210561] | > | > | >> 58 WARegistry >> dispatch:to: @1 line 5 [GsMethod | > | > | >> 176153857] | > | > | >> 59 WARegistry >> handleKeyed:with: @2 line 5 [GsMethod | > | > | >> 176155137] | > | > | >> 60 WARegistry >> handleFiltered: @33 line 19 [GsMethod | > | > | >> 176146945] | > | > | >> 61 WAApplication >> handleFiltered: @9 line 8 [GsMethod | > | > | >> 202644225] | > | > | >> 62 WARequestFilter >> handleFiltered: @2 line 4 | > | > | >> [GsMethod | > | > | >> 176192513] | > | > | >> 63 ComplexBlock in WAExceptionFilter >> handleFiltered: @6 | > | > | >> line 7 | > | > | >> [GsMethod 499529473] | > | > | >> 64 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | > | > | >> 10065409] | > | > | >> 65 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | > | > | >> 10062081] | > | > | >> 66 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | > | > | >> [GsMethod | > | > | >> 9005057] | > | > | >> 67 WADynamicVariable class >> use:during: @4 line 4 | > | > | >> [GsMethod | > | > | >> 177805825] | > | > | >> 68 ComplexVCBlock in WAExceptionFilter >> handleFiltered: | > | > | >> @7 | > | > | >> line | > | > | >> 6 [GsMethod 499529473] | > | > | >> 69 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | > | > | >> 10065409] | > | > | >> 70 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | > | > | >> 10062081] | > | > | >> 71 ComplexVCBlock in ExecutableBlock >> on:do: @2 line 8 | > | > | >> [GsMethod 9005057] | > | > | >> 72 WAExceptionHandler >> handleExceptionsDuring: @8 line 3 | > | > | >> [GsMethod 177803521] | > | > | >> 73 WAExceptionFilter >> handleFiltered: @8 line 4 | > | > | >> [GsMethod | > | > | >> 499529473] | > | > | >> 74 ComplexBlock in WARequestHandler >> handle: @4 line 4 | > | > | >> [GsMethod 178568961] | > | > | >> 75 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | > | > | >> 10065409] | > | > | >> 76 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | > | > | >> 10062081] | > | > | >> 77 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | > | > | >> [GsMethod | > | > | >> 9005057] | > | > | >> 78 WADynamicVariable class >> use:during: @4 line 4 | > | > | >> [GsMethod | > | > | >> 177805825] | > | > | >> 79 ComplexBlock in WARequestContext >> push:during: @4 | > | > | >> line 5 | > | > | >> [GsMethod 176176129] | > | > | >> 80 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | > | > | >> [GsMethod 2304001] | > | > | >> 81 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 | > | > | >> [GsMethod 2304001] | > | > | >> 82 WARequestContext >> push:during: @7 line 6 [GsMethod | > | > | >> 176176129] | > | > | >> 83 WARequestHandler >> handle: @5 line 4 [GsMethod | > | > | >> 178568961] | > | > | >> 84 WADispatcher >> handleFiltered:named: @7 line 5 | > | > | >> [GsMethod | > | > | >> 179090945] | > | > | >> 85 WADispatcher >> handleFiltered: @7 line 6 [GsMethod | > | > | >> 179087617] | > | > | >> 86 ComplexBlock in WARequestHandler >> handle: @4 line 4 | > | > | >> [GsMethod 178568961] | > | > | >> 87 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | > | > | >> 10065409] | > | > | >> 88 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | > | > | >> 10062081] | > | > | >> 89 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | > | > | >> [GsMethod | > | > | >> 9005057] | > | > | >> 90 WADynamicVariable class >> use:during: @4 line 4 | > | > | >> [GsMethod | > | > | >> 177805825] | > | > | >> 91 ComplexBlock in WARequestContext >> push:during: @4 | > | > | >> line 5 | > | > | >> [GsMethod 176176129] | > | > | >> 92 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | > | > | >> [GsMethod 2304001] | > | > | >> 93 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 | > | > | >> [GsMethod 2304001] | > | > | >> 94 WARequestContext >> push:during: @7 line 6 [GsMethod | > | > | >> 176176129] | > | > | >> 95 WARequestHandler >> handle: @5 line 4 [GsMethod | > | > | >> 178568961] | > | > | >> 96 ComplexBlock in WAServerAdaptor >> handleRequest: @4 | > | > | >> line 4 | > | > | >> [GsMethod 176816641] | > | > | >> 97 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | > | > | >> 10065409] | > | > | >> 98 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | > | > | >> 10062081] | > | > | >> 99 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | > | > | >> [GsMethod | > | > | >> 9005057] | > | > | >> 100 WAServerAdaptor >> handleRequest: @6 line 5 | > | > | >> [GsMethod | > | > | >> 176816641] | > | > | >> 101 WAServerAdaptor >> handle: @1 line 4 [GsMethod | > | > | >> 176817921] | > | > | >> 102 ComplexBlock in WAServerAdaptor >> process: @5 line 6 | > | > | >> [GsMethod 176817153] | > | > | >> 103 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | > | > | >> [GsMethod 2304001] | > | > | >> 104 ComplexBlock in ExecutableBlock >> ensure: @6 line 11 | > | > | >> [GsMethod 2304001] | > | > | >> 105 WAServerAdaptor >> process: @9 line 7 [GsMethod | > | > | >> 176817153] | > | > | >> 106 ComplexBlock in WAFastCGIAdaptor >> process: @3 line 6 | > | > | >> [GsMethod 212442369] | > | > | >> 107 ComplexBlock in GRGemStonePlatform >> | > | > | >> seasideProcessRequestWithRetry:resultBlock: @12 line 11 | > | > | >> [GsMethod 175179265] | > | > | >> 108 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | > | > | >> 10065409] | > | > | >> 109 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | > | > | >> 10062081] | > | > | >> 110 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | > | > | >> [GsMethod 9005057] | > | > | >> 111 ComplexVCBlock in GRGemStonePlatform >> | > | > | >> seasideProcessRequestWithRetry:resultBlock: @18 line 12 | > | > | >> [GsMethod 175179265] | > | > | >> 112 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | > | > | >> [GsMethod 2304001] | > | > | >> 113 ComplexVCBlock in ExecutableBlock >> ensure: @6 line | > | > | >> 11 | > | > | >> [GsMethod 2304001] | > | > | >> 114 TransientRecursionLock >> critical: @15 line 8 | > | > | >> [GsMethod | > | > | >> 21159937] | > | > | >> 115 GRGemStonePlatform >> | > | > | >> seasideProcessRequestWithRetry:resultBlock: @39 line 5 | > | > | >> [GsMethod 175179265] | > | > | >> 116 ComplexBlock in GRGemStonePlatform >> | > | > | >> seasideProcessRequest:adaptor:resultBlock: @7 line 9 | > | > | >> [GsMethod | > | > | >> 175179521] | > | > | >> 117 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | > | > | >> 10065409] | > | > | >> 118 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | > | > | >> 10062081] | > | > | >> 119 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | > | > | >> [GsMethod 9005057] | > | > | >> 120 GRGemStonePlatform >> | > | > | >> seasideProcessRequest:adaptor:resultBlock: @32 line 17 | > | > | >> [GsMethod 175179521] | > | > | >> 121 WAFastCGIAdaptor >> process: @4 line 4 [GsMethod | > | > | >> 212442369] | > | > | >> 122 ComplexBlock in WAFastCGIAdaptor >> | > | > | >> answerResponderRole: | > | > | >> @3 | > | > | >> line 4 [GsMethod 212444161] | > | > | >> 123 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | > | > | >> 10065409] | > | > | >> 124 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | > | > | >> 10062081] | > | > | >> 125 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | > | > | >> [GsMethod 9005057] | > | > | >> 126 WAFastCGIAdaptor >> answerResponderRole: @9 line 5 | > | > | >> [GsMethod | > | > | >> 212444161] | > | > | >> 127 FSResponderRole >> answer @2 line 4 [GsMethod | > | > | >> 218695937] | > | > | >> 128 FSRole >> handleConnection @3 line 5 [GsMethod | > | > | >> 218705409] | > | > | >> 129 FSConnection >> unsafeServe @4 line 8 [GsMethod | > | > | >> 219646465] | > | > | >> 130 ComplexBlock in FSConnection >> safeServe @5 line 8 | > | > | >> [GsMethod 499288833] | > | > | >> 131 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | > | > | >> 10065409] | > | > | >> 132 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | > | > | >> 10062081] | > | > | >> 133 ComplexBlock in ExecutableBlock >> on:do: @2 line 8 | > | > | >> [GsMethod 9005057] | > | > | >> 134 ComplexVCBlock in FSConnection >> safeServe @8 line 9 | > | > | >> [GsMethod 499288833] | > | > | >> 135 ExceptionHandler >> doTryBlock: @9 line 7 [GsMethod | > | > | >> 10065409] | > | > | >> 136 ExceptionHandler >> try:on:do: @15 line 18 [GsMethod | > | > | >> 10062081] | > | > | >> 137 ComplexVCBlock in ExecutableBlock >> on:do: @2 line 8 | > | > | >> [GsMethod 9005057] | > | > | >> 138 ComplexVCBlock in FSConnection >> safeServe @11 line | > | > | >> 12 | > | > | >> [GsMethod 499288833] | > | > | >> 139 ComplexBlock in ExecutableBlock >> ensure: @4 line 11 | > | > | >> [GsMethod 2304001] | > | > | >> 140 ComplexVCBlock in ExecutableBlock >> ensure: @6 line | > | > | >> 11 | > | > | >> [GsMethod 2304001] | > | > | >> 141 FSConnection >> safeServe @14 line 15 [GsMethod | > | > | >> 499288833] | > | > | >> 142 FSConnection >> serve @1 line 4 [GsMethod 219654145] | > | > | >> 143 ComplexBlock in FSSocketServer >> listen: @9 line 15 | > | > | >> [GsMethod 219292673] | > | > | >> 144 GsProcess >> _startPart2 @15 line 17 [GsMethod | > | > | >> 4501249] | > | > | >> 145 GsProcess >> _start @1 line 9 [GsMethod 4501761] | > | > | >> [GsProcess 412915713] | > | > | >> topaz 1> [268 sz:0 cls: 68097 Boolean] true | > | > | >> topaz 1> | > | > | >> HostCallDebugger: invoked at: Mon Feb 20 16:38:18 UTC 2012 | > | > | >> | > | > | >> UTL_GUARANTEE failed, File | > | > | >> /export/toronto3/users/buildgss/244x-1/src/omverify.c line | > | > | >> 28 | > | > | >> | > | > | >> Begin attempt to print C-level stack at: Mon Feb 20 | > | > | >> 16:38:18 | > | > | >> UTC | > | > | >> 2012 | > | > | >> | > | > | >> | > | > | >> End of C-level stack: | > | > | >> | > | > | >> | > | > | >> hostcalldebugger invoked in process 6550, at 02/20/2012 | > | > | >> 04:38:18 | > | > | >> PM.681 UTC | > | > | >> notifying stone of fatal error | > | > | >> | > | > | >> [Info]: Logging out at 02/20/2012 04:38:18 PM UTC | > | > | >> | > | > | >> | > | > | >> | > | > | >>> | > | > | >>> ----- Original Message ----- | > | > | >>> | From: "Lawrence Kellogg" <[hidden email]> | > | > | >>> | To: "GemStone Seaside beta discussion" | > | > | >>> | <[hidden email]> | > | > | >>> | Sent: Monday, February 20, 2012 8:48:22 AM | > | > | >>> | Subject: Re: [GS/SS Beta] Object does not exist error - | > | > | >>> | Worry | > | > | >>> | about it? | > | > | >>> | | > | > | >>> | Hello Dale, | > | > | >>> | Well, my system has been up for days, running with no | > | > | >>> | problems, not | > | > | >>> | that it has been getting a lot of traffic, but still, | > | > | >>> | no | > | > | >>> | crashes. | > | > | >>> | Today, I hit the Object does not exist error again. I | > | > | >>> | guess I | > | > | >>> | can | > | > | >>> | do another object audit but, other than that, I'm not | > | > | >>> | sure | > | > | >>> | how to | > | > | >>> | proceed. Do you think an upgrade to 2.4.5 will help | > | > | >>> | me? | > | > | >>> | | > | > | >>> | Here is the walkback: | > | > | >>> | | > | > | >>> | topaz 1> topaz 1> WAFastCGIAdaptor Server started on | > | > | >>> | port | > | > | >>> | 9001 | > | > | >>> | ----------------------------------------------------- | > | > | >>> | GemStone: Error Nonfatal | > | > | >>> | The object with object ID 76562293713797632 does not | > | > | >>> | exist. | > | > | >>> | Error Category: 231169 [GemStone] Number: 2101 Arg | > | > | >>> | Count: 1 | > | > | >>> | Context : | > | > | >>> | 412915713 | > | > | >>> | Arg 1: [612498349710381058 sz:0 cls: 74241 | > | > | >>> | SmallInteger] | > | > | >>> | 76562293713797632 | > | > | >>> | | > | > | >>> | Now executing the following command saved from "iferr | > | > | >>> | 1": | > | > | >>> | where | > | > | >>> | ==> 1 WAComponent >> decoration @3 line 1 [GsMethod | > | > | >>> | 194749441] | > | > | >>> | 2 WAComponent >> addDecoration: @2 line 6 [GsMethod | > | > | >>> | 194748417] | > | > | >>> | 3 WAComponent >> show:onAnswer:delegation: @10 line 8 | > | > | >>> | [GsMethod | > | > | >>> | 194749185] | > | > | >>> | 4 WAComponent >> show:onAnswer: @5 line 5 [GsMethod | > | > | >>> | 499699713] | > | > | >>> | 5 WAComponent >> call:onAnswer: @5 line 8 [GsMethod | > | > | >>> | 194750977] | > | > | >>> | 6 ComplexBlock in WAComponent >> call: @3 line 4 | > | > | >>> | [GsMethod | > | > | >>> | 191317249] | > | > | >>> | 7 ComplexBlock in WAComponent >> wait: @3 line 3 | > | > | >>> | [GsMethod | > | > | >>> | 191268353] | > | > | >>> | 8 GRGemStonePlatform >> seasideSuspendFlowDo: @9 line 5 | > | > | >>> | [GsMethod | > | > | >>> | 499655937] | > | > | >>> | 9 WAComponent >> wait: @4 line 3 [GsMethod 191268353] | > | > | >>> | 10 WAComponent >> call: @4 line 4 [GsMethod | > | > | >>> | 191317249] | > | > | >>> | 11 PracticeJournalLoginTask >> go @14 line 9 | > | > | >>> | [GsMethod | > | > | >>> | 371393537] | > | > | >>> | | > | > | >>> | | > | > | >>> | Larry | > | > | >>> | | > | > | >>> | On Feb 11, 2012, at 2:34 PM, Dale Henrichs wrote: | > | > | >>> | | > | > | >>> | > Larry, | > | > | >>> | > | > | > | >>> | > Yes, everything looks clean, I'm a little bit | > | > | >>> | > surprised | > | > | >>> | > that | > | > | >>> | > you | > | > | >>> | > didn't find the original error in you first audit, | > | > | >>> | > but | > | > | >>> | > the | > | > | >>> | > implication is that the "corrupt object" never got | > | > | >>> | > persisted | > | > | >>> | > ... | > | > | >>> | > indicating some other type of corruption ... | > | > | >>> | > | > | > | >>> | > A clean object audit means that your data base has no | > | > | >>> | > corruption so | > | > | >>> | > you're good to go ... I'll talk to some guys on | > | > | >>> | > Monday | > | > | >>> | > and | > | > | >>> | > see if | > | > | >>> | > they have some ideas as to what might have | > | > | >>> | > happened...there's | > | > | >>> | > a | > | > | >>> | > bug in there somewhere, but for now it looks like it | > | > | >>> | > is | > | > | >>> | > isolated | > | > | >>> | > to the local state in a gem ... | > | > | >>> | > | > | > | >>> | > Dale | > | > | >>> | > | > | > | >>> | > ----- Original Message ----- | > | > | >>> | > | From: "Lawrence Kellogg" <[hidden email]> | > | > | >>> | > | To: "GemStone Seaside beta discussion" | > | > | >>> | > | <[hidden email]> | > | > | >>> | > | Sent: Saturday, February 11, 2012 4:18:06 AM | > | > | >>> | > | Subject: Re: [GS/SS Beta] Object does not exist | > | > | >>> | > | error - | > | > | >>> | > | Worry | > | > | >>> | > | about it? | > | > | >>> | > | | > | > | >>> | > | | > | > | >>> | > | On Feb 10, 2012, at 7:04 PM, Dale Henrichs wrote: | > | > | >>> | > | | > | > | >>> | > | > Larry, | > | > | >>> | > | > | > | > | >>> | > | > Object does not exist errors are not good things | > | > | >>> | > | > ... | > | > | >>> | > | > and | > | > | >>> | > | > the | > | > | >>> | > | > gem | > | > | >>> | > | > coming down in this case is probably a good thing | > | > | >>> | > | > ... | > | > | >>> | > | > The | > | > | >>> | > | > fact | > | > | >>> | > | > that the problem is showing up in a GsProcess | > | > | >>> | > | > means | > | > | >>> | > | > that | > | > | >>> | > | > the | > | > | >>> | > | > Seaside session data structures are corrupted but | > | > | >>> | > | > not | > | > | >>> | > | > your | > | > | >>> | > | > model | > | > | >>> | > | > data ... | > | > | >>> | > | > | > | > | >>> | > | > You can check for corruption in your data base by | > | > | >>> | > | > running | > | > | >>> | > | > an | > | > | >>> | > | > object | > | > | >>> | > | > audit (see section 8.2 of the System | > | > | >>> | > | > Administration | > | > | >>> | > | > Guide[1]). | > | > | >>> | > | > If | > | > | >>> | > | > you follow these steps you own't need to run the | > | > | >>> | > | > object | > | > | >>> | > | > audit | > | > | >>> | > | > as | > | > | >>> | > | > single user (see the docs): | > | > | >>> | > | > | > | > | >>> | > | > - expire sessions | > | > | >>> | > | > - mfc | > | > | >>> | > | > - reclaimAll | > | > | >>> | > | > - object audit | > | > | >>> | > | > | > | > | >>> | > | | > | > | >>> | > | Hello Dale, | > | > | >>> | > | Ok, I ran: | > | > | >>> | > | | > | > | >>> | > | System stopUserSessions | > | > | >>> | > | SystemRepository objectAudit | > | > | >>> | > | SystemRepository markForCollection | > | > | >>> | > | SystemRepository reclaimAll | > | > | >>> | > | SystemRepository objectAudit | > | > | >>> | > | | > | > | >>> | > | I don't see any errors. Here is my log. What do you | > | > | >>> | > | make of | > | > | >>> | > | it? | > | > | >>> | > | | > | > | >>> | > | Larry | > | > | >>> | > | | > | > | >>> | > | | > | > | >>> | > | [Info]: Login Time: 02/11/2012 12:06:22 PM.972 UTC | > | > | >>> | > | [02/11/2012 12:06:23 PM.001 UTC] gci login: | > | > | >>> | > | currSession | > | > | >>> | > | 1 | > | > | >>> | > | rpc gem | > | > | >>> | > | processId -1 | > | > | >>> | > | successful login | > | > | >>> | > | topaz 1> printit | > | > | >>> | > | System hasMissingGcGems | > | > | >>> | > | % | > | > | >>> | > | false | > | > | >>> | > | topaz 1> printit | > | > | >>> | > | System stopUserSessions | > | > | >>> | > | % | > | > | >>> | > | System class | > | > | >>> | > | superClass Object class | > | > | >>> | > | format 32 | > | > | >>> | > | instVars 0 | > | > | >>> | > | instVarNames an Array | > | > | >>> | > | constraints an Array | > | > | >>> | > | classVars a SymbolDictionary | > | > | >>> | > | methodDict a GsMethodDictionary | > | > | >>> | > | poolDictionaries an Array | > | > | >>> | > | categories a GsMethodDictionary | > | > | >>> | > | secondarySuperclasses nil | > | > | >>> | > | name System | > | > | >>> | > | classHistory a ClassHistory | > | > | >>> | > | description a GsClassDocumentation | > | > | >>> | > | migrationDestination nil | > | > | >>> | > | timeStamp a DateTime | > | > | >>> | > | userId SystemUser | > | > | >>> | > | extraDict a SymbolDictionary | > | > | >>> | > | classCategory nil | > | > | >>> | > | subclasses nil | > | > | >>> | > | | > | > | >>> | > | topaz 1> printit | > | > | >>> | > | SystemRepository objectAudit | > | > | >>> | > | % | > | > | >>> | > | --reclaimAll: changed StnSignalAbortCrBacklog from | > | > | >>> | > | 20 | > | > | >>> | > | to 3 | > | > | >>> | > | --setGcConfig: set reclaimMinPages to 1 | > | > | >>> | > | --reclaimAll: changed reclaimMinPages from 40 to 1 | > | > | >>> | > | --setGcConfig: set reclaimSleepTime to 1 | > | > | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | > | > | >>> | > | --reclaimAll: using reclaimDeadEnabled true | > | > | >>> | > | --reclaimAll: simpleCommit loopCount 10 | > | > | >>> | > | 02/11/2012 12:07:41 PM.070 UTC: Starting object | > | > | >>> | > | table | > | > | >>> | > | scan | > | > | >>> | > | 02/11/2012 12:07:41 PM.698 UTC: Finished object | > | > | >>> | > | table | > | > | >>> | > | scan | > | > | >>> | > | | > | > | >>> | > | Object audit is proceeding in FullAudit mode: | > | > | >>> | > | Scavenging completed (either single user mode or no | > | > | >>> | > | pages | > | > | >>> | > | to | > | > | >>> | > | scavenge). | > | > | >>> | > | All audit checks are enabled. | > | > | >>> | > | | > | > | >>> | > | Object audit as of 02/11/2012 12:07:41 PM UTC. | > | > | >>> | > | Summary of objects whose sizes exceed 100000 Bytes | > | > | >>> | > | or | > | > | >>> | > | Oops: | > | > | >>> | > | | > | > | >>> | > | ObjectID Class ClassName | > | > | >>> | > | LogicalSize | > | > | >>> | > | -------------------------------------------------------------------------------------------------------------- | > | > | >>> | > | 305743617 74753 String | > | > | >>> | > | 134740 | > | > | >>> | > | Oops | > | > | >>> | > | 149534721 74753 String | > | > | >>> | > | 164661 | > | > | >>> | > | Oops | > | > | >>> | > | 173784833 74753 String | > | > | >>> | > | 163312 | > | > | >>> | > | Oops | > | > | >>> | > | 196368897 74753 String | > | > | >>> | > | 164661 | > | > | >>> | > | Oops | > | > | >>> | > | 305774593 74753 String | > | > | >>> | > | 134740 | > | > | >>> | > | Oops | > | > | >>> | > | 175519489 74753 String | > | > | >>> | > | 376305 | > | > | >>> | > | Oops | > | > | >>> | > | 196571393 74753 String | > | > | >>> | > | 379399 | > | > | >>> | > | Oops | > | > | >>> | > | 175494145 74753 String | > | > | >>> | > | 201874 | > | > | >>> | > | Oops | > | > | >>> | > | 197005569 74753 String | > | > | >>> | > | 202074 | > | > | >>> | > | Oops | > | > | >>> | > | 149996289 74753 String | > | > | >>> | > | 236426 | > | > | >>> | > | Oops | > | > | >>> | > | 151722753 74753 String | > | > | >>> | > | 379399 | > | > | >>> | > | Oops | > | > | >>> | > | 151723777 74753 String | > | > | >>> | > | 202074 | > | > | >>> | > | Oops | > | > | >>> | > | 274619393 74753 String | > | > | >>> | > | 1170577 | > | > | >>> | > | Oops | > | > | >>> | > | 265139713 74753 String | > | > | >>> | > | 1170577 | > | > | >>> | > | Oops | > | > | >>> | > | 215910913 66817 Array | > | > | >>> | > | 331214 | > | > | >>> | > | Oops | > | > | >>> | > | 164965121 74753 String | > | > | >>> | > | 236201 | > | > | >>> | > | Oops | > | > | >>> | > | 197155585 74753 String | > | > | >>> | > | 236426 | > | > | >>> | > | Oops | > | > | >>> | > | 271373057 74753 String | > | > | >>> | > | 1170577 | > | > | >>> | > | Oops | > | > | >>> | > | 268426753 74753 String | > | > | >>> | > | 134740 | > | > | >>> | > | Oops | > | > | >>> | > | 264103681 74753 String | > | > | >>> | > | 1170577 | > | > | >>> | > | Oops | > | > | >>> | > | | > | > | >>> | > | ----------- Object Statistics Summary | > | > | >>> | > | ----------------- | > | > | >>> | > | | > | > | >>> | > | ----- Instances of invisible (private) classes | > | > | >>> | > | ------ | > | > | >>> | > | Number of instances: 1072 | > | > | >>> | > | Total size: 15855 K Bytes | > | > | >>> | > | Average size: 14.8 Bytes | > | > | >>> | > | | > | > | >>> | > | Class: 209153 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 209409 Instances: | > | > | >>> | > | 1072 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 15855 K Bytes | > | > | >>> | > | Class: 209665 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 209921 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 210177 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 210433 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 210689 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 210945 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 211201 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 211457 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 211713 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 211969 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 212225 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 212481 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 212737 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 212993 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 213249 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 213505 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 213761 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | | > | > | >>> | > | | > | > | >>> | > | ----- Instances of visible classes | > | > | >>> | > | ----------------- | > | > | >>> | > | Number of objects : 1633432 | > | > | >>> | > | Total Size : 157861 K Bytes | > | > | >>> | > | size of Object Headers : 38283 K Bytes | > | > | >>> | > | size of Object Values : 116978 K Bytes | > | > | >>> | > | size of Object Tags : 0 K Bytes | > | > | >>> | > | average of Object Value: 73.3 Bytes | > | > | >>> | > | | > | > | >>> | > | Object Audit: Audit successfully completed; no | > | > | >>> | > | errors | > | > | >>> | > | were | > | > | >>> | > | detected. | > | > | >>> | > | --setGcConfig: set reclaimMinPages to 40 | > | > | >>> | > | --setGcConfig: set reclaimSleepTime to 10 | > | > | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | > | > | >>> | > | --postReclaimAll: restored reclaimMinPages to 40 | > | > | >>> | > | true | > | > | >>> | > | topaz 1> printit | > | > | >>> | > | SystemRepository markForCollection | > | > | >>> | > | % | > | > | >>> | > | start MFC mark/sweep phase: 02/11/2012 12:08:56 PM | > | > | >>> | > | UTC | > | > | >>> | > | WARNING, unable to resolve either | > | > | >>> | > | garMarkSweepPageBufSize | > | > | >>> | > | or | > | > | >>> | > | mfcGcPageBufSize, using default 320 | > | > | >>> | > | MarkSweepArgsSType::(): buffer size= 320 pages | > | > | >>> | > | start MFC process dead phase: 02/11/2012 12:08:59 | > | > | >>> | > | PM | > | > | >>> | > | UTC | > | > | >>> | > | end MFC: 02/11/2012 12:08:59 PM UTC | > | > | >>> | > | Successful completion of markForCollection. | > | > | >>> | > | 1613875 live objects found. | > | > | >>> | > | 20629 possible dead objects, occupying | > | > | >>> | > | approximately | > | > | >>> | > | 1856610 | > | > | >>> | > | bytes, may be reclaimed. | > | > | >>> | > | topaz 1> printit | > | > | >>> | > | SystemRepository reclaimAll | > | > | >>> | > | % | > | > | >>> | > | --reclaimAll: changed StnSignalAbortCrBacklog from | > | > | >>> | > | 20 | > | > | >>> | > | to 3 | > | > | >>> | > | --setGcConfig: set reclaimMinPages to 1 | > | > | >>> | > | --reclaimAll: changed reclaimMinPages from 40 to 1 | > | > | >>> | > | --setGcConfig: set reclaimSleepTime to 1 | > | > | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | > | > | >>> | > | --reclaimAll: using reclaimDeadEnabled true | > | > | >>> | > | --reclaimAll: simpleCommit loopCount 10 | > | > | >>> | > | an Array | > | > | >>> | > | #1 40 | > | > | >>> | > | #2 10 | > | > | >>> | > | #3 0 | > | > | >>> | > | | > | > | >>> | > | topaz 1> printit | > | > | >>> | > | SystemRepository objectAudit | > | > | >>> | > | % | > | > | >>> | > | --reclaimAll: changed StnSignalAbortCrBacklog from | > | > | >>> | > | 20 | > | > | >>> | > | to 3 | > | > | >>> | > | --setGcConfig: set reclaimMinPages to 1 | > | > | >>> | > | --reclaimAll: changed reclaimMinPages from 1 to 1 | > | > | >>> | > | --setGcConfig: set reclaimSleepTime to 1 | > | > | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | > | > | >>> | > | --reclaimAll: using reclaimDeadEnabled true | > | > | >>> | > | 02/11/2012 12:11:27 PM.328 UTC: Starting object | > | > | >>> | > | table | > | > | >>> | > | scan | > | > | >>> | > | 02/11/2012 12:11:27 PM.921 UTC: Finished object | > | > | >>> | > | table | > | > | >>> | > | scan | > | > | >>> | > | | > | > | >>> | > | Object audit is proceeding in FullAudit mode: | > | > | >>> | > | Scavenging completed (either single user mode or no | > | > | >>> | > | pages | > | > | >>> | > | to | > | > | >>> | > | scavenge). | > | > | >>> | > | All audit checks are enabled. | > | > | >>> | > | | > | > | >>> | > | Object audit as of 02/11/2012 12:11:27 PM UTC. | > | > | >>> | > | Summary of objects whose sizes exceed 100000 Bytes | > | > | >>> | > | or | > | > | >>> | > | Oops: | > | > | >>> | > | | > | > | >>> | > | ObjectID Class ClassName | > | > | >>> | > | LogicalSize | > | > | >>> | > | -------------------------------------------------------------------------------------------------------------- | > | > | >>> | > | 305743617 74753 String | > | > | >>> | > | 134740 | > | > | >>> | > | Oops | > | > | >>> | > | 149534721 74753 String | > | > | >>> | > | 164661 | > | > | >>> | > | Oops | > | > | >>> | > | 173784833 74753 String | > | > | >>> | > | 163312 | > | > | >>> | > | Oops | > | > | >>> | > | 196368897 74753 String | > | > | >>> | > | 164661 | > | > | >>> | > | Oops | > | > | >>> | > | 305774593 74753 String | > | > | >>> | > | 134740 | > | > | >>> | > | Oops | > | > | >>> | > | 175519489 74753 String | > | > | >>> | > | 376305 | > | > | >>> | > | Oops | > | > | >>> | > | 196571393 74753 String | > | > | >>> | > | 379399 | > | > | >>> | > | Oops | > | > | >>> | > | 175494145 74753 String | > | > | >>> | > | 201874 | > | > | >>> | > | Oops | > | > | >>> | > | 197005569 74753 String | > | > | >>> | > | 202074 | > | > | >>> | > | Oops | > | > | >>> | > | 149996289 74753 String | > | > | >>> | > | 236426 | > | > | >>> | > | Oops | > | > | >>> | > | 151722753 74753 String | > | > | >>> | > | 379399 | > | > | >>> | > | Oops | > | > | >>> | > | 151723777 74753 String | > | > | >>> | > | 202074 | > | > | >>> | > | Oops | > | > | >>> | > | 274619393 74753 String | > | > | >>> | > | 1170577 | > | > | >>> | > | Oops | > | > | >>> | > | 265139713 74753 String | > | > | >>> | > | 1170577 | > | > | >>> | > | Oops | > | > | >>> | > | 215910913 66817 Array | > | > | >>> | > | 331214 | > | > | >>> | > | Oops | > | > | >>> | > | 164965121 74753 String | > | > | >>> | > | 236201 | > | > | >>> | > | Oops | > | > | >>> | > | 197155585 74753 String | > | > | >>> | > | 236426 | > | > | >>> | > | Oops | > | > | >>> | > | 271373057 74753 String | > | > | >>> | > | 1170577 | > | > | >>> | > | Oops | > | > | >>> | > | 268426753 74753 String | > | > | >>> | > | 134740 | > | > | >>> | > | Oops | > | > | >>> | > | 264103681 74753 String | > | > | >>> | > | 1170577 | > | > | >>> | > | Oops | > | > | >>> | > | | > | > | >>> | > | ----------- Object Statistics Summary | > | > | >>> | > | ----------------- | > | > | >>> | > | | > | > | >>> | > | ----- Instances of invisible (private) classes | > | > | >>> | > | ------ | > | > | >>> | > | Number of instances: 1072 | > | > | >>> | > | Total size: 15855 K Bytes | > | > | >>> | > | Average size: 14.8 Bytes | > | > | >>> | > | | > | > | >>> | > | Class: 209153 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 209409 Instances: | > | > | >>> | > | 1072 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 15855 K Bytes | > | > | >>> | > | Class: 209665 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 209921 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 210177 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 210433 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 210689 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 210945 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 211201 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 211457 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 211713 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 211969 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 212225 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 212481 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 212737 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 212993 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 213249 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 213505 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | Class: 213761 Instances: | > | > | >>> | > | 0 | > | > | >>> | > | Total | > | > | >>> | > | Size: | > | > | >>> | > | 0 K Bytes | > | > | >>> | > | | > | > | >>> | > | | > | > | >>> | > | ----- Instances of visible classes | > | > | >>> | > | ----------------- | > | > | >>> | > | Number of objects : 1612803 | > | > | >>> | > | Total Size : 156912 K Bytes | > | > | >>> | > | size of Object Headers : 37800 K Bytes | > | > | >>> | > | size of Object Values : 116516 K Bytes | > | > | >>> | > | size of Object Tags : 0 K Bytes | > | > | >>> | > | average of Object Value: 74.0 Bytes | > | > | >>> | > | | > | > | >>> | > | Object Audit: Audit successfully completed; no | > | > | >>> | > | errors | > | > | >>> | > | were | > | > | >>> | > | detected. | > | > | >>> | > | --setGcConfig: set reclaimMinPages to 1 | > | > | >>> | > | --setGcConfig: set reclaimSleepTime to 1 | > | > | >>> | > | --setGcConfig: set sleepTimeBetweenReclaimMs to 0 | > | > | >>> | > | --postReclaimAll: restored reclaimMinPages to 1 | > | > | >>> | > | true | > | > | >>> | > | topaz 1> | > | > | >>> | > | topaz 1> | > | > | >>> | > | | > | > | >>> | > | | > | > | >>> | > | > If, as I suspect, you've got corruption in | > | > | >>> | > | > GsProcess | > | > | >>> | > | > objects | > | > | >>> | > | > they | > | > | >>> | > | > only impact Seaside session state, and should | > | > | >>> | > | > have | > | > | >>> | > | > disappeared | > | > | >>> | > | > by | > | > | >>> | > | > the time you run the object audit ... | > | > | >>> | > | > | > | > | >>> | > | > This problems seems to ring a bell, but it seems | > | > | >>> | > | > to | > | > | >>> | > | > me | > | > | >>> | > | > that the | > | > | >>> | > | > problem I am thinking of showed up in GemStone | > | > | >>> | > | > 3.0 | > | > | >>> | > | > and I | > | > | >>> | > | > think | > | > | >>> | > | > it | > | > | >>> | > | > was fixed in GemStone 3.0.1... so I'm curious | > | > | >>> | > | > what | > | > | >>> | > | > version of | > | > | >>> | > | > GemStone you are using. | > | > | >>> | > | > | > | > | >>> | > | > As I think about this, I seem to recall that the | > | > | >>> | > | > problem | > | > | >>> | > | > was | > | > | >>> | > | > related to deeply nested block structure in a | > | > | >>> | > | > method | > | > | >>> | > | > that | > | > | >>> | > | > was | > | > | >>> | > | > involved in partial continuations, so I am | > | > | >>> | > | > curious if | > | > | >>> | > | > you | > | > | >>> | > | > happen | > | > | >>> | > | > to have some deeply nested block structures let's | > | > | >>> | > | > say | > | > | >>> | > | > more than | > | > | >>> | > | > 5 | > | > | >>> | > | > or 6 levels deep in your method? In fact even in | > | > | >>> | > | > 3.0.1 I | > | > | >>> | > | > think | > | > | >>> | > | > that there might be an effective limit (the | > | > | >>> | > | > engineer | > | > | >>> | > | > that | > | > | >>> | > | > worked | > | > | >>> | > | > on this will be back on Monday for exact | > | > | >>> | > | > details), so | > | > | >>> | > | > if | > | > | >>> | > | > you | > | > | >>> | > | > are | > | > | >>> | > | > running with 3.0.1, you should definitely be | > | > | >>> | > | > suspicious | > | > | >>> | > | > of deep | > | > | >>> | > | > nesting of blocks... | > | > | >>> | > | > | > | > | >>> | > | > Dale | > | > | >>> | > | > | > | > | >>> | > | > [1] | > | > | >>> | > | > http://community.gemstone.com/display/GSS64/GemStoneS+64+Documentation | > | > | >>> | > | > | > | > | >>> | > | > ----- Original Message ----- | > | > | >>> | > | > | From: "Lawrence Kellogg" <[hidden email]> | > | > | >>> | > | > | To: "GemStone Seaside beta discussion" | > | > | >>> | > | > | <[hidden email]> | > | > | >>> | > | > | Sent: Friday, February 10, 2012 2:13:15 PM | > | > | >>> | > | > | Subject: [GS/SS Beta] Object does not exist | > | > | >>> | > | > | error - | > | > | >>> | > | > | Worry | > | > | >>> | > | > | about | > | > | >>> | > | > | it? | > | > | >>> | > | > | | > | > | >>> | > | > | | > | > | >>> | > | > | | > | > | >>> | > | > | Hello, | > | > | >>> | > | > | After a long series of calls and answers in | > | > | >>> | > | > | Seaside, I | > | > | >>> | > | > | got an | > | > | >>> | > | > | Object | > | > | >>> | > | > | does not exist error that brought down the fast | > | > | >>> | > | > | cgi | > | > | >>> | > | > | gateway. | > | > | >>> | > | > | My | > | > | >>> | > | > | production error handler was not triggered, | > | > | >>> | > | > | although it | > | > | >>> | > | > | was | > | > | >>> | > | > | installed, as far as I could tell. Strange. My | > | > | >>> | > | > | supervise | > | > | >>> | > | > | fastcgi | > | > | >>> | > | > | process also did not pick up my dead fastcgi | > | > | >>> | > | > | process. | > | > | >>> | > | > | Not a | > | > | >>> | > | > | good | > | > | >>> | > | > | day. | > | > | >>> | > | > | | > | > | >>> | > | > | Here is the walkback: | > | > | >>> | > | > | | > | > | >>> | > | > | | > | > | >>> | > | > | | > | > | >>> | > | > | USER IDS: REAL=seasideuser (500) | > | > | >>> | > | > | EFFECTIVE=seasideuser | > | > | >>> | > | > | (500) | > | > | >>> | > | > | | | > | > | >>> | > | > | |_____________________________________________________________________________| | > | > | >>> | > | > | topaz> topaz> topaz> topaz> topaz> topaz> | > | > | >>> | > | > | topaz> | > | > | >>> | > | > | [Info]: LNK | > | > | >>> | > | > | client/gem GCI levels = 844/844 | > | > | >>> | > | > | [Info]: User ID: DataCurator | > | > | >>> | > | > | [Info]: Repository: seaside | > | > | >>> | > | > | [Info]: Session ID: 5 | > | > | >>> | > | > | [Info]: GCI Client Host: <Linked> | > | > | >>> | > | > | [Info]: Page server PID: -1 | > | > | >>> | > | > | [Info]: Login Time: 02/10/2012 09:27:56 PM.572 | > | > | >>> | > | > | UTC | > | > | >>> | > | > | [02/10/2012 09:27:56 PM.592 UTC] gci login: | > | > | >>> | > | > | currSession | > | > | >>> | > | > | 1 rpc | > | > | >>> | > | > | gem | > | > | >>> | > | > | processId -1 | > | > | >>> | > | > | successful login | > | > | >>> | > | > | topaz 1> topaz 1> [20 sz:0 cls: 76289 | > | > | >>> | > | > | UndefinedObject] | > | > | >>> | > | > | nil | > | > | >>> | > | > | topaz 1> topaz 1> [76033 sz:19 cls: 801793 | > | > | >>> | > | > | System | > | > | >>> | > | > | class] | > | > | >>> | > | > | System | > | > | >>> | > | > | class | > | > | >>> | > | > | superClass [72193 sz:19 cls: 206081 Object | > | > | >>> | > | > | class] | > | > | >>> | > | > | Object | > | > | >>> | > | > | class | > | > | >>> | > | > | format [258 sz:0 cls: 74241 SmallInteger] 32 | > | > | >>> | > | > | instVars [2 sz:0 cls: 74241 SmallInteger] 0 | > | > | >>> | > | > | instVarNames [422145 sz:0 cls: 66817 Array] an | > | > | >>> | > | > | Array | > | > | >>> | > | > | constraints [421889 sz:0 cls: 66817 Array] an | > | > | >>> | > | > | Array | > | > | >>> | > | > | classVars [421633 sz:26 cls: 111361 | > | > | >>> | > | > | SymbolDictionary] a | > | > | >>> | > | > | SymbolDictionary | > | > | >>> | > | > | methodDict [711937 sz:112 cls: 99073 | > | > | >>> | > | > | GsMethodDictionary] a | > | > | >>> | > | > | GsMethodDictionary | > | > | >>> | > | > | poolDictionaries [421377 sz:0 cls: 66817 Array] | > | > | >>> | > | > | an | > | > | >>> | > | > | Array | > | > | >>> | > | > | categories [421121 sz:28 cls: 99073 | > | > | >>> | > | > | GsMethodDictionary] | > | > | >>> | > | > | a | > | > | >>> | > | > | GsMethodDictionary | > | > | >>> | > | > | secondarySuperclasses [20 sz:0 cls: 76289 | > | > | >>> | > | > | UndefinedObject] | > | > | >>> | > | > | nil | > | > | >>> | > | > | name [801537 sz:6 cls: 110849 Symbol] System | > | > | >>> | > | > | classHistory [420865 sz:3 cls: 82689 | > | > | >>> | > | > | ClassHistory] | > | > | >>> | > | > | a | > | > | >>> | > | > | ClassHistory | > | > | >>> | > | > | description [13498369 sz:10 cls: 95233 | > | > | >>> | > | > | GsClassDocumentation] | > | > | >>> | > | > | a | > | > | >>> | > | > | GsClassDocumentation | > | > | >>> | > | > | migrationDestination [20 sz:0 cls: 76289 | > | > | >>> | > | > | UndefinedObject] nil | > | > | >>> | > | > | timeStamp [14510593 sz:4 cls: 118785 DateTime] | > | > | >>> | > | > | a | > | > | >>> | > | > | DateTime | > | > | >>> | > | > | userId [14508801 sz:10 cls: 74753 String] | > | > | >>> | > | > | SystemUser | > | > | >>> | > | > | extraDict [14524929 sz:14 cls: 111361 | > | > | >>> | > | > | SymbolDictionary] | > | > | >>> | > | > | a | > | > | >>> | > | > | SymbolDictionary | > | > | >>> | > | > | classCategory [20 sz:0 cls: 76289 | > | > | >>> | > | > | UndefinedObject] | > | > | >>> | > | > | nil | > | > | >>> | > | > | subclasses [20 sz:0 cls: 76289 UndefinedObject] | > | > | >>> | > | > | nil | > | > | >>> | > | > | | > | > | >>> | > | > | | > | > | >>> | > | > | topaz 1> topaz 1> WAFastCGIAdaptor Server | > | > | >>> | > | > | started | > | > | >>> | > | > | on | > | > | >>> | > | > | port | > | > | >>> | > | > | 9001 | > | > | >>> | > | > | ----------------------------------------------------- | > | > | >>> | > | > | GemStone: Error Nonfatal | > | > | >>> | > | > | The object with object ID 81065894683350528 | > | > | >>> | > | > | does | > | > | >>> | > | > | not | > | > | >>> | > | > | exist. | > | > | >>> | > | > | Error Category: 231169 [GemStone] Number: 2101 | > | > | >>> | > | > | Arg | > | > | >>> | > | > | Count: 1 | > | > | >>> | > | > | Context : | > | > | >>> | > | > | 526648321 | > | > | >>> | > | > | Arg 1: [648527157466804226 sz:0 cls: 74241 | > | > | >>> | > | > | SmallInteger] | > | > | >>> | > | > | 81065894683350528 | > | > | >>> | > | > | | > | > | >>> | > | > | | > | > | >>> | > | > | Now executing the following command saved from | > | > | >>> | > | > | "iferr | > | > | >>> | > | > | 1": | > | > | >>> | > | > | where | > | > | >>> | > | > | ==> 1 GsProcess class >> | > | > | >>> | > | > | installPartialContinuation:atLevel:value: @2 | > | > | >>> | > | > | line 1 [GsMethod 4487425] | > | > | >>> | > | > | 2 WAPartialContinuation >> value: @13 line 11 | > | > | >>> | > | > | [GsMethod | > | > | >>> | > | > | 212791041] | > | > | >>> | > | > | 3 WAPartialContinuation >> | > | > | >>> | > | > | valueWithPossibleArguments: | > | > | >>> | > | > | @2 | > | > | >>> | > | > | line 2 | > | > | >>> | > | > | [GsMethod 218326273] | > | > | >>> | > | > | 4 ComplexBlock in WAComponent >> | > | > | >>> | > | > | show:onAnswer:delegation: @7 | > | > | >>> | > | > | line 7 | > | > | >>> | > | > | [GsMethod 194749185] | > | > | >>> | > | > | 5 ComplexBlock in ExecutableBlock >> | > | > | >>> | > | > | valueWithPossibleArguments: | > | > | >>> | > | > | @12 | > | > | >>> | > | > | line 8 [GsMethod 116163585] | > | > | >>> | > | > | 6 WAAnswerHandler >> handleAnswer:continueWith: | > | > | >>> | > | > | @3 | > | > | >>> | > | > | line | > | > | >>> | > | > | 2 | > | > | >>> | > | > | [GsMethod | > | > | >>> | > | > | 194735873] | > | > | >>> | > | > | 7 WADecoration >> handleAnswer: @6 line 3 | > | > | >>> | > | > | [GsMethod | > | > | >>> | > | > | 194731009] | > | > | >>> | > | > | 8 WAComponent >> answer: @2 line 5 [GsMethod | > | > | >>> | > | > | 194751745] | > | > | >>> | > | > | | > | > | >>> | > | > | | > | > | >>> | > | > | | > | > | >>> | > | > | | > | > | >>> | > | > | I found this on the net: | > | > | >>> | > | > | | > | > | >>> | > | > | | > | > | >>> | > | > | | > | > | >>> | > | > | Object does not exist errors | > | > | >>> | > | > | GBS applications may encounter object does not | > | > | >>> | > | > | exist | > | > | >>> | > | > | errors | > | > | >>> | > | > | in | > | > | >>> | > | > | non-persistent | > | > | >>> | > | > | objects. This is due to a problem with the fix | > | > | >>> | > | > | for | > | > | >>> | > | > | bug | > | > | >>> | > | > | #40703 | > | > | >>> | > | > | in | > | > | >>> | > | > | version | > | > | >>> | > | > | 2.4.4, which resulted in non-persistent objects | > | > | >>> | > | > | not | > | > | >>> | > | > | properly | > | > | >>> | > | > | protected | > | > | >>> | > | > | from garbage collection. | > | > | >>> | > | > | | > | > | >>> | > | > | Workaround: | > | > | >>> | > | > | | > | > | >>> | > | > | none/not applicable | > | > | >>> | > | > | from: | > | > | >>> | > | > | | > | > | >>> | > | > | | > | > | >>> | > | > | | > | > | >>> | > | > | | > | > | >>> | > | > | | > | > | >>> | > | > | | > | > | >>> | > | > | http://www.gemstone.com/docs/GemStoneS/bugnotes/bugnotes/40948.html | > | > | >>> | > | > | | > | > | >>> | > | > | | > | > | >>> | > | > | | > | > | >>> | > | > | So, should I worry about this? I implemented | > | > | >>> | > | > | code | > | > | >>> | > | > | that | > | > | >>> | > | > | allowed a | > | > | >>> | > | > | user | > | > | >>> | > | > | to call an editor, switch out on the navigation | > | > | >>> | > | > | menu, | > | > | >>> | > | > | call | > | > | >>> | > | > | another | > | > | >>> | > | > | editor, | > | > | >>> | > | > | switch out. With each switch, I send answer: | > | > | >>> | > | > | false | > | > | >>> | > | > | to | > | > | >>> | > | > | the | > | > | >>> | > | > | open | > | > | >>> | > | > | editor | > | > | >>> | > | > | to close it so that it is not hanging around | > | > | >>> | > | > | open. | > | > | >>> | > | > | My | > | > | >>> | > | > | idea | > | > | >>> | > | > | was to hide the section navigation when the | > | > | >>> | > | > | editor | > | > | >>> | > | > | came | > | > | >>> | > | > | up | > | > | >>> | > | > | but | > | > | >>> | > | > | I'm | > | > | >>> | > | > | getting push back from my user. | > | > | >>> | > | > | | > | > | >>> | > | > | | > | > | >>> | > | > | What do you think? | > | > | >>> | > | > | | > | > | >>> | > | > | | > | > | >>> | > | > | Larry | > | > | >>> | > | > | | > | > | >>> | > | > | | > | > | >>> | > | > | | > | > | >>> | > | > | | > | > | >>> | > | | > | > | >>> | > | | > | > | >>> | | > | > | >>> | | > | > | >> | > | > | > | > | > | | > | > | | > | | > | | | |
Free forum by Nabble | Edit this page |