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

terminate called after throwing an instance of 'BLEPP::SocketConnectFailed' #37

Open
moe5k opened this issue Nov 8, 2018 · 12 comments
Open

Comments

@moe5k
Copy link

moe5k commented Nov 8, 2018

Hi,

i got problems while connecting ...

There are no probs to connect, read etc. via bluetoothctl - tool.

info  1541687672.925407 log_fd_: Socket success: 224 (src/blestatemachine.cc)
info  1541687672.925454 log_fd_: Socket success: 269 (src/blestatemachine.cc)
info  1541687672.925480 log_fd_: Socket success: 174 (src/blestatemachine.cc)
info  1541687672.925501 log_l2cap_options: options.omtu = 672
info  1541687672.925522 log_l2cap_options: options.imtu = 672
info  1541687672.925545 log_l2cap_options: options.flush_to = 65535
info  1541687672.925565 log_l2cap_options: options.mode = 0
info  1541687672.925589 log_l2cap_options: options.fcs = 1
info  1541687672.925611 log_l2cap_options: options.max_tx = 3
info  1541687672.925633 log_l2cap_options: options.txwin_size = 63
debug 1541687672.925658 connect: address = cf:33:8f:4d:9c:3e
debug 1541687672.925679 connect: str2ba = 0
error 1541687713.911835 log_fd_: Error on line: 296 (src/blestatemachine.cc): Connection refused
terminate called after throwing an instance of 'BLEPP::SocketConnectFailed'
  what():  Connection refused
Aborted

Any suggestions?

@edrosten
Copy link
Owner

Have you made sure that nothing else is already connected?

If nothing was, and it's still failing to connect, can you try getting a log using hcidump or btmon for libble++ and bluetoothctl and paste them here? That should hopefully show up any discrepancies.

@moe5k
Copy link
Author

moe5k commented Nov 12, 2018

Yes, I am sure there is nothing else connected.
First I connect / disconnect via blutoothctl:

[bluetooth]# connect CF:33:8F:4D:9C:3E 
Attempting to connect to CF:33:8F:4D:9C:3E
[CHG] Device CF:33:8F:4D:9C:3E Connected: yes
Connection successful
[CHG] Device CF:33:8F:4D:9C:3E ServicesResolved: yes
[IMU_4d9c3e]# disconnect CF:33:8F:4D:9C:3E 
Attempting to disconnect from CF:33:8F:4D:9C:3E
[CHG] Device CF:33:8F:4D:9C:3E ServicesResolved: no
Successful disconnected
[CHG] Device CF:33:8F:4D:9C:3E Connected: no

brings the logging via btmon:

< HCI Command: LE Set Scan Parameters (0x08|0x000b) plen 7  #1 [hci0] 26.447397
        Type: Passive (0x00)
        Interval: 60.000 msec (0x0060)
        Window: 30.000 msec (0x0030)
        Own address type: Public (0x00)
        Filter policy: Ignore not in white list (0x01)
> HCI Event: Command Complete (0x0e) plen 4                 #2 [hci0] 26.448175
      LE Set Scan Parameters (0x08|0x000b) ncmd 1
        Status: Success (0x00)
< HCI Command: LE Set Scan Enable (0x08|0x000c) plen 2      #3 [hci0] 26.448269
        Scanning: Enabled (0x01)
        Filter duplicates: Enabled (0x01)
> HCI Event: Command Complete (0x0e) plen 4                 #4 [hci0] 26.450212
      LE Set Scan Enable (0x08|0x000c) ncmd 1
        Status: Success (0x00)
> HCI Event: LE Meta Event (0x3e) plen 43                   #5 [hci0] 30.420352
      LE Advertising Report (0x02)
        Num reports: 1
        Event type: Connectable undirected - ADV_IND (0x00)
        Address type: Random (0x01)
        Address: CF:33:8F:4D:9C:3E (Static)
        Data length: 31
        Appearance: Unknown (0x0000)
        Flags: 0x06
          LE General Discoverable Mode
          BR/EDR Not Supported
        128-bit Service UUIDs (complete): 1 entry
          Nordic UART Service (6e400001-b5a3-f393-e0a9-e50e24dcca9e)
        Name (short): IMU_
        RSSI: -48 dBm (0xd0)
