[
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)