On Thu, Dec 21, 2000 at 09:22:40PM +0200, Sinisa Milivojevic wrote:
> Lutz Jaenicke writes:
>  > On Thu, Dec 21, 2000 at 07:30:23PM +0200, Sinisa Milivojevic wrote:
>  > 
>  > 1. It doesn't help (no surprise, as this would have meant that HP's compiler
>  >    and gcc having the same problem which is not very likely :-).
>  > 2. I have to revise my statement above:
>  >    when receiving TERM, mysql reacts:
>  >    001221 19:15:12  /usr/local/mysql1/libexec/mysqld: Normal shutdown
>  >    Just, the daemon does not die until recieving KILL...
> 
> The above is definitely a problem with HP-UX signals. Try to set a
> breakpoint in our signal handler and see what happens.

Hi!

I have just found a bit of time to to trace through the code of mysqld.
My analysis finally ended in the function "close_connections()".
Here the following loop applies:

  while (select_thread_in_use)
  {
  ...
    for (uint tmp=0 ; tmp < 10 ; tmp++)
    {
      error=pthread_cond_timedwait(&COND_thread_count,&LOCK_thread_count,
                                   &abstime);
      if (error != EINTR)
        break;
    }
  ...
  }

This usage of pthread_cond_timedwait does not match the manual page
on HP-UX 10.20. On Linux it says: ... 
       The pthread_cond_timedwait function returns the  following
       error codes on error:

              ETIMEDOUT
                     the  condition  variable  was  not  signaled
                     until the timeout specified by abstime

              EINTR  pthread_cond_timedwait was interrupted by  a
                     signal

On HP-UX 10.20 the manual page however states, that the "errno" variable
is set and the return value of pthread_cond_timedwait() can only be
0 or -1:
      If the function fails, errno may  be  set  to  one  of  the  following
      values:

           Return | Error     | Description
           _______|___________|_______________________________________
              0   |           | Successful completion.
             -1   | [EINVAL]  | The value specified by cond, mutex, or
                  |           | abstime is invalid.
             -1   | [EAGAIN]  | The time specified by abstime expired.
             -1   | [EDEADLK] | A deadlock condition is detected.

I don't have experience with thread programming (from comp.sys.hp.hpux
it seems that using 10.20 and doing thread programming is more or less
exclusive :-), so I am not sure whether this is the problem or only a
symptom thereoff...

Best regards,
        Lutz
-- 
Lutz Jaenicke                             [EMAIL PROTECTED]
BTU Cottbus               http://www.aet.TU-Cottbus.DE/personen/jaenicke/
Lehrstuhl Allgemeine Elektrotechnik                  Tel. +49 355 69-4129
Universitaetsplatz 3-4, D-03044 Cottbus              Fax. +49 355 69-4153

---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to