code: def test_init_with_crashed_worker():
      max_episode_length = 16
      env = PointEnv()
      policy = FixedPolicy(
          env.spec,
          scripted_actions=[
              env.action_space.sample()
              for _ in range(max_episode_length)
          ],
      )
      tasks = SetTaskSampler(PointEnv)
      n_workers = 2
      workers = WorkerFactory(
          seed=100,
          max_episode_length=max_episode_length,
          n_workers=n_workers,
      )
  
      class CrashingPolicy:
          def reset(self, **kwargs):
              raise Exception("Intentional subprocess crash")
  
      bad_policy = CrashingPolicy()
  
      #  This causes worker 2 to crash.
      sampler = MultiprocessingSampler.from_worker_factory(
          workers, [policy, bad_policy], envs=tasks.sample(n_workers)
      )
      episodes = sampler.obtain_samples(0, 160, None)
      assert sum(episodes.lengths) >= 160
      sampler.shutdown_worker()
      env.close()
  
file_path: garage/tests/garage/sampler/test_multiprocessing_sampler.py
imports: import pickle
  from unittest.mock import Mock
  import numpy
  import pytest
  from garage.envs import PointEnv
  from garage.envs.grid_world_env import GridWorldEnv
  from garage.experiment.task_sampler import SetTaskSampler
  from garage.np.policies import FixedPolicy, ScriptedPolicy
  from garage.sampler import LocalSampler, MultiprocessingSampler, WorkerFactory
label_desc: Use image node_id 5 for calling a global function with example usage: test_init_with_crashed_worker() without return types