Skip to content
Snippets Groups Projects
  • Michael Anthony Knyszek's avatar
    b877f04e
    crypto/tls: add scheduler call to TestCertCache refcount timeout loop · b877f04e
    Michael Anthony Knyszek authored
    Currently TestCertCache will busy loop waiting for a cleanup (in the
    runtime.AddCleanup sense) to execute. If we ever get into this busy
    loop, then on single-threaded platforms like js/wasm, we'll end up
    _always_ timing out.
    
    This doesn't happen right now because we're getting lucky. The finalizer
    goroutine is scheduled into the runnext slot with 'ready' and is thus
    scheduled immediately after the GC call. In a follow-up CL, scheduling
    cleanup goroutines becomes less aggressive, and thus this test fails.
    
    Although perhaps that CL should schedule cleanup goroutines more
    aggressively, the test is still technically buggy, because it expects
    busy loops like this to call into the scheduler, but that won't happen
    on certain platforms.
    
    Change-Id: I8efe5975be97f4314aec1c8c6e9e22f396be9c94
    Reviewed-on: https://go-review.googlesource.com/c/go/+/670755
    
    
    Auto-Submit: Michael Knyszek <mknyszek@google.com>
    Reviewed-by: default avatarRoland Shoemaker <roland@golang.org>
    Reviewed-by: default avatarMichael Pratt <mpratt@google.com>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    b877f04e
    History
    crypto/tls: add scheduler call to TestCertCache refcount timeout loop
    Michael Anthony Knyszek authored
    Currently TestCertCache will busy loop waiting for a cleanup (in the
    runtime.AddCleanup sense) to execute. If we ever get into this busy
    loop, then on single-threaded platforms like js/wasm, we'll end up
    _always_ timing out.
    
    This doesn't happen right now because we're getting lucky. The finalizer
    goroutine is scheduled into the runnext slot with 'ready' and is thus
    scheduled immediately after the GC call. In a follow-up CL, scheduling
    cleanup goroutines becomes less aggressive, and thus this test fails.
    
    Although perhaps that CL should schedule cleanup goroutines more
    aggressively, the test is still technically buggy, because it expects
    busy loops like this to call into the scheduler, but that won't happen
    on certain platforms.
    
    Change-Id: I8efe5975be97f4314aec1c8c6e9e22f396be9c94
    Reviewed-on: https://go-review.googlesource.com/c/go/+/670755
    
    
    Auto-Submit: Michael Knyszek <mknyszek@google.com>
    Reviewed-by: default avatarRoland Shoemaker <roland@golang.org>
    Reviewed-by: default avatarMichael Pratt <mpratt@google.com>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Code owners
Assign users and groups as approvers for specific file changes. Learn more.