Jump to page titleUNITED STATES
hp.com home products and services support and drivers solutions how to buy
» contact hp


more options
 
hp.com home
End of Jump to page title
HP Services Software Patches
Jump to content


» software & drivers
» ask Compaq
» reference library
» forums & communities
» support tools
» warranty information
» contact support
» parts
» give us feedback

patches by topic
» DOS
» OpenVMS
» Security
» Tru64 Unix
» Ultrix 32
» Windows
» Windows NT

associated links
» what's new
» contract access
» browse patch tree
» search patch tree
» join mailing list

connection tools
» nameserver lookup
» traceroute
» ping


Find Support Information and Customer Communities for Presario.
Content starts here
OpenVMS VMS73_PTHREAD-V0300 Alpha V7.3 PTHREAD ECO Summary
TITLE: OpenVMS VMS73_PTHREAD-V0300 Alpha V7.3 PTHREAD ECO Summary
 
NOTE:  An OpenVMS saveset or PCSI installation file is stored
       on the Internet in a self-expanding compressed file.
 
       For OpenVMS savesets, the name of the compressed saveset
       file will be kit_name.a-dcx_vaxexe for OpenVMS VAX or
       kit_name.a-dcx_axpexe for OpenVMS Alpha. Once the OpenVMS
       saveset is copied to your system, expand the compressed
       saveset by typing RUN kitname.dcx_vaxexe or kitname.dcx_alpexe.
 
       For PCSI files, once the PCSI file is copied to your system,
       rename the PCSI file to kitname.pcsi-dcx_axpexe or
       kitname.pcsi-dcx_vaxexe, then it can be expanded by typing
       RUN kitname.pcsi-dcx_axpexe or kitname.pcsi-dcx_vaxexe.  The
       resultant file will be the PCSI installation file which can be
       used to install the ECO.
 

New Kit Date:       12-AUG-2002
Modification Date:  Not Applicable
Modification Type:  NEW KIT

Copyright (c) Compaq Computer Corporation 2001, 2002.  All rights reserved.

PRODUCT:    OpenVMS Alpha

COMPONENT:  PTHREADs

SOURCE:     Compaq Computer Corporation

ECO INFORMATION:

     ECO Kit Name:  VMS73_PTHREAD-V0300
                    DEC-AXPVMS-VMS73_PTHREAD-V0300--4.PCSI
     ECO Kits Superseded by This ECO Kit:  VMS73_PTHREAD-V0200
     ECO Kit Approximate Size:  7280 Blocks
     Kit Applies To:  OpenVMS Alpha V7.3
     System/Cluster Reboot Necessary:  No
     Rolling Re-boot Supported:  N/A
     Installation Rating:  INSTALL_3
                           3 - To be installed on all systems running
                               the listed versions of OpenVMS which
                               are experiencing the problems described.

     Kit Dependencies:

       The following remedial kit(s), or later, must be installed BEFORE
       installation of this, or any required  kit:

         VMS73_UPDATE-V0100

       In order to receive all the corrections listed in this
       kit, the following remedial kits should also be installed:

         None


ECO KIT SUMMARY:

An ECO kit exists for PTHREADS on OpenVMS Alpha V7.3.  This kit addresses
the following problems:

