Open pony1k opened 1 day ago
There seems to be a missing symbol related to string replacement. there seems to be an inconsistency between the shared state binary and the libraries that it uses.
I remember I had a similar issue when I tried to build shared-state in my computer and insert it in a running image. C++ stdlib and the binary must be compiled together in order to work. I don't know if this is the case.
What hardware are you using? Are you running an image from the repository? Can you recompile your image? What version of gcc are you using ? Can you upgrade it ?
Saludos Ing. Javier Alejandro Jorge
On Fri, 25 Oct 2024 at 12:33, Ilario Gelmetti @.***> wrote:
Assigned #1135 https://github.com/libremesh/lime-packages/issues/1135 to @javierbrk https://github.com/javierbrk.
— Reply to this email directly, view it on GitHub https://github.com/libremesh/lime-packages/issues/1135#event-14878421075, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABE2I2BZKCZWDH677H5BTRLZ5JQD7AVCNFSM6AAAAABQTONRLWVHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJUHA3TQNBSGEYDONI . You are receiving this because you were assigned.Message ID: @.***>
The images were built using imagebuilder with the https://feed.libremesh.org/arch_packages/master/ repos. Devices are
On E8450, the error looks slightly different: ...replace_coldEPcmPKcmm: symbol not found
I can try to reproduce the problem with a self compiled package, if that helps?
I use the openwrt buildroot and haven't encountered this problem, so I guess it may be happening due to Image builder usage.
I usually use this script https://gitlab.com/librerouter/librerouteros/-/blob/main/librerouteros_build.sh?ref_type=heads to avoid jumping around make menuconfig
but should be the same if you select the packages manually on openwrt buildroot
Hi, I think I've reproduced it on a litebeam-m5-xw
It doesn't work with openwrt-23.05.5, libremesh feeds master, using imagebuilder
root@LiMe-07d1b5:~# shared-state-async get bat-hosts
Error relocating /usr/bin/shared-state-async: _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_replace_coldEPcjPKcjj: symbol not found
It works with openwrt snapshots, libremesh feeds master, using imagebuilder
root@LiMe-07d1b5:~# shared-state-async get bat-hosts
D 1729878728.079 std::task<int> SharedState::merge(const std::string&, const std::map<std::__cxx11::basic_string<char>, StateEntry>&, const sockaddr_storage&, std::error_condition*) bat-hosts got 7 significative changes out of 7 input slice size: 7 state size: 7
{
"02:58:47:07:d1:b5": "LiMe_07d1b5_wlan0_mesh_29",
"02:95:39:07:d1:b5": "LiMe_07d1b5_eth0_29",
"0e:1e:c4:cf:27:27": "LiMe_07d1b5_bat0",
"fa:ec:da:06:d1:b5": "LiMe_07d1b5_wlan0_mesh",
"fc:ec:da:06:d1:b5": "LiMe_07d1b5_wlan0_ap",
"fc:ec:da:07:d1:b5": "LiMe_07d1b5_br_lan",
"fe:ec:da:06:d1:b5": "LiMe_07d1b5_wlan0_apname"
}
For mt7621 the OpenWrt 23.05.5 repo contains
Whilst snapshot has
shared-state-async uses those libraries and I guess the LibreMesh builtbot links against the snapshot versions and there is some compatibility issue with one or more of these libraries.
Just one more note, I'm thinking it is an error with the ci
master feeds are compiled with openwrt-sdk master ARCH: "x86_64"
so they are only compatible with openwrt snapshot
we should probably create a feeds repo with binaries built from openwrt sdk v23.05.5
or branch-23.05
to be compatible with openwrt-23.05.5 and current builds of libremesh-2024.1-rc1
as had been done for openwrt v19 ARCH: "x86_64-19.07.10"
Hi, I think I've reproduced it on a litebeam-m5-xw
It doesn't work with openwrt-23.05.5, libremesh feeds master, using imagebuilder
root@LiMe-07d1b5:~# shared-state-async get bat-hosts Error relocating /usr/bin/shared-state-async: _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_replace_coldEPcjPKcjj: symbol not found
It works with openwrt snapshots, libremesh feeds master, using imagebuilder
root@LiMe-07d1b5:~# shared-state-async get bat-hosts D 1729878728.079 std::task<int> SharedState::merge(const std::string&, const std::map<std::__cxx11::basic_string<char>, StateEntry>&, const sockaddr_storage&, std::error_condition*) bat-hosts got 7 significative changes out of 7 input slice size: 7 state size: 7 { "02:58:47:07:d1:b5": "LiMe_07d1b5_wlan0_mesh_29", "02:95:39:07:d1:b5": "LiMe_07d1b5_eth0_29", "0e:1e:c4:cf:27:27": "LiMe_07d1b5_bat0", "fa:ec:da:06:d1:b5": "LiMe_07d1b5_wlan0_mesh", "fc:ec:da:06:d1:b5": "LiMe_07d1b5_wlan0_ap", "fc:ec:da:07:d1:b5": "LiMe_07d1b5_br_lan", "fe:ec:da:06:d1:b5": "LiMe_07d1b5_wlan0_apname" }
I think this is the issue, shared-state-async
needs OpenWrt development branch due to a bug present in gcc
and libstdcpp
in current releases. AFAIR also @javierbrk encountered this problem some months ago and the fix was moving to Openwrt development branch. Hopefully news OpenWrt release will include those fixes soon.
New stuff that I develop like shared-state-async
or APuP
often depends on cutting edge, so I work almost always on top of OpenWrt development branch.
I noticed that the file
/var/bat-hosts
does not exist, even thoughshared-state shared-state-bat_hosts
is installed. Upon investigation I found that when I runI get an error saying
Maybe this has something todo with it. I get the same error with
get net-stats
. OpenWrt version: 23.05.5 LibreMesh version: master rev. 08a3948 20240924_1212 Some installed packages: