On Sun, 10 Oct 2021 08:41:55 +0200 Niels Thykier <ni...@thykier.net> wrote: > On Thu, 23 Sep 2021 00:43:50 +0000 Jelmer Vernooij <jel...@debian.org> > wrote: > > Package: python3-debian > > Version: 0.1.41 > > Severity: normal > > > > Modifying a deb822 file while iterating over it results in a RuntimeError: > > > > ... > > File > > "/home/jelmer/src/debian-janitor/python-debian/lib/debian/_deb822_repro/parsing.py", > > line 2208, in iter_keys > > yield from self._kvpair_elements > > RuntimeError: dictionary keys changed during iteration > > > > (This doesn't happen with the default deb822 implementation) > > > > [...] > > > Hi, > > Can you provide the code snippet that triggers this bug? > > As I understand it, this is "normal" for a dict depending on the exact > usage, which is why I would like to see what you were doing when you > triggered the bug. :) > > Example with dict: > > >>>> d = {'a': 1, 'b': 2} > >>>> for e in d: > > ... if d[e] == 2: > > ... d['z'] = 1 > > ... > > Traceback (most recent call last): > > File "<stdin>", line 1, in <module> > > RuntimeError: dictionary changed size during iteration > >>>> for e in d: > > ... d[e] = 2 > > ... > >>>> > > > Thanks, > ~Niels > >
Thinking some more about, this *might* be fixed as a side effect of: https://salsa.debian.org/python-debian-team/python-debian/-/merge_requests/69/diffs?commit_id=2832d2fc306b10f56ff910e6e1cf990ccdb9e9b4 (but it is hard to tell for sure without the concrete code you were using) Feel free to cherry-pick that commit out of the branch/MR if you need it. :) Thanks, ~Niels