Windows - Run Discover Scan twice cause Disconnection fail

On Windows, When I start scan twice and try connect/disconnect, The disconnection event is never triggered and the device stays connected to the system
Steps to reproduce
Running BLE.Client.WinConsole Application for tests

Enter D1 and select device

Enter D1 Again

Enter D3 Connect-Disconnect

Expected behavior
We should receive disconnection notification.
If you try to connect/disconnect without scan it works.
If you run scan and connect/disconnect after it works.
BUT, if you run scan, wait result, run scan again, wait result and connect/disconnect, we never receive disconnection event
Actual behavior
The connection is made but we never receive the disconnection notification. The device stays connected to the system
Crashlog
No crash
Configuration
Version of the Plugin: last source code
Platform: Win11Pro / 23H2 / 22631.3672

Hi @andrenoel84,
I'm the friendly issue checker.
Thanks for using the issue template :star2:
I appreciate it very much. I'm sure, the maintainers of this repository will answer, soon.

The Windows implementation unfortunately doesn't currently work well. maybe related

Is there anyone able to reproduce this bug ?
Just to know if i'm the only one :)
I spent a lot of time try to figure where the problem is with no result :/

Is there anyone able to reproduce this bug ? Just to know if i'm the only one :) I spent a lot of time try to figure where the problem is with no result :/

Had you a look at the link of issues provided?
Did you notice issue #850?
Might it be plausible it or a similar issue is affecting you?
In my estimation the windows implementation isn't currently usable as disconnection is important for my purposes.
In the case that there might be something else to uncover, might i suggest clarifying what you mean by Enter D1, Enter D3, surely no one will be able to reproduce your workflow not understanding what you are doing... or am i out of the loop with something?

