Skip to content

Conversation

@jhtimmins
Copy link
Contributor

Update version to 2.1.1+astro.1

ashb and others added 30 commits May 17, 2021 18:25
Modal events are triggering twice. once, with an executionDate, and again without. Now the submit function will check that an executionDate exists before doing an action

(cherry picked from commit a73ba4b)
apache#15899)

And rather than only applying the filters for the current known remote
backends, I have applied the filter to the task handler "globally" so
that all task logs are filtered, even for custom remote back ends.

(cherry picked from commit 7ea1b84)
This was missed in apache#15781

Since "connexion" is Apache licensed, this is "not a blocker" for 2.1.0 as mentioned in https://www.apache.org/legal/release-policy.html#license-file

>When a package bundles code under several licenses, the LICENSE file MUST contain details of all these licenses. For each component which is not Apache licensed, details of the component MUST be appended to the LICENSE file. The component license itself MUST either be appended or else stored elsewhere in the package with a pointer to it from the LICENSE file, e.g. if the license is long.

As "connextion" is Apache 2 Licensed, this _might_ be OK.

(cherry picked from commit 180df03)
(cherry picked from commit 0c2848c)
Templates _shouldn't_ ever be taken from untrusted user input (and it's hard to
do so without just edit the dag file, at which point you can run whatever
python code you like _anyway_), but this is a reasonable safety measure just in
case someone does something "clever".

