[Glass] [GLASS] Seaside - growing extent - normal?

Dale Henrichs via Glass glass at lists.gemtalksystems.com
Mon Apr 6 15:57:43 PDT 2015


Okay, I think we'll try taking this route with 
WACacheExpiryPolicy>>isExpiredUpdating:key:

   isExpiredUpdating: anObject key: aString
   | entry |
   entry := lastAccessTable at: aString ifAbsent: [ ^true ].
   ^ entry isExpiredUpdating: self timeout

This code should force any sessions with a missing `lastAccessTable` to 
be expired ...

Looking at the WACache>>gemstoneReap code, I think I can tell how we 
load the entries in the `lastAccessTable`.

If you notice, in the first loop in WACache>>gemstoneReap, that 
WACache>>notifyRemoved:key: is called for each of the expired sessions 
and then when we are looping through `expired` sessions we start 
committing every 100 sessions ... now after we have processed the first 
100 sessions, we commit the removal of ALL of the sessions from the 
`lastAccessTable` but we only commit the removal of the first 100 
sessions from from the `objectsByKey` and `keysByObect` tables and if we 
crash before finishing the whole operation, we will have corrupted the 
`lastAccessTable` ... and I seem to recall that we did have such a crash ...

This one will take a while to run, but we should be able to get most of 
the repository cleaned up ...

I will submit a bug on the `lastAccessTable` problem ...

Dale