Yes I checked all issues on disconnect part but nothing seems to match directly to my problem.
To be more clear, I add a test into PluginDemo.cs with the following code:
public async Task DisconnectAfterScanTest()
  {
      //Hard set MAC address for tests ...
      //string bleaddress = BleAddressSelector.GetBleAddress();
      string bleaddress = "FF0BCAC1DA4B";
      var id = bleaddress.ToBleDeviceGuid();
      var connectParameters = new ConnectParameters(connectionParameterSet: ConnectionParameterSet.ThroughputOptimized);

      //Run scan once ...
      Console.WriteLine("Scan start");
      await DoTheScanningTimeout();
      await Task.Delay(200);
      Console.WriteLine("Scan end");

      IDevice dev = await Adapter.ConnectToKnownDeviceAsync(id, connectParameters);
      Write("Waiting 2 secs");
      await Task.Delay(2000);
      Write("Disconnecting");
      await Adapter.DisconnectDeviceAsync(dev);
      dev.Dispose();
      Write("Test_Connect_Disconnect done");

      //Run scan twice ...
      Console.WriteLine("Scan (1) start");
      await DoTheScanningTimeout();
      await Task.Delay(200);
      Console.WriteLine("Scan (1) end");

      Console.WriteLine("Scan (2) start");
      await DoTheScanningTimeout();
      await Task.Delay(200);
      Console.WriteLine("Scan (2) end");

      dev = await Adapter.ConnectToKnownDeviceAsync(id, connectParameters);
      Write("Waiting 2 secs");
      await Task.Delay(2000);
      Write("Disconnecting");
      await Adapter.DisconnectDeviceAsync(dev);
      dev.Dispose();
      Write("Test_Connect_Disconnect done");

Running it I have the following output :
Environment.OSVersion.Version.Build: 22631

Using BLE Address: FF0BCAC1DA4B
List of tests to run for key:

Escape: Quit!
B: Turn Bluetooth ON
N: Turn Bluetooth OFF
D0: Discover only
D1: Discover and set the BleAddress
D2: Set the BleAddress
D3: Connect -> Disconnect
D4: Pair -> Connect -> Disconnect
D5: Connect -> Change Parameters -> Disconnect
D6: Run GetSystemConnectedOrPairedDevices
D7: Loop: Connect -> Read services -> Disconnect
D8: Loop: Connect -> Read services -> Dispose
D9: Connect -> Loop: ConnectionLost -> Connect
Q: Adapter.BondAsync
W: Adapter.BondedDevices
E: Device.BondState
A: Pure Windows: Connect -> Disconnect
S: Pure Windows: Unpair all BLE devices
T: Test scan / connect / disconnect
T
Running: Test scan / connect / disconnect
-------------------------------------------------------
Scan start
07:21:17.314       DEMO - Bluetooth is on
07:21:17.314       DEMO - Scanning now for 5000 ms...
07:21:17.319 Plugin.BLE - Starting a scan for devices.
07:21:17.879 Plugin.BLE - AdvReceived - New: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -73, ConnectableUndirected, Connectable, Scannable
07:21:17.881       DEMO - ---- DeviceDiscovered: 0 with Name = 1
07:21:17.941 Plugin.BLE - AdvReceived - New: FF0BCAC1DA4B, DoKey_0437, Public, -63, ConnectableUndirected, Connectable,Scannable
07:21:17.941       DEMO - ---- DeviceDiscovered: 0 with Name = 1
07:21:17.941 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ScanResponse, Connectable, Scannable, ScanResponse
07:21:17.942 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ConnectableUndirected, Connectable, Scannable
07:21:17.942 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ScanResponse, Connectable, Scannable, ScanResponse
07:21:17.970 Plugin.BLE - AdvReceived - New: 656565CC7687, Bluetooth 65:65:65:cc:76:87, Random, -99, ScannableUndirected, Scannable
07:21:17.970       DEMO - ---- DeviceDiscovered: 0 with Name = 1
07:21:17.970 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -65, ConnectableUndirected, Connectable,Scannable
07:21:17.970 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -65, ScanResponse, Connectable, Scannable, ScanResponse
07:21:17.970 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -87, ConnectableUndirected, Connectable, Scannable
07:21:17.970 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -87, ScanResponse, Connectable, Scannable, ScanResponse
07:21:17.970 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ConnectableUndirected, Connectable, Scannable
07:21:17.970 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ScanResponse, Connectable, Scannable, ScanResponse
07:21:17.970 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ConnectableUndirected, Connectable,Scannable
07:21:17.970 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ScanResponse, Connectable, Scannable, ScanResponse
07:21:17.970 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ConnectableUndirected, Connectable, Scannable
07:21:17.970 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ScanResponse, Connectable, Scannable, ScanResponse
07:21:17.971 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -65, ConnectableUndirected, Connectable,Scannable
07:21:17.971 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -65, ScanResponse, Connectable, Scannable, ScanResponse
07:21:18.056 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -85, ConnectableUndirected, Connectable, Scannable
07:21:18.063 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -85, ScanResponse, Connectable, Scannable, ScanResponse
07:21:18.066 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ConnectableUndirected, Connectable,Scannable
07:21:18.067 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ScanResponse, Connectable, Scannable, ScanResponse
07:21:18.180 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ConnectableUndirected, Connectable, Scannable
07:21:18.188 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ConnectableUndirected, Connectable,Scannable
07:21:18.188 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ScanResponse, Connectable, Scannable, ScanResponse
07:21:18.299 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -66, ConnectableUndirected, Connectable,Scannable
07:21:18.301 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -66, ScanResponse, Connectable, Scannable, ScanResponse
07:21:18.407 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -86, ConnectableUndirected, Connectable, Scannable
07:21:18.408 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -86, ScanResponse, Connectable, Scannable, ScanResponse
07:21:18.419 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ConnectableUndirected, Connectable,Scannable
07:21:18.420 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ScanResponse, Connectable, Scannable, ScanResponse
07:21:18.522 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ConnectableUndirected, Connectable, Scannable
07:21:18.538 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ConnectableUndirected, Connectable,Scannable
07:21:18.544 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ScanResponse, Connectable, Scannable, ScanResponse
07:21:18.655 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ConnectableUndirected, Connectable, Scannable
07:21:18.656 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ScanResponse, Connectable, Scannable, ScanResponse
07:21:18.755 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -85, ConnectableUndirected, Connectable, Scannable
07:21:18.756 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -85, ScanResponse, Connectable, Scannable, ScanResponse
07:21:18.886 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ConnectableUndirected, Connectable, Scannable
07:21:18.888 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ScanResponse, Connectable, Scannable, ScanResponse
07:21:18.895 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ConnectableUndirected, Connectable,Scannable
07:21:18.896 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ScanResponse, Connectable, Scannable, ScanResponse
07:21:19.141 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ConnectableUndirected, Connectable,Scannable
07:21:19.142 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ScanResponse, Connectable, Scannable, ScanResponse
07:21:19.145 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -86, ConnectableUndirected, Connectable, Scannable
07:21:19.147 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -86, ScanResponse, Connectable, Scannable, ScanResponse
07:21:19.242 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ConnectableUndirected, Connectable, Scannable
07:21:19.244 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ScanResponse, Connectable, Scannable, ScanResponse
07:21:19.250 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ConnectableUndirected, Connectable,Scannable
07:21:19.255 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ScanResponse, Connectable, Scannable, ScanResponse
07:21:19.365 Plugin.BLE - AdvReceived - New: 02C6C62B13AC, Bluetooth 02:c6:c6:2b:13:ac, Random, -75, ScannableUndirected, Scannable
07:21:19.365       DEMO - ---- DeviceDiscovered: 0 with Name = 1
07:21:19.365 Plugin.BLE - AdvReceived - Old: 02C6C62B13AC, Bluetooth 02:c6:c6:2b:13:ac, Random, -75, ScanResponse, Scannable, ScanResponse
07:21:19.600 Plugin.BLE - AdvReceived - New: CCB11A363603, Bluetooth cc:b1:1a:36:36:03, Public, -88, ConnectableUndirected, Connectable, Scannable
07:21:19.600       DEMO - ---- DeviceDiscovered: 0 with Name = 1
07:21:19.600 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -86, ConnectableUndirected, Connectable, Scannable
07:21:19.600 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ConnectableUndirected, Connectable,Scannable
07:21:19.600 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ScanResponse, Connectable, Scannable, ScanResponse
07:21:19.603 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ConnectableUndirected, Connectable,Scannable
07:21:19.603 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ScanResponse, Connectable, Scannable, ScanResponse
07:21:19.603 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ConnectableUndirected, Connectable, Scannable
07:21:19.603 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ScanResponse, Connectable, Scannable, ScanResponse
07:21:19.702 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -66, ConnectableUndirected, Connectable,Scannable
07:21:19.704 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -66, ScanResponse, Connectable, Scannable, ScanResponse
07:21:19.718 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ConnectableUndirected, Connectable, Scannable
07:21:19.720 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ScanResponse, Connectable, Scannable, ScanResponse
07:21:19.829 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ConnectableUndirected, Connectable,Scannable
07:21:19.833 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ScanResponse, Connectable, Scannable, ScanResponse
07:21:19.968 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ConnectableUndirected, Connectable, Scannable
07:21:19.969 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ScanResponse, Connectable, Scannable, ScanResponse
07:21:20.062 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ConnectableUndirected, Connectable, Scannable
07:21:20.072 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ScanResponse, Connectable, Scannable, ScanResponse
07:21:20.073 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -66, ConnectableUndirected, Connectable,Scannable
07:21:20.075 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -66, ScanResponse, Connectable, Scannable, ScanResponse
07:21:20.523 Plugin.BLE - AdvReceived - New: CBFDC46A48B8, Amazfit Bip Watch, Random, -91, ConnectableUndirected, Connectable, Scannable
07:21:20.523       DEMO - ---- DeviceDiscovered: 0 with Name = 1
07:21:20.523 Plugin.BLE - AdvReceived - Old: CBFDC46A48B8, Amazfit Bip Watch, Random, -90, ScanResponse, Connectable, Scannable, ScanResponse
07:21:20.523 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -86, ConnectableUndirected, Connectable, Scannable
07:21:20.523 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -85, ScanResponse, Connectable, Scannable, ScanResponse
07:21:20.523 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ConnectableUndirected, Connectable,Scannable
07:21:20.523 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ScanResponse, Connectable, Scannable, ScanResponse
07:21:20.526 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ConnectableUndirected, Connectable,Scannable
07:21:20.526 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ScanResponse, Connectable, Scannable, ScanResponse
07:21:20.526 Plugin.BLE - AdvReceived - Old: 02C6C62B13AC, Bluetooth 02:c6:c6:2b:13:ac, Random, -76, ScannableUndirected, Scannable
07:21:20.526 Plugin.BLE - AdvReceived - Old: 02C6C62B13AC, Bluetooth 02:c6:c6:2b:13:ac, Random, -76, ScanResponse, Scannable, ScanResponse
07:21:20.539 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -85, ConnectableUndirected, Connectable, Scannable
07:21:20.540 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -86, ScanResponse, Connectable, Scannable, ScanResponse
07:21:20.658 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ConnectableUndirected, Connectable, Scannable
07:21:20.661 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ScanResponse, Connectable, Scannable, ScanResponse
07:21:20.676 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ConnectableUndirected, Connectable,Scannable
07:21:20.678 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ScanResponse, Connectable, Scannable, ScanResponse
07:21:21.127 Plugin.BLE - AdvReceived - New: 7E13AF62FBDA, Bluetooth 7e:13:af:62:fb:da, Random, -85, ConnectableUndirected, Connectable, Scannable
07:21:21.127       DEMO - ---- DeviceDiscovered: 0 with Name = 1
07:21:21.127 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -85, ConnectableUndirected, Connectable, Scannable
07:21:21.127 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -86, ScanResponse, Connectable, Scannable, ScanResponse
07:21:21.127 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ConnectableUndirected, Connectable,Scannable
07:21:21.127 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ScanResponse, Connectable, Scannable, ScanResponse
07:21:21.131 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ConnectableUndirected, Connectable, Scannable
07:21:21.131 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ScanResponse, Connectable, Scannable, ScanResponse
07:21:21.137 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ConnectableUndirected, Connectable,Scannable
07:21:21.137 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ScanResponse, Connectable, Scannable, ScanResponse
07:21:21.137 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ConnectableUndirected, Connectable, Scannable
07:21:21.137 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ScanResponse, Connectable, Scannable, ScanResponse
07:21:21.240 Plugin.BLE - AdvReceived - Old: 02C6C62B13AC, Bluetooth 02:c6:c6:2b:13:ac, Random, -81, ScannableUndirected, Scannable
07:21:21.241 Plugin.BLE - AdvReceived - Old: 02C6C62B13AC, Bluetooth 02:c6:c6:2b:13:ac, Random, -82, ScanResponse, Scannable, ScanResponse
07:21:21.361 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ConnectableUndirected, Connectable,Scannable
07:21:21.365 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ScanResponse, Connectable, Scannable, ScanResponse
07:21:21.475 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -67, ConnectableUndirected, Connectable,Scannable
07:21:21.478 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -66, ScanResponse, Connectable, Scannable, ScanResponse
07:21:21.481 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ConnectableUndirected, Connectable, Scannable
07:21:21.597 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ConnectableUndirected, Connectable,Scannable
07:21:21.598 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ScanResponse, Connectable, Scannable, ScanResponse
07:21:21.607 Plugin.BLE - AdvReceived - Old: 7E13AF62FBDA, Bluetooth 7e:13:af:62:fb:da, Random, -83, ConnectableUndirected, Connectable, Scannable
07:21:21.608 Plugin.BLE - AdvReceived - Old: 7E13AF62FBDA, Bluetooth 7e:13:af:62:fb:da, Random, -83, ScanResponse, Connectable, Scannable, ScanResponse
07:21:21.723 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ConnectableUndirected, Connectable,Scannable
07:21:21.724 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ScanResponse, Connectable, Scannable, ScanResponse
07:21:21.835 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ConnectableUndirected, Connectable, Scannable
07:21:21.836 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ScanResponse, Connectable, Scannable, ScanResponse
07:21:21.842 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -67, ConnectableUndirected, Connectable,Scannable
07:21:21.956 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ConnectableUndirected, Connectable,Scannable
07:21:21.958 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ScanResponse, Connectable, Scannable, ScanResponse
07:21:22.079 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ConnectableUndirected, Connectable,Scannable
07:21:22.081 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ScanResponse, Connectable, Scannable, ScanResponse
07:21:22.186 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ConnectableUndirected, Connectable, Scannable
07:21:22.187 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ScanResponse, Connectable, Scannable, ScanResponse
07:21:22.337 Plugin.BLE - Adapter: Scan timeout has elapsed.
07:21:22.337 Plugin.BLE - Adapter: Stopping the scan for devices.
07:21:22.337 Plugin.BLE - Stopping the scan for devices
Scan end
07:21:22.543 Plugin.BLE - ConnectToDeviceNativeAsync FF0BCAC1DA4B Named: DoKey_0437 Connected: Disconnected
07:21:22.547 Plugin.BLE - RequestPreferredConnectionParameters(ThroughputOptimized): Success
07:21:22.746 Plugin.BLE - Device_ConnectionStatusChanged FF0BCAC1DA4B DoKey_0437 Connected
07:21:22.747 Plugin.BLE - Connected with Latency = 0, Interval = 12, Timeout = 200
07:21:22.747       DEMO - Adapter_DeviceConnected FF0BCAC1DA4B with name:  DoKey_0437
07:21:22.747 Plugin.BLE - ConnectToDeviceAsync Connected: 00000000-0000-0000-0000-ff0bcac1da4b DoKey_0437
07:21:22.748       DEMO - Waiting 2 secs
07:21:22.753 Plugin.BLE - GattSession_SessionStatusChanged: Active
07:21:22.858 Plugin.BLE - GattSession_MaxPduSizeChanged: 350
07:21:24.755       DEMO - Disconnecting
07:21:24.756 Plugin.BLE - DisconnectDeviceNative from device with ID:  FF0BCAC1DA4B
07:21:24.760 Plugin.BLE - DisconnectInternal()-> DisposeGattSession DONE
07:21:24.760 Plugin.BLE - DisconnectInternal()-> ClearServices DONE
07:21:24.762 Plugin.BLE - DisconnectInternal()-> DisposeNativeDevice DONE
07:21:27.780 Plugin.BLE - Device_ConnectionStatusChanged FF0BCAC1DA4B DoKey_0437 Disconnected
07:21:27.780 Plugin.BLE - DisconnectedPeripheral by user: DoKey_0437
07:21:27.780       DEMO - Adapter_DeviceDisconnected FF0BCAC1DA4B with name: DoKey_0437
07:21:30.703 Plugin.BLE - DisconnectAsync Disconnected: 00000000-0000-0000-0000-ff0bcac1da4b DoKey_0437
Scan (1) start
07:21:30.703       DEMO - Test_Connect_Disconnect done
07:21:30.704       DEMO - Bluetooth is on
07:21:30.704       DEMO - Scanning now for 5000 ms...
07:21:30.704 Plugin.BLE - Starting a scan for devices.
07:21:31.025 Plugin.BLE - AdvReceived - New: FF0BCAC1DA4B, DoKey_0437, Public, -63, ConnectableUndirected, Connectable,Scannable
07:21:31.025       DEMO - ---- DeviceDiscovered: 0 with Name = 1
07:21:31.025 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ScanResponse, Connectable, Scannable, ScanResponse
07:21:31.026 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -67, ConnectableUndirected, Connectable,Scannable
07:21:31.026 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -67, ScanResponse, Connectable, Scannable, ScanResponse
07:21:31.160 Plugin.BLE - AdvReceived - New: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ConnectableUndirected, Connectable, Scannable
07:21:31.160       DEMO - ---- DeviceDiscovered: 0 with Name = 1
07:21:31.160 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ScanResponse, Connectable, Scannable, ScanResponse
07:21:31.160 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ConnectableUndirected, Connectable,Scannable
07:21:31.160 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ScanResponse, Connectable, Scannable, ScanResponse
07:21:31.160 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -86, ConnectableUndirected, Connectable, Scannable
07:21:31.160 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -86, ScanResponse, Connectable, Scannable, ScanResponse
07:21:31.160 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ConnectableUndirected, Connectable,Scannable
07:21:31.160 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ScanResponse, Connectable, Scannable, ScanResponse
07:21:31.198 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ConnectableUndirected, Connectable, Scannable
07:21:31.199 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ScanResponse, Connectable, Scannable, ScanResponse
07:21:31.221 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -66, ConnectableUndirected, Connectable,Scannable
07:21:31.322 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ConnectableUndirected, Connectable,Scannable
07:21:31.329 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ScanResponse, Connectable, Scannable, ScanResponse
07:21:31.331 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -84, ConnectableUndirected, Connectable, Scannable
07:21:31.332 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -85, ScanResponse, Connectable, Scannable, ScanResponse
07:21:31.440 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ConnectableUndirected, Connectable,Scannable
07:21:31.445 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ScanResponse, Connectable, Scannable, ScanResponse
07:21:31.563 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -67, ConnectableUndirected, Connectable,Scannable
07:21:31.564 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -66, ScanResponse, Connectable, Scannable, ScanResponse
07:21:31.676 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -86, ConnectableUndirected, Connectable, Scannable
07:21:31.678 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -85, ScanResponse, Connectable, Scannable, ScanResponse
07:21:32.014 Plugin.BLE - AdvReceived - New: 02C6C62B13AC, Bluetooth 02:c6:c6:2b:13:ac, Random, -82, ScannableUndirected, Scannable
07:21:32.014       DEMO - ---- DeviceDiscovered: 0 with Name = 1
07:21:32.015 Plugin.BLE - AdvReceived - Old: 02C6C62B13AC, Bluetooth 02:c6:c6:2b:13:ac, Random, -82, ScanResponse, Scannable, ScanResponse
07:21:32.015 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ConnectableUndirected, Connectable,Scannable
07:21:32.015 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ScanResponse, Connectable, Scannable, ScanResponse
07:21:32.022 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -85, ConnectableUndirected, Connectable, Scannable
07:21:32.023 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -86, ScanResponse, Connectable, Scannable, ScanResponse
07:21:32.147 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ConnectableUndirected, Connectable, Scannable
07:21:32.273 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ConnectableUndirected, Connectable, Scannable
07:21:32.612 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -67, ConnectableUndirected, Connectable,Scannable
07:21:32.617 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -67, ScanResponse, Connectable, Scannable, ScanResponse
07:21:32.626 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ConnectableUndirected, Connectable, Scannable
07:21:32.732 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ConnectableUndirected, Connectable,Scannable
07:21:32.734 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ScanResponse, Connectable, Scannable, ScanResponse
07:21:32.848 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ConnectableUndirected, Connectable, Scannable
07:21:32.995 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ConnectableUndirected, Connectable, Scannable
07:21:32.996 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ScanResponse, Connectable, Scannable, ScanResponse
07:21:32.999 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -67, ConnectableUndirected, Connectable,Scannable
07:21:33.000 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -67, ScanResponse, Connectable, Scannable, ScanResponse
07:21:33.093 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ConnectableUndirected, Connectable,Scannable
07:21:33.094 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ScanResponse, Connectable, Scannable, ScanResponse
07:21:33.233 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ConnectableUndirected, Connectable, Scannable
07:21:33.234 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ScanResponse, Connectable, Scannable, ScanResponse
07:21:33.330 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -67, ConnectableUndirected, Connectable,Scannable
07:21:33.334 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -67, ScanResponse, Connectable, Scannable, ScanResponse
07:21:33.337 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ConnectableUndirected, Connectable, Scannable
07:21:33.339 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -76, ScanResponse, Connectable, Scannable, ScanResponse
07:21:33.463 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -86, ConnectableUndirected, Connectable, Scannable
07:21:33.464 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -86, ScanResponse, Connectable, Scannable, ScanResponse
07:21:33.558 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ConnectableUndirected, Connectable, Scannable
07:21:33.559 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ScanResponse, Connectable, Scannable, ScanResponse
07:21:33.568 Plugin.BLE - AdvReceived - Old: 02C6C62B13AC, Bluetooth 02:c6:c6:2b:13:ac, Random, -76, ScannableUndirected, Scannable
07:21:33.569 Plugin.BLE - AdvReceived - Old: 02C6C62B13AC, Bluetooth 02:c6:c6:2b:13:ac, Random, -76, ScanResponse, Scannable, ScanResponse
07:21:33.570 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ConnectableUndirected, Connectable,Scannable
07:21:33.576 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ScanResponse, Connectable, Scannable, ScanResponse
07:21:33.684 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ConnectableUndirected, Connectable, Scannable
07:21:33.685 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ScanResponse, Connectable, Scannable, ScanResponse
07:21:33.695 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -67, ConnectableUndirected, Connectable,Scannable
07:21:33.696 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -67, ScanResponse, Connectable, Scannable, ScanResponse
07:21:33.914 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ConnectableUndirected, Connectable,Scannable
07:21:33.916 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ScanResponse, Connectable, Scannable, ScanResponse
07:21:34.033 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ConnectableUndirected, Connectable, Scannable
07:21:34.034 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ScanResponse, Connectable, Scannable, ScanResponse
07:21:34.175 Plugin.BLE - AdvReceived - New: 7E13AF62FBDA, Galaxy Watch6 Classic (6TGR), Random, -83, ConnectableUndirected, Connectable, Scannable
07:21:34.175       DEMO - ---- DeviceDiscovered: 0 with Name = 1
07:21:34.175 Plugin.BLE - AdvReceived - Old: 7E13AF62FBDA, Galaxy Watch6 Classic (6TGR), Random, -83, ScanResponse, Connectable, Scannable, ScanResponse
07:21:34.175 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -86, ConnectableUndirected, Connectable, Scannable
07:21:34.175 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -85, ScanResponse, Connectable, Scannable, ScanResponse
07:21:34.283 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ConnectableUndirected, Connectable, Scannable
07:21:34.284 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ScanResponse, Connectable, Scannable, ScanResponse
07:21:34.502 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -85, ConnectableUndirected, Connectable, Scannable
07:21:34.504 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -86, ScanResponse, Connectable, Scannable, ScanResponse
07:21:34.628 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ConnectableUndirected, Connectable, Scannable
07:21:34.630 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ScanResponse, Connectable, Scannable, ScanResponse
07:21:34.747 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -67, ConnectableUndirected, Connectable,Scannable
07:21:34.761 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -67, ScanResponse, Connectable, Scannable, ScanResponse
07:21:34.865 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ConnectableUndirected, Connectable,Scannable
07:21:34.867 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ScanResponse, Connectable, Scannable, ScanResponse
07:21:34.976 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ConnectableUndirected, Connectable,Scannable
07:21:34.982 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ScanResponse, Connectable, Scannable, ScanResponse
07:21:34.985 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -73, ConnectableUndirected, Connectable, Scannable
07:21:34.986 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ScanResponse, Connectable, Scannable, ScanResponse
07:21:35.353 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ConnectableUndirected, Connectable, Scannable
07:21:35.451 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ConnectableUndirected, Connectable, Scannable
07:21:35.581 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -86, ConnectableUndirected, Connectable, Scannable
07:21:35.710 Plugin.BLE - Adapter: Scan timeout has elapsed.
07:21:35.710 Plugin.BLE - Adapter: Stopping the scan for devices.
07:21:35.710 Plugin.BLE - Stopping the scan for devices
Scan (1) end
Scan (2) start
07:21:35.913       DEMO - Bluetooth is on
07:21:35.913       DEMO - Scanning now for 5000 ms...
07:21:35.913 Plugin.BLE - Starting a scan for devices.
07:21:36.009 Plugin.BLE - AdvReceived - New: FF0BCAC1DA4B, DoKey_0437, Public, -67, ConnectableUndirected, Connectable,Scannable
07:21:36.009       DEMO - ---- DeviceDiscovered: 0 with Name = 1
07:21:36.151 Plugin.BLE - AdvReceived - New: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ConnectableUndirected, Connectable, Scannable
07:21:36.151       DEMO - ---- DeviceDiscovered: 0 with Name = 1
07:21:36.151 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ScanResponse, Connectable, Scannable, ScanResponse
07:21:36.151 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ConnectableUndirected, Connectable,Scannable
07:21:36.151 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ScanResponse, Connectable, Scannable, ScanResponse
07:21:36.151 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -76, ConnectableUndirected, Connectable, Scannable
07:21:36.431 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -67, ConnectableUndirected, Connectable,Scannable
07:21:36.434 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -67, ScanResponse, Connectable, Scannable, ScanResponse
07:21:36.437 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -76, ConnectableUndirected, Connectable, Scannable
07:21:36.661 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ConnectableUndirected, Connectable,Scannable
07:21:36.662 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ScanResponse, Connectable, Scannable, ScanResponse
07:21:36.776 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -67, ConnectableUndirected, Connectable,Scannable
07:21:36.784 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -67, ScanResponse, Connectable, Scannable, ScanResponse
07:21:37.033 Plugin.BLE - AdvReceived - New: 02C6C62B13AC, Bluetooth 02:c6:c6:2b:13:ac, Random, -76, ScannableUndirected, Scannable
07:21:37.033       DEMO - ---- DeviceDiscovered: 0 with Name = 1
07:21:37.033 Plugin.BLE - AdvReceived - Old: 02C6C62B13AC, Bluetooth 02:c6:c6:2b:13:ac, Random, -76, ScanResponse, Scannable, ScanResponse
07:21:37.038 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ConnectableUndirected, Connectable, Scannable
07:21:37.257 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -86, ConnectableUndirected, Connectable, Scannable
07:21:37.268 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -86, ScanResponse, Connectable, Scannable, ScanResponse
07:21:37.271 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ConnectableUndirected, Connectable,Scannable
07:21:37.273 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ScanResponse, Connectable, Scannable, ScanResponse
07:21:37.381 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ConnectableUndirected, Connectable, Scannable
07:21:37.382 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ScanResponse, Connectable, Scannable, ScanResponse
07:21:37.729 Plugin.BLE - AdvReceived - New: 7E13AF62FBDA, Galaxy Watch6 Classic (6TGR), Random, -85, ConnectableUndirected, Connectable, Scannable
07:21:37.729       DEMO - ---- DeviceDiscovered: 0 with Name = 1
07:21:37.729 Plugin.BLE - AdvReceived - Old: 7E13AF62FBDA, Galaxy Watch6 Classic (6TGR), Random, -84, ScanResponse, Connectable, Scannable, ScanResponse
07:21:37.732 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -86, ConnectableUndirected, Connectable, Scannable
07:21:37.732 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -86, ScanResponse, Connectable, Scannable, ScanResponse
07:21:37.732 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -73, ConnectableUndirected, Connectable, Scannable
07:21:37.733 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ScanResponse, Connectable, Scannable, ScanResponse
07:21:37.865 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -67, ConnectableUndirected, Connectable,Scannable
07:21:37.872 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -67, ScanResponse, Connectable, Scannable, ScanResponse
07:21:37.971 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ConnectableUndirected, Connectable,Scannable
07:21:37.972 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ScanResponse, Connectable, Scannable, ScanResponse
07:21:38.073 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ConnectableUndirected, Connectable, Scannable
07:21:38.192 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -67, ConnectableUndirected, Connectable,Scannable
07:21:38.198 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -67, ScanResponse, Connectable, Scannable, ScanResponse
07:21:38.199 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -76, ConnectableUndirected, Connectable, Scannable
07:21:38.350 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ConnectableUndirected, Connectable,Scannable
07:21:38.351 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ScanResponse, Connectable, Scannable, ScanResponse
07:21:38.435 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ConnectableUndirected, Connectable,Scannable
07:21:38.441 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ScanResponse, Connectable, Scannable, ScanResponse
07:21:38.547 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -67, ConnectableUndirected, Connectable,Scannable
07:21:38.561 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -67, ScanResponse, Connectable, Scannable, ScanResponse
07:21:38.665 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -85, ConnectableUndirected, Connectable, Scannable
07:21:38.666 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -85, ScanResponse, Connectable, Scannable, ScanResponse
07:21:38.671 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ConnectableUndirected, Connectable,Scannable
07:21:38.671 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ScanResponse, Connectable, Scannable, ScanResponse
07:21:38.790 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ConnectableUndirected, Connectable, Scannable
07:21:38.798 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ConnectableUndirected, Connectable,Scannable
07:21:38.800 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ScanResponse, Connectable, Scannable, ScanResponse
07:21:38.912 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -67, ConnectableUndirected, Connectable,Scannable
07:21:38.913 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -67, ScanResponse, Connectable, Scannable, ScanResponse
07:21:38.916 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ConnectableUndirected, Connectable, Scannable
07:21:38.926 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -76, ScanResponse, Connectable, Scannable, ScanResponse
07:21:39.029 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ConnectableUndirected, Connectable,Scannable
07:21:39.045 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ScanResponse, Connectable, Scannable, ScanResponse
07:21:39.149 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ConnectableUndirected, Connectable,Scannable
07:21:39.165 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ScanResponse, Connectable, Scannable, ScanResponse
07:21:39.264 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -76, ConnectableUndirected, Connectable, Scannable
07:21:39.266 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -76, ScanResponse, Connectable, Scannable, ScanResponse
07:21:39.522 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ConnectableUndirected, Connectable,Scannable
07:21:39.524 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ScanResponse, Connectable, Scannable, ScanResponse
07:21:39.617 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -76, ConnectableUndirected, Connectable, Scannable
07:21:39.619 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ScanResponse, Connectable, Scannable, ScanResponse
07:21:39.647 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -67, ConnectableUndirected, Connectable,Scannable
07:21:39.649 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -67, ScanResponse, Connectable, Scannable, ScanResponse
07:21:39.733 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ConnectableUndirected, Connectable,Scannable
07:21:39.734 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ScanResponse, Connectable, Scannable, ScanResponse
07:21:39.735 Plugin.BLE - AdvReceived - Old: 7E13AF62FBDA, Galaxy Watch6 Classic (6TGR), Random, -83, ConnectableUndirected, Connectable, Scannable
07:21:39.742 Plugin.BLE - AdvReceived - Old: 7E13AF62FBDA, Galaxy Watch6 Classic (6TGR), Random, -83, ScanResponse, Connectable, Scannable, ScanResponse
07:21:39.743 Plugin.BLE - AdvReceived - Old: 02C6C62B13AC, Bluetooth 02:c6:c6:2b:13:ac, Random, -82, ScannableUndirected, Scannable
07:21:39.744 Plugin.BLE - AdvReceived - Old: 02C6C62B13AC, Bluetooth 02:c6:c6:2b:13:ac, Random, -82, ScanResponse, Scannable, ScanResponse
07:21:39.747 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -86, ConnectableUndirected, Connectable, Scannable
07:21:39.748 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -85, ScanResponse, Connectable, Scannable, ScanResponse
07:21:39.869 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ConnectableUndirected, Connectable,Scannable
07:21:39.870 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ScanResponse, Connectable, Scannable, ScanResponse
07:21:39.967 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -76, ConnectableUndirected, Connectable, Scannable
07:21:39.968 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ScanResponse, Connectable, Scannable, ScanResponse
07:21:40.096 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ConnectableUndirected, Connectable,Scannable
07:21:40.099 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ScanResponse, Connectable, Scannable, ScanResponse
07:21:40.102 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -85, ConnectableUndirected, Connectable, Scannable
07:21:40.104 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -84, ScanResponse, Connectable, Scannable, ScanResponse
07:21:40.211 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ConnectableUndirected, Connectable,Scannable
07:21:40.213 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ScanResponse, Connectable, Scannable, ScanResponse
07:21:40.318 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -76, ConnectableUndirected, Connectable, Scannable
07:21:40.319 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -75, ScanResponse, Connectable, Scannable, ScanResponse
07:21:40.325 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -66, ConnectableUndirected, Connectable,Scannable
07:21:40.332 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -66, ScanResponse, Connectable, Scannable, ScanResponse
07:21:40.443 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ConnectableUndirected, Connectable,Scannable
07:21:40.445 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -64, ScanResponse, Connectable, Scannable, ScanResponse
07:21:40.563 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ConnectableUndirected, Connectable,Scannable
07:21:40.577 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ScanResponse, Connectable, Scannable, ScanResponse
07:21:40.580 Plugin.BLE - AdvReceived - Old: 6D2A8E57407C, Bluetooth 6d:2a:8e:57:40:7c, Random, -74, ConnectableUndirected, Connectable, Scannable
07:21:40.918 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ConnectableUndirected, Connectable,Scannable
07:21:40.920 Plugin.BLE - Adapter: Scan timeout has elapsed.
07:21:40.920 Plugin.BLE - Adapter: Stopping the scan for devices.
07:21:40.920 Plugin.BLE - Stopping the scan for devices
07:21:40.929 Plugin.BLE - AdvReceived - Old: FF0BCAC1DA4B, DoKey_0437, Public, -63, ScanResponse, Connectable, Scannable, ScanResponse
Scan (2) end
07:21:41.124 Plugin.BLE - ConnectToDeviceNativeAsync FF0BCAC1DA4B Named: DoKey_0437 Connected: Disconnected
07:21:41.125 Plugin.BLE - RequestPreferredConnectionParameters(ThroughputOptimized): Success
07:21:41.200 Plugin.BLE - Device_ConnectionStatusChanged FF0BCAC1DA4B DoKey_0437 Connected
07:21:41.200 Plugin.BLE - Connected with Latency = 0, Interval = 12, Timeout = 200
07:21:41.200       DEMO - Adapter_DeviceConnected FF0BCAC1DA4B with name:  DoKey_0437
07:21:41.200 Plugin.BLE - ConnectToDeviceAsync Connected: 00000000-0000-0000-0000-ff0bcac1da4b DoKey_0437
07:21:41.200       DEMO - Waiting 2 secs
07:21:41.210 Plugin.BLE - GattSession_SessionStatusChanged: Active
07:21:41.428 Plugin.BLE - GattSession_MaxPduSizeChanged: 350
07:21:43.203       DEMO - Disconnecting
07:21:43.203 Plugin.BLE - DisconnectDeviceNative from device with ID:  FF0BCAC1DA4B
07:21:43.204 Plugin.BLE - DisconnectInternal()-> DisposeGattSession DONE
07:21:43.204 Plugin.BLE - DisconnectInternal()-> ClearServices DONE
07:21:43.205 Plugin.BLE - DisconnectInternal()-> DisposeNativeDevice DONE

In it you can see that if I run two scan before connect/disconnect, I never receive again the disconnection notification and the ble device stays connected to the system until I kill the App...

Firstly understand that you are using an implementation on top of the underlying API, so frankly while it might not "directly match" it is difficult to disseminate how the underlying issue will manifest in any particular implementation.
Basically what i am saying is I dont think much that can be learned or addressed from the report that an implementation (demo in this case) is malfunctioning , if the underlying API is broken.

I'm not sure to understand well.
I use demo app only in order to simplify my tests.
It simply use basic functions like StartScanningForDevicesAsync, ConnectToKnownDeviceAsync, DisconnectDeviceAsync...
I'm not telling that the problem comes from demo app but in the underlying API and the fact that problem appears only if I run 2 consecutives scans.

I'm not telling that the problem comes from demo app but in the underlying API and the fact that problem appears only if I run 2 consecutives scans.

What I find is that you don't need to run any more than once scan to have the Connect/Disconnect stop working.  Though I think i can concede additional scans (ie additional interaction with the API) does help expedite the failure

On my side the problem appears when there are 2 consecutive scans.
After a lots of research i found something..
In AdapterBase.cs file, it seems that all devices added to DiscoveredDevicesRegistry are not disposed but the array is simply cleared. I made one modification to fix this and it works
      public async Task StartScanningForDevicesAsync(ScanFilterOptions scanFilterOptions,
          Func<IDevice, bool> deviceFilter = null,
          bool allowDuplicatesKey = false,
          CancellationToken cancellationToken = default)
      {
          if (IsScanning)
          {
              Trace.Message("Adapter: Already scanning!");
              return;
          }

          IsScanning = true;
          _currentScanDeviceFilter = deviceFilter ?? (d => true);
          _scanCancellationTokenSource = new CancellationTokenSource();

          try
          {
              // Add Dispose for all devices
              foreach (var discoveredDeviceEntry in DiscoveredDevicesRegistry)
              {
                  ((IDevice)(discoveredDeviceEntry.Value)).Dispose();

              }
              DiscoveredDevicesRegistry.Clear();

              using (cancellationToken.Register(() => _scanCancellationTokenSource?.Cancel()))
              {
                  await StartScanningForDevicesNativeAsync(scanFilterOptions, allowDuplicatesKey, _scanCancellationTokenSource.Token);
                  await Task.Delay(ScanTimeout, _scanCancellationTokenSource.Token);
                  Trace.Message("Adapter: Scan timeout has elapsed.");
                  CleanupScan();
                  ScanTimeoutElapsed?.Invoke(this, new System.EventArgs());
              }
          }
          catch (TaskCanceledException)
          {
              CleanupScan();
              Trace.Message("Adapter: Scan was cancelled.");
          }
      }

@andrenoel84 you should make PR for this

The workaround described by andrenoel84 did not work for me. I ended up implementing a fail safe on the disconnect that toggles the radio off and back on if the disconnect takes too long. It's a pretty bad solution and I blame Microsoft for creating this mess.

I blame Microsoft for creating this mess.

How so? I've other BT devices that interact well with windows, the problem here seems to unfortunately be the API


Migrate http client from 4 to 5 to omit issues with spring upgrade

What version of UAA are you running?
No UAA issue, but found
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#apache-httpclient-in-resttemplate
How are you deploying the UAA?
Checked again pre-requists for spring upgrade and http client is something we should take care before the big changes.
e.g. https://stackoverflow.com/questions/77330878/httpclient-to-httpclient5
What did you do?
We should upgrade the client and then enhance the client http handling, e.g. add a retry which was missing in past
What did you expect to see? What goal are you trying to achieve with the UAA?
What did you see instead?
Please include UAA logs if available.

https://hc.apache.org/httpcomponents-client-5.4.x/migration-guide/preparation.html


Repo size

Hi Biosteam community, I'am a new Biosteam user and the first issue I faced up with Biorefineries Bioindustrial-park are the Size of the repo 1.7G, I understand the good practice to share xls files to contrast the ideas, and to validate but its a little awful. I suggest bring all data like .xls, .csv,... on other kind of cloud file mirror services (google drive, dropbox, end so on). Would be fantastic if would exist routines to create or download them assest files on the fly in python execution inicialization even I can help coding some common routings to automate this type of action maybe if someone also think that it is an #enhancement, let me know please. This approch maybe help from the begin of the #Boilerplate-biorefinery. With my best gratitude.

Maybe the most easy way it's to gitignore .csv and .xls files, next make a pull request providing additional link to a .zip file  (in a README file for example) with all this non-critical statics assets in a suitable directory structure (this suppose advanced users). A little more complex approach implement simple snippets  methods to load_data into__init__.py files, some key question is the service/technology to choice for mirror this files, the main benefit is transparent for users.

Hi @sudomakeflies,
I appreciate your thoughts on this. Yeah, the size is pretty big. Did you know you can clone the repo with:
$ git clone --depth 5 git://github.com/BioSTEAMDevelopmentGroup/Bioindustrial-Park
We can add .csv and .xlsx to gitignore and have users add the files only when they are about to publish the biorefinery in a paper.
Using zip files may not be feasible considering we got many users that need quick access to load/save data. Please feel free to suggest an implementation for easy saving and loading of xlsx, csv, npy files from a cloud.
Thanks!


registry: Remove unused method ResolveIndex

This does not appear to be used.
cc @dmcgowan @vdemeester

LGTM


Phan should detect missing classes/functions at location of import

E.g. for this example
use MissingNS\Foo;
use MissingNS\Bar;
$x = new Foo();

The third line will warn, but the first and second won't.
This is low severity, since php will run this snippet without errors, but users should be notified as soon as possible (unused/broken import may be a sign of other problems).
Expected: warn at both line 1 and line 3
Observed: warn at line 1.
This must be done after the parse phase.

A Phan\Issue::SEVERITY_LOW makes sense to me.

After fixing https://github.com/phan/phan/issues/1095 , this seems to be unnecessary for USE_NORMAL. Could still emit for constant/functions.


Fix for logging headers with nil value.

I've discovered this issue during Tesla upgrade from 0.x to 1.x
In 0.x we had https://github.com/teamon/tesla/blob/0.x/lib/tesla/middleware/logger.ex#L143 - because value of the header is interpolated here elixir will automatically call to_string on it.
In 1.x we have https://github.com/teamon/tesla/blob/master/lib/tesla/middleware/logger.ex#L205 - which essentially calls Logger.debug([k, “: “, v, ?\n]) - trying to log nil inside this array here will cause the logger to blow up:
iex(2)> client = Tesla.client([
  {Tesla.Middleware.BaseUrl, "http://github.com"},
  fn env, next ->
    env
    |> Tesla.put_header("mjornir", nil)
    |> Tesla.run(next)
  end,
  Tesla.Middleware.Logger
])

iex(2)> Tesla.get(client, "/")

12:08:58.242 [warn]  GET http://github.com/ -> 301 (100.693 ms)
** (ArgumentError) cannot truncate chardata because it contains something that is not valid chardata: nil
    (logger) lib/logger/utils.ex:78: Logger.Utils.truncate_n/2
    (logger) lib/logger/utils.ex:88: Logger.Utils.truncate_n_list/3
    (logger) lib/logger/utils.ex:48: Logger.Utils.truncate/2
    (logger) lib/logger.ex:686: Logger.__do_log__/3
    (tesla) lib/tesla/middleware/logger.ex:128: Tesla.Middleware.Logger.call/3

I think we should add guards to these functions, like:
def put_header(%Env{} = env, key, value) when is_binary(key) and is_binary(value) do
  # ...
end

+1 to raise error (e.g. no match) when bad value is given.

Fixed in afca952

:+1:


rayquery example requires VK_KHR_ray_pipeline

Some HW, notably Snapdragon 8 Gen 2 devices support only VK_KHR_ray_query. As it is the ray query example ends up requiring support for ray pipeline at init time even if it's not used at runtime. Ideally this requirement could be relaxed to allow for using the example on such devices.
(Would also be nice to have android support for rayquery since it's currently missing from the android/examples folder)

I just checked, and the the ray tracing pipeline isn't enabled for the ray query sample:
		enabledDeviceExtensions.push_back(VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME);
	}

I'll add the missing android build files. Somehow missed this when the first devices came out that supported ray queries.


Code-generated Markdown tables do not render correctly

This is a known issue in MyST-NB. I want to figure out a workaround.

One idea of @effigies' that seems to work is
display(HTML(markdown(table.to_markdown(), extensions=['tables'])))

The thing I'm stuck on now is including glossary links in the table. For example, having the string {term}`Name (metadata)` ends up looking like

in the rendered table.

Just tried it out, and the result was the same as the HTML version.

I don't know the Markdown object well enough, but if we could invert this like markdown(Markdown(...), extensions=['tables']), that might work.

I tried writing a function that would replace {term}<code>...</code> with {term}`...`. The HTML string does end up having the {term}`...` I want, but it looks like the glossary links must be rendered before the table is displayed?
Even having display(Markdown("{term}Manufacturer (metadata)")) in a code cell didn't work.

I don't know the Markdown object well enough, but if we could invert this like markdown(Markdown(...), extensions=['tables']), that might work.

This didn't work. markdown() requires a string.

It looks like we can use .to_markdown(tablefmt=...) for values listed in https://github.com/astanin/python-tabulate#table-format, which includes 'rst'. So might be worth seeing if converting to RST would be easier than hacking myst to render markdown tables.


Improve odin bindings, DLL support

This PR does a number of modifications to the Odin binding generator, and the project structure:

Add support for DLLs, using unity builds to compile all sokol libs into a single DLL (Windows only)

the primary reason for this is hot reloading
added sokol.c for unity builds

Define the #config values as constants, so they can be easily used elsewhere
Use a custom debug constant instead of ODIN_DEBUG (which is still used by default), which can override either all sokol libs or individual modules
Add some empty lines to the generated bindings to improve readability :) (this is my personal preference, doesn't have anything to do with the rest of this PR)
move the c folder which contains all C files and the build scripts into the sokol folder with odin packages. This means the sokol folder is now completely standalone and can be easily copied into the source directory of any project.

Most of these changes are what I used in my game Solar Storm. Sometimes it's just what I personally prefer, but I think it ultimately does make the bindings easier to work with.

Note: these changes are still a bit experimental as I couldn't test 100% everything before submitting the PR (like the automatic uploading of bindings on each commit).

Linked PR from the sokol-odin repo: https://github.com/floooh/sokol-odin/pull/11

It's a pretty big PR, so in case you don't like something let me know

Looks good! I'll try to give it a whirl on the weekend before merging.
I was wondering why you moved the top-level scripts to build the C libraries into a subdirectory (because I preferred to have them visible at the top level), but this is a good reason:

This means the sokol folder is now completely standalone and can be easily copied into the source directory of any project.

Thank you! I agree the build scripts look nicer in the top-level folder, but this way just fits the odin workflow a bit better...

And merged. Many thanks!


Instructor instructions

[x] ensure the instructor or someone there has access to add collaborators to the CR centralized-workflow-exerciserepo.  You can use a fork but people will use the wrong one (unless the instructions are updated) and it will be a big mess!
[ ] People really have to sit next to someone, so that they can see the screens.  From the beginning.
[ ] Emphasize use of git graph a lot, just like in git-intro

This issue will be edited.

First point taken care of in #44.


Invalid feeds are remembered

If someone enters an invalid feed, we remember it in the list anyway. We should also have a way to clear out other feeds from the list.

The code currently expects that an exception is thrown in LoadPackages / LoadMore when the feed is invalid, but exceptions are currently already handled there.
See your commit:  https://github.com/NuGetPackageExplorer/NuGetPackageExplorer/commit/db4f96c061c443107e0e927477a15fb37324ed7b


Fix paddings in Cockpit fragment

Paddings should be as follows:

16 dp between group header and the item,
8 dp between divider and an item,
16 dp between divider and group header.


Snackbar got lost on v1.0.6 release

Snackbar is not included in the 1.0.6 release. Is this intended?

It is not lost at all. It was never added to 1.0.x since it is a new feature. It went directly to master for 1.1.

Ok thanks. Maybe it could be marked for milestone 1.1 such that other people don't get confused too.

Pull #1519 which added it already was tagged properly.
Also, we are following SemVer as best we can, so it should be known that new features go into the next minor.


Use ROAD map type in Offline Fragment

Introduce a new config overrideMapType in MapConfig and use ROAD type for offline fragment

@gino-m PTAL?

/gcbrun

@shobhitagarwal1612 Looks like checks are failing on formatting lint on OfflineAreaSelectorViewModel.kt


Invalid content /en/development-environments/native-tokens/native-tokens/

Where does the issue occur?
https://developers.cardano.org/en/development-environments/native-tokens/native-tokens/
Describe the issue
The page https://developers.cardano.org/en/development-environments/native-tokens/native-tokens/ seems to be available intermittently e.g. today I have seen:

and:

Expected changes
This page is referenced in multiple places as a resource to create Native Tokens and should be available consistently.
Additional context
Example blog post referencing the intermittently available webpage https://iohk.io/en/blog/posts/2020/12/09/native-tokens-on-cardano-core-principles-and-points-of-difference/

thanks for your feedback, the content for native tokens has moved to our documentation site Cardano Docs, as native tokens are now on mainnet. Prior to this content was on the developer site as it was in a testing phase. The blog was released when native tokens was being testing.

Thanks @nahern - would it be possible to put a link on this page to the correct documentation? That would probably help a lot of people that found themselves in my position being directed to a stale page


SAK-50690: Select missatge and option to show assistance reports

In the Meetings tool, add an informational alert at the top of the tool to inform the user that they need to register with Microsoft to sign in. Additionally, for each created meeting, provide the option to download the attendance report in CSV format and preview it.

The banner is optional, it can be hidden using a property


Excellent work... !!!

First of all a big THANK YOU for your libraries and all that you have developed.
I am just starting with Windows automation and this is perfect, very easy to work with and easy to program. The best I have ever used.
One question: Do you plan to make it compatible with Ahk v2?

Thank you for your kind words :)
At this moment I don't have plans on making it AHK v2 compatible, since I don't personally use AHK v2 and this library has more pressing issues to solve. Though if anyone wants to make changes to make it more compatible, of course I will accept the pull requests.
AFAIK the UIA2.ahk library should be for AHK v2, perhaps that is suitable?


