sagikazarmark / modern-go-application

Modern Go Application example
MIT License
1.83k stars 175 forks source link

Bump github.com/cloudflare/tableflip from 1.2.0 to 1.2.1 #151

Closed dependabot[bot] closed 3 years ago

dependabot[bot] commented 3 years ago

Bumps github.com/cloudflare/tableflip from 1.2.0 to 1.2.1.

Release notes

Sourced from github.com/cloudflare/tableflip's releases.

Fix clearing O_NONBLOCK on upgrade

The Go runtime has annoying behaviour around setting and clearing O_NONBLOCK: exec.Cmd.Start() ends up calling os.File.Fd() for any file in exec.Cmd.ExtraFiles. os.File.Fd() disables both the use of the runtime poller for the file and clears O_NONBLOCK from the underlying open file descriptor.

This can lead to goroutines hanging in a parent process, after at least one failed upgrade. The bug manifests by goroutines which rely on either a deadline or interruption via Close() to be unblocked being stuck in read or accept like syscalls,. As far as I can tell we've not experienced this problem in production, so it's most likely quite rare.

Commits
  • cae714b ensure that inherited files are nonblocking
  • 57f992b require Go 1.14
  • 5f43f42 remove go 1.12 compatibility
  • 4b4e680 migrate to github actions
  • 77aba94 Refactor some methods to take advantage of the new *WithCallback methods
  • 40abd35 Allow opening connection with callbacks
  • 4baec98 Add ListenConfig as Option to Upgrader
  • See full diff in compare view


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/sagikazarmark/modern-go-application/network/alerts).