< HCI Command: LE Set Scan Enable (0x08|0x000c) plen 2      #6 [hci0] 30.420474
        Scanning: Disabled (0x00)
        Filter duplicates: Disabled (0x00)
> HCI Event: Command Complete (0x0e) plen 4                 #7 [hci0] 30.428346
      LE Set Scan Enable (0x08|0x000c) ncmd 1
        Status: Success (0x00)
< HCI Command: LE Create Connection (0x08|0x000d) plen 25   #8 [hci0] 30.428459
        Scan interval: 60.000 msec (0x0060)
        Scan window: 60.000 msec (0x0060)
        Filter policy: White list is not used (0x00)
        Peer address type: Random (0x01)
        Peer address: CF:33:8F:4D:9C:3E (Static)
        Own address type: Public (0x00)
        Min connection interval: 30.00 msec (0x0018)
        Max connection interval: 50.00 msec (0x0028)
        Connection latency: 0 (0x0000)
        Supervision timeout: 420 msec (0x002a)
        Min connection length: 0.000 msec (0x0000)
        Max connection length: 0.000 msec (0x0000)
> HCI Event: Command Status (0x0f) plen 4                   #9 [hci0] 30.436247
      LE Create Connection (0x08|0x000d) ncmd 1
        Status: Success (0x00)
> HCI Event: LE Meta Event (0x3e) plen 19                  #10 [hci0] 30.624344
      LE Connection Complete (0x01)
        Status: Success (0x00)
        Handle: 70
        Role: Master (0x00)
        Peer address type: Random (0x01)
        Peer address: CF:33:8F:4D:9C:3E (Static)
        Connection interval: 50.00 msec (0x0028)
        Connection latency: 0 (0x0000)
        Supervision timeout: 420 msec (0x002a)
        Master clock accuracy: 0x00
@ MGMT Event: Device Connected (0x000b) plen 44       {0x0005} [hci0] 30.624434
        LE Address: CF:33:8F:4D:9C:3E (Static)
        Flags: 0x00000000
        Data length: 31
        Appearance: Unknown (0x0000)
        Flags: 0x06
          LE General Discoverable Mode
          BR/EDR Not Supported
        128-bit Service UUIDs (complete): 1 entry
          Nordic UART Service (6e400001-b5a3-f393-e0a9-e50e24dcca9e)
        Name (short): IMU_
@ MGMT Event: Device Connected (0x000b) plen 44       {0x0002} [hci0] 30.624434
        LE Address: CF:33:8F:4D:9C:3E (Static)
        Flags: 0x00000000
        Data length: 31
        Appearance: Unknown (0x0000)
        Flags: 0x06
          LE General Discoverable Mode
          BR/EDR Not Supported
        128-bit Service UUIDs (complete): 1 entry
          Nordic UART Service (6e400001-b5a3-f393-e0a9-e50e24dcca9e)
        Name (short): IMU_
@ MGMT Event: Device Connected (0x000b) plen 44       {0x0001} [hci0] 30.624434
        LE Address: CF:33:8F:4D:9C:3E (Static)
        Flags: 0x00000000
        Data length: 31
        Appearance: Unknown (0x0000)
        Flags: 0x06
          LE General Discoverable Mode
          BR/EDR Not Supported
        128-bit Service UUIDs (complete): 1 entry
          Nordic UART Service (6e400001-b5a3-f393-e0a9-e50e24dcca9e)
        Name (short): IMU_
@ MGMT Event: Device Connected (0x000b) plen 44       {0x0004} [hci0] 30.624434
        LE Address: CF:33:8F:4D:9C:3E (Static)
        Flags: 0x00000000
        Data length: 31
        Appearance: Unknown (0x0000)
        Flags: 0x06
          LE General Discoverable Mode
          BR/EDR Not Supported
        128-bit Service UUIDs (complete): 1 entry
          Nordic UART Service (6e400001-b5a3-f393-e0a9-e50e24dcca9e)
        Name (short): IMU_
@ MGMT Event: Device Connected (0x000b) plen 44       {0x0003} [hci0] 30.624434
        LE Address: CF:33:8F:4D:9C:3E (Static)
        Flags: 0x00000000
        Data length: 31
        Appearance: Unknown (0x0000)
        Flags: 0x06
          LE General Discoverable Mode
          BR/EDR Not Supported
        128-bit Service UUIDs (complete): 1 entry
          Nordic UART Service (6e400001-b5a3-f393-e0a9-e50e24dcca9e)
        Name (short): IMU_
