A NOTE has been added to this issue. 
====================================================================== 
https://www.austingroupbugs.net/view.php?id=1861 
====================================================================== 
Reported By:                stephane
Assigned To:                
====================================================================== 
Project:                    1003.1(2024)/Issue8
Issue ID:                   1861
Category:                   Shell and Utilities
Type:                       Error
Severity:                   Objection
Priority:                   normal
Status:                     Interpretation Required
Name:                       Stephane Chazelas 
Organization:                
User Reference:              
Section:                    xargs utility 
Page Number:                3601 
Line Number:                123207-123214 
Interp Status:              Proposed 
Final Accepted Text:       
https://www.austingroupbugs.net/view.php?id=1861#c6918 
====================================================================== 
Date Submitted:             2024-10-11 12:32 UTC
Last Modified:              2024-10-20 07:24 UTC
====================================================================== 
Summary:                    xargs -L broken by
https://www.austingroupbugs.net/view.php?id=243 resolution
======================================================================
Relationships       ID      Summary
----------------------------------------------------------------------
related to          0000243 Add -print0 to "find"
====================================================================== 

---------------------------------------------------------------------- 
 (0006929) stephane (reporter) - 2024-10-20 07:24
 https://www.austingroupbugs.net/view.php?id=1861#c6929 
---------------------------------------------------------------------- 
Sorry, I had intended that 23 bytes to be big enough for one line but not
for two, but that was too simplistic and I should have tested it before
posting.

What the execve() limit is the limit of varies from system to system (and
even version thereof), but even with the POSIX definition where it's on the
size in bytes of all args (and args only, not the environment variables)
including a NUL delimiter, those 23 bytes were not big enough for even echo
+ 00001 00002 00003 which is 5+2+6+6+6 = 25.

Testing with ast-open's xargs on GNU/Linux, I see its -s size seems to be
taking the environment into account and also possibly the size of the
argv[] and envp[] arrays of pointers. Without -L:

$ print -raC3 {00001..00012}  # (zsh)
00001  00002  00003
00004  00005  00006
00007  00008  00009
00010  00011  00012

$ print -aC3 {00001..00012} | ast-open/xargs -s5040 echo +
+ 00001 00002 00003 00004
+ 00005 00006 00007 00008
+ 00009 00010 00011 00012

(it also seems to run a builtin echo, not the system's echo utility).

But its -L seems to work like -n there. Without a -s "$size":

$ print -raC3 {00001..00012} | ast-open/xargs -L2
00001 00002
00003 00004
00005 00006
00007 00008
00009 00010
00011 00012

$ ast-open/xargs --version
  version         xargs (AT&T Research) 2012-04-11

Given it's the same output as with your Solaris test, it could be that it
correctly breaks the list into "echo + 00001 00002" so as to fit into those
23 bytes and ignore line boundaries or that it is broken in a similar way
as ast-open's one, so the test is not fully conclusive unforunately.

In any case, while Geoff has a point that even with -L, it would be nice to
let the user decide whether -x applies or not, the behaviour without is
potentially surprising and I can't think of a use case where it would be
desirable. So it does also make sense to me for -x to be the default.

In any case, it seems to me it would be too late to forbid the
GNU/FreeBSD/NetBSD behaviour in the POSIX specification now. 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2024-10-11 12:32 stephane       New Issue                                    
2024-10-11 12:32 stephane       Name                      => Stephane Chazelas
2024-10-11 12:32 stephane       Section                   => xargs utility   
2024-10-11 12:32 stephane       Page Number               => 3601            
2024-10-11 12:32 stephane       Line Number               => 123207-123214   
2024-10-11 16:28 stephane       Note Added: 0006913                          
2024-10-12 05:57 stephane       Note Added: 0006914                          
2024-10-14 16:13 geoffclare     Note Added: 0006916                          
2024-10-15 05:09 stephane       Note Added: 0006917                          
2024-10-15 05:23 stephane       Note Edited: 0006917                         
2024-10-17 09:08 geoffclare     Note Added: 0006918                          
2024-10-17 09:12 geoffclare     Relationship added       related to 0000243  
2024-10-17 15:12 geoffclare     Note Edited: 0006918                         
2024-10-17 15:12 geoffclare     Interp Status             => Pending         
2024-10-17 15:12 geoffclare     Final Accepted Text       =>
https://www.austingroupbugs.net/view.php?id=1861#c6918    
2024-10-17 15:12 geoffclare     Status                   New => Interpretation
Required
2024-10-17 15:12 geoffclare     Resolution               Open => Accepted As
Marked
2024-10-17 15:13 geoffclare     Tag Attached: tc1-2024                       
2024-10-17 16:25 agadmin        Interp Status            Pending => Proposed 
2024-10-17 16:25 agadmin        Note Added: 0006921                          
2024-10-18 06:34 stephane       Note Added: 0006922                          
2024-10-18 07:02 stephane       Note Added: 0006923                          
2024-10-18 07:08 stephane       Note Added: 0006924                          
2024-10-18 07:10 stephane       Note Edited: 0006924                         
2024-10-18 08:39 geoffclare     Note Added: 0006925                          
2024-10-18 18:59 stephane       Note Edited: 0006922                         
2024-10-19 20:56 stephane       Note Added: 0006927                          
2024-10-19 21:10 gbrandenrobinsonNote Added: 0006928                          
2024-10-20 07:24 stephane       Note Added: 0006929                          
======================================================================


  • [1003.1(2024... Austin Group Bug Tracker via austin-group-l at The Open Group
  • [1003.1(2024... Austin Group Bug Tracker via austin-group-l at The Open Group
  • [1003.1(2024... Austin Group Bug Tracker via austin-group-l at The Open Group
  • [1003.1(2024... Austin Group Bug Tracker via austin-group-l at The Open Group
  • [1003.1(2024... Austin Group Bug Tracker via austin-group-l at The Open Group
  • [1003.1(2024... Austin Group Bug Tracker via austin-group-l at The Open Group
  • [1003.1(2024... Austin Group Bug Tracker via austin-group-l at The Open Group
  • [1003.1(2024... Austin Group Bug Tracker via austin-group-l at The Open Group
  • [1003.1(2024... Austin Group Bug Tracker via austin-group-l at The Open Group
  • [1003.1(2024... Austin Group Bug Tracker via austin-group-l at The Open Group
  • [1003.1(2024... Austin Group Bug Tracker via austin-group-l at The Open Group
  • [1003.1(2024... Austin Group Bug Tracker via austin-group-l at The Open Group
  • [1003.1(2024... Austin Group Bug Tracker via austin-group-l at The Open Group
  • [1003.1(2024... Austin Group Bug Tracker via austin-group-l at The Open Group
  • [1003.1(2024... Austin Group Bug Tracker via austin-group-l at The Open Group
  • [1003.1(2024... Austin Group Bug Tracker via austin-group-l at The Open Group
  • [1003.1(2024... Austin Group Bug Tracker via austin-group-l at The Open Group
  • [1003.1(2024... Austin Group Bug Tracker via austin-group-l at The Open Group
  • [1003.1(2024... Austin Group Bug Tracker via austin-group-l at The Open Group
  • [1003.1(2024... Austin Group Bug Tracker via austin-group-l at The Open Group
  • [1003.1(2024... Austin Group Bug Tracker via austin-group-l at The Open Group

Reply via email to