[FEATURE]: Support multiple currencies for the fee argument in the CLI

Feature description
Currently there's a --fee flag which accepts a single currency, this should be --fees and accept a list of currencies

Resolved in https://github.com/rumos-io/gears/pull/164


Features/migrate category

After removing .env, please remember to provide env key in travis.yml and make changes to the port if necessary.


puppet_module_install excludes too much

Hi
I'd like to be able to do something like...
puppet_module_install(:source => File.join(module_root, 'spec/fixtures/modules/functions'), :module_name => 'functions')
... but, 'spec' is in the default PUPPET_MODULE_INSTALL_IGNORE and as a result, nothing gets scp'ed
I believe the ignore paths should only be used if they appear in the module being copied itself, and not if they appear earlier in the path.

I've done some digging when @alexjfisher mentioned it on IRC.
https://github.com/puppetlabs/beaker/blob/master/lib/beaker/host.rb#L390-L392 does a glob of all the potential directories and rejects anything that matches the ignore_re.
The issue with this is that the Regex is not specific enough and matches anything that is in the path.
So if you have a path called /foo/bar/spec/something it gets ignored because it has spec in the path name.
We should only process the ignoring of directories in the source dir it self.
A potential fix is to do f.gsub(source, '') =~ ignore_re at https://github.com/puppetlabs/beaker/blob/master/lib/beaker/host.rb#L391
which strips out the source path so we only evaluate the directories that are in the source path.
@anodelman any opinions on this?

