Giter Club home page Giter Club logo

linux.bluetooth's People

Contributors

agardiol avatar corentin-raoult avatar damiansuess avatar hashtagchris avatar lamothe avatar yaakov-h avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

linux.bluetooth's Issues

Help on connection to OPPO phone

Hi.
I'm using your nuget to connect to a Bluetooth device, I'm using my phone as a sandbox to test my code.
My basic code is this

    internal class Program
    {
        static bool IsServicesResolved;
        static async Task Main(string[] args)
        {
            Console.WriteLine("Searching Bluetooth devices");
            var adapter = await BlueZManager.GetAdapterAsync("hci0");
            adapter.DeviceFound += adapter_DeviceFoundAsync;
            Console.WriteLine("Searching devices");
            await adapter.StartDiscoveryAsync();
            await Task.Delay(TimeSpan.FromSeconds(10));
            await adapter.StopDiscoveryAsync();
            var devices = await adapter.GetDevicesAsync();
            Console.WriteLine("Choose Device");
            for (int i = 0; i < devices.Count; i++)
            {
                Console.WriteLine($"{(i + 1)} => {(await devices[i].GetNameAsync())}");
            }
            var index = Console.ReadLine();
            var device = devices[int.Parse(index) - 1];
            device.ServicesResolved += device_ServicesResolved;
            await device.ConnectAsync();
            await Task.Delay(TimeSpan.FromSeconds(5));
            var connected = await device.GetConnectedAsync();
            Console.WriteLine($"Device connected: {connected}");
            var paired = await device.GetPairedAsync();
            if (!paired)
            {
                await device.PairAsync();
                await Task.Delay(TimeSpan.FromSeconds(5));
                paired = await device.GetPairedAsync();
            }
            Console.WriteLine($"Device is paired: {paired}");

            while (!IsServicesResolved)
            {
                Console.Clear();
                Console.WriteLine($"{DateTime.Now}");
                await Task.Delay(TimeSpan.FromSeconds(500));
            }
            Console.WriteLine("Services resolved");
            var services = await device.GetServicesAsync();
            var deviceProp = await device.GetPropertiesAsync();
            var deviceUUID = await device.GetUUIDsAsync();
            foreach (var uuid in deviceUUID)
            {
                var service = await device.GetServiceAsync(uuid);
                if (service == null)
                    Console.WriteLine($"No service for UUID: {uuid}");
                else
                    Console.WriteLine($"Service for UUID: {uuid}");
            }
            Console.ReadLine();
        }

        private static Task device_ServicesResolved(Device sender, BlueZEventArgs eventArgs)
        {
            IsServicesResolved = true;
            return Task.CompletedTask;
        }

        private static async Task adapter_DeviceFoundAsync(Adapter sender, DeviceFoundEventArgs eventArgs)
        {
            Console.WriteLine($"Device Found: {(await eventArgs.Device.GetNameAsync())}");
        }

    }

The issue I'm facing is that I don't have any services that I can connect to, this is the console output:

Searching devices
Device Found: OPPO A73 5G
Choose Device
1 => OPPO A73 5G
1
Device connected: True
Device is paired: True
Services resolved
No service for UUID: 00001101-0000-1000-8000-00805f9b34fb
No service for UUID: 00001105-0000-1000-8000-00805f9b34fb
No service for UUID: 0000110a-0000-1000-8000-00805f9b34fb
No service for UUID: 0000110c-0000-1000-8000-00805f9b34fb
No service for UUID: 0000110d-0000-1000-8000-00805f9b34fb
No service for UUID: 0000110e-0000-1000-8000-00805f9b34fb
No service for UUID: 00001112-0000-1000-8000-00805f9b34fb
No service for UUID: 00001115-0000-1000-8000-00805f9b34fb
No service for UUID: 00001116-0000-1000-8000-00805f9b34fb
No service for UUID: 0000111f-0000-1000-8000-00805f9b34fb
No service for UUID: 0000112d-0000-1000-8000-00805f9b34fb
No service for UUID: 0000112f-0000-1000-8000-00805f9b34fb
No service for UUID: 00001132-0000-1000-8000-00805f9b34fb
No service for UUID: 00001200-0000-1000-8000-00805f9b34fb
No service for UUID: 00001800-0000-1000-8000-00805f9b34fb
No service for UUID: 00001801-0000-1000-8000-00805f9b34fb
No service for UUID: 0000aa15-0000-1000-8000-00805f9b34fb
No service for UUID: a49eaa15-cb06-495c-9f4f-bb80a90cdf00

