Apparent race in buildworld (head/amd64, r322214 -> r322304)

Bryan Drewery bdrewery at FreeBSD.org
Wed Aug 9 19:38:31 UTC 2017


On 8/9/2017 12:35 PM, David Wolfskill wrote:
> On Wed, Aug 09, 2017 at 12:22:20PM -0700, Bryan Drewery wrote:
>>> 	/usr/obj/usr/src/tmp/usr/bin/ld: cannot find -lgcc_s
>> ... 
>>
>> This should fix it:
>> https://people.freebsd.org/~bdrewery/patches/gcc_s-install-race.diff
>>
>> The problem has consistently been, from your reports, that gcc_s is
>> being installed to WORLDTMP *while* something is trying to link to it.
> 
> Yeah, that doesn't seem like something that's likely to have
> deterministic results.
> 
>> ...
>>> --- lib/libc++__L ---
>>> /usr/obj/usr/src/tmp/usr/bin/ld: cannot find -lgcc_s
>>>
>>> --- lib/libgcc_s__L ---^M                                                     
>> ...
>>> --- all_subdir_secure/lib/libcrypto/engines/libsureware ---^M                 
>>> /usr/obj/usr/src/tmp/usr/bin/ld: cannot find -lgcc_s^M                        
>>
>>
>>
>> By default 'install' unlinks the file and then copies over the new file.
>>  Using PRECIOUSLIB we get the -S flag to install which is atomic in its
>> installation.
>>
>> Note the patch is not what I will commit. At Isilon we changed our
>> install to always use -S for library installation, but not to force schg
>> on.  I am considering making that change the default, to use -S for all
>> libraries.
> 
> From an (admittedly) naive perspective, it seems to me that enforcing
> "atomic installation" for file system objects that are to be used
> during the build (or install) makes more sense than firing and
> hoping for the best.  :-}
> 

It also fixes some runtime crashes while concurrently running
installworld to a live system.  One that we ran into a lot was an NSS
module being used for user lookup that another concurrent install would
use while the module was being overwritten.  It would see a bogus file
during the install.

>> -- 
>> Regards,
>> Bryan Drewery
>>
> 
> Thanks! :-)
> 
> Peace,
> david
> 


-- 
Regards,
Bryan Drewery

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/freebsd-current/attachments/20170809/5f76280a/attachment.sig>


More information about the freebsd-current mailing list