[LEDE-DEV] [PATCH 1/3] busybox: enable flock by default

Roman Yeryomin roman at advem.lv
Tue Dec 19 05:06:28 PST 2017


On 2017-12-18 20:47, Mathias Kresin wrote:
> 18.12.2017 10:48, Roman Yeryomin:
>> On 2017-12-18 09:58, Mathias Kresin wrote:
>>> 17.12.2017 19:30, Roman Yeryomin:
>>>> This is needed for procd init script protection to work.
>>>> flock adds 4248 bytes to stripped busybox binary.
>>>> 
>>>> Signed-off-by: Roman Yeryomin <roman at advem.lv>
>>>> ---
>>>>   package/utils/busybox/Config-defaults.in | 2 +-
>>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>> 
>>>> diff --git a/package/utils/busybox/Config-defaults.in
>>>> b/package/utils/busybox/Config-defaults.in
>>>> index 2a8d9dd397..6fc5093055 100644
>>>> --- a/package/utils/busybox/Config-defaults.in
>>>> +++ b/package/utils/busybox/Config-defaults.in
>>>> @@ -1497,7 +1497,7 @@ config BUSYBOX_DEFAULT_FINDFS
>>>>       default n
>>>>   config BUSYBOX_DEFAULT_FLOCK
>>>>       bool
>>>> -    default n
>>>> +    default y
>>>>   config BUSYBOX_DEFAULT_FDFLUSH
>>>>       bool
>>>>       default n
>>>> 
>>> 
>>> We have a custom (f)lock command in LEDE [0], which is used for
>>> example during wireless detect.
>>> 
>>> I only had a brief lock at your patch series, but the existing lock
>>> command might do the job.
>>> 
>>> I've no idea why we have a custom lock command instead of using the
>>> busybox provided flock. But shipping two (f)lock implementations at
>>> the same time seem to be a waste of flash space.
>>> 
>>> Mathias
>>> 
>>> [0]
>>> https://git.lede-project.org/?p=source.git;a=blob;f=package/utils/busybox/patches/220-add_lock_util.patch;hb=60a39e8f5af7ed710c5c62b131fd9df6519b64e4
>>> 
>> 
>> 
>> I think we should use stock flock instead of patching and adding 
>> another
>> custom wheel.
>> If something doesn't work in stock flock we should fix that and send 
>> the
>> fix upstream.
> 
> I had a closer look at the commit history to understand why we have a
> custom (f)lock implementation. It is as simple as our custom lock dates
> around 2006, while the busybox flock applet was added 2010.

oh, I see, thanks for looking into this

> At least I'm fine to switch to the upstream flock. As implied by using
> the word "switch", our custom lock applet should be removed at the same
> time.

I would insist on "switch" to be done as different patch set, since this 
one main purpose is slightly different.
I can submit that.

>> Adding flock and procd_lock is intended to replace all init custom 
>> locks
>> and others.
>> (and fix the racing problem once and for all)
> 
> Locks aren't used only for init scripts. Within the packages directory
> the lock applet is used in:

I would say in current condition, in init scripts, locks are not used at 
all, only some workarounds.

> package/network/config/ltq-vdsl-app/files/dsl_cpe_pipe.sh
> package/base-files/files/lib/preinit/30_failsafe_wait
> package/base-files/files/lib/preinit/40_run_failsafe_hook
> package/base-files/files/sbin/sysupgrade
> 
> Most likely there are more scripts using lock.

Good to know, thanks.


Regards,
Roman




More information about the Lede-dev mailing list