controlling tty issues in mock

Clark Williams clark.williams at gmail.com
Wed Apr 6 13:50:48 UTC 2011


All,

Mock has a problem setting up /dev/tty and /dev/ptmx in our build
chroots.  In a standard /dev setup on EL{5,6} and all our current
Fedora's, /dev/tty is a character device with major,minor == 5,0,
while /dev/ptmx is a character device with major,minor == 5,2. Both are
owned by root, group tty, mode 0666. It would follow that our chroots
should be setup the same way, but we're seeing test suite failures
inside the chroot where the build process hangs. 

An early attempt to fix this was where we symlinked /dev/tty
and /dev/ptmx to /dev/pts/ptmx (making them pty instances) but that
caused other failures. I have a suspicion that we need to do something
special to setup the controlling terminal in the chroot, I just don't
know what that "special something" is. 

The SRPMs that have proven troublesome are:

	perl-TermReadKey-2.30-9.fc13.src.rpm
	bash-4.1.2-5.el6.src.rpm
	Conn-1.0.32-1.src.rpm
	libssh2

I did some rough debugging for perl-TermReadKey, where I setup the
chroot with /dev/tty and /dev/ptmx as the character devices they should
be and when trying to build on F14 with the config fedora-14-x86_64,
the build hangs.  Attaching gdb to the perl program and getting a
partial backtrace shows that it's hung in tcsetattr() (TERMIOS(3)). I
looked at the generated C code and saw that there are two instances of
tcsetattr() in the code:

	if(DisableFlush || oldmode<=mode)
		tcsetattr(handle,TCSANOW,&work);
	else
		tcsetattr(handle,TCSAFLUSH,&work);

The C code is generated in the build process, so I wasn't able to easily
add any debug statements to this code and couldn't get the debuginfo
into gdb to refine the backtrace, but my guess is that we're hanging on
the TCSAFLUSH version. 

Anyone have any ideas on this?

Clark

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
Url : http://lists.fedoraproject.org/pipermail/buildsys/attachments/20110406/5003bf8b/attachment.bin 


More information about the buildsys mailing list