Bug #3809

Recent libc change breaks Solaris 10 Branded Zone Support

Added by Alasdair Lumsden over 4 years ago. Updated over 4 years ago.

Status:ResolvedStart date:2013-06-08
Priority:NormalDue date:
Assignee:Theo Schlossnagle% Done:

80%

Category:lib - userland libraries
Target version:-
Difficulty:Medium Tags:

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.

3809.patch Magnifier (2.27 KB) Theo Schlossnagle, 2013-06-09 04:51 PM

3809-accept.patch Magnifier (2.6 KB) Andrzej Szeszo, 2013-06-10 11:08 AM

History

#1 Updated by Theo Schlossnagle over 4 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.

#2 Updated by Theo Schlossnagle over 4 years ago

Here's a patch. I believe it should address the problem.

#3 Updated by Alasdair Lumsden over 4 years ago

  • % Done changed from 0 to 80
  • Status changed from New to Feedback

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

#4 Updated by Alasdair Lumsden over 4 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

#5 Updated by Andrzej Szeszo over 4 years ago

Attached patch fixes accept() issue.

#6 Updated by Gordon Ross over 4 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

Also available in: Atom