Skip to content
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

The agent keeps a reference to an instrumented function that prevents it from being garbage collected #317

Open
kgilpin opened this issue May 24, 2024 · 0 comments
Assignees
Labels
bug Something isn't working

Comments

@kgilpin
Copy link
Contributor

kgilpin commented May 24, 2024

https://github.com/pallets/flask

============================================================== FAILURES ==============================================================
__________________________________________________ test_app_freed_on_zero_refcount ___________________________________________________

    @require_cpython_gc
    def test_app_freed_on_zero_refcount():
        # A Flask instance should not create a reference cycle that prevents CPython
        # from freeing it when all external references to it are released (see #3761).
        gc.disable()
        try:
            app = flask.Flask(__name__)
            assert app.view_functions["static"]
            weak = weakref.ref(app)
            assert weak() is not None
            del app
>           assert weak() is None
E           AssertionError: assert <Flask 'test_basic'> is None
E            +  where <Flask 'test_basic'> = <weakref at 0x11b897b50; to 'Flask' at 0x11bcc5150>()

tests/test_basic.py:1888: AssertionError
--------------------------------------------------------- Captured log call ----------------------------------------------------------
INFO     _appmap.recording:recording.py:77 writing /Users/kgilpin/source/land-of-apps/pallets-flask/tmp/appmap/pytest/test_app_freed_on_zero_refcount.appmap.json
========================================================== warnings summary ==========================================================
venv/lib/python3.10/site-packages/_pytest/assertion/rewrite.py:274
  /Users/kgilpin/source/land-of-apps/pallets-flask/venv/lib/python3.10/site-packages/_pytest/assertion/rewrite.py:274: PytestAssertRewriteWarning: Module already imported so cannot be rewritten: _appmap
    self.config.issue_config_time_warning(

venv/lib/python3.10/site-packages/_pytest/assertion/rewrite.py:274
  /Users/kgilpin/source/land-of-apps/pallets-flask/venv/lib/python3.10/site-packages/_pytest/assertion/rewrite.py:274: PytestAssertRewriteWarning: Module already imported so cannot be rewritten: appmap
    self.config.issue_config_time_warning(

tests/test_basic.py::test_server_name_subdomain
  /Users/kgilpin/source/land-of-apps/pallets-flask/venv/lib/python3.10/site-packages/_appmap/instrument.py:92: UserWarning: Current server name 'foo.localhost' doesn't match configured server name 'dev.local'
    ret = f.fn(*args, **kwargs)

tests/test_basic.py::test_subdomain_matching_other_name[False]
tests/test_basic.py::test_subdomain_matching_other_name[True]
  /Users/kgilpin/source/land-of-apps/pallets-flask/venv/lib/python3.10/site-packages/_appmap/instrument.py:92: UserWarning: Current server name '127.0.0.1:3000' doesn't match configured server name 'localhost.localdomain:3000'
    ret = f.fn(*args, **kwargs)

tests/test_reqctx.py::test_proper_test_request_context
  /Users/kgilpin/source/land-of-apps/pallets-flask/venv/lib/python3.10/site-packages/_appmap/instrument.py:92: UserWarning: Current server name 'localhost' doesn't match configured server name 'localhost.localdomain:5000'
    ret = f.fn(*args, **kwargs)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
====================================================== short test summary info =======================================================
FAILED tests/test_basic.py::test_app_freed_on_zero_refcount - AssertionError: assert <Flask 'test_basic'> is None
================================== 1 failed, 469 passed, 7 skipped, 6 warnings in 85.70s (0:01:25) ===================================
@kgilpin kgilpin added the bug Something isn't working label May 24, 2024
@apotterri apotterri changed the title One test fails in pallets-flask and there is also one warning The agent keeps a reference to an instrumented function that prevents it from being garbage collected Jul 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants