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: PHKL_28122

» 

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 :  PHKL_28122
The most recent patch is :  PHKL_28122

   useful links
» Patch Family Tree

You may provide feedback on this document.
» patch name » patch description » creation date » post date » hardware platforms - os releases » products » filesets » automatic reboot? » status » critical » category tags » path name » symptoms » defect description » enhancement » 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: PHKL_28122

Patch Description: s700_800 11.11 signals,threads enhancement,Psets Enablement

Creation Date: 02/12/19

Post Date: 03/02/03

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

Products: N/A

Filesets: 
	OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP
	OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP

Automatic Reboot?: Yes

Status: General Release

Critical: 
	Yes
	PHKL_28122: PANIC HANG
	PHKL_25729: HANG
	PHKL_24256: OTHER
		Hung, Unkillable Process
	PHKL_26241: ABORT

Category Tags: 
	defect_repair enhancement general_release critical panic
	halts_system manual_dependencies

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

Symptoms: 
	PHKL_28122:
	( SR:8606250555 CR:JAGae16930 )
	During HP internal review, an inconsistent synchronization
	of a signals' field was found.  The problem could lead to a
	system panic or hang.  However, the problem was quite rare.
	To date, this problem has not been reported by any customer
	nor HP internal testing facility.

	PHKL_25729:
	( SR:8606213548 CR:JAGad82740 )
	If an application uses thread cancellation for threads
	synchronization, an intermittent hang may occur.  This
	happens when the thread fails to be cancelled, even when
	cancellation is enabled.

	( SR:8606216254 CR:JAGad85424 )
	High comsumption of CPU resources can result in an apparent
	system hang.  This occurs with applications that use a large
	number of threads per process.

	PHKL_24567:
	( SR:8606200799 CR:JAGad69975 )
	This patch is a member of a set of patches needed to enable
	the HP-UX Processor Sets product (PROCSETS). When PROCSETS
	product is installed, it will install the full set of
	required patches for that product, including this patch.

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

	PHKL_24256:
	( SR:8606159451 CR:JAGad28779 ) Duplicate
	( SR:8606103740 CR:JAGab70789 )
	A multi-threaded process being executed over NFS can become
	hung and unkillable while performing either a fork, core,
	setrlimit, SIGSTOP, or debugger operations. This can happen
	with mutiple threads in different processes competing for
	the same resource when one thread is stopped.

	PHKL_23280:
	( SR:8606162688 CR:JAGad32004 )
	A multithreaded process may not always perform the desired
	signal handler action if the system V signal(2) interface
	is used or if the SA_RESETHAND flag is set with the other
	signalling interfaces. This could occur when the process
	must handle more than one instance of the same signal in
	parallel. Similar problems with signal handling could
	occur if the user calls sigaction() while the signal is
	being processed. The most likely results of handling the
	action incorrectly would be for the process to be
	terminated or for a user specified action to be performed
	more than once before the signal action is reset to
	SIG_DFL.

	PHKL_26241:
	( SR:8606233570 CR:JAGae02793 )
	The signal function sigtimedwait() incorrectly returns
	EINVAL when the value of the timespec structure field tv_sec
	is 0 and field tv_nsec lies in the range 990,000,001 to
	999,999,999, inclusive.  This may cause an application to
	abort.

