blag opened a new issue, #26186:
URL: https://github.com/apache/airflow/issues/26186

   ### Apache Airflow version
   
   main (development)
   
   ### What happened
   
   This happens in both iTerm 2 and the built-in Terminal.app in macOS when 
running ~breeze start-airflow~. `airflow db shell` when using postgres as a 
backend.
   
   Within `psql` (run via `airflow db shell`):
   
   * Scrollback editing (eg: hitting up arrow to edit a previous query) is 
messed up for multi-line queries. I don't have a better description. I recorded 
a video of what happens.
   * Some things require an additional keypress (eg: quitting the pager)
     - Some things, like ctrl+P to scrollback needing an additional keypress 
happen in a normal Docker environment. This is different and distinct from that.
   * SIGINT isn't registered when trying to cancel editing a query and reset 
the SQL prompt
   
   I suspect that there's a lot of interaction happening between 
iTerm/Terminal.app, ZSH, Python/Breeze, Bash, Docker, tmux, Python/Airflow CLI, 
and psql, and some keypresses are being filtered or queued along the way. So 
there are multiple fun rabbit holes to chase down to solve this.
   
   ### What you think should happen instead
   
   * Scrollback editing should work. Your text cursor should be in the correct 
place and the text should be rendered correctly.
   * An additional keypress to exit the pager should not be necessary
   * SIGINT should cancel editing the query and reset the edit line (eg: it 
should return to an empty SQL prompt: `airflow=#` instead of `airflow-#`)
   
   ### How to reproduce
   
   * Scrollback editing is messed up - indentation and text wrapping are 
off/wrong
     - This happens even when I don't adjust the tmux pane sizes at all
     - Example:
       + Run `breeze start-airflow` in a terminal 
       + Run `docker exec -it $CONTAINER_ID /bin/bash` with the breeze 
container that is running
       + Run `airflow db shell` within the container
       + Then this happens (note the up arrow keypresses aren't called out 
visually):
   
         
https://user-images.githubusercontent.com/597113/188750191-2b3e8ef3-ee89-4b2e-872d-1451807bdbc7.mov
   
   * Some things require an additional keypress
     Example:
     - Run a SQL query:
         ```
         airflow=# SELECT * FROM dag_schedule_dataset_reference
         ```
     - it displays in the pager
         ```
          dataset_id |        dag_id         |          created_at           |  
        updated_at
         
------------+-----------------------+-------------------------------+-------------------------------
                   3 | consumer_dag_2        | 2022-09-06 20:49:23.719275+00 | 
2022-09-06 20:49:23.719295+00
                   2 | consumer_dag_2        | 2022-09-06 20:49:23.7193+00   | 
2022-09-06 20:49:23.719302+00
                   4 | taskflow_consumer_dag | 2022-09-06 20:49:23.719305+00 | 
2022-09-06 20:49:23.719308+00
                   5 | taskflow_consumer_dag | 2022-09-06 20:49:23.719311+00 | 
2022-09-06 20:49:23.719313+00
                   6 | taskflow_consumer_dag | 2022-09-06 20:49:23.719316+00 | 
2022-09-06 20:49:23.719319+00
                   1 | consumer_dag_1        | 2022-09-06 20:49:23.719322+00 | 
2022-09-06 20:49:23.719324+00
         (6 rows)
         
         (END)
         ```
     - Usually you just hit `q` and it exits immediately, but the pager sticks 
around:
         ```
          dataset_id |        dag_id         |          created_at           |  
        updated_at
         
------------+-----------------------+-------------------------------+-------------------------------
                   3 | consumer_dag_2        | 2022-09-06 20:49:23.719275+00 | 
2022-09-06 20:49:23.719295+00
                   2 | consumer_dag_2        | 2022-09-06 20:49:23.7193+00   | 
2022-09-06 20:49:23.719302+00
                   4 | taskflow_consumer_dag | 2022-09-06 20:49:23.719305+00 | 
2022-09-06 20:49:23.719308+00
                   5 | taskflow_consumer_dag | 2022-09-06 20:49:23.719311+00 | 
2022-09-06 20:49:23.719313+00
                   6 | taskflow_consumer_dag | 2022-09-06 20:49:23.719316+00 | 
2022-09-06 20:49:23.719319+00
                   1 | consumer_dag_1        | 2022-09-06 20:49:23.719322+00 | 
2022-09-06 20:49:23.719324+00
         (6 rows)
         
         (END)
         ```
     - The `q` keypress is registered upon your next keypress, whatever that is 
(in this case, `6`). And the second keypress is echoed in the SQL editor:
         ```
         airflow=# SELECT * FROM dag_schedule_dataset_reference;
         airflow=# 6
         ```
   * SIGINT isn't registered to cancel editing a query
     Example:
     - Write a query:
         ```
         airflow=# SELECT * FROM dag_messedupspelling
         ```
     - Then try to cancel/reset it with Ctrl+C:
         ```
         airflow=# SELECT * FROM dag_messedupspelling
         airflow-#
         ```
         (nothing happens)
         In normal psql this will reset the query editor (you can tell because 
the `airflow-#` prompt changes back to `airflow=#`).
   
   
   ### Operating System
   
   macOS 11.6.8 Big Sur
   
   ### Versions of Apache Airflow Providers
   
   N/A
   
   ### Deployment
   
   Other Docker-based deployment
   
   ### Deployment details
   
   Breeze
   
   ### Anything else
   
   This happens every time.
   
   Apologies if this isn't the place to report Breeze issues.
   
   ### Are you willing to submit PR?
   
   - [ ] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [X] I agree to follow this project's [Code of 
Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to