[tahoe-lafs-trac-stream] [Tahoe-LAFS] #2800: make OS-X travis tests run faster

Tahoe-LAFS trac at tahoe-lafs.org
Thu Jul 21 22:07:11 UTC 2016


#2800: make OS-X travis tests run faster
--------------------+----------------------------
 Reporter:  warner  |          Owner:
     Type:  task    |         Status:  new
 Priority:  normal  |      Milestone:  eventually
Component:  code    |        Version:  1.11.0
 Keywords:          |  Launchpad Bug:
--------------------+----------------------------
 We currently have Travis-CI configured to run the unit test suite (with
 coverage) as `tox -e coverage` on both Linux and OS-X. The linux suite
 tends to finish in about 13 minutes, but the OS-X one takes 27 or more,
 and occasionally exceeds a Travis per-job time limit (one such run was
 terminated after 48 minutes).

 I'm going to turn off coverage for the OS-X travis build in an attempt to
 keep this from happening. Several tests get *extremely* slow when run in
 coverage mode (and are non too fast anyways). Here's a summary of the top
 30 most time-consuming tests (on travis OS-X with coverage turned on,
 specifically in job https://travis-ci.org/tahoe-lafs/tahoe-
 lafs/jobs/146475300):

 {{{
 14.935  allmydata.test.test_mutable.Filenode.test_modify
 15.387  allmydata.test.test_sftp.Handler.test_removeDirectory
 16.377  allmydata.test.test_mutable.Filenode.test_max_shares
 18.051  allmydata.test.test_cli_check.Check.test_deep_check
 20.046  allmydata.test.test_sftp.Handler.test_removeFile
 20.222  allmydata.test.test_mutable.Update.test_replace_locations
 22.993  allmydata.test.test_cli_put.Put.test_format
 24.148  allmydata.test.test_sftp.Handler.test_renameFile
 24.732  allmydata.test.test_cli_mv.Mv.test_mv_behavior
 31.925  allmydata.test.test_deepcheck.DeepCheckWebBad.test_bad
 34.554  allmydata.test.test_cli_backup.Backup.test_backup
 35.903  allmydata.test.test_deepcheck.DeepCheckWebGood.test_good
 35.949
 allmydata.test.test_cli_cp.Cp.test_cp_replaces_mutable_file_contents
 36.782  allmydata.test.test_mutable.Update.test_update_sdmf
 39.078
 allmydata.test.test_mutable.Update.test_replace_zero_length_segstart1
 39.738
 allmydata.test.test_mutable.Update.test_replace_zero_length_beginning
 41.237  allmydata.test.test_mutable.Update.test_replace_segstart1
 41.836  allmydata.test.test_mutable.Update.test_replace_in_last_segment
 41.930  allmydata.test.test_mutable.Update.test_multiple_segment_replace
 44.806  allmydata.test.test_mutable.Update.test_replace_middle
 45.171  allmydata.test.test_mutable.Update.test_replace_beginning
 45.277  allmydata.test.test_mutable.Update.test_append
 45.319  allmydata.test.test_mutable.Update.test_replace_and_extend
 47.602  allmydata.test.test_mutable.Update.test_replace_zero_length_middle
 48.479  allmydata.test.test_mutable.Update.test_append_power_of_two
 51.612  allmydata.test.test_sftp.Handler.test_openFile_write
 54.571  allmydata.test.test_dirnode.Dirnode.test_create_mdmf
 57.791  allmydata.test.test_dirnode.Dirnode.test_create
 88.997  allmydata.test.test_cli_cp.CopyOut.test_cp_out
 278.741
 allmydata.test.test_mutable.Update.test_replace_locations_max_shares
 top 30 tests take 1364.189 secs
 total: 692 tests take 2585.774 secs
 }}}

 Those 30 tests take over half the total runtime. The worst is
 `test_replace_locations_max_shares`, which takes 11% all by itself.

 Our fastest CI builder is a buildbot slave that runs on a linode instance,
 which finishes the entire test suite (without coverage) in 9 minutes. On
 that builder, `test_replace_locations_max_shares` is number 2 (taking 23
 seconds), and the other 5 slowests tests are all from
 `test_system.SystemTest`.

 The task for this ticket is to go through test_mutable and make it not
 take so long.

--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2800>
Tahoe-LAFS <https://Tahoe-LAFS.org>
secure decentralized storage


More information about the tahoe-lafs-trac-stream mailing list