I think that our scp ignore is pretty much a mess and I'm going to be reviewing it this week.  The difficulty here is that some code depends upon our flexible attitude towards what is a match, yet, in this case, it is stabbing us in the back.
What really needs to happen here is better doc-ing that makes it clear what ignore does/doesn't do and then stick to i.

A fix for this is actually included in https://github.com/puppetlabs/beaker/pull/730 - to only match against subdirs of the provided dir.

PR merged.


Bot no longer using server-specific Discord nicknames, using default Discord usernames instead

Been running this bot for a few years now and just recently it started using default Discord usernames in IRC instead of the name specific to the Discord server. This also means that the webhook avatar icons don't match up when typing in IRC and it posting back to Discord. Haven't made any configuration changes to the bot.
https://i.imgur.com/eq1D6Fg.png
https://i.imgur.com/b2jt5BF.png

Hey there! What version of discord-irc are you on? Additionally, do you receive any sort of error in the console when this happens? I just tested it on v2.9.0 on a local server, and it seems to track my nickname changes fine between "Throne" and "ABC", so this doesn't look straightforward to resolve from my end.

hm, 2.6.1 no, no errors are logged.
will give updating a shot.

updating has fixed the problem. who would have thought?

Awesome! Discord probably changed something in the structure of the API response, and the old version of discord.js doesn't recognize it.
I'll investigate adding this to the README – I have a few other items I could add there in case anyone else encounters the same priblem!.

