| 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 |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| 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 | Content-Type | Size |
|---|---|---|
| socket.diff | text/plain | 1.2 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Hiroshi Inoue | 2010-05-19 03:36:34 | Re: FD_SETSIZE with large #s of files/ports in use |
| Previous Message | Barry Nicholson | 2010-05-18 19:39:09 | FD_SETSIZE with large #s of files/ports in use |