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

[PW_SID:555985] Detailed error string #538

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: CI

on: [pull_request]

jobs:
ci:
runs-on: ubuntu-latest
name: CI for Pull Request
steps:
- name: Checkout the source code
uses: actions/checkout@v2
with:
path: src

- name: Checkout the BlueZ source code
uses: actions/checkout@v2
with:
repository: BluezTestBot/bluez
path: bluez

- name: Create output folder
run: |
mkdir results

- name: CI
uses: BluezTestBot/action-kernel-ci@main
with:
src_path: src
bluez_path: bluez
output_path: results
github_token: ${{ secrets.GITHUB_TOKEN }}
email_token: ${{ secrets.EMAIL_TOKEN }}
patchwork_token: ${{ secrets.PATCHWORK_TOKEN }}

- name: Upload results
uses: actions/upload-artifact@v2
with:
name: tester-logs
path: results/
if-no-files-found: warn
35 changes: 35 additions & 0 deletions .github/workflows/schedule_work.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Scheduled Work

on:
schedule:
- cron: "20 * * * *"

jobs:
sync_repo:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Sync Repo
uses: BluezTestBot/action-manage-repo@master
with:
src_repo: "bluez/bluetooth-next"
for_upstream_branch: 'for-upstream'
workflow_branch: 'workflow'
github_token: ${{ secrets.GITHUB_TOKEN }}

sync_patchwork:
needs: sync_repo
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0

- name: Sync Patchwork
uses: BluezTestBot/action-patchwork-to-pr@master
with:
pw_exclude_str: 'BlueZ'
base_branch: 'workflow'
github_token: ${{ secrets.ACTION_TOKEN }}
233 changes: 233 additions & 0 deletions doc/errors.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,233 @@
D-Bus Method Return Error Codes
===============================

The motivation of having detailed error is to provide context-based failure
reasons along with D-Bus method return so that D-Bus clients can build metrics
and optimize their application based on these failure reasons. For instance, a
client can build retry mechanism for a connection failure or improve the
bottleneck of use scenario based on actionable metrics.

These error codes are context-based but not necessarily tied to interface or
method calls. For instance, if a pairing request failed due to connection
failure, connection error would be attached to the method return of Pair().

BR/EDR connection already connected
===================================
errno: EALREADY, EISCONN

Either the profile is already connected or ACL connection is in place.

BR/EDR connection page timeout
==============================
errno: EHOSTDOWN

Failed due to page timeout.

BR/EDR connection profile unavailable
=====================================
errno: ENOPROTOOPT

Failed to find connectable services or the target service.

BR/EDR connection SDP search
============================
errno: none

Failed to complete the SDP search.

BR/EDR connection create socket
===============================
errno: EIO

Failed to create or connect to BT IO socket. This can also indicate
hardware failure in the controller.

BR/EDR connection invalid arguments
===================================
errno: EHOSTUNREACH

Failed due to invalid arguments.

BR/EDR connection not powered
=============================
errno: EHOSTUNREACH

Failed due to adapter not powered.

BR/EDR connection not supported
===============================
errno: EOPNOTSUPP, EPROTONOSUPPORT

Failed due to unsupported state transition of L2CAP channel or other
features either by the local host or the remote.

BR/EDR connection bad socket
============================
errno: EBADFD

Failed due to the socket is in bad state.

BR/EDR connection memory allocation
===================================
errno: ENOMEM

Failed to allocate memory in either host stack or controller.

BR/EDR connection busy
======================
errno: EBUSY

Failed due to other ongoing operations, such as pairing, busy L2CAP
channel or the operation disallowed by the controller.

BR/EDR connection concurrent connection limit
=============================================
errno: EMLINK

Failed due to reaching the concurrent connection limit to a device.

BR/EDR connection timeout
=========================
errno: ETIMEDOUT

Failed due to connection timeout

BR/EDR connection refused
=========================
errno: ECONNREFUSED

Refused by the remote device due to limited resource, security reason
or unacceptable address type.

BR/EDR connection aborted by remote
===================================
errno: ECONNRESET

Terminated by the remote device due to limited resource or power off.

BR/EDR connection aborted by local
==================================
errno: ECONNABORTED

Aborted by the local host.

BR/EDR connection LMP protocol error
====================================
errno: EPROTO

Failed due to LMP protocol error.

BR/EDR connection canceled
==========================
errno: none

Failed due to cancellation caused by adapter drop, unexpected device
drop, orincoming disconnection request before connection request is
completed.

BR/EDR connection unknown error
===============================
errno: ENOSYS

Failed due to unknown reason.

LE connection invalid arguments
===============================
errno: EINVAL

Failed due to invalid arguments.

LE connection not powered
=========================
errno: EHOSTUNREACH

Failed due to adapter not powered.

LE connection not supported
===========================
errno: EOPNOTSUPP, EPROTONOSUPPORT

Failed due to unsupported state transition of L2CAP channel or other
features (e.g. LE features) either by the local host or the remote.

LE connection already connected
===============================
errno: EALREADY, EISCONN

Either the BT IO is already connected or LE link connection in place.

LE connection bad socket
========================
errno: EBADFD

Failed due to the socket is in bad state.

LE connection memory allocation
===============================
errno: ENOMEM

Failed to allocate memory in either host stack or controller.

LE connection busy
==================
errno: EBUSY

Failed due to other ongoing operations, such as pairing, connecting,
busy L2CAP channel or the operation disallowed by the controller.

LE connection refused
=====================
errno: ECONNREFUSED

Failed due to that LE is not enabled or the attempt is refused by the
remote device due to limited resource, security reason or unacceptable
address type.

LE connection create socket
===========================
errno: EIO

Failed to create or connect to BT IO socket. This can also indicate
hardware failure in the controller.

LE connection timeout
=====================
errno: ETIMEDOUT

Failed due to connection timeout

LE connection concurrent connection limit
=========================================
errno: EMLINK

Failed due to reaching the synchronous connection limit to a device.

LE connection abort by remote
=============================
errno: ECONNRESET

Aborted by the remote device due to limited resource or power off.

LE connection abort by local
============================
errno: ECONNABORTED

Aborted by the local host.

LE connection link layer protocol error
=======================================
errno: EPROTO

Failed due to link layer protocol error.

LE connection GATT browsing
===========================
errno: none

Failed to complete the GATT browsing.

LE connection unknown error
===========================
errno: ENOSYS

Failed due to unknown reason.