|
Description
|
Running TSlvm on snv_91, I observed the following in META_SET/metaset_options output:
=== 07:43 NOTE: Add disk to set specifying very small replicas
=== 07:43 NOTE: /usr/sbin/metaset -s mso_set1 -a -l 64 c2t0d0
=== 07:43 PASS: metaset successfully deleted c2t0d0
=== 07:43 NOTE: /usr/sbin/metaset -s mso_set1 -a -l 56 c2t0d0
metaset: Segmentation Fault
Segmentation Fault - core dumped
=== 07:43 WARN: renaming core to /var/tmp/TSmd//v4u-60a-prg06/META_SET/Journal/080610.07:38:25/core.metaset.0610.07:43:48
core: ELF 32-bit MSB core file SPARC Version 1, from 'metaset'
=== 07:43 PASS: metaset correctly rejected small replica
=== 07:43 NOTE: /usr/sbin/metaset -s mso_set1 -a -l 48 c2t0d0
metaset: v4u-60a-prg06: mso_set1: drive c2t0d0 is in set mso_set1
=== 07:43 PASS: metaset correctly rejected small replica
I.e., when length of the state database replica is specified to be 56 blocks, metaset dumps core. I reproduced this problem on all available test machines, sparc as well as i386; running the single TSlvm test is sufficient to hit the problem. This is a regression against snv_89.
Basic core file examination gives the following:
# mdb core.metaset.0610.07\:43\:48
Loading modules: [ libc.so.1 libuutil.so.1 ld.so.1 ]
> ::status
debugging core file of metaset (32-bit) from v4u-60a-prg06
file: /usr/sbin/metaset
initial argv: /usr/sbin/metaset -s mso_set1 -a -l 56 c2t0d0
threading model: native threads
status: process terminated by SIGSEGV (Segmentation Fault)
> $c
libc.so.1`_free_unlocked+0x38(38, 1d44, ff36cc68, 0, ff948, 0)
libc.so.1`free+0x50(38, 1c00, 1, ff36ae58, ff9b8, ff370e9c)
libmeta.so.1`mdclrerror+0x2c(ffbff540, 31898, 1, 38, ffbff808, 324d0)
libmeta.so.1`add_replica_to_ctl+0x110(2b060, 2ace0, 2, ffbff808, 1, 0)
libmeta.so.1`lessthan3_ctl_balance+0x78(2b060, 2ace0, 2, ffbff808, ffbff630, 10)
libmeta.so.1`meta_db_balance+0x88(2b060, 325b8, 325e0, 38, ffbff808, 3800)
libmeta.so.1`meta_set_adddrives+0x7a0(2b060, 20000000, 8, 325e0, ffbff808, 352e8)
parse_add+0xb48(90000000, 0, 40000000, 17800, ffbffaf5, 0)
main+0x864(7, ffbff9ac, 18000, 18400, 2b060, 1)
_start+0x108(0, 0, 0, 0, 0, 0)
|