(cherry picked from commit 4295845)
…n multiprocessing (apache#15989)

Fixes apache#15938

multiprocessing.Pool is known to often become stuck. It causes celery_executor to hang randomly. This happens at least on Debian, Ubuntu using Python 3.8.7 and Python 3.8.10. The issue is reproducible by running test_send_tasks_to_celery_hang in this PR several times (with db backend set to something other than sqlite because sqlite disables some parallelization)

The issue goes away once switched to concurrent.futures.ProcessPoolExecutor. In python 3.6 and earlier, ProcessPoolExecutor has no initializer argument. Fortunately, it's not needed because reset_signal is no longer needed because the signal handler now checks if the current process is the parent.

(cherry picked from commit f75dd7a)
…e#15382)

closes: apache#14260
related: apache#9824

When clearing task across dags using ExternalTaskMarker the dag state of the external DagRun is not set to active. So cleared tasks in the external dag will not automatically start if the DagRun is a Failed or Succeeded state.

Two changes are made to fix the issue:

Make clear_task_instances set DagRuns' state to dag_run_state for all the affected DagRuns.
The filter for DagRun in clear_task_instances is fixed too. Previously, it made an assumption that execution_dates for all the dag_ids are the same, which is not always correct.
test_external_task_marker_clear_activate is added to make sure the fix does the right thing.

(cherry picked from commit 2bca8a5)
…he#16018)

Co-authored-by: Felipe Lolas <felipe.lolas@bci.cl>

Obtain tree_data object endpoint from meta.
closes: apache#16017

(cherry picked from commit c288957)
The GCSToLocalFilesystemOperator in Google Provider <=3.0.0 had wrong
import for apply_defaults. It used

`from airflow.sensors.base_sensor_operator import apply_defaults`

instead of

`from airflow.utils.decorators import apply_defaults`

When we removed apply_defaults in apache#15667, the base_sensor_operator
import was removed as well which made the GCSToLocalFilestystemOperator
stops working in 2.1.0

Fixes: apache#16035
(cherry picked from commit 0f8f66e)
…ache#16047)

It is possible that `exc_info` can be set, but contain no exception.

We shouldn't fail in this case, even if the output doesn't make sense as
shown by the test (the `NoneType: None` line is the exception being
logged.)

(cherry picked from commit 2f77633)
Although `Connection.password` being empty was guarded against, there
are other possible cases (such as an extra field) that wasn't guarded
against, which ended up with this in the logs:

    WARNING - ***-***-***-*** ***L***o***g***g***i***n***g*** ***e***r***r***o***r*** ***-***-***-***

Oops!

(cherry picked from commit 8814a59)
This commit adds an optimization where the recently modified files
(detected by mtime) will be parsed even though it has not reached
`min_file_process_interval`.

This way you can increase `[scheduler] min_file_process_interval` to
a higher value like `600` or so when you have large number of files to
avoid unnecessary reparsing if files haven't changed, while still making
sure that modified files are taken care of.

(cherry picked from commit add7490)
…che#16088)

There was a problem that when we initialized configuration, we've run
validate() which - among others - checkd if the connection is an `sqlite`
but when the SQLAlchemy connection was not configured via variable but
via secret manager, it has fallen back to secret_backend, which should
be configured via conf and initialized.
The problem is that the "conf" object is not yet created, because
the "validate()" method has not finished yet and
"initialize_configuration" has not yet returned.
This led to snake eating its own tail.

This PR defers the validate() method to after secret backends have
been initialized. The effect of it is that secret backends might
be initialized with configuration that is not valid, but there are
no real negative consequences of this.

Fixes: apache#16079
Fixes: apache#15685

starting

(cherry picked from commit 65519ab)
Although `Connection.password` being empty was guarded against, there
are other possible cases (such as an extra field) that wasn't guarded
against, which ended up with this in the logs:

    WARNING - ***-***-***-*** ***L***o***g***g***i***n***g*** ***e***r***r***o***r*** ***-***-***-***

Oops!

(cherry picked from commit 8814a59)
the totalwidth of the tree view will depend on the window size like before, but max out at 1200px

(cherry picked from commit f2aa9b5)
Rather than dying with an exception, catch it and warn about that,
asking users to report it to us.

Additionally handle the specific case where a file handle/IO object is
logged -- we definitely don't want to iterate over that!

(cherry picked from commit 57bd6fb)
Infinite pools: Make their `total_slots` be `inf` instead of `-1`

(cherry picked from commit 96f7643)
We should show the actual default/example value in the configuration
reference docs, not the templated values.

e.g. `{dag_id}` like you get in a generated airflow.cfg, not `{{dag_id}}
like is stored in the airflow.cfg template.

(cherry picked from commit cc3c13c)
- add `num_runs` as a meta field to add to the tree refresh request

(cherry picked from commit 6087a09)
ashb and others added 16 commits June 22, 2021 22:13
We don't need a way to specify _in_ setup.py that this should be
installed from a GitHub release -- it's never needed by users, and if
you are developing the theme you can install the custom version
yourself.

(The variable name is confusing too -- it wasn't pulling from git, but
from a published release on GitHub.)

Removing this just means one less thing to update.

(cherry picked from commit 129fc61)
…eleases

(cherry-picked from 80cd117)
(cherry picked from commit de223d7)
(cherry picked from commit 6300e35)
Istio service mesh is not compatible by default with Kubernetes Jobs.
The normal behavior is that a Job will be started, get an istio-proxy
sidecar attached to it via the istio mutating webhook, run until
completion, then the 'main' container in the pod stops, but istio-proxy
hangs around indefinitely. This change handles cleanly exiting the
Istio sidecar 'istio-proxy' when a Kubernetes Executor task completes.

(cherry picked from commit 84fa48f)
(cherry picked from commit 6ed59bf)
(cherry picked from commit ba60ede)
(cherry picked from commit 80ac218)
…running K8sPodOperator

(cherry picked from commit 569d32b)
(cherry picked from commit 280bcae)
fixes issue apache#15234.

As of now, TI success & failure endpoints are POST only and behave differently as per the "confirmed" flag. They either render a confirmation page or updates the TI states on the basis of that flag, something which is not a great design.

Also, as these endpoints are POST only, they throw a 404 error when someone clicks on the link received via email.

To fix the issue, extracting the rendering functionalities into a diff endpoint "/confirm" & keeping these endpoints as pure POST endpoints.
Mistakenly checking for the wrong args in TI success API. Introduced in PR apache#16233.
When a task fails in executor while still queued in scheduler, the executor reports
this failure but scheduler doesn't change the task state resulting in the task
being queued until the scheduler is restarted. This commit fixes it by ensuring
that when a task is reported to have failed in the executor, the task is failed
in scheduler
(cherry picked from commit 7432c4d)
(cherry picked from commit d87ab6d)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:dev-tools area:production-image Production image improvements and fixes

Projects

None yet

Development

Successfully merging this pull request may close these issues.