Details
-
Bug
-
Resolution: Invalid
-
P2: Important
-
None
-
6.2.4
-
None
Description
There is segmentation fault in QtDeviceUtilities on Linux Yocto we are using.
The segmentation fault happens after running the minimal reproducable example (provided in the attachment) and plugging the ethernet cable out and in while the app is running.
This is output from the core dump on the target device:
GNU gdb (GDB) 11.2 Copyright (C) 2022 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "aarch64-poky-linux". Type "show configuration" for configuration details. For bug reporting instructions, please see: <https://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>.For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from ./poc...warning: Can't open file /memfd:JSGCHeap:QtQml (deleted) during file-backed mapping note processingwarning: Can't open file /memfd:JSVMStack:QtQml (deleted) during file-backed mapping note processingwarning: Can't open file /memfd:unknown-usage:QtQml (deleted) during file-backed mapping note processing [New LWP 109553] [New LWP 109555] [New LWP 109554] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/libthread_db.so.1". Core was generated by `./poc'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x0000ffff940991b4 in QMetaObject::cast(QObject const*) const () from /usr/lib/libQt6Core.so.6 [Current thread is 1 (Thread 0xffff95815020 (LWP 109553))] (gdb) bt #0 0x0000ffff940991b4 in QMetaObject::cast(QObject const*) const () from /usr/lib/libQt6Core.so.6 #1 0x0000ffff958632ec in QNetworkSettingsServiceFilter::filterAcceptsRow(int, QModelIndex const&) const () from /usr/lib/libQt6NetworkSettings.so.6 #2 0x0000ffff942cdf80 in ?? () from /usr/lib/libQt6Core.so.6 #3 0x0000ffff942d168c in ?? () from /usr/lib/libQt6Core.so.6 #4 0x0000ffff942dd20c in ?? () from /usr/lib/libQt6Core.so.6 #5 0x0000ffff940ea898 in ?? () from /usr/lib/libQt6Core.so.6 #6 0x0000ffff94059400 in QAbstractItemModel::dataChanged(QModelIndex const&, QModelIndex const&, QList<int> const&) () from /usr/lib/libQt6Core.so.6 #7 0x0000ffff95862c60 in QNetworkSettingsServiceModel::updated(int) () from /usr/lib/libQt6NetworkSettings.so.6 #8 0x0000ffff95862d48 in QNetworkSettingsServiceModel::connectionStatusChanged() () from /usr/lib/libQt6NetworkSettings.so.6 #9 0x0000ffff940ea5b8 in ?? () from /usr/lib/libQt6Core.so.6 #10 0x0000ffff9585b138 in ?? () from /usr/lib/libQt6NetworkSettings.so.6 #11 0x0000ffff9585b6e0 in ?? () from /usr/lib/libQt6NetworkSettings.so.6 #12 0x0000ffff940ea898 in ?? () from /usr/lib/libQt6Core.so.6 #13 0x0000ffff9583f808 in ?? () from /usr/lib/libQt6NetworkSettings.so.6 #14 0x0000ffff95840038 in ?? () from /usr/lib/libQt6NetworkSettings.so.6 #15 0x0000ffff94f90760 in ?? () from /usr/lib/libQt6DBus.so.6 #16 0x0000ffff940daee8 in QObject::event(QEvent*) () from /usr/lib/libQt6Core.so.6 #17 0x0000ffff9408a9c8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt6Core.so.6 #18 0x0000ffff9408de94 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQt6Core.so.6 #19 0x0000ffff9420eeb4 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt6Core.so.6 #20 0x0000ffff95633ed8 in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt6Gui.so.6 #21 0x0000ffff94096f90 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt6Core.so.6 #22 0x0000ffff9409261c in QCoreApplication::exec() () from /usr/lib/libQt6Core.so.6 #23 0x0000aaaab63c2580 in main (argc=<optimized out>, argv=<optimized out>) at /home/dane/poc_network/main.cpp:17 (gdb)
Minimal reproducable example using own instance of NetworkSettingsManager
Minimal reproducable example using the existing QML singleton instance of NetworkSettingsManager:
02-bug-minimal-reproducable-using-qml-singleton.zip
Target information:
Platform: IMX8
OS: Linux Yocto
Environment on the building host machine:
OE_QMAKE_CXX=aarch64-poky-linux-g++ -mcpu=cortex-a53 -march=armv8-a+crc+crypto -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/opt/poky/4.0.2/sysroots/cortexa53-crypto-poky-linux SHELL=/bin/bash OE_CMAKE_TOOLCHAIN_FILE=/opt/poky/4.0.2/sysroots/x86_64-pokysdk-linux/usr/share/cmake/OEToolchainConfig.cmake M4=m4 OECORE_TUNE_CCARGS= -mcpu=cortex-a53 -march=armv8-a+crc+crypto WSL2_GUI_APPS_ENABLED=1 WSL_DISTRO_NAME=Ubuntu OECORE_SDK_VERSION=4.0.2 PKG_CONFIG_PATH=/opt/poky/4.0.2/sysroots/cortexa53-crypto-poky-linux/usr/lib/pkgconfig:/opt/poky/4.0.2/sysroots/cortexa53-crypto-poky-linux/usr/share/pkgconfig WT_SESSION=568a1a69-fd80-4f79-a7eb-5b89c756f692 GDB=aarch64-poky-linux-gdb SDKTARGETSYSROOT=/opt/poky/4.0.2/sysroots/cortexa53-crypto-poky-linux OECORE_BASELIB=lib CPP=aarch64-poky-linux-gcc -E -mcpu=cortex-a53 -march=armv8-a+crc+crypto -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/opt/poky/4.0.2/sysroots/cortexa53-crypto-poky-linux OE_QMAKE_OBJCOPY=aarch64-poky-linux-objcopy OE_QMAKE_AR=aarch64-poky-linux-ar TARGET_PREFIX=aarch64-poky-linux- OE_CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX= OE_QMAKE_LINK=aarch64-poky-linux-g++ -mcpu=cortex-a53 -march=armv8-a+crc+crypto -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/opt/poky/4.0.2/sysroots/cortexa53-crypto-poky-linux NAME=AP-314 PWD=/home/dane/poc_network LOGNAME=dane OECORE_TARGET_OS=linux CXX=aarch64-poky-linux-g++ -mcpu=cortex-a53 -march=armv8-a+crc+crypto -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/opt/poky/4.0.2/sysroots/cortexa53-crypto-poky-linux CXXFLAGS= -O2 -pipe -g -feliminate-unused-debug-types OECORE_NATIVE_SYSROOT=/opt/poky/4.0.2/sysroots/x86_64-pokysdk-linux LDFLAGS=-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,relro,-z,now HOME=/home/dane LANG=C.UTF-8 WSL_INTEROP=/run/WSL/215_interop LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36: OPENSSL_CONF=/opt/poky/4.0.2/sysroots/x86_64-pokysdk-linux/usr/lib/ssl-3/openssl.cnf OE_QMAKE_CXXFLAGS= -O2 -pipe -g -feliminate-unused-debug-types WAYLAND_DISPLAY=wayland-0 KCFLAGS=--sysroot=/opt/poky/4.0.2/sysroots/cortexa53-crypto-poky-linux OECORE_TARGET_SYSROOT=/opt/poky/4.0.2/sysroots/cortexa53-crypto-poky-linux CPPFLAGS= LD=aarch64-poky-linux-ld --sysroot=/opt/poky/4.0.2/sysroots/cortexa53-crypto-poky-linux OE_QMAKE_CC=aarch64-poky-linux-gcc -mcpu=cortex-a53 -march=armv8-a+crc+crypto -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/opt/poky/4.0.2/sysroots/cortexa53-crypto-poky-linux OE_QMAKE_CFLAGS= -O2 -pipe -g -feliminate-unused-debug-types READELF=aarch64-poky-linux-readelf OE_QMAKE_LDFLAGS=-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,relro,-z,now LESSCLOSE=/usr/bin/lesspipe %s %s TERM=xterm-256color LESSOPEN=| /usr/bin/lesspipe %s USER=dane AR=aarch64-poky-linux-ar ARCH=arm64 AS=aarch64-poky-linux-as DISPLAY=:0 SHLVL=1 NM=aarch64-poky-linux-nm OE_QMAKE_STRIP=aarch64-poky-linux-strip OECORE_TARGET_ARCH=aarch64 OE_QMAKE_AR_LTCG=aarch64-poky-linux-gcc-ar XDG_RUNTIME_DIR=/mnt/wslg/runtime-dir OECORE_DISTRO_VERSION=4.0.2 PKG_CONFIG_SYSROOT_DIR=/opt/poky/4.0.2/sysroots/cortexa53-crypto-poky-linux OECORE_ACLOCAL_OPTS=-I /opt/poky/4.0.2/sysroots/x86_64-pokysdk-linux/usr/share/aclocal OBJCOPY=aarch64-poky-linux-objcopy WSLENV=WT_SESSION:WT_PROFILE_ID: STRIP=aarch64-poky-linux-strip XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop OBJDUMP=aarch64-poky-linux-objdump CONFIG_SITE=/opt/poky/4.0.2/site-config-cortexa53-crypto-poky-linux PATH=/opt/poky/4.0.2/sysroots/x86_64-pokysdk-linux/usr/bin:/opt/poky/4.0.2/sysroots/x86_64-pokysdk-linux/usr/sbin:/opt/poky/4.0.2/sysroots/x86_64-pokysdk-linux/bin:/opt/poky/4.0.2/sysroots/x86_64-pokysdk-linux/sbin:/opt/poky/4.0.2/sysroots/x86_64-pokysdk-linux/usr/bin/../x86_64-pokysdk-linux/bin:/opt/poky/4.0.2/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux:/opt/poky/4.0.2/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux-musl:/home/dane/.local/bin:/home/dane/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/:/mnt/c/WINDOWS/System32/OpenSSH/:/mnt/c/Program Files (x86)/Git/cmd:/mnt/c/Program Files (x86)/Microsoft SQL Server/90/Tools/binn/:/mnt/c/Perl/bin:/mnt/c/WINCE700/rubin_base/Framework/XAML2CPP:/mnt/c/Program Files/Microsoft/Web Platform Installer/:/mnt/c/Program Files (x86)/Microsoft ASP.NET/ASP.NET Web Pages/v1.0/:/mnt/c/Program Files (x86)/Windows Kits/8.0/Windows Performance Toolkit/:/mnt/c/Program Files/Microsoft SQL Server/110/Tools/Binn/:/mnt/c/Program Files/PuTTY/:/mnt/c/Program Files/usbipd-win/:/mnt/c/Program Files/Docker/Docker/resources/bin:/mnt/c/Users/daniel.petrovic/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/daniel.petrovic/AppData/Local/Programs/Microsoft VS Code/bin:/mnt/c/Users/daniel.petrovic/AppData/Local/Programs/Python/Python310:/snap/bin CC=aarch64-poky-linux-gcc -mcpu=cortex-a53 -march=armv8-a+crc+crypto -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/opt/poky/4.0.2/sysroots/cortexa53-crypto-poky-linux CFLAGS= -O2 -pipe -g -feliminate-unused-debug-types CROSS_COMPILE=aarch64-poky-linux- HOSTTYPE=x86_64 CONFIGURE_FLAGS=--target=aarch64-poky-linux --host=aarch64-poky-linux --build=x86_64-linux --with-libtool-sysroot=/opt/poky/4.0.2/sysroots/cortexa53-crypto-poky-linux PULSE_SERVER=unix:/mnt/wslg/PulseServer WT_PROFILE_ID={51855cb2-8cce-5362-8f54-464b92b32386} RANLIB=aarch64-poky-linux-ranlib OLDPWD=/home/dane/poc_network/build _=/usr/bin/env
/opt/poky/4.0.2/sysroots/x86_64-pokysdk-linux/usr/bin/qmake --version:
QMake version 3.1 Using Qt version 6.2.4 in /opt/poky/4.0.2/sysroots/cortexa53-crypto-poky-linux/usr/lib
Dbus monitoring output after plugging the ethernet cable in, which causes the crash:
signal time=1714023668.281580 sender=org.freedesktop.DBus -> destination=:1.33 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired string ":1.33" signal time=1714023668.281714 sender=org.freedesktop.DBus -> destination=:1.33 serial=4 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameLost string ":1.33" signal time=1714023672.498239 sender=:1.3 -> destination=(null destination) serial=369 path=/; interface=org.freedesktop.DBus.ObjectManager; member=InterfacesAdded object path "/net/connman/service/ethernet_0030d62f6718_cable" array [ dict entry( string "org.freedesktop.DBus.Introspectable" array [ ] ) dict entry( string "net.connman.Service" array [ ] ) ] signal time=1714023672.498571 sender=:1.3 -> destination=(null destination) serial=370 path=/; interface=net.connman.Clock; member=PropertyChanged string "TimeserverSynced" variant boolean false signal time=1714023672.502069 sender=:1.3 -> destination=(null destination) serial=371 path=/net/connman/service/wifi_78c40ee90037_6c696e6b737973_managed_psk; interface=net.connman.Service; member=PropertyChanged string "Timeservers" variant array [ string "0.pool.ntp.org" string "1.pool.ntp.org" string "2.pool.ntp.org" ] signal time=1714023672.502688 sender=:1.3 -> destination=(null destination) serial=372 path=/; interface=net.connman.Manager; member=PropertyChanged string "State" variant string "ready" signal time=1714023672.502993 sender=:1.3 -> destination=(null destination) serial=373 path=/net/connman/service/wifi_78c40ee90037_6c696e6b737973_managed_psk; interface=net.connman.Service; member=PropertyChanged string "State" variant string "ready" signal time=1714023672.513583 sender=:1.3 -> destination=(null destination) serial=374 path=/net/connman/service/wifi_78c40ee90037_6c696e6b737973_managed_psk; interface=net.connman.Service; member=PropertyChanged string "Domains" variant array [ ] signal time=1714023672.513953 sender=:1.3 -> destination=(null destination) serial=375 path=/net/connman/service/wifi_78c40ee90037_6c696e6b737973_managed_psk; interface=net.connman.Service; member=PropertyChanged string "Proxy" variant array [ dict entry( string "Method" variant string "direct" ) ] signal time=1714023672.515094 sender=:1.3 -> destination=(null destination) serial=376 path=/net/connman/service/wifi_78c40ee90037_6c696e6b737973_managed_psk; interface=net.connman.Service; member=PropertyChanged string "Timeservers" variant array [ ] signal time=1714023672.526928 sender=:1.3 -> destination=(null destination) serial=377 path=/net/connman/technology/ethernet; interface=net.connman.Technology; member=PropertyChanged string "Connected" variant boolean true signal time=1714023672.531894 sender=:1.3 -> destination=(null destination) serial=378 path=/net/connman/service/wifi_78c40ee90037_6c696e6b737973_managed_psk; interface=net.connman.Service; member=PropertyChanged string "IPv4" variant array [ dict entry( string "Method" variant string "manual" ) dict entry( string "Address" variant string "192.168.1.111" ) dict entry( string "Netmask" variant string "255.255.255.0" ) ] signal time=1714023672.599537 sender=:1.3 -> destination=(null destination) serial=379 path=/; interface=net.connman.Manager; member=ServicesChanged array [ struct { object path "/net/connman/service/ethernet_0030d62f6718_cable" array [ dict entry( string "Type" variant string "ethernet" ) dict entry( string "Security" variant array [ ] ) dict entry( string "State" variant string "ready" ) dict entry( string "Favorite" variant boolean true ) dict entry( string "Immutable" variant boolean false ) dict entry( string "AutoConnect" variant boolean true ) dict entry( string "Name" variant string "Wired" ) dict entry( string "Ethernet" variant array [ dict entry( string "Method" variant string "auto" ) dict entry( string "Interface" variant string "eth0" ) dict entry( string "Address" variant string "00:30:D6:2F:67:18" ) dict entry( string "MTU" variant uint16 1500 ) ] ) dict entry( string "IPv4" variant array [ dict entry( string "Method" variant string "manual" ) dict entry( string "Address" variant string "192.168.1.110" ) dict entry( string "Netmask" variant string "255.255.255.0" ) dict entry( string "Gateway" variant string "192.168.1.1" ) ] ) dict entry( string "IPv4.Configuration" variant array [ dict entry( string "Method" variant string "manual" ) dict entry( string "Address" variant string "192.168.1.110" ) dict entry( string "Netmask" variant string "255.255.255.0" ) dict entry( string "Gateway" variant string "192.168.1.1" ) ] ) dict entry( string "IPv6" variant array [ ] ) dict entry( string "IPv6.Configuration" variant array [ dict entry( string "Method" variant string "auto" ) dict entry( string "Privacy" variant string "disabled" ) ] ) dict entry( string "Nameservers" variant array [ string "8.8.8.8" string "1.1.1.1" ] ) dict entry( string "Nameservers.Configuration" variant array [ ] ) dict entry( string "Timeservers" variant array [ string "0.pool.ntp.org" string "1.pool.ntp.org" string "2.pool.ntp.org" ] ) dict entry( string "Timeservers.Configuration" variant array [ ] ) dict entry( string "Domains" variant array [ ] ) dict entry( string "Domains.Configuration" variant array [ ] ) dict entry( string "Proxy" variant array [ dict entry( string "Method" variant string "direct" ) ] ) dict entry( string "Proxy.Configuration" variant array [ ] ) dict entry( string "mDNS" variant boolean false ) dict entry( string "mDNS.Configuration" variant boolean false ) dict entry( string "Provider" variant array [ ] ) ] } struct { object path "/net/connman/service/wifi_78c40ee90037_6c696e6b737973_managed_psk" array [ ] } struct { object path "/net/connman/service/wifi_78c40ee90037_4542434f4e542d4775657374_managed_psk" array [ ] } struct { object path "/net/connman/service/wifi_78c40ee90037_4542434f4e542e434f4d2d3547_managed_ieee8021x" array [ ] } ] array [ ] signal time=1714023672.620169 sender=:1.3 -> destination=(null destination) serial=380 path=/; interface=net.connman.Clock; member=PropertyChanged string "TimeserverSynced" variant boolean true signal time=1714023672.620520 sender=:1.3 -> destination=(null destination) serial=381 path=/; interface=net.connman.Clock; member=PropertyChanged string "Time" variant uint64 1714023672 signal time=1714023672.670343 sender=:1.3 -> destination=(null destination) serial=382 path=/net/connman/service/ethernet_0030d62f6718_cable; interface=net.connman.Service; member=PropertyChanged string "State" variant string "online" signal time=1714023672.670652 sender=:1.3 -> destination=(null destination) serial=383 path=/; interface=net.connman.Manager; member=PropertyChanged string "State" variant string "online" signal time=1714023672.772130 sender=:1.3 -> destination=(null destination) serial=384 path=/; interface=net.connman.Manager; member=ServicesChanged array [ struct { object path "/net/connman/service/ethernet_0030d62f6718_cable" array [ ] } struct { object path "/net/connman/service/wifi_78c40ee90037_6c696e6b737973_managed_psk" array [ ] } struct { object path "/net/connman/service/wifi_78c40ee90037_4542434f4e542d4775657374_managed_psk" array [ ] } struct { object path "/net/connman/service/wifi_78c40ee90037_4542434f4e542e434f4d2d3547_managed_ieee8021x" array [ ] } ] array [ ]