-
-
Notifications
You must be signed in to change notification settings - Fork 101
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
potential pypy mutability bug #620
Comments
Looks like we have pypy running on the CI. So, if you could make a PR with the test reproducing the issue, that would be great. |
hey apologies @Dreamsorcerer for the delayed response, I made a PR here #627. Still waiting on CI, also not sure if I'm supposed to add a changelog entry for just adding a test. Thanks! |
I'm not really familiar with the code, but this appears to be an explicit check: I suspect one option would be to reset the version at the beginning of that |
* add pypy test * Lint * Fix #620: Don't raise 'Dictionary changed during iteration' when the error should not be raised Co-authored-by: iscai-msft <[email protected]> Co-authored-by: Sam Bull <[email protected]>
-License-Update: Delete the description of the license and use the license address instead. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 5.2.0 (2021-10-03) ===================== Features -------- - 1. Added support Python 3.10 2. Started shipping platform-specific wheels with the ``musl`` tag targeting typical Alpine Linux runtimes. 3. Started shipping platform-specific arm64 wheels for Apple Silicon. (`openembedded#629 <https://github.com/aio-libs/multidict/issues/629>`_) Bugfixes -------- - Fixed pure-python implementation that used to raise "Dictionary changed during iteration" error when iterated view (``.keys()``, ``.values()`` or ``.items()``) was created before the dictionary's content change. (`openembedded#620 <https://github.com/aio-libs/multidict/issues/620>`_) Signed-off-by: Zang Ruochen <[email protected]> Signed-off-by: Khem Raj <[email protected]>
-License-Update: Delete the description of the license and use the license address instead. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 5.2.0 (2021-10-03) ===================== Features -------- - 1. Added support Python 3.10 2. Started shipping platform-specific wheels with the ``musl`` tag targeting typical Alpine Linux runtimes. 3. Started shipping platform-specific arm64 wheels for Apple Silicon. (`openembedded#629 <https://github.com/aio-libs/multidict/issues/629>`_) Bugfixes -------- - Fixed pure-python implementation that used to raise "Dictionary changed during iteration" error when iterated view (``.keys()``, ``.values()`` or ``.items()``) was created before the dictionary's content change. (`openembedded#620 <https://github.com/aio-libs/multidict/issues/620>`_) Signed-off-by: Zang Ruochen <[email protected]> Signed-off-by: Khem Raj <[email protected]>
-License-Update: Delete the description of the license and use the license address instead. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 5.2.0 (2021-10-03) ===================== Features -------- - 1. Added support Python 3.10 2. Started shipping platform-specific wheels with the ``musl`` tag targeting typical Alpine Linux runtimes. 3. Started shipping platform-specific arm64 wheels for Apple Silicon. (`openembedded#629 <https://github.com/aio-libs/multidict/issues/629>`_) Bugfixes -------- - Fixed pure-python implementation that used to raise "Dictionary changed during iteration" error when iterated view (``.keys()``, ``.values()`` or ``.items()``) was created before the dictionary's content change. (`openembedded#620 <https://github.com/aio-libs/multidict/issues/620>`_) Signed-off-by: Zang Ruochen <[email protected]> Signed-off-by: Khem Raj <[email protected]>
-License-Update: Delete the description of the license and use the license address instead. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 5.2.0 (2021-10-03) ===================== Features -------- - 1. Added support Python 3.10 2. Started shipping platform-specific wheels with the ``musl`` tag targeting typical Alpine Linux runtimes. 3. Started shipping platform-specific arm64 wheels for Apple Silicon. (`openembedded#629 <https://github.com/aio-libs/multidict/issues/629>`_) Bugfixes -------- - Fixed pure-python implementation that used to raise "Dictionary changed during iteration" error when iterated view (``.keys()``, ``.values()`` or ``.items()``) was created before the dictionary's content change. (`openembedded#620 <https://github.com/aio-libs/multidict/issues/620>`_) Signed-off-by: Zang Ruochen <[email protected]> Signed-off-by: Khem Raj <[email protected]>
-License-Update: Delete the description of the license and use the license address instead. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 5.2.0 (2021-10-03) ===================== Features -------- - 1. Added support Python 3.10 2. Started shipping platform-specific wheels with the ``musl`` tag targeting typical Alpine Linux runtimes. 3. Started shipping platform-specific arm64 wheels for Apple Silicon. (`openembedded#629 <https://github.com/aio-libs/multidict/issues/629>`_) Bugfixes -------- - Fixed pure-python implementation that used to raise "Dictionary changed during iteration" error when iterated view (``.keys()``, ``.values()`` or ``.items()``) was created before the dictionary's content change. (`openembedded#620 <https://github.com/aio-libs/multidict/issues/620>`_) Signed-off-by: Zang Ruochen <[email protected]> Signed-off-by: Khem Raj <[email protected]>
-License-Update: Delete the description of the license and use the license address instead. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 5.2.0 (2021-10-03) ===================== Features -------- - 1. Added support Python 3.10 2. Started shipping platform-specific wheels with the ``musl`` tag targeting typical Alpine Linux runtimes. 3. Started shipping platform-specific arm64 wheels for Apple Silicon. (`openembedded#629 <https://github.com/aio-libs/multidict/issues/629>`_) Bugfixes -------- - Fixed pure-python implementation that used to raise "Dictionary changed during iteration" error when iterated view (``.keys()``, ``.values()`` or ``.items()``) was created before the dictionary's content change. (`openembedded#620 <https://github.com/aio-libs/multidict/issues/620>`_) Signed-off-by: Zang Ruochen <[email protected]> Signed-off-by: Khem Raj <[email protected]>
-License-Update: Delete the description of the license and use the license address instead. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 5.2.0 (2021-10-03) ===================== Features -------- - 1. Added support Python 3.10 2. Started shipping platform-specific wheels with the ``musl`` tag targeting typical Alpine Linux runtimes. 3. Started shipping platform-specific arm64 wheels for Apple Silicon. (`openembedded#629 <https://github.com/aio-libs/multidict/issues/629>`_) Bugfixes -------- - Fixed pure-python implementation that used to raise "Dictionary changed during iteration" error when iterated view (``.keys()``, ``.values()`` or ``.items()``) was created before the dictionary's content change. (`openembedded#620 <https://github.com/aio-libs/multidict/issues/620>`_) Signed-off-by: Zang Ruochen <[email protected]> Signed-off-by: Khem Raj <[email protected]>
-License-Update: Delete the description of the license and use the license address instead. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 5.2.0 (2021-10-03) ===================== Features -------- - 1. Added support Python 3.10 2. Started shipping platform-specific wheels with the ``musl`` tag targeting typical Alpine Linux runtimes. 3. Started shipping platform-specific arm64 wheels for Apple Silicon. (`openembedded#629 <https://github.com/aio-libs/multidict/issues/629>`_) Bugfixes -------- - Fixed pure-python implementation that used to raise "Dictionary changed during iteration" error when iterated view (``.keys()``, ``.values()`` or ``.items()``) was created before the dictionary's content change. (`openembedded#620 <https://github.com/aio-libs/multidict/issues/620>`_) Signed-off-by: Zang Ruochen <[email protected]> Signed-off-by: Khem Raj <[email protected]>
-License-Update: Delete the description of the license and use the license address instead. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 5.2.0 (2021-10-03) ===================== Features -------- - 1. Added support Python 3.10 2. Started shipping platform-specific wheels with the ``musl`` tag targeting typical Alpine Linux runtimes. 3. Started shipping platform-specific arm64 wheels for Apple Silicon. (`#629 <https://github.com/aio-libs/multidict/issues/629>`_) Bugfixes -------- - Fixed pure-python implementation that used to raise "Dictionary changed during iteration" error when iterated view (``.keys()``, ``.values()`` or ``.items()``) was created before the dictionary's content change. (`#620 <https://github.com/aio-libs/multidict/issues/620>`_) Signed-off-by: Zang Ruochen <[email protected]> Signed-off-by: Khem Raj <[email protected]> Signed-off-by: Trevor Gamblin <[email protected]>
-License-Update: Delete the description of the license and use the license address instead. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 5.2.0 (2021-10-03) ===================== Features -------- - 1. Added support Python 3.10 2. Started shipping platform-specific wheels with the ``musl`` tag targeting typical Alpine Linux runtimes. 3. Started shipping platform-specific arm64 wheels for Apple Silicon. (`#629 <https://github.com/aio-libs/multidict/issues/629>`_) Bugfixes -------- - Fixed pure-python implementation that used to raise "Dictionary changed during iteration" error when iterated view (``.keys()``, ``.values()`` or ``.items()``) was created before the dictionary's content change. (`#620 <https://github.com/aio-libs/multidict/issues/620>`_) Signed-off-by: Zang Ruochen <[email protected]> Signed-off-by: Khem Raj <[email protected]> Signed-off-by: Trevor Gamblin <[email protected]>
-License-Update: Delete the description of the license and use the license address instead. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 5.2.0 (2021-10-03) ===================== Features -------- - 1. Added support Python 3.10 2. Started shipping platform-specific wheels with the ``musl`` tag targeting typical Alpine Linux runtimes. 3. Started shipping platform-specific arm64 wheels for Apple Silicon. (`#629 <https://github.com/aio-libs/multidict/issues/629>`_) Bugfixes -------- - Fixed pure-python implementation that used to raise "Dictionary changed during iteration" error when iterated view (``.keys()``, ``.values()`` or ``.items()``) was created before the dictionary's content change. (`#620 <https://github.com/aio-libs/multidict/issues/620>`_) Signed-off-by: Zang Ruochen <[email protected]> Signed-off-by: Khem Raj <[email protected]> Signed-off-by: Trevor Gamblin <[email protected]>
Describe the bug
when using
pypy
and mutating aCIMultiDict
, I get aRuntimeError
of"Dictionary changed during iteration"
. This doesn't happen using regular python, and I don't see this error when usingpypy
and other kinds of dictionaries.To Reproduce
I've added the following tests to repro with
pypy
Expected behavior
My thinking is that if mutating the dictionary doesn't raise for regular python is that it shouldn't raise for
pypy
. Is this expected behavior?Logs/tracebacks
Python Version
aiohttp Version
multidict Version
yarl Version
OS
macOS
Related component
Client
Additional context
No response
Code of Conduct
The text was updated successfully, but these errors were encountered: