Jump to content
 English      
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
        More options        
HP.com Home
patch database

patch details: PHNE_25084

» 

IT Resource Center

» Login
» Register
» My profile
» Search knowledge base
» Forums
» Patch database
» Download drivers, software and firmware
» Warranty check
» Support Case Manager
» Software Update Manager
» Training and Education
» More maintenance and support options
» Online help
» Site map
Content starts here
» view selected patch list
The recommended patch is :  PHNE_27703
The most recent patch is :  PHNE_36576

   useful links
» Patch Family Tree

You may provide feedback on this document.
» patch name » patch description » creation date » post date » repost » hardware platforms - os releases » products » filesets » automatic reboot? » status » critical » category tags » path name » symptoms » defect description » sr » patch files » what(1) output » cksum(1) output » patch conflicts » patch dependencies » hardware dependencies » other dependencies » supersedes » equivalent patches » patch package size » installation instructions » special installation instructions


Patch Name: PHNE_25084

Patch Description: s700_800 11.11 Cumulative STREAMS Patch

Creation Date: 01/10/30

Post Date: 01/11/01

Repost: 01/11/21
	The patch documentation was modified to clarify some of
	the changes implemented in the patch and to add information
	to the Other Dependencies field.  The clarifications were
	made in the Symptoms and Defect Description fields for
	PHNE_25084 item #6 and PHNE_24274 item #5.

Hardware Platforms - OS Releases: 
	s700: 11.11
	s800: 11.11

Products: N/A

Filesets: 
	Streams.STREAMS2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP
	Streams.STREAMS2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP

Automatic Reboot?: Yes

Status: General Superseded

Critical: 
	Yes
	PHNE_25084: PANIC HANG MEMORY_LEAK
	PHNE_24274: PANIC
	PHNE_23715: HANG

Category Tags: 
	defect_repair enhancement general_release critical panic
	halts_system memory_leak manual_dependencies

Path Name: /hp-ux_patches/s700_800/11.X/PHNE_25084

Symptoms: 
	PHNE_25084:
	1.  In a multi-threaded socket application when a thread
	    closes a socket on which another thread is doing
	    accept(), the closing thread hangs. JAGad88349
	2.  Multiple processes sleeping forever in _csq_acquire().
	    This problem has only occurred on systems with AS/U
	    installed. JAGad87837
	3.  A process running in the background gets terminated
	    intermittently when it reads from dtterm. JAGad25743
	4.  A process running in the background gets terminated
	    when it writes to dtterm. This requires "tostop"
	    terminal setting ON. JAGad57981
	5.  System panic caused by memory corruption when two
	    instances of freeb() free the same block of kernel
	    allocated memory. JAGad50215
	6.  Enhancement to enable dequeueing of poll_s structures
	    for future improvements to the select(2) system call.
	    JAGad15265
	7.  Missing first telnet prompt while telnet'ing to the BSD
	    4.3 Server. JAGad39478
	8.  Potential memory leak in hpstreams_option1(). This did
	    not cause any external symptoms. JAGad45190
	9.  Threads hung sleeping in ioctl_sleep. JAGad86805
	    _swtch+0xc4
	    _sleep+0x4cc
	    ioctl_sleep+0x30c
	    ioctl_bufcall+0x80
	    str_async_ioctl+0x670
	    hpstreams_ioctl_int+0xf8
	    streams_ioctl+0x34

	PHNE_24972:
	1.  Add support for the new Event Port driver. JAGad65762

	PHNE_24274:
	1.  System panics due to race condition in the unweld path.
	    JAGad40848
	2.  Some of the NFS threads loop indefinitely on
	    streams_poll() even when data is available at the
	    stream head. JAGad15958
	3.  Pass third argument to fo_select due to a FS patch
	    JAGad27893
	4.  Open command returns ENOLCK error when opening DLKM
	    driver. JAGad44291
	5.  On a multi-processor system, a thread may hang
	    indefinitely in the poll(2) system call when polling for
	    input and data is available to be read.  This is more
	    likely to happen when the system is heavily loaded, or
	    when multiple threads simultaneously call poll(2) with
	    the same file descriptor.  JAGad68721

	PHNE_23715:
	1.  remsh(1) hangs in shutdown(2) when the stream is
	    flow-controlled. JAGad36101
	2.  poll() times out immediately when timeout arg is
	    set to INT_MAX. JAGad56971
	3.  This patch is a member of a set of patches needed to
	    enable the HP-UX Virtual Partitions product. When the
	    HP-UX Virtual Partitions product (VPARSBASE or T1335AA)
	    is installed, it will install the full set of required
	    patches for that product, including this patch.

	    If the HP-UX Virtual Partitions product is not
	    installed, this change will have no impact on your
	    system. JAGad70977

