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

   ### Apache Airflow version
   
   2.3.3 (latest released)
   
   ### What happened
   
   As the title states, if you have dynamically mapped tasks inside of a 
`TaskGroup`, those tasks do not get the `group_id` prepended to their 
respective `task_id`s.  This causes at least a couple of undesirable side 
effects:
   
   1. Task names are truncated in Grid/Graph* View.  The tasks below are named 
`plus_one` and `plus_two`:
   
   ![Screenshot from 2022-07-19 
13-29-05](https://user-images.githubusercontent.com/7269927/179826453-a4293c14-2a83-4739-acf2-8b378e4e85e9.png)
   ![Screenshot from 2022-07-19 
13-47-47](https://user-images.githubusercontent.com/7269927/179826442-b9e3d24d-52ff-49fc-a8cc-fe1cb5143bcb.png)
   
   Presumably this is because the UI normally strips off the `group_id` prefix.
   
   \* Graph View was very inconsistent in my experience.  Sometimes the names 
are truncated, and sometimes they render correctly.  I haven't figured out the 
pattern behind this behavior.
   
   2. Duplicate `task_id`s between groups result in a 
`airflow.exceptions.DuplicateTaskIdFound`, even if the `group_id` would 
normally disambiguate them.
   
   
   ### What you think should happen instead
   
   These dynamic tasks inside of a group should have the `group_id` prepended 
for consistent behavior.
   
   ### How to reproduce
   
   ```
   #!/usr/bin/env python3
   import datetime
   
   from airflow.decorators import dag, task
   from airflow.utils.task_group import TaskGroup
   
   
   @dag(
       start_date=datetime.datetime(2022, 7, 19),
       schedule_interval=None,
   )
   def test_dag():
       with TaskGroup(group_id='group'):
           @task
           def plus_one(x: int):
               return x + 1
   
           plus_one.expand(x=[1, 2, 3])
   
       with TaskGroup(group_id='ggg'):
           @task
           def plus_two(x: int):
               return x + 2
   
           plus_two.expand(x=[1, 2, 3])
   
   
   dag = test_dag()
   
   
   if __name__ == '__main__':
       dag.cli()
   ```
   
   ### Operating System
   
   CentOS Stream 8
   
   ### Versions of Apache Airflow Providers
   
   N/A
   
   ### Deployment
   
   Other
   
   ### Deployment details
   
   Standalone
   
   ### Anything else
   
   Possibly related: #12309
   
   ### 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