From d3b5e26c1abf298d964e88807a89fc9413aa428f Mon Sep 17 00:00:00 2001 From: Ole Tange Date: Tue, 22 Sep 2015 01:35:52 +0200 Subject: [PATCH] Fixed bug #46016: --joblog should not log when --dryrun. --- NEWS | 4 +-- doc/release_new_version | 33 ++----------------- src/parallel | 10 ++++-- testsuite/tests-to-run/parallel-freebsd.sh | 8 ++--- testsuite/tests-to-run/parallel-local-0.3s.sh | 6 ++++ testsuite/wanted-results/parallel-freebsd | 6 +++- testsuite/wanted-results/parallel-local-0.3s | 8 +++++ 7 files changed, 35 insertions(+), 40 deletions(-) diff --git a/NEWS b/NEWS index b20315fc..b3218906 100644 --- a/NEWS +++ b/NEWS @@ -11,7 +11,7 @@ Multi-Objective Optimization on GPUs http://ieeexplore.ieee.org/stamp/stamp.jsp? * GNU Parallel was cited in: Tools and techniques for computational reproducibility http://biorxiv.org/content/biorxiv/early/2015/07/17/022707.full.pdf -* GNU Parallel was cited in: How Can We Measure the Similarity Between Résumés of Selected Candidates for a Job? http://crawl.prod.proquest.com.s3.amazonaws.com/fpcache/c79b355e6e441a51de3c7fcd52866184.pdf?AWSAccessKeyId=AKIAJF7V7KNV2KKY2NUQ&Expires=1442658364&Signature=soRDi6Xqw1zHhSmBrqJ5KiD%2B8Sw%3D +* GNU Parallel was cited in: How Can We Measure the Similarity Between Résumés of Selected Candidates for a Job? http://www.researchgate.net/publication/275954089_How_can_we_measure_the_similarity_between_rsums_of_selected_candidates_for_a_job * GNU Parallel was cited in: Interplay of cell dynamics and epithelial tension during morphogenesis of the Drosophila pupal wing http://www.researchgate.net/profile/Raphael_Etournay/publication/279061859_Interplay_of_cell_dynamics_and_epithelial_tension_during_morphogenesis_of_the_Drosophila_pupal_wing/links/558a95ad08aeae8413bcceea.pdf @@ -25,8 +25,6 @@ Multi-Objective Optimization on GPUs http://ieeexplore.ieee.org/stamp/stamp.jsp? * What It Looks Like to Process 3.5 Million Books http://blog.gdeltproject.org/what-it-looks-like-to-process-3-5-million-books/ -* L’Exploration De Données Twitter http://blog.inovia-conseil.fr/?p=233 - * Bug fixes and man page updates. diff --git a/doc/release_new_version b/doc/release_new_version index 0842d6a6..dc82248c 100644 --- a/doc/release_new_version +++ b/doc/release_new_version @@ -4,7 +4,7 @@ Check that documentation is updated (compare to web): -Fixet for 20150722 +Fixet for 20150922 git diff last-release-commit Unmodified beta since last version => production Unmodified alpha since last version => beta @@ -212,9 +212,9 @@ cc:Tim Cuthbertson , Ryoichiro Suzuki , Jesse Alama -Subject: GNU Parallel 20150822 ('Aylan Kurdi') released <<[stable]>> +Subject: GNU Parallel 20151022 ('<<>>') released <<[stable]>> -GNU Parallel 20150922 ('Aylan Kurdi') <<[stable]>> has been released. It is available for download at: http://ftp.gnu.org/gnu/parallel/ +GNU Parallel 20151022 ('<<>>') <<[stable]>> has been released. It is available for download at: http://ftp.gnu.org/gnu/parallel/ <> @@ -225,21 +225,6 @@ Haiku of the month: New in this release: -* GNU Parallel was cited in: Flexible Modeling of Epidemics with an Empirical Bayes Framework http://journals.plos.org/ploscompbiol/article?id=10.1371%2Fjournal.pcbi.1004382 - -* GNU Parallel was cited in: BL1: 2D Potts Model with a Twist https://sucs.swan.ac.uk/~rjames93/Dissertation.pdf - -* GNU Parallel was cited in: DockBench: An Integrated Informatic Platform Bridging the Gap between the Robust Validation of Docking Protocols and Virtual Screening Simulations http://www.mdpi.com/1420-3049/20/6/9977/pdf - -* GNU Parallel was cited in: A Scalable Parallel Implementation of Evolutionary Algorithms for -Multi-Objective Optimization on GPUs http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7257074 - -* GNU Parallel was cited in: Tools and techniques for computational reproducibility http://biorxiv.org/content/biorxiv/early/2015/07/17/022707.full.pdf - -* GNU Parallel was cited in: How Can We Measure the Similarity Between Résumés of Selected Candidates for a Job? http://crawl.prod.proquest.com.s3.amazonaws.com/fpcache/c79b355e6e441a51de3c7fcd52866184.pdf?AWSAccessKeyId=AKIAJF7V7KNV2KKY2NUQ&Expires=1442658364&Signature=soRDi6Xqw1zHhSmBrqJ5KiD%2B8Sw%3D - -* GNU Parallel was cited in: Interplay of cell dynamics and epithelial tension during morphogenesis of the Drosophila pupal wing http://www.researchgate.net/profile/Raphael_Etournay/publication/279061859_Interplay_of_cell_dynamics_and_epithelial_tension_during_morphogenesis_of_the_Drosophila_pupal_wing/links/558a95ad08aeae8413bcceea.pdf - * << kontakt GNU Parallel was used (unfortunately without citation) in: Instrumentation and Trace Analysis for Ad-hoc Python Workflows in Cloud Environments http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=7214035>> * <> GNU Parallel was used (unfortunately without citation) in: MUGBAS: a species free gene-based programme suite for post-GWAS analysis http://www.ncbi.nlm.nih.gov/pubmed/25765345 @@ -248,18 +233,6 @@ Multi-Objective Optimization on GPUs http://ieeexplore.ieee.org/stamp/stamp.jsp? * <> GNU Parallel was used (unfortunately with wrong citation) in: TADSim: Discrete Event-Based Performance Prediction for Temperature-Accelerated Dynamics http://vruehle.de/publications/2015c.pdf -* Third-party selling GNU Parallel T-shirts http://www.aliexpress.com/item/2015F-BSO-GNU-LOGO-GNU-PARALLEL-men-s-shirt-sleeve-visual-illusion-error/32464827966.html - -* Joys of gnu parallel http://scottolesen.com/index.php/2015/08/26/joys-of-gnu-parallel/ - -* Crop and resize images with bash and ImageMagick https://www.simonholywell.com/post/2015/08/image-resize-crop-bash-imagemagick/ - -* Three Ways to Script Processes in Parallel http://www.codeword.xyz/2015/09/02/three-ways-to-script-processes-in-parallel/ - -* What It Looks Like to Process 3.5 Million Books http://blog.gdeltproject.org/what-it-looks-like-to-process-3-5-million-books/ - -* L’Exploration De Données Twitter http://blog.inovia-conseil.fr/?p=233 - * Bug fixes and man page updates. GNU Parallel - For people who live life in the parallel lane. diff --git a/src/parallel b/src/parallel index 8f187752..7ddf9fdd 100755 --- a/src/parallel +++ b/src/parallel @@ -1097,7 +1097,7 @@ sub parse_options { sub init_globals { # Defaults: - $Global::version = 20150922; + $Global::version = 20150923; $Global::progname = 'parallel'; $Global::infinity = 2**31; $Global::debug = 0; @@ -1430,7 +1430,13 @@ sub open_joblog { ::wait_and_exit(255); } } else { - if($opt::joblog eq "-") { + if($opt::dryrun) { + # Do not write to joblog in a dry-run + if(not open($Global::joblog, ">", "/dev/null")) { + ::error("Cannot write to --joblog $opt::joblog."); + ::wait_and_exit(255); + } + } elsif($opt::joblog eq "-") { # Use STDOUT as joblog $Global::joblog = $Global::fd{1}; } elsif(not open($Global::joblog, ">", $opt::joblog)) { diff --git a/testsuite/tests-to-run/parallel-freebsd.sh b/testsuite/tests-to-run/parallel-freebsd.sh index cc12f4b4..66d81633 100644 --- a/testsuite/tests-to-run/parallel-freebsd.sh +++ b/testsuite/tests-to-run/parallel-freebsd.sh @@ -11,10 +11,10 @@ scp -q .*/src/{parallel,sem,sql,niceload} freebsd7.tange.dk:bin/ cat <<'EOF' | sed -e 's/;$/; /;s/$SERVER1/'$SERVER1'/;s/$SERVER2/'$SERVER2'/' | stdout parallel -vj9 -k --joblog /tmp/jl-`basename $0` -L1 -S freebsd7.tange.dk echo 'bug #40136: FreeBSD: No more processes' - sem --jobs 3 --id my_id -u 'echo First started; sleep 5; echo The first finished' && - sem --jobs 3 --id my_id -u 'echo Second started; sleep 6; echo The second finished' && - sem --jobs 3 --id my_id -u 'echo Third started; sleep 7; echo The third finished' && - sem --jobs 3 --id my_id -u 'echo Fourth started; sleep 8; echo The fourth finished' && + sem --jobs 3 --id my_id -u 'echo First started; sleep 10; echo The first finished;echo' && + sem --jobs 3 --id my_id -u 'echo Second started; sleep 11; echo The second finished;echo' && + sem --jobs 3 --id my_id -u 'echo Third started; sleep 12; echo The third finished;echo' && + sem --jobs 3 --id my_id -u 'echo Fourth started; sleep 13; echo The fourth finished;echo' && sem --wait --id my_id echo 'Test --compress --pipe' diff --git a/testsuite/tests-to-run/parallel-local-0.3s.sh b/testsuite/tests-to-run/parallel-local-0.3s.sh index aea70909..0c67d64d 100644 --- a/testsuite/tests-to-run/parallel-local-0.3s.sh +++ b/testsuite/tests-to-run/parallel-local-0.3s.sh @@ -211,6 +211,12 @@ echo '**' echo '### bug #45998: --pipe to function broken' myfunc() { echo $1; cat; }; export -f myfunc; echo OK | parallel --pipe myfunc {#} +echo '**' + +echo 'bug #46016: --joblog should not log when --dryrun' +parallel --dryrun --joblog - echo ::: Only_this + +echo '**' EOF echo '### 1 .par file from --files expected' diff --git a/testsuite/wanted-results/parallel-freebsd b/testsuite/wanted-results/parallel-freebsd index 0d1d0ba3..8f17f019 100644 --- a/testsuite/wanted-results/parallel-freebsd +++ b/testsuite/wanted-results/parallel-freebsd @@ -2,15 +2,19 @@ tange@freebsd7 echo 'bug #40136: FreeBSD: No more processes' bug #40136: FreeBSD: No more processes - sem --jobs 3 --id my_id -u 'echo First started; sleep 5; echo The first finished' && sem --jobs 3 --id my_id -u 'echo Second started; sleep 6; echo The second finished' && sem --jobs 3 --id my_id -u 'echo Third started; sleep 7; echo The third finished' && sem --jobs 3 --id my_id -u 'echo Fourth started; sleep 8; echo The fourth finished' && sem --wait --id my_id + sem --jobs 3 --id my_id -u 'echo First started; sleep 10; echo The first finished;echo' && sem --jobs 3 --id my_id -u 'echo Second started; sleep 11; echo The second finished;echo' && sem --jobs 3 --id my_id -u 'echo Third started; sleep 12; echo The third finished;echo' && sem --jobs 3 --id my_id -u 'echo Fourth started; sleep 13; echo The fourth finished;echo' && sem --wait --id my_id First started Second started Third started The first finished + Fourth started The second finished + The third finished + The fourth finished + echo 'Test --compress --pipe' Test --compress --pipe jot 1000 | parallel --compress --pipe cat | wc diff --git a/testsuite/wanted-results/parallel-local-0.3s b/testsuite/wanted-results/parallel-local-0.3s index 3fdedf9b..529569bb 100644 --- a/testsuite/wanted-results/parallel-local-0.3s +++ b/testsuite/wanted-results/parallel-local-0.3s @@ -443,5 +443,13 @@ echo '### bug #45998: --pipe to function broken' myfunc() { echo $1; cat; }; export -f myfunc; echo OK | parallel --pipe myfunc {#} 1 OK +echo '**' +** +echo 'bug #46016: --joblog should not log when --dryrun' +bug #46016: --joblog should not log when --dryrun +parallel --dryrun --joblog - echo ::: Only_this +echo Only_this +echo '**' +** ### 1 .par file from --files expected 1