Can anybody give some idea on this, because the same list of UUIDS in the Bluetooth linux console returns the UUIDS names

00001101-0000-1000-8000-00805f9b34fb Serial Port
00001105-0000-1000-8000-00805f9b34fb OBEX Object Push
0000110a-0000-1000-8000-00805f9b34fb Audio Source
0000110c-0000-1000-8000-00805f9b34fb Remote Control Target
0000110d-0000-1000-8000-00805f9b34fb Advanced Audio
0000110e-0000-1000-8000-00805f9b34fb Remote Control
00001112-0000-1000-8000-00805f9b34fb Headset Audio Gateway
00001115-0000-1000-8000-00805f9b34fb PANU
00001116-0000-1000-8000-00805f9b34fb Network Access Point
0000111f-0000-1000-8000-00805f9b34fb Handsfree Audio Gateway
0000112d-0000-1000-8000-00805f9b34fb SIM Access (SAP)
0000112f-0000-1000-8000-00805f9b34fb Phonebook Access (PBAP) - PSE
00001132-0000-1000-8000-00805f9b34fb Message Access Server
00001200-0000-1000-8000-00805f9b34fb PnP Information
00001800-0000-1000-8000-00805f9b34fb Generic Access
00001801-0000-1000-8000-00805f9b34fb Generic Attribute
0000aa15-0000-1000-8000-00805f9b34fb Unknown
a49eaa15-cb06-495c-9f4f-bb80a90cdf00 Proprietary

Thanks

How to make pairings persistent?

I'm using Linux.Bluetooth in a C# program running on a Raspberry Pi 4 (bullseye). I can scan for devices, pair to them, and everything works great...until I reboot; after a reboot, none of my paired devices remain.

If I use bluetoothctl (and scan and pair), the pairings are retained after a reboot.

Is there something I need to do to make pairings persist (i.e. to get restored after a reboot)?

TIA,

--mkj

Advertising support

I've tested this library for a BLE Beacon scanner, which works well using the device scanner. However, it would be fantastic if support for adding advertisements could be added so it's possible to create beacons also! I noticed the docs for the advertising manager are already in this repo, so this might already be planned or initiated? I haven't DBussed before, but with some collaboration I could maybe contribute to the implementation somehow...

For reference: https://github.com/SuessLabs/Linux.Bluetooth/blob/master/docs/BlueZ/advertising-api.txt

Thanks for the efforts so far btw =]

Add support for Bluetooth Classic

As per discussion post #13, add the ability to interface with Bluetooth Classic.

Discussed in #13

Originally posted by embeddedmz July 21, 2023
Can I use this library to communicate with a standard (non-LE) bluetooth device ? At the moment I'm using a C++/Qt program to communicate via bluetooth and I'd like to do the communication in the C# program to reduce complexity and bugs.

AddMatch eventually stacks up and breaks limit

Hello, and thanks for this useful repo.

I am currently having a problem and a hard time figuring out its source. I've dwelved in the Tmds.Dbus codebase as well as this libraries' to no avail.

I am using a Pi4 as a gateway to periodically scan for specific devices in its vicinity. Eventually however, my service crashes with the error message:

dbus-daemon[489]: [system] Connection ":1.37" is not allowed to add more match rules (increase limits in configuration file if required; max_match_rules_per_connection=2048)

There might be a couple hundred devices around me, with no new devices coming and going.

method call time=1704712160.531241 sender=:1.37 -> destination=org.freedesktop.DBus serial=278 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
   string "type='signal',interface='org.freedesktop.DBus.Properties',member='PropertiesChanged',path='/org/bluez/hci0/dev_3A_A9_CC_B9_8F_37'"

I have logged the first three scans, with the following results:

  • On my first couple of scans, I can see the AddMatch messages piling up, reduced at each 15s scan as all devices get eventually seen by the gateway.
  • At each new scan, I can see the InterfacesAdded messages piling up with each device being added.
  • At the end of each scan, I can see an equal amount of InterfacesRemoved messages piling up with each device being removed.

But after a couple of days, I get the crash with the aforementionned error message of max_match_rules_per_connection exceeded.

I'm suspecting there might be some sort of AddMatch leak somewhere...
Perhaps my devices eventually get a new name, somehow, and are given a new match rule ?