hm. updating to 2.9.0 didn't change my problem. the bot is always displaying the underlying account name in irc

here's a screenshot. my account is @johnstein but I changed it to juanpiedra for this server.  in discord, my name is 'juanpiedra' but when I type anything, the log from the bot shows , my account name.

I'm on 2.9.0 using commit 4f449954e04419b24b6baf2520ad38dce59d785f and I've closed and restarted the bot several times.

I did a completely fresh install, npm install -g discord-irc, and it works OK now. I probably had some stupid dependency issues when I manually tried to update. sorry for the false alarm.

I'm glad you got it to work! I'll add to the FAQ that it may take a clean install.


Refactoring PR Labels Handling and Display

PR Description:
This PR introduces several changes related to PR labels handling and display:

The 'PR Labels' key is now used instead of 'PR Type' to prepare labels.
The 'PR Labels' key is not displayed in the markdown text.
A new configuration option 'enable_pr_type' is added to control whether to display 'PR Type' in the markdown text.
The 'set_custom_labels' function call is commented out in 'pr_reviewer.py'.
The 'Tests' option is removed from 'PR Type' in 'pr_custom_labels.toml'.
The 'PR Type' is changed from array to string in 'pr_description_prompts.toml'.
The 'PR Labels' key is added to 'pr_description_prompts.toml'.
The 'PR Type' is changed from array to string and the 'PR Labels' key is removed in 'pr_reviewer_prompts.toml'.