PROBLEMS ADDRESSED IN VMS73_PTHREAD-V0300 KIT

     o  On multi-processor  systems,  the  EXEC  uses  the  Inner-Mode
        Semaphore   (IMS)   to  serialize  execution  of  many  system
        services.  Upcalls are used to allow the  threads  library  to
        execute  one  thread  while another is blocked waiting for the
        IMS.  The services which the threads library  uses  to  switch
        threads  are  themselves  users  of  the  IMS.   Under certain
        conditions, the result is recursion of IMS-free  upcalls.   If
        the recursion persists long enough, a stack overflow can occur
        in a null thread which terminates the process.  This can  only
        happen  on  a  multiprocessor  system  when use of upcalls and
        multiple kernel threads are enabled.

          Images Affected:[SYSLIB]PTHREAD$DBGSHR.EXE
                          [SYSLIB]PTHREAD$RTL.EXE


     o  The   threads    library    uses    $SETIMR    to    implement
        pthread_cond_timedwait  and  pthread_delay_np operations.  The
        library starts a timer for a given wake-up time,  and  expects
        to be awoken at that timer (or perhaps later, if the system is
        busy).  At one customer site, we observed  that  occasionally,
        the  wake-up  appeared  to arrive too early (at a system clock
        time which was less than the requested wake-up  time).   Under
        certain  conditions these early wake-ups caused the process to
        hang.  The cause of the early wake-ups is thought to be use of
        NTP  which  was configured to allow backward time jumps (which
        is not recommended).  If such a backward jump  occurs  between
        when  the timer's target time is reached, and when the library
        runs and reads the system clock, the effective  result  is  an
        early wake-up.

        The  library  has  been  enhanced  to  defend  against   early
        wake-ups,  by  requesting  a new timer for the original target
        time.

          Images Affected:[SYSLIB]PTHREAD$DBGSHR.EXE
                          [SYSLIB]PTHREAD$RTL.EXE


     o  The public C  language  header  file  PTHREAD_EXCEPTION.H  was
        using  the  symbol NULL, without ensuring that this symbol was
        defined.  If a user program is compiled with this  header,  in
        an  environment which happens to not cause NULL to be defined,
        the following compiler diagnostic will appear:

          %CC-E-UNDECLARED, In this statement, "NULL" is not
          declared.

        The header file has been changed to not use the NULL symbol.

          Images Affected:[SYSLIB]SYS$STARLET_C.TLB


     o  Fix a locking problem which could cause a threads bugcheck  at
        context-switch.   The  threads  library uses internal locks to
        protect shared data.  A thread can context-switch  away  while
        holding  certain  locks.   The  internal  lock  environment is
        generally restored when the thread is  later  context-switched
        back  in.   A  bug caused the incorrect lock environment to be
        restored under certain conditions.  The result is most often a
        threads  bugcheck  "selected  a  non-ready  thread," but other
        types of process crashes could result.

        Following is the introductory part of the bugcheck report:

          %DECthreads bugcheck (version V3.17-019), terminating
           execution.
          %Reason:  selected a non-ready thread 8 (0x000000001E945740) 
                    state running
          %Running on OpenVMS V7.3 on AlphaServer 8400 5/625, 
           2048Mb; 10 CPUs
          % The bugcheck occurred at 29-MAY-2001 22:45:06.03, running 
          % image DSA0:[DB22X.]SERVER.EXE;1 in process 202014EC 
          % (named "MCR Srv"), under username "SYSTEM". AST delivery 
          % is enabled for all modes; no ASTs active. Upcalls are 
          % enabled. Multiple kernel threads are enabled.  The current
          % thread sequence number is 1, at 0x7BC34908

          Images Affected:[SYSLIB]PTHREAD$DBGSHR.EXE
                          [SYSLIB]PTHREAD$RTL.EXE

     o  Fix a problem seen in Java that caused  process  hangs.   This
        requires  an  application AST to arrive while the Java garbage
        collector is running under certain  conditions.   The  threads
        library  uses  the  default  thread  to  service the AST (when
        upcalls  are  enabled,  which  Java  requires).   If   garbage
        collection  is  happening at the same time, the default thread
        can be left in an incorrect state, causing  a  hang.   To  fix
        this, AST delivery is now deferred while the garbage collector
        is running.

          Images Affected:[SYSLIB]PTHREAD$DBGSHR.EXE
                          [SYSLIB]PTHREAD$RTL.EXE


