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 100% CPU (was: References to both cygwin1.dll and msvcrt.dl


--- Patrick Samson wrote:
> Special note for Postgresql users:
> So far I can only reproduce this problem if these
> 3 conditions are met:
> - many connections (20, 25, 27) doing a simple
> SELECT
> - a script running SELECT, CREATE/DROP TABLE/INDEX
> ...
> - a pgAdmin III connected (but without activity)
> (Postgresql version 7.3.6)
> 
> Quite the same with 1.5.11-3, only the loop is
> slower
> so the CPU is not 100% and the log file doesn't
> grow wildly.
> Just an extract of the log here (full file 263K on
> request):
> 
> cygserver:
>
/netrel/src/cygwin-1.5.11-1/winsup/cygserver/sysv_sem.cc,
> line 1049: semop:  semaptr=A056718,
> sem_base=A056440,
> semptr=A0564F4, sem[15]=0 : op=-1, flag=wait
> 
> cygserver:
>
/netrel/src/cygwin-1.5.11-1/winsup/cygserver/sysv_sem.cc,
> line 1053: semop:  can't do it now
> 
> cygserver:
>
/netrel/src/cygwin-1.5.11-1/winsup/cygserver/sysv_sem.cc,
> line 1086: semop:  rollback 0 through -1
> 
> cygserver:
>
/netrel/src/cygwin-1.5.11-1/winsup/cygserver/sysv_sem.cc,
> line 1109: semop:  good night!
> 
> cygserver:
>
/netrel/src/cygwin-1.5.11-1/winsup/cygserver/bsd_mutex.cc,
> line 189: Unlocked    mutex semid
> cygserver:
>
/netrel/src/cygwin-1.5.11-1/winsup/cygserver/bsd_mutex.cc,
> line 232: Try locking mutex semid
> cygserver:
>
/netrel/src/cygwin-1.5.11-1/winsup/cygserver/bsd_mutex.cc,
> line 232: Locked      mutex semid
> cygserver:
>
/netrel/src/cygwin-1.5.11-1/winsup/cygserver/sysv_sem.cc,
> line 1112: semop:  good morning (error=4)!
> 

With the third condition (pgAdmin) everything was
fine the whole night. And there is only 4
"good night!" messages in the middle of the night.
I guess this is because of one of the cron tasks
scheduled around 3AM to do maintenance tasks such
as VACUUM, pg_dumpall and a diff between replicated
DBs. These are also 4 "good morning" with error=0.

Now, when it's wrong, I can see:
  good morning (error=4)!
Error 4 is EINTR on the return of msleep().
Subsequently semop() returns with this EINTR.

Does it mean that the caller doesn't support
correctly this interrupted call to semop()?
Back to source...



		
__________________________________
Do you Yahoo!?
Yahoo! Mail - 50x more storage than other providers!
http://promotions.yahoo.com/new_mail

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


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