K 10 svn:author V 3 jhb K 8 svn:date V 27 2021-06-16T20:24:16.015771Z K 7 svn:log V 1062 etcupdate: Always extract to a temporary tree. etcupdate has had a somewhat nasty race condition since its creation in that its state machine can get very confused if it is interrupted while building the tree to compare against. This is exacerbated by the fact that etcupdate doesn't emit any output while building the tree which can take several seconds (especially in recent years with the addition of the tree-wide buildconfig/installconfig passes). To mitigate this, always install a new tree into a temporary directory created via mktemp as was previously done only for dry-runs via -n. The existing trees are only rotated and the new tree installed as /var/db/etcupdate/current after the update command has completed. Reported by: dim, np (and many others) Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D29843 (cherry picked from commit 0611aec3cf3a373e6a06f103699dbc91c3d6d472) (cherry picked from commit b0df36580d5b0df67a0f58ded8f6356b268f7f71) Git Hash: 6914b924d57989b1da56588c247b9e248a9190ff Git Author: jhb@FreeBSD.org END