BasPH opened a new pull request #20318:
URL: https://github.com/apache/airflow/pull/20318


   Encountered a nasty bug where somebody basically implemented their own 
KubernetesPodSensor, which failed after more than one attempt when using 
mode="poke" + a volume + a secret.
   
   Root cause turned out to be in `secret.attach_to_pod()`. In here, a volume 
and volumemount is created to mount the secret. A deepcopy() is made of the 
given Pod spec. In order to avoid appending to None, there is this line: 
`cp_pod.spec.volumes = pod.spec.volumes or []`. In case a volume is set on the 
Pod spec, a reference is created to the original pod spec volumes, which in 
turn was a reference to `self.volumes`. As a result, each secret resulted in a 
volume added to `self.volumes`, which resulted in an error when running the 
sensor a second time because the secret volume was already mounted during the 
first sensor attempt.
   
   This PR references the deepcopied object instead, and creates a new list if 
pod.spec.volumes is None.
   
   <!--
   Thank you for contributing! Please make sure that your code changes
   are covered with tests. And in case of new features or big changes
   remember to adjust the documentation.
   
   Feel free to ping committers for the review!
   
   In case of existing issue, reference it using one of the following:
   
   closes: #ISSUE
   related: #ISSUE
   
   How to write a good git commit message:
   http://chris.beams.io/posts/git-commit/
   -->
   
   ---
   **^ Add meaningful description above**
   
   Read the **[Pull Request 
Guidelines](https://github.com/apache/airflow/blob/main/CONTRIBUTING.rst#pull-request-guidelines)**
 for more information.
   In case of fundamental code change, Airflow Improvement Proposal 
([AIP](https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow+Improvements+Proposals))
 is needed.
   In case of a new dependency, check compliance with the [ASF 3rd Party 
License Policy](https://www.apache.org/legal/resolved.html#category-x).
   In case of backwards incompatible changes please leave a note in 
[UPDATING.md](https://github.com/apache/airflow/blob/main/UPDATING.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