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 >