Fantech Helios UX3 V2 firmware V131 not supported (258a:0027 SINOWEALTH Fantech Helios UX3)

Information

ratbagd version (ratbagd --version): 0.17

Kernel version (ex. uname -srmo): Linux 6.6.4 x86_64 GNU/Linux

Device info (if applicable):
$ ratbagctl <device> info
No devices available.

Describe the bug
ratbag error: Device with firmware version V131 is not supported
Logs
Please start the daemon with verbosity and reproduce the issue.
First make sure it isn't running already.
$ ratbagd --verbose=raw

Initializing libratbag
ratbag debug: New device: SINOWEALTH Fantech Helios UX3
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: device assigned driver sinowealth
ratbag debug: hidraw info: bus 0x03 vendor 0x258a product 0x27
ratbag debug: SINOWEALTH Fantech Helios UX3 is device '/dev/hidraw0'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: hidraw info: bus 0x03 vendor 0x258a product 0x27
ratbag debug: SINOWEALTH Fantech Helios UX3 is device '/dev/hidraw1'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: - HID report ID 01
ratbag debug: - HID report ID 02
ratbag debug: - HID report ID 06
ratbag debug: - HID report ID 07
ratbag debug: - HID report ID 05
ratbag raw: feature set:   05 02 01 00 00 00
ratbag raw: feature set:   05 01 00 00 00 00
ratbag raw: feature get:   05 01 56 31 33 31
ratbag info: firmware version: V131
ratbag raw: feature set:   05 11 00 00 00 00
ratbag raw: feature get:   06 11 00 00 00 00 00 00 64 0f 01 11 00 20 10 18 30 40 80 40 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 00 ff 00 00 00 ff ff ff 00 00 ff ff ff 00 ff ff ff ff 00 00 00 00 00 00 00 00 00 01 43 00 40 00 00 ff 42 07 ff 00 00 00 00 ff 00 ff 00 80 00 ff fa c6 03 fa 03 6a fa 00 fa 42 42 40 ff 00 00 00 00 ff 00 ff 00 80 00 ff fa c6 03 fa 03 6a fa 00 fa 00 00 00 00 00 00 00 00 00 42 ff 00 00 00 00 ff 42 42 02 ff 00 00 01 00 00 00 ff 00 00 00
ratbag debug: Configuration size is 167 bytes
ratbag raw: feature set:   05 12 00 00 00 00
ratbag raw: feature get:   06 12 00 00 00 00 00 00 11 01 00 00 11 02 00 00 11 04 00 00 11 08 00 00 11 10 00 00 22 08 00 00 50 04 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00
ratbag error: Skipping invalid device data
ratbag error: Skipping invalid device data
ratbag error: Skipping invalid device data
ratbag error: Skipping invalid device data
ratbag error: Device with firmware version V131 is not supported
ratbag debug: New device: SINOWEALTH Fantech Helios UX3
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: device assigned driver sinowealth
ratbag debug: hidraw info: bus 0x03 vendor 0x258a product 0x27
ratbag debug: SINOWEALTH Fantech Helios UX3 is device '/dev/hidraw0'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: hidraw info: bus 0x03 vendor 0x258a product 0x27
ratbag debug: SINOWEALTH Fantech Helios UX3 is device '/dev/hidraw1'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: - HID report ID 01
ratbag debug: - HID report ID 02
ratbag debug: - HID report ID 06
ratbag debug: - HID report ID 07
ratbag debug: - HID report ID 05
ratbag raw: feature set:   05 02 01 00 00 00
ratbag raw: feature set:   05 01 00 00 00 00
ratbag raw: feature get:   05 01 56 31 33 31
ratbag info: firmware version: V131
ratbag raw: feature set:   05 11 00 00 00 00
ratbag raw: feature get:   06 11 00 00 00 00 00 00 64 0f 01 11 00 20 10 18 30 40 80 40 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 00 ff 00 00 00 ff ff ff 00 00 ff ff ff 00 ff ff ff ff 00 00 00 00 00 00 00 00 00 01 43 00 40 00 00 ff 42 07 ff 00 00 00 00 ff 00 ff 00 80 00 ff fa c6 03 fa 03 6a fa 00 fa 42 42 40 ff 00 00 00 00 ff 00 ff 00 80 00 ff fa c6 03 fa 03 6a fa 00 fa 00 00 00 00 00 00 00 00 00 42 ff 00 00 00 00 ff 42 42 02 ff 00 00 01 00 00 00 ff 00 00 00
ratbag debug: Configuration size is 167 bytes
ratbag raw: feature set:   05 12 00 00 00 00
ratbag raw: feature get:   06 12 00 00 00 00 00 00 11 01 00 00 11 02 00 00 11 04 00 00 11 08 00 00 11 10 00 00 22 08 00 00 50 04 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00
ratbag error: Skipping invalid device data
ratbag error: Skipping invalid device data
ratbag error: Skipping invalid device data
ratbag error: Skipping invalid device data
ratbag error: Device with firmware version V131 is not supported
ratbag debug: New device: ITE Tech. Inc. ITE Device(8291)
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: No data file found for 048d:ce00
ratbag debug: New device: HOLTEK USB-HID Keyboard
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: No data file found for 04d9:a232
ratbag debug: New device: HOLTEK USB-HID Keyboard
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: No data file found for 04d9:a232
ratbag debug: New device: HOLTEK USB-HID Keyboard
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: No data file found for 04d9:a232
ratbag debug: New device: HOLTEK USB-HID Keyboard
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: No data file found for 04d9:a232
DBus server ready

Additional context
Add any other context about the problem here.
sudo lsusb -d 258a:0027 -v
Bus 001 Device 011: ID 258a:0027 SINOWEALTH Fantech Helios UX3
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x258a
  idProduct          0x0027
  bcdDevice            1.00
  iManufacturer           1 SINOWEALTH
  iProduct                2 Fantech Helios UX3
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x003b
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              480mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      2 Mouse
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      71
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      1 Keyboard
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     213
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               1
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0000
  (Bus Powered)

