Windows Not Enough Memory error

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Windows Not Enough Memory error

Louis LaBrunda
Hi Group,

Every now and then one of our Windows NT services fails with a "Not Enough Memory" error.  This has happened over the years on many versions of VA Smalltalk.  We are currently on v8.6.2.

I don't believe this is a real error, at least some of the time.  By that I mean I believe windows did reject the memory request with a not enough memory error but that it really had the memory.  There is a log entry that shows the program using less than 14 MBs about three hours before the problem. I know 3 hours is a long time but the program was idle during that time and has some code that reports it its memory usage gets over 100 MBs.  That didn't happen.  There are four other VA Smalltalk programs running as NT services at the same time.  None of them reported a memory problem.  I know that's not definitive but if windows was really out of memory, I would think one of them would also have a problem.  The memory usage of all of these programs together should be less than 100 MBs and almost always is.

This is at a customer site, so I'm not sure of the exact system configuration but it is some server version of windows running on VM Ware.  It was early in the day and things had just gotten started.  By that I mean all the servers were running, waiting (for a few hours) for work when a transaction came in.  The transaction hit three other servers before it got to this server and caused it to ask for memory and be rejected.

If my theory is correct and windows has enough memory but rejected the request because it is somehow confused, doing paging or swapping or something, would it make sense retry the request for memory?  I know this is a VM question and that the VM is being worked on to upgrade it to 64 bits, so maybe it would be a good time to think about this.  I also know that there is probably know way to reproduce this, so good luck testing.  But if adding the retry isn't too big a deal, a log entry could be made if the retry ever takes place and is successful.

Lou

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.

PivotPhase3CommServerNotEnoughMemory.log (7K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Windows Not Enough Memory error

Richard Sargent
Administrator
On Tuesday, December 20, 2016 at 8:07:42 AM UTC-8, Louis LaBrunda wrote:
Hi Group,

Every now and then one of our Windows NT services fails with a "Not Enough Memory" error.  This has happened over the years on many versions of VA Smalltalk.  We are currently on v8.6.2.

It looks like you may have been misled by the primitive's failure handling.
EsAllocateMemory failed to allocate 0x0000000a bytes due to exception 0xc0000005
Process reportError: Primitive failed in: OSPtr class>>#privateCalloc:reftype: due to Not enough memory

That's a GPF error, not an out of memory error.

 

I don't believe this is a real error, at least some of the time.  By that I mean I believe windows did reject the memory request with a not enough memory error but that it really had the memory.  There is a log entry that shows the program using less than 14 MBs about three hours before the problem. I know 3 hours is a long time but the program was idle during that time and has some code that reports it its memory usage gets over 100 MBs.  That didn't happen.  There are four other VA Smalltalk programs running as NT services at the same time.  None of them reported a memory problem.  I know that's not definitive but if windows was really out of memory, I would think one of them would also have a problem.  The memory usage of all of these programs together should be less than 100 MBs and almost always is.

This is at a customer site, so I'm not sure of the exact system configuration but it is some server version of windows running on VM Ware.  It was early in the day and things had just gotten started.  By that I mean all the servers were running, waiting (for a few hours) for work when a transaction came in.  The transaction hit three other servers before it got to this server and caused it to ask for memory and be rejected.

If my theory is correct and windows has enough memory but rejected the request because it is somehow confused, doing paging or swapping or something, would it make sense retry the request for memory?  I know this is a VM question and that the VM is being worked on to upgrade it to 64 bits, so maybe it would be a good time to think about this.  I also know that there is probably know way to reproduce this, so good luck testing.  But if adding the retry isn't too big a deal, a log entry could be made if the retry ever takes place and is successful.

Lou

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Windows Not Enough Memory error

Louis LaBrunda
Hey Richard,

I had noticed the 0xc0000005 and for a moment it flashed in my brain that it was an addressing error but then I thought this is a request for memory and no address is being passed at least not in so why should it complain about an address?

Anyway, you got me to look at this closer and I see that the request for memory is not at a low level looking for object memory, it is just looking for 10 bytes as part of a call to a DLL.  The DLL is a bit of a black box but I think I can wrap the code enough to catch the error on my own and maybe retry things, so I will look into that.  Thanks.

Lou

On Tuesday, December 20, 2016 at 12:00:34 PM UTC-5, Richard Sargent wrote:
On Tuesday, December 20, 2016 at 8:07:42 AM UTC-8, Louis LaBrunda wrote:
Hi Group,

Every now and then one of our Windows NT services fails with a "Not Enough Memory" error.  This has happened over the years on many versions of VA Smalltalk.  We are currently on v8.6.2.

It looks like you may have been misled by the primitive's failure handling.
EsAllocateMemory failed to allocate 0x0000000a bytes due to exception 0xc0000005
Process reportError: Primitive failed in: OSPtr class>>#privateCalloc:reftype: due to Not enough memory

That's a GPF error, not an out of memory error.

 

I don't believe this is a real error, at least some of the time.  By that I mean I believe windows did reject the memory request with a not enough memory error but that it really had the memory.  There is a log entry that shows the program using less than 14 MBs about three hours before the problem. I know 3 hours is a long time but the program was idle during that time and has some code that reports it its memory usage gets over 100 MBs.  That didn't happen.  There are four other VA Smalltalk programs running as NT services at the same time.  None of them reported a memory problem.  I know that's not definitive but if windows was really out of memory, I would think one of them would also have a problem.  The memory usage of all of these programs together should be less than 100 MBs and almost always is.

This is at a customer site, so I'm not sure of the exact system configuration but it is some server version of windows running on VM Ware.  It was early in the day and things had just gotten started.  By that I mean all the servers were running, waiting (for a few hours) for work when a transaction came in.  The transaction hit three other servers before it got to this server and caused it to ask for memory and be rejected.

If my theory is correct and windows has enough memory but rejected the request because it is somehow confused, doing paging or swapping or something, would it make sense retry the request for memory?  I know this is a VM question and that the VM is being worked on to upgrade it to 64 bits, so maybe it would be a good time to think about this.  I also know that there is probably know way to reproduce this, so good luck testing.  But if adding the retry isn't too big a deal, a log entry could be made if the retry ever takes place and is successful.

Lou

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Windows Not Enough Memory error

John O'Keefe-3
In reply to this post by Richard Sargent
Richard and Lou -

The "Not enough memory" error is the default error returned from the VM when it doesn't know what really happened. I'm not defending this approach to error reporting, I'm just describing it.

John

On Tuesday, December 20, 2016 at 12:00:34 PM UTC-5, Richard Sargent wrote:
On Tuesday, December 20, 2016 at 8:07:42 AM UTC-8, Louis LaBrunda wrote:
Hi Group,

Every now and then one of our Windows NT services fails with a "Not Enough Memory" error.  This has happened over the years on many versions of VA Smalltalk.  We are currently on v8.6.2.

It looks like you may have been misled by the primitive's failure handling.
EsAllocateMemory failed to allocate 0x0000000a bytes due to exception 0xc0000005
Process reportError: Primitive failed in: OSPtr class>>#privateCalloc:reftype: due to Not enough memory

That's a GPF error, not an out of memory error.

 

I don't believe this is a real error, at least some of the time.  By that I mean I believe windows did reject the memory request with a not enough memory error but that it really had the memory.  There is a log entry that shows the program using less than 14 MBs about three hours before the problem. I know 3 hours is a long time but the program was idle during that time and has some code that reports it its memory usage gets over 100 MBs.  That didn't happen.  There are four other VA Smalltalk programs running as NT services at the same time.  None of them reported a memory problem.  I know that's not definitive but if windows was really out of memory, I would think one of them would also have a problem.  The memory usage of all of these programs together should be less than 100 MBs and almost always is.

This is at a customer site, so I'm not sure of the exact system configuration but it is some server version of windows running on VM Ware.  It was early in the day and things had just gotten started.  By that I mean all the servers were running, waiting (for a few hours) for work when a transaction came in.  The transaction hit three other servers before it got to this server and caused it to ask for memory and be rejected.

If my theory is correct and windows has enough memory but rejected the request because it is somehow confused, doing paging or swapping or something, would it make sense retry the request for memory?  I know this is a VM question and that the VM is being worked on to upgrade it to 64 bits, so maybe it would be a good time to think about this.  I also know that there is probably know way to reproduce this, so good luck testing.  But if adding the retry isn't too big a deal, a log entry could be made if the retry ever takes place and is successful.

Lou

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.