[Glass] Explanation to "too many failed pom_gen scavenges" in this context??
Dale Henrichs via Glass
glass at lists.gemtalksystems.com
Mon Mar 7 13:43:06 PST 2016
Well,
In 2.4.x, this primitive returned an Array of Associations ... class and
instance count .. somewhere along the line this obviously changed ----
the danger of using _ methods ... I assume that this also means that the
condition that was being tested for has never been hit either :)
I haven't worked my way up the GemStone version chain to find out when
the behavior actually changed, but #_* methods are not documented by
definition and also cannot be depended upon to even exist from version
to version ... but sometimes the #_ method is the only way to get a bit
of interesting information:)
I've submitted an issue for this and I will check into what might have
happened ... getting back objects was the intent and happens to be quite
useful so I want to find out if that capability is still present in a
different form.
Dale
[1] https://github.com/GsDevKit/GsDevKit/issues/90
On 03/07/2016 12:11 PM, Mariano Martinez Peck wrote:
> BTW Dale.... I think the line of "System *_vmInstanceCounts:* 3" in
> #installAlmostOutOfMemoryStaticHandler: is wrong and instead it should
> be (System *_vmInstanceCountsReport:* 3) and it also will fail the
>
> sort: [ :a :b | (a value at: 2) > (b value at: 2) ]
>
> Was this fixed somewhere after 3.2.9 ???
>
>
> Cheers,
>
>
>
>
> On Mon, Mar 7, 2016 at 4:57 PM, Mariano Martinez Peck
> <marianopeck at gmail.com <mailto:marianopeck at gmail.com>> wrote:
>
>
>
> On Mon, Mar 7, 2016 at 3:18 PM, Dale Henrichs via Glass
> <glass at lists.gemtalksystems.com
> <mailto:glass at lists.gemtalksystems.com>> wrote:
>
> Mariano,
>
> The handler for AlmostOutOfMemory relies on being able to
> resume after a successful commit, but a GemStone vm will
> sometimes cross the threshol in the middle of a "random C
> code" called by a primitive ... in these cases we have to
> defer the signalling of AlmostOutOfMemory until we reach a
> point where we can safely resume .... The implication is that
> depending upon the details of your call it is possible to
> physically run out of memory before the deferred signaling can
> take place ...
>
> If you lower the threshold, you should be able to find a limit
> that gives you room to finish the memory hungry primitive call
> and get the deferred AlmostOfOfMemory exception signalled.
>
>
> Yes,*but I am already running the threshold with 10% with a 700MB
> temp space*... how less than that should it be? mmmm
>
> It is also possible that your temp obj cache is filling with
> objects that have not yet been connected to the persistent
> root ...
>
>
> mmm OK I will check this. But now I get this same error in
> another cron job. Both were running correctly a few weeks/months ago.
>
> If you want to see what's happening with respect to the
> exceptions that are being signaleed, you could add logging to
> MCPlatformSupport
> class>>installAlmostOutOfMemoryStaticHandler: ...
>
>
> mmmm I am a bit lost there. Which kind of log could I add?
>
> Thanks in advance,
>
>
>
> Dale
>
>
>
> On 03/07/2016 08:35 AM, Mariano Martinez Peck via Glass wrote:
>> Hi guys,
>>
>> I am running some code that processes a huge csv file and
>> inserts persistent data to gemstone. This is a GemStone 3.2.9
>> with 1GB of SPC, GEM_TEMPOBJ_CACHE_SIZE of 700MB
>> and GEM_TEMPOBJ_POMGEN_PRUNE_ON_VOTE at 100.
>>
>> What is funny is that my code runs inside commitOnAlmost...
>>
>> I have this method:
>>
>> FAGemStoneCompatibility >> commitOnAlmostOutOfMemoryDuring:
>> aBlock threshold: aThreshold
>> [
>> MCPlatformSupport installAlmostOutOfMemoryStaticHandler:
>> aThreshold.
>> aBlock value ]
>> ensure: [ MCPlatformSupport
>> uninstallAlmostOutOfMemoryStaticHandler ]
>>
>> And this is how I use it:
>>
>> System commitTransaction.
>> FACompatibilityUtils current
>> commitOnAlmostOutOfMemoryDuring: [
>> *WhateverClass whateverThingThatNeedsMemory.*
>> ]
>> threshold: 10.
>> System commitTransaction.
>>
>>
>> And even with a threshold of 10... I am getting a
>> *
>> *
>> *VM temporary object memory is full *
>> *, too many failed pom_gen scavenges*
>>
>>
>> Any idea what could be going on?
>>
>> Thanks in advance,
>>
>> --
>> Mariano
>> http://marianopeck.wordpress.com
>>
>>
>> _______________________________________________
>> 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
>
>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20160307/16c69247/attachment.html>
More information about the Glass
mailing list