Tim Knitter wrote:
> Hi Jason,
>
> Thanks for the report. Please file a bug report if one is not filed already.
>   
Thank you, Tim.

Have filed 5711 <http://defect.opensolaris.org/bz/show_bug.cgi?id=5711> 
as a bug track.

Thanks
Jason
> Thanks
> Tim
>  
>   
>> Hi, Evan
>>
>> When porting libbe test suite to SPARC, I found an issue.
>> When I create a zone firstly, then try to fork 2 processes
>> at same time, one process is "beadm create newbe", the other
>> is "beadm create newbe1" by the "multi_driver" x86 binary in
>> attachment, I found only one process could create a BE
>> successfully. The issue happens on SPARC as well as X86
>> platform only if there is a zone created beforehand.
>>
>> Here is the journal in test suite results, I update the report
>> wiki page.
>> http://greatwall.prc/~xz201216/snap/sparc_porting/regression/soe-t2000-11/sorted_results/snap_function/FAIL/tc_snap_function.54
>>
>> Here is how to reproduce it..
>> # zonecfg -z z1
>> .......
>> # zoneadm -z z1 install
>> ......
>>
>> # ./multi_driver -i 2 -p 'beadm create newbe' -p 'beadm create newbe1'
>> Process 1: beadm create newbe
>> Ret code: 1
>> ====== stdout ======
>>
>> ====================
>> ====== stderr ======
>> Unable to create newbe.
>> BE newbe already exists. Please choose a different BE name.
>>
>> ====================
>>
>> Process 2: beadm create newbe1
>> Ret code: 0
>> ====== stdout ======
>>
>> ====================
>> ====== stderr ======
>>
>> ====================
>>
>> After that, only "newbe1" is created in this case, but
>> in other time "newbe" will be created while "newbe1" is
>> failed.
>>
>> Then I tried the test driver "tbeadm" with same command.
>> It showed there is a race when create snapshot for zone
>> dataset. As following.
>> # ./multi_driver -i 2 -p '/export/tbeadm create newbe' -p
>> '/export/tbeadm create newbe1'
>> Process 1: /export/tbeadm create newbe
>> Ret code: 45
>> ====== stdout ======
>>
>> ====================
>> ====== stderr ======
>> be_get_uuid: failed to get uuid property from BE root dataset user
>> properties.
>> be_copy_zones: failed to snapshot zone BE
>> (rpool/zones/z1/ROOT/zbe at zbe-1): dataset already exists
>> be_copy: failed to process zones
>> be_copy: destroying partially created boot environment
>>
>> ====================
>>
>> Process 2: /export/tbeadm create newbe1
>> Ret code: 0
>> ====== stdout ======
>>
>> ====================
>> ====== stderr ======
>> be_get_uuid: failed to get uuid property from BE root dataset user
>> properties.
>>
>> ====================
>>
>> It is a conflict when create multiple processes when dispatch auto
>> names, maybe we
>> need to create locks to make sure the success prevent the situation.
>>
>>
>> Hope your comments.
>>
>>
>> Thanks
>> Jason
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> caiman-discuss mailing list
>> caiman-discuss at opensolaris.org
>> http://mail.opensolaris.org/mailman/listinfo/caiman-discuss
>>     
> _______________________________________________
> caiman-discuss mailing list
> caiman-discuss at opensolaris.org
> http://mail.opensolaris.org/mailman/listinfo/caiman-discuss
>   


Reply via email to