A simple workaround is to reboot the service automatically at each crash, but I'd be interested in finding an elegant solution to be able to RemoveMatch. Do you think this might be a problem in the library, or am I lost in bluetooth translation ?

Thank you greatly for any insight, and I remain at your disposal for any further information.

Dead lock issue with DisconnectAsync()

Hello,

While using this library we have sometimes a dead lock situation while calling Device.DisconnectAsync().
We tried to ignore this by avoiding to await on this function but in this case, the dead lock occurs later while trying to force the Adapter to remove the device from it's internal list (Adapter.RemoveDeviceAsync(Device)).

It seems to be an issue related to bluez since if we kill our software and try to manually remove or disconnect the device with bluetoothctl, we get a "org.bluez.Error.Busy" (in fact each commands return this error).

Did you already see such dead lock behavior ?

Thanks by advance and best regards.
Antoine

ConnectAsync() is blocking Task - Tmds.DBus need update ?

await device.ConnectAsync();
await device.WaitForPropertyValueAsync("Connected", value: true, timeout);'

Many time, line 2 will never be invoked when device can't connect (because it is out of range, for example).
In fact, the code execution is blocked on the first line forever and no exception is thrown.

The only indication I get is the following exception catched somewhere out of my code:
Exception thrown: 'Tmds.DBus.DBusException' in System.Private.CoreLib.dll

I noticed that current version of Tmds.DBus is 0.14.0 and you use 0.11.0. Maybe an update may fix the issue. What do you think about that ?

is the standard (non-LE) blutooth supported ?

Can I use this library to communicate with a standard (non-LE) bluetooth device ? At the moment I'm using a C++/Qt program to communicate via bluetooth and I'd like to do the communication in the C# program to reduce complexity.

Add BLE Server Support

Description:
As a user, I would like to have sample project and/or for how to setup a BLE Server to act as the peripheral (aka. slave device).

Describe the solution you'd like

  • Create a sample project
  • Create any necessary helper classes

Transferring data through a device connection

This is more question about the usage for transferring data on paired device,
I look on this repo: https://github.com/inthehand/32feet and found a chaotic organization and design.
This code is so much better and I'm looking into using on a Raspberry Pi running Unbuntu.

Would be possible to have a similar API contract to use the same code against other platforms?
On this repo API what is the proper way to transfer block of data ? The idea I have is forwarding a phone app that receive a MQTT block of raw data and pass it to the raspberry PI. Also, the reverse will happen.

Do I need to use the 'Characteristic' interface to send and receive data ? Which GUID should i pass ? (the data source id ?) or should i create my own ?
I would need to write code in Windows and Android/iOS to do the reverse on the other side hence my question to find another library that does this but on non linux platforms.

Thanks.

Refactor Methods for v6.0.x

Refactoring:

  • Rename Device.GetAllAsync() to ..GetPropertiesAsync()
  • Rename Device.GetUUIDsAsync() to ..GetServiceUuidsAsync()
  • Include DeviceExtensions as part of Device class
  • Rename Device.GetConnectedAsync() to IsConnectedAsync()

Normalization:

  • Use custom Interfaces versus BlueZ dependent ones

Crashing Mono when scanning devices in a C# .NET Framework 4.8 WinForms app running on Raspberry Pi 3B+

Device: Raspberry Pi 3B+
OS: Raspbian GNU/Linux 11 (bullseye) 32-bit
Mono: 6.12.0.200
Bluez: 5.55
.NET Framework: 4.8
Linux.Bluetooth: 5.64.0

I am attempting to make a simple WinForms app with a single button that scans for and prints Bluetooth devices to the console. As soon as adapter.StartDiscoveryAsync() is called it crashes mono. I have plans to use Linux.Bluetooth at a larger scale, but not until I can get this very simple example working correctly and robustly.

Any help would be much appreciated. Let me know if you need any additional information.

Here is the code from Form1.cs:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Linux.Bluetooth;
using Linux.Bluetooth.Extensions;

