Commit Graph
72413 Commits
Author SHA1 Message Date
Nate Coraor 90a0df5d48 Fix the purge historyless HDAs pgcleanup action 2024-01-29 11:25:30 -05:00
Martin Cech d51d9413ee Merge pull request #17352 from guerler/fix_multiselect_order_23.2
[23.2] Always store multi select data input values in fixed order
2024-01-29 07:58:31 +01:00
Aysam Guerler a0bbd50e03 Merge pull request #32 from martenson/fix_multiselect_order_23.2
fix old test add new test
2024-01-27 01:40:06 +03:00
Martin Cech e5739e5a32 add a unit test for multifile input select sorting 2024-01-26 13:55:07 -08:00
Martin Cech 290c76af6e fix typo in formdata unit test 2024-01-26 13:14:45 -08:00
guerler 9784f5fdff Sort value in multiselect setter 2024-01-27 00:13:51 +03:00
Nate Coraor 34508cd782 Merge pull request #17350 from natefoo/posix-filesource-part
[23.2] Write to a temp filename in posix file source plugin
2024-01-25 10:03:49 -05:00
Nate Coraor add8b28efa Write to a temp filename in posix file source plugin 2024-01-24 15:08:18 -05:00
Martin Cech c078220950 Merge pull request #17341 from martenson/release-titles
[23.2] make release titles consistent
2024-01-23 21:24:37 +01:00
Martin Cech e9a7bdddca Merge branch 'release_23.2' into release-titles 2024-01-23 17:58:54 +01:00
Martin Cech 77d57ec98d Merge pull request #17344 from jdavcs/23.2_release_update1
[23.2] Ensure release notes include all PRs added during the freeze by re-running the release note bootstrapping
2024-01-23 16:06:32 +01:00
John Davis c4e3c9414f Merge pull request #17343 from davelopez/merge_23.1_into_23.2
Merge 23.1 into 23.2
2024-01-23 09:44:37 -05:00
John Davis c855b1e730 Add last PRs 2024-01-23 09:09:33 -05:00
John Davis 26fb60d215 Merge pull request #17342 from mvdbeek/isal_celery_export
[23.2] Use python-isal for fast zip deflate compression in rocrate export
2024-01-23 08:28:06 -05:00
davelopez df0b6391e0 Merge branch 'release_23.1' into 'release_23.2' 2024-01-23 13:00:22 +01:00
mvdbeek a3e70c6eb6 Only switch out compressor if deflate requested 2024-01-23 11:46:59 +01:00
mvdbeek a4b14be89e Work around no unused ignores 2024-01-23 11:35:14 +01:00
mvdbeek 7e9c02b75c Use python-isal for fast zip deflate compression in rocrate export 2024-01-23 11:16:26 +01:00
Martin Cech cdfc8eb841 rename title os the release documents
for consistency and better browser tab titles
2024-01-22 17:13:05 -08:00
Martin Cech e2ec5bcd3c Merge pull request #17259 from dannon/release_notes_23.2
[23.2] Initial release notes  for 23.2
2024-01-22 23:53:25 +01:00
John Davis 1cb3703450 Improve layout, remove (almost) redundant video 2024-01-22 16:30:48 -05:00
John Davis 4052b1bb93 Fix video embed links: Do not play videos from the same playlist 2024-01-22 15:36:43 -05:00
John Davis be47f4d9ca Add alt text to images in release notes 2024-01-22 15:18:13 -05:00
John Davis 1148df4544 Add videos to release notes 2024-01-22 15:11:43 -05:00
John Chilton 1fe37b099f Merge pull request #17337 from davelopez/23.1_fix_tag_edit_on_shared_pages
[23.1] Disable tag editing on non-owned Pages
2024-01-22 13:54:08 -05:00
davelopez d1eaff9b2d Disable tag editing on non-owned Pages 2024-01-22 16:39:38 +01:00
John Davis 582b850124 Add release notes highlights + admin notes to main announcement 2024-01-21 23:24:49 -05:00
John Davis 72b88850ab Add user release notes
TODO:
1. Add correct links to videos
2. Add image + video alt descriptions
2024-01-21 12:28:54 -05:00
Martin Cech 24dd9847de Merge pull request #17330 from ElectronicBlueberry/fix-workflow-id-reactivity-23-2
[23.2] Fix Subworkflow Edit Button
2024-01-20 01:57:50 +01:00
Björn Grüning f9ebc5bea2 Merge pull request #17326 from ElectronicBlueberry/embed-performance-23-2
[23.2] Improve Embed Performance
2024-01-19 19:33:20 +01:00
Laila Los 3dc6315b41 fix don't save new workflows twice 2024-01-19 11:44:38 +01:00
Laila Los 1fa3328a7e fix on navigate for new workflows 2024-01-19 11:39:48 +01:00
Laila Los 8506769a30 look for changes in both id and stored id for better reload control 2024-01-19 11:35:18 +01:00
Laila Los 064654d927 key the editor to reload it 2024-01-19 11:24:32 +01:00
Laila Los 95ad2ed3f3 do not mount helper components in embed mode 2024-01-18 16:35:11 +01:00
Laila Los cf0e14132e do not mount full galaxy when in embed mode 2024-01-18 16:35:11 +01:00
Marius van den Beek ac6fe733ad Merge pull request #17323 from galaxyproject/revert-15238-patch-13 2024-01-18 13:26:24 +01:00
Nuwan Goonasekera 61f3db22e4 Revert "[23.1] Enable job resubmissions in k8s runner" 2024-01-18 17:17:32 +05:30
Nuwan Goonasekera b4b1defdc5 Merge pull request #15238 from pcm32/patch-13
[23.2] Enable job resubmissions in k8s runner
2024-01-18 15:14:43 +05:30
John Davis 064360dab0 Merge pull request #17319 from mvdbeek/scope_out_monitor_loop
[23.2] Scope session for job  runner monitor loop
2024-01-17 13:31:40 -05:00
mvdbeek e55a09955b Scope session for job runner monitor loop
I think this is as closed as we can get to
```
try:
    <use session>
    session.commit()
except:
   session.rollback()
   raise
finally:
   session.close()  # optional, depends on use case
```
mentioned in https://docs.sqlalchemy.org/en/14/faq/sessions.html#this-session-s-transaction-has-been-rolled-back-due-to-a-previous-exception-during-flush-or-similar
2024-01-17 18:19:04 +01:00
John Davis b9ba44bc10 Merge pull request #17315 from mvdbeek/backport_23.2_pendingrollbackerror2
[23.2] Backport Rollback invalidated transaction: catch them earlier
2024-01-17 09:28:08 -05:00
Nate Coraor b3d31bf7d8 Merge pull request #17317 from mvdbeek/close_session_after_task
[23.2] Discard connection after task completion
2024-01-17 09:09:48 -05:00
mvdbeek ef26fc4685 Use MockApp instead of celery_injected_app_container
Sorry, I guess the idea was to not have to build a full MockApp ?
Realisitically all tasks access the database at this point.
I suppose we could make the decorators more specific if necessary ?
2024-01-17 12:45:20 +01:00
mvdbeek a88dbdd177 Discard connection after task completion
Running the test without removing the session yields:
```
celery.app.trace ERROR 2024-01-17 11:49:42,502 [pN:main,p:81158,tN:Thread-2 (start)] Task integration.test_celery_tasks.use_session[0f89df2c-4960-4aac-8e1a-ce431dae6749] raised unexpected: PendingRollbackError("Can't reconnect until invalid transaction is rolled back.")
Traceback (most recent call last):
  File "/Users/mvandenb/src/galaxy/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 477, in trace_task
    R = retval = fun(*args, **kwargs)
                 ^^^^^^^^^^^^^^^^^^^^
  File "/Users/mvandenb/src/galaxy/lib/galaxy/celery/__init__.py", line 181, in wrapper
    rval = app.magic_partial(func)(*args, **kwds)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/mvandenb/src/galaxy/.venv/lib/python3.11/site-packages/lagom/wrapping.py", line 28, in _bound_func
    return inner_func(*bound_args, **bound_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/mvandenb/src/galaxy/.venv/lib/python3.11/site-packages/lagom/wrapping.py", line 45, in _error_handling_func
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/Users/mvandenb/src/galaxy/test/integration/test_celery_tasks.py", line 42, in use_session
    sa_session().query(HistoryDatasetAssociation).get(1)
  File "<string>", line 2, in get
  File "/Users/mvandenb/src/galaxy/.venv/lib/python3.11/site-packages/sqlalchemy/util/deprecations.py", line 468, in warned
    return fn(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^
  File "/Users/mvandenb/src/galaxy/.venv/lib/python3.11/site-packages/sqlalchemy/orm/query.py", line 947, in get
    return self._get_impl(ident, loading.load_on_pk_identity)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/mvandenb/src/galaxy/.venv/lib/python3.11/site-packages/sqlalchemy/orm/query.py", line 951, in _get_impl
    return self.session._get_impl(
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/mvandenb/src/galaxy/.venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2975, in _get_impl
    return db_load_fn(
           ^^^^^^^^^^^
  File "/Users/mvandenb/src/galaxy/.venv/lib/python3.11/site-packages/sqlalchemy/orm/loading.py", line 530, in load_on_pk_identity
    session.execute(
  File "/Users/mvandenb/src/galaxy/.venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 1717, in execute
    result = conn._execute_20(statement, params or {}, execution_options)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/mvandenb/src/galaxy/.venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1710, in _execute_20
    return meth(self, args_10style, kwargs_10style, execution_options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/mvandenb/src/galaxy/.venv/lib/python3.11/site-packages/sqlalchemy/sql/elements.py", line 334, in _execute_on_connection
    return connection._execute_clauseelement(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/mvandenb/src/galaxy/.venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1577, in _execute_clauseelement
    ret = self._execute_context(
          ^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/mvandenb/src/galaxy/.venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1808, in _execute_context
    conn = self._revalidate_connection()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/mvandenb/src/galaxy/.venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 650, in _revalidate_connection
    self._invalid_transaction()
  File "/Users/mvandenb/src/galaxy/.venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 622, in _invalid_transaction
    raise exc.PendingRollbackError(
sqlalchemy.exc.PendingRollbackError: Can't reconnect until invalid transaction is rolled back. (Background on this error at: https://sqlalche.me/e/14/8s2b)
FAILEDINFO:     127.0.0.1:59776 - "GET /api/jobs?state=running HTTP/1.1" 200 OK
```

