Issue #22104: Don't hold a reference to the loaded TestSuite in runtest_inner
diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
index c1c831f..b633631 100755
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -1273,8 +1273,10 @@
             # tests.  If not, use normal unittest test loading.
             test_runner = getattr(the_module, "test_main", None)
             if test_runner is None:
-                tests = unittest.TestLoader().loadTestsFromModule(the_module)
-                test_runner = lambda: support.run_unittest(tests)
+                def test_runner():
+                    loader = unittest.TestLoader()
+                    tests = loader.loadTestsFromModule(the_module)
+                    support.run_unittest(tests)
             test_runner()
             if huntrleaks:
                 refleak = dash_R(the_module, test, test_runner, huntrleaks)
diff --git a/Misc/NEWS b/Misc/NEWS
index b554afd..21b5ffa 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -239,6 +239,9 @@
 Tests
 -----
 
+- Issue #22104: regrtest.py no longer holds a reference to the suite of tests
+  loaded from test modules that don't define test_main().
+
 - Issue #22002: Added ``load_package_tests`` function to test.support and used
   it to implement/augment test discovery in test_asyncio, test_email,
   test_importlib, test_json, and test_tools.