namespace scan
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private async void button1_Click(object sender, EventArgs e)
        {
            int scanSeconds = 5;

            IAdapter1 adapter = (await BlueZManager.GetAdaptersAsync()).FirstOrDefault();

            var adapterPath = adapter.ObjectPath.ToString();
            var adapterName = adapterPath.Substring(adapterPath.LastIndexOf("/") + 1);
            Console.WriteLine($"Using Bluetooth adapter {adapterName}");
            Console.WriteLine($"Adapter's full path:    {adapterPath}");

            Console.WriteLine("Starting discovery...");
            await adapter.StartDiscoveryAsync();
            Console.WriteLine("Delaying 5 seconds...");
            await Task.Delay(TimeSpan.FromSeconds(scanSeconds));
            Console.WriteLine("Stopping discovery...");
            await adapter.StopDiscoveryAsync();

            // Print out the devices we already know about.
            Console.WriteLine();
            Console.WriteLine("Getting devices...");
            var devices = await adapter.GetDevicesAsync();
            foreach (var device in devices)
            {
                string deviceDescription = await GetDeviceDescriptionAsync(device);
                Console.WriteLine($" - {deviceDescription}");
            }

        }
        private static async Task<string> GetDeviceDescriptionAsync(IDevice1 device)
        {
            var deviceProperties = await device.GetAllAsync();
            return $"{deviceProperties.Alias} (Address: {deviceProperties.Address}, RSSI: {deviceProperties.RSSI})";
        }
    }
}

And here is the crash report from mono:

$ sudo ./scan.exe
Using Bluetooth adapter hci0
Adapter's full path:    /org/bluez/hci0
Starting discovery...
Delaying 5 seconds...

=================================================================
	Native Crash Reporting
=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

=================================================================
	Native stacktrace:
=================================================================
	 (No frames) 


=================================================================
	Telemetry Dumper:
=================================================================
Pkilling 0x1889530880x from 0x1888478208x
Pkilling 0x1898968064x from 0x1888478208x
Pkilling 0x1985803264x from 0x1888478208x
Pkilling 0x1895822336x from 0x1888478208x
Pkilling 0x1905259520x from 0x1888478208x
Pkilling 0x1908343808x from 0x1888478208x
Pkilling 0x1892676608x from 0x1888478208x
Pkilling 0x1995820288x from 0x1888478208x
Pkilling 0x1902113792x from 0x1888478208x
Pkilling 0x1887425536x from 0x1888478208x
Entering thread summarizer pause from 0x1888478208x
Finished thread summarizer pause from 0x1888478208x.
Failed to create breadcrumb file (null)/crash_hash_0x0

Waiting for dumping threads to resume

=================================================================
	External Debugger Dump:
=================================================================
[New LWP 28518]
[New LWP 28519]
[New LWP 28520]
[New LWP 28521]
[New LWP 28522]
[New LWP 28523]
[New LWP 28524]
[New LWP 28525]
[New LWP 28526]
[New LWP 28527]
[New LWP 28528]
[New LWP 28552]
Mono support loaded.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
__GI___poll (timeout=1000, nfds=2, fds=0x76203938) at ../sysdeps/unix/sysv/linux/poll.c:29
29	../sysdeps/unix/sysv/linux/poll.c: No such file or directory.
  Id   Target Id                                       Frame 