< HCI Command: LE Read Remote Used.. (0x08|0x0016) plen 2  #11 [hci0] 30.624602
        Handle: 70
> ACL Data RX: Handle 70 flags 0x02 dlen 7                 #12 [hci0] 30.627649
      ATT: Exchange MTU Request (0x02) len 2
        Client RX MTU: 247
> HCI Event: Command Status (0x0f) plen 4                  #13 [hci0] 30.628190
      LE Read Remote Used Features (0x08|0x0016) ncmd 1
        Status: Success (0x00)
> HCI Event: LE Meta Event (0x3e) plen 12                  #14 [hci0] 30.766252
      LE Read Remote Used Features (0x04)
        Status: Success (0x00)
        Handle: 70
        Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
          LE Encryption
< ACL Data TX: Handle 70 flags 0x00 dlen 7                 #15 [hci0] 30.766793
      ATT: Exchange MTU Response (0x03) len 2
        Server RX MTU: 517
< ACL Data TX: Handle 70 flags 0x00 dlen 7                 #16 [hci0] 30.766889
      ATT: Exchange MTU Request (0x02) len 2
        Client RX MTU: 517
> HCI Event: Number of Completed Packets (0x13) plen 5     #17 [hci0] 30.816332
        Num handles: 1
        Handle: 70
        Count: 1
> HCI Event: Number of Completed Packets (0x13) plen 5     #18 [hci0] 30.866320
        Num handles: 1
        Handle: 70
        Count: 1
> ACL Data RX: Handle 70 flags 0x02 dlen 7                 #19 [hci0] 30.915635
      ATT: Exchange MTU Response (0x03) len 2
        Server RX MTU: 247
< ACL Data TX: Handle 70 flags 0x00 dlen 7                 #20 [hci0] 30.915899
      ATT: Read Request (0x0a) len 2
        Handle: 0x0003
> HCI Event: Number of Completed Packets (0x13) plen 5     #21 [hci0] 30.966341
        Num handles: 1
        Handle: 70
        Count: 1
> ACL Data RX: Handle 70 flags 0x02 dlen 15                #22 [hci0] 31.015659
      ATT: Read Response (0x0b) len 10
        Value: 494d555f346439633365
< ACL Data TX: Handle 70 flags 0x00 dlen 7                 #23 [hci0] 31.015885
      ATT: Read Request (0x0a) len 2
        Handle: 0x0005
> HCI Event: Number of Completed Packets (0x13) plen 5     #24 [hci0] 31.072247
        Num handles: 1
        Handle: 70
        Count: 1
> ACL Data RX: Handle 70 flags 0x02 dlen 7                 #25 [hci0] 31.115460
      ATT: Read Response (0x0b) len 2
        Value: 0000
< ACL Data TX: Handle 70 flags 0x00 dlen 11                #26 [hci0] 31.115737
      ATT: Read By Group Type Request (0x10) len 6
        Handle range: 0x0001-0xffff
        Attribute group type: Primary Service (0x2800)
> HCI Event: Number of Completed Packets (0x13) plen 5     #27 [hci0] 31.166336
        Num handles: 1
        Handle: 70
        Count: 1
> ACL Data RX: Handle 70 flags 0x02 dlen 18                #28 [hci0] 31.215606
      ATT: Read By Group Type Response (0x11) len 13
        Attribute data length: 6
        Attribute group list: 2 entries
        Handle range: 0x0001-0x0009
        UUID: Generic Access Profile (0x1800)
        Handle range: 0x000a-0x000a
        UUID: Generic Attribute Profile (0x1801)
< ACL Data TX: Handle 70 flags 0x00 dlen 11                #29 [hci0] 31.215833
      ATT: Read By Group Type Request (0x10) len 6
        Handle range: 0x000b-0xffff
        Attribute group type: Primary Service (0x2800)
> HCI Event: Number of Completed Packets (0x13) plen 5     #30 [hci0] 31.266339
        Num handles: 1
        Handle: 70
        Count: 1
