Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 9 Jan 2012 00:09:37 GMT
From:      Devin Teske <dteske@vicor.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   amd64/163938: [PATCH] Fix SVN r228985 regression
Message-ID:  <201201090009.q0909bf7056286@red.freebsd.org>
Resent-Message-ID: <201201090010.q090ABOE003021@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         163938
>Category:       amd64
>Synopsis:       [PATCH] Fix SVN r228985 regression
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-amd64
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jan 09 00:10:11 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Devin Teske
>Release:        9.0-RELEASE
>Organization:
FIS Global, Inc.
>Environment:
FreeBSD scribe.vicor.com 9.0-RELEASE FreeSBD 9.0-RELEASE #0: Tue Jan 3 07:46:30 UTC 2012
root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64
>Description:
If booting from the interactive loader(8) prompt when beastie_disable="YES" is set in loader.conf(5), it causes a spurious warning on the console when booting the kernel. This spurious warning has caused some to be concerned, though they need not be. The warning is only shown when executing "boot" from the _interactive_ loader(8) prompt and does not cause any problems (boot continues to succeed).

The attached patch gets rid of this warning for those that (a) set beastie_disable="YES" in loader.conf(5) and (b) commonly drop to the interactive loader(8) prompt to execute "boot" or "boot -s" (for example).
>How-To-Repeat:
First, make sure that SVN rev 228985 (the revision that introduced this spurious warning) is applied to the system. Add beastie_disable="YES" to loader.conf(5). Reboot your system and as your system is booting (after the kernel has been loaded [but not-yet executed]), escape the autoboot 10-second delay by pressing the SPACE bar. Then, at the "ok" prompt, type "boot".

Before the kernel is executed, the warning "menu-unset not found" appears. However, your system will continue to boot.
>Fix:
The attached patch modifies sys/boot/forth/loader.4th to check the beastie_disable variable before attempting to evaluate the "menu-unset" function.

Getting rid of the warning (which is merely a by-product of a failed catch-throw statement only when executing interactively with the loader) will go far to eliminate people's concerns as well as simply clean up the boot to prevent spurious warnings.

Patch attached with submission follows:

--- sys/boot/forth/loader.4th.orig	Thu Dec 29 22:24:59 2011
+++ sys/boot/forth/loader.4th	Sun Jan  8 15:05:46 2012
@@ -44,6 +44,14 @@
 only forth also support-functions also builtins definitions
 
 : try-menu-unset
+  s" beastie_disable" getenv
+  dup -1 <> if
+    s" YES" compare-insensitive 0= if
+      exit
+    then
+  else
+    drop
+  then
   s" menu-unset"
   ['] evaluate catch if
     2drop


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201201090009.q0909bf7056286>