Ir al contenido
 Español      
HP.com España principal Productos y Servicios Soporte y Drivers Soluciones Cómo Comprar
» Contactar con HP
        Más opciones        
HP.com España principal
patch database

patch details: PHKL_23407

» 

Centro de Recursos de Tecnología Informática

» Inicio de sesión
» Registro
» Mi perfil
» Búsqueda en la base de conocimientos
» Foros
» Base de datos de parches
» Descargar controladores, software y firmware
» Comprobación de la garantía
» Administrador de casos de soporte
» Administrador de actualizaciones de software
» Capacitación y educación
» Más opciones de mantenimiento y soporte
» Ayuda en línea
» Mapa del sitio
Aquí empieza el contenido
» view selected patch list
The recommended patch is :  PHKL_23842
The most recent patch is :  PHKL_35828

   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 » 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_23407

Patch Description: s700_800 11.00 signal,threads,spinlock,scheduler,IDS,q3p

Creation Date: 01/02/16

Post Date: 01/04/12

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

Products: N/A

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

Automatic Reboot?: Yes

Status: General Superseded

Critical: 
	Yes
	PHKL_23407: OTHER
		Hung, Unkillable process
	PHKL_20625: PANIC

Category Tags: 
	defect_repair hardware_enablement enhancement
	general_release critical panic

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