PROBLEMS ADDRESSED IN VMS73_PTHREAD-V0200 KIT:

  o  The  pthread_cond_timedwait()  and  pthread_delay_np()   timed
     operations  could  wait  too long before timing out.  This can
     happen if the  operating  system's  Time  Differential  Factor
     (TDF)  is  changed,  e.g., due to a Daylight Saving Time (DST)
     adjustment.  Documentation for these timed  operations  states
     that  they  may  in  fact  return late.  However, that was not
     meant to cover a, for example, one hour delay due to a  switch
     of DST.

     With this change, system-time alterations due to  general  TDF
     changes  (such  as  a  DST switch) now have no effect on timed
     thread operations.

          Images Affected:  [SYSLIB]PTHREAD$DBGSHR.EXE
                            [SYSLIB]PTHREAD$RTL.EXE


  o  This correction fixes a race  condition  on  a  multiprocessor
     system,  where  thread  scheduling states can become confused.
     This is a rare condition, and only happens  when  upcalls  and
     multiple   kernel   threads   are  in  use.   The  only  known
     manifestation of the  problem so far is an  application  hang.
     One  kernel thread is seen to be in an AST in HIB state, while
     that kernel thread  is  running  a  threads  library  internal
     "null" thread.  Because an AST is active, no more ASTs will be
     delivered.   If  further  application  progress   depends   on
     servicing subsequent ASTs, the application is hung.

          Images Affected:  [SYSLIB]PTHREAD$DBGSHR.EXE
                            [SYSLIB]PTHREAD$RTL.EXE

  o  A process can crash  (probably  in  PTHREAD$RTL,  possibly  in
     user-mode).   This problem requires the use of multiple kernel
     threads (and thus upcalls) on a multiprocessor system, and AST
     delivery.   Upon completion of an application AST, the threads
     library can mistakenly try to run the default  thread  on  two
     CPUs  concurrently.   If  this  occurs,  the  application will
     probably ACCVIO quickly.

          Images Affected: [SYSLIB]PTHREAD$DBGSHR.EXE
                           [SYSLIB]PTHREAD$RTL.EXE


INSTALLATION NOTES:

No reboot is necessary after successful installation of the kit.

INSTALLATION INSTRUCTIONS:

Install this kit with the POLYCENTER Software installation  utility
by logging into the SYSTEM account, and typing the following at the
DCL prompt:

PRODUCT INSTALL VMS73_PTHREAD /SOURCE=[location of Kit]

The kit location may be a tape drive, CD, or a disk directory that
contains the kit.

Additional help on installing PCSI kits can be found by typing
HELP PRODUCT INSTALL at the system prompt

SPECIAL INSTALLATION INSTRUCTIONS:

  o  Scripting of Answers to Installation Questions

     During installation,  this  kit  will  ask  and  require  user
     response  to  several  questions.  If you wish to automate the
     installation of this kit and avoid having to provide responses
     to  these  questions,  you must create a DCL command procedure
     that includes the following definitions and commands:

       -  $ DEFINE/SYS NO_ASK$BACKUP TRUE

       -  Add  the  following  qualifiers  to  the  PRODUCT  INSTALL
          command and add that command to the DCL procedure.

             /PROD=DEC/BASE=AXPVMS/VER=V3.0

       -  De-assign the logicals assigned

     For  example,  a  sample   command   file   to   install   the
     VMS73_PTHREAD-0200 kit would be:

          $
          $ DEFINE/SYS NO_ASK$BACKUP TRUE
          $!
          $ PROD INSTALL VMS73_PTHREAD/PROD=DEC/BASE=AXPVMS/VER=V1.0
          $!
          $ DEASSIGN/SYS NO_ASK$BACKUP
          $!
          $ exit


All trademarks are the property of their respective owners.


 

Copyright (c) Compaq Computer Corporation 2001, 2002.  All rights reserved.

Modification Date:  16-APR-2002
Modification Date:  12-AUG-2002
Modification Type:  This kit has been archived 

PRODUCT:    OpenVMS Alpha

COMPONENT:  PTHREADs

SOURCE:     Compaq Computer Corporation

ECO INFORMATION:

     ECO Kit Name:  VMS73_PTHREAD-V0200
                    DEC-AXPVMS-VMS73_PTHREAD-V0200--4.PCSI
     ECO Kits Superseded by This ECO Kit:  None
     ECO Kit Approximate Size:  1408 Blocks
     Kit Applies To:  OpenVMS Alpha V7.3
     System/Cluster Reboot Necessary:  No
     Rolling Re-boot Supported:  N/A
     Installation Rating:  INSTALL_3
                           3 - To be installed on all systems running
                               the listed versions of OpenVMS which
                               are experiencing the problems described.

     Kit Dependencies:

       The following remedial kit(s), or later, must be installed BEFORE
       installation of this, or any required  kit:

         VMS73_UPDATE-V0100

       In order to receive all the corrections listed in this
       kit, the following remedial kits should also be installed:

         None


ECO KIT SUMMARY:

