Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[supervisor] thread safe listening to terminals #3870

Merged
merged 1 commit into from
Apr 9, 2021

Conversation

akosyakov
Copy link
Member

@akosyakov akosyakov commented Apr 9, 2021

What it does

grpc is buffering messages to deal with back pressure, so we cannot reuse buffer to read data from the terminal.

How to test

Try ls -l may times (like 100 🤪 ) in some workspace with many files. It should produce the same result each time.

@akosyakov akosyakov marked this pull request as ready for review April 9, 2021 13:33
Copy link
Member

@AlexTugarev AlexTugarev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It works :-)

Just tried with top -c & holding space, which is an easy way to reproduce this issue.

@akosyakov akosyakov merged commit 8b9ce66 into main Apr 9, 2021
@akosyakov akosyakov deleted the ak/terminal_listen_thread_safe branch April 9, 2021 14:15
apolopena added a commit to apolopena/gitpod-laravel-starter that referenced this pull request Apr 12, 2021
apolopena added a commit to apolopena/gitpod-laravel-starter that referenced this pull request Apr 12, 2021
apolopena added a commit to apolopena/gitpod-laravel-starter that referenced this pull request Apr 26, 2021
* 🤖 TEST: force workspace image build

* 🐛 FIX: path to get_env_value'

* 🐛 FIX: path to get_env_value

* ⚰️ REMOVE: file associations hack for files with no extension

* ♻️ REFACTOR: location

* ⚰️ REMOVE: shellcheck

* ⚰️ REMOVE: commented out shellcheck extension

* ➕ ADD: alias to shellcheck .sh files