Defect Description: 
	PHKL_28122:
	( SR:8606250555 CR:JAGae16930 )
	A kernel data structure used by signals is updated using
	incorrect synchronization.

	Resolution:
	Change synchronization to provide correct protection.

	PHKL_25729:
	( SR:8606213548 CR:JAGad82740 )
	SIGCANCEL is used by the pthreads library to terminate
	interruptible system calls while inside a sleep.  The
	SIGCANCEL signal can be lost if it is received while the
	thread is handling a trap.  This results in a thread hang.

	Resolution:
	The solution to losing cancellations is to check if the
	process is in the trap path when searching for pending
	signals and a SIGCANCEL is found.  If so, the SIGCANCEL is
	deffered and handled in the sleep path.  This ensures that
	the signal will not be lost and thread cancellation will
	proceed.

	( SR:8606216254 CR:JAGad85424 )
	All non-running threads are searched to see if they can
	handle a process directed signal.  However, if the signal is
	blocked by all the threads of a process, the signal cannot
	be delivered to a thread and must be left pending at the
	process level.
	This causes repeated attempts to deliver the signal since
	it is possible that a thread will eventually accept the
	signal.  The POSIX standards require the signal to be
	delivered.

	Resolution:
	The solution is to reduce the number of times the entire
	list of threads is searched by keeping a hint that a
	previous search has found all threads having that signal
	masked, and not repeating the search.  This avoids
	unnecessary and time consuming searches for a thread to
	handle a signal when a candidate is not available.

	PHKL_24567:
	( SR:8606200799 CR:JAGad69975 )
	This patch contains minor enhancements required to support
	the HP-UX Processor Sets product.

	Resolution:
	Enhancements added to access per processor set run queue
	of posix realtime scheduler when Processor Sets product
	is enabled.

	PHKL_24256:
	( SR:8606159451 CR:JAGad28779 ) Duplicate
	( SR:8606103740 CR:JAGab70789 )
	A thread acquires a lock and then sleeps interruptibly.  The
	interruptible sleep permits the thread to be stopped.  Any
	other thread attempting to acquire this lock will sleep
	uninterruptibly until the lock is available.  This
	uninterruptible thread is also unkillable.  This introduces
	a deadlock potential in multi-threaded processes:  when a
	thread holding the lock, a thread desiring the lock, and a
	third thread doing one of fork, setrlimit, core, SIGSTOP, or
	debugger operations, all occur at the same time in the
	same process, the deadlock is reached.  The only way to
	resolve the deadlock is to reboot the system.  A similar
	situation can occur when threads in different processes
	are competing for the same NFS resource and the thread that
	owns that resource is stopped via a signal, a debugger,
	or a ctrl-Z.
	This patch is part of a set of five patches (PHKL_24253,
	PHKL_24254,PHKL_24255,PHKL_24256,PHKL_24257) that enable
	P_NOSTOP, a new feature that prevents a process from being
	unkillable.  Each patch is independently installable.
	Without all five installed, P_NOSTOP will be unavailable.
	In order to prevent the process executed over NFS from
	becoming unkillable, NFS must use the P_NOSTOP feature.
	Usage of this feature was added to PHNE_23502.

	Resolution:
	If a thread acquires a lock and then sleeps interruptibly,
	it is not permitted to be stopped if P_NOSTOP is set.  This
	prevents this thread from becoming unkillable and prevents
	the deadlock.

	PHKL_23280:
	( SR:8606162688 CR:JAGad32004 )
	The possibility of the wrong signal action being executed
	results from a race condition that occurs between issig()
	and psig(). This race condition is caused by checking the
	signal's action in issig(), using that value to determine
	if the signal needs to be processed by psig(), and then
	releasing the thread and scheduler locks before issig()
	returns.  Upon returning from issig(), psig() is called and
	checks the signal's action again. This leaves a window of
	time that allows for the signal's action to be changed
	between when issig() determines the signal should be
	handled by psig() and when psig() checks what action should
	be performed. The result is that the action could be
	SIG_DFL, but psig() won't know how to perform the default
	action for that signal.

	Resolution:
	psig() was modified so that it would be able to handle SIGIO
	in addition to the six signals that have a default action of
	ignore.

	PHKL_26241:
	( SR:8606233570 CR:JAGae02793 )
	tv_nsec values in the range 990,000,001 to 999,999,999 cause
	an overflow into the tv_sec field when internally rounded up
	to whole scheduler ticks (10,000,000 nsec).  This causes
	code in sigtimedwait() to produce an unexpected negative
	value for tv_sec on a subsequent subtraction and return
	EINVAL.

	Resolution:
	Change conditional code to handle internal tv_sec if less
	than zero.

Enhancement: 
	No (superseded patches contained enhancements)
	PHKL_28122:
		Enhancements were delivered in a patch this one has
		superseded.  Please review the Defect Description
		text for more information.

SR: 
	8606103740 8606159451 8606162688 8606200799 8606213548
	8606216254 8606233570 8606250555

Patch Files: 
	
	OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP:
	/usr/conf/lib/libpm.a(kern_sig.o)
	/usr/conf/lib/libpm.a(pm_signal.o)

	OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP:
	/usr/conf/lib/libpm.a(kern_sig.o)
	/usr/conf/lib/libpm.a(pm_signal.o)

what(1) Output: 
	
	OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP:
	/usr/conf/lib/libpm.a(kern_sig.o):
		kern_sig.c $Date: 2002/10/24 15:35:13 $Revision: r11
			.11/2 PATCH_11.11 (PHKL_28122)
	/usr/conf/lib/libpm.a(pm_signal.o):
		pm_signal.c $Date: 2002/10/24 15:36:06 $Revision: r1
			1.11/5 PATCH_11.11 (PHKL_28122)

	OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP:
	/usr/conf/lib/libpm.a(kern_sig.o):
		kern_sig.c $Date: 2002/10/24 15:35:13 $Revision: r11
			.11/2 PATCH_11.11 (PHKL_28122)
	/usr/conf/lib/libpm.a(pm_signal.o):
		pm_signal.c $Date: 2002/10/24 15:36:06 $Revision: r1
			1.11/5 PATCH_11.11 (PHKL_28122)

cksum(1) Output: 
	
	OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP:
	2532070081 17712 /usr/conf/lib/libpm.a(kern_sig.o)
	3451393676 28008 /usr/conf/lib/libpm.a(pm_signal.o)

	OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP:
	2018516825 48072 /usr/conf/lib/libpm.a(kern_sig.o)
	920977624 61832 /usr/conf/lib/libpm.a(pm_signal.o)

Patch Conflicts: None

Patch Dependencies: 
	s700: 11.11: PHKL_25728
	s800: 11.11: PHKL_25728

Hardware Dependencies: None

Other Dependencies: 
	PHKL_24256:  If NFS is installed on the system, all five
	patches (PHNE_23502, PHKL_24253, PHKL_24254,PHKL_24255,
	PHKL_24256, PHKL_24257) are required to resolve the process
	hang/deadlock due to unkillable processes executed over NFS.
	However, if NFS is not in use, none of these patches are
	required.

Supersedes: 
	PHKL_26241 PHKL_25729 PHKL_24567 PHKL_24256 PHKL_23280

Equivalent Patches: None

Patch Package Size: 190 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 PHKL_28122

	5. Run swinstall to install the patch:

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

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

		-x patch_save_files=false

	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 PHKL_28122.text file is 
	available in the product readme:

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

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

		dd if=/tmp/PHKL_28122.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.