Defect Description: 
	PHNE_25084:
	1.  The close function goes into an interruptible sleep if
	    the socket file descriptor is also in use by another
	    thread.
	    JAGad88349
	Resolution:
	    This patch contains changes required to
	    support the fix for this problem.
	    When an application calls close() for an AF_INET socket
	    file descriptor, any threads blocked in an interruptible
	    sleep in a syscall for the same file descriptor will
	    be awakened, and the syscall will return EBADF.

	2.  The spinlocks associated with weld_sqh and mult_sqh
	    were acquired in a wrong order in some routines
	    resulting in a deadlock. JAGad87837
	Resolution:
	    Modified the order in which the weld_sqh and mult_sqh
	    are acquired in osr_pop_subr() and str_plumb_ioctl()
	    to fix the deadlock.
	3.  When the background job tries to read from the
	    dtterm, STREAMS sends SIGTTIN and does a sleep().
	    When it comes out of the sleep, not due to an
	    interrupt, the read function exits out intermittently
	    without retry or further processing. JAGad25743
	Resolution:
	    Continue processing the read on a SIGCONT.
	4.  When the background job tries to write to the dtterm,
	    STREAMS sends SIGTTOU and does a sleep(). When it comes
	    out of the sleep, not due to an interrupt, the write
	    function exits out without retry or further
	    processing. JAGad57981
	Resolution:
	    Continue processing the write on a SIGCONT.
	5.  When duplicated messages that are pulled up (coalesced)
	    into a single block by using msgpullup() are freed,
	    there is a timing window where two instances of freeb()
	    can free the same message twice. This will result in
	    memory corruption which will cause a panic later when
	    the memory is used again. JAGad50215
	Resolution:
	    Added a spinlock in the function that frees pulled up
	    messages so only one instance of freeb() can operate on
	    a pulled up message at a time. This prevents a second
	    instance of freeb() from operating on the same message
	    at the same time.
	6.  There is no way currently to dequeue a poll_s structure
	    from the wake-up list when a thread exits select(2).
	    JAGad15265
	Resolution:
	    A new kernel function is being provided to enable future
	    improvements to select(2).
	7.  Missing first telnet prompt. JAGad39478
	Resolution:
	    In the inbound path for sockets a wakeup was missed
	    when normal data follows OOB data. The fix was to
	    catch the missed wakeup in the inbound path.
	8.  hpstreams_option1() does not release the allocated
	    memory upon an error exit from
	    ioctl_sleep_until_first(). This causes memory leak in
	    hpstreams_option1(). This happens in a very rare case
	    and has not been reported by any customer. JAGad45190
	Resolution:
	    The memory leak is fixed by freeing the structures
	    osr_s (arena M_STROSR) and
	    tiocoption1 (arena M_STREAMS).
	9.  Threads hung sleeping in ioctl_sleep. JAGad86805
	Resolution:
	    The fix to wakeup the sleeping thread is to issue the
	    wakeup on the appropriate sleep channel.

	PHNE_24972:
	1.  This patch contains enhancements required to
	    support the HP-UX Event Port driver. JAGad65762
	Resolution:
	    Modified STREAMS to support the polling of STREAMS
	    based fd's using Event Port driver.

	PHNE_24274:
	1.  When both the ends of the welded queue are closed
	    simultaneously, a race in the welded close path
	    leads to the following panic. JAGad40848
	     $call_trap+0x38
	     spinlock+0x10
	     _csq_acquire+0xe4
	     osr_pop_subr+0x35c
	     osr_close_subr+0xc0c
	     hpstreams_close_int+0x30c
	Resolution:
	    Modified unweld-mechanism to eliminate the race
	    condition in that path.
	2.  Some of the NFS threads loop indefinitely on
	    streams_poll() even when data is available at the
	    stream head. JAGad15958
	Resolution:
	    The race in the wakeup path when data arrives at the
	    stream head and the poll_s struct being enqueued at
	    the same stream head which caused the hang has been
	    eliminated.
	3.  Pass third argument to fo_select due to a FS patch.
	    JAGad27893
	Resolution:
	    A third argument is now passed to the fo_select
	    function pointer calls in STREAMS to be consistent
	    with the changes made in the File System code.
	4.  DLKM returns ENOLCK on autoload failures.
	    JAGad44291
	Resolution:
	    All DLKM load failures are masked and instead an
	    ENODEV is returned on opening a DLKM driver.
	5.  On a multi-processor system, a thread may hang
	    indefinitely in poll(2) when polling for input and data
	    is available to be read.  The wakeup() call for a
	    thread may be ineffective for either of the following
	    reasons:
	    1) The thread migrates from one processor to another
	       before going to sleep in poll(2).  This could cause
	       the wake-up path to use the wrong sleep lock.
	    2) Multiple threads simultaneously call poll(2) with
	       the same file descriptor, and the threads go to
	       sleep at the same time.  The sleep collision could
	       be undetected within a certain time window.
	    JAGad68721
	Resolution:
	    The thread remembers the processor that it started on,
	    and it uses that processor id to get the sleep lock.
	    This resolves the problem with thread migration.  A
	    change in sleep() makes it atomic when setting the
	    thread's wake-up channel and putting the thread to
	    sleep.  This resolves the sleep collision race.  The
	    patches PHKL_25233 and PHKL_25389 are needed in order
	    for this fix to be effective.

	PHNE_23715:
	1.  remsh(1) hangs in shutdown(2) when the stream is
	    flow-controlled. JAGad36101
	Resolution:
	    Provide a version of streams_putmsg() which
	    unconditionally does the putnext().
	2.  poll() times out immediately when timeout arg is set to
	    INT_MAX. JAGad56971
	Resolution:
	    Cast the timeout value to avoid making it negative.
	3.  This patch contains minor enhancements required to
	    support the HP-UX Virtual Partitions product. JAGad70977
	Resolution:
	    Enhancements added to support CPU migration.

