This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: "can't create master tty" errors


On Tue, Mar 09, 2010 at 08:50:38PM +0000, Andy Koppe wrote:
> Cesar Crusius:
> > I am using Cygwin and SSH to do automated remote builds using Visual
> > C++. It works for a few days, but invariably things start failing with
> > messages like these (this one from a build log):
> >
> > Makefile:9: MakePID: 5964
> > ? ? ?1 [main] env 2748 C:\cygwin\bin\env.exe: *** fatal error - can't create master tty
> 
> The number of tty devices is limited, so the first thing to check is
> whether your build system simply leaves too many sessions open, by
> checking the output of 'ps'.
> 
> If not, it might be to do with the following. If you open a couple of
> terminals, they're assigned  tty0 and tty1. If you then close tty1 and
> open another terminal, that again becomes tty1. But if you close tty0,
> and open yet another one, that becomes tty2 rather than tty0.
> 
> That appears to be the general rule: a new terminal gets the next ID
> above the current highest one. This means, however, that if opening
> and closing of terminal sessions is interleaved in certain ways,
> Cygwin might eventually run out of terminal IDs, even if only few of
> them are actually used. High numbers in the TTY column of the 'ps'
> output would point to that.
> 
> Cgf, am I talking rubbish here?
> 
> Andy
> 

There are never many processes running at a time by the build system
account (or any other account). If the second option really describes
the algorithm, then it is probably what is happening, and why it takes a
few days for the problem to manifest itself.

I'm trying to reproduce it, though, and here's what I am getting

ssh me@build -> exit -> ssh build@build -> exit -> ...

This loop always gives me SSH_TTY=/dev/tty0, so it seems tty0 is getting
reused. (ps -eaW currently reports max(TTY)=2).

If I ssh as two users at the same time, one got tty0, the other tty3.
Still, exiting and ssh'ing back again still gives me tty0...

- Cesar

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]