khvzak / bluez-tools

A set of tools to manage bluetooth devices for linux
GNU General Public License v2.0
179 stars 53 forks source link

Assertion Failure #15

Open valkjsaaa opened 7 years ago

valkjsaaa commented 7 years ago

Hi,

I have tried to use bt-network to create a PAN network. However, I encountered this assertion failure. What might be the problem here?

Thanks a lot, Jackie

➜  ~ sudo gdb bt-network
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.04) 7.11.1
Copyright (C) 2016 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 "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://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 bt-network...(no debugging symbols found)...done.
(gdb) run -c "xx:xx:xx:xx:xx:xx" gn
Starting program: /usr/bin/bt-network -c "xx:xx:xx:xx:xx:xx" gn
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff5d55700 (LWP 3772)]
[New Thread 0x7ffff5554700 (LWP 3773)]
**
ERROR:lib/helpers.c:318:intf_supported: assertion failed: (introspection_proxy != NULL)

Thread 1 "bt-network" received signal SIGABRT, Aborted.
0x00007ffff7157428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
54  ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) 
keaton-freude commented 7 years ago

I have this same issue when using bt-obex. I put some logging into the code and discovered that it was failing to get a proxy to org.bluez.obex. I then realized that when I updated BlueZ from what I had on stock Ubuntu the obex daemon was no longer functioning. I found that obexd is built by bluez, but was not being installed for some reason (maybe its deprecated? It's hard to tell with BlueZ at times). It was still being built, so from my BlueZ src directory (after make), I copied it to /usr/bin. Instructions: $ cd bluez-5.45 // Or whatever directory where you built BlueZ $ mv ./obexd/src/obexd /usr/bin/obexd $ chmod +x /usr/bin/obexd $ obexd &

This allowed bt-obex tool to pass the assertion, so I'm confident that was the issue.

@OP Your comment does not mention what version of BlueZ you are running. Did you also update BlueZ from source?

That said, I still have an issue in bt-obex that I am looking into (transfer fails due to another assertion failure), however the above assertion does not seem to be an issue in the code.

keaton-freude commented 7 years ago

I looked into further issues and they seemed to have been setup related as I am able to use bt-obex without the assertion given in the OP issue.

Try making sure obexd is running (I could not get systemd to load it correctly, so I just make sure obexd is running before trying anything). If that doesn't work, then I'm not sure what the issue could be as it fixed it for me.