PR Main Files Walkthrough:
 files:
pr_agent/tools/pr_description.py: The 'PR Labels' key is now used instead of 'PR Type' to prepare labels. The 'PR Labels' key is not displayed in the markdown text. A new configuration option 'enable_pr_type' is added to control whether to display 'PR Type' in the markdown text.
pr_agent/tools/pr_reviewer.py: The 'set_custom_labels' function call is commented out.
pr_agent/settings/configuration.toml: A new configuration option 'enable_pr_type' is added.
pr_agent/settings/pr_custom_labels.toml: The 'Tests' option is removed from 'PR Type'.
pr_agent/settings/pr_description_prompts.toml: The 'PR Type' is changed from array to string and the 'PR Labels' key is added.
pr_agent/settings/pr_reviewer_prompts.toml: The 'PR Type' is changed from array to string and the 'PR Labels' key is removed.

/describe

Preparing PR description...

Preparing PR description...


建议增加一个时间统计

仅仅提交一个建议。Submit just one proposal.
在你提交此建议前请注意：Please note before you submit this proposal:

详细阅读椒盐音乐帮助内容（应用设置-帮助）。Read more about the SaltPlayer help content (app Settings - Help).

反馈时候请注意：When giving feedback, please note:

尽量详细的描述。Be as detailed as possible.
不接收任何 UI 样式调整相关的反馈，出现此类 issue 会被关闭（如 “我不喜欢此设计” 、“我觉得这样设计更好” 、“还没原来好看” 等等类似反馈）。Do not receive any feedback on UI style changes, and the issue will be closed (" I don't like this design ", "I think this design is better", "it's not as good as the original", etc.).

建议内容 The proposals
可以用来统计听歌数据，每首歌所听次数等

移动到 #180


Update CI

remove unmaintained actions-rs actions
bump versions
add dependabot config for actions
don't bother building dependency documentation
run clippy on all targets
use a matrix job

you can see the job status in my fork - https://github.com/danieleades/deluxe/pull/1


Angular translate filters

https://www.transifex.com/waze/waze-map-editor/
We will start with english and german

https://angular-translate.github.io/docs/#/guide
http://stackoverflow.com/questions/31074065/angularjs-how-to-trigger-filter-on-ng-click
http://blog.thoughtram.io/angularjs/2014/11/19/exploring-angular-1.3-stateful-filters.html


[🐞] renderToString not working on client side in preview mode

Which component is affected?
Qwik Runtime
Describe the bug
using qwik 0.101.0, latest version as of writting
renderToString works in npm run dev but not npm run preview
can' t reproduce on stackblitz because npm run preview crashes there

what is the recommended way to get html representation of jsx nodes?
if I'd like to do a PR, where should I change to fix this issue?

the code was something like
renderToString(<>...
some

jsx

fragment
...</>,{manifest:{}as any,containerTagName:"div"}).then((result)=>callback(tick,result.html))

Reproduction
N/A
Steps to reproduce
No response
System Info
System:
    OS: Linux 4.4 Debian GNU/Linux 8 (jessie) 8 (jessie)
    CPU: (48) x64 Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
    Memory: 46.54 GB / 251.18 GB
    Container: Yes
    Shell: <IP_ADDRESS> - ...zsh
  Binaries:
    Node: 16.13.2 - ~/.nvm/versions/node/v16.13.2/bin/node
    npm: 8.1.2 - ~/.nvm/versions/node/v16.13.2/bin/npm

Additional Information
No response

Is it still a problem with the latest version of Qwik?


[OSX] Failed to install OpenFL via 'haxelib install openfl'

I followed the instructions of the official site, installed Haxe through installer, then run 'haxelib install openfl', I got these:

xarples-MacBook-Air:~ xarple$ haxelib install openfl
Downloading openfl-3,6,1.zip...
Download complete : 0 bytes in 0.6s (0KB/s)
Eof
xarples-MacBook-Air:~ xarple$