Hello! Could you try adding this to the end of /usr/share/libratbag/sinowealth-0027?
# Configuration size is 167 bytes, uses '6' as the configuration command.
# Sensor: PMW3389
[Driver/sinowealth/devices/V131]
ButtonCount=6
DeviceName=Fantech Helios UX3 V2
FwVersion=V131
# If LED colors are wrong, try 'RGB'
LedType=RBG

But if anything shown in ratbagctl/Piper is different how the mouse is actually set up, don't apply any changes until writing here! There have been several sinowealth devices with different configuration layout, which is hard to notice beforehand.
If only shown LED colors are different, try changing LedType like the comment says.
Waiting for your feedback! :)

Debounce time: 4ms

Is that a nightly build? Debounce time changing is not in a release yet, it's not in 0.17, yet you don't have some new logs, so it's not the master branch either.
Not sure about LEDs, but for buttons, what if you change "ButtonCount" key name to "Buttons"? I renamed it in commit 876c0623.
What does the output of ratbagd look now?

It would actually be better to be on the git version :)
With it, we would see this message in the log "Device config says LED effects are not supported".
Is the LED on on the mouse right now?
Any chance you could change LED mode to something else with official software and show the output of ratbagd after that?
With G-Wolves Hati to get lift-off distance you had to subtract one, and here it's at zero, so subtracting 1 overflows the integer.
Would it be possible for you to change those in official software and show the log of ratbagd after that? Like with LEDs.

