mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-11-21 21:47:54 +00:00
parallel: Fixed bug #65807: parallel-20240522: --limit "io N" broken
This commit is contained in:
parent
7092a9ef45
commit
4984f85997
|
@ -4,8 +4,8 @@
|
||||||
|
|
||||||
Quote of the month:
|
Quote of the month:
|
||||||
|
|
||||||
|
gnu parallel is amazing
|
||||||
|
-- Tarun Agarwal @axrawal
|
||||||
|
|
||||||
--line-buffer, a flag
|
--line-buffer, a flag
|
||||||
parallel, now more precise
|
parallel, now more precise
|
||||||
|
|
|
@ -273,7 +273,7 @@ from:tange@gnu.org
|
||||||
to:parallel@gnu.org, bug-parallel@gnu.org
|
to:parallel@gnu.org, bug-parallel@gnu.org
|
||||||
stable-bcc: Jesse Alama <jessealama@fastmail.fm>
|
stable-bcc: Jesse Alama <jessealama@fastmail.fm>
|
||||||
|
|
||||||
Subject: GNU Parallel 20240522 ('Raisi-IRAN preæsentdt/Tbilisi/Georgia/Eurovision') released
|
Subject: GNU Parallel 20240622 ('34 counts/(Raisi-IRAN preæsentdt)/spurlock(supersize)') released
|
||||||
|
|
||||||
GNU Parallel 20240122 ('Frederik X') has been released. It is available for download at: lbry://@GnuParallel:4
|
GNU Parallel 20240122 ('Frederik X') has been released. It is available for download at: lbry://@GnuParallel:4
|
||||||
|
|
||||||
|
|
|
@ -601,7 +601,7 @@ _parset_main() {
|
||||||
fi
|
fi
|
||||||
if [ "$_parset_NAME" = "--version" ] ; then
|
if [ "$_parset_NAME" = "--version" ] ; then
|
||||||
# shellcheck disable=SC2006
|
# shellcheck disable=SC2006
|
||||||
echo "parset 20240522 (GNU parallel `parallel --minversion 1`)"
|
echo "parset 20240523 (GNU parallel `parallel --minversion 1`)"
|
||||||
echo "Copyright (C) 2007-2024 Ole Tange, http://ole.tange.dk and Free Software"
|
echo "Copyright (C) 2007-2024 Ole Tange, http://ole.tange.dk and Free Software"
|
||||||
echo "Foundation, Inc."
|
echo "Foundation, Inc."
|
||||||
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
||||||
|
|
|
@ -605,7 +605,7 @@ _parset_main() {
|
||||||
fi
|
fi
|
||||||
if [ "$_parset_NAME" = "--version" ] ; then
|
if [ "$_parset_NAME" = "--version" ] ; then
|
||||||
# shellcheck disable=SC2006
|
# shellcheck disable=SC2006
|
||||||
echo "parset 20240522 (GNU parallel `parallel --minversion 1`)"
|
echo "parset 20240523 (GNU parallel `parallel --minversion 1`)"
|
||||||
echo "Copyright (C) 2007-2024 Ole Tange, http://ole.tange.dk and Free Software"
|
echo "Copyright (C) 2007-2024 Ole Tange, http://ole.tange.dk and Free Software"
|
||||||
echo "Foundation, Inc."
|
echo "Foundation, Inc."
|
||||||
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
||||||
|
|
|
@ -601,7 +601,7 @@ _parset_main() {
|
||||||
fi
|
fi
|
||||||
if [ "$_parset_NAME" = "--version" ] ; then
|
if [ "$_parset_NAME" = "--version" ] ; then
|
||||||
# shellcheck disable=SC2006
|
# shellcheck disable=SC2006
|
||||||
echo "parset 20240522 (GNU parallel `parallel --minversion 1`)"
|
echo "parset 20240523 (GNU parallel `parallel --minversion 1`)"
|
||||||
echo "Copyright (C) 2007-2024 Ole Tange, http://ole.tange.dk and Free Software"
|
echo "Copyright (C) 2007-2024 Ole Tange, http://ole.tange.dk and Free Software"
|
||||||
echo "Foundation, Inc."
|
echo "Foundation, Inc."
|
||||||
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
||||||
|
|
|
@ -601,7 +601,7 @@ _parset_main() {
|
||||||
fi
|
fi
|
||||||
if [ "$_parset_NAME" = "--version" ] ; then
|
if [ "$_parset_NAME" = "--version" ] ; then
|
||||||
# shellcheck disable=SC2006
|
# shellcheck disable=SC2006
|
||||||
echo "parset 20240522 (GNU parallel `parallel --minversion 1`)"
|
echo "parset 20240523 (GNU parallel `parallel --minversion 1`)"
|
||||||
echo "Copyright (C) 2007-2024 Ole Tange, http://ole.tange.dk and Free Software"
|
echo "Copyright (C) 2007-2024 Ole Tange, http://ole.tange.dk and Free Software"
|
||||||
echo "Foundation, Inc."
|
echo "Foundation, Inc."
|
||||||
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
||||||
|
|
|
@ -570,7 +570,7 @@ _parset_main() {
|
||||||
fi
|
fi
|
||||||
if [ "$_parset_NAME" = "--version" ] ; then
|
if [ "$_parset_NAME" = "--version" ] ; then
|
||||||
# shellcheck disable=SC2006
|
# shellcheck disable=SC2006
|
||||||
echo "parset 20240522 (GNU parallel `parallel --minversion 1`)"
|
echo "parset 20240523 (GNU parallel `parallel --minversion 1`)"
|
||||||
echo "Copyright (C) 2007-2024 Ole Tange, http://ole.tange.dk and Free Software"
|
echo "Copyright (C) 2007-2024 Ole Tange, http://ole.tange.dk and Free Software"
|
||||||
echo "Foundation, Inc."
|
echo "Foundation, Inc."
|
||||||
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
||||||
|
|
|
@ -601,7 +601,7 @@ _parset_main() {
|
||||||
fi
|
fi
|
||||||
if [ "$_parset_NAME" = "--version" ] ; then
|
if [ "$_parset_NAME" = "--version" ] ; then
|
||||||
# shellcheck disable=SC2006
|
# shellcheck disable=SC2006
|
||||||
echo "parset 20240522 (GNU parallel `parallel --minversion 1`)"
|
echo "parset 20240523 (GNU parallel `parallel --minversion 1`)"
|
||||||
echo "Copyright (C) 2007-2024 Ole Tange, http://ole.tange.dk and Free Software"
|
echo "Copyright (C) 2007-2024 Ole Tange, http://ole.tange.dk and Free Software"
|
||||||
echo "Foundation, Inc."
|
echo "Foundation, Inc."
|
||||||
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
||||||
|
|
|
@ -601,7 +601,7 @@ _parset_main() {
|
||||||
fi
|
fi
|
||||||
if [ "$_parset_NAME" = "--version" ] ; then
|
if [ "$_parset_NAME" = "--version" ] ; then
|
||||||
# shellcheck disable=SC2006
|
# shellcheck disable=SC2006
|
||||||
echo "parset 20240522 (GNU parallel `parallel --minversion 1`)"
|
echo "parset 20240523 (GNU parallel `parallel --minversion 1`)"
|
||||||
echo "Copyright (C) 2007-2024 Ole Tange, http://ole.tange.dk and Free Software"
|
echo "Copyright (C) 2007-2024 Ole Tange, http://ole.tange.dk and Free Software"
|
||||||
echo "Foundation, Inc."
|
echo "Foundation, Inc."
|
||||||
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
use strict;
|
use strict;
|
||||||
use Getopt::Long;
|
use Getopt::Long;
|
||||||
$Global::progname="niceload";
|
$Global::progname="niceload";
|
||||||
$Global::version = 20240522;
|
$Global::version = 20240523;
|
||||||
Getopt::Long::Configure("bundling","require_order");
|
Getopt::Long::Configure("bundling","require_order");
|
||||||
get_options_from_array(\@ARGV) || die_usage();
|
get_options_from_array(\@ARGV) || die_usage();
|
||||||
if($opt::version) {
|
if($opt::version) {
|
||||||
|
|
29
src/parallel
29
src/parallel
|
@ -2794,7 +2794,7 @@ sub check_invalid_option_combinations() {
|
||||||
|
|
||||||
sub init_globals() {
|
sub init_globals() {
|
||||||
# Defaults:
|
# Defaults:
|
||||||
$Global::version = 20240522;
|
$Global::version = 20240523;
|
||||||
$Global::progname = 'parallel';
|
$Global::progname = 'parallel';
|
||||||
$::name = "GNU Parallel";
|
$::name = "GNU Parallel";
|
||||||
$Global::infinity = 2**31;
|
$Global::infinity = 2**31;
|
||||||
|
@ -7723,9 +7723,9 @@ sub limit($) {
|
||||||
limit=$1;
|
limit=$1;
|
||||||
io_file=$2;
|
io_file=$2;
|
||||||
# Do the measurement in the background
|
# Do the measurement in the background
|
||||||
((tmp=$(tempfile);
|
((tmp=$(mktemp || tempfile);
|
||||||
LANG=C iostat -x 1 2 > $tmp;
|
LANG=C iostat -x 1 2 > $tmp;
|
||||||
mv $tmp $io_file) </dev/null >/dev/null & );
|
mv $tmp $io_file) </dev/null >/dev/null & );
|
||||||
perl -e '-e $ARGV[0] or exit(1);
|
perl -e '-e $ARGV[0] or exit(1);
|
||||||
for(reverse <>) {
|
for(reverse <>) {
|
||||||
/Device/ and last;
|
/Device/ and last;
|
||||||
|
@ -7772,7 +7772,6 @@ sub limit($) {
|
||||||
local %ENV = %env;
|
local %ENV = %env;
|
||||||
$ENV{'SSHLOGIN'} = $self->string();
|
$ENV{'SSHLOGIN'} = $self->string();
|
||||||
system($Global::shell,"-c",$self->{'limitscript'});
|
system($Global::shell,"-c",$self->{'limitscript'});
|
||||||
#::qqx($self->{'limitscript'});
|
|
||||||
::debug("limit","limit `".$self->{'limitscript'}."` result ".($?>>8)."\n");
|
::debug("limit","limit `".$self->{'limitscript'}."` result ".($?>>8)."\n");
|
||||||
return $?>>8;
|
return $?>>8;
|
||||||
}
|
}
|
||||||
|
@ -11340,17 +11339,17 @@ sub set_job_in_joblog($) {
|
||||||
vec($Global::job_already_run,$job->seq(),1) = 1;
|
vec($Global::job_already_run,$job->seq(),1) = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub retry() {
|
sub retry() {
|
||||||
# This command should be retried
|
# This command should be retried
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
|
||||||
$self->set_endtime(undef);
|
$self->set_endtime(undef);
|
||||||
$self->reset_exitstatus();
|
$self->reset_exitstatus();
|
||||||
$self->set_killreason(undef);
|
$self->set_killreason(undef);
|
||||||
$Global::JobQueue->unget($self);
|
$Global::JobQueue->unget($self);
|
||||||
::debug("run", "Retry ", $self->seq(), "\n");
|
::debug("run", "Retry ", $self->seq(), "\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub should_be_retried($) {
|
sub should_be_retried($) {
|
||||||
# Should this job be retried?
|
# Should this job be retried?
|
||||||
|
|
|
@ -3130,13 +3130,15 @@ The jobs will be run on a list of remote computers.
|
||||||
|
|
||||||
=item Z<> @I<hostgroups>/
|
=item Z<> @I<hostgroups>/
|
||||||
|
|
||||||
One or more groups this sshlogin belongs to (See
|
One or more groups this sshlogin belongs to. Multiple groups are
|
||||||
B<--hostgroup>). Multiple groups are separated by '+'. The I<sshlogin>
|
separated by '+'. The I<sshlogin> will always be added to a hostgroup
|
||||||
will always be added to a hostgroup named the same as I<sshlogin>.
|
named the same as I<sshlogin>.
|
||||||
|
|
||||||
If only the I<@hostgroup> is given, only the sshlogins in that
|
If only the I<@hostgroup> is given, only the sshlogins in that
|
||||||
hostgroup will be used. Multiple I<@hostgroup> can be given.
|
hostgroup will be used. Multiple I<@hostgroup> can be given.
|
||||||
|
|
||||||
|
See B<--hostgroup>.
|
||||||
|
|
||||||
Examples: B<@prod/>, B<@dev+remote/>
|
Examples: B<@prod/>, B<@dev+remote/>
|
||||||
|
|
||||||
|
|
||||||
|
@ -3170,17 +3172,18 @@ Examples: B<alice>, B<bob>
|
||||||
=item Z<> :I<password>
|
=item Z<> :I<password>
|
||||||
|
|
||||||
Use I<password> for authentication (using B<sshpass>). B<password>
|
Use I<password> for authentication (using B<sshpass>). B<password>
|
||||||
cannot contain space. If I<password> is omitted use B<$SSHPASS>. If
|
cannot contain space. If I<password> is omitted, GNU B<parallel> will
|
||||||
B<:> is omitted use B<ssh>'s default authentication. In this case
|
use B<$SSHPASS>. If B<:> is omitted use B<ssh>'s default
|
||||||
login must not require a password (B<ssh-agent> and B<ssh-copy-id> may
|
authentication. In this case login must not require a password
|
||||||
help with that).
|
(B<ssh-agent> and B<ssh-copy-id> may help with that).
|
||||||
|
|
||||||
Examples: B<:mypassword>, B<:>
|
Examples: B<:mypassword>, B<:>
|
||||||
|
|
||||||
|
|
||||||
=item Z<> I<host>
|
=item Z<> I<host>
|
||||||
|
|
||||||
Hostname or IP address of server.
|
Hostname or IP address of server. (This is what you will use the
|
||||||
|
most).
|
||||||
|
|
||||||
Examples: B<server01>, B<10.1.2.3>, B<[2001:470:142:4::a]>,
|
Examples: B<server01>, B<10.1.2.3>, B<[2001:470:142:4::a]>,
|
||||||
B<2001:470:142:5::116>.
|
B<2001:470:142:5::116>.
|
||||||
|
|
|
@ -137,7 +137,7 @@ GetOptions(
|
||||||
"help" => \$opt::dummy,
|
"help" => \$opt::dummy,
|
||||||
) || exit(255);
|
) || exit(255);
|
||||||
$Global::progname = ($0 =~ m:(^|/)([^/]+)$:)[1];
|
$Global::progname = ($0 =~ m:(^|/)([^/]+)$:)[1];
|
||||||
$Global::version = 20240522;
|
$Global::version = 20240523;
|
||||||
if($opt::version) { version(); exit 0; }
|
if($opt::version) { version(); exit 0; }
|
||||||
# Remove -D and --parallel=N
|
# Remove -D and --parallel=N
|
||||||
my @s = (grep { ! /^-D$|^--parallel=\S+$/ }
|
my @s = (grep { ! /^-D$|^--parallel=\S+$/ }
|
||||||
|
|
2
src/sql
2
src/sql
|
@ -670,7 +670,7 @@ $Global::Initfile && unlink $Global::Initfile;
|
||||||
exit ($err);
|
exit ($err);
|
||||||
|
|
||||||
sub parse_options {
|
sub parse_options {
|
||||||
$Global::version = 20240522;
|
$Global::version = 20240523;
|
||||||
$Global::progname = 'sql';
|
$Global::progname = 'sql';
|
||||||
|
|
||||||
# This must be done first as this may exec myself
|
# This must be done first as this may exec myself
|
||||||
|
|
Loading…
Reference in a new issue