Commit 62150681 authored by unknown's avatar unknown
Browse files

Escaping [] so that darwin[7-8] gets into 'configure' and not darwin7-8

Adding a compilation define so that on recent Darwin mysqld does not react to SIGHUP and SIGQUIT:
this fixes a rpl000001 problem on our Powermac G5 machine (popping after an upgrade from 10.3.4 to
10.3.5) and is expected to fix 
BUG#2030 "relay bin log on slave resets multiple times a second"
(i.e. under some Mac OS X Panther versions, mysqld receives many SIGHUP and SIGQUIT).
So this fix is more a problem-hider than a real understanding of why mysqld receives so many signals.
Note that we saw other problems on this OS where mysqld reacts to Ctrl-Z but apparently only once,
where using SSL seems to make the problem more frequent...


configure.in:
  Escaping [] so that darwin[7-8] gets into 'configure' and not darwin7-8
  Adding a compilation define so that on recent Darwin mysqld does not react to SIGHUP and SIGQUIT.
sql/mysqld.cc:
  optionally ignore SIGHUP and SIGQUIT, for some Mac OS X Panther versions which send too many of those.
parent 4dfe16c2
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -1047,10 +1047,11 @@ case $SYSTEM_TYPE in
      MAX_C_OPTIMIZE="-O"
    fi
    ;;
  *darwin[7-8]*)
  *darwin[[7-8]]*)
    # don't forget to escape [] like above
    if test "$ac_cv_prog_gcc" = "yes"
    then
      FLAGS="-DHAVE_DARWIN_THREADS -D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ"
      FLAGS="-DHAVE_DARWIN_THREADS -D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ -DIGNORE_SIGHUP_SIGQUIT"
      CFLAGS="$CFLAGS $FLAGS"
      CXXFLAGS="$CXXFLAGS $FLAGS"
      MAX_C_OPTIMIZE="-O"
+6 −2
Original line number Diff line number Diff line
@@ -1836,9 +1836,11 @@ static void init_signals(void)
  sigaddset(&set,SIGPIPE);
#endif
  sigaddset(&set,SIGINT);
#ifndef IGNORE_SIGHUP_SIGQUIT
  sigaddset(&set,SIGQUIT);
  sigaddset(&set,SIGTERM);
  sigaddset(&set,SIGHUP);
#endif
  sigaddset(&set,SIGTERM);

  /* Fix signals if blocked by parents (can happen on Mac OS X) */
  sigemptyset(&sa.sa_mask);
@@ -1921,11 +1923,13 @@ extern "C" void *signal_hand(void *arg __attribute__((unused)))
#ifdef USE_ONE_SIGNAL_HAND
  (void) sigaddset(&set,THR_SERVER_ALARM);	// For alarms
#endif
#ifndef IGNORE_SIGHUP_SIGQUIT
  (void) sigaddset(&set,SIGQUIT);
  (void) sigaddset(&set,SIGTERM);
#if THR_CLIENT_ALARM != SIGHUP
  (void) sigaddset(&set,SIGHUP);
#endif
#endif
  (void) sigaddset(&set,SIGTERM);
  (void) sigaddset(&set,SIGTSTP);

  /* Save pid to this process (or thread on Linux) */