From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Fri, 7 Feb 2025 15:18:57 +0000 (+0100) Subject: [3.13] gh-117657: Fix data race in `dict_dict_merge` (gh-129755) (gh-129808) X-Git-Tag: v3.13.3~304 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8a7146c5eb340aa5115a5baf61e4f74c589d440f;p=thirdparty%2FPython%2Fcpython.git [3.13] gh-117657: Fix data race in `dict_dict_merge` (gh-129755) (gh-129808) Found while running `test_load_attr_module` from `test_opcache` under TSan. (cherry picked from commit 34379d0a593e5a76e2f754cdd7fccb79f25a4613) Co-authored-by: Sam Gross --- diff --git a/Objects/dictobject.c b/Objects/dictobject.c index ff16a41b9a5d..f947b44b039e 100644 --- a/Objects/dictobject.c +++ b/Objects/dictobject.c @@ -3713,7 +3713,7 @@ dict_dict_merge(PyInterpreterState *interp, PyDictObject *mp, PyDictObject *othe ensure_shared_on_resize(mp); dictkeys_decref(interp, mp->ma_keys, IS_DICT_SHARED(mp)); - mp->ma_keys = keys; + set_keys(mp, keys); STORE_USED(mp, other->ma_used); mp->ma_version_tag = new_version; ASSERT_CONSISTENT(mp);