code: def _rpc(self, action, payload) -> Tuple[bytes, str]:
      data = orjson.dumps(payload)
      path = action_routes[action]
      port = self._backend_server_port
      resp = self._requests_session.post(
          f"http://localhost:{port}{path}", data=data
      )
      if resp.status_code >= 400:
          error_json = orjson.loads(resp.content)
          raise fatal_error_from_java_error_triplet(
              error_json["short"],
              error_json["expanded"],
              error_json["error_id"],
          )
      return resp.content, resp.headers.get("X-Hail-Timings", "")
  
imports: from typing import Mapping, Set, Tuple
  import abc
  import socket
  import socketserver
  import sys
  from threading import Thread
  import orjson
  import requests
  import py4j
  from py4j.java_gateway import JavaObject, JVMView
  import hail
  from hail.expr import construct_expr
  from hail.ir import JavaIR
  from hail.utils.java import FatalError, Env, scala_package_object
  from .backend import ActionTag, Backend, fatal_error_from_java_error_triplet
  from ..hail_logging import Logger
  import http.client
label_desc: Use image node_id 6 for calling the Py4JBackend obj's underlying member method code with example usage: obj._rpc(action, payload) and returns: resp,  resp