So, here comes the patch for "zpool" for Solaris 11 EA (snv_173):
--- zpool_snv173.save.dis 2011-09-17 14:30:53.911407633 +0200
+++ zpool_snv173.dis 2011-09-17 15:14:23.263512388 +0200
@@ -13444,13 +13444,12 @@
805e72c: ff b5 4c fb ff ff pushl -0x4b4(%ebp)
805e732: e8 c5 5d ff ff call 80544fc
805e737: 83 c4 10 add $0x10,%esp
- 805e73a: 85 c0 test %eax,%eax
- 805e73c: 74 1a je 805e758
- 805e73e: 83 ec 04 sub $0x4,%esp
- 805e741: 68 0b 02 00 00 push $0x20b
- 805e746: 68 4c 5f 06 08 push $0x8065f4c
- 805e74b: 68 d0 5c 06 08 push $0x8065cd0
- 805e750: e8 17 5a ff ff call 805416c <__assert@plt>
+ 805e73a: 68 00 00 00 00 push $0x0
+ 805e73f: 68 0c 00 00 00 push $0xc
+ 805e744: 68 d0 5c 06 08 push $0x8065cd0
+ 805e749: ff b5 4c fb ff ff pushl -0x4b4(%ebp)
+ 805e74f: e8 a8 5d ff ff call 80544fc
+ 805e754: 90 nop
805e755: 83 c4 10 add $0x10,%esp
805e758: 83 ec 08 sub $0x8,%esp
805e75b: 68 44 5e 06 08 push $0x8065e44
It is a straightforward adaptation of the same patch for NexentaStor 3.1.0. You can find the binary here. If you want, you can check its (and my) integrity by doing a "cmp -lc zpool zpool-s11ea".
Thanks!
Great post. I'm trying to put your patched zpool file inside the x86.miniroot on Solaris 10 U10 so when I do an JumpStart install I will know that ashift=12 is set on the pool.
I have tried all the binaries you have posted and get a similar error (this is the output from JumpStart).
Configuring disk (c1t0d0)
- Creating Fdisk partition table
- Creating Solaris disk label (VTOC)
- Creating pool rpool
Abort - core dumped
ERROR: Could not create pool rpool
ERROR: Could not update disks with new configuration
I then tried putting the core file through mdb, although I don't really know what I'm looking at.
# mdb core
Loading modules: [ libumem.so.1 libnvpair.so.1 libuutil.so.1 libc.so.1 libsysevent.so.1 libavl.so.1 ld.so.1 ]
> ::status
debugging core file of zpool (32-bit) from localhost
file: /sbin/zpool
initial argv: /usr/sbin/zpool create -f -o failmode=continue -R /a -m legacy -o cachefile=/tm
threading model: multi-threaded
status: process terminated by SIGABRT (Abort)
panic message:
Assertion failed: (zhp = zfs_open(hdl, pool, (ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME | ZFS_TYPE_SNAPSHOT))) != 0, file ../common
> ::stack
libc.so.1`_lwp_kill+0x15(1, 6)
libc.so.1`raise+0x1f(6)
libc.so.1`abort+0xcd(0, ce8f5000, 65737341, 6f697472, 6166206e, 64656c69)
libc.so.1`_assert_c99+0x6e(ce8deb40, ce8deb28, 3d6, ce8c8778)
libzfs.so.2`zpool_create+0x242(8086d48, 804742a, 808af08, 808af88, 0, 1)
zpool_do_create+0x52b(c, 8047210, 804720c, 80759a0, 0, 0)
main+0x192(d, 804720c, 8047244, 8060480, 0, 0)
_start+0x83(d, 80473c0, 80473d0, 80473d7, 80473da, 80473dd)
The strange thing is that when the install fails it dumps me to an xterm and I can run the zpool create command fine?!?
Do you think this is down to me using the wrong version of zpool for Update 10, or because I am using it in a jumpstart environment or something?
Any tips or pointers about what I could try next would be much appreciated.
Graham,