Skip site navigation (1) Skip section navigation (2)

Re: FD_SETSIZE with large #s of files/ports in use

From: Hiroshi Inoue <inoue(at)tpf(dot)co(dot)jp>
To: Barry Nicholson <b(dot)nicholson(at)niceng(dot)com>
Cc: pgsql-odbc(at)postgresql(dot)org
Subject: Re: FD_SETSIZE with large #s of files/ports in use
Date: 2010-05-19 00:02:22
Message-ID: 4BF32A8E.3030900@tpf.co.jp (view raw or flat)
Thread:
Lists: pgsql-odbc
Hi,

Could you please try the attached patch?

regards,
Hiroshi Inoue

Barry Nicholson wrote:
> An interesting issue came up the other day.  We are working with an 
> application that opens a considerable number of files and tcp/udp ports 
> (>3000).   Unfortunately, that means that the odbc driver fails 
> sometimes due to a corrupted stack.  We eventually figured out what was 
> causing the corrupted stack. 
> 
> The SOCK_wait_for_ready(SocketClass *sock, BOOL output, int retry_count) 
> function inside socket.c calls select.  Unfortunately, the socket file 
> descriptor number can be quite large at this time.  That means that the 
> fd_set fds variable can misused.   The fd_set variable type only allows 
> 1024 file descriptors to be used by the calling program on many Linux 
> versions.   This can be changed by setting FD_SETSIZE or __FD_SETSIZE to 
> a larger number.   We have ran tests where we were able to change the 
> __FD_SETSIZE value in 
> /usr/src/...linuxversion../linux/include/linux/posix_types.h.   The fix 
> worked well.
> 
> Unfortunately, this isn't a good solution because a software update to 
> another linux version will invalidate our fix.   We've tried various 
> mechanisms to set FD_SETSIZE or __FD_SETSIZE in socket.c but with no 
> luck.   Has anyone else had this problem and came up with a good fix?   
> Or is there a better solution?
> 
> Barry Nicholson
> Niceng.com

Attachment: socket.diff
Description: text/plain (1.2 KB)

In response to

Responses

pgsql-odbc by date

Next:From: Hiroshi InoueDate: 2010-05-19 03:36:34
Subject: Re: FD_SETSIZE with large #s of files/ports in use
Previous:From: Barry NicholsonDate: 2010-05-18 19:39:09
Subject: FD_SETSIZE with large #s of files/ports in use

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group