- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - OpenVMS
- >
- select() returns -1, errno:16 EBUSY, socket error:...
Categories
Company
Local Language
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Discussions
Discussions
Discussions
Forums
Forums
Discussions
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Community
Resources
Forums
Blogs
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО05-06-2009 09:37 AM
тАО05-06-2009 09:37 AM
select() returns -1, errno:16 EBUSY, socket error: 10102
errno:16 EBUSY
socket error: 10102
I checked the socket using fstat and it says that it is a valid socket so there must be some other problem. Anyone have any ideas of what I could look for?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО05-06-2009 10:16 AM
тАО05-06-2009 10:16 AM
Re: select() returns -1, errno:16 EBUSY, socket error: 10102
have you got any details on the operating system and tcpip stack involved here ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО05-06-2009 10:44 AM
тАО05-06-2009 10:44 AM
Re: select() returns -1, errno:16 EBUSY, socket error: 10102
And for weirdnesses around the value of 31, also watch out for signed versus unsigned handling.
What that "socket error" here might be isn't certain; you'll want to look at the code and see what value (and what radix) that is returning.
If that's not it, please post more details and/or some code and/or a reproducer. And as requested, platform and version details, too.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО05-06-2009 11:21 AM
тАО05-06-2009 11:21 AM
Re: select() returns -1, errno:16 EBUSY, socket error: 10102
Maxjobs: 0 Fillm: 300 Bytlm: 1000000
Maxacctjobs: 0 Shrfillm: 0 Pbytlm: 0
Maxdetach: 0 BIOlm: 10000 JTquota: 4096
Prclm: 75 DIOlm: 10000 WSdef: 100000
Prio: 4 ASTlm: 400 WSquo: 100000
Queprio: 0 TQElm: 400 WSextent: 100000
CPU: (none) Enqlm: 4000 Pgflquo: 1000000
Are the I/O channels the BIOlm and DIOlm? What are sufficient values?
How do I check to see what my CHANNELCNT is set to and how can I increase it?
My FD_SETSIZE is currently set to 1024 and my nfds setting is always set to one more than the socket number that is trying to be opened. For example, if I am doing a select on socket 34 my nfds is set to 35.
I don't have a program I can provide to reproduce or code sample other that the following select statement:
amt = (*AGS_selectFunc)( amt + 1, &readfds, &writefds, NULL, ptimeout );
Thanks for responding so quickly.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО05-06-2009 11:42 AM
тАО05-06-2009 11:42 AM
Re: select() returns -1, errno:16 EBUSY, socket error: 10102
--
The:
amt = (*AGS_selectFunc)( amt + 1, &readfds, &writefds, NULL, ptimeout );
is not nearly enough source code for a reasonable discussion.
It's not even certain that single source line actually invokes a select call. Well, not unless we assume where that "AGS_selectFunc" ends up at run-time... And what readfds and writefds point to, for that matter. Nor the value stored in amt at run-time.
Have you run this under the debugger, and taken a look at the code at run-time? (And I'd probably take a close look at that "AGS_selectFunc" pointer, too; at where that ends up.
CHANNELCNT is a system parameter, and visible via the SYSMAN utility PARAMS command. As with the above discussion, these quotas and the CHANNELCNT value are potential limits. Comparatively unlikely to be the trigger, too, as compared with bugs in the code. Examine the code first; that's the most likely trigger here. And only then look to see if you're at a limit beyond what's stored in amc, and in the bit arrays.