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
Re: multi-threaded pgbench |
Список | 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 по дате отправления: