Frank Middleton wrote: > Since I'm not subscribed to the caiman list, this reply probably won't > get there.... > > On 10/ 6/09 11:29 PM, Evan Layton wrote: >> >> Which beadm bug are you referring to that caused these failures? > > 11221 beadm create core dumps on OpenSolaris 122 SPARC > http://defect.opensolaris.org/bz/show_bug.cgi?id=11221 > Fixed now - thanks to David Comay for making it happen! > >> Is your system still missing /rpool/boot/menu.lst? If it is missing >> and you're reliably hitting this then you're likely to hit the issue >> going from build 124 to 125. As for this being reproducible on build >> 111b I'm still completely unable to reproduce this there. However I am >> able to hit this with build 124 now. Because I can now reproduce this >> I'm reopening bug 7880. > > As mentioned, because of 11221, I've done quite a few image-updates > from snv111b. It fails every time. snv111b was installed by building pkg > from source on sxce snv103 and using it to install to a separate disk.. > For sure, this process didn't create /rpool/boot or /rpool/boot/menu.lst.
Ah ok so this version of snv111b didn't have the fix for bug 6744 which would have at least mitigated this issue. > > Just read your comments appended to 7880. > >> I'm able to reproduce this in build 124 and it appears to be >> something strange with fgets() not returning the contents of the file >> correctly. > > This sounds different. The problem was that image-update failed > if rpool/boot didn't exist, and it also failed if rpool/boot existed > but rpool/boot/menu.lst didn't (different error message). You're right it is slightly different but somewhat related in that it's that directories that are missing in addition to the menu.lst file. > > As requested: the output from beadm (note the root pool is called > tpool - don't ask :-) - and there /is/ a tpool/boot/menu.lst): > > # uname -vp > snv_124 sparc > # export BE_PRINT_ERR=true > # beadm create newbe > # ls /tpool/boot/ > menu.lst > > It worked just fine, and there is a menu.lst now. Moving it away... > > # beadm create newbe > be_open_menu: menu.lst file /tpool/boot/menu.lst does not exist, > WARNING: menu.lst file /tpool/boot/menu.lst does not exist, > generating a new menu.lst file > > So far so good. But: > > # mv boot xboot > # beadm create newbe > be_open_menu: menu.lst file /tpool/boot/menu.lst does not exist, > WARNING: menu.lst file /tpool/boot/menu.lst does not exist, > generating a new menu.lst file > be_copy: failed to add BE (newbe) to boot menu > be_copy: destroying partially created boot environment > Unable to create newbe. > Missing boot menu file. OK definitely similar to what I expected but as you mentioned this is more likely due to the missing /tpool/boot that normally should have been created at install time (see bug 6744). > > So it is partially fixed - if rpool/boot exists, it will succeed. But if > rpool/boot > is missing, it still fails. Maybe I should add these outputs to the bug, > which > obviously is very low priority since the workaround is trivial, although I > imagine the fix for this aspect is equally trivial :-) > Yes I noticed this deficiency earlier today as well while looking at another bug having to do with supporting multiple pools. If we're creating a new BE on a separate pool it expects /<pool>/boot to already be there and will fail if it's not. I need to add code to create the proper path if it's missing as well. And yes that should be a pretty trivial thing to add. If you want to add this to the bug that would be great, if not I'll add it tomorrow. Thank you for collecting this extra information! -evan