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: Tons of cygserver errors


>> I canât push this through your list spam filter.  Another attempt...

I was trying a few times, and finally deleted the strace attachment.  Let's see if this will go through.
Excuse me for being a bit straightforward, but the spam filter this list is using is *really* stupid!

> Still, you're missing the cygcheck log,

Cygcheck log was attached to an earlier message from today (thread: exe.stackdump is always empty).

> and a simple testcase would be helpful

Here you go:

$ cat sem.c
#include <signal.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <sys/shm.h>
#include <sys/wait.h>

int main(void)
{
    int ids = semget(0xdeadbeef, 1, IPC_CREAT | 0777);
    int idm = shmget(0xdeadbeef, 4096*100, IPC_CREAT | 0777);
    char* addr = shmat(idm, 0, 0);
    int i;
    struct sembuf sb;
    sigset_t blocked;
    struct sigaction sa;

    sigfillset(&blocked);
    sigdelset(&blocked, SIGCHLD);
    memset(&sa, 0, sizeof(sa));
    sa.sa_flags = SA_NOCLDSTOP;
    sa.sa_handler = SIG_DFL;
    sigaction(SIGCHLD, &sa, 0);
    sigprocmask(SIG_BLOCK, &blocked, 0);

    for (i = 0;  i < 10; i++)  {
      pid_t pid = fork();
      if (!pid) {
          execl("/usr/bin/true", "true", NULL);
      } else {
          int status;
          printf("%d\n", i);
          sb.sem_num = 0;
          sb.sem_op  = 0;
          sb.sem_flg = 0;
          semop(ids, &sb, 1);
          waitpid(pid, &status, 0);
          sleep(1);
          *addr = (char) i;
      }
    }
    return 0;
}

$ gcc -Wall sem.c

$ ./a.exe
0
1
2
3
4
5
6
7
8
9

Windows event log immediately recorded 10 new events, like so:

Error	4/4/2014 10:02:34 PM	cygserver	0	None
Error	4/4/2014 10:02:33 PM	cygserver	0	None
Error	4/4/2014 10:02:32 PM	cygserver	0	None
Error	4/4/2014 10:02:31 PM	cygserver	0	None
Error	4/4/2014 10:02:30 PM	cygserver	0	None
Error	4/4/2014 10:02:29 PM	cygserver	0	None
Error	4/4/2014 10:02:28 PM	cygserver	0	None
Error	4/4/2014 10:02:27 PM	cygserver	0	None
Error	4/4/2014 10:02:26 PM	cygserver	0	None
Error	4/4/2014 10:02:25 PM	cygserver	0	None

(each having exactly the same message: cygserver: PID 1944: cygserver: error getting signal_arrived to server (6))

Strace is also attached.

Please let me know if you need anything else.

Anton Lavrentiev
Contractor NIH/NLM/NCBI


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