Task #5178
closedReview sigint branch on arvados-dev
Updated by Ward Vandewege about 9 years ago
This doesn't quite seem to work for me. I see 'interrupted' when I interrupt for example the api server tests, but then it just continues with the next set of tests instead of exiting the entire script.
Updated by Ward Vandewege about 9 years ago
- Assigned To changed from Ward Vandewege to Tom Clegg
Updated by Tom Clegg about 9 years ago
Ward Vandewege wrote:
This doesn't quite seem to work for me. I see 'interrupted' when I interrupt for example the api server tests, but then it just continues with the next set of tests instead of exiting the entire script.
Well, that's not very satisfying. That's exactly what I got without this branch. (Do you see any noticeable change at all between 03d58fa and master? Do you get a "Fail: (run-tests.sh interrupted)"
if you ^C your way through the tests?)
Here's what I get if I interrupt api server tests:
CollectionTest#test_create_collection_with_manifest_size_256_which_gets_truncated_false,_and_not_expect_exceptions_even_on_very_large_manifest_texts = 0.01 s = . CollectionTest#test_create_collection_with_manifest_size_262144_which_gets_truncated_true,_and_not_expect_exceptions_even_on_very_large_manifest_texts = ^Crake aborted! Interrupt: /home/tom/.gem/ruby/2.1.0/gems/railties-3.2.17/lib/rails/test_unit/testing.rake:61:in `block (3 levels) in <top (required)>' /home/tom/.gem/ruby/2.1.0/gems/railties-3.2.17/lib/rails/test_unit/testing.rake:59:in `collect' /home/tom/.gem/ruby/2.1.0/gems/railties-3.2.17/lib/rails/test_unit/testing.rake:59:in `block (2 levels) in <top (required)>' /home/tom/.gem/ruby/2.1.0/gems/railties-3.2.17/lib/rails/test_unit/testing.rake:50:in `block in <top (required)>' Tasks: TOP => test:units (See full trace by running task with --trace) Finished tests in 2.195727s, 20.9498 tests/s, 79.2448 assertions/s. 46 tests, 174 assertions, 0 failures, 0 errors, 0 skips Interrupted Pass: doc tests (31s) Failures (1): Fail: (run-tests.sh interrupted) Leaving behind temp dirs: VENVDIR="/tmp/tmp.E8c2YnfsjE" GOPATH="/tmp/tmp.KRbbCwdR6f" GEMHOME="/tmp/tmp.5OfhIaA0kY" tom@arvados:~/src/arvados (5011-thread-safe-test)$ Coverage report generated for Unit Tests to /home/tom/src/arvados/services/api/coverage. 1440 / 3473 LOC (41.46%) covered. Coverage report Rcov style generated for Unit Tests to /home/tom/src/arvados/services/api/coverage/rcov
The rcov stuff seems to stay alive long enough to print stuff just after my shell prints its prompt, but everything else stops quickly.
Updated by Tom Clegg about 9 years ago
- Category set to Tests
- Assigned To changed from Tom Clegg to Ward Vandewege
Updated by Ward Vandewege about 9 years ago
Nope, that's not what it does for me at all. Here's an example where I hit ctrl-c during a test:
********** Running doc tests ********** rm -rf sdk/python/arvados rm -rf rm -rf .site Warning: epydoc not found, Python documentation will not be generated mkdir -p .site mkdir -p .site/admin Rendering .site/admin/cheat_sheet.html Rendering .site/admin/index.html mkdir -p .site/api Rendering .site/api/authentication.html Rendering .site/api/crunch-scripts.html Rendering .site/api/methods.html Rendering .site/api/permission-model.html Rendering .site/api/resources.html Rendering .site/api/index.html mkdir -p .site/install Rendering .site/install/client.html Rendering .site/install/create-standard-objects.html Rendering .site/install/install-api-server.html Rendering .site/install/install-crunch-dispatch.html Rendering .site/install/install-docker.html Rendering .site/install/install-keepproxy.html Rendering .site/install/install-keepstore.html Rendering .site/install/install-manual-overview.html Rendering .site/install/install-manual-prerequisites-ruby.html Rendering .site/install/install-manual-prerequisites.html Rendering .site/install/install-shell-server.html Rendering .site/install/install-sso.html Rendering .site/install/install-workbench-app.html Rendering .site/install/index.html mkdir -p .site/sdk/cli Rendering .site/sdk/cli/install.html Rendering .site/sdk/cli/reference.html Rendering .site/sdk/cli/subcommands.html Rendering .site/sdk/cli/index.html mkdir -p .site/sdk/go Rendering .site/sdk/go/index.html mkdir -p .site/sdk/java Rendering .site/sdk/java/index.html mkdir -p .site/sdk/perl Rendering .site/sdk/perl/index.html mkdir -p .site/sdk/ruby Rendering .site/sdk/ruby/index.html Rendering .site/sdk/index.html mkdir -p .site/start Rendering .site/start/index.html mkdir -p .site/user Rendering .site/user/index.html Rendering .site/index.html Rendering .site/README mkdir -p .site/js Rendering .site/js/bootstrap.min.js Rendering .site/js/jquery.min.js Rendering .site/js/bootstrap.js mkdir -p .site/api/schema Rendering .site/api/schema/JobTask.html Rendering .site/api/schema/Node.html Rendering .site/api/schema/Collection.html Rendering .site/api/schema/PipelineTemplate.html Rendering .site/api/schema/KeepDisk.html Rendering .site/api/schema/VirtualMachine.html Rendering .site/api/schema/Job.html Rendering .site/api/schema/ApiClient.html Rendering .site/api/schema/Trait.html Rendering .site/api/schema/KeepService.html Rendering .site/api/schema/User.html Rendering .site/api/schema/Group.html Rendering .site/api/schema/Human.html Rendering .site/api/schema/PipelineInstance.html Rendering .site/api/schema/Link.html Rendering .site/api/schema/ApiClientAuthorization.html Rendering .site/api/schema/Specimen.html Rendering .site/api/schema/Repository.html Rendering .site/api/schema/Log.html Rendering .site/api/schema/AuthorizedKey.html mkdir -p .site/api/methods Rendering .site/api/methods/keep_disks.html Rendering .site/api/methods/repositories.html Rendering .site/api/methods/jobs.html Rendering .site/api/methods/api_client_authorizations.html Rendering .site/api/methods/keep_services.html Rendering .site/api/methods/links.html Rendering .site/api/methods/specimens.html Rendering .site/api/methods/logs.html Rendering .site/api/methods/authorized_keys.html Rendering .site/api/methods/virtual_machines.html Rendering .site/api/methods/users.html Rendering .site/api/methods/traits.html Rendering .site/api/methods/job_tasks.html Rendering .site/api/methods/api_clients.html Rendering .site/api/methods/groups.html Rendering .site/api/methods/nodes.html Rendering .site/api/methods/collections.html Rendering .site/api/methods/pipeline_templates.html Rendering .site/api/methods/pipeline_instances.html Rendering .site/api/methods/humans.html mkdir -p .site/user/tutorials Rendering .site/user/tutorials/tutorial-firstscript.html Rendering .site/user/tutorials/tutorial-keep-get.html Rendering .site/user/tutorials/tutorial-keep.html Rendering .site/user/tutorials/tutorial-pipeline-workbench.html Rendering .site/user/tutorials/tutorial-submit-job.html Rendering .site/user/tutorials/running-external-program.html Rendering .site/user/tutorials/tutorial-keep-mount.html Rendering .site/user/tutorials/intro-crunch.html mkdir -p .site/user/topics Rendering .site/user/topics/running-pipeline-command-line.html Rendering .site/user/topics/tutorial-parallel.html Rendering .site/user/topics/run-command.html Rendering .site/user/topics/crunch-tools-overview.html Rendering .site/user/topics/tutorial-gatk-variantfiltration.html Rendering .site/user/topics/arv-run.html Rendering .site/user/topics/arv-docker.html Rendering .site/user/topics/tutorial-job1.html Rendering .site/user/topics/arv-web.html Rendering .site/user/topics/keep.html Rendering .site/user/topics/tutorial-trait-search.html mkdir -p .site/user/reference Rendering .site/user/reference/job-pipeline-ref.html Rendering .site/user/reference/api-tokens.html mkdir -p .site/user/examples Rendering .site/user/examples/crunch-examples.html mkdir -p .site/user/getting_started Rendering .site/user/getting_started/ssh-access-windows.html Rendering .site/user/getting_started/workbench.html Rendering .site/user/getting_started/check-environment.html Rendering .site/user/getting_started/community.html Rendering .site/user/getting_started/ssh-access-unix.html mkdir -p .site/user/copying Rendering .site/user/copying/copying.html Rendering .site/user/copying/LICENSE-2.0.html Rendering .site/user/copying/agpl-3.0.html Rendering .site/user/copying/by-sa-3.0.html mkdir -p .site/fonts Rendering .site/fonts/glyphicons-halflings-regular.ttf Rendering .site/fonts/fontawesome-webfont.ttf Rendering .site/fonts/fontawesome-webfont.woff Rendering .site/fonts/glyphicons-halflings-regular.eot Rendering .site/fonts/glyphicons-halflings-regular.woff Rendering .site/fonts/fontawesome-webfont.svg Rendering .site/fonts/glyphicons-halflings-regular.svg Rendering .site/fonts/fontawesome-webfont.eot mkdir -p .site/start/getting_started Rendering .site/start/getting_started/sharedata.html Rendering .site/start/getting_started/firstpipeline.html mkdir -p .site/images/uses Rendering .site/images/uses/gotohome.png Rendering .site/images/uses/share.png Rendering .site/images/uses/choosefiles.png Rendering .site/images/uses/shared.png Rendering .site/images/uses/sharedsubdirs.png Rendering .site/images/uses/uploading.png Rendering .site/images/uses/rename.png Rendering .site/images/uses/uploaddata.png mkdir -p .site/images/keyfeatures Rendering .site/images/keyfeatures/provenance.png Rendering .site/images/keyfeatures/graph.png Rendering .site/images/keyfeatures/chooseinputs.png Rendering .site/images/keyfeatures/collectionpage.png Rendering .site/images/keyfeatures/webupload.png Rendering .site/images/keyfeatures/running2.png Rendering .site/images/keyfeatures/shared.png Rendering .site/images/keyfeatures/log.png Rendering .site/images/keyfeatures/rerun.png Rendering .site/images/keyfeatures/dashboard2.png Rendering .site/images/workbench-dashboard.png Rendering .site/images/glyphicons-halflings.png Rendering .site/images/shared-collection.png mkdir -p .site/images/quickstart Rendering .site/images/quickstart/5.png Rendering .site/images/quickstart/4.png Rendering .site/images/quickstart/1.png Rendering .site/images/quickstart/6.png Rendering .site/images/quickstart/3.png Rendering .site/images/quickstart/2.png Rendering .site/images/quickstart/7.png Rendering .site/images/download-shared-collection.png Rendering .site/images/doc-bg.jpg Rendering .site/images/glyphicons-halflings-white.png Rendering .site/images/upload-tab-in-new-collection.png Rendering .site/images/workbench-move-selected.png Rendering .site/images/files-uploaded.png Rendering .site/images/dax-reading-book.png Rendering .site/images/dax.png Rendering .site/images/favicon.ico Rendering .site/images/upload-using-workbench.png Rendering .site/images/ssh-adding-public-key.png mkdir -p .site/sdk/python Rendering .site/sdk/python/python.html Rendering .site/sdk/python/crunch-utility-libraries.html Rendering .site/sdk/python/sdk-python.html Rendering .site/sdk/python/events.html mkdir -p .site/css Rendering .site/css/bootstrap-theme.min.css Rendering .site/css/bootstrap.min.css Rendering .site/css/bootstrap-theme.css Rendering .site/css/code.css Rendering .site/css/font-awesome.css Rendering .site/css/nav-list.css Rendering .site/css/badges.css Rendering .site/css/carousel-override.css Rendering .site/css/bootstrap.css rm INFO 2015-02-13 10:20:55,231 MainThread Checking intern URLs only; use --check-extern to check extern URLs. LinkChecker 9.3 Copyright (C) 2000-2014 Bastian Kleineidam LinkChecker comes with ABSOLUTELY NO WARRANTY! This is free software, and you are welcome to redistribute it under certain conditions. Look at the file `LICENSE' within this distribution. Get the newest version at http://wummel.github.io/linkchecker/ Write comments and bugs to https://github.com/wummel/linkchecker/issues Support this project at http://wummel.github.io/linkchecker/donations.html Start checking at 2015-02-13 10:20:55-004 Statistics: Downloaded: 7KB. Content types: 1 image, 1 text, 0 video, 0 audio, 0 application, 0 mail and 30 other. URL lengths: min=20, max=90, avg=62. That's it. 32 links in 2 URLs checked. 0 warnings found. 0 errors found. Stopped checking at 2015-02-13 10:20:55-004 (0.03 seconds) ^Crake aborted! /data/personal/data/2014/projects/cfi/arvados/doc/Rakefile:28:in `system' /data/personal/data/2014/projects/cfi/arvados/doc/Rakefile:28:in `block (2 levels) in <top (required)>' /data/personal/data/2014/projects/cfi/arvados/doc/Rakefile:25:in `chdir' /data/personal/data/2014/projects/cfi/arvados/doc/Rakefile:25:in `block in <top (required)>' /home/ward/.rvm/gems/ruby-2.1.5@arvados-tests/bin/ruby_executable_hooks:15:in `eval' /home/ward/.rvm/gems/ruby-2.1.5@arvados-tests/bin/ruby_executable_hooks:15:in `<main>' Tasks: TOP => linkchecker (See full trace by running task with --trace) ********** !!!!!! doc tests FAILED !!!!!! ********** ********** End of doc tests (3s) ********** ********** Running services/api tests ********** Exception KeyboardInterrupt in <module 'threading' from '/usr/lib/python2.7/threading.pyc'> ignored Run options: -v # Running tests: ApplicationControllerTest#test_bogus_boolean_parameter_""_returns_error = 0.72 s = . ApplicationControllerTest#test_bogus_boolean_parameter_"FALSE"_returns_error = 0.02 s = . ApplicationControllerTest#test_bogus_boolean_parameter_"TRUE"_returns_error = 0.02 s = . ApplicationControllerTest#test_bogus_boolean_parameter_"\"true\""_returns_error = 0.01 s = . ApplicationControllerTest#test_bogus_boolean_parameter_"foo"_returns_error = 0.01 s = . ApplicationControllerTest#test_bogus_boolean_parameter_[true]_returns_error = 0.01 s = . ApplicationControllerTest#test_bogus_boolean_parameter_nil_returns_error = 0.01 s = . ApplicationControllerTest#test_bogus_boolean_parameter_{:a=>true}_returns_error = 0.01 s = . ApplicationControllerTest#test_boolean_parameter_"0"_acceptable = 0.07 s = . ApplicationControllerTest#test_boolean_parameter_"0"_accepted_as_false = 0.05 s = . ApplicationControllerTest#test_boolean_parameter_"1"_acceptable = 0.03 s = . ApplicationControllerTest#test_boolean_parameter_"1"_accepted_as_true = 0.05 s = . ApplicationControllerTest#test_boolean_parameter_"false"_acceptable = 0.03 s = . ApplicationControllerTest#test_boolean_parameter_"false"_accepted_as_false = 0.03 s = . ApplicationControllerTest#test_boolean_parameter_"true"_acceptable = 0.03 s = . ApplicationControllerTest#test_boolean_parameter_"true"_accepted_as_true = 0.05 s = . ApplicationControllerTest#test_boolean_parameter_0_acceptable = 0.03 s = . ApplicationControllerTest#test_boolean_parameter_0_accepted_as_false = 0.04 s = . ApplicationControllerTest#test_boolean_parameter_1_acceptable = 0.03 s = . ApplicationControllerTest#test_boolean_parameter_1_accepted_as_true = 0.05 s = . ApplicationControllerTest#test_boolean_parameter_false_acceptable = 0.02 s = . ApplicationControllerTest#test_boolean_parameter_false_accepted_as_false = 0.04 s = . ApplicationControllerTest#test_boolean_parameter_true_acceptable = 0.02 s = . ApplicationControllerTest#test_boolean_parameter_true_accepted_as_true = 0.05 s = . ApplicationControllerTest#test_requesting_nonexistent_object_returns_404_error = 0.01 s = . ApplicationControllerTest#test_requesting_object_without_read_permission_returns_404_error = 0.04 s = . ApplicationControllerTest#test_submitting_bad_object_returns_error = 0.01 s = . ...
Bash version:
$ bash --version GNU bash, version 4.3.30(1)-release (x86_64-pc-linux-gnu) Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software; you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
Updated by Ward Vandewege about 9 years ago
- Assigned To changed from Ward Vandewege to Tom Clegg
Updated by Tom Clegg about 9 years ago
Well, it seems rvm does some additional magic to prevent ^C from working properly while any ruby program is running. This branch doesn't address that.
It just gives you:- with rvm: interrupt Go or Python tests → stop. (behavior improved)
- with rvm: interrupt linkchecker or ruby tests → stop this test, continue to next thing. (behavior unchanged)
- without rvm: interrupt anything → stop. (behavior improved)
So, if you use rvm, ^C works a little better than it did before. If you don't use rvm, ^C works a lot better than it did before.
Can you check whether the tests that don't involve any Ruby programs are ^C-able for you? (Go stuff, Python SDK, nodemanager, FUSE)
Updated by Ward Vandewege about 9 years ago
- Assigned To changed from Tom Clegg to Ward Vandewege
- Target version changed from 2015-02-18 sprint to 2015-03-11 sprint
Updated by Anonymous about 9 years ago
- Status changed from New to Resolved
- Start date set to 03/10/2015
- % Done changed from 0 to 100
- Remaining (hours) set to 0.0
Applied in changeset arvados-dev|commit:6c6ca86bfa400d880d051fd87c7c1fb9b8905114.