> ACL Data RX: Handle 70 flags 0x02 dlen 26                #31 [hci0] 31.315670
      ATT: Read By Group Type Response (0x11) len 21
        Attribute data length: 20
        Attribute group list: 1 entry
        Handle range: 0x000b-0xffff
        UUID: Nordic UART Service (6e400001-b5a3-f393-e0a9-e50e24dcca9e)
@ MGMT Command: Disconnect (0x0014) plen 7            {0x0001} [hci0] 43.798716
        LE Address: CF:33:8F:4D:9C:3E (Static)
< HCI Command: Disconnect (0x01|0x0006) plen 3             #32 [hci0] 43.798791
        Handle: 70
        Reason: Remote User Terminated Connection (0x13)
> HCI Event: Command Status (0x0f) plen 4                  #33 [hci0] 43.800291
      Disconnect (0x01|0x0006) ncmd 1
        Status: Success (0x00)
> HCI Event: Disconnect Complete (0x05) plen 4             #34 [hci0] 43.816289
        Status: Success (0x00)
        Handle: 70
        Reason: Connection Terminated By Local Host (0x16)
@ MGMT Event: Command Complete (0x0001) plen 10       {0x0001} [hci0] 43.816365
      Disconnect (0x0014) plen 7
        Status: Success (0x00)
        LE Address: CF:33:8F:4D:9C:3E (Static)
@ MGMT Event: Device Disconnected (0x000c) plen 8     {0x0005} [hci0] 43.816383
        LE Address: CF:33:8F:4D:9C:3E (Static)
        Reason: Connection terminated by local host (0x02)
@ MGMT Event: Device Disconnected (0x000c) plen 8     {0x0002} [hci0] 43.816383
        LE Address: CF:33:8F:4D:9C:3E (Static)
        Reason: Connection terminated by local host (0x02)
@ MGMT Event: Device Disconnected (0x000c) plen 8     {0x0004} [hci0] 43.816383
        LE Address: CF:33:8F:4D:9C:3E (Static)
        Reason: Connection terminated by local host (0x02)
@ MGMT Event: Device Disconnected (0x000c) plen 8     {0x0003} [hci0] 43.816383
        LE Address: CF:33:8F:4D:9C:3E (Static)
        Reason: Connection terminated by local host (0x02)

After that I try connecting using the libblepp ...

info  1542006297.266721 log_fd_: Socket success: 224 (src/blestatemachine.cc)
info  1542006297.266830 log_fd_: Socket success: 269 (src/blestatemachine.cc)
info  1542006297.266893 log_fd_: Socket success: 174 (src/blestatemachine.cc)
info  1542006297.266933 log_l2cap_options: options.omtu = 672
info  1542006297.266974 log_l2cap_options: options.imtu = 672
info  1542006297.267020 log_l2cap_options: options.flush_to = 65535
info  1542006297.267066 log_l2cap_options: options.mode = 0
info  1542006297.267112 log_l2cap_options: options.fcs = 1
info  1542006297.267157 log_l2cap_options: options.max_tx = 3
info  1542006297.267190 log_l2cap_options: options.txwin_size = 63
debug 1542006297.267231 connect: address = CF:33:8F:4D:9C:3E
debug 1542006297.267277 connect: str2ba = 0
error 1542006337.655835 log_fd_: Error on line: 296 (src/blestatemachine.cc): Connection refused
terminate called after throwing an instance of 'BLEPP::SocketConnectFailed'
  what():  Connection refused
Aborted (core dumped)

and receive the following out put from btmon:

< HCI Command: LE Remove Device F.. (0x08|0x0012) plen 7  #35 [hci0] 199.267381
        Address type: Random (0x01)
        Address: CF:33:8F:4D:9C:3E (Static)
> HCI Event: Command Complete (0x0e) plen 4               #36 [hci0] 199.268828
      LE Remove Device From White List (0x08|0x0012) ncmd 1
        Status: Success (0x00)
< HCI Command: LE Add Device To W.. (0x08|0x0011) plen 7  #37 [hci0] 199.268914
        Address type: Public (0x00)
        Address: CF:33:8F:4D:9C:3E (OUI CF-33-8F)
> HCI Event: Command Complete (0x0e) plen 4               #38 [hci0] 199.269836
      LE Add Device To White List (0x08|0x0011) ncmd 1
        Status: Success (0x00)
< HCI Command: LE Set Scan Parame.. (0x08|0x000b) plen 7  #39 [hci0] 199.269877
        Type: Passive (0x00)
        Interval: 60.000 msec (0x0060)
        Window: 30.000 msec (0x0030)
        Own address type: Public (0x00)
        Filter policy: Ignore not in white list (0x01)
> HCI Event: Command Complete (0x0e) plen 4               #40 [hci0] 199.270836
      LE Set Scan Parameters (0x08|0x000b) ncmd 1
        Status: Success (0x00)
< HCI Command: LE Set Scan Enable (0x08|0x000c) plen 2    #41 [hci0] 199.270875
        Scanning: Enabled (0x01)
        Filter duplicates: Enabled (0x01)
> HCI Event: Command Complete (0x0e) plen 4               #42 [hci0] 199.271837
      LE Set Scan Enable (0x08|0x000c) ncmd 1
        Status: Success (0x00)
< HCI Command: LE Set Scan Enable (0x08|0x000c) plen 2    #43 [hci0] 239.687687
        Scanning: Disabled (0x00)
        Filter duplicates: Disabled (0x00)
> HCI Event: Command Complete (0x0e) plen 4               #44 [hci0] 239.688978
      LE Set Scan Enable (0x08|0x000c) ncmd 1
        Status: Success (0x00)

@edrosten
Copy link
Owner

OK thanks. I'm going to set aside some time to really pore over the logs. Haven't had time yet.

@dylanetaft
Copy link
Contributor

Do you have two Bluetooth adapters in your machine? bluetoothctl list will show.

@dylanetaft
Copy link
Contributor

dylanetaft commented Nov 20, 2018

This is gonna be one of 3 things I bet.

  1. Two+ BT adapters, a BT4 incapable device is being used because the right one hasn't been specified.
  2. moe5k: https://github.com/edrosten/libblepp/blob/master/src/blestatemachine.cc Line 278, 279
    Can you edit your local source, switch
    from
    if (pubaddr) addr.l2_bdaddr_type = BDADDR_LE_PUBLIC;
    else addr.l2_bdaddr_type = BDADDR_LE_RANDOM;

to
addr.l2_bdaddr_type = BDADDR_LE_RANDOM;
And try again?

  1. Somehow use of a different L2CAP Channel is required

@moe5k
Copy link
Author

moe5k commented Nov 20, 2018

  1. No, there is definitely just one adapter installed.
  2. of course I can try that but at the moment I am in a hospital. I have not the right
    hardware here for checking the result. but I will do in approx. 2 weeks and will let you know.

@nikola-rusev
Copy link

Hello all, and happy new year!
I wanted to ask if you have managed to resolve this issue. I too have encountered the exact same problem and haven't been able to fix it. Any info would be much appreciated.
Thanks!

@edrosten
Copy link
Owner

edrosten commented Jan 4, 2019 via email

@moe5k
Copy link
Author

moe5k commented Jan 4, 2019

I decided to use the tinyb - Lib instead ...

@edrosten
Copy link
Owner

edrosten commented Jan 13, 2019 via email

@nikola-rusev
Copy link

Hello,

I've tried starting another scan while one is already running, that always produces the error.
Strangely enough, the problem manifests itself only from time to time now and I can't make
out a pattern or deduce the reason.
I'll make it explicitly stop the scan before connecting and get back to you in a couple of days
with the results, as these days i'm occupied with other stuff.

Thanks for the input!

@danergo
Copy link

danergo commented Oct 2, 2024

Folks, sorry for giving some ups to this issue. But something got my attention here:

Remote end asks us to raise the MTU to 247:

> ACL Data RX: Handle 70 flags 0x02 dlen 7                 #12 [hci0] 30.627649
      ATT: Exchange MTU Request (0x02) len 2
        Client RX MTU: 247

Then we reply him with a completely different MTU??:

< ACL Data TX: Handle 70 flags 0x00 dlen 7                 #15 [hci0] 30.766793
      ATT: Exchange MTU Response (0x03) len 2
        Server RX MTU: 517

Even worse, we request him to re-raise his MTU:

< ACL Data TX: Handle 70 flags 0x00 dlen 7                 #16 [hci0] 30.766889
      ATT: Exchange MTU Request (0x02) len 2
        Client RX MTU: 517

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants