• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

dedis / onet
64%
master: 66%

Build:
Build:
LAST BUILD BRANCH: test_go_1_17
DEFAULT BRANCH: master
Repo Added 15 Dec 2016 01:50PM UTC
Files 59
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH issue305
branch: issue305
CHANGE BRANCH
x
Reset
  • issue305
  • 32bits_mode_505
  • 4to3
  • add_db_versions
  • add_nodename
  • add_servers_later
  • add_suite_to_app
  • add_user_interesting_gr
  • adding_more_buckets
  • adding_stable_script
  • adding_wait
  • adding_waitdone
  • allow_non_fqdn
  • app_tesht_33
  • backport_portscan_212
  • bcast_err_slice
  • better_cleanup_report
  • block_start
  • boltdb
  • boltdb-documentation
  • broadcast_233
  • bump_protobuf
  • byzgen_poc
  • cache_control_273
  • catch_print_errors
  • catch_print_errors_master
  • cgrigis-patch-1
  • changelog_132
  • channel_block_219
  • check_error
  • check_new_tls_handshake
  • check_treeMarshal
  • ciphersuite_579
  • cleaning_up
  • cleanup
  • cleanup_99
  • cleanup_comments
  • client_bandwidth
  • clienterrorcode_split
  • close_simulations
  • closeall_calming
  • closeall_panic
  • closeall_reduce
  • closeall_test_fail
  • complete_rw_114
  • config_30
  • config_error_simple
  • config_path
  • configure_max_packet_size
  • conode_server_73
  • context_counter_io
  • context_counter_io_1.2
  • cothority_ns_link
  • counterio
  • coveralls_cothority759
  • crux_modifications
  • crypto_delete_54
  • crypto_interfaces_579
  • ctrl_c_97
  • darwin
  • data_available_66
  • data_race_1828
  • debug_level
  • debugging_163
  • debugging_2_cothority764
  • debugging_cothority764
  • dependabot/go_modules/github.com/gorilla/websocket-1.4.1
  • deterlab_bn256
  • deterlab_nodes_140
  • deterlab_nodes_v1_140
  • dial_timeout
  • dispatch_err
  • dispatch_error_237
  • doc-merge
  • doc_macos_data
  • docs
  • documentation
  • documentation_12
  • el_to_ro
  • equal_testing
  • error-event
  • errorPlusV
  • error_return
  • find_tree_issue_2064
  • fix_106_crypto
  • fix_96
  • fix_cey_issue
  • fix_goreportcard
  • fix_graceful_17
  • fix_int
  • fix_log_error
  • fix_monitor_77
  • fix_panic_websocket
  • fix_protocol_creation
  • fix_public_api
  • fix_simulation_bandwidth
  • fix_travis_coding
  • fix_treestorage_closed
  • fl_generation_cothority_1538
  • flaky_protocolerror
  • generate_259
  • getid_id
  • getupd_fail
  • gh-189-input-validation
  • go114
  • go15
  • goback_dir_simul
  • gofmt_fixes
  • google-uuid
  • gopkg.in
  • handle_failure
  • help_testing
  • help_testing_byzgen
  • hostport
  • ignore_eof
  • ignore_eof_byzgen
  • ignore_hash
  • improve-simul
  • improve-simul-butthistimemuchbetter
  • improve_error_handling
  • improve_websocket_errors
  • improved_shutdown
  • ineiti-patch-1
  • infinite_loop_1851
  • infinite_loop_210
  • init_serveridentities
  • ipv6_919
  • is_rotation
  • issue1010
  • issue1326
  • issue230
  • issue271
  • issue274
  • issue277
  • issue277-v1
  • issue280
  • issue292
  • issue300
  • issue300bz
  • issue301
  • issue315
  • issue323
  • issue331
  • issue346
  • issue390
  • issue397
  • issue409
  • issue430
  • issue446
  • issue446x
  • issue468
  • issue485
  • issue501
  • issue509
  • issue583
  • issue601
  • issue604
  • issue657
  • issue940
  • issue_627
  • issue_631
  • json_error
  • keypair
  • kv1
  • kyber
  • kyber_pre4
  • leak_send_parallel
  • leaks
  • less_honeycomb
  • libtest_110
  • libtest_dbgrun
  • libtest_doc
  • libtest_improvements
  • libtest_search
  • libtest_suites
  • loadcothority
  • loadsave_cothority491
  • localhost
  • localhost_race_71
  • localhost_simulation_45
  • localtest_cleanup
  • log_aligning
  • log_aligning_master
  • log_defaults
  • log_indent
  • log_race
  • log_zero
  • logf_127
  • master
  • merge_byzgen_poc
  • merge_from_v1.0_88
  • merge_tree
  • messageProxyStore_loglvl
  • messageproxy
  • mininet_125
  • mininet_1604
  • mininet_85
  • mininet_cleanup
  • mininet_documentation_example
  • mininet_readme
  • mininet_usability
  • minor
  • mod
  • mod3
  • modinfo
  • modinfo2
  • monitor_multi_171
  • monitor_race_186
  • mutex_localtest
  • mutex_services
  • names_cothority690
  • nary_tree_with_root_242
  • navigation
  • nb
  • network_766
  • network_767
  • network_768
  • network_fix_id
  • network_fix_rest
  • network_main_722
  • network_proto_75
  • nil_dereference
  • no64
  • no_nb
  • no_panic
  • no_send_restrictions
  • nocerr
  • nodes_104
  • norand
  • norandsuite
  • novartime
  • nover
  • novgo
  • onet_server_cothority777
  • only-one-letter
  • output
  • overlay_cache_524
  • overlay_leak
  • p256
  • panic_resolved
  • parallel_close
  • parse_time
  • pass_test
  • pause
  • pending_messages_slowdown_482
  • port_and_print
  • prep_v2
  • prescript
  • print_ws_error_main
  • private_url
  • processor_panic_1934
  • protect_protocol_storage
  • proto_files
  • protocol_19
  • protocol_protect_storage_master
  • protocol_service_235
  • proxy-changes
  • race_165
  • race_197
  • race_41
  • racy_test
  • randseed
  • rate_control_273
  • realpath_181
  • rearrange_tree
  • rearrange_tree_v1
  • refuse_fake_server
  • register_all_bn
  • register_convenience
  • register_messages_190
  • registernewservce_cothority532
  • regression_248
  • regression_248_v1.2
  • reload_ssl_certificate
  • remove_bn256
  • remove_coveralls_copy
  • remove_global
  • remove_log_errfatal
  • remove_race
  • remove_race_bgpoc
  • remove_service_storage
  • remove_stable_makefile
  • rename_config_cothority773
  • rest_json
  • roottree_159
  • roster_concat
  • roster_id_fix
  • router_rxtx_93
  • runwait_err
  • runwait_parse
  • same_origin_35
  • same_origin_86
  • schnorr_signature_hash
  • sec
  • send_parallel_decoder
  • sendprotobufparallel
  • sendprotobufparallel-1
  • server_logging
  • service_aggregate
  • service_load_save_102
  • service_public_key
  • sha256_dbname
  • sim
  • sim_cleanup_error_567
  • simul_docu
  • simul_error_reporting
  • simul_measure_msg
  • simulate_with_redirect
  • simulation-processor-registration-fix
  • simulation_118
  • simulation_316
  • simulation_43
  • simulation_blocking_fix
  • simulation_error_48
  • simulation_server_measure_550
  • skipchain_register_function
  • small
  • sosp-omniledger
  • stable1.10
  • stable_without_goveralls
  • stat_bucket_543
  • status_734
  • status_log
  • status_revert
  • streaming
  • streaming-from-client
  • streaming_handler_close_554
  • subset
  • suite_deterlab
  • suite_first
  • test_closing_fixes
  • test_failure
  • test_go_1_17
  • test_skipchains
  • test_timeout
  • timeout-http-get
  • timeouts
  • tls
  • tmout
  • tracing
  • tracing_defaults
  • tracing_nounfold
  • travis_24
  • travis_race
  • travis_stable
  • treenil
  • treenode_closing
  • treenodeinstance_rx_481
  • trim_honeycomb_size
  • typo
  • ubuntu
  • update_mininet
  • updater_v1
  • url
  • use_goroutine_dispatcher
  • use_mktemp
  • uuid
  • uuidv1
  • v1.0
  • v1.0_fix_unknown_message
  • v1.0_merge
  • v1.2
  • v1_mininet_1604
  • v1_mininet_usability
  • v1_prescript
  • v1_update_170330
  • v2
  • v2.0.2
  • v2_merge
  • v2_preview
  • v3.0.0
  • v3.0.0-pre1
  • v3.0.0-pre2
  • v3.0.0-pre3
  • v3.0.0-pre4
  • v3.0.0-pre5
  • v3.0.1
  • v3.0.10
  • v3.0.11
  • v3.0.12
  • v3.0.13
  • v3.0.14
  • v3.0.15
  • v3.0.16
  • v3.0.17
  • v3.0.18
  • v3.0.19
  • v3.0.2
  • v3.0.20
  • v3.0.21
  • v3.0.22
  • v3.0.23
  • v3.0.24
  • v3.0.26
  • v3.0.28
  • v3.0.29
  • v3.0.3
  • v3.0.30
  • v3.0.31
  • v3.0.32
  • v3.0.33
  • v3.0.4
  • v3.0.5
  • v3.0.6
  • v3.0.7
  • v3.0.8
  • v3.0.9
  • v3.1.0
  • v3.1.1
  • v3.2.0
  • v3.2.1
  • v3.2.10
  • v3.2.2
  • v3.2.3
  • v3.2.4
  • v3.2.5
  • v3.2.6
  • v3.2.7
  • v3.2.8
  • v3.2.9
  • v4.0.0-pre1
  • v4_initial_commit
  • wait_processes
  • wait_some
  • warn_toml_wrong_1736
  • websock_url
  • websocket-update
  • winfix
  • wslog

pending completion
1376

push

travis-ci

jeffallen
Remove race condition in message dispatcher

Code of the form "if len(chan)==0 { send }" is racy because two
goroutines could observe len == 0, and then both try to send. One
will block when it expected to not do so. Replace with a select
to correctly implement the desired behavior that the two goroutines
end up not blocked, and the channel ends up with one value on it.

We have not seen any indication this is causing a bug, but
leaving racy code around is asking for trouble.

Also: Make a flaky test stop failing, since the thing it is
checking is not very important. When this test runs against the
"local" router, it never fails, indicating that this is
a benign race in the TCP implementation, not in our Router.

Fixes #305.

4525 of 7117 relevant lines covered (63.58%)

67.77 hits per line

Relevant lines Covered
Build:
Build:
7117 RELEVANT LINES 4525 COVERED LINES
67.77 HITS PER LINE
Source Files on issue305
  • List 0
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
1376 issue305 Remove race condition in message dispatcher Code of the form "if len(chan)==0 { send }" is racy because two goroutines could observe len == 0, and then both try to send. One will block when it expected to not do so. Replace with a select to corre... push 15 Feb 2018 07:41AM UTC jeffallen travis-ci pending completion  
See All Builds (2046)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc