This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: cygserver - Postgres Multiple connection Load Testing - Inifinte Loop

On Tue, Aug 03, 2004 at 12:06:12PM +0200, Corinna Vinschen wrote:
> On Aug  2 20:33, wrote:
> > This time around, cygserver does not eat CPU. But after 5 to 6 
> > concurrent
> > connections nothing seem to work, looks kind of hung. There is no 
> > activity in the Postgres
> > log file. Opening a new database connection also hangs. There is no 
> > activity on the machine.

> Any chance to create a simple testcase which uncovers that behaviour
> without involving a whole database system?

Attached test program reproduces it on Cygwin 2.7.0, Cygwin 1.7.5, and a few
intermediate versions.  The program creates sixteen processes that each
perform a tight loop over the following:

- select one of four semaphores
- reduce semaphore's value from 1 to 0 ("lock" it)
- raise semaphore's value from 0 to 1 ("unlock" it)

On GNU/Linux, AIX, and Solaris, the processes keep busy and finish one million
lock/unlock cycles apiece in a few minutes.  On Cygwin, they hang within a few
seconds and under one hundred cycles apiece.  At that point, cygserver is
unresponsive to other clients; for example, "strace /bin/true", opening a new
Cygwin terminal, "cat /proc/sysvipc/sem" and "cygserver -S" all hang.  In most
tests, cygserver was not consuming CPU while unresponsive.


Attachment: sema_parallel.c
Description: Text document

Problem reports:
Unsubscribe info:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]