* 1    Thread 0x76f5cd00 (LWP 28516) "cli"             __GI___poll (timeout=1000, nfds=2, fds=0x76203938) at ../sysdeps/unix/sysv/linux/poll.c:29
  2    Thread 0x75fff400 (LWP 28518) "SGen worker"     futex_wait_cancelable (private=0, expected=0, futex_word=0x40d290) at ../sysdeps/nptl/futex-internal.h:186
  3    Thread 0x765cf400 (LWP 28519) "Finalizer"       futex_abstimed_wait_cancelable (private=0, abstime=0x0, clockid=0, expected=1, futex_word=0x405528) at ../sysdeps/nptl/futex-internal.h:323
  4    Thread 0x71bf0400 (LWP 28520) "Thread Pool I/O" __GI___poll (timeout=-1, nfds=2, fds=0xbdcbd0) at ../sysdeps/unix/sysv/linux/poll.c:29
  5    Thread 0x718ff400 (LWP 28521) "Thread Pool I/O" futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x718fecac, clockid=<optimized out>, expected=0, futex_word=0x40d6b8) at ../sysdeps/nptl/futex-internal.h:323
  6    Thread 0x715ff400 (LWP 28522) "Thread Pool Wor" futex_abstimed_wait_cancelable (private=0, abstime=0x715fed5c, clockid=0, expected=1, futex_word=0x405a88) at ../sysdeps/nptl/futex-internal.h:323
  7    Thread 0x712ff400 (LWP 28523) "Thread Pool Wor" futex_abstimed_wait_cancelable (private=0, abstime=0x712fed5c, clockid=0, expected=1, futex_word=0x405a88) at ../sysdeps/nptl/futex-internal.h:323
  8    Thread 0x70fff400 (LWP 28524) "Thread Pool Wor" futex_abstimed_wait_cancelable (private=0, abstime=0x70ffed5c, clockid=0, expected=1, futex_word=0x405a88) at ../sysdeps/nptl/futex-internal.h:323
  9    Thread 0x70cff400 (LWP 28525) "Thread Pool Wor" futex_abstimed_wait_cancelable (private=0, abstime=0x70cfed5c, clockid=0, expected=1, futex_word=0x405a88) at ../sysdeps/nptl/futex-internal.h:323
  10   Thread 0x709ff400 (LWP 28526) "Thread Pool Wor" futex_abstimed_wait_cancelable (private=0, abstime=0x709fed5c, clockid=0, expected=1, futex_word=0x405a88) at ../sysdeps/nptl/futex-internal.h:323
  11   Thread 0x708fe400 (LWP 28527) "Thread Pool Wor" 0x76bb1824 in __GI___wait4 (pid=28658, stat_loc=0x708fbf54, options=0, usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:27
  12   Thread 0x707fd400 (LWP 28528) "Thread Pool Wor" futex_abstimed_wait_cancelable (private=0, abstime=0x707fcd5c, clockid=0, expected=1, futex_word=0x405a88) at ../sysdeps/nptl/futex-internal.h:323
  13   Thread 0x6fd72400 (LWP 28552) "Timer-Scheduler" futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x6fd712d4, clockid=<optimized out>, expected=0, futex_word=0x6b1da0) at ../sysdeps/nptl/futex-internal.h:323

Thread 13 (Thread 0x6fd72400 (LWP 28552) "Timer-Scheduler"):
#0  futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x6fd712d4, clockid=<optimized out>, expected=0, futex_word=0x6b1da0) at ../sysdeps/nptl/futex-internal.h:323
#1  __pthread_cond_wait_common (abstime=0x6fd712d4, clockid=<optimized out>, mutex=0x85ed, cond=0x6b1d78) at pthread_cond_wait.c:520
#2  __pthread_cond_timedwait (cond=0x6b1d78, mutex=0x85ed, abstime=0x6fd712d4) at pthread_cond_wait.c:656
#3  0x00303b0c in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 12 (Thread 0x707fd400 (LWP 28528) "Thread Pool Wor"):
#0  futex_abstimed_wait_cancelable (private=0, abstime=0x707fcd5c, clockid=0, expected=1, futex_word=0x405a88) at ../sysdeps/nptl/futex-internal.h:323
#1  do_futex_wait (sem=sem@entry=0x405a88, abstime=abstime@entry=0x707fcd5c, clockid=0) at sem_waitcommon.c:117
#2  0x76e98078 in __new_sem_wait_slow (sem=0x405a88, abstime=0x707fcd5c, clockid=0) at sem_waitcommon.c:285
#3  0x002a36b0 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 11 (Thread 0x708fe400 (LWP 28527) "Thread Pool Wor"):
#0  0x76bb1824 in __GI___wait4 (pid=28658, stat_loc=0x708fbf54, options=0, usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:27
#1  0x0009d030 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 10 (Thread 0x709ff400 (LWP 28526) "Thread Pool Wor"):
#0  futex_abstimed_wait_cancelable (private=0, abstime=0x709fed5c, clockid=0, expected=1, futex_word=0x405a88) at ../sysdeps/nptl/futex-internal.h:323
#1  do_futex_wait (sem=sem@entry=0x405a88, abstime=abstime@entry=0x709fed5c, clockid=0) at sem_waitcommon.c:117
#2  0x76e98078 in __new_sem_wait_slow (sem=0x405a88, abstime=0x709fed5c, clockid=0) at sem_waitcommon.c:285
#3  0x002a36b0 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 9 (Thread 0x70cff400 (LWP 28525) "Thread Pool Wor"):
#0  futex_abstimed_wait_cancelable (private=0, abstime=0x70cfed5c, clockid=0, expected=1, futex_word=0x405a88) at ../sysdeps/nptl/futex-internal.h:323
#1  do_futex_wait (sem=sem@entry=0x405a88, abstime=abstime@entry=0x70cfed5c, clockid=0) at sem_waitcommon.c:117
#2  0x76e98078 in __new_sem_wait_slow (sem=0x405a88, abstime=0x70cfed5c, clockid=0) at sem_waitcommon.c:285
#3  0x002a36b0 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 8 (Thread 0x70fff400 (LWP 28524) "Thread Pool Wor"):
#0  futex_abstimed_wait_cancelable (private=0, abstime=0x70ffed5c, clockid=0, expected=1, futex_word=0x405a88) at ../sysdeps/nptl/futex-internal.h:323
#1  do_futex_wait (sem=sem@entry=0x405a88, abstime=abstime@entry=0x70ffed5c, clockid=0) at sem_waitcommon.c:117
#2  0x76e98078 in __new_sem_wait_slow (sem=0x405a88, abstime=0x70ffed5c, clockid=0) at sem_waitcommon.c:285
#3  0x002a36b0 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 7 (Thread 0x712ff400 (LWP 28523) "Thread Pool Wor"):
#0  futex_abstimed_wait_cancelable (private=0, abstime=0x712fed5c, clockid=0, expected=1, futex_word=0x405a88) at ../sysdeps/nptl/futex-internal.h:323
#1  do_futex_wait (sem=sem@entry=0x405a88, abstime=abstime@entry=0x712fed5c, clockid=0) at sem_waitcommon.c:117
#2  0x76e98078 in __new_sem_wait_slow (sem=0x405a88, abstime=0x712fed5c, clockid=0) at sem_waitcommon.c:285
#3  0x002a36b0 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 6 (Thread 0x715ff400 (LWP 28522) "Thread Pool Wor"):
#0  futex_abstimed_wait_cancelable (private=0, abstime=0x715fed5c, clockid=0, expected=1, futex_word=0x405a88) at ../sysdeps/nptl/futex-internal.h:323
#1  do_futex_wait (sem=sem@entry=0x405a88, abstime=abstime@entry=0x715fed5c, clockid=0) at sem_waitcommon.c:117
#2  0x76e98078 in __new_sem_wait_slow (sem=0x405a88, abstime=0x715fed5c, clockid=0) at sem_waitcommon.c:285
#3  0x002a36b0 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 5 (Thread 0x718ff400 (LWP 28521) "Thread Pool I/O"):
#0  futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x718fecac, clockid=<optimized out>, expected=0, futex_word=0x40d6b8) at ../sysdeps/nptl/futex-internal.h:323
#1  __pthread_cond_wait_common (abstime=0x718fecac, clockid=<optimized out>, mutex=0x9ddf, cond=0x40d690) at pthread_cond_wait.c:520
#2  __pthread_cond_timedwait (cond=0x40d690, mutex=0x9ddf, abstime=0x718fecac) at pthread_cond_wait.c:656
#3  0x00303b0c in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 4 (Thread 0x71bf0400 (LWP 28520) "Thread Pool I/O"):
#0  __GI___poll (timeout=-1, nfds=2, fds=0xbdcbd0) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  __GI___poll (fds=0xbdcbd0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:26
#2  0x002532f4 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 3 (Thread 0x765cf400 (LWP 28519) "Finalizer"):
#0  futex_abstimed_wait_cancelable (private=0, abstime=0x0, clockid=0, expected=1, futex_word=0x405528) at ../sysdeps/nptl/futex-internal.h:323
#1  do_futex_wait (sem=sem@entry=0x405528, abstime=0x0, clockid=0) at sem_waitcommon.c:117
#2  0x76e97c90 in __new_sem_wait_slow (sem=0x405528, abstime=0x0, clockid=0) at sem_waitcommon.c:285
#3  0x00292b38 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 2 (Thread 0x75fff400 (LWP 28518) "SGen worker"):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x40d290) at ../sysdeps/nptl/futex-internal.h:186
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x0, cond=0x40d268) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x40d268, mutex=0x0) at pthread_cond_wait.c:638
#3  0x002f512c in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 1 (Thread 0x76f5cd00 (LWP 28516) "cli"):
#0  __GI___poll (timeout=1000, nfds=2, fds=0x76203938) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  __GI___poll (fds=0x76203938, nfds=2, timeout=1000) at ../sysdeps/unix/sysv/linux/poll.c:26
#2  0x7214a778 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
[Inferior 1 (process 28516) detached]
Stopping discovery...

=================================================================
	Basic Fault Address Reporting
=================================================================
instruction pointer is NULL, skip dumping
=================================================================
	Managed Stacktrace:
=================================================================
=================================================================
Aborted

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.