Busybox 1.30.1-6 does not work correctly

All good with the package, something was probably derped in my router, IDK.

Package: adblock
Version: 4.0.6-1
Depends: libc, jshn, jsonfilter, coreutils, coreutils-sort, ca-bundle, opkg
1 Like

Not really if we consider the problem from the point of OpenWrt core development.
Technically, it should be possible to solve this kind of issue once and for all.

The paths can be split into 2 tiers with different priorities, for example:

  • /bin and /sbin - BusyBox binaries/symlinks.
  • /usr/bin and /usr/sbin - additional packages.

This way upgrading or reinstalling BusyBox will never overwrite binaries from other packages.
At the same time, other binaries will always have higher priority.

2 Likes

I thought that this is already the current status, e.g. if you install coreutils-sort the binary will be installed as "gnu-sort" in /usr/bin and in the same directory a "sort" symlink will be created which points to this binary. Furthermore in adblock I also explicitly set the path variable to

export PATH="/usr/sbin:/usr/bin:/sbin:/bin"

I'm unsure what's happening during busybox update with those system settings.

Currently the higher priority has the last installed/upgraded package.
It forcefully updates symlinks to point to its own binaries.
This is a race condition.

We can avoid this problem if BusyBox is allowed to use only lower priority exclusive PATH locations like /bin and /sbin, but prohibited to alter /usr/bin and /usr/sbin.

4 Likes

I had same issue, adblock stopped working after busybox update.
I ended up removing adblock and libustream-mbedtls via luci remove software button, leaving luci-app-adblock installed.
I then fully reinstalled via SSH shell as per https://openwrt.org/docs/guide-user/services/ad-blocking
My luci setup was not lost as the blocked sources and # of threads were not lost, they were left same as prior to removal.
So basically, no harm to uninstall as nothing seems to be lost in the process of reinstalling.
Funnily enough, woke up this morning and checked for updates via luci and the only update available was adblock 4.0.6-2. Don't know if it fixes issue, as I fixed prior to this update.
Hoppefuly this helps...

opkg update; opkg --force-reinstall install $(opkg list-installed | grep -o -e ^coreutils-sort -e ^ip-full)
5 Likes

Hi all,

I just experiencied the same problem updating busybox on a Lamobo R1 board ( banana pi R1 ).

All fixed by reinstalling coreutils-sort.

Thanks vgaetera

on FritzBox 4040, I have the problem and this step has not helped me to solve it

I updated the post for VPN-PBR.

1 Like

:confused: I'm confused...

Is this problem due to:

  • persons running opkg upgrade - or
  • is this a problem with a BusyBox bundled in a particular OpenWrt release or snapshot?

If its about opkg upgrade - this thread needs to be added to the thread for warning about using that command.

3 Likes

BusyBox is breaking AdBlock, it happened to me again on my second EA8300, vgaetera's fix does not work for me, I fix with AdBlock remove and reinstall as per my prior post

I'll ask again...

  • Did you actually upgrade BusyBox? - :warning: generally upgrading packages is a known issue
  • If not, please provide the exact version on OpenWrt you are using.
2 Likes

Yes, last BusyBox upgrade to 1.30.1-6 using luci or opkg breaks AdBlock, I fixed as per my prior post.
Using OpenWRT 19.07.3 stable release, not snapshot.

OK, in the future, consider not performing such an upgrade. Use [daily] snapshots and load packages needed immediately upon install - if you truly want/need up-to-date software on the device.

and: https://openwrt.org/meta/infobox/upgrade_packages_warning

also:

2 Likes

This kind of problem en masse cannot be avoided with just recommendations and warnings.

The only effective way to solve it is to use foolproof design:
Limit BusyBox applets to /bin and /sbin

3 Likes

Same problem here - updated busybox (it is noted now, that I won't do that again..) and stubby stopped working. Took me half a day to finally fix that part (by setting tls_ca_file to the certificates bundle file instead of the directory) to get online again. Also had issues with openvpn and therefore with vpn routing (VPN-PBR).

so far I tried: I stopped all VPN related things to get this out of the way. I tried the marked solution - which somehow removed the stubby package (?). I reinstalled adblock, libustream-mbedtls (and stubby).

Current status: stubby needs an extra restart after a reboot and I still get errors in the adblock log. But most of the sources work. I am not 100% if those errors where there before the update or if this is just a temporary problem of the selected source. Would be glad if someone could verify this.

Sun Aug 23 09:44:29 2020 user.info adblock-4.0.6[6403]: download of 'reg_de' failed, url: https://easylist-downloads.adblockplus.org/easylistgermany+easylist.txt, rule: BEGIN{FS="[|^]"}/^\|\|([[:alnum:]_-]{1,63}\.)+[[:alpha:]]+\^(\$third-party)?$/{print tolower($3)}, categories: -, rc: 4, log: Downloading 'https://easylist-downloads.adblockplus.org/easylistgermany+easylist.txt' Failed to send request: Operation not permitted
Sun Aug 23 09:44:30 2020 user.info adblock-4.0.6[6403]: download of 'reg_cn' failed, url: https://easylist-downloads.adblockplus.org/easylistchina+easylist.txt, rule: BEGIN{FS="[|^]"}/^\|\|([[:alnum:]_-]{1,63}\.)+[[:alpha:]]+\^(\$third-party)?$/{print tolower($3)}, categories: -, rc: 4, log: Downloading 'https://easylist-downloads.adblockplus.org/easylistchina+easylist.txt' Failed to send request: Operation not permitted
Sun Aug 23 09:45:54 2020 user.info adblock-4.0.6[6403]: blocklist with overall 330150 blocked domains loaded successfully (TP-Link Archer C2600, OpenWrt 19.07.3 r11063-85e04e9f46)

my config:

Status / Version enabled / 4.0.6
Blocked Domains 330.150
Active Sources adaway, adguard, andryou, anti_ad, anudeep, bitcoin, disconnect, malwaredomains, malwarelist, notracking, openphish, phishing_army, reg_cn, reg_de, smarttv, spam404, stopforumspam, utcapitole, wally3k, whocares, winhelp, winspy, youtube, yoyo
DNS Backend dnsmasq, /tmp/dnsmasq.d
Run Utils /bin/uclient-fetch, /usr/bin/awk
Run Interfaces trigger: wan, report: br-lan
Run Directories base: /tmp, backup: /tmp, report: /tmp, jail: /tmp
Run Flags backup: 1, reset: 0, flush: 0, force: 1, search: 0, report: 1, mail: 0, jail: 0
Last Run start, 2m 59s, 480/287/279, 23.08.2020 09:45:53

Run the command and post the output:

Also check:

readlink -f $(type -p sort); readlink -f $(type -p ip)
1 Like
root@charon:~# readlink -f $(type -p sort); readlink -f $(type -p ip)
/usr/bin/gnu-sort
/usr/libexec/ip-full
opkg update
opkg --force-depends remove libustream-mbedtls\*
opkg --force-reinstall install libustream-mbedtls
2 Likes

you are onto something:

Installing libustream-mbedtls20150806 (2020-03-13-40b563b1-1) to root...
Collected errors:
 * check_data_file_clashes: Package libustream-mbedtls20150806 wants to install file /lib/libustream-ssl.so
        But that file is already provided by package  * libustream-openssl20150806
 * opkg_install_cmd: Cannot install package libustream-mbedtls20150806.

should I remove the openssl20150806 variant?