2022-12-02T18:56:51.919760Z [error ] [Errno 32] Broken pipe ╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮ │ /Users/stephen.hazeltine/Documents/Projects/meltano/meltano_venv_2/lib/python3.8/site-packages/m │ │ eltano/core/logging/output_logger.py:201 in redirect_logging │ │ │ │ 198 │ │ │ *ignore_errors, │ │ 199 │ │ ) │ │ 200 │ │ try: │ │ ❱ 201 │ │ │ yield │ │ 202 │ │ except ignored_errors: # noqa: WPS329 │ │ 203 │ │ │ raise │ │ 204 │ │ except Exception as err: │ │ │ │ ╭──────────────────────────────────── locals ─────────────────────────────────────╮ │ │ │ err = BrokenPipeError(32, 'Broken pipe') │ │ │ │ ignore_errors = (,) │ │ │ │ ignored_errors = ( │ │ │ │ │ , │ │ │ │ │ , │ │ │ │ │ │ │ │ │ ) │ │ │ │ logger = │ │ │ │ self = │ │ │ ╰─────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /Users/stephen.hazeltine/Documents/Projects/meltano/meltano_venv_2/lib/python3.8/site-packages/m │ │ eltano/cli/elt.py:257 in _redirect_output │ │ │ │ 254 │ with meltano_stdout.redirect_logging(ignore_errors=(CliError,)): │ │ 255 │ │ async with meltano_stdout.redirect_stdout(), meltano_stderr.redirect_stderr(): │ │ 256 │ │ │ try: │ │ ❱ 257 │ │ │ │ yield │ │ 258 │ │ │ except CliError as err: │ │ 259 │ │ │ │ err.print() │ │ 260 │ │ │ │ raise │ │ │ │ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ log = , │ │ │ │ , │ │ │ │ , │ │ │ │ , , ])> │ │ │ │ meltano_stderr = │ │ │ │ meltano_stdout = │ │ │ │ output_logger = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /Users/stephen.hazeltine/Documents/Projects/meltano/meltano_venv_2/lib/python3.8/site-packages/m │ │ eltano/cli/elt.py:278 in _run_elt │ │ │ │ 275 │ │ │ if elt_context.only_transform: │ │ 276 │ │ │ │ log.info("Extract & load skipped.") │ │ 277 │ │ │ else: │ │ ❱ 278 │ │ │ │ await _run_extract_load(log, elt_context, output_logger) │ │ 279 │ │ │ │ │ 280 │ │ │ if elt_context.transformer: │ │ 281 │ │ │ │ await _run_transform(log, elt_context, output_logger) │ │ │ │ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ context_builder = │ │ │ │ elt_context = │ │ │ │ log = , │ │ │ │ , │ │ │ │ , │ │ │ │ , , ])> │ │ │ │ output_logger = │ │ │ │ tracker = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /Users/stephen.hazeltine/Documents/Projects/meltano/meltano_venv_2/lib/python3.8/site-packages/m │ │ eltano/cli/elt.py:333 in _run_extract_load │ │ │ │ 330 │ try: │ │ 331 │ │ with extractor_log.line_writer() as extractor_log_writer, loader_log.line_writer │ │ 332 │ │ │ with extractor_out_writer_ctxmgr() as extractor_out_writer, loader_out_write │ │ ❱ 333 │ │ │ │ await singer_runner.run( │ │ 334 │ │ │ │ │ **kwargs, │ │ 335 │ │ │ │ │ extractor_log=extractor_log_writer, │ │ 336 │ │ │ │ │ loader_log=loader_log_writer, │ │ │ │ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ elt_context = │ │ │ │ extractor = 'tap-workramp' │ │ │ │ extractor_log = │ │ │ │ extractor_log_writer = │ │ │ │ extractor_out_writer = None │ │ │ │ extractor_out_writer_ctxmgr = │ │ │ │ kwargs = {} │ │ │ │ loader = 'target-bigquery' │ │ │ │ loader_log = │ │ │ │ loader_log_writer = │ │ │ │ loader_out_writer = None │ │ │ │ loader_out_writer_ctxmgr = │ │ │ │ log = , │ │ │ │ , , , , │ │ │ │ ])> │ │ │ │ output_logger = │ │ │ │ singer_runner = │ │ │ │ stderr_log = , , , │ │ │ │ , , │ │ │ │ ])> │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /Users/stephen.hazeltine/Documents/Projects/meltano/meltano_venv_2/lib/python3.8/site-packages/m │ │ eltano/core/runner/singer.py:220 in run │ │ │ │ 217 │ │ │ │ 218 │ │ async with tap.prepared(self.context.session): │ │ 219 │ │ │ async with target.prepared(self.context.session): │ │ ❱ 220 │ │ │ │ await self.invoke( │ │ 221 │ │ │ │ │ tap, │ │ 222 │ │ │ │ │ target, │ │ 223 │ │ │ │ │ extractor_log=extractor_log, │ │ │ │ ╭─────────────────────────────────────── locals ────────────────────────────────────────╮ │ │ │ extractor_log = │ │ │ │ extractor_out = None │ │ │ │ loader_log = │ │ │ │ loader_out = None │ │ │ │ self = │ │ │ │ tap = │ │ │ │ target = │ │ │ ╰───────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /Users/stephen.hazeltine/Documents/Projects/meltano/meltano_venv_2/lib/python3.8/site-packages/m │ │ eltano/core/runner/singer.py:148 in invoke │ │ │ │ 145 │ │ │ │ │ ) │ │ 146 │ │ │ │ │ │ 147 │ │ │ │ failed_future = output_futures_failed.pop() │ │ ❱ 148 │ │ │ │ raise failed_future.exception() │ │ 149 │ │ │ else: │ │ 150 │ │ │ │ # If all of the output handlers completed without raising an exception, │ │ 151 │ │ │ │ # we still need to wait for the tap or target to complete. │ │ │ │ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ _ = { │ │ │ │ │ ()]>> │ │ │ │ } │ │ │ │ done = { │ │ │ │ │ result=None>, │ │ │ │ result=None>, }, {()]>>})>, │ │ │ │ │ │ │ │ │ } │ │ │ │ extractor_log = │ │ │ │ extractor_out = None │ │ │ │ failed_future = │ │ │ │ line_length_limit = 5242880 │ │ │ │ loader_log = │ │ │ │ loader_out = None │ │ │ │ output_exception_future = result=None>, │ │ │ │ result=None>, }, {()]>>})> │ │ │ │ output_futures_done = { │ │ │ │ │ , │ │ │ │ │ , │ │ │ │ │ │ │ │ │ } │ │ │ │ output_futures_failed = [] │ │ │ │ p_tap = │ │ │ │ p_target = │ │ │ │ self = │ │ │ │ stream_buffer_size = 10485760 │ │ │ │ tap = │ │ │ │ tap_outputs = [ │ │ │ │ │ > │ │ │ │ ] │ │ │ │ tap_process_future = ()]>> │ │ │ │ tap_stderr_future = ()]>> │ │ │ │ tap_stdout_future = │ │ │ │ target = │ │ │ │ target_outputs = [ │ │ │ │ │ │ │ │ │ ] │ │ │ │ target_process_future = │ │ │ │ target_stderr_future = │ │ │ │ target_stdout_future = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /Users/stephen.hazeltine/Documents/Projects/meltano/meltano_venv_2/lib/python3.8/site-packages/m │ │ eltano/core/logging/utils.py:240 in capture_subprocess_output │ │ │ │ 237 │ │ │ continue │ │ 238 │ │ │ │ 239 │ │ for writer in line_writers: │ │ ❱ 240 │ │ │ if not await _write_line_writer(writer, line): │ │ 241 │ │ │ │ # If the destination stream is closed, we can stop capturing output. │ │ 242 │ │ │ │ return │ │ 243 │ │ │ │ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ line = b'{"type": "RECORD", "stream": "path_assignments", "record": {"id": │ │ │ │ "d509845c-f93b'+338 │ │ │ │ line_writers = (>,) │ │ │ │ reader = > │ │ │ │ writer = > │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /Users/stephen.hazeltine/Documents/Projects/meltano/meltano_venv_2/lib/python3.8/site-packages/m │ │ eltano/core/logging/utils.py:209 in _write_line_writer │ │ │ │ 206 │ │ │ await writer.drain() │ │ 207 │ │ except (BrokenPipeError, ConnectionResetError): │ │ 208 │ │ │ with suppress(AttributeError): # `wait_closed` is Python 3.7+ │ │ ❱ 209 │ │ │ │ await writer.wait_closed() │ │ 210 │ │ │ │ │ 211 │ │ │ return False │ │ 212 │ else: │ │ │ │ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ line = b'{"type": "RECORD", "stream": "path_assignments", "record": {"id": │ │ │ │ "d509845c-f93b'+338 │ │ │ │ writer = > │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/asyncio/streams.py:359 in │ │ wait_closed │ │ │ │ 356 │ │ return self._transport.is_closing() │ │ 357 │ │ │ 358 │ async def wait_closed(self): │ │ ❱ 359 │ │ await self._protocol._get_close_waiter(self) │ │ 360 │ │ │ 361 │ def get_extra_info(self, name, default=None): │ │ 362 │ │ return self._transport.get_extra_info(name, default) │ │ │ │ ╭─────────────────────────────────── locals ────────────────────────────────────╮ │ │ │ self = > │ │ │ ╰───────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /Users/stephen.hazeltine/Documents/Projects/meltano/meltano_venv_2/lib/python3.8/site-packages/m │ │ eltano/core/logging/utils.py:206 in _write_line_writer │ │ │ │ 203 │ if isinstance(writer, asyncio.StreamWriter): │ │ 204 │ │ try: # noqa: WPS229 │ │ 205 │ │ │ writer.write(line) │ │ ❱ 206 │ │ │ await writer.drain() │ │ 207 │ │ except (BrokenPipeError, ConnectionResetError): │ │ 208 │ │ │ with suppress(AttributeError): # `wait_closed` is Python 3.7+ │ │ 209 │ │ │ │ await writer.wait_closed() │ │ │ │ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ line = b'{"type": "RECORD", "stream": "path_assignments", "record": {"id": │ │ │ │ "d509845c-f93b'+338 │ │ │ │ writer = > │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/asyncio/streams.py:387 in drain │ │ │ │ 384 │ │ │ # in a loop would never call connection_lost(), so it │ │ 385 │ │ │ # would not see an error when the socket is closed. │ │ 386 │ │ │ await sleep(0) │ │ ❱ 387 │ │ await self._protocol._drain_helper() │ │ 388 │ │ 389 │ │ 390 class StreamReader: │ │ │ │ ╭─────────────────────────────────── locals ────────────────────────────────────╮ │ │ │ self = > │ │ │ ╰───────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/asyncio/streams.py:197 in │ │ _drain_helper │ │ │ │ 194 │ │ assert waiter is None or waiter.cancelled() │ │ 195 │ │ waiter = self._loop.create_future() │ │ 196 │ │ self._drain_waiter = waiter │ │ ❱ 197 │ │ await waiter │ │ 198 │ │ │ 199 │ def _get_close_waiter(self, stream): │ │ 200 │ │ raise NotImplementedError │ │ │ │ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ self = > stdout=> stderr=>> │ │ │ │ waiter = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/asyncio/unix_events.py:687 in │ │ _write_ready │ │ │ │ 684 │ │ assert self._buffer, 'Data should not be empty' │ │ 685 │ │ │ │ 686 │ │ try: │ │ ❱ 687 │ │ │ n = os.write(self._fileno, self._buffer) │ │ 688 │ │ except (BlockingIOError, InterruptedError): │ │ 689 │ │ │ pass │ │ 690 │ │ except (SystemExit, KeyboardInterrupt): │ │ │ │ ╭─────────────────────── locals ───────────────────────╮ │ │ │ self = <_UnixWritePipeTransport closed fd=18 closed> │ │ │ ╰──────────────────────────────────────────────────────╯ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ BrokenPipeError: [Errno 32] Broken pipe