summaryrefslogtreecommitdiffstats
path: root/src/lib/rpc/unit-test/config
diff options
context:
space:
mode:
authorTom Yu <tlyu@mit.edu>2004-02-13 03:19:30 +0000
committerTom Yu <tlyu@mit.edu>2004-02-13 03:19:30 +0000
commitb65814e4bc39a01bab8f93e2b995cdc3ebef8e1f (patch)
tree32462be4232cb29d3ce1fb845a1bd96cc8747f8e /src/lib/rpc/unit-test/config
parent3772bd7c1af805fd40d5996681a1eea1c0ac8f0a (diff)
downloadkrb5-b65814e4bc39a01bab8f93e2b995cdc3ebef8e1f.tar.gz
krb5-b65814e4bc39a01bab8f93e2b995cdc3ebef8e1f.tar.xz
krb5-b65814e4bc39a01bab8f93e2b995cdc3ebef8e1f.zip
priocntl workaround for Solaris 9 pty-close bug
Implement gross hack to use priocntl to work around the Solaris 9 pty-close bug. Run expect at a higher class "FX" priority than spawned processes, which run at a lower class "FX" priority. "make check" needs to start from a process which has FX priority >= 30 and FX priority limit >= 30. Thanks to Bill Sommerfeld for the hints. ticket: new git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@16069 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/rpc/unit-test/config')
-rw-r--r--src/lib/rpc/unit-test/config/unix.exp38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/lib/rpc/unit-test/config/unix.exp b/src/lib/rpc/unit-test/config/unix.exp
index 49ae4d165..8b7df9f16 100644
--- a/src/lib/rpc/unit-test/config/unix.exp
+++ b/src/lib/rpc/unit-test/config/unix.exp
@@ -9,6 +9,44 @@ set kdestroy $KDESTROY
set hostname [exec hostname]
+# Hack around Solaris 9 kernel race condition that causes last output
+# from a pty to get dropped.
+if { $PRIOCNTL_HACK } {
+ catch {exec priocntl -s -c FX -m 30 -p 30 -i pid [getpid]}
+ rename spawn oldspawn
+ proc spawn { args } {
+ upvar 1 spawn_id spawn_id
+ set newargs {}
+ set inflags 1
+ set eatnext 0
+ foreach arg $args {
+ if { $arg eq "-ignore" ||
+ $arg eq "-open" ||
+ $arg eq "-leaveopen" } {
+ lappend newargs $arg
+ set eatnext 1
+ continue
+ }
+ if [string match "-*" $arg] {
+ lappend newargs $arg
+ continue
+ }
+ if { $eatnext } {
+ set eatnext 0
+ lappend newargs $arg
+ continue
+ }
+ if { $inflags } {
+ set inflags 0
+ set newargs [concat $newargs {priocntl -e -c FX -p 0}]
+ }
+ lappend newargs $arg
+ }
+ set pid [eval oldspawn $newargs]
+ return $pid
+ }
+}
+
# this will initialize the database and keytab
load_lib "helpers.exp"