Issue #16300 has been updated by Daniel Pittman. Status changed from Accepted to Merged - Pending Release Target version set to 3.0.0
---------------------------------------- Bug #16300: Acceptance test fails on Windows due to mintty https://projects.puppetlabs.com/issues/16300#change-70712 Author: Josh Cooper Status: Merged - Pending Release Priority: Normal Assignee: Category: Target version: 3.0.0 Affected Puppet version: Keywords: windows mintty pty Branch: When executing the acceptance test `ticket_11727_support_stdin_parsing_in_puppet_parser_validate.rb` on Windows, this step fails on windows: <pre> step "validate with a tty parses the default manifest" on agents, puppet('parser', 'validate'), :pty => true do </pre> The `pty` option causes the ssh client to request a pty to be allocated. This can be simulated as: <pre> $ ssh -t [email protected] "/cygdrive/c/ruby187/bin/ruby -e 'puts STDIN.tty?'" debug1: Entering interactive session. debug2: channel 0: request pty-req confirm 1 debug2: PTY allocation request accepted on channel 0 </pre> The cygwin sshd reports that it allocated a console. However, it executes the mintty terminal emulator, which does not provide a real windows console. See <http://code.google.com/p/mintty/issues/detail?id=56#c29>. So `IO#tty?` is always false when using mintty. This can be seen without ssh. From a local cmd.exe process, just execute `mintty.exe` and call ruby: <pre> C:\> mintty.exe $ mintty --version mintty 1.0.3 $ ruby --version ruby 1.8.7 (2011-02-18 patchlevel 334) [i386-mingw32] $ ruby -e "puts STDIN.tty?" false </pre> The reason for this is Ruby's `IO#tty?` method calls the `_isatty` function (in MS CRT), which only returns true if the file descriptor is associated with a character device (not a file, socket, named pipe, etc). See <http://msdn.microsoft.com/en-us/library/f4s0ddew.aspx>. Since mintty redirects terminal IO using named pipes, `IO#tty?` returns false. Other interesting links:<br> <https://groups.google.com/forum/#!topic/rubyinstaller/G6MWe1iyMao><br> <http://stackoverflow.com/questions/3648711/detect-nul-file-descriptor-isatty-is-bogus><br> <http://jira.codehaus.org/browse/JRUBY-5068> Also Microsoft's SUA includes a built in sshd server that provides ptys, but it has been deprecated starting with Windows 8. -- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://projects.puppetlabs.com/my/account -- You received this message because you are subscribed to the Google Groups "Puppet Bugs" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-bugs?hl=en.