Symptoms: 
	PHKL_23407:
	(SR: 8606103740  CR: JAGab70789)
	(SR: 8606159451  CR: JAGad28779)
	A multi-threaded process being executed over NFS can become
	hung and unkillable while performing either a fork, core,
	setrlimit, SIGSTOP, or debugger operations.

	PHKL_23001:
	( SR: 8606161075 CR: JAGad30393 )
	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_22568:
	( SR: 8606163813 CR: JAGad33117 )
	A multithreaded private third quadrant process will core
	dump.

	PHKL_22145:
	( SR: 8606141357 CR: JAGad10718 )
	Multi-threaded processes may not respond to SIGKILL,
	SIGSTOP, or SIGCONT making the process "unkillable".

	PHKL_21830:
	( SR: 8606127468 CR: JAGac77753 )
	User can incorrectly create a thread and bind it to a
	deallocated processor.

	Note that this defect can only be seen when processors
	have been deallocated explicitly through administrator
	intervention.

	PHKL_21348:
	( SR: 8606124297 CR: JAGac39680 )
	When an application specifies signal(SIGCHLD,SIG_IGN)
	and forks a child, it still gets interrupted when
	the child exits. This premature interruption also occurs
	in SIGCONT/SIG_IGN.

	( SR: 8606132611 CR: JAGad01760)
	The Praesidium IDS/9000 product requires this patch in order
	to run.  This change has no impact on systems without the
	Praesidium IDS/9000 product installed and enabled.

	PHKL_20942:
	( SR: 8606112164 DTS: JAGab84450 )
	Enhancement:  Performance changes for corner case in RTSCHED
	scheduling.  This patch has no impact on most systems.

	PHKL_20625:
	( SR: 8606110344 CR: JAGab83048 )
	UP system panics with Data Page Fault:

	panic+0x14
	report_trap_or_int_and_panic+0x4c
	trap+0xea8
	$RDB_trap_patch+0x38
	ksw_remove_from_proc+0x5c
	sigsuspend+0x1c0
	syscall+0x1c8
	$syscallrtn+0x0

	PHKL_19930:
	( SR: 8606103530 DTS: JAGab70391 )
	Delivery of signals to processes with many (1000's) threads
	is very slow and significantly reduces system throughput.

	PHKL_19531:
	( SR: 1653296996 DTS: JAGaa94126 )
	Immediate return from delays with time interval requests in
	excess of 2^31-1 seconds.  The limit is now 2^32-1 for
	32-bit systems, and 2^64-1 64-bit systems.

Defect Description: 
	PHKL_23407:
	(SR: 8606103740  CR: JAGab70789)
	(SR: 8606159451  CR: JAGad28779)
	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
	uninterruptably until the lock is available.  This
	uninterruptable 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 optionations, 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.

	This patch is part of a set of four patches (PHKL_23406,
	PHKL_23407,PHKL_23408,PHKL_23409) that enable P_NOSTOP, a
	new feature that prevents a process from being unkillable.
	Each patch is independantly installable.  Without all four
	installed, the P_NOSTOP feature will be unavailable.

	In order to prevent the process executed over NFS from
	becoming unkillable, NFS must use the P_NOSTOP feature.  An
	NFS patch using P_NOSTOP, PHNE_23249, will be released in
	Spring of 2001.

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

	PHKL_23001:
	( SR: 8606161075 CR: JAGad30393 )
	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, while holding no locks.
	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. This results in two
	possible error cases: that the action will be SIG_DFL, but
	psig() won't know how to perform the default action for
	that signal, or that a user specified action will be used
	when the action should have been reset to SIG_DFL.

	Resolution:
	When the system V signal(2) interface or the standard
	interface with the SA_RESETHAND flag set are used, the
	signal action was checked a second time in psig() after the
	scheduler lock is obtained. After this check is made, if
	the action is SIG_DFL, then we know the race condition
	has occured and psig() will then perform the default action
	for that signal. psig() was also modified so that it would
	be able to handle SIGIO in addition to the six signals that
	have a default action of ignore.

	PHKL_22568:
	( SR: 8606163813 CR: JAGad33117 )
	If a private third quadrant process creates another thread,
	the kernel does not initialize sr6 (the space register that
	controls the third quadrant address space) to the proper
	value for that thread. Any access by that thread to an
	address in the third quadrant will lead to a segmentation
	violation.

	Resolution:
	The kernel procedure which initializes registers for new
	threads has been modified to set sr6 properly (i.e. the
	same value that is in sr5, which is the users private
	address space).

	PHKL_22145:
	( SR: 8606141357 CR: JAGad10781 )
	The process does not respond to the signals SIGKILL,
	SIGSTOP, and SIGCONT as these will be directed
	to the first thread of the process without checking
	to see if that thread is a zombie thread.  This selection
	is made in the find_first_eligible_thread function. If
	it's a zombie it does nothing to handle the signal.
	Note that this does not affect other signals as the
	threads they are passed to are selected in a different
	manner.

	Resolution:
	Change find_first_eligible_thread so that it passes
	the signals noted above to the first non-zombie
	thread rather than automatically choosing the first
	thread.

	PHKL_21830:
	( SR: 8606127468 CR: JAGac77753 )
	Procedure thread_create() does not check if the processor is
	currently deallocated.

	Resolution:
	Change thread_create() to fail and set errno to EINVAL if a
	thread is set to bound to a deallocated processor.

	PHKL_21348:
	( SR: 8606124297 CR: JAGac39680 )
	Parent issues a signal(SIGCHLD,SIG_IGN) to prevent
	exiting children from creating zombie processes.
	Before 11.00, when the child exits, the parent is
	woken up by the signal. If SIGCHLD/SIG_IGN is set,
	it reaps the zombies, discards the child, ignores
	the signal and goes back to sleep. In 11.00, thread
	house cleaning is added in the sigsuspend() and
	sigpause() paths such that the parent is not put
	back to sleep after waking up, resulting in the
	premature interruption of the parent.

	Resolution:
	In 11.00, since the reaping of zombies is done by the
	child during exit, there is no need for the parent to be
	woken up when a child exits. Therefore SIGCHLD/SIG_IGN
	can be handled as SIGCHLD/SIG_DFL by not posting the
	signal when a child exits.

	Similar fix applies to SIGCONT/SIG_IGN.

	( SR: 8606132611 CR: JAGad01760 )
	This patch is one of 16 patches (PHKL_21348-PHKL_21363)
	required by the Praesidium IDS/9000 product.  These patches
	enable the collection and tracking of information from
	various system calls.  Unless all of the enabling patches
	(or their successors) and the product are installed, and the
	product is enabled, this change has no impact on the system.

	Resolution:
	This patch provides the interface required by IDS/9000 for
	thread and process creation and teardown.

	PHKL_20942:
	( SR: 8606112164 DTS: JAGab84450 )
	This is an enhancement for a corner case in RTSCHED
	scheduling.

	Resolution:
	Code added to fine tune RTSCHED thread scheduling code path.

	PHKL_20625:
	( SR: 8606110344 CR: JAGab83048 )
	Before calling ksw_remove_from_proc(), only MP locking
	of the sched lock takes place and no UP locking is done.
	During the execution of ksw_remove_from_proc(), if the
	system services an I/O or timer interrupt on the interrupt
	control stack without the lock protection, the ksigwait
	structure is removed before the completion of
	ksw_remove_from_proc(). Data page fault happens when
	this structure is accessed.

	Resolution:
	Use spinlock() instead of MP_SPINLOCK() to protect the
	sched lock for both UP and MP.

	PHKL_19930:
	( SR: 8606103530 DTS: JAGab70391 )
	Signal delivery searched a single per-process linked list
	for a candidate thread to deliver the signal to.  If the
	process is using AIO, it may have many threads that are
	not candidates.  These extra threads can significantly
	slow the search.

	Resolution:
	Create a second per-process list populated only by threads
	that can possibly handle signals.

	PHKL_19531:
	( SR: 1653296996 DTS: JAGaa94126 )
	Specifying "sleep 99999999" will terminate immediately.
	Any request in excess of 2^31-1 seconds will fail and
	return immediately.

	Resolution:
	The sigtimedwait algorthim has been corrected to accomodate
	delays of 2^32-1 for 32-bit systems, and 2^64-1 64-bit
	systems by itteratively handling the requested time using
	one or more pre-defined delays plus a residual.

SR: 
	1653296996 8606103530 8606103740 8606110344 8606112164
	8606124297 8606127468 8606132611 8606141357 8606161075
	8606163813

Patch Files: 
	
	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP:
	/usr/conf/lib/libhp-ux.a(kern_fork.o)
	/usr/conf/lib/libhp-ux.a(kern_sig.o)
	/usr/conf/lib/libhp-ux.a(pm_proc.o)
	/usr/conf/lib/libhp-ux.a(pm_signal.o)
	/usr/conf/lib/libhp-ux.a(pm_threads.o)
	/usr/conf/lib/libhp-ux.a(subr_threads.o)

	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP:
	/usr/conf/lib/libhp-ux.a(kern_fork.o)
	/usr/conf/lib/libhp-ux.a(kern_sig.o)
	/usr/conf/lib/libhp-ux.a(pm_proc.o)
	/usr/conf/lib/libhp-ux.a(pm_signal.o)
	/usr/conf/lib/libhp-ux.a(pm_threads.o)
	/usr/conf/lib/libhp-ux.a(subr_threads.o)

what(1) Output: 
	
	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP:
	/usr/conf/lib/libhp-ux.a(kern_fork.o):
		kern_fork.c $Date: 2001/02/15 14:53:16 $Revision: r1
			1ros/13 PATCH_11.00 (PHKL_23407)
	/usr/conf/lib/libhp-ux.a(kern_sig.o):
		kern_sig.c $Date: 1999/12/07 14:02:53 $Revision: r11
			ros/10 PATCH_11.00 (PHKL_20625)
	/usr/conf/lib/libhp-ux.a(pm_proc.o):
		pm_proc.c $Date: 2001/02/15 14:53:16 $Revision: r11r
			os/13 PATCH_11.00 (PHKL_23407)
	/usr/conf/lib/libhp-ux.a(pm_signal.o):
		pm_signal.c $Date: 2001/02/15 14:53:16 $Revision: r1
			1ros/14 PATCH_11.00 (PHKL_23407)
	/usr/conf/lib/libhp-ux.a(pm_threads.o):
		pm_threads.c $Date: 2001/02/15 14:53:16 $Revision: r
			11ros/17 PATCH_11.00 (PHKL_23407)
	/usr/conf/lib/libhp-ux.a(subr_threads.o):
		subr_threads.c $Date: 2001/02/15 14:53:16 $Revision:
			 r11ros/15 PATCH_11.00 (PHKL_23407)

	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP:
	/usr/conf/lib/libhp-ux.a(kern_fork.o):
		kern_fork.c $Date: 2001/02/15 14:53:16 $Revision: r1
			1ros/13 PATCH_11.00 (PHKL_23407)
	/usr/conf/lib/libhp-ux.a(kern_sig.o):
		kern_sig.c $Date: 1999/12/07 14:02:53 $Revision: r11
			ros/10 PATCH_11.00 (PHKL_20625)
	/usr/conf/lib/libhp-ux.a(pm_proc.o):
		pm_proc.c $Date: 2001/02/15 14:53:16 $Revision: r11r
			os/13 PATCH_11.00 (PHKL_23407)
	/usr/conf/lib/libhp-ux.a(pm_signal.o):
		pm_signal.c $Date: 2001/02/15 14:53:16 $Revision: r1
			1ros/14 PATCH_11.00 (PHKL_23407)
	/usr/conf/lib/libhp-ux.a(pm_threads.o):
		pm_threads.c $Date: 2001/02/15 14:53:16 $Revision: r
			11ros/17 PATCH_11.00 (PHKL_23407)
	/usr/conf/lib/libhp-ux.a(subr_threads.o):
		subr_threads.c $Date: 2001/02/15 14:53:16 $Revision:
			 r11ros/15 PATCH_11.00 (PHKL_23407)

cksum(1) Output: 
	
	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP:
	623508831 19940 /usr/conf/lib/libhp-ux.a(kern_fork.o)
	3872570050 18612 /usr/conf/lib/libhp-ux.a(kern_sig.o)
	2701488965 25172 /usr/conf/lib/libhp-ux.a(pm_proc.o)
	1055460696 29140 /usr/conf/lib/libhp-ux.a(pm_signal.o)
	3056116138 26180 /usr/conf/lib/libhp-ux.a(pm_threads.o)
	3730951601 28284 /usr/conf/lib/libhp-ux.a(subr_threads.o)

	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP:
	2859440542 44072 /usr/conf/lib/libhp-ux.a(kern_fork.o)
	753452482 50152 /usr/conf/lib/libhp-ux.a(kern_sig.o)
	4083235545 64040 /usr/conf/lib/libhp-ux.a(pm_proc.o)
	2612489172 66448 /usr/conf/lib/libhp-ux.a(pm_signal.o)
	533766970 60560 /usr/conf/lib/libhp-ux.a(pm_threads.o)
	389544248 67184 /usr/conf/lib/libhp-ux.a(subr_threads.o)

Patch Conflicts: None

Patch Dependencies: 
	s700: 11.00: PHKL_18543
	s800: 11.00: PHKL_18543

Hardware Dependencies: None

Other Dependencies: 
	PHKL_23407:
	If NFS is installed on the system, all five patches
	(PHNE_23249, PHKL_23406, PHKL_23407, PHKL_23408, PHKL_23409)
	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_23001 PHKL_22568 PHKL_22145 PHKL_21830 PHKL_21348 PHKL_20942
	PHKL_20625 PHKL_19930 PHKL_19531

Equivalent Patches: None

Patch Package Size: 550 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_23407

	5. Run swinstall to install the patch:

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

	By default swinstall will archive the original software in 
	/var/adm/sw/save/PHKL_23407.  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_23407.text file is 
	available in the product readme:

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

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

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

Special Installation Instructions: 
	This patch depends on base patch PHKL_18543.
	For successful installation please insure that PHKL_18543
	is already installed, or that PHKL_18543 is included
	in the same depot with this patch and PHKL_18543
	is selected for installation.

	PHKL_23407:
	If NFS is installed on the system, all five patches
	(PHNE_23249, PHKL_23406, PHKL_23407, PHKL_23408, PHKL_23409)
	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.  All five of
	these patches may be installed independently.  If fewer than
	four out of the four PHKL patches are installed, the
	P_NOSTOP feature will not be enabled.




» top of page
Versión para imprimir
Declaración de privacidad El uso de este sitio implica la aceptación de sus términos de uso
© 2009 Hewlett-Packard Development Company, L.P.