The fix here is to set a unique scope for the session registry.
This means that the task is guranteed to get a new, unshared session,
and this session gets removed after completing the task.

The docstring of session.remove says:
```
       This will first call :meth:`.Session.close` method
        on the current :class:`.Session`, which releases any existing
        transactional/connection resources still being held; transactions
        specifically are rolled back.  The :class:`.Session` is then
        discarded.   Upon next usage within the same scope,
        the :class:`.scoped_session` will produce a new
        :class:`.Session` object.
```
which I think is what we want after every celery task (for now, at least).
It might make sense to discard the session for any long-running task
that doesn't require database access in the future.

Fix scope
2024-01-17 12:41:43 +01:00
mvdbeek 8118f07d81 Merge branch 'release_23.1' into release_23.2 2024-01-17 10:57:25 +01:00
Marius van den Beek 5e6ad9a6b3 Merge pull request #17309 from mvdbeek/new_celery_23_2
[23.2] Install newer celery on python 3.8+
2024-01-17 10:56:59 +01:00
John Davis a4d0c33972 Remove redundant db connection check 2024-01-17 10:54:10 +01:00
John Davis 9bae0a06a4 Check db connection for invalid transactions in runner's monitor loop 2024-01-17 10:54:09 +01:00
Marius van den BeekandNicola Soranzo 6c42b169e9 Fix kombu version
Co-authored-by: Nicola Soranzo <nicola.soranzo@gmail.com>
2024-01-16 19:13:25 +01:00