But in fact, this mouse has 7 buttons (there's a minor button below it for adjusting the "Polling Rate"). Should we consider this small button at the bottom?

Yes, it also seems to be configurable, you can set Buttons=7.
By the way, please check that after pressing the button and restarting ratbagd (e.g. sudo systemctl stop ratbagd) libratbag recognizes that it changed.
Also, I didn't such button action existed, tried it on my mouse, and it indeed works! There is no such button action in libratbag though, so you'd have to use official software if you ever change it and want it back.
For future me:
diff --git a/src/driver-sinowealth.c b/src/driver-sinowealth.c
index 04a0f0b..ae6fa41 100644
--- a/src/driver-sinowealth.c
+++ b/src/driver-sinowealth.c
@@ -539,6 +539,8 @@ static const struct sinowealth_button_mapping sinowealth_button_map[] = {
        /* None of the other bits do anything. */

        { { SINOWEALTH_BUTTON_TYPE_SPECIAL, { { 0x1 } } }, BUTTON_ACTION_NONE },
+       /* Cycle report rates. */
+       { { SINOWEALTH_BUTTON_TYPE_SPECIAL, { { 0x4 } } }, BUTTON_ACTION_SPECIAL(RATBAG_BUTTON_ACTION_SPECIAL_UNKNOWN) },
        /* Cycle LED modes. */
        { { SINOWEALTH_BUTTON_TYPE_SPECIAL, { { 0x7 } } }, BUTTON_ACTION_SPECIAL(RATBAG_BUTTON_ACTION_SPECIAL_UNKNOWN) },

It would actually be better to be on the git version :) With it, we would see this message in the log "Device config says LED effects are not supported".

Ok, here's the log with the git master version:
Initializing libratbag
ratbag debug: New device: SINOWEALTH Fantech Helios UX3
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: device assigned driver sinowealth
ratbag debug: hidraw info: bus 0x03 vendor 0x258a product 0x27
ratbag debug: SINOWEALTH Fantech Helios UX3 is device '/dev/hidraw0'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: hidraw info: bus 0x03 vendor 0x258a product 0x27
ratbag debug: SINOWEALTH Fantech Helios UX3 is device '/dev/hidraw1'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: - HID report ID 01
ratbag debug: - HID report ID 02
ratbag debug: - HID report ID 06
ratbag debug: - HID report ID 07
ratbag debug: - HID report ID 05
ratbag raw: feature set:   05 02 01 00 00 00
ratbag raw: feature set:   05 01 00 00 00 00
ratbag raw: feature get:   05 01 56 31 33 31
ratbag info: firmware version: V131
ratbag raw: feature set:   05 11 00 00 00 00
ratbag raw: feature get:   06 11 00 00 00 00 00 00 64 0f 01 11 00 20 10 18 30 40 80 40 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 00 ff 00 00 00 ff ff ff 00 00 ff ff ff 00 ff ff ff ff 00 00 00 00 00 00 00 00 00 01 43 00 40 00 00 ff 42 07 ff 00 00 00 00 ff 00 ff 00 80 00 ff fa c6 03 fa 03 6a fa 00 fa 42 42 40 ff 00 00 00 00 ff 00 ff 00 80 00 ff fa c6 03 fa 03 6a fa 00 fa 00 00 00 00 00 00 00 00 00 42 ff 00 00 00 00 ff 42 42 02 ff 00 00 01 00 00 00 ff 00 00 00
ratbag debug: Configuration size is 167 bytes
ratbag raw: feature set:   05 12 00 00 00 00
ratbag raw: feature get:   06 12 00 00 00 00 00 00 11 01 00 00 11 02 00 00 11 04 00 00 11 08 00 00 11 10 00 00 22 08 00 00 50 04 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00
ratbag info: Found device: Fantech Helios UX3 V2
ratbag raw: feature set:   05 02 00 00 00 00
ratbag raw: feature get:   05 02 01 00 00 00
ratbag debug: Current profile index: 0
ratbag raw: feature set:   05 1a 00 00 00 00
ratbag raw: feature get:   05 1a 02 00 00 00
ratbag info: Debounce time: 4 ms
ratbag raw: feature set:   05 1b 00 00 00 00
ratbag raw: feature get:   05 1b 00 00 00 00
ratbag info: LOD is high:<PHONE_NUMBER>
ratbag info: Angle snapping enabled: 0
ratbag debug: driver match found: Sinowealth
hidraw0: "SINOWEALTH Fantech Helios UX3", 1 profiles
ratbag debug: New device: SINOWEALTH Fantech Helios UX3
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: device assigned driver sinowealth
ratbag debug: hidraw info: bus 0x03 vendor 0x258a product 0x27
ratbag debug: SINOWEALTH Fantech Helios UX3 is device '/dev/hidraw0'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: New device: ITE Tech. Inc. ITE Device(8291)
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: No data file found for 048d:ce00
ratbag debug: New device: HOLTEK USB-HID Keyboard
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: No data file found for 04d9:a232
ratbag debug: New device: HOLTEK USB-HID Keyboard
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: No data file found for 04d9:a232
ratbag debug: New device: HOLTEK USB-HID Keyboard
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: No data file found for 04d9:a232
ratbag debug: New device: HOLTEK USB-HID Keyboard
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: No data file found for 04d9:a232
DBus server ready

Is the LED on on the mouse right now?

Yes, it's on by default.

Any chance you could change LED mode to something else with official software and show the output of ratbagd after that? I assume the LED is configurable judging by images in the internet.

Unfortunately I don't have any Windows installation here, just Linux, so I can't run the official software. But yeah, probably the leds are configurable because when I click on  the "Polling Rate" bottom button, I see the led changing colors. At least if it was possible to turn the leds off, it would be amazing.

Interesting. With G-Wolves Hati to get lift-off distance you had to subtract one, and here it's at zero, so subtracting 1 overflows the integer. Would it be possible for you to change those in official software and show the log of ratbagd after that? Like with LEDs.

Maybe someone with Windows installed will read this topic and test for us. Unfortunately I don't have a Windows installation...

By the way, please check that after pressing the button and restarting ratbagd (e.g. sudo systemctl stop ratbagd) libratbag recognizes that it changed.

Yes, ratbagd recognizes the "Polling Rate" changes. The sequence of the led color is:

red: 125Hz
green: 500Hz
blue: 1000Hz

And the ratbagctl "Report Rate" output changes correctly as I cycle through these modes.

Yes, it's on by default.

Could it be unconfigurable? But, IIRC Glorious mice have additional per-DPI LED configuration, maybe there is something like that here too. My mouse has no LEDs so I can't test it, sorry. Our sinowealth backend only supports the main LED at the moment.
I think you could try configuring other stuff like buttons then, just don't touch angle snapping, the overflown value near it seems weird, perhaps the '1' I assumed was always needed for lift-off distance is also some other option, but I can't test it now.
If something goes south, I can make it write the original config for you.


Burrow fails to start with Kafka Version 2.8.x

Hi team,
I am using Burrow 1.3.6 which works fine with Kafka Version 2.7 but when I upgrade Kafka to version 2.8.1, burrow fails to start with the following error:
{"level":"debug","ts":1642027415.5584846,"msg":"Connected to broker at uem-kafka:9092 (unregistered)","name":"sarama"}

{"level":"debug","ts":1642027415.5632129,"msg":"client/brokers registered new broker #0 at uem-kafka:9092","name":"sarama"}

{"level":"debug","ts":1642027415.5634372,"msg":"Successfully initialized new client","name":"sarama"}

{"level":"debug","ts":1642027415.5635583,"msg":"client/metadata fetching metadata for [__consumer_offsets] from broker uem-kafka:9092","name":"sarama"}

{"level":"debug","ts":1642027415.5732005,"msg":"client/metadata found some partitions to be leaderless","name":"sarama"}

{"level":"debug","ts":1642027415.5733514,"msg":"client/metadata retrying after 250ms... (3 attempts remaining)","name":"sarama"}

{"level":"info","ts":1642027415.6499023,"msg":"starting evaluations","type":"coordinator","name":"notifier"}

{"level":"debug","ts":1642027415.8234534,"msg":"client/metadata fetching metadata for [__consumer_offsets] from broker uem-kafka:9092","name":"sarama"}

{"level":"debug","ts":1642027415.8260822,"msg":"client/metadata found some partitions to be leaderless","name":"sarama"}

{"level":"debug","ts":1642027415.8263423,"msg":"client/metadata retrying after 250ms... (2 attempts remaining)","name":"sarama"}

{"level":"debug","ts":1642027416.076764,"msg":"client/metadata fetching metadata for [__consumer_offsets] from broker uem-kafka:9092","name":"sarama"}

{"level":"debug","ts":1642027416.0788453,"msg":"client/metadata found some partitions to be leaderless","name":"sarama"}

{"level":"debug","ts":1642027416.0788953,"msg":"client/metadata retrying after 250ms... (1 attempts remaining)","name":"sarama"}

{"level":"debug","ts":1642027416.3291106,"msg":"client/metadata fetching metadata for [__consumer_offsets] from broker uem-kafka:9092","name":"sarama"}

{"level":"debug","ts":1642027416.3314283,"msg":"client/metadata found some partitions to be leaderless","name":"sarama"}

Burrow failed at January 12, 2022 at 10:43pm (UTC)

{"level":"error","ts":1642027416.3314698,"msg":"failed to get partition count","type":"module","coordinator":"consumer","class":"kafka","name":"local-kafka","topic":"__consumer_offsets","error":"kafka server: Request was for a topic or partition that does not exist on this broker."}

{"level":"debug","ts":1642027416.3315206,"msg":"Closing Client","name":"sarama"}

{"level":"error","ts":1642027416.3315384,"msg":"failed to start consumer","type":"module","coordinator":"consumer","class":"kafka","name":"local-kafka","error":"kafka server: Request was for a topic or partition that does not exist on this broker."}

{"level":"debug","ts":1642027416.3315632,"msg":"Close() called on already closed client","name":"sarama"}

Sample of docker-compose.yml for Kafka and Zookeeper service:
version: '3.7'
services:
  uem-kafka:
    image: bitnami/kafka:2.8.1
    ports:
      - '9092:9092'
    user: "1001"
    environment:
      - ALLOW_PLAINTEXT_LISTENER=yes
      - KAFKA_CFG_BROKER_ID=0
      - KAFKA_CFG_NUM_PARTITIONS=3
      - KAFKA_CFG_ZOOKEEPER_CONNECT=uem-zookeeper:2181
      - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
      - KAFKA_CFG_INTER_BROKER_LISTENER_NAME=INSIDE
      - "KAFKA_CFG_LISTENERS=INSIDE://uem-kafka:9094,OUTSIDE://uem-kafka:9092"
      - "KAFKA_CFG_ADVERTISED_LISTENERS=INSIDE://uem-kafka:9094,OUTSIDE://uem-kafka:9092"
      - KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=false
    depends_on:
      - uem-zookeeper

  uem-zookeeper:
    image: bitnami/zookeeper:3.6.2
    container_name: uem-zookeeper
    ports:
      - '2181:2181'
    environment:
     - ZOO_SERVER_ID=0
     - ZOO_HEAP_SIZE=100
     - ALLOW_ANONYMOUS_LOGIN=yes
     - ZOO_4LW_COMMANDS_WHITELIST="*"
     - ZOO_SERVERS='<IP_ADDRESS>:2888:3888'

Is burrow with Kafka Version 2.8.x supported? Any suggestions on how to troubleshoot this further?
Please let me know if there is any other log or configuration required.

Are there any consumer connected to the new cluster yet? __consumer_offsets topic is only created if there are any consumers.

Hi @mangatmodi Thank you for your quick response on this.
There is no other client talking to Kafka at this moment. I am simply bringing up the Zookeeper, Kafka and Burrow service.
I have tested this with Burrow version 1.3.8 as well and in the same setup Burrow service runs fine with Kafka Version 2.7 but fails with Kafka Version 2.8.1.
Note that I have KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=false for both the runs.

I performed another test - I created a console consumer and started consuming from __consumer_offsets to see how Kafka reacts between 2.7 and 2.8.1.
Run with Kafka 2.7:

Log snippet from Kafka:
[2022-01-13 21:04:47,372] INFO Creating topic __consumer_offsets with configuration {compression.type=producer, cleanup.policy=compact, segment.bytes=104857600} and initial partition assignment Map(23 -> ArrayBuffer(0), 32 -> ArrayBuffer(0), 41 -> ArrayBuffer(0), 17 -> ArrayBuffer(0), 8 -> ArrayBuffer(0), 35 -> ArrayBuffer(0), 44 -> ArrayBuffer(0), 26 -> ArrayBuffer(0), 11 -> ArrayBuffer(0), 29 -> ArrayBuffer(0), 38 -> ArrayBuffer(0), 47 -> ArrayBuffer(0), 20 -> ArrayBuffer(0), 2 -> ArrayBuffer(0), 5 -> ArrayBuffer(0), 14 -> ArrayBuffer(0), 46 -> ArrayBuffer(0), 49 -> ArrayBuffer(0), 40 -> ArrayBuffer(0), 13 -> ArrayBuffer(0), 4 -> ArrayBuffer(0), 22 -> ArrayBuffer(0), 31 -> ArrayBuffer(0), 16 -> ArrayBuffer(0), 7 -> ArrayBuffer(0), 43 -> ArrayBuffer(0), 25 -> ArrayBuffer(0), 34 -> ArrayBuffer(0), 10 -> ArrayBuffer(0), 37 -> ArrayBuffer(0), 1 -> ArrayBuffer(0), 19 -> ArrayBuffer(0), 28 -> ArrayBuffer(0), 45 -> ArrayBuffer(0), 27 -> ArrayBuffer(0), 36 -> ArrayBuffer(0), 18 -> ArrayBuffer(0), 9 -> ArrayBuffer(0), 21 -> ArrayBuffer(0), 48 -> ArrayBuffer(0), 3 -> ArrayBuffer(0), 12 -> ArrayBuffer(0), 30 -> ArrayBuffer(0), 39 -> ArrayBuffer(0), 15 -> ArrayBuffer(0), 42 -> ArrayBuffer(0), 24 -> ArrayBuffer(0), 6 -> ArrayBuffer(0), 33 -> ArrayBuffer(0), 0 -> ArrayBuffer(0)) (kafka.zk.AdminZkClient)

[2022-01-13 21:04:47,392] INFO [KafkaApi-0] Auto creation of topic __consumer_offsets with 50 partitions and replication factor 1 is successful (kafka.server.KafkaApis)

Run with Kafka 2.8.1:

Log snippet from Kafka:
[2022-01-13 21:09:06,004] INFO Creating topic __consumer_offsets with configuration {compression.type=producer, cleanup.policy=compact, segment.bytes=104857600} and initial partition assignment Map(23 -> ArrayBuffer(0), 32 -> ArrayBuffer(0), 41 -> ArrayBuffer(0), 17 -> ArrayBuffer(0), 8 -> ArrayBuffer(0), 35 -> ArrayBuffer(0), 44 -> ArrayBuffer(0), 26 -> ArrayBuffer(0), 11 -> ArrayBuffer(0), 29 -> ArrayBuffer(0), 38 -> ArrayBuffer(0), 47 -> ArrayBuffer(0), 20 -> ArrayBuffer(0), 2 -> ArrayBuffer(0), 5 -> ArrayBuffer(0), 14 -> ArrayBuffer(0), 46 -> ArrayBuffer(0), 49 -> ArrayBuffer(0), 40 -> ArrayBuffer(0), 13 -> ArrayBuffer(0), 4 -> ArrayBuffer(0), 22 -> ArrayBuffer(0), 31 -> ArrayBuffer(0), 16 -> ArrayBuffer(0), 7 -> ArrayBuffer(0), 43 -> ArrayBuffer(0), 25 -> ArrayBuffer(0), 34 -> ArrayBuffer(0), 10 -> ArrayBuffer(0), 37 -> ArrayBuffer(0), 1 -> ArrayBuffer(0), 19 -> ArrayBuffer(0), 28 -> ArrayBuffer(0), 45 -> ArrayBuffer(0), 27 -> ArrayBuffer(0), 36 -> ArrayBuffer(0), 18 -> ArrayBuffer(0), 9 -> ArrayBuffer(0), 21 -> ArrayBuffer(0), 48 -> ArrayBuffer(0), 3 -> ArrayBuffer(0), 12 -> ArrayBuffer(0), 30 -> ArrayBuffer(0), 39 -> ArrayBuffer(0), 15 -> ArrayBuffer(0), 42 -> ArrayBuffer(0), 24 -> ArrayBuffer(0), 6 -> ArrayBuffer(0), 33 -> ArrayBuffer(0), 0 -> ArrayBuffer(0)) (kafka.zk.AdminZkClient)

In both the cases __consumer_offsets is eventually created.
Now coming back to Burrow (version 1.4.0) -
Run with Kafka 2.7:
{"level":"debug","ts":1642108786.2094376,"msg":"Connected to broker at uem-kafka:9092 (unregistered)","name":"sarama"}

{"level":"debug","ts":1642108786.214034,"msg":"client/brokers registered new broker #0 at uem-kafka:9092","name":"sarama"}

{"level":"debug","ts":1642108786.2141097,"msg":"Successfully initialized new client","name":"sarama"}

{"level":"debug","ts":1642108786.214155,"msg":"client/metadata fetching metadata for [__consumer_offsets] from broker uem-kafka:9092","name":"sarama"}

{"level":"debug","ts":1642108786.2637825,"msg":"client/metadata found some partitions to be leaderless","name":"sarama"}

{"level":"debug","ts":1642108786.2638936,"msg":"client/metadata retrying after 250ms... (3 attempts remaining)","name":"sarama"}

{"level":"info","ts":1642108786.2936275,"msg":"starting evaluations","type":"coordinator","name":"notifier"}

{"level":"debug","ts":1642108786.5140655,"msg":"client/metadata fetching metadata for [__consumer_offsets] from broker uem-kafka:9092","name":"sarama"}

{"level":"debug","ts":1642108786.5219843,"msg":"client/metadata found some partitions to be leaderless","name":"sarama"}

{"level":"debug","ts":1642108786.522035,"msg":"client/metadata retrying after 250ms... (2 attempts remaining)","name":"sarama"}

{"level":"debug","ts":1642108786.7730803,"msg":"client/metadata fetching metadata for [__consumer_offsets] from broker uem-kafka:9092","name":"sarama"}

{"level":"debug","ts":1642108786.782377,"msg":"client/metadata found some partitions to be leaderless","name":"sarama"}

{"level":"debug","ts":1642108786.7824466,"msg":"client/metadata retrying after 250ms... (1 attempts remaining)","name":"sarama"}

{"level":"debug","ts":1642108787.0329359,"msg":"client/metadata fetching metadata for [__consumer_offsets] from broker uem-kafka:9092","name":"sarama"}

{"level":"info","ts":1642108787.0380993,"msg":"starting consumers","type":"module","coordinator":"consumer","class":"kafka","name":"local-kafka","topic":"__consumer_offsets","count":50}

__consumer_offsets is eventually created in Kafka.
Run with Kafka 2.8.1:
{"level":"debug","ts":1642109643.8580437,"msg":"Connected to broker at uem-kafka:9092 (unregistered)","name":"sarama"}

{"level":"debug","ts":1642109643.8627472,"msg":"client/brokers registered new broker #0 at uem-kafka:9092","name":"sarama"}

{"level":"debug","ts":1642109643.8627968,"msg":"Successfully initialized new client","name":"sarama"}

{"level":"debug","ts":1642109643.862842,"msg":"client/metadata fetching metadata for [__consumer_offsets] from broker uem-kafka:9092","name":"sarama"}

{"level":"debug","ts":1642109643.8712587,"msg":"client/metadata found some partitions to be leaderless","name":"sarama"}

{"level":"debug","ts":1642109643.8713126,"msg":"client/metadata retrying after 250ms... (3 attempts remaining)","name":"sarama"}

{"level":"info","ts":1642109643.9436781,"msg":"starting evaluations","type":"coordinator","name":"notifier"}

{"level":"debug","ts":1642109644.1217878,"msg":"client/metadata fetching metadata for [__consumer_offsets] from broker uem-kafka:9092","name":"sarama"}

{"level":"debug","ts":1642109644.1244755,"msg":"client/metadata found some partitions to be leaderless","name":"sarama"}

{"level":"debug","ts":1642109644.1245284,"msg":"client/metadata retrying after 250ms... (2 attempts remaining)","name":"sarama"}

{"level":"debug","ts":1642109644.3755918,"msg":"client/metadata fetching metadata for [__consumer_offsets] from broker uem-kafka:9092","name":"sarama"}

{"level":"debug","ts":1642109644.3778868,"msg":"client/metadata found some partitions to be leaderless","name":"sarama"}

{"level":"debug","ts":1642109644.377944,"msg":"client/metadata retrying after 250ms... (1 attempts remaining)","name":"sarama"}

{"level":"debug","ts":1642109644.6290717,"msg":"client/metadata fetching metadata for [__consumer_offsets] from broker uem-kafka:9092","name":"sarama"}

{"level":"debug","ts":1642109644.6317284,"msg":"client/metadata found some partitions to be leaderless","name":"sarama"}

{"level":"error","ts":1642109644.6317704,"msg":"failed to get partition count","type":"module","coordinator":"consumer","class":"kafka","name":"local-kafka","topic":"__consumer_offsets","error":"kafka server: Request was for a topic or partition that does not exist on this broker."}

{"level":"debug","ts":1642109644.631847,"msg":"Closing Client","name":"sarama"}

No log in Kafka about __consumer_offsets and never gets created.

Hi team,
Any comment of this issue or any suggestion on how to troubleshoot this further?
Please let me know if any other info is required.

As per https://github.com/Shopify/sarama/issues/2115#issuecomment-1018360997

Yes looks likely to be due to the change in behaviour in Kafka 2.8.0 onward KAFKA-9751 whereby the broker is asynchronously forwarding the auto create of __consumer_offsets onto the coordinator. So whereas in the past the topic creation would be attempted immediately and would just return LEADER_NOT_AVAILABLE until the partitions were created and leaders assigned, now it will instead keep returning UNKNOWN_TOPIC_OR_PARTITION until the topic has begun creation via the coordinator

So this is something we will want to look at addressing in Sarama
For Burrow this is only a problem when run against a completely brand new 2.8.x cluster that has never had any consumer group attached to it, because it wants to determine the number of partitions on the __consumer_offsets topic before initialising its per-partition consumers:
https://github.com/linkedin/Burrow/blob/4ec0fde573efbbec7d01792c937fe6c21202f788/core/internal/consumer/kafka_client.go#L295-L304
Theoretically burrow could workaround the issue by not treating a single client.Partitions failure as fatal and instead adding a small number of backoff retries around that call

Hmm, having investigated this some more it seems like a change in behaviour on the broker in 2.8.x onward means that __consumer_offsets is not getting created by a MetadataRequest alone and it's only a JoinGroup from a consumer group that causes it to spring into life

Thank you so much @dnwe for analyzing this and sharing the details.
You are right, we are observing this issue only for a brand new cluster.
As a workaround for the time being, we are thinking of adding a pre-task before starting Burrow. This pre-task would use console consumer and start consuming to __consumer_offsets topic until its created.
Let me know if there is anything I can share to investigate this further on Burrow or Sarama.

Kafka dev mailing list agree this is a regression in the broker.
https://lists.apache.org/thread/cxzq6009t2vsyc05tcro77mov12zhpvm
Raised upstream as https://issues.apache.org/jira/browse/KAFKA-13612
The only workaround for Burrows would be to actively join a consumer group rather than using the old style consumer


BUG for RandomAccessFile.readIntoSync(List)

dart code:
    List<int> buffer = List<int>(4);
    RandomAccessFile raf = await file.open();
    for (int i = 0; i < length; i += buffer.length) {
      print('read [$i, ${math.min(length, i + buffer.length)})');
      raf.readIntoSync(buffer, i);
      print('${buffer.join(',')}');
    }

command:
flutter pub pub run test/tools/zip/main.dart --file zip/config.hdpi.apk

log:
read [0, 4)
80,75,3,4
read [4, 8)
80,75,3,4
read [8, 12)
Unhandled exception:
RangeError (start): Invalid value: Not in range 0..4, inclusive: 8
#0      RangeError.checkValidRange (dart:core/errors.dart:328:7)
#1      _RandomAccessFile.readIntoSync (dart:io/file_impl.dart:797:22)
#2      ZipFile.open (file:///Users/v7lin/xxx/flutter_router/example/test/tools/zip/zip_file.dart:25:11)
<asynchronous suspension>
#3      main (file:///Users/v7lin/xxx/flutter_router/example/test/tools/zip/main.dart:15:11)
#4      _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:299:32)
#5      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:172:12)
pub finished with exit code 255

flutter for macOS Mojave
Flutter 1.7.8+hotfix.4 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 20e59316b8 (6 weeks ago) • 2019-07-18 20:04:33 -0700
Engine • revision fee001c93f
Tools • Dart 2.4.0

Please refer to the documentation of for RandomAccessFile.readIntoSync. The second parameter is not a position in the file, but a position in the buffer from which you should be filling it in with bytes from file. If you want to read the file starting from specified position you need to use RandomAccessFile.setPositionSync

thanks


Allow empty new password for wallet in serveral cases

This will resolve #596
Currently, when we send empty password, the server resolves in this:

I have already work out a way to notify the user about the response.

Whether or not this behavior is expected and/or desired is debateable.

The idea of this PR is to enable the user to try to execute a wallet command that requires a password, without entering a password, and getting an error.
The server error that a password is needed is the desired behavior.
At the moment, when there is no password entered, the button is grayed out or you cannot proceed without entering the passwords.
The idea is for them to be able click on the confirm button and get a server error that a password is needed.

On the send page/password modal, remove the password validation.

on the create start up password in the settings page, when only the startup password is entered, and the confirm button is pressed, the form submits and sets the password.

The behavior should allow for password confirmation when setting up the password.
if only the startup password is entered and the enter button is pressed, you should display an error to confirm the main password.


No rels leads to empty array rather than empty object in output

This is probably unfixable because of PHP, but I wanted to file it so it is on record.
If you parse a document that has no rels, you get back an empty JSON array in the json_encoded output. If you parse a document that has rels, you get back a JSON object. The specification says you should get back an empty object.
Obviously, in PHP lists and dictionaries (in Python terminology) are unified into array which can represent both list-style arrays (numerically-keyed arrays in PHP), dictionary-style arrays (associative arrays) and mixed list and dictionary style. json_encode lets you specify a flag for how you encode empty arrays.
One possible solution to this is to json_encode each piece separately and then stitch them together. Or just ignore the problem and operate on the basis that PHP will never quite be spec-compliant.

@aaronpk suggested possibly using ArrayObject instead of stdClass (alleviating the need for a jsonMode switch). Initial testing seems like this might work properly for encoding and iterating.
php > echo json_encode(["rels" => new ArrayObject()]);
{"rels":{}}

php > foreach (new ArrayObject() as $k => $v) { echo $k; }
php >
``


2019-12-03 19:16:20,021 INFO (MainThread-6022) Done running local_init_op.
INFO:tensorflow:Saving checkpoints for 0 into checkpoints/20191203-1915/model.ckpt.
2019-12-03 19:16:29,965 INFO (MainThread-6022) Saving checkpoints for 0 into checkpoints/20191203-1915/model.ckpt.
2019-12-03T19:16:32.283011 session ready

So, make sure that you set the feed_timeout to a sufficiently large number.  The current default is 600 seconds (10 minutes), but you're timing out about 8 seconds after worker:0 initially starts up, and about 16 seconds before the worker even reports session ready.

Closing due to inactivity.  Feel free to re-open if still an issue.


Using Scribe through modules in 3.0

Does Using Scribe through your modules still apply for 3.0?
This is how i create and set up Scribe (omitted options):
var Scribe = require('scribe-js');
const console = Scribe.create(options);
console.timing('logserver startup');
var logger = new Scribe.Middleware.ExpressRequestLogger(console);
var viewer = new Scribe.Router.Viewer(console);
app.use(logger.getMiddleware());
app.use('/logs', viewer.getRouter());

In my other modules, if I do console.log('whatever');, it logs normally, not to scribe.
How would I use the console in other modules?

Ah nevermind, I was missing console.override();.


Drag-drop installation doesn't seem to work

I'm on Xcode 8.2.1, trying to install AudioKit 8.5.2 for iOS. Following the instructional video on http://audiokit.io/downloads/, Xcode still seems unable to recognize the framework. Here's a short (<1 min) video of what I tried: https://www.dropbox.com/s/e44ilqdpwufxmd9/Install.mov?dl=0
I also tried making a bridging header and importing <AudioKit/AudioKit.h> in it, which didn't solve the problem. I am able to install using Cocoapods, though.

I don't think the framework search path gets set up when you do it like that.  If you'd like I'm happy to get you rolling via a screenshare.

Thanks, I actually got it working, so no need for a screenshare. It looks like your call on the framework search paths was right, because checking the "Copy items if needed" box when importing the framework solved the issue.
Shouldn't the docs / video / something on audiokit.io/downloads mention this, though, so other people don't have the same issue? I was just following the video exactly so I would guess it might be a common problem.


Documentation for Aura Extension Module

Changes

added docs at the top of lib.rs and some comments throughout the file
fixed a typo in another consensus/src/phragmen.rs comments

ToDo

could use some examples of use, but I am not entirely sure about consensus configuration in general; I think a lot of work is being done to make this more clear https://github.com/paritytech/substrate/issues/1304
could use more testing with staking and balances specifically wrt using Staking::offline_slash_grace and then testing slashing with the StakingSlasher struct in the module

going to reopen in a second, having trouble resolving some reversions


Api hasMany relationships are inconsistently retrieved

Environment information
System:
  OS: macOS 14.4.1
  CPU: (16) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
  Memory: 2.78 GB / 32.00 GB
  Shell: /bin/zsh
Binaries:
  Node: 20.11.1 - ~/.nvm/versions/node/v20.11.1/bin/node
  Yarn: 1.22.22 - ~/.nvm/versions/node/v20.11.1/bin/yarn
  npm: 10.2.4 - ~/.nvm/versions/node/v20.11.1/bin/npm
  pnpm: 8.10.5 - /usr/local/bin/pnpm
NPM Packages:
  @aws-amplify/backend: 0.13.0-beta.14
  @aws-amplify/backend-cli: 0.12.0-beta.16
  aws-amplify: 6.0.20
  aws-cdk: 2.133.0
  aws-cdk-lib: 2.133.0
  typescript: 5.4.2
AWS environment variables:
  AWS_STS_REGIONAL_ENDPOINTS = regional
  AWS_NODEJS_CONNECTION_REUSE_ENABLED = 1
  AWS_SDK_LOAD_CONFIG = 1
No CDK environment variables%

Description
data/resources schema:
 Conversation: a
            .model({
                playerCharacterRelationship: a.belongsTo(
                    "PlayerCharacterRelationship"
                ),
                messages: a.hasMany("Message"), //add conversation context
                lastMessage: a.hasOne("Message"),
                owner: a.string(),
            })
            .authorization([a.allow.owner()]),
        Message: a
            .model({
                conversation: a.belongsTo("Conversation"),
                sender: a.string().required(),
                content: a.string().required(),
                owner: a.string(),
            })
            .authorization([a.allow.owner()]),

addNewMessage():
export const addNewMessage = async (
    userId: string,
    content: string,
    senderId: string,
    conversation: Schema["Conversation"],
) => {
    const messageData: any = {
        conversation,
        sender: senderId,
        content,
        owner: userId,
    };
    //Create Message
    const { data: message, errors } = await dataClient.models.Message.create(
        messageData
    );
    //Update conversation with last message
    const {
        data: updatedConversation,
        errors: conversationErrors,
    } = await dataClient.models.Conversation.update({
        id: conversation.id,
        lastMessage: message,
    });
    //Check if messages added
    const {
        data: newMessages,
        errors: newErrors,
    } = await updatedConversation.messages();

    return message;
};

Using the above code, when I add a message to a conversation then check the conversation.messages list, I do not always see the newly added messages.
It seems very inconsistent, sometimes the messages are added and the other times they are missing. All checked via multiple logs.
Useful info:

The messages are consistently added when I manually check DynamoDB, it seems the issue then is in the retrieval
This code is run in a lambda function, lambda has full permissions to API at the moment
Curious if it is cause by adding the lastMessage property to conversation with a hasOne relationship, maybe there is confusion on lastMessage vs other messages?
No errors output or thrown by api
Every time I try to retrieve messages from the conversation, it is always the same subset retrieved, and the same subset left out.

Side note:

This would all be a lot faster to debug and test if lambda logs were outputted on console similar to gen1 mock lambdas. It is currently annoying to check cloudwatch each time.

Further findings:

Removed lastMessage property, issue still persists so ruling it out as issue
When I pull conversation messages in front end via selectionSet, this issue does not happen, it only seems to be happening in lambda (however my lambda code retrieves via the conversation.messages() function via a new request as opposed to defining in selectionSet, testing this next.

Functioning code in frontend that retrieves all messages without issue:
const {
        data,
        errors,
    } = await amplifyClient.models.PlayerCharacterRelationship.get(
        { id },
        {
            selectionSet: ["lastConversation.*", "lastConversation.messages.*"],
        }
    );

const messages = data?.lastConversation?.messages;

Updated lambda code to pull messages via selectionSet as opposed to using conversation.messages() function to make a new request, fixed the issue, messages are all pulled as expected.
Still keeping ticket open to track issue with conversation.messages(), my findings can be a workaround

Hey,👋 thanks for raising this! I'm going to transfer this over to our API repository for better assistance 🙂


Assign a spacial temperature vector as initial temperatrue field for DFN model

Description
Hi team,
I try to set an initial temperature distribution in x dimension for DFN but now it looks only a scalar value can be set for the whole domain. Could it be fixed?   Thanks!
Motivation
No response
Possible Implementation
No response
Additional context
No response

I'll take this one

Thank you very much!

xyyrly - assuming you were using the xfull temperature model?

Hi tommaull,
I am using a new thermal model to calculate electrolyte temperature along x dimension and particle temperature along r dimension,  kind of like DFN model.

Can you write out the steps to replicate with existing models?

Oh sorry I was confused. I think here what I hope to realize is to assign a spatical temperature distribution to DFN model without subthermal model. Is it possible?

I think a thermal model is required. My approach was going to be to add something like:
def set_initial_conditions(self, variables):
T = variables["Cell temperature [K]"]
    if isinstance(self.param.T, (list, np.ndarray)):
        if len(self.param.T) == 3:
            # Get sizes of negative, separator, and positive domains
            sizes = {
                "negative electrode": self.mesh["negative electrode"].npts,
                "separator": self.mesh["separator"].npts,
                "positive electrode": self.mesh["positive electrode"].npts,
            }

            # Check if sizes match the length of T_init
            if all(size == len(T_init) for size in sizes.values()):
                self.initial_conditions = {
                    "negative electrode": self.param.T_init[
                        : sizes["negative electrode"]
                    ],
                    "separator": self.param.T_init[
                        sizes["negative electrode"] : sizes["negative electrode"]
                        + sizes["separator"]
                    ],
                    "positive electrode": self.param.T_init[
                        sizes["negative electrode"] + sizes["separator"] :
                    ],
                }
            else:
                raise ValueError("T_init vector size does not match domain sizes")
        else:
            raise ValueError("T_init should be a vector of length 3")
    else:
        self.initial_conditions = {T: np.full_like(T, self.param.T_init)}

@tommaull take a look at e.g. how we define initial concentration, which can depend on x and r, and then how it is used in the model.
You'll need to make initial temperature a FunctionParameter, then you can pass T(x) as an initial condition.

Put in a draft PR to show progress but having an issue I don't understand in the expression tree.


Addition of Quant Network QNT token

Added our token logo as an svg to the images folder, and submitted an entry to contract-map.json regarding the token details.
Our official website: https://www.quant.network

Hi @estebanmino
Please find enclosed the updated commit. You'll also find that our reputation on Etherscan has been updated as well to reflect the required status.
The official project reference and token details can be found on our website at this address.
https://www.quant.network/quant-token/
Kindly reconsider with the updated information, and don't hesitate to ask me any further questions.
JP

@jeanpauldejong merged.


Cannot Using Installed Library with CMake (Toolchain File)

I am following this tut.
Step 2: we have 2 options, the first one S/MSBuild Project (User-wide integration) is working as expectation but the second one CMAKE (Toolchain FIle)

Scenario:

There are main.cpp and CMakeLists.text in build folder as described in the tut
Invoke CMake generator with: PS> cmake .. -DCMAKE_TOOLCHAIN_FILE=<path to vcpkg\scripts\buildsystems\vcpkg.cmake>

Expected: Generation is successful with configuration in CMakeLists. Sqlite3 can be found without any file path direction.
Actual:  generation is fail due to Sqlite 3 is not found.

"PS C:\Users\vohoa\test_vcpkg\build> cmake .. -DCMAKE_TOOLCHAIN_FILE=C:\Users\vohoa\vcpkg\scripts\buildsystems
vcpkg.cmake
CMake Error at CMakeLists.txt:5 (find_package):
By not providing "FindSqlite3.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "Sqlite3", but
CMake did not find one.
Could not find a package configuration file provided by "Sqlite3" with any
of the following names:
Sqlite3Config.cmake
sqlite3-config.cmake
Add the installation prefix of "Sqlite3" to CMAKE_PREFIX_PATH or set
"Sqlite3_DIR" to a directory containing one of the above files.  If
"Sqlite3" provides a separate development package or SDK, be sure it has
been installed.
-- Configuring incomplete, errors occurred!
See also "C:/Users/vohoa/test_vcpkg/build/CMakeFiles/CMakeOutput.log"."

Sqlite is installed via vcpkg:

"PS C:\Users\vohoa\vcpkg> .\vcpkg.exe list"
"sqlite3:x86-windows                                3.21.0           SQLite is a software library that implemen"

Sorry for missing this issue, and thanks for posting!
Could you confirm that C:\Users\vohoa\vcpkg\installed\x86-windows\share\sqlite3\sqlite3Config.cmake exists? Additionally, could you add a statement to your cmake project right after the project() directive:
message("VCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET}")

Hi,
I've setup my PC with brand new Wins 10. I'm trying to reproduce the issue but by now the issue no longer occurs. I can build as following the tutorial.
Anyway here are some information you query:

Yes the location is exist
VCPKG_TARGET_TRIPLET=x86-windows
Thanks for your support.