Skip to content

flaky test: box-py/iproto.test.py (RuntimeError: dictionary changed size during iteration) #113

Open
@Totktonada

Description

@Totktonada
[011] box-py/iproto.test.py                                           
[011] Test.run() received the following error:
[011] Traceback (most recent call last):
[011]   File "/home/runner/work/tarantool/tarantool/test-run/lib/test.py", line 190, in run
[011]     self.execute(server)
[011]   File "/home/runner/work/tarantool/tarantool/test-run/lib/tarantool_server.py", line 405, in execute
[011]     exec(code, new_globals)
[011]   File "box-py/iproto.test.py", line 43, in <module>
[011]     for (k,v) in list(globals().items()):
[011] RuntimeError: dictionary changed size during iteration
[011] [ fail ]

https://github.com/tarantool/tarantool/runs/2280702426

I tried to reproduce it, but I didn't find a way.

There was quite similar problem in scipy, but the root of the problem remains unclear.

Some thoughts:

  • k and v are created in the global scope, so operations reordering (lazy evaluation of the list) may trigger this issue in theory. Does Python AOT compiler perform optimizations of this kind?
  • May GC cause a dictionary size shrink? (No?)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions