docstr: Test exception handler in process pool 
docstr_tok: ["Test","exception","handler","in","process","pool"]
code: def test_exception_in_worker_process(self):
      """Test exception handler in process pool"""
  
      # NOTE: The process pool has a problem that if the workers are throwing exceptions, their
      # zmq sockets will be closed and there is some race condition that can cause the ventilate
      # to raise an exception. Only ventilating a single time guarantees that it will be properly
      # sent to a worker before it has exited due to an exception
      pool = ProcessPool(2)
      self._test_exception_in_worker_impl(pool, 1)
      pool.stop()
      pool.join()
  
imports: import time
  import unittest
  import numpy
  from multiprocessing import Process, Manager
  from psutil import pid_exists
  from petastorm.workers_pool import EmptyResultError
  from petastorm.workers_pool.dummy_pool import DummyPool
  from petastorm.workers_pool.process_pool import ProcessPool
  from petastorm.workers_pool.tests.stub_workers import CoeffMultiplierWorker, WorkerIdGeneratingWorker, WorkerMultiIdGeneratingWorker, SleepyWorkerIdGeneratingWorker, ExceptionGeneratingWorker_5, PreprogrammedReturnValueWorker
  from petastorm.workers_pool.thread_pool import ThreadPool
label_desc: Use image node_id 18 for calling the TestWorkersPool obj's underlying member method code with example usage: obj.test_exception_in_worker_process() without return types