Did I missed something steps?
Thanks.

This was an issue with the haxelib server, it sounds like. It should be working now
Thank you! :smile:


FalkorDB GraphRAG documentation updates

Why are these changes needed?
Update and add to existing FalkorDB GraphRAG documentation.
Checks

[ ] I've included any doc changes needed for https://ag2ai.github.io/ag2/. See https://ag2ai.github.io/ag2/docs/Contribute#documentation to build and test documentation locally.
[ ] I've added tests (if relevant) corresponding to the changes introduced in this PR.
[X] I've made sure all auto checks have passed.

LGTM

Nice one @AgentGenie... @qingyun-wu if there is any additional documentation to add (maybe from FalkorDB team?) then we can leave it open, otherwise good to merge.

Looks good. Could we change the status of this PR from draft to a formal PR?

LGTM


Consider using new branching model

The current Git branching model doesn't work well for a Go project.
For my bigger projects, I tend to use a different branching model:

No Pull Requests should be merged directly to the master branch. Why? In the README we suggest to install pick by using go get / git clone. go get / git clone by default always fetches the latest master. Our master is not a stable release. It would be much better to fetch the latest (stable) release instead.
New PRs should be opened against / merged into a new develop branch. When working on a new feature branch, do git checkout -b new-feature develop. Commit your stuff and open the PR against the develop branch. When not creating PRs, merge your feature to develop via git checkout develop ; git merge --no-ff new-feature (no-ff = no fast forward which means you will always get the merge message, e.g. Merge branch 'new-feature' into develop. This might seem annoying at first, but it really helps.)
When doing a new release, do a git checkout -b release-0.1 develop (replace 0.1 with the version you want to release). In the release-0.1 branch then increase the version of pick and commit the changes. Now switch to the master branch and do a git merge --no-ff release-0.1. Then tag master and push everything.
Now your develop branch should get all new changes from master: From develop do a git merge --no-ff master.

I can only recommend this model. It first seems a bit complicated / cluttered, but it works awesome.
For a more detailed version, please read: http://nvie.com/posts/a-successful-git-branching-model/

This is a great idea for Go projects, given the reliance on master.

Let's move forward with this, I've created the develop branch :)

Keeping this open until the remaining open PRs are merged

Why not push the develop branch now? You can change the merge target or existing PRs.

develop branch created; please point your open PRs at that instead of master.

Done.


Apply lazy task configuration to all tasks used by the Java plugin

With the changes in #600 the Java plugins lazily create and configure the processResources, compileJava and classes tasks of each source set.
We should continue on with this to update the Java plugin (and the base plugins it uses) to use lazy configuration for all tasks that it creates or configures (e.g. jar, test, javadoc, the lifecycle tasks).
This issue should change only the Java plugin, or perhaps also the Java library plugin. Other plugins should be split out into other issues.

https://github.com/gradle/gradle/pull/5170
There are some tasks that aren't lazy yet (assemble, check, buildNeeded, buildDependents) that aren't possible with our current API.
jar is blocked by #644.  test is being eagerly configured from configureEachLater here.


Update container-registry-tutorial-sign-build-push.md

Changed "IMAGE=$REGISTRY/${REPO}@$TAG" to "IMAGE=$REGISTRY/${REPO}:$TAG" as : is the correct annotation when referring to a tag.
The current example in the documentation that uses @$TAG does not work.

@yizha1
Can you review the proposed changes?
When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off


Loading bokeh backend breaks output in matplotlib backend

Below, when bokeh is loaded first, it breaks matplotlib output even though I select hv.output(..., backend='matplotlib').
import warnings
import xarray as xr
import numpy as np
import holoviews as hv
# import geoviews as gv
hv.extension('matplotlib') # works
# hv.extension('bokeh', 'matplotlib') # does not

da = xr.DataArray(np.random.rand(10,8), dims=['lon', 'lat']).rename('air')
im = hv.QuadMesh(da, ['lon', 'lat'], ['air']).opts(colorbar=True, cmap='cividis', clone=True)
with warnings.catch_warnings():
    # ignore some recent matplotlib deprecation warnings
    warnings.simplefilter('ignore')
    hv.output(im, backend='matplotlib')

What 'breaks' is that colorbar and cmap options are completely disregarded.
I have not found a workaround. After a hv.extension('bokeh', 'matplotlib') at any point, holoviews seems bent on not letting me have my colorbar.

The issue was specifying the backend in the options call: hv.QuadMesh(da, ['lon', 'lat'], ['air']).opts(colorbar=True, cmap='cividis', backend='matplotlib').
This is relatively confusing, because when I specify an Options object it does not seem to register the currently active backend either:
hv.Options('Image', cmap='fire')
just returns Options('Image', cmap='fire') with no mention of the backend, yet those options will be respected in the respective backend.


APPROVED_CIPHER_SUITES incompatible with mozilla

The list of approved cipher suites is incompatible with the green (modern) ones listed by mozilla: https://wiki.mozilla.org/Security/Cipher_Suites
More precisely, the followings are not in the okhttp APPROVED_CIPHER_SUITES, although weaker suits are already present:

TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256   (stronger than TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA because of the length)
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 (higher priority than TLS_RSA_WITH_AES_128_GCM_SHA256 in mozilla list)
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384   (stronger than TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA because of the lenght)
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 (higher priority than TLS_RSA_WITH_AES_128_GCM_SHA256 in mozilla list)

It causes network connection issues for our React Native application when trying to connect to a cloudfront subdomain, depending on the client's network. Here is some OKHttp and DNS log I put in the code:
759270.149 connectStart https://oursubdomain.cloudfront.net/...

759270.391 secureConnectStart https://oursubdomain.cloudfront.net/..

system find [oursubdomain.cloudfront.net/<IP_ADDRESS>, oursubdomain.cloudfront.net/<IP_ADDRESS>, oursubdomain.cloudfront.net/<IP_ADDRESS>, oursubdomain.cloudfront.net/<IP_ADDRESS>] for oursubdomain.cloudfront.net

759289.581 connectFailed https://oursubdomain.cloudfront.net/...

IOException:
0: com.google.android.gms.org.conscrypt.NativeCrypto.SSL_do_handshake(-2)
1: com.google.android.gms.org.conscrypt.NativeSsl.doHandshake(6)
2: com.google.android.gms.org.conscrypt.ConscryptFileDescriptorSocket.startHandshake(16)
3: okhttp3.internal.connection.RealConnection.connectTls(336)
4: okhttp3.internal.connection.RealConnection.establishProtocol(300)
5: okhttp3.internal.connection.RealConnection.connect(185)
6: okhttp3.internal.connection.ExchangeFinder.findConnection(224)
7: okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(107)
8: okhttp3.internal.connection.ExchangeFinder.find(87)
9: okhttp3.internal.connection.Transmitter.newExchange(169)
10: okhttp3.internal.connection.ConnectInterceptor.intercept(41)
11: okhttp3.internal.http.RealInterceptorChain.proceed(142)
12: okhttp3.internal.http.RealInterceptorChain.proceed(117)
13: okhttp3.internal.cache.CacheInterceptor.intercept(94)
14: okhttp3.internal.http.RealInterceptorChain.proceed(142)
15: okhttp3.internal.http.RealInterceptorChain.proceed(117)
16: okhttp3.internal.http.BridgeInterceptor.intercept(93)
17: okhttp3.internal.http.RealInterceptorChain.proceed(142)
18: okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(88)
19: okhttp3.internal.http.RealInterceptorChain.proceed(142)
20: okhttp3.internal.http.RealInterceptorChain.proceed(117)
21: okhttp3.RealCall.getResponseWithInterceptorChain(221)
22: okhttp3.RealCall$AsyncCall.execute(172)
23: okhttp3.internal.NamedRunnable.run(32)
24: java.util.concurrent.ThreadPoolExecutor.runWorker(1167)
25: java.util.concurrent.ThreadPoolExecutor$Worker.run(641)
26: java.lang.Thread.run(764)

The policies are defined here https://square.github.io/okhttp/https/

These loosely follow the model set in Google Cloud Policies. We track changes to this policy.

Can you check the host with https://www.ssllabs.com/ssltest/analyze.html?d=cloudfront.net
Since you've done your own research, you can set your own policy for your client.
I'm out of my depth here, but I believe it's mainly because the older ones you reference are there for legacy and compatibility reasons.  And the newer ones have some concerns (CBC vs GCM), and generally most modern servers will support better ciphers.  It's probably not the length particularly.

Cloudfront only supports TLSv1.2 (but not TLSv1.3) and these are the supported cipher suites:
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_256_GCM_SHA384
TLS_RSA_WITH_AES_128_CBC_SHA256

It is suspicious that all CBC suites listed above are missing from APPROVED_CIPHER_SUITES and connections with GCM suites fail in my network. Maybe my internet provider is trying to spy on me!

I tested all the cipher suites with curt -v --tlsv1.2 --cipher <cipher name> on my laptop, all are working fine, so maybe no problem with my ISP. Here are the corresponding suite names for curl:
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-RSA-AES128-GCM-SHA256
ECDHE-RSA-AES256-SHA384
ECDHE-RSA-AES128-SHA256
AES256-GCM-SHA384
AES128-GCM-SHA256
AES128-SHA256

I'm going to close this out, maybe continue in a stackoverflow post.  Or make a simple reproduction and reopen this ticket.
It's worth remembering the selected cipher is effectively the intersection of 3 policies.

Server
OkHttp version
Platform (Android or JVM) or Provider (opting into Conscrypt etc)

So you could look at whether it's particular old devices that are the problem.

Time to update our list!
https://tinyurl.com/okhttp-cipher-suites

Is there any limit on the number of items in cipher suites array? I find my connection issue is somehow related to the size of array too. Probably the array is getting truncated somewhere?

I've never heard of that before. Though if you have some suites in the list the server should reject you, notably, TLS_FALLBACK_SCSV.


Add current week for zh-tw

The day after tomorrow was always determined as next week.
So we should subtract startOfWeek time from current time, and check it is larger then a week.

@davidyen1124 you need to change code under src/, check https://github.com/moment/moment/blob/develop/CONTRIBUTING.md
Also please add tests that cover the change.
@ben-lin what do you think?

