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 21/03/2017 03:56, Noah Misch wrote:
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
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:

same on x86_64 2.8.0-0.1

- 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.




Problem reports:
Unsubscribe info:

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