Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

When giving dbus send command for AddExternalRoute, otbr-agent crashing #2079

Closed
gadekula1 opened this issue Oct 30, 2023 · 10 comments · Fixed by #2128
Closed

When giving dbus send command for AddExternalRoute, otbr-agent crashing #2079

gadekula1 opened this issue Oct 30, 2023 · 10 comments · Fixed by #2128
Assignees

Comments

@gadekula1
Copy link

When giving dbus send command for AddExternalRoute, otbr-agent crashing
please find below dbus send command
dbus-send --system --print-reply --dest=io.openthread.BorderRouter.wpan0 /io/openthread/BorderRouter/wpan0 io.openthread.BorderRouter.AddExternalRoute array:byte:0x00,0x11 byte:0x01 uint16:byte:bool:bool:0x1111:0x01:0x00:0x00

log of otbr-agent:
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.416 [C] Platform------: ------------------ BEGINNING OF CRASH -------------
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.416 [C] Platform------: *** FATAL ERROR: Caught signal: 11 (Segmentation fault)
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.427 [C] Platform------: # 0: /usr/sbin/otbr-agent(+0x2ce968) [0x555cb9e968]
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.427 [C] Platform------: # 1: /usr/sbin/otbr-agent(+0x2ceaac) [0x555cb9eaac]
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.427 [C] Platform------: # 2: linux-vdso.so.1 __kernel_rt_sigreturn+0x0 [0x97ec27a8]
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.427 [C] Platform------: # 3: /lib/aarch64-linux-gnu/libdbus-1.so.3 _dbus_type_reader_recurse+0x1e0 [0x97e370e0]
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.427 [C] Platform------: # 4: /usr/sbin/otbr-agent otbr::DBus::DBusMessageExtract(DBusMessageIter*, otbr::DBus::Ip6Prefix&)+0x24 [0x5ccba744]
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.427 [C] Platform------: # 5: /usr/sbin/otbr-agent otbr::DBus::DBusMessageExtract(DBusMessageIter*, otbr::DBus::ExternalRoute&)+0x30 [0x5ccba9a0]
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.427 [C] Platform------: # 6: /usr/sbin/otbr-agent otbr::DBus::DBusMessageIterFor<1ul, 1ul, otbr::DBus::ExternalRoute&>::ConvertToTuple(DBusMessageIter*, std::tupleotbr::DBus::ExternalRoute&&)+0x28 [0x5cb44a3c]
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.427 [C] Platform------: # 7: /usr/sbin/otbr-agent otbrError otbr::DBus::ConvertToTupleotbr::DBus::ExternalRoute&(DBusMessageIter*, std::tupleotbr::DBus::ExternalRoute&&)+0x1c [0x5cb4098c]
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.427 [C] Platform------: # 8: /usr/sbin/otbr-agent otbrError otbr::DBus::DBusMessageToTupleotbr::DBus::ExternalRoute&(DBusMessage&, std::tupleotbr::DBus::ExternalRoute&&)+0x50 [0x5cb3c378]
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.427 [C] Platform------: # 9: /usr/sbin/otbr-agent otbr::DBus::DBusThreadObject::AddExternalRouteHandler(otbr::DBus::DBusRequest&)+0x64 [0x5cb33c00]
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.427 [C] Platform------: #10: /usr/sbin/otbr-agent void std::__invoke_impl<void, void (otbr::DBus::DBusThreadObject::&)(otbr::DBus::DBusRequest&), otbr::DBus::DBusThreadObject&, otbr::DBus::DBusRequest&>(std::__invoke_memfun_deref, void (otbr::DBus::DBusThreadObject::&)(otbr::DBus::DBusRequest&), otbr::DBus::DBusThreadObject&, otbr::DBus::DBusRequest&)+0x90 [0x5cb4e780]
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.427 [C] Platform------: #11: /usr/sbin/otbr-agent std::__invoke_result<void (otbr::DBus::DBusThreadObject::&)(otbr::DBus::DBusRequest&), otbr::DBus::DBusThreadObject&, otbr::DBus::DBusRequest&>::type std::__invoke<void (otbr::DBus::DBusThreadObject::&)(otbr::DBus::DBusRequest&), otbr::DBus::DBusThreadObject&, otbr::DBus::DBusRequest&>(void (otbr::DBus::DBusThreadObject::&)(otbr::DBus::DBusRequest&), otbr::DBus::DBusThreadObject&, otbr::DBus::DBusRequest&)+0x50 [0x5cb4cd00]
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.427 [C] Platform------: #12: /usr/sbin/otbr-agent void std::_Bind<void (otbr::DBus::DBusThreadObject::(otbr::DBus::DBusThreadObject, std::_Placeholder<1>))(otbr::DBus::DBusRequest&)>::__call<void, otbr::DBus::DBusRequest&, 0ul, 1ul>(std::tupleotbr::DBus::DBusRequest&&&, std::_Index_tuple<0ul, 1ul>)+0x68 [0x5cb4b144]
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.427 [C] Platform------: #13: /usr/sbin/otbr-agent void std::_Bind<void (otbr::DBus::DBusThreadObject::(otbr::DBus::DBusThreadObject, std::_Placeholder<1>))(otbr::DBus::DBusRequest&)>::operator()<otbr::DBus::DBusRequest&, void>(otbr::DBus::DBusRequest&)+0x44 [0x5cb496d4]
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.427 [C] Platform------: #14: /usr/sbin/otbr-agent void std::__invoke_impl<void, std::_Bind<void (otbr::DBus::DBusThreadObject::(otbr::DBus::DBusThreadObject, std::_Placeholder<1>))(otbr::DBus::DBusRequest&)>&, otbr::DBus::DBusRequest&>(std::__invoke_other, std::_Bind<void (otbr::DBus::DBusThreadObject::(otbr::DBus::DBusThreadObject, std::_Placeholder<1>))(otbr::DBus::DBusRequest&)>&, otbr::DBus::DBusRequest&)+0x38 [0x5cb47174]
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.427 [C] Platform------: #15: /usr/sbin/otbr-agent std::enable_if<std::_and<std::is_void, std::__is_invocable<std::_Bind<void (otbr::DBus::DBusThreadObject::(otbr::DBus::DBusThreadObject, std::_Placeholder<1>))(otbr::DBus::DBusRequest&)>&, otbr::DBus::DBusRequest&> >::value, void>::type std::__invoke_r<void, std::_Bind<void (otbr::DBus::DBusThreadObject::(otbr::DBus::DBusThreadObject, std::_Placeholder<1>))(otbr::DBus::DBusRequest&)>&, otbr::DBus::DBusRequest&>(std::_Bind<void (otbr::DBus::DBusThreadObject::(otbr::DBus::DBusThreadObject, std::_Placeholder<1>))(otbr::DBus::DBusRequest&)>&, otbr::DBus::DBusRequest&)+0x38 [0x5cb43468]
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.427 [C] Platform------: #16: /usr/sbin/otbr-agent std::_Function_handler<void (otbr::DBus::DBusRequest&), std::_Bind<void (otbr::DBus::DBusThreadObject::(otbr::DBus::DBusThreadObject, std::_Placeholder<1>))(otbr::DBus::DBusRequest&)> >::_M_invoke(std::_Any_data const&, otbr::DBus::DBusRequest&)+0x34 [0x5cb3f344]
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.428 [C] Platform------: #17: /usr/sbin/otbr-agent std::function<void (otbr::DBus::DBusRequest&)>::operator()(otbr::DBus::DBusRequest&) const+0x4c [0x5cb523bc]
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.428 [C] Platform------: #18: /usr/sbin/otbr-agent otbr::DBus::DBusObject::MessageHandler(DBusConnection*, DBusMessage*)+0x15c [0x5cb50f20]
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.428 [C] Platform------: #19: /usr/sbin/otbr-agent otbr::DBus::DBusObject::sMessageHandler(DBusConnection*, DBusMessage*, void*)+0x2c [0x5cb50dbc]
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.428 [C] Platform------: #20: /lib/aarch64-linux-gnu/libdbus-1.so.3(+0x29aa8) [0x7f97e42aa8]
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.428 [C] Platform------: #21: /lib/aarch64-linux-gnu/libdbus-1.so.3 dbus_connection_dispatch+0x4e4 [0x97e30e84]
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.428 [C] Platform------: #22: /usr/sbin/otbr-agent otbr::DBus::DBusAgent::Process(otSysMainloopContext const&)+0x210 [0x5cb28214]
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.428 [C] Platform------: #23: /usr/sbin/otbr-agent otbr::MainloopManager::Process(otSysMainloopContext const&)+0x7c [0x5cca4ac8]
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.428 [C] Platform------: #24: /usr/sbin/otbr-agent otbr::Application::Run()+0x204 [0x5cb1692c]
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.428 [C] Platform------: #25: /usr/sbin/otbr-agent(+0x248084) [0x555cb18084]
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.428 [C] Platform------: #26: /usr/sbin/otbr-agent main+0x88 [0x5cb18244]
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.428 [C] Platform------: #27: /lib/aarch64-linux-gnu/libc.so.6 __libc_start_main+0xe8 [0x97992e18]
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.428 [C] Platform------: #28: /usr/sbin/otbr-agent(+0x246388) [0x555cb16388]
Oct 23 14:35:33 raspberrypi otbr-agent[1854]: 00:00:05.428 [C] Platform------: ------------------ END OF CRASH ------------------
Oct 23 14:35:33 raspberrypi systemd[1]: otbr-agent.service: Main process exited, code=killed, status=11/SEGV
Oct 23 14:35:33 raspberrypi systemd[1]: otbr-agent.service: Failed with result 'signal'.

seems like passing parameters is not in correct way

can we get examples of dbus commands for RemoveOnMeshPrefix, AddExternalRoute , basically the methods which are having structure as parameters
and also we want to knoe how to get signagls using dbus when there is a change in thread properties

@jdswensen
Copy link
Contributor

Hi @gadekula1, could you run this command again but also capture the output of dbus-monitor --system? For example:

# terminal window 1
dbus-monitor --system > dbus.log

# terminal window 2
dbus-send --system --print-reply --dest=io.openthread.BorderRouter.wpan0 /io/openthread/BorderRouter/wpan0 io.openthread.BorderRouter.AddExternalRoute array:byte:0x00,0x11 byte:0x01 uint16:byte:bool:bool:0x1111:0x01:0x00:0x00

I was able to get a crash on my setup, but it's a different signal. I'm curious to know if the data is being properly formatted. The dbus-monitor command should print out the message format as it is processed. On my system, the dbus-send call you provided did not match the introspect document. You may need to double check the syntax of the command or try sending the message in a different way to insure correct syntax. For example, python bindings could be used to quickly test something.

method call time=1698867030.467833 sender=:1.22 -> destination=io.openthread.BorderRouter.wpan0 serial=2 path=/io/openthread/BorderRouter/wpan0; interface=io.openthread.BorderRouter; member=AddExternalRoute
   array of bytes [
      00 11
   ]
   byte 1
   uint16 0

