code: def test_put_object_task_usage_slightly_below_limit_does_not_crash():
      with ray.init(
          num_cpus=1,
          object_store_memory=2 << 30,
          _system_config={
              "memory_monitor_refresh_ms": 50,
              "memory_usage_threshold": 0.98,
          },
      ):
          bytes_to_alloc = (
              get_additional_bytes_to_reach_memory_usage_pct(0.9)
          )
          print(bytes_to_alloc)
          ray.get(
              allocate_memory.options(max_retries=0).remote(
                  allocate_bytes=bytes_to_alloc,
              ),
              timeout=90,
          )
  
          entries = int((1 << 30) / 8)
          obj_ref = ray.put(np.random.rand(entries))
          ray.get(obj_ref)
  
          bytes_to_alloc = (
              get_additional_bytes_to_reach_memory_usage_pct(0.9)
          )
          print(bytes_to_alloc)
          ray.get(
              allocate_memory.options(max_retries=0).remote(
                  allocate_bytes=bytes_to_alloc,
              ),
              timeout=90,
          )
  
imports: from math import ceil
  import sys
  import time
  import pytest
  import ray
  from ray._private import ray_constants
  import ray._private.gcs_utils
  from ray._private.test_utils import wait_for_condition, raw_metrics
  import numpy
  from ray._private.utils import get_system_memory
  from ray._private.utils import get_used_memory
  from ray._private.state_api_test_utils import verify_failed_task
  from ray.util.state.state_manager import StateDataSourceClient
label_desc: Use image node_id 16 for calling a global function with example usage: test_put_object_task_usage_slightly_below_limit_does_not_crash() without return types