@davidyen1124 Chinese works the same us English in this case IMO. I don't see a problem in the original repo https://github.com/moment/moment/blob/develop/locale/zh-tw.js. Would you show some example for your usecase?


Unflushed stderr doesn't get captured via CliRunner

CliRunner flushes stdout but not stderr.
To reproduce:
Invoke a command that uses print with file=sys.stderr which doesn't flush by default (click.secho flushes by default).
Expected results:
Anything written to stderr should be captured in the result of a CliRunner.invoke()
Environment:

Python version: 3.11
Click version: 8.1.7 as well as main branch here on GitHub

Fyi... this was the code I used to discover the bug.  On the pull request I ended up just modifying an existing test.
import click
import pytest
from click.testing import CliRunner

@click.command()
@click.option("--out/--no-out")
@click.option("--err/--no-err")
def dummy_cmd(out: bool, err: bool):
    import sys

    print("this is stdout", file=sys.stdout)
    print("this is stderr", file=sys.stderr)
    if out:
        print("Extra out!", file=sys.stdout)
    if err:
        print("Extra err!", file=sys.stderr)

@pytest.mark.parametrize("out_option", [None, True, False])
@pytest.mark.parametrize("err_option", [None, True, False])
def test_dummy_cli(out_option: str | None, err_option: str | None):
    runner = CliRunner(mix_stderr=False)
    args = []
    expected_out_lines = 1
    expected_err_lines = 1
    if out_option is not None:
        if out_option:
            args.append("--out")
            expected_out_lines += 1
        else:
            args.append("--no-out")
    if err_option is not None:
        if err_option:
            args.append("--err")
            expected_err_lines += 1
        else:
            args.append("--no-err")
    result = runner.invoke(dummy_cmd, [*args])

    if result.exception:
        raise result.exception

    if result.exit_code != 0:
        raise AssertionError(f"Non-zero return code: {result.exit_code!r}\noutput:\n{result.output}")

    assert len(result.stdout.splitlines()) == expected_out_lines
    assert len(result.stderr.splitlines()) == expected_err_lines

Duplicate of #2636. If you're using things that don't flush, like print, then they don't flush. Hiding that by doing it in the test runner just hides the potentially incorrect output behavior you're using.

You're welcome to use print to street, you just have to remember to flush in that case. That's true regardless of if you're using click.

Another way to put it is: you've need to explain why your suggested behavior is correct. It's certainly different than current, but that doesn't mean it's more correct.
What I know is that stdout is flushed, and stderr isn't. I don't know why that's the case, but I do know that this is the behavior I've encountered all over the place, and if I want stderr to show up at a specific time I need to flush manually. This is what click.echo does automatically. If what I know is incorrect, then you need to show me authoritative sources that say so. Otherwise, as I said, it would just mean we're hiding the actual behavior of the calls you're making.

Thanks, I think understand what you're saying.  Are you saying the CliRunner flushed stdout to mimic the behavior you've encountered all over the place?
If click.echo forces a flush every time though, then why does the CliRunner need to flush as well?  Why do the tests fail when that flush in the CliRunner is removed?


Increase the location cache max_size from 100 (default) to 250

Smart Answers uses an LRU cache for storing world locations returned from Whitehall, but the default max_size of 100 kicks out 116 of the 226 countries we currently offer in our dropdown:
For example:
https://www.gov.uk/overseas-passports/y
  $('#response > option').length;
  226

@dsingleton @alexmuller @jennyd

I've just rebased this with master and forced pushed back to this PR's branch

Was this discovered as a part of the memory leak investigations?
I guess we're not going to have an extra 26 countries in the world any time soon so this should do the trick. LGTM :+1:

Not really, if anything this will use a bit more memory (maybe a few KB).
But it should cut down the number of remote calls across to Whitehall to fetch countries, as we have 226 countries now, and only 100 of those can be kept in memory at any one time.

Am I right in thinking that increasing the maximum size of the cache will mean that it will never reach capacity and thus the LRU aspect of the cache will no longer be used (at least with the current set of countries)?
I'm guessing we're still getting some benefit from the LRUCache class' TTL / soft-TTL configuration, although it's not immediately obvious to me what this is doing. Otherwise I might suggest we ditch the LRUCache class and use a simple Hash instead.

At least until there more than 249 countries (we also have the 'all' key), there will be no LRU triggered eviction.
I guess the soft_ttl functionality let's smart answers update its data once a day without a restart, so we'd lose that with a Hash but could probably achieve something similar with Rails.cache.fetch and the expires_in option.

Cool. I see that there are actually some unit tests which kind of explain the TTL and soft-TTL behaviour, so I reckon it's probably sensible to leave it be for now.


Multi-Mesh VM Expansion Failure for ingress gateway in Istio 1.8

(NOTE: This is used to report product bugs:
To report a security vulnerability, please visit https://istio.io/about/security-vulnerabilities
To ask questions about how to use Istio, please visit https://discuss.istio.io)
Bug description
When following the instructions for mesh expansion in multi-network meshes, installation fails for ingress gateway. Problem only happens when enabling mesh expansion following steps described here https://istio.io/latest/docs/examples/virtual-machines/multi-network/#installing-the-istio-control-plane.
Issue output:
"Ingress gateway encountered an error: failed to create “service/istio-system/istio-ingressgateway”: Service “istio-ingressgateway” is invalid"
[x] Docs
[x] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Extensions and Telemetry
[ ] Security
[ ] Test and Release
[x] User Experience
[ ] Developer Infrastructure
[ ] Upgrade
Expected behavior
Enabling mesh expansion should not cause ingress gateway installation to fail.
Steps to reproduce the bug
This issue happens when following the instructions as follows:
A. Install istio then enable Mesh expansion feature

Install istio with istioctl command as described in https://istio.io/latest/docs/setup/install/virtual-machine/#install-the-istio-control-plane
apply mesh expansion update "istioctl install -f ./vmintegration.yaml" as described in step 2 here https://istio.io/latest/docs/examples/virtual-machines/multi-network/#installing-the-istio-control-plane

B. Install istio with mesh expansion feature enabled

Here just do step  "istioctl install -f ./vmintegration.yaml" , so istio control plane gets installed with mesh expansion feature enabled.
Version (include the output of istioctl version --remote and kubectl version --short and helm version --short if you used Helm)
Istio version 1.8

How was Istio installed?
Using istioctl command line
Environment where the bug was observed (cloud vendor, OS, etc)
Additionally, please consider running istioctl bug-report and attach the generated cluster-state tarball to this issue.
Refer cluster state archive for more details.

Hi @eam-cs
Is this issue the same as:
https://github.com/istio/istio.io/issues/8602?

Hi @rinormaloku yes, it seems to be the same issue.


validate json-schema patterns for params in marshmallow aio-httpspec …

…@docs decorators. Low-hanging fruit for admin-server test coverage.
Signed-off-by: sklump<EMAIL_ADDRESS>

How does this compare to the querystring_schema decorator in aiohttp-apispec 2.x?
https://aiohttp-apispec.readthedocs.io/en/latest/usage.html#more-decorators

How does this compare to the querystring_schema decorator in aiohttp-apispec 2.x?
https://aiohttp-apispec.readthedocs.io/en/latest/usage.html#more-decorators

I didn't see that. It is probably samey. I'll look into it tomorrow.

... I like mine better in some ways:

it puts the parameters and their patterns together into the JSON schema in @docs instead of spread across two tags
it doesn't require a separate Schema subclass - the JSON pattern spec is a one-liner

But the built-in works and turns the offending field red and shakes it - tremendous! I will make some changes and submit in a separate PR.


Module: Hibernate 2nd level cache

Configure hibernate cache manager:
    @Bean
    public HibernatePropertiesCustomizer hibernatePropertiesCustomizer(javax.cache.CacheManager cacheManager) {
        return hibernateProperties -> hibernateProperties.put(ConfigSettings.CACHE_MANAGER, cacheManager);
    }

I'll provide a PR.

We should add this by default with PostgreSQL and MySQL, right?

With any JPA/Hibernate option, when JCache is present.
There are plenty of cache configuration options between Spring and Hibernate, not sure which is the simplest one, and which is mandatory - will re-check.
any advice?

hibernate.cache.use_second_level_cache is true by default.
As it's not set to false in the generated configuration, it's currently enabled.

If you do not specify additional properties, the JCacheRegionFactory will load the default JCache provider and create the default CacheManager.

So it's simply a matter of adding hibernate-jcache dependency.
With ehcache, the above configuration is redundant in our case. The default CacheManager is used for 2nd-level caching out of the box:

However with the current caffeine implementation which is not using JCache, hibernate 2nd level caching is disabled because there is no compatible cache manager:

I can submit a new PR to upgrade Caffeine to JCache (and perhaps make it an alternative to simple cache, instead of depending on it) or do it in the same PR.
Note: instead of depending on CACHE and JPA, it should depend on JCACHE and HIBERNATE, to be exact - not big deal.

Cc @biergit as you have the opposite here https://github.com/jhipster/jhipster-lite/pull/4163/files

I think this PR should update some spring.jpa properties too

Increasing a little bit the bounty, following the work done


db.syncContinuously is deprecated

That's true. Thank you.

@paldepind Do you have time to do that? Or if you grant me as an npm collaborator I'll take care of it as much as possible.

I've published a new version of syncedd-server to npm.
I'll add you as a npm collaborator @piglovesyou. Is your username on npm identical to here on GitHub?

Thank you. Yes it's identical. This is my profile page

@paldepind 👋

Sorry :sweat:
I've added you as a collaborator to all the synceddb-* packages :+1:

Thank you, no problem.


WIP: Fix transaction id to be explicit and mutable for Container

Transaction id was neither propagated nor maintained correctly.  Making the field explicit and mutable (as container warmed up by the system can be used by a different transaction) fixes the missing ???.
Moreover, even before the recent warmup work, containers were being reused and the lack of updating the implicit transaction id parameter led to associated docker operations being mis-attributed.
Remove the default dont_care parameter for SimpleExec so that caller must supply one.

PPG 341


[feat] Implement to install helm chart

using go-helm-client package
add test code
upgrade CRD kubebuilder version

/approve