code: def test_db_multi_client():
      with cleanup_subprocesses(strict=True):
          ip1 = InteractiveSubprocess(autostart=True)
          ip2 = InteractiveSubprocess(autostart=True)
          try:
              ip1.run_code(_start_db_snippet)
              ip2.run_code(_start_db_snippet)
              # only the first process that started mongodb should have it as a child
              assert MONGOD_EXE_NAME in get_child_process_names(
                  process=ip1.process
              )
              assert MONGOD_EXE_NAME not in get_child_process_names(
                  process=ip2.process
              )
              # ports should match
              assert ip1.run_code("db.port") == ip2.run_code("db.port")
              # DB should be reachable from both processes
              _check_db_connectivity(ip1)
              _check_db_connectivity(ip2)
              assert ip1.run_code(
                  _list_datasets_snippet
              ) == ip2.run_code(_list_datasets_snippet)
          finally:
              ip1.stop()
              ip2.stop()
  
imports: from contextlib import contextmanager
  import os
  import sys
  import time
  import unittest
  import psutil
  import requests
  import retrying
  import fiftyone
  import fiftyone.constants
  import fiftyone.core.service
  import fiftyone.service.util
label_desc: Use image node_id 12 for calling a global function with example usage: test_db_multi_client() without return types