@gadekula1
Copy link
Author

Thanks @jdswensen , for reply,
Please find below dbus monitor log and dbus command

dbus-send --system --print-reply --dest=io.openthread.BorderRouter.wpan0 /io/openthread/BorderRouter/wpan0 io.openth read.BorderRouter.AddExternalRoute array:byte:0x00,0x11 byte:0x01 uint16:byte:bool:bool:0x1111:0x01:0x00:0x00

Error org.freedesktop.DBus.Error.NoReply: Message recipient disconnected from message bus without replying

cat dbus.log

signal time=1698980780.789248 sender=org.freedesktop.DBus -> destination=:1.29 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
string ":1.29"
signal time=1698980780.789338 sender=org.freedesktop.DBus -> destination=:1.29 serial=4 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameLost
string ":1.29"
method call time=1698980784.969485 sender=:1.30 -> destination=org.freedesktop.DBus serial=1 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=Hello
method return time=1698980784.969528 sender=org.freedesktop.DBus -> destination=:1.30 serial=1 reply_serial=1
string ":1.30"
signal time=1698980784.969545 sender=org.freedesktop.DBus -> destination=(null destination) serial=10 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
string ":1.30"
string ""
string ":1.30"
signal time=1698980784.969567 sender=org.freedesktop.DBus -> destination=:1.30 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
string ":1.30"
method call time=1698980784.970229 sender=:1.30 -> destination=io.openthread.BorderRouter.wpan0 serial=2 path=/io/openthread/BorderRouter/wpan0; interface=io.openthread.BorderRouter; member=AddExternalRoute
array of bytes [
00 11
]
byte 1
uint16 0
signal time=1698980785.083220 sender=org.freedesktop.DBus -> destination=:1.28 serial=5 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameLost
string "io.openthread.BorderRouter.wpan0"
signal time=1698980785.083272 sender=org.freedesktop.DBus -> destination=(null destination) serial=11 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
string "io.openthread.BorderRouter.wpan0"
string ":1.28"
string ""
signal time=1698980785.083609 sender=org.freedesktop.DBus -> destination=:1.28 serial=6 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameLost
string ":1.28"
signal time=1698980785.083644 sender=org.freedesktop.DBus -> destination=(null destination) serial=12 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
string ":1.28"
string ":1.28"
string ""
error time=1698980785.083667 sender=org.freedesktop.DBus -> destination=:1.30 error_name=org.freedesktop.DBus.Error.NoReply reply_serial=2
string "Message recipient disconnected from message bus without replying"
signal time=1698980785.084110 sender=org.freedesktop.DBus -> destination=:1.27 serial=13 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameLost
string ":1.27"
signal time=1698980785.084145 sender=org.freedesktop.DBus -> destination=(null destination) serial=34 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
string ":1.27"
string ":1.27"
string ""
signal time=1698980785.084550 sender=org.freedesktop.DBus -> destination=:1.30 serial=4 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameLost
string ":1.30"
signal time=1698980785.084581 sender=org.freedesktop.DBus -> destination=(null destination) serial=35 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
string ":1.30"
string ":1.30"
string ""
`
observation :
failing at dbus_message_iter_recurse(aIter, &sub);
while parsing aRoute.mPrefix

(gdb) p aRoute.mPrefix
$2 = {mPrefix = {<std::_Vector_base<unsigned char, std::allocator >> = {
M_impl = {<std::allocator> = {<__gnu_cxx::new_allocator> = {}, }, <std::_Vector_base<unsigned char, std::allocator >::_Vector_impl_data> = {M_start = 0x0, M_finish = 0x0, M_end_of_storage = 0x0}, }}, }, mLength = 0 '\000'}

can we get complete/working dbus send command for AddExternalRoute if possible?

@gadekula1
Copy link
Author

now we are able to pass values correctly ((ayy)y(bbbbbbb)).

method call time=1672542658.774958 sender=:1.44 -> destination=io.openthread.BorderRouter.wpan0 serial=2 path=/io/openthread/BorderRouter/wpan0; interface=io.openthread.BorderRouter.wpan0; member=AddOnMeshPrefix
struct {
struct {
array of bytes [
fd 11 00 22 00 00 00 00
]
byte 64
}
byte 0
struct {
boolean true
boolean true
boolean false
boolean false
boolean true
boolean true
boolean true
}
}
error time=1672542658.775497 sender=:1.29 -> destination=:1.44 error_name=org.freedesktop.DBus.Error.UnknownMethod reply_serial=2
string "Method "AddOnMeshPrefix" with signature "((ayy)y(bbbbbbb))" on interface "io.openthread.BorderRouter.wpan0" doesn't exist
"
still otbr-agent throwing error.

AddOnMeshPrefix method from Introspect

<!-- AddOnMeshPrefix: Add an on-mesh prefix to the network.
  @prefix: The on-mesh prefix.

  The on-mesh prefix structure is:
  <literallayout>
    struct {
      struct {
        uint8[] prefix_bytes
        uint8 prefix_length
      }
      byte preference
      struct {
        boolean preferred
        boolean slaac
        boolean dhcp
        boolean configure
        boolean default_route
        boolean on_mesh
        boolean stable
      }
    }
  </literallayout>
-->
<method name="AddOnMeshPrefix">
  <arg name="prefix" type="((ayy)y(bbbbbbb))"/>
</method>

@superwhd
Copy link
Contributor

For the issue in #2079 (comment), I've sent #2126 which should be able to fix the issue. @gadekula1 could you cherry-pick it and have a try?

@superwhd superwhd self-assigned this Dec 11, 2023
@gadekula1
Copy link
Author

gadekula1 commented Dec 11, 2023

@superwhd
Thanks for patch, even we tried with introspect of OnMeshPrefixes get property.

Now calling OnMeshPrefixes method with c++ dbus code with below parameters

method call time=1672532690.284219 sender=:1.22 -> destination=io.openthread.BorderRouter.wpan0 serial=2 path=/io/openthread/BorderRouter/wpan0; interface=io.openthread.BorderRouter; member=AddOnMeshPrefix
struct {
struct {
array of bytes [
fd 12 00 23 00 00 00 00
]
byte 64
}
uint16 63489
byte 0
boolean true
boolean true
boolean false
boolean false
boolean true
boolean true
boolean true
boolean false
boolean false
}
method return time=1672532690.286115 sender=:1.19 -> destination=:1.22 serial=10 reply_serial=2

Result of OnMeshPrefixes get property

dbus_test# dbus-send --system --print-reply --dest=io.openthread.BorderRouter.wpan0 /io/openthread/BorderRouter/wpan
0 org.freedesktop.DBus.Properties.Get string:io.openthread.BorderRouter string:OnMeshPrefixes
method return time=1672533309.560068 sender=:1.19 -> destination=:1.25 serial=13 reply_serial=2
variant array [
struct {
struct {
array of bytes [
fd 97 bf 63 01 2d 00 01
]
byte 64
}
uint16 63488
byte 255
boolean true
boolean true
boolean false
boolean false
boolean false
boolean true
boolean true
boolean false
boolean false
}
struct {
struct {
array of bytes [
fd 12 00 23 00 00 00 00
]
byte 64
}
uint16 63488
byte 0
boolean false
boolean true
boolean false
boolean false
boolean true
boolean true
boolean true
boolean false
boolean false
}
]

Note we tried to call method with dbus-send command but otbr-agent crashing

dbus-send --system --print-reply --dest=io.openthread.BorderRouter.wpan0 /io/openthread/BorderRouter/wpan
0 io.openthread.BorderRouter.AddOnMeshPrefix array:byte:0xfd,0x11,0x00,0x22,0x00,0x00,0x00,0x00 byte:0x64 uint16:0x15360 byte:0x00 bo
olean:true boolean:true boolean:false boolean:false boolean:true boolean:true boolean:true boolean:false boolean:false
Error org.freedesktop.DBus.Error.NoReply: Message recipient disconnected from message bus without replying

logs of dbus monitor
method call time=1672533472.568218 sender=:1.29 -> destination=io.openthread.BorderRouter.wpan0 serial=2 path=/io/openthread/BorderRouter/wpan0; interface=io.openthread.BorderRouter; member=AddOnMeshPrefix
array of bytes [
fd 11 00 22 00 00 00 00
]
byte 100
uint16 21344
byte 0
boolean true
boolean true
boolean false
boolean false
boolean true
boolean true
boolean true
boolean false
boolean false

unable send parameters in structure format using dbus-send. can we know how to pass parameters properly using dbus-send command.

@superwhd
Copy link
Contributor

I reproduced the crash issue via dbus-send command in #2079 (comment).

I'm not sure if the payload of dbus-send is correct but otbr-agent shouldn't crash even if the input is invalid. I'll take a look to fix it.

BTW, I was able to call this API using gdbus:

gdbus call --system --dest io.openthread.BorderRouter.wpan0 --method=io.openthread.BorderRouter.AddOnMeshPrefix --object-path /io/openthread/BorderRouter/wpan0 "(([0xfd,0x11,0x12,0x13], 64),0x5343, 0x01, false,false,false,false,false,false,false,false,false)

@gadekula1
Copy link
Author

@superwhd
similar crash for AddExternalRoute

dbus-send --system --print-reply --dest=io.openthread.BorderRouter.wpan0 /io/openthread/BorderRouter/wpan0 io.opent
hread.BorderRouter.AddExternalRoute array:byte:0x00,0x11 byte:0x01 uint16:byte:bool:bool:0x1111:0x01:0x00:0x00
Error org.freedesktop.DBus.Error.NoReply: Message recipient disconnected from message bus without replying

not implemented error for PermitUnsecureJoin

dbus-send --system --print-reply --dest=io.openthread.BorderRouter.wpan0 /io/openthread/BorderRouter/wpan0 io.openth
read.BorderRouter.PermitUnsecureJoin uint16:0x01243 uint32:0x20
Error io.openthread.Error.NotImplemented: io.openthread.Error.NotImplemented

@superwhd
Copy link
Contributor

@gadekula1 I think your payload is different from the expected type. The prefix byte array (array:byte:0x00,0x11) and the prefix length (byte:0x01) should be wrapped into a struct. However, I'm not sure how to send a struct as argument via dbus-send.

For your reference, here's how I called AddExternalRoute via gdbus

$ sudo gdbus call --system --dest io.openthread.BorderRouter.wpan0 --method=io.openthread.BorderRouter.AddExternalRoute --object-path /io/openthread/BorderRouter/wpan0 "(([0xfd,0x11,0x12,0x13,0x13,0x14,0x15,0x16], 64),0x5343, 0x01, false,false)"

@gadekula1
Copy link
Author

@superwhd, Thanks, applied #2128 locally, now no crash observed for AddExternalRoute and AddOnMeshPrefix methods

dbus-send --system --print-reply --dest=io.openthread.BorderRouter.wpan0 /io/openthread/BorderRouter/wpan0
io.openthread.BorderRouter.AddExternalRoute array:byte:0x00,0x11 byte:0x01 uint16:byte:bool:bool:0x1111:0x01:0x00:0x00
Error io.openthread.Error.InvalidArgs: io.openthread.Error.InvalidArgs

dbus-send --system --print-reply --dest=io.openthread.BorderRouter.wpan0 /io/openthread/BorderRouter/wpan0
io.openthread.BorderRouter.AddOnMeshPrefix array:byte:0xfd,0x11,0x00,0x22,0x00,0x00,0x00,0x00 byte:0x64 uint16:0x15360 byte:0x00 boo
lean:true boolean:true boolean:false boolean:false boolean:true boolean:true boolean:true boolean:false boolean:false
Error io.openthread.Error.InvalidArgs: io.openthread.Error.InvalidArgs

@jwhui
Copy link
Member

jwhui commented Dec 12, 2023

Resolved by #2128

@jwhui jwhui closed this as completed Dec 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants