Re: multi-threaded pgbench

Поиск
Список
Период
Сортировка
От Josh Williams
Тема Re: multi-threaded pgbench
Дата
Msg-id 1248903114.6348.195.camel@lapdragon
обсуждение исходный текст
Ответ на Re: multi-threaded pgbench  (Josh Williams <joshwilliams@ij.net>)
Ответы Re: multi-threaded pgbench  (Greg Smith <gsmith@gregsmith.com>)
Re: multi-threaded pgbench  (Magnus Hagander <magnus@hagander.net>)
Список 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


Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Robert Haas
Дата:
Сообщение: Re: Proposal: More portable way to support 64bit platforms
Следующее
От: Andres Freund
Дата:
Сообщение: Re: improvements for dict_xsyn extended synonym dictionary - RRR