SR: 
	8606166814 8606187762 8606201803 8606171584 8606146615
	8606158563 8606175047 8606199534 8606196559 8606219201
	8606218689 8606156405 8606188765 8606180995 8606145929
	8606170214 8606175950 8606217653

Patch Files: 
	
	Streams.STREAMS2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP:
	/usr/conf/lib/libstream.a

	Streams.STREAMS2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP:
	/usr/conf/lib/libstream.a

what(1) Output: 
	
	Streams.STREAMS2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP:
	/usr/conf/lib/libstream.a:
		$Revision: libstream.a:    STREAMS: PATCH_11.11 (PHN
			E_25084) Mon Oct 22 13:54:01 PDT 2001 $

	Streams.STREAMS2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP:
	/usr/conf/lib/libstream.a:
		$Revision: libstream.a:    STREAMS: PATCH_11.11 (PHN
			E_25084) Mon Oct 22 14:01:13 PDT 2001 $

cksum(1) Output: 
	
	Streams.STREAMS2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP:
	2269829484 1164774 /usr/conf/lib/libstream.a

	Streams.STREAMS2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP:
	984331123 556930 /usr/conf/lib/libstream.a

Patch Conflicts: None

Patch Dependencies: None

Hardware Dependencies: None

Other Dependencies: 
	We recommend installing patches PHKL_25233 and PHKL_25389,
	or superseding patches, in order for the resolution to
	problem #5, fixed in PHNE_24274, to be effective.

Supersedes: 
	PHNE_23715 PHNE_24274 PHNE_24972

Equivalent Patches: None

Patch Package Size: 1720 KBytes

Installation Instructions: 
	Please review all instructions and the Hewlett-Packard
	SupportLine User Guide or your Hewlett-Packard support terms
	and conditions for precautions, scope of license,
	restrictions, and, limitation of liability and warranties,
	before installing this patch.
	------------------------------------------------------------
	1. Back up your system before installing a patch.

	2. Login as root.

	3. Copy the patch to the /tmp directory.

	4. Move to the /tmp directory and unshar the patch:

		cd /tmp
		sh PHNE_25084

	5. Run swinstall to install the patch:

		swinstall -x autoreboot=true -x patch_match_target=true \
			  -s /tmp/PHNE_25084.depot

	By default swinstall will archive the original software in 
	/var/adm/sw/save/PHNE_25084.  If you do not wish to retain a
	copy of the original software, use the patch_save_files option:

		swinstall -x autoreboot=true -x patch_match_target=true \
			  -x patch_save_files=false -s /tmp/PHNE_25084.depot

	WARNING: If patch_save_files is false when a patch is installed,
		 the patch cannot be deinstalled.  Please be careful
		 when using this feature.

	For future reference, the contents of the PHNE_25084.text file is 
	available in the product readme:

		swlist -l product -a readme -d @ /tmp/PHNE_25084.depot

	To put this patch on a magnetic tape and install from the
	tape drive, use the command:

		dd if=/tmp/PHNE_25084.depot of=/dev/rmt/0m bs=2k

Special Installation Instructions: None




» top of page
Printable version
Privacy statement Using this site means you accept its terms
© 2009 Hewlett-Packard Development Company, L.P.