Mercurial > kallithea
annotate dev_requirements.txt @ 8925:ee1da602b590 stable
repo_groups: fix deletion of subgroups
Deletion of a repository group that has a parent group (i.e. is not at the
root of the repository group tree) failed as follows:
Traceback (most recent call last):
[...]
File ".../lib/python3.9/site-packages/tg/configurator/components/dispatch.py", line 114, in _call_controller
return controller(*remainder, **params)
File "<decorator-gen-5>", line 2, in delete
File "/home/tdescham/repo/contrib/kallithea/kallithea-release/kallithea/lib/auth.py", line 572, in __wrapper
return func(*fargs, **fkwargs)
File "/home/tdescham/repo/contrib/kallithea/kallithea-release/kallithea/controllers/admin/repo_groups.py", line 271, in delete
if gr.parent_group:
File ".../lib/python3.9/site-packages/sqlalchemy/orm/attributes.py", line 294, in __get__
return self.impl.get(instance_state(instance), dict_)
File ".../lib/python3.9/site-packages/sqlalchemy/orm/attributes.py", line 730, in get
value = self.callable_(state, passive)
File ".../lib/python3.9/site-packages/sqlalchemy/orm/strategies.py", line 717, in _load_for_state
raise orm_exc.DetachedInstanceError(
sqlalchemy.orm.exc.DetachedInstanceError: Parent instance <RepoGroup at 0x7f1f2664f4c0> is not bound to a Session; lazy load operation of attribute 'parent_group' cannot proceed (Background on this error at: http://sqlalche.me/e/13/bhk3)
In the reference 'gr.parent_group', 'gr' is an SQLAlchemy object referring
to the group being deleted, and 'gr.parent_group' is a lazy reference to its
parent group. The 'lazy' means that the parent group object is not loaded
automatically when 'gr' is assigned, but instead will be loaded on-the-fly
when the parent group is actually accessed. See [1] and [2] for more
information.
The problem was that the lazy 'parent_group' attribute was accessed _after_
deleting the database object it was part of.
Fix this by obtaining a handle to the parent group _before_ deleting the
subgroup.
Reported-by: André Klitzing (via mailing list)
[1] https://docs.sqlalchemy.org/en/13/errors.html#error-bhk3
[2] https://docs.sqlalchemy.org/en/13/orm/loading_relationships.html
author | Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> |
---|---|
date | Wed, 01 Sep 2021 22:08:45 +0200 |
parents | 5f4a108eed54 |
children | 33f1faa7fe04 |
rev | line source |
---|---|
8914
5f4a108eed54
setup: support Pytest 6.2 for Python 3.10 support
Mads Kiilerich <mads@kiilerich.com>
parents:
8599
diff
changeset
|
1 pytest >= 4.6.6, < 6.3 |
7900
4dad662fe6fd
dev_requirements.txt: bump minimum pytest versions to a working set
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7810
diff
changeset
|
2 pytest-sugar >= 0.9.2, < 0.10 |
4dad662fe6fd
dev_requirements.txt: bump minimum pytest versions to a working set
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7810
diff
changeset
|
3 pytest-benchmark >= 3.2.2, < 3.3 |
4dad662fe6fd
dev_requirements.txt: bump minimum pytest versions to a working set
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7810
diff
changeset
|
4 pytest-localserver >= 0.5.0, < 0.6 |
8228
d122a9532630
setup: bump version numbers to current max
Mads Kiilerich <mads@kiilerich.com>
parents:
8137
diff
changeset
|
5 mock >= 3.0.0, < 4.1 |
8557
42312c8d070d
setup: bump version numbers to current max
Mads Kiilerich <mads@kiilerich.com>
parents:
8240
diff
changeset
|
6 Sphinx >= 1.8.0, < 3.1 |
8137
268c47a1a93d
setup: bump webtest minimum version to 2.0.6 to get py3 stdlib support
Mads Kiilerich <mads@kiilerich.com>
parents:
7929
diff
changeset
|
7 WebTest >= 2.0.6, < 2.1 |
8599
68eee0e7f4f5
isort: upgrade to 5.1.2
Mads Kiilerich <mads@kiilerich.com>
parents:
8557
diff
changeset
|
8 isort == 5.1.2 |
8557
42312c8d070d
setup: bump version numbers to current max
Mads Kiilerich <mads@kiilerich.com>
parents:
8240
diff
changeset
|
9 pyflakes == 2.2.0 |