Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • pypy pypy
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 654
    • Issues 654
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 13
    • Merge requests 13
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • PyPy
  • pypypypy
  • Issues
  • #3578

Closed
Open
Created Oct 21, 2021 by Oliver Margetts@olliemathDeveloper

Weakref behaviour differs from that of cpython

The following passes under cpython3.8, but fails under pypy3.7 and pypy3.8:

from weakref import ref

class Test:
    pass

test = Test()
r = ref(test)
test = None

assert r() is None, f"{r()} is not None"

In particular, this is the root cause of this concurrent futures error: #3317 (closed)

If you add a gc.collect() before the assertion, all is well. So I'm guessing it's something to do with the difference between the garbage collection strategies?

Edited Oct 22, 2021 by Oliver Margetts
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking