Bug #3809
closedRecent libc change breaks Solaris 10 Branded Zone Support
80%
Description
Hi,
This is a brief bug report, but basically after rebooting onto a newer SmartOS image, it is no longer possible to run Solaris 10 branded zones:
root ~ (so1-12.ixlon1): zlogin c1bd276d-291f-4bfc-bae9-0e0e36b9b18e [Connected to zone 'c1bd276d-291f-4bfc-bae9-0e0e36b9b18e' pts/7] Last login: Thu May 16 22:37:40 on pts/10 -bash: cannot make pipe for command substitution: Invalid argument -bash-4.2# logout [Connection to zone 'c1bd276d-291f-4bfc-bae9-0e0e36b9b18e' pts/7 closed] root ~ (so1-12.ixlon1): ps -fz c1bd276d-291f-4bfc-bae9-0e0e36b9b18e UID PID PPID C STIME TTY TIME CMD root 10246 1 0 15:46:22 ? 0:00 /lib/svc/bin/svc.startd root 8976 5720 0 15:46:21 ? 0:00 /sbin/init root 5720 1 0 15:46:18 ? 0:00 zsched root 10367 10246 0 15:46:23 ? 0:00 sulogin root 10436 10367 0 - ? 0:00 <defunct>
Hardly anything is running as a result, the zone effectively hasn't reached multi-user.
root ~ (so1-12.ixlon1): mcs -p /zones/c1bd276d-291f-4bfc-bae9-0e0e36b9b18e/root/lib/libc.so.1 /zones/c1bd276d-291f-4bfc-bae9-0e0e36b9b18e/root/lib/libc.so.1: @(#)SunOS 5.10 Generic Patch January 2005 root ~ (so1-12.ixlon1): mcs -p /zones/c1bd276d-291f-4bfc-bae9-0e0e36b9b18e/root/usr/lib/libc/libc_hwcap1.so.1 /zones/c1bd276d-291f-4bfc-bae9-0e0e36b9b18e/root/usr/lib/libc/libc_hwcap1.so.1: @(#)SunOS 5.10 Generic 142901-15 Jul 2010
I believe this may have been caused by postwait's recent changes, but I'm not clear as I haven't been following illumos development closely lately.
I'm not clear on whether this can be addressed in the Solaris 10 branded zone layer itself.
I can supply access to a development machine if someone wishes to work on this.
Thanks.
Files
Updated by Theo Schlossnagle almost 10 years ago
Is this on the sn1 or solaris10 brand? This should be relatively easy to address by interposing a SYS_pipe call into the brand emulation to fake the old behavior.
Updated by Theo Schlossnagle almost 10 years ago
- File 3809.patch 3809.patch added
Here's a patch. I believe it should address the problem.
Updated by Alasdair Lumsden almost 10 years ago
- Status changed from New to Feedback
- % Done changed from 0 to 80
Hi Theo,
Thank you very much for your work on this earlier today, it's greatly appreciated.
We'll test the patch tomorrow and let you know if it works fully.
If it does hopefully this can be webrev'd, reviewed and then RTI'd.
Thanks again,
Alasdair
Updated by Alasdair Lumsden almost 10 years ago
Hi Theo,
Looks like this fixed pipe, but accept is still broken. inetd fails to start (plus presumably anything else calling accept).
Would you be able to do the same thing for the other libc functions changed recently?
I can test these too.
Cheers,
Alasdair
Updated by Andrzej Szeszo almost 10 years ago
- File 3809-accept.patch 3809-accept.patch added
Attached patch fixes accept() issue.
Updated by Gordon Ross almost 10 years ago
- Status changed from Feedback to Resolved
commit b49b27dcb66b2c7f4a23f7bc158e2dde5cd79030 Author: Theo Schlossnagle <jesus@omniti.com> Date: Sun Jun 9 16:07:11 2013 +0000 3809 Recent libc change breaks Solaris 10 Branded Zone Support Reviewed by: Andrzej Szeszo <aszeszo@gmail.com> Reviewed by: Igor Kozhukhov <ikozhukhov@gmail.com> Approved by: Gordon Ross <gwr@nexenta.com> :100644 100644 f179a3d... eb91f52... M usr/src/lib/brand/solaris10/s10_brand/co :100644 100644 3efc9ef... f24b864... M usr/src/uts/common/brand/solaris10/s10_b :100644 100644 0112a78... 11f9853... M usr/src/uts/common/brand/solaris10/s10_b