On Mon, Jul 29, 2013 at 10:47:40PM +0000, Harald van Dijk wrote: > On 29/07/13 23:44, Luigi Tarenga wrote: > > hi list, > > while writing a script to execute parallel ssh command on many host I found > > a strange behavior of dash. I can replicate it with a very simple script but > > didn't find any documentation about dash or POSIX that can explain it. > > > > tested on centos 6.4 (dash 0.5.5.1) and wih dash compiled from source (0.5.7) > > the following script reports error: > > > > #!/bin/dash > > > > sleep 3 & > > sleep 3 & > > sleep 3 & > > sleep 3 & > > > > #/bin/true > > jobs -l > > > > wait %1 > > wait %2 > > wait %3 > > wait %4 > > > > [vortex@lizard ~]$ ./dash-0.5.7/src/dash test.sh > > [4] + 4569 Running > > [3] - 4568 Running > > [2] 4567 Running > > [1] 4566 Running > > prova: 14: wait: No such job: %4 > > [vortex@lizard ~]$ echo $? > > 2 > > Yes, this looks like a bug to me. The number of allocated jobs is always > kept as a multiple of four, and the first check in considering whether > the job number is valid is "if it's greater than or equal to the number > of allocated job, it's invalid". That doesn't look right. That would > only be right if jobs were zero-based, but they aren't. If it's exactly > equal to the number of available jobs, it can still be valid. It works > when adding /bin/true, because four more more jobs end up allocated > internally. > > The attached patch should fix it. > > Cheers, > Harald > commit ddeba5485c3309ffc7010f8924d604a781908e1d > Author: Harald van Dijk <harald@xxxxxxxxxxx> > Date: Tue Jul 30 00:36:53 2013 +0200 > > getjob: Fix off-by-one error for multiple of four job numbers Patch applied. Thanks! -- Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt -- To unsubscribe from this list: send the line "unsubscribe dash" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html