On 04/06/2015 03:47 PM, Dale Henrichs wrote:
> Larry,
>
> I've been reading code a bit, looking for some sort of path that would 
> foil the gemstoneReap code and the most likely scenario I can find has 
> to do with this code in WARcLastAccessExpiryPolicy>>isExpired:key:
>
>   isExpired: anObject key: aString
>   | entry |
>   entry := lastAccessTable at: aString ifAbsent: [ WARcLastAccessEntry 
> new ].
>   ^ entry isExpired: self timeout
>
> and WARcLastAccessExpiryPolicy>>isExpiredUpdating:key:
>
>   isExpiredUpdating: anObject key: aString
>   | entry |
>   entry := lastAccessTable at: aString ifAbsent: [ WARcLastAccessEntry 
> new ].
>   ^ entry isExpiredUpdating: self timeout
>
> So if somehow the lastAccessTable has lost a key for a session, then 
> the session will survive forever ...
>
> We can test this by the following code:
>
>   | app cache lastAccessTable |
>   app := WADispatcher default handlers at: 'UserInformationInterface'.
>   cache := app cache.
>   lastAccessTable := cache expiryPolicy instVarNamed: #'lastAccessTable'.
>   lastAccessTable at: '5jTYOuLPzkOYLv4d' ifAbsent: [ 'missing' ]
>
> I expect the result to be 'missing' ...
>
> Based on this expectation, I'll start writing some repair code ...
>
> Dale
>
> On 04/06/2015 03:30 PM, Lawrence Kellogg wrote:
>>
>>> On Apr 6, 2015, at 6:20 PM, Dale Henrichs 
>>> <dale.henrichs at gemtalksystems.com 
>>> <mailto:dale.henrichs at gemtalksystems.com>> wrote:
>>>
>>> Larry,
>>>
>>> Well, this looks like the session expiration code didn't expire the 
>>> session state as expected:
>>>
>>>   | expired |
>>>   Transcript cr; show: 'Unregistering...' , DateAndTime now printString.
>>>   expired := WABasicDevelopment reapSeasideCache.
>>>   expired > 0
>>>     ifTrue: [ (ObjectLogEntry trace: 'MTCE: expired sessions' 
>>> object: expired) addToLog ].
>>>   Transcript cr; show: '...Expired: ' , expired printString , ' 
>>> sessions.'.
>>>   System commitTransaction
>>>
>>> So we'll need to understand why ... and the first thing I want to 
>>> know is the result of this:
>>>
>>>   | app cache objectsByKey assoc |
>>>   app := WADispatcher default handlers at: 'UserInformationInterface'.
>>>   cache := app cache.
>>>   objectsByKey := cache instVarAt: #'objectsByKey'.
>>>   assoc := objectsByKey associationAt: '5jTYOuLPzkOYLv4d'.
>>>   cache expiryPolicy isExpired: assoc value key: assoc key
>>>
>>> This is basically the expression that gets evaluated when we are 
>>> trying to remove the expired sessions.
>>>
>>> If it returns true, then something is wrong with the reaping code 
>>> and we'll want to step through that logic..
>>>
>>> If it returns false, then we need to understand why this presumably 
>>> ancient session is not expired ...
>>>
>>
>>
>> Ok, I had to rewrite a few things in your code because it crashed, 
>> so, I did this,
>>
>>
>>   | app cache objectsByKey assoc |
>>   app := WADispatcher default handlers at: 'UserInformationInterface'.
>>   cache := app cache.
>>   objectsByKey := cache instVarAt: 3.
>>   assoc := objectsByKey at:'5jTYOuLPzkOYLv4d'.
>>   cache expiryPolicy isExpired: assoc value key: assoc key
>>
>> and it returns false.
>>
>> So, I guess we have to figure out why this old session is not expired.
>>
>> Larry
>>
>>
>>
>>
>>> Dale
>>>
>>>
>>> On 04/06/2015 02:56 PM, Lawrence Kellogg wrote:
>>>> Ok, I did what you said but I’m at a bit of a loss as to what to do 
>>>> next. Here are my results:
>>>>
>>>> 1 - aWASession
>>>> 2 - true
>>>> 3 - WADispatcher
>>>> 4 - aWADispatcher
>>>> 5 - aDictionary( 
>>>> 'CreateMusicalPieceRepertoireItemInterface'->aWAApplication, 
>>>> 'LessonTaskRecordingUpdatePrivacySettings'->aWAApplication, 
>>>> 'RetrieveRepertoireItemRequestHandler'->aRetrieveRepertoireItemRequestHandler, 
>>>> 'PracticeSessionUpdateTimePracticedInterface'->aWAApplication, 
>>>> 'CreateMethodBookInterface'->aWAApplication, 
>>>> 'CreatePracticeSessionRequestHandler'->aCreatePracticeSessionRequestHandler, 
>>>> 'LessonTaskRecordingsRequestHandler'->aLessonTaskRecordingsRequestHandler, 
>>>> 'UserActivityRequestHandler'->anUserActivityRequestHandler, 
>>>> 'EmailOptOutInterface'->aWAApplication, 
>>>> 'LessonTaskInformationServer'->aWAApplication, 
>>>> 'UserRegistrationRequestHandler'->anUserRegistrationRequestHandler, 
>>>> 'GetMethodBooks'->aWAApplication, …)
>>>> 6 - 'UserInformationInterface'->aWAApplication
>>>> 7 - aWAApplication
>>>> 8 - aWACache
>>>> 9 - aRcKeyValueDictionary( '5jTYOuLPzkOYLv4d'->aWASession, 
>>>> 'ePxPIpWmyhtOHA0U'->aWASession, 
>>>> 'zRyovUbd2YaYCEuC'->aWADocumentHandler, 
>>>> 'Qwhb4dokS54vxz03'->aWASession, 'bsXyv4UGt5-gbrEo'->aWASession, 
>>>> 'qTDuZk9Mfu9cllpR'->aWADocumentHandler, 
>>>> 'bSnQRSCCU6tLSuHy'->aWADocumentHandler, 
>>>> 'Dv8_EljXp4UeBCYm'->aWADocumentHandler, 
>>>> 'JRp685a4lHUKhDiT'->aWASession, 'JG6o8KnnCuSOtNjx'->aWASession, 
>>>> 'VqMHwuCbBLRFo40Y'->aWASession, '1pRW-D5PPlAhW37g'->aWASession, 
>>>> 'VyzeJ-GNB8GF-aMJ'->aWASession, 
>>>> 'YOVib-WowYRZNJaN'->aWADocumentHandler, 
>>>> 'I9PoXhB7gBlGMNgY'->aWADocumentHandler, 
>>>> '-lyxYEftM3kUE_Wg'->aWASession, 
>>>> 'ZVnusqwGHRr1Hb7_'->aWADocumentHandler, 
>>>> '9Vch6_hBThnx_eln'->aWASession, 
>>>> 'wNwBarOaES_2Uigs'->aWADocumentHandler, 
>>>> 'oSCks-wA3lHOqbPu'->aWADocumentHandler, ...)
>>>>
>>>>
>>>> 10 - aRcCollisionBucket
>>>> 11 - aWASession
>>>>
>>>> What do I do now?
>>>>
>>>> Larry
>>>>
>>>>
>>>>
>>>>
>>>>> On Apr 3, 2015, at 3:45 PM, Dale Henrichs 
>>>>> <dale.henrichs at gemtalksystems.com 
>>>>> <mailto:dale.henrichs at gemtalksystems.com>> wrote:
>>>>>
>>>>> Larry ...
>>>>>
>>>>> Ah, I had missed the method that James mentioned ... 
>>>>> Repository>>#'findReferencePathToObject:'...
>>>>>
>>>>> That just might get us the answer we are looking for ...
>>>>>
>>>>> Do an allInstances on WASession and get the oop of an old instance ...
>>>>>
>>>>> then logout and to the following (using your oop):
>>>>>
>>>>>   System abortTransaction.
>>>>>   SystemRepository findReferencePathToObject: (Object 
>>>>> _objectForOop: 119868673)
>>>>>
>>>>> This will take a bit, but you will get back an array that looks 
>>>>> something like this:
>>>>>
>>>>> (class)@ -> Array
>>>>> (oop)@   -> 365061121
>>>>> (size)@  -> 11
>>>>> 1@       -> aWASession
>>>>> 2@       -> true
>>>>> 3@       -> WADispatcher
>>>>> 4@       -> aWADispatcher
>>>>> 5@       -> aDictionary( 'browse'->aWAApplication, 
>>>>> 'javascript'->aWADispatcher, 
>>>>> 'seaside'->aWALegacyRedirectionHandler, 'examples'->aWADispatcher, 
>>>>> 'stat...
>>>>> 6@       -> 'browse'->aWAApplication
>>>>> 7@       -> aWAApplication
>>>>> 8@       -> aWACache
>>>>> 9@       -> aRcKeyValueDictionary( '_pIYr5fSpwCZ3W4b'->aWASession, 
>>>>> '8t5reroNR8Typqki'->aWASession, 'eXX4KnQGvkUOFEN7'->aWASession, 
>>>>> '1hV8xpORJw_5YSey'->a...
>>>>> 10@      -> aRcCollisionBucket
>>>>> 11@      -> aWASession
>>>>>
>>>>> The last slot in the array is the target object and the 3rd slot 
>>>>> in the array is the root object ... the case I've got here is the 
>>>>> expected reference path for an unexpired session ... but if you 
>>>>> run this in your data base, you should find an unexpected 
>>>>> reference path and we'll be able to clean this up ...
>>>>>
>>>>> This method only returns _a reference path_ (there could be 
>>>>> others) but this should give us a useful path to start identifying 
>>>>> the object leak...
>>>>>
>>>>> Sorry about missing Repository>>#'findReferencePathToObject:' ...
>>>>>
>>>>> Dale
>>>>>
>>>>> On 04/03/2015 12:33 PM, James Foster wrote:
>>>>>> It appears that I mistakenly sent this as a private email rather 
>>>>>> than to the group as I intended. I apologize for the confusion.
>>>>>>
>>>>>>> On Apr 1, 2015, at 8:09 PM, James Foster 
>>>>>>> <James.Foster at GemTalkSystems.com 
>>>>>>> <mailto:James.Foster at GemTalkSystems.com>> wrote:
>>>>>>>
>>>>>>> Larry,
>>>>>>>
>>>>>>> I’m glad that the backup scan worked for you (it doesn’t get 
>>>>>>> tested with every release). The object count list is quite 
>>>>>>> interesting. Three hundred million instances of RcCounterElement 
>>>>>>> is certainly a surprise.
>>>>>>>
>>>>>>> What jumps out at me is that there are over a hundred thousand 
>>>>>>> instances of WAPartialContinuation. This suggests that some 
>>>>>>> Seaside cache is still holding things. Dale will likely have 
>>>>>>> some good advice on how to find them but a couple ideas occur to 
>>>>>>> me.
>>>>>>>
>>>>>>> First, grab one of the instances (Class>>#’allInstances’) and 
>>>>>>> then look at one (or more) reference paths 
>>>>>>> (Repository>>#'findReferencePathToObject:*’ or 
>>>>>>> #’Repository>>#’findAllReferencePathsToObject:’ if you are in 
>>>>>>> 2.4.6 or later).
>>>>>>>
>>>>>>> Another thing that would be interesting is to replace all the 
>>>>>>> continuations with a new object (each become: Object new). After 
>>>>>>> another MFC/reclaim cycle there should not be any continuation 
>>>>>>> instances and it would be interesting to see what sort of space 
>>>>>>> that frees (Repository>>#’fileSizeReport’).
>>>>>>>
>>>>>>> Of course, knowing who is holding on to them is the primary 
>>>>>>> question.
>>>>>>>
>>>>>>> James
>>>>>>>
>>>>>>>> On Apr 1, 2015, at 7:05 PM, Lawrence Kellogg via Glass 
>>>>>>>> <glass at lists.gemtalksystems.com 
>>>>>>>> <mailto:glass at lists.gemtalksystems.com>> wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>> On Mar 31, 2015, at 12:41 PM, Dale Henrichs 
>>>>>>>>> <dale.henrichs at gemtalksystems.com 
>>>>>>>>> <mailto:dale.henrichs at gemtalksystems.com>> wrote:
>>>>>>>>>
>>>>>>>>> Larry,
>>>>>>>>>
>>>>>>>>> I'm just going over the old ground again, in case we missed 
>>>>>>>>> something obvious ... I would hate to spend several more days 
>>>>>>>>> digging into this only to find that an initial step hadn't 
>>>>>>>>> completed as expected ...
>>>>>>>>>
>>>>>>>>> So it looks like the object log is clear. Next I'd like to 
>>>>>>>>> double check and make sure that the session state has been 
>>>>>>>>> expired ...
>>>>>>>>>
>>>>>>>>> So let's verify that `UserGlobals at: #'ExpiryCleanup` is no 
>>>>>>>>> longer present and I'd like to run the WABasicDevelopment 
>>>>>>>>> reapSeasideCache one more time for good luck.
>>>>>>>>>
>>>>>>>>
>>>>>>>> Yes, the collection at UserGlobals at: #ExpiryCleanup is empty.
>>>>>>>>
>>>>>>>> I ran the reapSeasideCache code again.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> Assuming that neither of those turn up anything of use, the 
>>>>>>>>> next step is to find out what's hanging onto the unwanted 
>>>>>>>>> objects ...
>>>>>>>>>
>>>>>>>>> Since I think we've covered the known "object hogs" in the 
>>>>>>>>> Seaside framework, there are a number of other persistent 
>>>>>>>>> caches in GLASS, that might as well be cleared out. You can 
>>>>>>>>> use the workspace here[1] to clean them up ... I don't think 
>>>>>>>>> that these caches should be holding onto 23G of objects, but 
>>>>>>>>> run an MFC aftwards to be safe ...
>>>>>>>>>
>>>>>>>>
>>>>>>>> I cleared the caches.
>>>>>>>>
>>>>>>>> I ran another MFC
>>>>>>>>
>>>>>>>> <Screen Shot 2015-04-01 at 10.02.25 PM.png>
>>>>>>>>
>>>>>>>>
>>>>>>>>>
>>>>>>>>> At this point there's basically two directions that we can take:
>>>>>>>>>
>>>>>>>>>   1. Top down. Start inspecting the data structures in your 
>>>>>>>>> application and look
>>>>>>>>>       for suspicious collections/objects that could be hanging 
>>>>>>>>> onto objects above and
>>>>>>>>>       beyond those absolutely needed.
>>>>>>>>>
>>>>>>>>>   2. Bottom up. Scan your recent backup and get an instance 
>>>>>>>>> count report[2] that
>>>>>>>>>       will tell you what class of object is clogging up your 
>>>>>>>>> data base .... Perhaps you'll
>>>>>>>>>       recognize a big runner or two and know where to look to 
>>>>>>>>> drop the references.
>>>>>>>>>      If no, we'll have to pick a suspicious class, list the 
>>>>>>>>> instances of that class, and then
>>>>>>>>> Repository>>listReferences: to work our way back to a known 
>>>>>>>>> root and then
>>>>>>>>>      NUKE THE SUCKER:)
>>>>>>>>
>>>>>>>>
>>>>>>>> Ok, here is my instance count report. RCCounterElement is a 
>>>>>>>> huge winner here, I have no idea why. #63 
>>>>>>>> PracticeJournalLoginTask  and #65 PracticeJournalSession is 
>>>>>>>> coming up a lot, so perhaps these are being held onto somewhere.
>>>>>>>>
>>>>>>>> 1338955617RcCounterElement
>>>>>>>> 217607121RcCollisionBucket
>>>>>>>> 37683895Association
>>>>>>>> 42142624String
>>>>>>>> 52126557WAValueHolder
>>>>>>>> 61959784VariableContext
>>>>>>>> 71629389CollisionBucket
>>>>>>>> 81464171Dictionary
>>>>>>>> 91339617KeyValueDictionary
>>>>>>>> 101339616Set
>>>>>>>> 111243135OrderedCollection
>>>>>>>> 121116296Array
>>>>>>>> 13951872ComplexBlock
>>>>>>>> 14943639ComplexVCBlock
>>>>>>>> 15781212IdentityDictionary
>>>>>>>> 16673104IdentityCollisionBucket
>>>>>>>> 17666407WAUserConfiguration
>>>>>>>> 18664701WAAttributeSearchContext
>>>>>>>> 19338617RcCounter
>>>>>>>> 20338617WARcLastAccessEntry
>>>>>>>> 21332017RcKeyValueDictionary
>>>>>>>> 22230240WAValueCallback
>>>>>>>> 23226002WARequestFields
>>>>>>>> 24226002WAUrl
>>>>>>>> 25223641GRSmallDictionary
>>>>>>>> 26221821GRDelayedSend
>>>>>>>> 27221821GRUnboundMessage
>>>>>>>> 28220824GsStackBuffer
>>>>>>>> 29219296WAImageCallback
>>>>>>>> 30187813Date
>>>>>>>> 31176258MCMethodDefinition
>>>>>>>> 32146263WAActionCallback
>>>>>>>> 33113114WARenderCanvas
>>>>>>>> 34113039WAMimeType
>>>>>>>> 35113003WADocumentHandler
>>>>>>>> 36113003WAMimeDocument
>>>>>>>> 37113001WARenderVisitor
>>>>>>>> 38113001WAActionPhaseContinuation
>>>>>>>> 39113001WACallbackRegistry
>>>>>>>> 40113001WARenderingGuide
>>>>>>>> 41113001WARenderContext
>>>>>>>> 42112684WASnapshot
>>>>>>>> 43110804IdentityBag
>>>>>>>> 44110720TransientValue
>>>>>>>> 45110710WAToolDecoration
>>>>>>>> 46110672TransientMutex
>>>>>>>> 47110670WAGemStoneMutex
>>>>>>>> 48110670WARcLastAccessExpiryPolicy
>>>>>>>> 49110670WACache
>>>>>>>> 50110670WANoReapingStrategy
>>>>>>>> 51110670WACacheMissStrategy
>>>>>>>> 52110670WANotifyRemovalAction
>>>>>>>> 53110640WATimingToolFilter
>>>>>>>> 54110640WADeprecatedToolFilter
>>>>>>>> 55110489WAAnswerHandler
>>>>>>>> 56110422WADelegation
>>>>>>>> 57110412WAPartialContinuation
>>>>>>>> 58110412GsProcess
>>>>>>>> 59109773UserPersonalInformation
>>>>>>>> 60109712Student
>>>>>>>> 61109295WATaskVisitor
>>>>>>>> 62109285UserLoginView
>>>>>>>> 63109285PracticeJournalLoginTask
>>>>>>>> 64109259WAValueExpression
>>>>>>>> 65109215PracticeJournalSession
>>>>>>>> 6656942Time
>>>>>>>> 6754394GsMethod
>>>>>>>> 6853207MCVersionInfo
>>>>>>>> 6953207UUID
>>>>>>>> 7045927MethodVersionRecord
>>>>>>>> 7141955MethodBookExercise
>>>>>>>> 7237223Symbol
>>>>>>>> 7329941MCInstanceVariableDefinition
>>>>>>>> 7421828MCClassDefinition
>>>>>>>> 7519291SymbolAssociation
>>>>>>>> 7618065PracticeDay
>>>>>>>> 7717218GsMethodDictionary
>>>>>>>> 7816617MusicalPiece
>>>>>>>> 7916609SymbolSet
>>>>>>>> 8011160FreeformExercise
>>>>>>>> 818600SymbolDictionary
>>>>>>>> 827537DateAndTime
>>>>>>>> 836812Duration
>>>>>>>> 846288Month
>>>>>>>> 856288PracticeMonth
>>>>>>>> 864527WAHtmlAttributes
>>>>>>>> 874390DateTime
>>>>>>>> 884247Metaclass
>>>>>>>> 894190WAGenericTag
>>>>>>>> 904142SimpleBlock
>>>>>>>> 914136WATableColumnTag
>>>>>>>> 924136WACheckboxTag
>>>>>>>> 934029Composer
>>>>>>>> 943682RcIdentityBag
>>>>>>>> 953428ClassHistory
>>>>>>>> 963010PracticeSession
>>>>>>>> 972185MCClassVariableDefinition
>>>>>>>> 982017CanonStringBucket
>>>>>>>> 991986MethodBook
>>>>>>>> 1001974WARenderPhaseContinuation
>>>>>>>> 1011965PurchaseOptionInformation
>>>>>>>> 1021843AmazonPurchase
>>>>>>>> 1031796GsDocText
>>>>>>>> 1041513GsClassDocumentation
>>>>>>>> 1051508209409
>>>>>>>> 1061425WASession
>>>>>>>> 1071218UserInformationInterface
>>>>>>>> 1081134WAValuesCallback
>>>>>>>> 1091125WACancelActionCallback
>>>>>>>> 110751DepListBucket
>>>>>>>> 111738Pragma
>>>>>>>> 112716LessonTaskRecording
>>>>>>>> 113693UserForgotPasswordView
>>>>>>>> 114629MusicalPieceRepertoireItem
>>>>>>>> 115524PracticeYear
>>>>>>>> 116524Year
>>>>>>>> 117483MCOrganizationDefinition
>>>>>>>> 118480Repertoire
>>>>>>>> 119467MCPackage
>>>>>>>> 120440MultiplePageDisplayView
>>>>>>>> 121403MethodBookExerciseRepertoireItem
>>>>>>>> 122352UserCalendar
>>>>>>>> 123334MetacelloValueHolderSpec
>>>>>>>> 124333MCVersion
>>>>>>>> 125333MCSnapshot
>>>>>>>> 126313TimeZoneTransition
>>>>>>>> 127307Color
>>>>>>>> 128269NumberGenerator
>>>>>>>> 129216UserCommunityInformation
>>>>>>>> 130206IdentitySet
>>>>>>>> 131200RcQueueSessionComponent
>>>>>>>> 132199FreeformExerciseRepertoireItem
>>>>>>>> 133191WAHtmlCanvas
>>>>>>>> 134187PackageInfo
>>>>>>>> 135182InvariantArray
>>>>>>>> 136176MCRepositoryGroup
>>>>>>>> 137175MCWorkingCopy
>>>>>>>> 138175MCWorkingAncestry
>>>>>>>> 139157PracticeSessionInputView
>>>>>>>> 140149MetacelloPackageSpec
>>>>>>>> 141139MetacelloRepositoriesSpec
>>>>>>>> 142132WAMetaElement
>>>>>>>> 143131MCClassInstanceVariableDefinition
>>>>>>>> 144117MetacelloMergeMemberSpec
>>>>>>>> 145106YouTubeVideoResource
>>>>>>>> 146101MusicalPieceRepertoireItemInputView
>>>>>>>> 14799UserCommentsView
>>>>>>>> 14896LessonTasksView
>>>>>>>> 14996LessonTaskView
>>>>>>>> 15094WATableTag
>>>>>>>> 15191MetacelloMCVersion
>>>>>>>> 15287PracticeSessionView
>>>>>>>> 15381SortedCollection
>>>>>>>> 15478MetacelloMCVersionSpec
>>>>>>>> 15578MetacelloVersionNumber
>>>>>>>> 15678MetacelloPackagesSpec
>>>>>>>> 15777DateRange
>>>>>>>> 15877PracticeSessionsView
>>>>>>>> 15970MethodBooksView
>>>>>>>> 16067UserCalendarView
>>>>>>>> 16167PracticeJournalMiniCalendar
>>>>>>>> 16266PracticeDayView
>>>>>>>> 16365MetacelloAddMemberSpec
>>>>>>>> 16464WATextInputTag
>>>>>>>> 16561Teacher
>>>>>>>> 16661MCPoolImportDefinition
>>>>>>>> 16761MCHttpRepository
>>>>>>>> 16860CheckScreenNameAvailability
>>>>>>>> 16958UserRepertoireItemsView
>>>>>>>> 17058UserRepertoireView
>>>>>>>> 17158PrivateLesson
>>>>>>>> 17257UserRepertoireItemsSummaryView
>>>>>>>> 17353MetacelloMCProjectSpec
>>>>>>>> 17453MetacelloProjectReferenceSpec
>>>>>>>> 17552WAListAttribute
>>>>>>>> 17648TimedActivitiesInformationServer
>>>>>>>> 17746PracticeSessionTemplate
>>>>>>>> 17846WriteStream
>>>>>>>> 17944WAFormTag
>>>>>>>> 18039UserInstrumentsInputView
>>>>>>>> 18139MetacelloRepositorySpec
>>>>>>>> 18235UserInstrumentsInputViewGenerator
>>>>>>>> 18335CreateLessonTaskRecordingInterface
>>>>>>>> 18432WASelectTag
>>>>>>>> 18532WADateInput
>>>>>>>> 18630WAApplication
>>>>>>>> 18730UserComment
>>>>>>>> 18830WAExceptionFilter
>>>>>>>> 18929WADispatchCallback
>>>>>>>> 19029WARadioGroup
>>>>>>>> 19128DecimalFloat
>>>>>>>> 19227JSStream
>>>>>>>> 19326MethodBookExerciseRepertoireItemInputView
>>>>>>>> 19426WAStringAttribute
>>>>>>>> 19524WAOpeningConditionalComment
>>>>>>>> 19624WAScriptElement
>>>>>>>> 19724WAClosingConditionalComment
>>>>>>>> 19824PracticeSessionTemplateInputView
>>>>>>>> 19924WALinkElement
>>>>>>>> 20023UserInformationView
>>>>>>>>
>>>>>>>>
>>>>>>>> Larry
>>>>>>>>
>>>>>>>>
>>>>>>>>>
>>>>>>>>> Dale
>>>>>>>>>
>>>>>>>>> [1] https://code.google.com/p/glassdb/wiki/ClearPersistentCaches
>>>>>>>>> [2] https://programminggems.wordpress.com/2009/12/15/scanbackup-2/
>>>>>>>>> On 03/31/2015 05:35 AM, Lawrence Kellogg wrote:
>>>>>>>>>>
>>>>>>>>>>> On Mar 30, 2015, at 6:24 PM, Dale Henrichs 
>>>>>>>>>>> <dale.henrichs at gemtalksystems.com 
>>>>>>>>>>> <mailto:dale.henrichs at gemtalksystems.com>> wrote:
>>>>>>>>>>>
>>>>>>>>>>> The initial MFC gave you (pre-backup):
>>>>>>>>>>>
>>>>>>>>>>>   390,801,691 live objects with 23,382,898 dead
>>>>>>>>>>>
>>>>>>>>>>> The second MFC gave you (post-backup):
>>>>>>>>>>>
>>>>>>>>>>>   391,007,811 live objects with 107 dead
>>>>>>>>>>>
>>>>>>>>>>> Which means that we did not gain nearly as much as 
>>>>>>>>>>> anticipated by cleaning up the seaside session state and 
>>>>>>>>>>> object log ... so something else is hanging onto a big chunk 
>>>>>>>>>>> of objects ...
>>>>>>>>>>>
>>>>>>>>>>> So yes at this point there is no need to consider a backup 
>>>>>>>>>>> and restore to shrink extents until we can free up some more 
>>>>>>>>>>> objects ...
>>>>>>>>>>>
>>>>>>>>>>> I've got to head out on an errand right now, so I can't give 
>>>>>>>>>>> you any detailed pointers, to the techniques to use for 
>>>>>>>>>>> finding the nasty boy that is hanging onto the "presumably 
>>>>>>>>>>> dead objects" ...
>>>>>>>>>>>
>>>>>>>>>>> I am a bit suspicious that the Object log might still be 
>>>>>>>>>>> alive an kicking, so I think you should verify by inspecting 
>>>>>>>>>>> the ObjectLog collections ... poke around on the class side 
>>>>>>>>>>> ... if you find a big collection (and it blows up your TOC 
>>>>>>>>>>> if you try to look at it), then look again at the class-side 
>>>>>>>>>>> methods and make sure that you nuke the RCQueue and the 
>>>>>>>>>>> OrderedCollection .... close down/logout your vms, and then 
>>>>>>>>>>> run another mfc to see if you gained any ground …
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Well, the ObjectLog collection on the class side of 
>>>>>>>>>> ObjectLogEntry is empty, and the ObjectQueue class variable has:
>>>>>>>>>>
>>>>>>>>>> <Mail Attachment.png>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Is it necessary to reinitialize the ObjectQueue?
>>>>>>>>>>
>>>>>>>>>> Is there some report I can run that will tell me what is 
>>>>>>>>>> holding onto so much space?
>>>>>>>>>>
>>>>>>>>>> Best,
>>>>>>>>>>
>>>>>>>>>> Larry
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Dale
>>>>>>>>>>>
>>>>>>>>>>> On 03/30/2015 02:57 PM, Lawrence Kellogg wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> On Mar 30, 2015, at 12:28 PM, Dale Henrichs 
>>>>>>>>>>>>> <dale.henrichs at gemtalksystems.com 
>>>>>>>>>>>>> <mailto:dale.henrichs at gemtalksystems.com>> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>> Okay,
>>>>>>>>>>>>>
>>>>>>>>>>>>> I guess you made it through the session expirations okay 
>>>>>>>>>>>>> and according to the MFC results it does look like you did 
>>>>>>>>>>>>> get rid of a big chunk of objects... Presumably the backup 
>>>>>>>>>>>>> was made before the vote on the possible dead was finished 
>>>>>>>>>>>>> so the backup would not have been able to skip all of the 
>>>>>>>>>>>>> dead objects (until the vote was completed) .... there 's 
>>>>>>>>>>>>> also an outside chance that the vm used to expire the 
>>>>>>>>>>>>> sessions would have voted down some of the possible dead 
>>>>>>>>>>>>> if it was still logged in when the backup was made ...
>>>>>>>>>>>>>
>>>>>>>>>>>>> So we need to find out what's going on in the new extent 
>>>>>>>>>>>>> ... so do another mfc and send me the results
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Ok, I made it through another mark for collection and here 
>>>>>>>>>>>> is the result:
>>>>>>>>>>>>
>>>>>>>>>>>> <Mail Attachment.png>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Am I wrong in thinking that the file size of the extent 
>>>>>>>>>>>> will not shrink? It certainly has not shrunk much.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>  In the new extent, run the MFC again, and provide me with 
>>>>>>>>>>>>> the results ... include an `Admin>>DoIt>>File Size 
>>>>>>>>>>>>> Report`. Then logout of GemTools and stop/start any other 
>>>>>>>>>>>>> seaside servers or maintenance vms that might be running ...
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Here is the file size report before the mark for collection
>>>>>>>>>>>>
>>>>>>>>>>>> Extent #1
>>>>>>>>>>>> -----------
>>>>>>>>>>>>  Filename = 
>>>>>>>>>>>> !TCP at localhost#dir:/opt/gemstone/product/seaside/data#log://opt/gemstone/log/%N%P.log#dbf!/opt/gemstone/GemStone64Bit2.4.4.1-x86_64.Linux/seaside/data/extent0.dbf 
>>>>>>>>>>>> <log://opt/gemstone/log/%N%P.log#dbf%21/opt/gemstone/GemStone64Bit2.4.4.1-x86_64.Linux/seaside/data/extent0.dbf>
>>>>>>>>>>>>
>>>>>>>>>>>>  File size =     23732.00 Megabytes
>>>>>>>>>>>>  Space available = 3478.58 Megabytes
>>>>>>>>>>>>
>>>>>>>>>>>> Totals
>>>>>>>>>>>> ------
>>>>>>>>>>>>  Repository size = 23732.00 Megabytes
>>>>>>>>>>>>  Free Space =      3478.58 Megabytes
>>>>>>>>>>>>
>>>>>>>>>>>> and after
>>>>>>>>>>>>
>>>>>>>>>>>> Extent #1
>>>>>>>>>>>> -----------
>>>>>>>>>>>>  Filename = 
>>>>>>>>>>>> !TCP at localhost#dir:/opt/gemstone/product/seaside/data#log://opt/gemstone/log/%N%P.log#dbf!/opt/gemstone/GemStone64Bit2.4.4.1-x86_64.Linux/seaside/data/extent0.dbf 
>>>>>>>>>>>> <log://opt/gemstone/log/%N%P.log#dbf%21/opt/gemstone/GemStone64Bit2.4.4.1-x86_64.Linux/seaside/data/extent0.dbf>
>>>>>>>>>>>>
>>>>>>>>>>>>  File size =     23732.00 Megabytes
>>>>>>>>>>>>  Space available = 3476.47 Megabytes
>>>>>>>>>>>>
>>>>>>>>>>>> Totals
>>>>>>>>>>>> ------
>>>>>>>>>>>>  Repository size = 23732.00 Megabytes
>>>>>>>>>>>>  Free Space =      3476.47 Megabytes
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> I await further instructions.
>>>>>>>>>>>>
>>>>>>>>>>>> Best,
>>>>>>>>>>>>
>>>>>>>>>>>> Larry
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>> By the time we exchange emails, the vote should have a 
>>>>>>>>>>>>> chance to complete this time... but I want to see the 
>>>>>>>>>>>>> results of the MFC and File SIze Report before deciding 
>>>>>>>>>>>>> what to do next ...
>>>>>>>>>>>>>
>>>>>>>>>>>>> Dale
>>>>>>>>>>>>>
>>>>>>>>>>>>> On 03/30/2015 07:30 AM, Lawrence Kellogg wrote:
>>>>>>>>>>>>>> Hello Dale,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Well, I went though the process as described below, but 
>>>>>>>>>>>>>> have not see my extent shrink appreciably, so I am puzzled.
>>>>>>>>>>>>>> Here is the screenshot after the mark for collection. Do 
>>>>>>>>>>>>>> I have to do something to reclaim the dead objects? Does 
>>>>>>>>>>>>>> the maintenance gem need to be run?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> <Mail Attachment.png>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> After the ObjectLog init, and mark, I did a restore into 
>>>>>>>>>>>>>> a fresh extent.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Here is the size of the new extent vs the old, saved extent:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> <Mail Attachment.png>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Thoughts?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Larry
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Mar 25, 2015, at 2:15 PM, Dale Henrichs 
>>>>>>>>>>>>>>> <dale.henrichs at gemtalksystems.com 
>>>>>>>>>>>>>>> <mailto:dale.henrichs at gemtalksystems.com>> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Okay here's the sequence of steps that I think you 
>>>>>>>>>>>>>>> should take:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>   1. expire all of your sessions:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>   | expired |
>>>>>>>>>>>>>>>   Transcript cr; show: 'Unregistering...' , DateAndTime 
>>>>>>>>>>>>>>> now printString.
>>>>>>>>>>>>>>>   expired := WABasicDevelopment reapSeasideCache.
>>>>>>>>>>>>>>>   expired > 0
>>>>>>>>>>>>>>>     ifTrue: [ (ObjectLogEntry trace: 'MTCE: expired 
>>>>>>>>>>>>>>> sessions' object: expired) addToLog ].
>>>>>>>>>>>>>>>   Transcript cr; show: '...Expired: ' , expired 
>>>>>>>>>>>>>>> printString , ' sessions.'.
>>>>>>>>>>>>>>>   System commitTransactions
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>   2. initalize your object log
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>   3. run MFC
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>   [
>>>>>>>>>>>>>>>   System abortTransaction.
>>>>>>>>>>>>>>> SystemRepository markForCollection ]
>>>>>>>>>>>>>>>     on: Warning
>>>>>>>>>>>>>>>     do: [ :ex |
>>>>>>>>>>>>>>> Transcript
>>>>>>>>>>>>>>>         cr;
>>>>>>>>>>>>>>>         show: ex description.
>>>>>>>>>>>>>>>       ex resume ]
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>   4. Then do a backup and restore ... you can use 
>>>>>>>>>>>>>>> GemTools to do the restore,
>>>>>>>>>>>>>>>       but then you should read the SysAdmin docs[1] for 
>>>>>>>>>>>>>>> instructions to do the restore
>>>>>>>>>>>>>>>       (I've enclosed link to 3.2 docs, but the procedure 
>>>>>>>>>>>>>>> and commands should pretty
>>>>>>>>>>>>>>>       much be the same, but it's best to look up the 
>>>>>>>>>>>>>>> docs for your GemStone version[2]
>>>>>>>>>>>>>>>       and follow those instructions)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> As I mentioned earlier, it will probably take a while 
>>>>>>>>>>>>>>> for each of these operations to complete (object log 
>>>>>>>>>>>>>>> will be fast and the backup will be fast, if the mfc 
>>>>>>>>>>>>>>> tosses out the majority of your data) and it is likely 
>>>>>>>>>>>>>>> that the repository will grow some more during the 
>>>>>>>>>>>>>>> process (hard to predict this one, tho).
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Step 1 will touch every session and every continuation 
>>>>>>>>>>>>>>> so it is hard to say what percent of the objects are 
>>>>>>>>>>>>>>> going to be touched (the expensive part), still there 
>>>>>>>>>>>>>>> are likely to be a lot of those puppies and they will 
>>>>>>>>>>>>>>> have to be read from disk into the SPC ...
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Step 3. is going scan all of the live objects and again 
>>>>>>>>>>>>>>> it hard to predict exactly how expensive it will be ...
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Dale
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> [1] 
>>>>>>>>>>>>>>> http://downloads.gemtalksystems.com/docs/GemStone64/3.2.x/GS64-SysAdmin-3.2/GS64-SysAdmin-3.2.htm
>>>>>>>>>>>>>>> [2] http://gemtalksystems.com/techsupport/resources/
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On 3/25/15 10:18 AM, Lawrence Kellogg wrote:
>>>>>>>>>>>>>>>> Hello Dale,
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Thanks for the help. I’m a terrible system admin when 
>>>>>>>>>>>>>>>> it comes to maintaining a system with one user, LOL.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I’m not running the maintenance VM and I haven’t been 
>>>>>>>>>>>>>>>> doing regular mark for collects.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I’m trying to do a fullBackupTo: at the moment, well 
>>>>>>>>>>>>>>>> see if I get through that. Should I have done a 
>>>>>>>>>>>>>>>> markForCollection before the full backup?
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I’ll also try the ObjectLog trick.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I guess I need to start from a fresh extent, as you 
>>>>>>>>>>>>>>>> said, and the extent file will not shrink. I’m at 48% 
>>>>>>>>>>>>>>>> of my available disk space but it does seem slower than 
>>>>>>>>>>>>>>>> usual.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Best,
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Larry
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> On Mar 25, 2015, at 12:58 PM, Dale Henrichs via Glass 
>>>>>>>>>>>>>>>>> <glass at lists.gemtalksystems.com 
>>>>>>>>>>>>>>>>> <mailto:glass at lists.gemtalksystems.com>> wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Lawrence,
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Are you doing regular Mark for collects? Are you 
>>>>>>>>>>>>>>>>> running the maintenance vm along with you seaside servers?
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Seaside produces persistent garbage (persistent 
>>>>>>>>>>>>>>>>> session state that eventually times out) when it 
>>>>>>>>>>>>>>>>> processes requests so if you do not run the 
>>>>>>>>>>>>>>>>> maintenance vm the sessions are not expired and if you 
>>>>>>>>>>>>>>>>> do not run mfc regularly the expired sessions are not 
>>>>>>>>>>>>>>>>> cleaned up ...
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Another source of growth could be the Object Log ... 
>>>>>>>>>>>>>>>>> (use `ObjectLogEntry initalize` to efficiently reset 
>>>>>>>>>>>>>>>>> the Object Log ... pay attention to the mispelling ... 
>>>>>>>>>>>>>>>>> thats another story). If you are getting continuations 
>>>>>>>>>>>>>>>>> saved to the object log, the stacks that are saved, 
>>>>>>>>>>>>>>>>> can hang onto a lot of session state, that even though 
>>>>>>>>>>>>>>>>> expired will not be garbage collected because of 
>>>>>>>>>>>>>>>>> references from the continuation in the object log 
>>>>>>>>>>>>>>>>> keep it alive ...
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> The best way to shrink your extent (once we understand 
>>>>>>>>>>>>>>>>> why it is growing) is to do a backup and then restore 
>>>>>>>>>>>>>>>>> into a virgin extent 
>>>>>>>>>>>>>>>>> ($GEMSTONE/bin/extent0.seaside.dbf)...
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Dale
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> On 3/25/15 8:34 AM, Lawrence Kellogg via Glass wrote:
>>>>>>>>>>>>>>>>>> Well, Amazon sent me a note that they are having 
>>>>>>>>>>>>>>>>>> hardware trouble on my instance, so they shut it 
>>>>>>>>>>>>>>>>>> down. It looks like they’re threatening to take the 
>>>>>>>>>>>>>>>>>> thing offline permanently so I’m trying to save my 
>>>>>>>>>>>>>>>>>> work with an AMI and move it somewhere else, if I 
>>>>>>>>>>>>>>>>>> have to.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> I finally got Gemstone/Seaside back up and running 
>>>>>>>>>>>>>>>>>> and noticed these lines in the Seaside log file. 
>>>>>>>>>>>>>>>>>> These kind of messages go on once a day for weeks. Is 
>>>>>>>>>>>>>>>>>> this normal?
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> --- 03/07/2015 02:44:14 PM UTC ---
>>>>>>>>>>>>>>>>>>   Extent = 
>>>>>>>>>>>>>>>>>> !#dbf!/opt/gemstone/GemStone64Bit2.4.4.1-x86_64.Linux/seaside/data/extent0.dbf
>>>>>>>>>>>>>>>>>>     has grown to 22528 megabytes.
>>>>>>>>>>>>>>>>>>   Repository has grown to 22528 megabytes.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>   Extent = 
>>>>>>>>>>>>>>>>>> !#dbf!/opt/gemstone/GemStone64Bit2.4.4.1-x86_64.Linux/seaside/data/extent0.dbf
>>>>>>>>>>>>>>>>>>     has grown to 22544 megabytes.
>>>>>>>>>>>>>>>>>>   Repository has grown to 22544 megabytes.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> --- 03/08/2015 03:31:45 PM UTC ---
>>>>>>>>>>>>>>>>>>   Extent = 
>>>>>>>>>>>>>>>>>> !#dbf!/opt/gemstone/GemStone64Bit2.4.4.1-x86_64.Linux/seaside/data/extent0.dbf
>>>>>>>>>>>>>>>>>>     has grown to 22560 megabytes.
>>>>>>>>>>>>>>>>>>   Repository has grown to 22560 megabytes.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>   Extent = 
>>>>>>>>>>>>>>>>>> !#dbf!/opt/gemstone/GemStone64Bit2.4.4.1-x86_64.Linux/seaside/data/extent0.dbf
>>>>>>>>>>>>>>>>>>     has grown to 22576 megabytes.
>>>>>>>>>>>>>>>>>>   Repository has grown to 22576 megabytes.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> --- 03/10/2015 03:19:34 AM UTC ---
>>>>>>>>>>>>>>>>>>   Extent = 
>>>>>>>>>>>>>>>>>> !#dbf!/opt/gemstone/GemStone64Bit2.4.4.1-x86_64.Linux/seaside/data/extent0.dbf
>>>>>>>>>>>>>>>>>>     has grown to 22592 megabytes.
>>>>>>>>>>>>>>>>>>   Repository has grown to 22592 megabytes.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> --- 03/10/2015 03:46:39 PM UTC ---
>>>>>>>>>>>>>>>>>>   Extent = 
>>>>>>>>>>>>>>>>>> !#dbf!/opt/gemstone/GemStone64Bit2.4.4.1-x86_64.Linux/seaside/data/extent0.dbf
>>>>>>>>>>>>>>>>>>     has grown to 22608 megabytes.
>>>>>>>>>>>>>>>>>>   Repository has grown to 22608 megabytes.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>   Extent = 
>>>>>>>>>>>>>>>>>> !#dbf!/opt/gemstone/GemStone64Bit2.4.4.1-x86_64.Linux/seaside/data/extent0.dbf
>>>>>>>>>>>>>>>>>>     has grown to 22624 megabytes.
>>>>>>>>>>>>>>>>>>   Repository has grown to 22624 megabytes.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> My extent has now grown to
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> -rw------- 1 seasideuser seasideuser 23735566336 Mar 
>>>>>>>>>>>>>>>>>> 25 15:31 extent0.dbf
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> I don’t get a lot of traffic so I’m a little 
>>>>>>>>>>>>>>>>>> surprised at the growth. Should I try to shrink the 
>>>>>>>>>>>>>>>>>> extent?
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> I suppose I should also do a SystemRepository backup, 
>>>>>>>>>>>>>>>>>> if I can remember the commands.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Best,
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Larry
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>>>>> Glass mailing list
>>>>>>>>>>>>>>>>>> Glass at lists.gemtalksystems.com
>>>>>>>>>>>>>>>>>> http://lists.gemtalksystems.com/mailman/listinfo/glass
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>>>> Glass mailing list
>>>>>>>>>>>>>>>>> Glass at lists.gemtalksystems.com 
>>>>>>>>>>>>>>>>> <mailto:Glass at lists.gemtalksystems.com>
>>>>>>>>>>>>>>>>> http://lists.gemtalksystems.com/mailman/listinfo/glass
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Glass mailing list
>>>>>>>> Glass at lists.gemtalksystems.com 
>>>>>>>> <mailto:Glass at lists.gemtalksystems.com>
>>>>>>>> http://lists.gemtalksystems.com/mailman/listinfo/glass
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20150406/72fe9d46/attachment-0001.html>


More information about the Glass mailing list