Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Native error codes are masked in PowerShell pipelines on Unix-like platforms #8419

Copy link
Copy link
@mklement0

Description

@mklement0
Issue body actions

On Unix-like platforms, with SIGPIPE signals being ignored, as in Ruby, writing to a broken pipe (a pipe whose reader process has since terminated) returns standard error code EPIPE.

However, it seems that in PowerShell - unlike in POSIX-like shells such as bash - the error code is not relayed to the writing process.

Steps to reproduce

Write 100,000 lines via Ruby, but cause the pipe to break via head -n 1 exiting after having received the 1st input line:

ruby -e '(1..1e5).each do |i| puts i end' | head -n 1

Expected behavior

1
-e:1:in `write': Broken pipe @ io_write - <STDOUT> (Errno::EPIPE)
	from -e:1:in `puts'
	from -e:1:in `puts'
	from -e:1:in `block in <main>'
	from -e:1:in `each'
	from -e:1:in `<main>'

Actual behavior

1

That is, the Ruby code never saw the EPIPE standard error code that results from writing to a broken pipe while SIGPIPE signals are being ignored.

PowerShell Core v6.2.0-preview.2 on macOS 10.14.1
PowerShell Core v6.2.0-preview.2 on Ubuntu 18.04.1 LTS
Reactions are currently unavailable

Metadata

Metadata

Assignees

No one assigned

    Labels

    Resolution-No ActivityIssue has had no activity for 6 months or moreIssue has had no activity for 6 months or moreWG-Enginecore PowerShell engine, interpreter, and runtimecore PowerShell engine, interpreter, and runtime

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Morty Proxy This is a proxified and sanitized view of the page, visit original site.