* 🐛 FIX: debconf (Dialog frontend will not work on a dumb terminal

* ✏️ FIX TYPO: missing install

* 🤖 TEST: quiet install of php-fpm

* 🤖 TEST: DEBIAN_FRONTEND=noninteractive to suppress debconf warnings

* 👌 IMPROVE: combined log file runs

* 🐛 FIX: start_apache path

* 🐛 FIX: debconf warning

* 🐛 FIX: debconf warning

* 🐛 FIX: debconf warning

* 🐛 FIX: exclude 1090,1091 from shellchecks

* 💡 UPDATE COMMENTS: force passing of shellcheck

* 🤖 TEST: passes shellcheck

* 🤖 TEST: passes schellcheck

* 🤖 TEST: changelog generator

* 🤖 TEST: force workspace image build

* 🐛 FIX: lint only scripts in .gp

* 👌 IMPROVE: best practice for setting root

* 🐛 FIX: #94 phpmyadmin wont display in an iframe

* 🐛 FIX: #94 phpmyadmin wont display in an iframe

* 🤖 TEST: fix for #95

* 🤖 TEST: fix for #95

* 🤖 TEST: fix for #95

* 🤖 TEST: fix 95 for spinner

* 🤖 TEST: fix 95 for spinner

* 🤖 TEST: fix 95 for spinner

* 🤖 TEST: fix 95 for spinner

* 🤖 TEST: fix 95 for spinner

* 🤖 TEST: fix 95 for spinner

* 🤖 TEST: fix 95 for spinner

* 👌 IMPROVE: display port number

* 🩹 TEMP FIX: revert to no color in spinner

* 👌 IMPROVE: clock spinner

* 👌 IMPROVE: dot spinner

* 👌 IMPROVE: speed

* 🤖 TEST: remove stop_spinner calls

* 🐛 FIX: added stop_spinner calls back in

* 👌 IMPROVE: added pipe spinner

* 👌 IMPROVE: back to dot spinner

* 🐛 FIX: #90 nginx server requires trailing slash for phpmyadmin url

* 👌 IMPROVE: port security

* 🐛 FIX: nginx to use .gp/conf/nginx.conf

* 🤖 TEST: force workspace image build

* 🐛 FIX: removed duplicate try_files for php locations

* 🤖 TEST: force workspace image build

* ⚰️ REMOVE: local nginx.conf load

* 🤖 TEST: force workspace image build

* 🐛 FIX: restore composer install phpmyadmin verbosity

* 🐛 FIX: spinner success DONE msg after successful phpmyadmin install

* 🐛 FIX: revert working version

* 🤖 TEST: force

* 🤖 TEST: no github-changelog-generator

* 🐛 FIX: phpmyadmin with or without trailing slash for phpmyadmin

* 🤖 TEST: force workspace

* 🐛 FIX: bad code

* 🐛 FIX: revert fix phpmyadmin install verbosity

* 🐛 FIX: revert to no phpmyadmin redirect for no traling slash

* 🐛 FIX: phpmyadmin verbose install

* 🤖 TEST: force workspace

* 🐛 FIX: ignore linter

* 🐛 FIX: spinner for phpmyadmin install

* 🐛 FIX: move root out of locations

* 🤖 TEST: force workspace

* 🐛 FIX: #90 and #96

* 🤖 TEST: force container build

* 🐛 FIX: silence gp output

* ⚰️ REMOVE: /dev/null for gp (didnt work)

* 📦 NEW: encapsulates preview logic

* 📦 NEW: encapsulate start server logic

* ♻️ REFACTOR: start server logic

* 🐛 FIX: help_update_pma_pws absolute path

* ➕ ADD:

* ➕ ADD: alias op, open or refreshes preview browser

* 🐛 FIX: workaround for failing gp open call, see #19

* 🐛 FIX: syntax for issue 19 workaround

* 🐛 FIX: hotfix workaround for #19

* 🐛 FIX: syntax

* 🐛 FIX: path to hotfix

* ➕ ADD: hotfix message

* 🐛 FIX: op absolute path

* 👌 IMPROVE: preview script can open path segments

* 🤖 TEST: force docker build

* 🐛 FIX: message

* 👌 IMPROVE: colorized message

* 🐛 FIX: aliases to ~/.bashrc.d

* 🤖 TEST: force docker build

* 🐛 FIX: try copy snippets to bashrc.d

* 🐛 FIX: removed line break

* 🐛 FIX: #98 and #93

* ✏️ FIX TYPO: missing $

* 🤖 TEST: force docker build

* 🐛 FIX: #99

* 🤖 TEST: fix #92

* 🤖 TEST: fix #92

* 🐛 FIX: symbolic link for xdebug php-fpm #92

* 🐛 FIX: missing sudo for #92

* ♻️ REFACTOR: moved xdebug conf to .gp/conf

* ♻️ REFACTOR: give nginx its own folder

* ♻️ REFACTOR: php-fpm moved to its own folder

* ♻️ REFACTOR: moved .editorconfig to .gp/config/editorconfig

* ♻️ REFACTOR: #98

* 🐛 FIX: path

* 📖 DOC: update pma pws aliase name

* ♻️ REFACTOR: pma pws alias names

* ⚰️ REMOVE: unused license header

* 🐛 FIX: nginx log monitor

* 🤖 TEST: force docker build

* 🐛 FIX: phpmyadmin log msg

* 👌 IMPROVE: support colorized pma pws help msg

* support colorized messages

* 🐛 FIX: #100 lint-starter-scripts has no success message

* 🤖 TEST: force docker build

* 🐛 FIX: shorten alias name to lint-starter

* 🤖 TEST: force docker build

* 🐛 FIX: swap shellcheck install from brew to apt-get

* 🤖 TEST: turn colors back on to test gitpod-io/gitpod#3870

* 🤖 TEST: turn off colors, issue remains gitpod-io/gitpod#3870

* 🤖 TEST: laravel 7

* 🤖 TEST: force docker build

* 🤖 TEST: laravel 6

* 🤖 TEST: force docker build

* 🤖 TEST: react

* 🤖 TEST: laravel 7

* 🤖 TEST: force docker

* 🤖 TEST: no react

* 🤖 TEST: laravel 5

* 👌 IMPROVE: #102 Make the version of Laravel configurable in starter.ini

* 🤖 TEST: force docker build

* 🤖 TEST: configure laravel to version 7.*

* 🐛 FIX: gitpod-laravel8-starter to gitpod-laravel-starter

* 🐛 FIX: make rsync scaffolding laravel version agnostic

* 🤖 TEST: force docker build

* 🐛 FIX: path to artisan

* 💡 UPDATE COMMENTS: rules for setting laravel version

* 🐛 FIX: wiring in #101 Support Laravel 5, 6 and 7

* 🤖 TEST: force docker build

* 🤖 TEST: react

* 💡 UPDATE COMMENTS: more rules for laravel version directive

* 🤖 TEST: laravel 6

* 💡 UPDATE COMMENTS: laravel version rules wording

* 🐛 FIX: handle cases for laravel major version set to 5 in starter.ini

* 🤖 TEST: force docker build

* 🐛 FIX: path to laravel-js-2space

* 🤖 TEST: laravel 5

* 🐛 FIX: warning color

* 🐛 FIX: log message for laravel 5 and front end scaffolding

* 🤖 TEST: vue

* 🤖 TEST: vue auth

* 🤖 TEST: laravel 5.5.*

* 🤖 TEST: force docker build

* 🤖 TEST: laravel 6

* 💡 UPDATE COMMENTS: log messages

* ♻️ REFACTOR: move auth directives to top level

* 👌 IMPROVE: #105 Provide a Vue EXAMPLE

* 🤖 TEST: no vue or vue auth

* 🤖 TEST: laravel 7.*

* 🤖 TEST: laravel 8.*

* 🤖 TEST: laravel 8.*

* 🤖 TEST: laravel 6.0.0

* 🐛 FIX: log msg for using laravel version out of range

* 🤖 TEST: #107

* ♻️ REFACTOR: drop support for Laravel 5

* 🐛 FIX: example initializes when it should be skipped

* 🐛 FIX: workaround trailing slash rewrite does not wotk in an iframe for nginx

* 🤖 TEST: laravel 8.*

* 🤖 TEST: force docker build

* 🤖 TEST: phpmyadmin

* 🤖 TEST: force docker build

* 🐛 FIX: phpmyadmin was ignored when not using an EXAMPLE

* 🤖 TEST: force

* 🐛 FIX: phpmyadmin was ignored when not using an EXAMPLE

* 🤖 TEST: force

* 🐛 FIX: abort with error msg if not run from the project root

* 💡 UPDATE COMMENTS: update  laravel version rules

* 🐛 FIX: pass linter

* 🐛 FIX: only allow laravel version values 6.* 7.* or 8.*

* 🤖 TEST: force

* 🤖 TEST: invalid laravel version

* ⚰️ REMOVE: test code

* 🤖 TEST: force

* ⚰️ REMOVE: invalid laravel version value

* 💡 UPDATE COMMENTS: typo

* 💡 UPDATE COMMENTS: END block

* 👌 IMPROVE: #109 allow_mixed_web starter.ini config

* 🐛 FIX: #109 allow_mixed_web starter.ini config

* 💡 UPDATE COMMENTS: fixed path

* 🐛 FIX: bypass allow-mixed-web injection if file has already been injected

* 🐛 FIX: add linebreak

* 🐛 FIX: pass dev qa for #109 allow_mixed_web directive in starter.ini

* 🐛 FIX: cases where frontend is already in vcs and case where exmaple is request but laravel is already installed

* 🐛 FIX: hook for laravel scaffolding in VCS

* 🐛 FIX: missing shebang

* 👌 IMPROVE: install npm ^7

* 🐛 FIX: log msg

* 🤖 TEST: laravel 7.*

* 🐛 FIX: update npm to ^7

* 🤖 TEST: laravel 6.*

* 🤖 TEST: force

* 🐛 FIX: powered by summary

* 🐛 FIX: pass linter and add woman technologist

* 🤖 TEST: no installs

* 🐛 FIX: #111

* 🤖 TEST: force

* ⚰️ REMOVE: extraneous message

* 🐛 FIX: laravel_version no longer uses starter.ini

* ♻️ REFACTOR: rename hotfix to hotfix #19

* 🐛 FIX: rolling in QAed changes from other branches

* 🐛 FIX: rolling in QAed changes from other branches

* 📖 DOC: #85 #97 #103

* ✏️ FIX TYPO: superseded to superceded

* ➕ ADD: missing code from QAed branch

* 🐛 FIX: revert to defaults

* ⚰️ REMOVE: extra linebreak

* ⚰️ REMOVE: extra space

* 🐛 FIX: gracefully handle laravel version mismatches

* ♻️ REFACTOR: rename hotfix19.sh to patch-preview.sh

* 🐛 FIX: change log message for successful laravel .env injection

* 🐛 FIX: update summary message

* 🐛 FIX: wording for summary

* 🐛 FIX: remove package-lock.json, this is a yarn based project

* ➕ ADD: success and error logs for instaling github-changelog-generator

* 🐛 FIX: notify user when vue install directive was found but intentionally skipped

* ✏️ FIX TYPO: missing the word is

* 🐛 FIX: change verbose short option from -v to -V

* ♻️ REFACTOR: move cleanup, re order tasks, edit comments

* 🐛 FIX: update comments and log message

* 💡 UPDATE COMMENTS: edit/add comments

* ➕ ADD: license URL

* ⚰️ REMOVE: extra linebreak

* 💡 UPDATE COMMENTS: edit wording

* 💡 UPDATE COMMENTS: edit/add wording

* 🐛 FIX: linebreaks in show_first_run_summary

* 🐛 FIX: missing logger

* 💡 UPDATE COMMENTS: edit/add wording

* ♻️ REFACTOR: show_powered_by: alternate vue version location for version >2

* 🐛 FIX: remove directive to configure vue version, too many edge cases to support

* 🤖 TEST: vue install when using laravel 6.*

* 🐛 FIX: install vue regardless of laravel version

* 🤖 TEST: restore defaults
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants