code: def _new_integrated_test_session(check_router_cleaned):
      from .deploy.oscar.tests.session import new_test_session
  
      sess = new_test_session(
          address="127.0.0.1",
          backend=MARS_CI_BACKEND,
          init_local=True,
          n_worker=2,
          default=True,
          timeout=300,
      )
      with option_context({"show_progress": False}):
          try:
              yield sess
          finally:
              try:
                  sess.stop_server(isolation=False)
              except concurrent.futures.TimeoutError:
                  Router.set_instance(None)
                  subprocesses = psutil.Process().children(
                      recursive=True
                  )
                  for proc in subprocesses:
                      proc.terminate()
                  for proc in subprocesses:
                      try:
                          proc.wait(1)
                      except (
                          psutil.TimeoutExpired,
                          psutil.NoSuchProcess,
                      ):
                          pass
                      try:
                          proc.kill()
                      except psutil.NoSuchProcess:
                          pass
  
imports: import concurrent.futures
  import os
  import subprocess
  import psutil
  import pytest
  from mars.config import option_context
  from mars.core.mode import is_kernel_mode, is_build_mode
  from mars.lib.aio.lru import clear_all_alru_caches
  from mars.oscar.backends.router import Router
  from mars.oscar.backends.ray.communication import RayServer
  from mars.utils import lazy_import
label_desc: Use image node_id 13 for calling a global function with example usage: _new_integrated_test_session(check_router_cleaned) without return types