GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — Segfault in _pickle.c:batch_list_exact when pickling list with concurrent mutation (free-threading) · Issue #146533 · python/cpython Closed as duplicate Closed as duplicate Copy link DescriptionBug reportBug descriptionSame class of bug as gh-146452 but in the list pickling path. Found while working on the dict fix in gh-146452 — checked the list path and it has the same pattern. Reproducerimport pickle import threading shared = list(range(200)) for trial in range(2000): barrier = threading.Barrier(4) def dumper(): try: barrier.wait() pickle.dumps(shared) except Exception: pass def mutator(): try: barrier.wait() for j in range(500): shared.append([j] * 20) if len(shared) > 100: shared.clear() shared.extend(range(50)) except Exception: pass threads = [ threading.Thread(target=dumper), threading.Thread(target=dumper), threading.Thread(target=mutator), threading.Thread(target=mutator), ] for t in threads: t.start() for t in threads: t.join() Tested on3.14.0a4 free-threading (stock install, no sanitizers): 3.15.0a7+ free-threading (built with --with-address-sanitizer): Root cause
Possible fixSame helper function approach as gh-146452 — wrap CPython versions tested on3.14, CPython main branch Operating systems tested onLinux Activity
MetadataMetadataAssigneesLabelsNo labels ProjectsMilestoneRelationshipsDevelopmentIssue actions |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |