[ 
https://issues.apache.org/jira/browse/MYNEWT-326?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Simon Ratner updated MYNEWT-326:
--------------------------------
    Description: 
Here's a log extract (mod=64 lines are mine, printed from relevant callbacks):

{noformat}
1060:[ts=1035136ssb, mod=4 level=1] GAP procedure initiated: connect; 
addr_type=1 addr=47:b3:03:b7:5f:c6 scan_itvl=16 scan_window=16 itvl_min=24 
itvl_max=40 latency=0 supervision_timeout=256 min_ce_len=16 max_ce_len=768 
our_addr_ty
2351:[ts=2295728ssb, mod=64 level=1] connection established; status=0 handle=1 
peer_id_addr=47:b3:03:b7:5f:c6 peer_ota_addr=47:b3:03:b7:5f:c6 conn_itvl=40 
conn_latency=0 supervision_timeout=256
2372:[ts=2316224ssb, mod=4 level=1] GATT procedure initiated: discover service 
by uuid; uuid=03040000-2aae-4d26-ad6203e9a8637ebd
2460:[ts=2402112ssb, mod=64 level=2] found svc; 
uuid=03040000-2aae-4d26-ad6203e9a8637ebd start_handle=40 end_handle=65535
2491:[ts=2432368ssb, mod=64 level=2] found svc; 
uuid=00000000-0000-3065-0000306500003015 start_handle=32768 end_handle=8192
{noformat}

Steps:
1. Connect
2. Call {{ble_gattc_disc_svc_by_uuid}} with a specific uuid
3. Observe callback invoked twice, the second time with {{end_handle < 
start_handle}} which is obviously invalid and subsequently fails with 
BLE_HS_EINVAL when passed to other gatt functions. 

The {{error}} param is null in both invocations. Skimming the code, perhaps 
this has something to do with 
https://github.com/apache/incubator-mynewt-core/blob/develop/net/nimble/host/src/ble_gattc.c#L1346?

  was:
Here's a log extract (mod=64 lines are mine, printed from relevant callbacks):
{noformat}
1060:[ts=1035136ssb, mod=4 level=1] GAP procedure initiated: connect; 
addr_type=1 addr=47:b3:03:b7:5f:c6 scan_itvl=16 scan_window=16 itvl_min=24 
itvl_max=40 latency=0 supervision_timeout=256 min_ce_len=16 max_ce_len=768 
our_addr_ty
2351:[ts=2295728ssb, mod=64 level=1] connection established; status=0 handle=1 
peer_id_addr=47:b3:03:b7:5f:c6 peer_ota_addr=47:b3:03:b7:5f:c6 conn_itvl=40 
conn_latency=0 supervision_timeout=256
2372:[ts=2316224ssb, mod=4 level=1] GATT procedure initiated: discover service 
by uuid; uuid=03040000-2aae-4d26-ad6203e9a8637ebd
2460:[ts=2402112ssb, mod=64 level=2] found svc; 
uuid=03040000-2aae-4d26-ad6203e9a8637ebd start_handle=40 end_handle=65535
2491:[ts=2432368ssb, mod=64 level=2] found svc; 
uuid=00000000-0000-3065-0000306500003015 start_handle=32768 end_handle=8192
{noformat}

Steps:
1. Connect
2. Call ble_gattc_disc_svc_by_uuid with a specific uuid
3. Observe callback invoked twice, the second time with {{end_handle < 
start_handle}} which is obviously invalid and subsequently fails with 
BLE_HS_EINVAL when passed to other gatt functions. 

The {{error}} param is null in both invocations. Skimming the code, perhaps 
this has something to do with 
https://github.com/apache/incubator-mynewt-core/blob/develop/net/nimble/host/src/ble_gattc.c#L1346?


> ble_gattc_*_by_uuid callbacks called twice (with bogus data)
> ------------------------------------------------------------
>
>                 Key: MYNEWT-326
>                 URL: https://issues.apache.org/jira/browse/MYNEWT-326
>             Project: Mynewt
>          Issue Type: Bug
>          Components: ble
>    Affects Versions: v0_9_0
>            Reporter: Simon Ratner
>
> Here's a log extract (mod=64 lines are mine, printed from relevant callbacks):
> {noformat}
> 1060:[ts=1035136ssb, mod=4 level=1] GAP procedure initiated: connect; 
> addr_type=1 addr=47:b3:03:b7:5f:c6 scan_itvl=16 scan_window=16 itvl_min=24 
> itvl_max=40 latency=0 supervision_timeout=256 min_ce_len=16 max_ce_len=768 
> our_addr_ty
> 2351:[ts=2295728ssb, mod=64 level=1] connection established; status=0 
> handle=1 peer_id_addr=47:b3:03:b7:5f:c6 peer_ota_addr=47:b3:03:b7:5f:c6 
> conn_itvl=40 conn_latency=0 supervision_timeout=256
> 2372:[ts=2316224ssb, mod=4 level=1] GATT procedure initiated: discover 
> service by uuid; uuid=03040000-2aae-4d26-ad6203e9a8637ebd
> 2460:[ts=2402112ssb, mod=64 level=2] found svc; 
> uuid=03040000-2aae-4d26-ad6203e9a8637ebd start_handle=40 end_handle=65535
> 2491:[ts=2432368ssb, mod=64 level=2] found svc; 
> uuid=00000000-0000-3065-0000306500003015 start_handle=32768 end_handle=8192
> {noformat}
> Steps:
> 1. Connect
> 2. Call {{ble_gattc_disc_svc_by_uuid}} with a specific uuid
> 3. Observe callback invoked twice, the second time with {{end_handle < 
> start_handle}} which is obviously invalid and subsequently fails with 
> BLE_HS_EINVAL when passed to other gatt functions. 
> The {{error}} param is null in both invocations. Skimming the code, perhaps 
> this has something to do with 
> https://github.com/apache/incubator-mynewt-core/blob/develop/net/nimble/host/src/ble_gattc.c#L1346?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to