Discussion:
[omniORB] Why not create a thread --- LastStatusValue: (NTSTATUS) 0xc0000017
xinsong xia
2012-11-01 06:05:18 UTC
Permalink
Dear Sir/Madam:
Excuse me, need your help urgently.
I'm testing an application which is a Corba server based on OmniORB 4.1.6 running on Windows 7. It is developed by VS 20008. During this stress test, some Corba client applications will do some operations randomly, such as connect to Corba server, send requests to Corba server, disconnect from Corba server. After running about two weeks, then Corba server application will fail to create thread by calling function _beginthreadex. The last error is as follows:
LastErrorValue: (Win32) 0x8 (8) - Not enough storage is available to process this command.
LastStatusValue: (NTSTATUS) 0xc0000017 - {Not Enough Quota} Not enough virtual memory or paging file quota is available to complete the specified operation.
For my knowledge, when Corba client send a request to server application, the server application will create a thread to service the request. After completion, the thread will be recycled.
After the failure, I could create more than 100 threads in other application by calling the function ?_beginthreadex?.
Furthermore, for the server application, running as "Administrator", the memory used is 36M, the thread count is 633, the handle count is 1535. For the whole system, the CPU, resource is normal as ever.
To my strange, after the first failure, when I restart the Corba server application again, the failure could be reproduced quite soon, maybe need 3-8 hours.
The question has almost driven me crazy, could you give me some advice?
Thanks
xinsong
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20121101/f1cb6141/attachment.html>
Luke Deller
2012-11-06 05:12:13 UTC
Permalink
Hi Xinsong,
Are using 32-bit processes? They may be running out of virtual address space due to the large number of threads created, each of which requires a certain amount of virtual address space for its stack.
I would suggest you investigate the options for configuring omniORB's use of threads; see:
http://omniorb.sourceforge.net/omni41/omniORB/omniORB008.html#toc40
Regards,
Luke.
From: xinsong xia [mailto:xsxia001 at sohu.com]
Sent: Thursday, 1 November 2012 5:05 PM
To: omniorb-list
Subject: [omniORB] Why not create a thread --- LastStatusValue: (NTSTATUS) 0xc0000017

Dear Sir/Madam:
Excuse me, need your help urgently.
I'm testing an application which is a Corba server based on OmniORB 4.1.6 running on Windows 7. It is developed by VS 20008. During this stress test, some Corba client applications will do some operations randomly, such as connect to Corba server, send requests to Corba server, disconnect from Corba server. After running about two weeks, then Corba server application will fail to create thread by calling function _beginthreadex. The last error is as follows:
LastErrorValue: (Win32) 0x8 (8) - Not enough storage is available to process this command.
LastStatusValue: (NTSTATUS) 0xc0000017 - {Not Enough Quota} Not enough virtual memory or paging file quota is available to complete the specified operation.
For my knowledge, when Corba client send a request to server application, the server application will create a thread to service the request. After completion, the thread will be recycled.
After the failure, I could create more than 100 threads in other application by calling the function "_beginthreadex".
Furthermore, for the server application, running as "Administrator", the memory used is 36M, the thread count is 633, the handle count is 1535. For the whole system, the CPU, resource is normal as ever.
To my strange, after the first failure, when I restart the Corba server application again, the failure could be reproduced quite soon, maybe need 3-8 hours.
The question has almost driven me crazy, could you give me some advice?
Thanks
xinsong

**********************************************************************************************
Important Note
This email (including any attachments) contains information which is confidential and may be subject to legal privilege. If you are not the intended recipient you must not use, distribute or copy this email. If you have received this email in error please notify the
sender immediately and delete this email. Any views expressed in this email are not necessarily the views of IRESS Limited.

It is the duty of the recipient to virus scan and otherwise test the information provided before loading onto any computer system.
IRESS Limited does not warrant that the information is free of a virus or any other defect or error.
**********************************************************************************************
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20121106/fdeeb71f/attachment.html>
xinsong xia
2012-11-06 05:30:47 UTC
Permalink
Dear Luke,

Thanks for your reply. It is a 32-bit processes.

Sorry to tell you my analysis early. Last Saturday I found our Corba server application has a large sum of unusable memory through vmmap tool, it amounts to 1.2G. After investigation, I found it is due to auti-virus software I installed, the software seems monitor and tag the memory allocation of every user mode process.

Anyway, thanks you very much.

Regards

Xinsong

From: Luke Deller
Date: 2012-11-06 13:12
To: 'xsxia001'
CC: 'omniorb-list'
Subject: RE: [omniORB] Why not create a thread --- LastStatusValue: (NTSTATUS) 0xc0000017
Hi Xinsong,
Are using 32-bit processes? They may be running out of virtual address space due to the large number of threads created, each of which requires a certain amount of virtual address space for its stack.
I would suggest you investigate the options for configuring omniORB?s use of threads; see:
http://omniorb.sourceforge.net/omni41/omniORB/omniORB008.html#toc40
Regards,
Luke.
From: xinsong xia [mailto:xsxia001 at sohu.com]
Sent: Thursday, 1 November 2012 5:05 PM
To: omniorb-list
Subject: [omniORB] Why not create a thread --- LastStatusValue: (NTSTATUS) 0xc0000017

Dear Sir/Madam:
Excuse me, need your help urgently.
I'm testing an application which is a Corba server based on OmniORB 4.1.6 running on Windows 7. It is developed by VS 20008. During this stress test, some Corba client applications will do some operations randomly, such as connect to Corba server, send requests to Corba server, disconnect from Corba server. After running about two weeks, then Corba server application will fail to create thread by calling function _beginthreadex. The last error is as follows:
LastErrorValue: (Win32) 0x8 (8) - Not enough storage is available to process this command.
LastStatusValue: (NTSTATUS) 0xc0000017 - {Not Enough Quota} Not enough virtual memory or paging file quota is available to complete the specified operation.
For my knowledge, when Corba client send a request to server application, the server application will create a thread to service the request. After completion, the thread will be recycled.
After the failure, I could create more than 100 threads in other application by calling the function ?_beginthreadex?.
Furthermore, for the server application, running as "Administrator", the memory used is 36M, the thread count is 633, the handle count is 1535. For the whole system, the CPU, resource is normal as ever.
To my strange, after the first failure, when I restart the Corba server application again, the failure could be reproduced quite soon, maybe need 3-8 hours.
The question has almost driven me crazy, could you give me some advice?
Thanks
xinsong

**********************************************************************************************
Important Note
This email (including any attachments) contains information which is confidential and may be subject to legal privilege. If you are not the intended recipient you must not use, distribute or copy this email. If you have received this email in error please notify the
sender immediately and delete this email. Any views expressed in this email are not necessarily the views of IRESS Limited.

It is the duty of the recipient to virus scan and otherwise test the information provided before loading onto any computer system.
IRESS Limited does not warrant that the information is free of a virus or any other defect or error.
**********************************************************************************************
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20121106/68eba2b9/attachment.html>
Loading...