An ECO kit exists for PTHREADS on OpenVMS Alpha V7.3.  This kit addresses
the following problems:

PROBLEMS ADDRESSED IN VMS73_PTHREAD-V0200 KIT:

  o  The  pthread_cond_timedwait()  and  pthread_delay_np()   timed
     operations  could  wait  too long before timing out.  This can
     happen if the  operating  system's  Time  Differential  Factor
     (TDF)  is  changed,  e.g., due to a Daylight Saving Time (DST)
     adjustment.  Documentation for these timed  operations  states
     that  they  may  in  fact  return late.  However, that was not
     meant to cover a, for example, one hour delay due to a  switch
     of DST.

     With this change, system-time alterations due to  general  TDF
     changes  (such  as  a  DST switch) now have no effect on timed
     thread operations.

          Images Affected:  [SYSLIB]PTHREAD$DBGSHR.EXE
                            [SYSLIB]PTHREAD$RTL.EXE


  o  This correction fixes a race  condition  on  a  multiprocessor
     system,  where  thread  scheduling states can become confused.
     This is a rare condition, and only happens  when  upcalls  and
     multiple   kernel   threads   are  in  use.   The  only  known
     manifestation of the  problem so far is an  application  hang.
     One  kernel thread is seen to be in an AST in HIB state, while
     that kernel thread  is  running  a  threads  library  internal
     "null" thread.  Because an AST is active, no more ASTs will be
     delivered.   If  further  application  progress   depends   on
     servicing subsequent ASTs, the application is hung.

          Images Affected:  [SYSLIB]PTHREAD$DBGSHR.EXE
                            [SYSLIB]PTHREAD$RTL.EXE

  o  A process can crash  (probably  in  PTHREAD$RTL,  possibly  in
     user-mode).   This problem requires the use of multiple kernel
     threads (and thus upcalls) on a multiprocessor system, and AST
     delivery.   Upon completion of an application AST, the threads
     library can mistakenly try to run the default  thread  on  two
     CPUs  concurrently.   If  this  occurs,  the  application will
     probably ACCVIO quickly.

          Images Affected: [SYSLIB]PTHREAD$DBGSHR.EXE
                           [SYSLIB]PTHREAD$RTL.EXE


INSTALLATION NOTES:

No reboot is necessary after successful installation of the kit.

INSTALLATION INSTRUCTIONS:

Install this kit with the POLYCENTER Software installation  utility
by logging into the SYSTEM account, and typing the following at the
DCL prompt:

PRODUCT INSTALL VMS73_PTHREAD /SOURCE=[location of Kit]

The kit location may be a tape drive, CD, or a disk directory that
contains the kit.

Additional help on installing PCSI kits can be found by typing
HELP PRODUCT INSTALL at the system prompt

SPECIAL INSTALLATION INSTRUCTIONS:

  o  Scripting of Answers to Installation Questions

     During installation,  this  kit  will  ask  and  require  user
     response  to  several  questions.  If you wish to automate the
     installation of this kit and avoid having to provide responses
     to  these  questions,  you must create a DCL command procedure
     that includes the following definitions and commands:

       -  $ DEFINE/SYS NO_ASK$BACKUP TRUE

       -  Add  the  following  qualifiers  to  the  PRODUCT  INSTALL
          command and add that command to the DCL procedure.

             /PROD=DEC/BASE=AXPVMS/VER=V1.0

       -  De-assign the logicals assigned

     For  example,  a  sample   command   file   to   install   the
     VMS73_PTHREAD-0200 kit would be:

          $
          $ DEFINE/SYS NO_ASK$BACKUP TRUE
          $!
          $ PROD INSTALL VMS73_PTHREAD/PROD=DEC/BASE=AXPVMS/VER=V1.0
          $!
          $ DEASSIGN/SYS NO_ASK$BACKUP
          $!
          $ exit


All trademarks are the property of their respective owners.
Files on this server are as follows:
»dec-axpvms-vms73_pthread-v0300--4.README
»dec-axpvms-vms73_pthread-v0300--4.CHKSUM
»dec-axpvms-vms73_pthread-v0300--4.pcsi-dcx_axpexe
»vms73_pthread-v0300.CVRLET_TXT
privacy statement using this site means you accept its terms