From: | Josh Williams <joshwilliams(at)ij(dot)net> |
---|---|
To: | Greg Smith <gsmith(at)gregsmith(dot)com> |
Cc: | Itagaki Takahiro <itagaki(dot)takahiro(at)oss(dot)ntt(dot)co(dot)jp>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: multi-threaded pgbench |
Date: | 2009-07-29 21:31:53 |
Message-ID: | 1248903114.6348.195.camel@lapdragon |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Tue, 2009-07-28 at 23:38 -0400, Josh Williams wrote:
> Huh, running the patched version on a single thread with 128 clients
> just got it to crash. Actually consistently, three times now. Will try
> the same thing on the development box tomorrow morning to get some
> better debugging information.
So yeah, buffer overrun.
In pgbench.c FD_SETSIZE is redefined to get around the Windows default
of 64. But this is done after bringing in winsock2.h (a couple levels
in as a result of first including postgres_fe.h). So any fd_set is
built with an array of 64 descriptors, while pgbench thinks it has 1024
available to work with.
This was introduced a while back; the multi-threaded patch just makes it
visible by giving it an important pointer to write over. Previously it
would just run over into the loop counter (and probably a couple other
things) and thus it'd continue on happily with the [sub]set it has.
In either case this seems to be a simple fix, to move that #define
earlier (see pgbench_win32.patch.)
- Josh Williams
Attachment | Content-Type | Size |
---|---|---|
pgbench_win32.patch | text/x-patch | 626 bytes |
From | Date | Subject | |
---|---|---|---|
Next Message | Andres Freund | 2009-07-29 22:59:49 | Re: improvements for dict_xsyn extended synonym dictionary - RRR |
Previous Message | Robert Haas | 2009-07-29 21:25:28 | Re: Proposal: More portable way to support 64bit platforms |