*Synopsis*: ksh93 busybox alias must not look for builtin in path

Due to a change requested by <User 1-7MTUEB>,
<User 1-7MTUEB> is now the responsible engineer for:

CR 6899868 changed on Nov 20 2009 by <User 1-7MTUEB>

=== Field ============ === New Value ============= === Old Value =============

Commit to Fix in Build snv_129                                                
Evaluation             New Note                                               
Hook 5                 <email address omitted>                                
Introduced in Build    snv_128                                                
Introduced in Release  solaris_nevada                                         
Keyword                oss-request                                            
Keyword                oss-sponsor                                            
Responsible Engineer   <User 1-7MTUEB>                                        
Root Cause             Insufficient Testing                                   
Status                 7-Fix in Progress           1-Dispatched               
Targeted Release       solaris_nevada                                         
Type                   Defect                      RFE                        
====================== =========================== ===========================

     
*Change Request ID*: 6899868

*Synopsis*: ksh93 busybox alias must not look for builtin in path

  Product: solaris
  Category: shell
  Subcategory: korn93
  Type: Defect
  Subtype: 
  Status: 7-Fix in Progress
  Substatus: 
  Priority: 3-Medium
  Introduced In Release: solaris_nevada
  Introduced In Build: snv_128
  Responsible Engineer: <User 1-7MTUEB>
  Keywords: opensolaris, oss-request, oss-sponsor

=== *Description* ============================================================
Category
   solaris/shell (Solaris Utilities/Commands)
Sub-Category
   korn93
Description
   ksh93 busybox alias has a fast and a slow code path.
The slow path uses an embedded script to execute the command.
If the command is a plain built in command it will load it with the builtin 
command.
But:
ksh93 will look for the command builtin in path first before it uses the built 
in builtin command.
$  truss /usr/bin/rev <(echo foo) 2>&1 >/dev/null| tail -40                     
                               
close(10)                                       = 0
stat("/opt/onbld/bin", 0xFFFFFFFF7FFFBE20)      = 0
open("/opt/onbld/bin/.paths", O_RDONLY)         Err#2 ENOENT
stat("/opt/onbld/bin/builtin", 0xFFFFFFFF7FFFBED0) Err#2 ENOENT
stat("/opt/SUNWspro/bin", 0xFFFFFFFF7FFFBE20)   = 0
open("/opt/SUNWspro/bin/.paths", O_RDONLY)      Err#2 ENOENT
stat("/opt/SUNWspro/bin/builtin", 0xFFFFFFFF7FFFBED0) Err#2 ENOENT
stat("/usr/ccs/bin", 0xFFFFFFFF7FFFBE20)        = 0
open("/usr/ccs/bin/.paths", O_RDONLY)           Err#2 ENOENT
stat("/usr/ccs/bin/builtin", 0xFFFFFFFF7FFFBED0) Err#2 ENOENT
stat("/usr/dt/bin", 0xFFFFFFFF7FFFBE20)         = 0
open("/usr/dt/bin/.paths", O_RDONLY)            Err#2 ENOENT
stat("/usr/dt/bin/builtin", 0xFFFFFFFF7FFFBED0) Err#2 ENOENT
stat("/usr/openwin/bin", 0xFFFFFFFF7FFFBE20)    = 0
open("/usr/openwin/bin/.paths", O_RDONLY)       Err#2 ENOENT
stat("/usr/openwin/bin/builtin", 0xFFFFFFFF7FFFBED0) Err#2 ENOENT
stat("/usr/sfw/bin", 0xFFFFFFFF7FFFBE20)        = 0
open("/usr/sfw/bin/.paths", O_RDONLY)           Err#2 ENOENT
stat("/usr/sfw/bin/builtin", 0xFFFFFFFF7FFFBED0) Err#2 ENOENT
stat("/usr/local/bin", 0xFFFFFFFF7FFFBE20)      Err#2 ENOENT
stat("/usr/sbin", 0xFFFFFFFF7FFFBE20)           = 0
open("/usr/sbin/.paths", O_RDONLY)              Err#2 ENOENT
stat("/usr/sbin/builtin", 0xFFFFFFFF7FFFBED0)   Err#2 ENOENT
stat("/usr/bin", 0xFFFFFFFF7FFFBE20)            = 0
open("/usr/bin/.paths", O_RDONLY)               Err#2 ENOENT
stat("/usr/bin/builtin", 0xFFFFFFFF7FFFBED0)    Err#2 ENOENT
open("/dev/fd/4", O_RDONLY)                     = 3
fstat(3, 0xFFFFFFFF7FFFABD0)                    = 0
ioctl(3, TCGETS, 0xFFFFFFFF7FFFAA0C)            Err#22 EINVAL
lseek(3, 0, SEEK_CUR)                           Err#29 ESPIPE
fstat(3, 0xFFFFFFFF7FFFAAE8)                    = 0
fstat(3, 0xFFFFFFFF7FFFAAF0)                    = 0
fstat(3, 0xFFFFFFFF7FFFAA30)                    = 0
read(3, " f o o\n", 8192)                       = 4
read(3, 0x10012A150, 8192)                      = 0
fcntl(3, F_GETFL)                               = 2
close(3)                                        = 0
fstat(1, 0xFFFFFFFF7FFFF750)                    = 0
fstat(2, 0xFFFFFFFF7FFFF750)                    = 0
_exit(0)
This is bad for performance and bad if an entry in path is a nfs mount which 
hangs.
Frequency
   Always
Regression
   No
Steps to Reproduce
   -
Expected Result
   -
Actual Result
   -
Error Message(s)
   -
Test Case
   -
Workaround
   -
Additional configuration information
   -

*** (#1 of 1): 2009-11-10 19:06:15 GMT+00:00 <User 1-F4SZV>


=== *Public Comments* ========================================================

=== *Workaround* =============================================================

=== *Additional Details* =====================================================
        Targeted Release: solaris_nevada
        Commit To Fix In Build: snv_129
        Fixed In Build: 
        Integrated In Build: 
        Verified In Build: 
  See Also: 6793763
  Duplicate of: 
  Hooks:
        Hook1: 
        Hook2: 
        Hook3: 
        Hook4: 
        Hook5: <email address omitted>
        Hook6: <email address omitted>
  Program Management: 
  Root Cause: Insufficient Testing
  Fix Affects Documentation: No
  Fix Affects Localization: No

=== *History* ================================================================
        Date Submitted: 2009-11-10 19:06:15 GMT+00:00
        Submitted By: <User 1-F4SZV>

        Status Changed    Date Updated                  Updated By
        7-Fix in Progress 2009-11-20 22:00:10 GMT+00:00 <User 1-7MTUEB>


=== *Service Request* ========================================================
        Impact: Limited
        Functionality: Nonessential
        Severity: 5
        Product Name: solaris
        Product Release: solaris_nevada
        Product Build: snv_01
        Operating System: solaris_nevada
        Hardware: generic
        Submitted Date: 2009-11-10 19:06:16 GMT+00:00


=== *Multiple Release (MR) Cluster* - 0 ======================================

Reply via email to