Project

General

Profile

Actions

Task #5178

closed

Review sigint branch on arvados-dev

Added by Tom Clegg about 9 years ago. Updated about 9 years ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Target version:
Actions #1

Updated by Ward Vandewege about 9 years ago

  • Assigned To set to Ward Vandewege
Actions #2

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.

Actions #3

Updated by Ward Vandewege about 9 years ago

  • Assigned To changed from Ward Vandewege to Tom Clegg
Actions #4

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.

Actions #5

Updated by Tom Clegg about 9 years ago

  • Category set to Tests
  • Assigned To changed from Tom Clegg to Ward Vandewege
Actions #6

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.
Actions #7

Updated by Ward Vandewege about 9 years ago

  • Assigned To changed from Ward Vandewege to Tom Clegg
Actions #8

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)

Actions #9

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
Actions #10

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.

Actions

Also available in: Atom PDF