The update-display process runs indefinitely

The update-display process runs indefinitely
Summary
The update-display process sometimes runs indefinitely using 100% CPU. This only happens about once a week (refresh_timeout setting is set to 300 seconds), approximately once of every 2000 runs ((60 × 60 × 24 × 7) ÷ 300).
I have already created the debug-update-display branch to get some clues where the process stuck. See the following journal logs of slow-movie-player.service:
Feb 09 10:41:07 slow-movie-frame systemd[1]: Starting Slow Movie Player...
Feb 10 08:53:25 slow-movie-frame systemd[1]: Started Slow Movie Player.
Feb 10 08:54:28 slow-movie-frame systemd[1]: Stopping Slow Movie Player...
Feb 10 08:54:44 slow-movie-frame systemd[1]: slow-movie-player.service: Succeeded.
Feb 10 08:54:44 slow-movie-frame systemd[1]: Stopped Slow Movie Player.
Feb 10 08:54:44 slow-movie-frame systemd[1]: slow-movie-player.service: Consumed 59.772s CPU time.
Feb 10 09:04:54 slow-movie-frame systemd[1]: Starting Slow Movie Player...
Feb 10 09:06:10 slow-movie-frame systemd[1]: Started Slow Movie Player.
Feb 13 22:46:35 slow-movie-frame systemd[1]: Stopping Slow Movie Player...
Feb 13 22:46:53 slow-movie-frame systemd[1]: slow-movie-player.service: Succeeded.
Feb 13 22:46:53 slow-movie-frame systemd[1]: Stopped Slow Movie Player.
Feb 13 22:46:53 slow-movie-frame systemd[1]: slow-movie-player.service: Consumed 7h 46min 9.907s CPU time.
Feb 13 22:46:53 slow-movie-frame systemd[1]: Starting Slow Movie Player...
Feb 13 22:48:07 slow-movie-frame systemd[1]: Started Slow Movie Player.
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: Traceback (most recent call last):
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]:   File "/opt/slow-movie-player/display.py", line 27, in __update
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]:     output = update_process.communicate(timeout=timeout)[0]
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]:   File "/usr/lib/python3.9/subprocess.py", line 1134, in communicate
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]:     stdout, stderr = self._communicate(input, endtime, timeout)
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]:   File "/usr/lib/python3.9/subprocess.py", line 1982, in _communicate
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]:     self._check_timeout(endtime, orig_timeout, stdout, stderr)
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]:   File "/usr/lib/python3.9/subprocess.py", line 1178, in _check_timeout
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]:     raise TimeoutExpired(
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: subprocess.TimeoutExpired: Command '['/opt/slow-movie-player/update-display', '-v', '-1.48', '-f', 'frame.4bpp']' timed out after 60 seconds
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: During handling of the above exception, another exception occurred:
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: Traceback (most recent call last):
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]:   File "/opt/slow-movie-player/slowmovieplayer.py", line 65, in <module>
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]:     SlowMoviePlayer(config).run()
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]:   File "/opt/slow-movie-player/slowmovieplayer.py", line 41, in run
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]:     Display.draw_image(self.__config.vcom, image_file_name)
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]:   File "/opt/slow-movie-player/display.py", line 67, in draw_image
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]:     cls.__update(vcom, file_path=file_path, timeout=timeout)
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]:   File "/opt/slow-movie-player/display.py", line 47, in __update
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]:     raise RuntimeError(error_message)
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: RuntimeError: Timeout during updating display.
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: Status: Name:        update-display
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: Umask:        0022
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: State:        R (running)
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: Tgid:        32308
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: Ngid:        0
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: Pid:        32308
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: PPid:        17133
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: TracerPid:        0
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: Uid:        0        0        0        0
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: Gid:        0        0        0        0
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: FDSize:        64
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: Groups:
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: NStgid:        32308
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: NSpid:        32308
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: NSpgid:        17133
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: NSsid:        17133
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: VmPeak:           19276 kB
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: VmSize:           19276 kB
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: VmLck:               0 kB
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: VmPin:               0 kB
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: VmHWM:             720 kB
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: VmRSS:             720 kB
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: RssAnon:              80 kB
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: RssFile:             640 kB
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: RssShmem:               0 kB
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: VmData:             204 kB
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: VmStk:             132 kB
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: VmExe:              72 kB
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: VmLib:            2260 kB
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: VmPTE:              68 kB
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: VmSwap:               0 kB
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: CoreDumping:        0
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: THP_enabled:        0
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: Threads:        1
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: SigQ:        0/638
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: SigPnd:<PHONE_NUMBER>000000
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: ShdPnd:<PHONE_NUMBER>000000
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: SigBlk:<PHONE_NUMBER>000000
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: SigIgn:<PHONE_NUMBER>000000
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: SigCgt:<PHONE_NUMBER>000000
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: CapInh:<PHONE_NUMBER>000000
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: CapPrm:        000001ffffffffff
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: CapEff:        000001ffffffffff
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: CapBnd:        000001ffffffffff
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: CapAmb:<PHONE_NUMBER>000000
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: NoNewPrivs:        0
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: Seccomp:        0
Feb 17 07:45:49 slow-movie-frame slowmovieplayer.py[17133]: Seccomp_filters:        0
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: Speculation_Store_Bypass:        not vulnerable
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: SpeculationIndirectBranch:        unknown
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: Cpus_allowed:        f
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: Cpus_allowed_list:        0-3
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: Mems_allowed:        1
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: Mems_allowed_list:        0
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: voluntary_ctxt_switches:        3
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: nonvoluntary_ctxt_switches:        205
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: Stack trace: gdb: warning: Couldn't determine a path for the index cache directory.
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: GNU gdb (Debian 10.1-1.7) <IP_ADDRESS>10103-git
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: Copyright (C) 2021 Free Software Foundation, Inc.
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: This is free software: you are free to change and redistribute it.
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: There is NO WARRANTY, to the extent permitted by law.
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: Type "show copying" and "show warranty" for details.
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: This GDB was configured as "aarch64-linux-gnu".
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: Type "show configuration" for configuration details.
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: For bug reporting instructions, please see:
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: <https://www.gnu.org/software/gdb/bugs/>.
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: Find the GDB manual and other documentation resources online at:
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]:     <http://www.gnu.org/software/gdb/documentation/>.
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: For help, type "help".
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: Type "apropos word" to search for commands related to "word".
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: Attaching to process 32308
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: Reading symbols from /opt/slow-movie-player/update-display...
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: Reading symbols from /lib/aarch64-linux-gnu/libm.so.6...
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: Reading symbols from /usr/lib/debug/.build-id/8d/efd8eb01d73f30848d9656f10df58465ab9a2e.debug...
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: Reading symbols from /lib/aarch64-linux-gnu/libpthread.so.0...
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: Reading symbols from /usr/lib/debug/.build-id/e5/a4fbb31ac8f9324067dd30930fee0eb32a490f.debug...
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: [Thread debugging using libthread_db enabled]
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1".
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: Reading symbols from /lib/aarch64-linux-gnu/libc.so.6...
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: Reading symbols from /usr/lib/debug/.build-id/bc/b0be0a4d5929b9244446b6e495b05fd335a306.debug...
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: Reading symbols from /lib/ld-linux-aarch64.so.1...
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: Reading symbols from /usr/lib/debug/.build-id/0c/157faa0bf57d35e8fa64ccb41135d5ee593b4e.debug...
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: bcm2835_peri_read (paddr=0x7f98a60034) at bcm2835.c:213
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: 213               __sync_synchronize();
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: Thread 1 (Thread 0x7f99860040 (LWP 32308) "update-display"):
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: #0  bcm2835_peri_read (paddr=0x7f98a60034) at bcm2835.c:213
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]:         ret = 268599807
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]:         ret = <optimized out>
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: #1  bcm2835_gpio_lev (pin=24 '\030') at bcm2835.c:345
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]:         paddr = 0x7f98a60034
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]:         shift = 24 '\030'
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]:         value = <optimized out>
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: #2  0x0000005579bb3050 in EPD_IT8951_Init ()
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: No symbol table info available.
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: #3  0x0000005579bb1194 in main ()
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: No symbol table info available.
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: Detaching from program: /opt/slow-movie-player/update-display, process 32308
Feb 17 07:45:50 slow-movie-frame slowmovieplayer.py[17133]: [Inferior 1 (process 32308) detached]
Feb 17 07:45:58 slow-movie-frame systemd[1]: slow-movie-player.service: Main process exited, code=exited, status=1/FAILURE
Feb 17 07:46:14 slow-movie-frame systemd[1]: slow-movie-player.service: Failed with result 'exit-code'.
Feb 17 07:46:14 slow-movie-frame systemd[1]: slow-movie-player.service: Consumed 7h 24min 3.674s CPU time.

Expected result
The update-display process should not run indefinitely, it should paint a new picture to the e-paper device in less than 30 seconds total in an ideal case.
Actual result
The update-display process runs indefinitely using 100% CPU.
Environment
Hardware
Raspberry Pi Zero 2 W:

https://www.raspberrypi.com/products/raspberry-pi-zero-2-w/
https://datasheets.raspberrypi.com/rpizero2/raspberry-pi-zero-2-w-product-brief.pdf

/etc/os-release
$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

lsb_release --all
$ lsb_release --all
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 11 (bullseye)
Release:	11
Codename:	bullseye

uname -a
$ uname -a
Linux slow-movie-frame 5.15.84-v8+ #1613 SMP PREEMPT Thu Jan 5 12:03:08 GMT 2023 aarch64 GNU/Linux

/proc/cpuinfo
$ cat /proc/cpuinfo
processor	: 0
BogoMIPS	: 38.40
Features	: fp asimd evtstrm crc32 cpuid
CPU implementer	: 0x41
CPU architecture: 8
CPU variant	: 0x0
CPU part	: 0xd03
CPU revision	: 4

processor	: 1
BogoMIPS	: 38.40
Features	: fp asimd evtstrm crc32 cpuid
CPU implementer	: 0x41
CPU architecture: 8
CPU variant	: 0x0
CPU part	: 0xd03
CPU revision	: 4

processor	: 2
BogoMIPS	: 38.40
Features	: fp asimd evtstrm crc32 cpuid
CPU implementer	: 0x41
CPU architecture: 8
CPU variant	: 0x0
CPU part	: 0xd03
CPU revision	: 4

processor	: 3
BogoMIPS	: 38.40
Features	: fp asimd evtstrm crc32 cpuid
CPU implementer	: 0x41
CPU architecture: 8
CPU variant	: 0x0
CPU part	: 0xd03
CPU revision	: 4

Hardware	: BCM2835
Revision	: 902120
Serial		:<PHONE_NUMBER>5debf8
Model		: Raspberry Pi Zero 2 W Rev 1.0

I was able to reproduce the issue with the following script:
#!/usr/bin/env python3

import subprocess
import os
import logging
from systemd import journal
import time
from typing import Union

class Display:
    @classmethod
    def __update(
        cls,
        vcom: float,
        file_path: str = '',
        timeout: Union[None, int] = 60
    ) -> None:
        command = ['/opt/slow-movie-player/update-display', '-v', str(vcom)]

        if file_path:
            command += ['-f', file_path]

        update_process = subprocess.Popen(
            command,
            stdout=subprocess.PIPE,
            stderr=subprocess.STDOUT,
            text=True
        )

        try:
            output = update_process.communicate(timeout=timeout)[0]
        except subprocess.TimeoutExpired:
            status = cls.__get_status(update_process.pid)
            kernel_trace = cls.__get_kernel_trace(update_process.pid)
            stack_trace = cls.__get_stack_trace(update_process.pid)

            error_message = 'Timeout during updating display.'
            error_message += '\n--- Process status:\n{}'.format(status)
            error_message += '\n--- Stack trace:\n{}'.format(stack_trace)

            if kernel_trace:
                error_message += '\n--- Kernel trace:\n{}'.format(kernel_trace)

            logger = logging.getLogger()
            logger.addHandler(journal.JournalHandler())
            logger.setLevel(logging.ERROR)
            logger.error(error_message)

            while True:
                time.sleep(60)

        if update_process.returncode != 0:
            raise RuntimeError(
                "Error during updating display, update-display exit status: '{}'.".format(update_process.returncode)
            )

    @classmethod
    def clear(cls, vcom: float, timeout: Union[None, int] = None) -> None:
        cls.__update(vcom, timeout=timeout)

    @classmethod
    def draw_image(
        cls,
        vcom: float,
        file_path: str,
        timeout: Union[None, int] = 60
    ) -> None:
        cls.__update(vcom, file_path=file_path, timeout=timeout)

    @staticmethod
    def __get_status(pid: int) -> str:
        with open('/proc/{}/status'.format(pid), 'r') as status_file:
            return status_file.read()

    @staticmethod
    def __get_kernel_trace(pid: int) -> Union[None, str]:
        kernel_config_file_path = '/proc/config.gz'

        if not os.path.exists(kernel_config_file_path):
            return

        kernel_config_process = subprocess.Popen(
            ['zcat', kernel_config_file_path],
            stdout=subprocess.PIPE,
            stderr=subprocess.STDOUT,
            text=True
        )

        kernel_configs = kernel_config_process.communicate()[0]

        if 'CONFIG_STACKTRACE=y\n' not in kernel_configs:
            return

        with open('/proc/{}/stack'.format(pid), 'r') as kernel_stack_file:
            return kernel_stack_file.read()

    @staticmethod
    def __get_stack_trace(pid: int) -> str:
        stack_trace_command = [
            'gdb',
            '-ex', 'set pagination off',
            '-ex', 'attach {}'.format(pid),
            '-ex', 'thread apply all bt full',
            '-ex', 'detach',
            '-ex', 'q'
        ]

        stack_trace_process = subprocess.Popen(
            stack_trace_command,
            stdout=subprocess.PIPE,
            stderr=subprocess.STDOUT,
            text=True
        )

        return stack_trace_process.communicate()[0]

if __name__ == '__main__':
    vcom = -1.48

    Display.clear(vcom)

    while True:
        Display.draw_image(vcom, '/home/szantaii/frame.4bpp')
        time.sleep(5)

After a couple of hours the e-paper display did not refresh further which meant that the update-display process was stuck again. See the following journal log excerpt:
Feb 17 20:15:39 slow-movie-frame ./debug-update-display.py[1166]: Timeout during updating display.
                                                                  --- Process status:
                                                                  Name: update-display
                                                                  Umask:        0022
                                                                  State:        R (running)
                                                                  Tgid: 2273
                                                                  Ngid: 0
                                                                  Pid:  2273
                                                                  PPid: 1166
                                                                  TracerPid:    0
                                                                  Uid:  0       0       0       0
                                                                  Gid:  0       0       0       0
                                                                  FDSize:       64
                                                                  Groups:       0
                                                                  NStgid:       2273
                                                                  NSpid:        2273
                                                                  NSpgid:       1165
                                                                  NSsid:        654
                                                                  VmPeak:          19276 kB
                                                                  VmSize:          19276 kB
                                                                  VmLck:               0 kB
                                                                  VmPin:               0 kB
                                                                  VmHWM:             628 kB
                                                                  VmRSS:             628 kB
                                                                  RssAnon:            84 kB
                                                                  RssFile:           544 kB
                                                                  RssShmem:            0 kB
                                                                  VmData:            204 kB
                                                                  VmStk:             132 kB
                                                                  VmExe:              72 kB
                                                                  VmLib:            2260 kB
                                                                  VmPTE:              68 kB
                                                                  VmSwap:              0 kB
                                                                  CoreDumping:  0
                                                                  THP_enabled:  0
                                                                  Threads:      1
                                                                  SigQ: 0/638
                                                                  SigPnd:<PHONE_NUMBER>000000
                                                                  ShdPnd:<PHONE_NUMBER>000000
                                                                  SigBlk:<PHONE_NUMBER>000000
                                                                  SigIgn:<PHONE_NUMBER>000001
                                                                  SigCgt:<PHONE_NUMBER>000000
                                                                  CapInh:<PHONE_NUMBER>000000
                                                                  CapPrm:       000001ffffffffff
                                                                  CapEff:       000001ffffffffff
                                                                  CapBnd:       000001ffffffffff
                                                                  CapAmb:<PHONE_NUMBER>000000
                                                                  NoNewPrivs:   0
                                                                  Seccomp:      0
                                                                  Seccomp_filters:      0
                                                                  Speculation_Store_Bypass:     not vulnerable
                                                                  SpeculationIndirectBranch:    unknown
                                                                  Cpus_allowed: f
                                                                  Cpus_allowed_list:    0-3
                                                                  Mems_allowed: 1
                                                                  Mems_allowed_list:    0
                                                                  voluntary_ctxt_switches:      3
                                                                  nonvoluntary_ctxt_switches:   16

                                                                  --- Stack trace:
                                                                  GNU gdb (Debian 10.1-1.7) <IP_ADDRESS>10103-git
                                                                  Copyright (C) 2021 Free Software Foundation, Inc.
                                                                  License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
                                                                  This is free software: you are free to change and redistribute it.
                                                                  There is NO WARRANTY, to the extent permitted by law.
                                                                  Type "show copying" and "show warranty" for details.
                                                                  This GDB was configured as "aarch64-linux-gnu".
                                                                  Type "show configuration" for configuration details.
                                                                  For bug reporting instructions, please see:
                                                                  <https://www.gnu.org/software/gdb/bugs/>.
                                                                  Find the GDB manual and other documentation resources online at:
                                                                      <http://www.gnu.org/software/gdb/documentation/>.

                                                                  For help, type "help".
                                                                  Type "apropos word" to search for commands related to "word".
                                                                  Attaching to process 2273
                                                                  Reading symbols from /opt/slow-movie-player/update-display...
                                                                  Reading symbols from /lib/aarch64-linux-gnu/libm.so.6...
                                                                  Reading symbols from /usr/lib/debug/.build-id/8d/efd8eb01d73f30848d9656f10df58465ab9a2e.debug...
                                                                  Reading symbols from /lib/aarch64-linux-gnu/libpthread.so.0...
                                                                  Reading symbols from /usr/lib/debug/.build-id/e5/a4fbb31ac8f9324067dd30930fee0eb32a490f.debug...
                                                                  [Thread debugging using libthread_db enabled]
                                                                  Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1".
                                                                  Reading symbols from /lib/aarch64-linux-gnu/libc.so.6...
                                                                  Reading symbols from /usr/lib/debug/.build-id/bc/b0be0a4d5929b9244446b6e495b05fd335a306.debug...
                                                                  Reading symbols from /lib/ld-linux-aarch64.so.1...
                                                                  Reading symbols from /usr/lib/debug/.build-id/0c/157faa0bf57d35e8fa64ccb41135d5ee593b4e.debug...
                                                                  0x0000005555c893e8 in bcm2835_gpio_lev (pin=24 '\030') at bcm2835.c:343
                                                                  343       volatile uint32_t* paddr = bcm2835_gpio + BCM2835_GPLEV0/4 + pin/32;

                                                                  Thread 1 (Thread 0x7fb1f79040 (LWP 2273) "update-display"):
                                                                  #0  0x0000005555c893e8 in bcm2835_gpio_lev (pin=24 '\030') at bcm2835.c:343
                                                                          paddr = <optimized out>
                                                                          shift = <optimized out>
                                                                          value = <optimized out>
                                                                  #1  0x0000005555c83050 in EPD_IT8951_Init ()
                                                                  No symbol table info available.
                                                                  #2  0x0000005555c81194 in main ()
                                                                  No symbol table info available.
                                                                  Detaching from program: /opt/slow-movie-player/update-display, process 2273
                                                                  [Inferior 1 (process 2273) detached]

Manually attaching to the still running process did not reveal much:
$ sudo gdb
GNU gdb (Debian 10.1-1.7) <IP_ADDRESS>10103-git
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "aarch64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word".
(gdb) set pagination off
(gdb) attach 2273
Attaching to process 2273
Reading symbols from /opt/slow-movie-player/update-display...
Reading symbols from /lib/aarch64-linux-gnu/libm.so.6...
Reading symbols from /usr/lib/debug/.build-id/8d/efd8eb01d73f30848d9656f10df58465ab9a2e.debug...
Reading symbols from /lib/aarch64-linux-gnu/libpthread.so.0...
Reading symbols from /usr/lib/debug/.build-id/e5/a4fbb31ac8f9324067dd30930fee0eb32a490f.debug...
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1".
Reading symbols from /lib/aarch64-linux-gnu/libc.so.6...
Reading symbols from /usr/lib/debug/.build-id/bc/b0be0a4d5929b9244446b6e495b05fd335a306.debug...
Reading symbols from /lib/ld-linux-aarch64.so.1...
Reading symbols from /usr/lib/debug/.build-id/0c/157faa0bf57d35e8fa64ccb41135d5ee593b4e.debug...
0x0000005555c81bf4 in DEV_Digital_Read ()
(gdb) thread apply all bt full

Thread 1 (Thread 0x7fb1f79040 (LWP 2273) "update-display"):
#0  0x0000005555c81bf4 in DEV_Digital_Read ()
No symbol table info available.
#1  0x0000005555c83050 in EPD_IT8951_Init ()
No symbol table info available.
#2  0x0000005555c81194 in main ()
No symbol table info available.
(gdb) detach
Detaching from program: /opt/slow-movie-player/update-display, process 2273
[Inferior 1 (process 2273) detached]
(gdb) q

I have also attached to the process with strace but I did not see any calls whatsoever.
My only guess for now is that the curent SPI clock speed is too high for the Raspberry Pi Zero 2 W. See the following links for details:

https://www.airspayce.com/mikem/bcm2835/group__constants.html#gaf2e0ca069b8caef24602a02e8a00884e
https://raspberrypi.stackexchange.com/q/699/7794
https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#serial-peripheral-interface-spi
https://forums.raspberrypi.com/viewtopic.php?t=191604

I will continue to debug this issue:

I will rebuild the bcm2835 C library & update-display with debug symbols and try to reproduce the issue once again to see if I can get more info in gdb.
Set the SPI clock divider in vendor/IT8951-ePaper/Raspberry/lib/Config/DEV_Config.c#L150 to a higher number to get a slower clock speed.

I have decreased the SPI clock speed (#1, #2) to the half of its previous value and the frame is operating properly for about 10 consecutive days now.
See the linked commits and the description of the bcm2835SPIClockDivider enum below (source):

enum bcm2835SPIClockDivider: Specifies the divider used to generate the SPI clock from the system clock. Figures below give the divider, clock period and clock frequency. Clock divided is based on nominal core clock rate of 250MHz on RPi1 and RPi2, and 400MHz on RPi3. It is reported that (contrary to the documentation) any even divider may used. The frequencies shown for each divider have been confirmed by measurement on RPi1 and RPi2. The system clock frequency on RPi3 is different, so the frequency you get from a given divider will be different. See comments in 'SPI Pins' for information about reliable SPI speeds. Note: it is possible to change the core clock rate of the RPi 3 back to 250MHz, by putting core_freq=250 in the config.txt

Enumerator

BCM2835_SPI_CLOCK_DIVIDER_65536
65536 = 3.814697260kHz on Rpi2, 6.1035156kHz on RPI3

BCM2835_SPI_CLOCK_DIVIDER_32768
32768 = 7.629394531kHz on Rpi2, 12.20703125kHz on RPI3

BCM2835_SPI_CLOCK_DIVIDER_16384
16384 = 15.25878906kHz on Rpi2, 24.4140625kHz on RPI3

BCM2835_SPI_CLOCK_DIVIDER_8192
8192 = 30.51757813kHz on Rpi2, 48.828125kHz on RPI3

BCM2835_SPI_CLOCK_DIVIDER_4096
4096 = 61.03515625kHz on Rpi2, 97.65625kHz on RPI3

BCM2835_SPI_CLOCK_DIVIDER_2048
2048 =<PHONE_NUMBER>kHz on Rpi2, 195.3125kHz on RPI3

BCM2835_SPI_CLOCK_DIVIDER_1024
1024 = 244.140625kHz on Rpi2, 390.625kHz on RPI3

BCM2835_SPI_CLOCK_DIVIDER_512
512 = 488.28125kHz on Rpi2, 781.25kHz on RPI3

BCM2835_SPI_CLOCK_DIVIDER_256
256 = 976.5625kHz on Rpi2, 1.5625MHz on RPI3

BCM2835_SPI_CLOCK_DIVIDER_128
128 = 1.953125MHz on Rpi2, 3.125MHz on RPI3

BCM2835_SPI_CLOCK_DIVIDER_64
64 = 3.90625MHz on Rpi2, 6.250MHz on RPI3

BCM2835_SPI_CLOCK_DIVIDER_32
32 = 7.8125MHz on Rpi2, 12.5MHz on RPI3

BCM2835_SPI_CLOCK_DIVIDER_16
16 = 15.625MHz on Rpi2, 25MHz on RPI3

BCM2835_SPI_CLOCK_DIVIDER_8
8 = 31.25MHz on Rpi2, 50MHz on RPI3

BCM2835_SPI_CLOCK_DIVIDER_4
4 = 62.5MHz on Rpi2, 100MHz on RPI3. Don't expect this speed to work reliably.

BCM2835_SPI_CLOCK_DIVIDER_2
2 = 125MHz on Rpi2, 200MHz on RPI3, fastest you can get. Don't expect this speed to work reliably.

BCM2835_SPI_CLOCK_DIVIDER_1
1 = 3.814697260kHz on Rpi2, 6.1035156kHz on RPI3, same as 0/65536

Of course, by reducing the SPI clock speed, clearing and drawing onto the e-paper device became slower, but this was expected.
I have measured the time necessary for clearing the screen (hereinafter referred to as clear time) and the time necessary for drawing a full image to the screen (hereinafter referred to as draw time) using the following (rather crude) shell script:
#!/bin/bash

set -euf -o pipefail

for _ in {1..20}
do
    start_time="$(date '+%s%N')"
    # sudo /opt/slow-movie-player/update-display -v -1.48 > /dev/null 2>&1
    sudo /opt/slow-movie-player/update-display -v -1.48 -f /home/szantaii/frame.4bpp > /dev/null 2>&1
    end_time="$(date '+%s%N')"
    echo "Elapsed time: $(((end_time - start_time) / 1000000)) ms"
done

sudo /opt/slow-movie-player/update-display -v -1.48 > /dev/null 2>&1

Overall, average clear time was increased by 23.8% and average draw time increased by 30.2% when using half (BCM2835_SPI_CLOCK_DIVIDER_64) the SPI clock speed than previously (BCM2835_SPI_CLOCK_DIVIDER_32).
See the following tables below for the measured clear times and draw times.

BCM2835_SPI_CLOCK_DIVIDER_32
BCM2835_SPI_CLOCK_DIVIDER_64

clear time [ms]
draw time [ms]

7922
12557

7881
12479

7887
12470

7885
12467

7888
12471

7882
12468

7909
12463

7882
12462

7888
12469

7882
12469

7888
12469

7884
12464

7888
12458

7902
12464

7889
12465

7887
12467

7888
12471

7884
12466

7883
12467

7887
12471

clear time [ms]
draw time [ms]

9795
16317

9769
16237

9769
16236

9771
16237

9765
16231

9768
16232

9768
16244

9768
16245

9770
16241

9765
16235

9772
16236

9765
16237

9767
16236

9768
16247

9765
16238

9772
16236

9770
16232

9772
16238

9768
16254

9771
16241

BCM2835_SPI_CLOCK_DIVIDER_32
BCM2835_SPI_CLOCK_DIVIDER_64

clear time average [ms]
draw time average [ms]

7889.3
12471.9

clear time average [ms]
draw time average [ms]

9769.9
16242.5

Unfortunately the previously mentioned method (reducing SPI clock speed) did not work properly. After a couple of weeks, the update-display process was stuck again at the initialization of the e-paper device.

In the end I have solved/circumvented this problem by leaving the update-display process running indefinitely, doing the e-paper device initialization only once (when it starts), and communicating with the update-display process (to draw an image or clear the screen) via signals. See the try-using-signals branch for the technical details.

Fixes were merged into main, therefore, I am closing this issue (as solved).


No VC14 build

There is no VC14 build of this package for windows listed in conda-forge files. AFAICT, this causes python 3.6 windows conda package of pyFFTW not to be build.
The recipe/meta.yaml specifies that, on Windows, a conda package should be build with VC14 whereas appveyor config only launches VC9.
Is it because a pass of conda smithy has been missed?

I haven't looked into the missing FFTW packages here yet, but the main reason there are no windows PyFFTW packages at the moment is because the current PyFFTW release requires single, double and long double precisions to all be present, but we do not build long double FFTW on Windows (I think this was due to VC9 limitations?).
In current master of PyFFTW it is possible to build with only a subset of the precisions present and will be easy to add windows packages for conda-forge once we make a new pyFFTW release (hopefully fairly soon).

Looks like something went wrong in commit ( https://github.com/conda-forge/fftw-feedstock/commit/ef4b7a32e8db88bbc34e66a0981e06053d290b66 ) and has remained that way since. Bad rerendering maybe.
cc @jschueller

There was also an issue of the library names in the CMAKE-based FFTW build not matching the names PyFFTW is expecting on windows.  That issue was also recently addressed in pyFFTW/pyFFTW#190.

Think I figured it out. PR ( https://github.com/conda-forge/fftw-feedstock/pull/38 ) should fix the issue.

@grlee77, for the long double being present in VC14, it doesn't seem like it. MSDN and Numpy documentation seem to agree to say that with MSVC, long double is mapped to a double.
So FFTW built with MSVC (as done on conda-forge) will only have double precision at most. That could be different with mingw I guess.

Thanks for raising @matmel.
VC14 is back in the build matrix and a new VC14 build has been triggered. May take a little bit to process depending on the queue length.


Bug in Optimizer's serializeState and deserializeState methods (Scala)

Description
Currently there is a bug in the way Optimizer is trying to serialize state which fails when trying to deserialize Optimizer that has no states (like SGD without momentum).
Issue
Currently the way serialize is being done is as below: (pasting Optimizer.serailizeState())
  override def serializeState(): Array[Byte] = {
        val bos = new ByteArrayOutputStream()
        try {
          val out = new ObjectOutputStream(bos)
          out.writeInt(states.size)
          states.foreach { case (k, v) =>
            if (v != null) {
              out.writeInt(k)
              val stateBytes = optimizer.serializeState(v)
              if (stateBytes == null) {
                out.writeInt(0)
              } else {
                out.writeInt(stateBytes.length)
                out.write(stateBytes)
              }
            }
          }
          out.flush()
          bos.toByteArray
        } finally {
         ...
      }
  }

When an Optimizer without states like SGD with momentum set as 0 is being used. The states map (Map[Int, AnyRef]) contains a (key, value) pair as (some integer index, null).
The above serialize method does not write k as the value of key and 0 as the value of stateBytes, due to the null check if (v != null)
Now while deserializing: (Pasting code from Optimizer.deserializeState())
  override def deserializeState(bytes: Array[Byte]): Unit = {
        val bis = new ByteArrayInputStream(bytes)
        var in: ObjectInputStream = null
        try {
          in = new ObjectInputStream(bis)
          val size = in.readInt()
          (0 until size).foreach(_ => {
            val key = in.readInt()
            val bytesLength = in.readInt()
            val value =
              if (bytesLength > 0) {
                val bytes = Array.fill[Byte](bytesLength)(0)
                in.readFully(bytes)
                optimizer.deserializeState(bytes)
              } else {
                null
              }
            states.update(key, value)
          })
        } finally {
          ...
      }
  }

In the foreach loop, the key is being read (which wasn't serialized previously) hence, this would cause an java.io.EOFException.
Solution.
Get rid of if (v != null) check and retain the rest.

@mxnet-label-bot add [Scala, Bug]

Hey @satyakrishnagorti, it sounds like you have looked at this and know what to change. If you are interested, you are also more than welcome to open a pull request and contribute the fixes yourself. Let me know if you need any help

Yeah, I will send a PR soon.


unknown/random key combo error trigger

Error: <class 'IndexError'>: pop from empty list
File "\unreal_script_editor\codeEditor\codeEditor.py", line 120, in keyReleaseEvent
self.pressed_keys.pop()

do you have any more info about when this happened?
e.g. you were typing in a text field, or you were not using the tool but it was open.
what keys it could be

I'm planning to do more digging next week, but I think it was an "alt + tab" key combo and then some copy-pasting trigged it


Make esp_mbedtls_server_session_create async compatible (IDFGH-13606)

This makes esp_mbedtls_server_session_create async-friendly by splitting up the function into two parts. This change was originally proposed here in order to make an asynchronous TLS server possible: https://github.com/esp-rs/esp-idf-svc/pull/368#discussion_r1512376482

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.thomaskoessl seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

@AdityaHPatwardhan I updated the function names and also ported them to both WolfSSL and esp-tls.

@thetek42 Actually, if it is fine with you, I can take over the PR. Please merge your changes in one commit. I will update my changes on a separate commit so your contribution would still be visible.

PR updated. Thanks!

sha=083b39640524dc96d5bccffc396667f5f3a616f3


Move open issues from auth- and resource-server

Now that the merge is complete, we have to move all open tickets from the old auth- and resource-server repos to this repo.

Ok, I moved all issues

Thanks alot! Awesome effort.


Support for authorization directives

Hi, consider adding authorization directive like outlined in this example https://graphql-java.com/documentation/sdl-directives.
This one is controversial because the schema is public knowledge and I’m not sure if authorization requirements are fine to publish or not. Still worth a discussion IMO.

Duplicates #116


add versioning tool

add versioning tool e.g semantic-release, and comitizen, for auto creating CHANGELOG.md and versioning updates.

I added it in the README and build issue.


Safe conversion between arrow-rs and arrow2 Arrays

Relates to #1429
This provides safe conversion between arrow2 arrays and arrow-rs ArrayData

https://github.com/jorgecarleitao/arrow2/actions/runs/4659165653/jobs/8245723577?pr=1446 is failing on master and I think unrelated to this PR

@tustvold  is  arrow-rs37.0.0 ready to bump?

@tustvold is arrow-rs37.0.0 ready to bump?

Yes, I can prepare a PR for this. It has some non-trivial breaking changes to schema representation


Add new feature:tags. #223

Description
Adding new feature: tags
Code sample
<span class="tag">my cool tag<\span>
#223
Fix build issues about version of native and banner-cli
but others that i cant change stull there :/

hey @cjpatoilo when u got time can u look ate appveyor ci?
it keeps failing on it event i ran npm start, npm t, yarn and yarn test, on local and no error shows up :/

@schirrel it's really impressive.
So, I would like to extend Milligram to be more than 'a simple starting point'. But, I don't break huge changes adding new features. Today, my intention is to keep Milligram fast and simple.
Is it okay for you if I keep your changes here until I make a better decision about them?

Hi, i understand
No problems for me :D


fix(apps/prod/tekton/configs/pipelines): use checkout result as commit sha to downstream tasks

Reverts PingCAP-QE/ee-ops#1053

/approve

/review default


Added "Are you sure you want to mark all notifications as read?"

For fix https://github.com/flarum/core/issues/679

I have updated the name and moved the location for this (due to initial task changes)

It looks great.
Note to @tobscure: the year range should be updated in the LICENSE file if this PR is merged.

@maelsoucaze Done.


feat: example usage in codesandbox added

:tada: This PR is included in version 1.3.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[BUG] Add-PnPStoredCredential does not add an entry  in Credential Manager using PnP.PowerShell 2.12.0 and PowerShell 7.4.5.

Notice
Many bugs reported are actually related to the PnP Framework which is used behind the scenes. Consider carefully where to report an issue:

Are you using Invoke-PnPSiteTemplate or Get-PnPSiteTemplate? The issue is most likely related to the Provisioning Engine. The Provisioning engine is not located in the PowerShell repo. Please report the issue here: https://github.com/pnp/pnpframework/issues.
Is the issue related to the cmdlet itself, its parameters, the syntax, or do you suspect it is the code of the cmdlet that is causing the issue? Then please continue reporting the issue in this repo.
If you think that the functionality might be related to the underlying libraries that the cmdlet is calling (We realize that might be difficult to determine), please first double check the code of the cmdlet, which can be found here: https://github.com/pnp/powershell/tree/master/src/Commands. If related to the cmdlet, continue reporting the issue here, otherwise report the issue at https://github.com/pnp/pnpframework/issues

Reporting an Issue or Missing Feature
Please confirm what it is that your reporting
I am running "Add-PnPStoredCredential -Name "TestEntry" -Username" with a valid username and password. The command runs and does not throw any errors. However, there is no new entry created in the Credential Manager.
Expected behavior
Please describe what output you expect to see from the PnP PowerShell Cmdlets
That a new entry would be added to the Windows Credentials in the Credential Manager.
Actual behavior
Please describe what you see instead. Please provide samples of output or screenshots.
The command appears to run without any errors, but there is no new entry added.
Steps to reproduce behavior
Please include complete script or code samples in-line or linked from gists
Run Add-PnPStoredCredential with a -name, -username, and -password parameters.
Add-PnPStoredCredential -Name "yourlabel" -Username<EMAIL_ADDRESS>as is stated at https://pnp.github.io/powershell/articles/authentication.html#authenticating-with-pre-stored-credentials-using-the-windows-credential-manager-windows-only
What is the version of the Cmdlet module you are running?
(you can retrieve this by executing Get-Module -Name "PnP.PowerShell" -ListAvailable)
2.12 Core
Which operating system/environment are you running PnP PowerShell on?

[X ] Windows
[ ] Linux
[ ] MacOS
[ ] Azure Cloud Shell
[ ] Azure Functions
[ ] Other : please specify

What does Get-PnPStoredCredential -Name "yourlabel" return ? If I test the command it seems to work fine:

Hmm - seems to be working ok today.
... nevermind!
Thanks

Thanks for confirming, closing the issue.


Intent Receiver leaked when running the sample project 'platform_channel'

Activity com.example.platformchannel.MainActivity has leaked IntentReceiver com.example.platformchannel.MainActivity$3@dcbbce4 that was originally registered here. Ar
e you missing a call to unregisterReceiver()?
E  android.app.IntentReceiverLeaked: Activity com.example.platformchannel.MainActivity has leaked IntentReceiver com.example.platformchannel.MainActivity$3@dcbbce4 that
was originally registered here. Are you missing a call to unregisterReceiver()?
E      at android.app.LoadedApk$ReceiverDispatcher.(LoadedApk.java:1429)
E      at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:1210)
E      at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1488)
E      at android.app.ContextImpl.registerReceiver(ContextImpl.java:1461)
E      at android.app.ContextImpl.registerReceiver(ContextImpl.java:1449)
E      at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:623)
E      at com.example.platformchannel.MainActivity$1.onListen(MainActivity.java:40)
E      at io.flutter.plugin.common.EventChannel$IncomingStreamRequestHandler.onListen(EventChannel.java:193)
E      at io.flutter.plugin.common.EventChannel$IncomingStreamRequestHandler.onMessage(EventChannel.java:172)
E      at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:93)
E      at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:642)
E      at android.os.MessageQueue.nativePollOnce(Native Method)
E      at android.os.MessageQueue.next(MessageQueue.java:326)
E      at android.os.Looper.loop(Looper.java:165)
E      at android.app.ActivityThread.main(ActivityThread.java:6729)
E      at java.lang.reflect.Method.invoke(Native Method)
E      at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

The above error will be caught if  I exit from current Activity. So in this case, should MainActivity do unregisterReceiver  explicitly？

Hi @rayworks
Yes, explicitly. Try to unregister your receiver in the appropriate method of your receiver class.
The complementary method pairs are
onCreate - onDestroy
onResume - onPause
onStart  - onStop

if you register the receiver in the first one then unregister it in it's ending method.
Does it help to you?
If I understood you incorrectly, please describe your case.
Thank you

@VladyslavBondarenko
Thanks, I've made a PR for it.

Hi @VladyslavBondarenko and other direct contributors, any feedback for this PR ?


[11.x] Automatically generate markdown file name via Str::kebab for notification command

This PR improves the step for Notification Make Command when no initial inputs are provided (Refer to #52355). It would generate the markdown file name using Str::kebab instead of manual input.
The automatically generated approach also refers to the Mail Make Command, which similarly generates the markdown file name.
https://github.com/user-attachments/assets/4e3263c0-629d-4ec0-98dd-0976acc7650a
Refers to Mail Make Command:
https://github.com/user-attachments/assets/4b26f1cc-1f8d-4678-92c9-655caa2c1663

I think it's OK for now.


[docs] Update all demos of the docs to include "use client" when needed

Summary 💡
As of today, the nominal user experience for a developer starting with Material UI is the following:

Start with an example https://mui.com/material-ui/getting-started/example-projects/

https://analytics.google.com/analytics/web/#/analysis/p353089763/edit/IBVRQAiCT2mrgZwzpg9fFQ

27% are going with Next.js
Install it, use the first template.
Go to https://mui.com/material-ui/react-select/#basic-select copy the first demo
❌

So I think we should update all the demos in the docs to have "use client" where needed.
Examples 🌈

https://mui.com/base-ui/react-modal/#system-UseModal.tsx

https://ui.shadcn.com/docs/components/switch#form

Motivation 🔦
Better DX

This makes sense to me. @mj12albert we should likely extend the rsc:build cmd to apply the changes on the docs demos too.

I don't know about rsc:build. We already have docs:typescript:formatted that goes over the demos. I think it could make more sense to rename it so that we can only have one script & one pass on the demos, it could run faster.
Otherwise, the idea to automate this makes tone of sense. I think it should at least add "use client" if there are non compatible hooks used. I'm not sure we will be able to automatically detect non serializable props, so we might not be able to remove "use client" automatically.

To get a better sense of the relevance of this issue, I did a quick analysis on the downloads https://www.notion.so/mui-org/Monthly-meeting-2023-09-12-b55ca5b7944a4658822de0356a596f6c?pvs=4#b4af5477544d47d4bea7239aadacca70. I feel that it makes sense to add the "use client" at the expense of those who don't need them as it doesn't feel we focus enough on Next.js integration.
If we really have developers using Vite, CRA who push back, I think we could create a setting to automatically remove them:


ostreeuploader: upload a repo config to storage

In order to pull an ostree repo directly from GCS the source repo must
include its config file on the storage. Thus, the upload client and
ostreehub should allow the config file upload.
Signed-off-by: Mike Sul<EMAIL_ADDRESS>

Should we allow the client to dictate this or should the server be in complete control? The content is just something like
[core]
repo_version=1
mode=archive-z2

right?

I guess we already trust the client. It does sort of put the client in control of this instead of the server. I guess that doesn't matter much though.

I guess we already trust the client. It does sort of put the client in control of this instead of the server. I guess that doesn't matter much though.

Yes, I think so.


Lineage in Texera

Lineage in Texera
In Texera, we mainly focus on the lineage of operations on text data such as the keyword search and ML-based sentiment analysis. We aim at designing a general formal definition of this problem and enabling Texera to support lineage for the user-defined workflow.
Annotation Format
1. Database
A relational database ${\cal{D}}$ contains ${n}$ tables, denoted ${{\cal{D}}=\lbrace T_1, T_2, \cdots, T_n \rbrace }$. A table ${T_i}$ has the schema ${T_i=\lbrace a_1, a_2, \cdots, a_m\rbrace}$. It contains ${m}$ attributes. There are ${o}$ tuples in table ${T_i}$. These tuples are denoted as ${t_{i1}, t_{i2}, \cdots, t_{io}}$.
2. Annotation
There can be four levels annotation information:

(i) Cell level: It records the annotation information at the cell level. So the annotation information for different attribute values of the same tuple can be different. In the cell level, we distinguish different attribute values for the same tuple.
(ii) Tuple level: It records the annotation information at the tuple level. The annotation information for different attribute values of the same tuple are the same. But different tuples have different annotation information.
(iii) Attribute level: It records the annotation information at the attribute level. The annotation information of different attribute values should be different, no matter whether these values are in the same tuple or not.
(iv) Relation level: It records the annotation information at the relation level. It's very coarse-grained. It ignores the difference between tuples and the difference between attributes.

Suppose that we annotate the annotation information at the cell level. Now we should consider how to annotate the annotation information and when to annotate.

How to annotate the annotation information? We choose to annotate the annotation information at the cell level. For a table, we locate a cell of a tuple by the key of the tuple and the attribute of the cell. So the format of annotation is a triple $${\lbrace tableIndex, key, attributeIndex \rbrace}$$.
When to annotate the annotation information? As we choose to annotate the annotation information at the cell level, there can be enormous annotation information. What if we do not store the annotation information at the base table level? We can paste the annotation information when we access the data, and we just paste annotation information for the chosen data. I guess there may be some tradeoff for different pasting strategies according to the chosen data volume. It needs further consideration.

DictionaryMatcher
First of all, we can start with solving the lineage for one representative operator. We choose the dictionaryMacher operator and the twitter database.
Design and Implementation

Add a maven module named as "lineage". It aims at implementing the lineage function. In what follows, all codes that are related to lineage would be packaged in this module.
Add a package named as "edu.uci.ics.texera.lineage.annotation". It focuses on all the annotation functions.
Add a package named as "edu.uci.ics.texera.lineage.dataflow". It deals with the annotation propagation problems.
Add a package named as "edu.uci.ics.texera.lineage.analyzer". It aims at analyzing all the annotation information that we obtained along with the results and presenting the annotation information to users.

This


added dockerfile

I have added dockerfile and dockerized the project.
It is successfully running.
Please review and merge it.

Hi @rishvantsingh, thank you for your efforts to contribute to this project. There are a few things however about this work that are not in line with our requirements. That's in part due to the issue you looked at, not including those details; I'll update it.
But mostly this work is to dockize our feature branch react-conversion, with as close to as we can, the template we have https://github.com/DTS-STN/next-template

OKh I ll dockerize the react-conversion.


Rework network/src/protocol.rs to use libp2p's multiplexing

Right now what happens on the networking layer is:

We open a connection to a remote and negotiate an encryption and multiplexing protocol.
We open a single substream dedicated to the Substrate-specific protocol.
Whenever a message is received by this substream, we propagate its raw bytes to the handler in the network crate. The network crate can send back messages using a method on the NetworkService.

The ping, identify and Kademlia protocols of libp2p use an HTTP3-like scheme, where each request opens a new substream. More precisely: we open a substream, send the request, optionally wait the response, then close the substream.
However, the Substrate-specific protocol is an HTTP1-like scheme, where all the requests get pipelined into a single substream.
Moving this to a more HTTP3-like scheme would simplify the code, as libp2p's multiplexing would handle many details (like timeouts, or interleaving messages).

There needs to be a transition period so that we don't break the networking entirely.
My plan for this is to introduce a new protocol name.
Instead of proposing only /substrate/dot/0 or /substrate/bbq/0, we would also propose /substrate/multi/dot/0 or /substrate/multi/bbq/0. The version with /multi would have priority when it comes to negotiations.
If we notice that the remote accepts the version with /multi/, then every time we perform a request, we open new substream. If instead the remote doesn't accept it, we send the request on the first available substream.

Behaviour right now
When two nodes connect, the dialing side opens a Substrate substream. Once done, we report at the API layer that we are connected. The substream is then used by both sides for all communications. If the substream or the connection is closed by either side, we report to the API layer that we are disconnected.
If either node starts denying the other node, it does so by closing the unique substream. If the node is again accepting the other node, it reopens the substream.
New behaviour (backwards-compatible)
When two nodes connect, the dialing side opens a substream. Once done, we report at the API layer that we are connected. If it uses the old protocol name, then operate as previously.
If it uses the new protocol name, then both sides are now free to open as many substreams as they want. If we ever fail to open a substream, we report to the API layer that we are disconnected and immediately shut down all the other substreams without taking their response into account (this is to ensure state consistency, otherwise could report messages after we've reported disconnection).
If a node starts denying the other node, it does so by refusing new incoming substreams. If a node is again accepting the other node again, it forcefully opens a substream.


Fix progress off-by-1

Fixes this:
[0:00] NaN%  0B/s  0B / 0B  2 / 1 items  ETA 0:00

The number of "done" items is always one bigger than the number of "todo" items.
Looks like the root node is counted twice. I didn't quite understand the code, but I guess you are creating one node with an empty Path() and then another node below that with the name of the actual directory?
Not sure if this is the best way to fix it, but it does seem to work :-) Please suggest something else if there is a cleaner solution. This does feel kinda hacky.

I like your proposal, merged.


What kind of FilePicker are you guys looking for?

What kind of implementation are you guys looking for in the Utils section for the FilePicker? A native file picker for each platform? One for MacOS, Linux and Windows?
Let me know :)

Oh yeah, we (specifically, I) was planning on making it a native one for each platform.

Cool. Well if you'd like. I am using this code and I need a file picker so I need to implement something. So if you are not going to be doing it any time in a hurry, I'm going to be working on it. When it's done, I'll submit it here, if you haven't got something :)
I plan to also port a bunch of the C++ only extensions for the C++ dear Imgui out there to C#/MonoGame.ImGuiNet. So in time, if you have any room for them here or want to link to them in some way, that would be cool. Anyway, I'm going to plug away at some platform code :)

Okay so there is this project excellent clean C project:
https://github.com/mlabbe/nativefiledialog
and then there is this c# version of it:
https://github.com/Speykious/NativeFileDialogs.NET
so you can totally integrate this based on the license or pick from the project.
However, one thing that I have noticed is that this .net project is generated using an AST project called CppSharp which I had forgotten about... simply amazing, the whole project is generated form the c source code. Might need to investigate this.

So if you are not going to be doing it any time in a hurry, I'm going to be working on it

Yeah, sure, you can do that if you'd like!

I plan to also port a bunch of the C++ only extensions for the C++ dear Imgui out there to C#/MonoGame.ImGuiNet. So in time, if you have any room for them here or want to link to them in some way, that would be cool

Alright, we'll probably have room for it!


Can't set settings

My code is like this:
FirebaseFirestore.instance.settings(
    Settings(
      host: '<IP_ADDRESS>:5002',
      sslEnabled: false,
    ),
  );

But the compiler complains: "The expression doesn't evaluate to a function, so it can't be invoked."
It only finds the getter.. Am i doing something wrong or is it a bug?

FirebaseFirestore.instance.settings = Settings(
      host: '<IP_ADDRESS>:5002',
      sslEnabled: false,
    );

Oh.. my bad.. Must be tired.. lol Thanks


small fixes

Hi Alex,
not sure about the CMake stuff. I only fight with it occasionally.
Added _parallel suffix to readme so that the example works out of the box.
Have a nice day!

Thank you very much!


Added more samples for integration tests

@baywet Let me know if this is a useful format for providing scenarios that we need to support.
This PR is dependent on #834 so I will leave it in draft until you give me the ok to keep providing these scenarios

@darrelmiler no worries, I rebased your branch on dev so the discussions on #834 don't impact this set of changes. Let me know what you think.

I believe this is superseded by #1190, closing


web: fix selection behavior by using margin instead of padding

Hello @hyu,
Please review the following commits I made in branch nicks/ch4102/webui:
4aebdf9f2c5ac94e1362ced1e349357a90c9a7ec (2019-12-10 15:42:21 -0500)
web: fix selection behavior by using margin instead of padding
Fixes https://github.com/windmilleng/tilt/issues/2645

do you have any insight into how this works???

Haha, this is a mess right now. So, the ideal highlight behavior is...

There's one highlight that shows the lines associated with whatever you've selected.
There's another highlight that shows precisely what you've selected.

The idea behind (1) is that when you share a Snapshot with a highlight, the minimum unit of the highlight isn't chars, it's lines. Ex: if I share some lines with you on GitHub you see a neat yellow highlight
But, we have (2) because you still want to see what your selection is, so you can copy the precise bit that you want. Ex: you can select and copy the word initAnalytics within the yellow highlight
Sadly, the behavior for (1) broke during Matt's attempt to fix some of Lyft's log copy-pasting issues (with Jira? I think line breaks were lost): webui: use linebreaks instead of display: block to separate lines
So, @nicks — your fix above makes things less ugly than they currently are, but ideally I'd like to restore the original behavior above.

straightened this out offline! this is a chrome-only issue, so Han was confused


[REQUEST] add UserAgent header in CAPTCHA Block

can you, please, add a a userAgent header to the request sent in CAPTCHA Block when trying to download an image
reason:
so it can match the requests going on
and fix a problem with site with both CF and Captcha in the same time
thanks

CF already has got the UserAgent added in the solving bypass code.

thank you


Send data collected from camera through wifi issue

Hi igrr!
I use ov7670.OV7670 works pretty well.But i met issue about when I want to send out data collected through wifi.
I ony modify camer_print_fb to sending data collected from camera:
void camera_print_fb()
{
        gpio_set_level(33, 1);//gpio33 connects power down,pull high means turn off camera for save power.
	unsigned char start[5]="start";
	unsigned char end[3]="end";
	 int ret=0,ret_count=0;
	sendto(sock,start,SEND_START_LEN,0,(struct sockaddr*)&toAddr,sizeof(toAddr));
	for(int i=0;i<120;i++)
	{
				vTaskDelay(2/portTICK_RATE_MS);
				ret=sendto(sock,s_fb+i*480*2,960,0,(struct sockaddr*)&toAddr,sizeof(toAddr));
/*
                                while(ret<0)
				{
				                vTaskDelay(2/portTICK_RATE_MS);
						gpio_set_level(17, 1);

						ret=sendto(sock,s_fb+i*480*2,960,0,(struct sockaddr*)&toAddr,sizeof(toAddr));
						gpio_set_level(17, 0);

				}
	}
*/
                         if(ret<0)
                         {
                                   ret_count++;
                         }
	ets_printf("ret_count=%d\n",ret_count);
	ret_count=0;
	sendto(sock,end,SEND_END_LEN,0,(struct sockaddr*)&toAddr,sizeof(toAddr));
	gpio_set_level(33, 0);//gpio33 connects power powen,pull low means turn on camera for data cololected.

}

My network enviorment is good.Wifi LAN.There are only one sender and one recciever.Freertos's tick rate is 1000HZ.If I set delay time to 2 ms ,failure rate is high,failure reason if not enough spaces.So I need delay and retry many times. If I set delay time to 10ms,failure rate is low.But transimmite rate is low.
I did the test that only make wifi transimit data and the code has nothing to do with camera.2ms delay time is  enough,the failure rate is 0.
In camera project,when data is being sent,camera power down,DMA off.I don't know what else reason causes the issue.
By the way,I'd want to ask whether DMA's racing to control bus  can stop wifi core from getting data from memory.Whether the electric current can infect wifi core?
Thanks!
Best regards!

Amoth ago.I disable PWM of esp32,and make the clock of camera from external crystal.The issue has fixed.Maybe PWM infect the wifi function.

Looks like a duplicate of #27


Version for binary doesn't return the desired result

On doing grpc-health-probe -version to get the version of binary, we get the below error:
flag provided but not defined: -version

You're on an older version.


.eex formatting?

Does this exist? Nothing happens when I try to auto format a file with a .eex extension. Am I doing something wrong?

+1, having the same issue I get the following error message "There is no document formatter for 'HTML (Eex)'-files installed."

In your vscode settings, add this line.
“files.associations”: {"*.html.eex": “html”}
This will make vscode treat eex files as html files. You should now be able to format them however you format html.

but this will remove the <% ... %> formatting completely

That doesn't actually work since it will break the <% ... %> part, at least with Prettier. Is there any formatter that actually supports formatting .html.eex files correctly without introducing syntax errors?

I found a solution that works for me quite well.
I use the Beautify extension for VSCode.  And I added this in my user settings:
"beautify.language":` {
        "js": {
            "type": [
                "javascript",
                "json"
            ],
            "filename": [
                ".jshintrc",
                ".jsbeautifyrc"
            ]
        },
        "css": [
            "css",
            "scss"
        ],
        "html": {
            "type": [
                "htm",
                "html"
            ],
            "filename": [
                ".html.eex",
                ".html"
            ]
        },
    }

Then all my .html.eex files are formatted correctly. Except code that is in <% ... %> tags.

I think the issue is that the .html.eex syntax needs to be implemented as an "embedded language" rather than as it is? This way it's treated as an HTML file, but has embedded elixir in <% %> sections
https://code.visualstudio.com/api/language-extensions/syntax-highlight-guide

In settings.json, just add this
"files.associations": {
  "*.html.eex": "erb",
  "*.html.leex": "erb"
},

This will consider .eex/.leex files as ERB (Rails) and preserve formatting for <%= ... %>.

I don't know if I am supposed to share a different formater specialized for eex and leex, but this actually worked for me. Also saves formatting for <% %>. Also, I didn't have to change settings.json. However, I was required to gem install htmlbeautifier.
Here is the link: https://marketplace.visualstudio.com/items?itemName=ouven.vscode-yab-for-eex-leex
Repo: https://github.com/ouven/vscode-yab-for-eex-leex


Please update WDDM versions for W10 21h1/h2 and W11

Page has missing WDDM versions and build numbers. This is the central place to map WDDM versions to Windows versions, so its very key to keep updated.
Thank you

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 504c6508-5f83-159f-be97-2c19af548d04
Version Independent ID: 7b284030-fd41-c4e1-5455-514529df33ac
Content: _DXGK_WDDMVERSION (d3dkmddi.h) - Windows drivers
Content Source: wdk-ddi-src/content/d3dkmddi/ne-d3dkmddi-_dxgk_wddmversion.md
Product: windows-hardware
Technology: wdk-api-reference
GitHub Login: @lorihollasch
Microsoft Alias: loriwhip

@kevinf28, thanks for pointing this out! I've updated the page with the missing WDDM versions.


DATAFU-167: Support for minor spark version

Support for spark minor version and other upgraded version listed below.
2.2.3, 2.3.3, 2.3.4, 2.4.4, 2.4.5 (and up).
As part of this we have added the auth token support in py4j communication with java gateway.
JIRA: DATAFU-167
Refer: https://www.py4j.org/advanced_topics.html#authentication

Great work +1

I took care of the conflicts (I changed some of the build scripts and caused them) and manually merged this.


Convert more things to Rust or Go

The bot's memory usage is over 100MB per .NET process, and only 10-20MB per Go or Rust process. The application will be much more efficient if I rewrite some things in those languages. Separating things into different deployment units is also good for uptime.
The main drawback is that the DB models need to be rewritten in each language I write in, so it might be best to limit this to systems that don't touch the DB, or that can have entirely separate DB models.
This also isn't worthwhile unless I'm completely dismantling .NET processes, so this should only be done to… the queue module? That seems like the simplest unit to apply this to.

I also want the language bar on the repo to be more colorful 😶


Color by installation type

"I have two identical extensions installed, but which one is the development one?"

Great


update documentation overview extensions

This pull requests updates the documentation about extension with:

Apply lay-out of Community-based extenstion to the officially reported extensions
Apply sub-categories (Models, Subcommand, Data)
hyperlink fixes

I am getting a build error with the docs. The title Model extensions is used twice.

Yup, see my review.


Move data set loading outside constructor

Description
Param sources will be instatiated before corpora loading. Hence, set data set parameters to initial value during initialization and load data set during partition stage.
Issues Resolved
Testing

[ ] New functionality includes testing

[Describe how this change was tested]

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@IanHoang @gkamat Any idea why is this failing? s this transient?
https://github.com/opensearch-project/opensearch-benchmark/actions/runs/7717063834/job/21035304056?pr=452
Thanks


chore(content): dropped one sentence

Minor PR with truly tiny change

:tada: This PR is included in version 2.3.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Added getLabel method to Component.

Ok to provide that short-hand method? We will use that a lot within render.

Totally :)


No module named keras.preprocessing.image

I just study keras for a few days and I have met this problem. Is there anyone willing to help me to solve this problem.Thanks very much!

I have the same issue

@ludwikbukowski
sudo pip install keras
Requirement already satisfied: keras in /usr/lib/python2.7/site-packages
Requirement already satisfied: theano in /usr/lib/python2.7/site-packages (from keras)
Requirement already satisfied: pyyaml in /usr/lib64/python2.7/site-packages (from keras)
Requirement already satisfied: six in /usr/lib/python2.7/site-packages (from keras)
Requirement already satisfied: numpy>=1.7.1 in /usr/lib64/python2.7/site-packages (from theano->keras)
Requirement already satisfied: scipy>=0.11 in /usr/lib64/python2.7/site-packages (from theano->keras)

sudo pip install keras do not work

I have similar problem.
Import error: No module named keras.preprocessing.text

I have the same problem.
module 'keras.preprocessing' has no attribute 'text'

It worked after updating keras, tensorflow and importing from keras.preprocessing.text specifically
I know updating alone wasn't enough, but I don't know if it could have worked with just the import.
pip install -U pip tensorflow
from keras.preprocessing.text import Tokenizer

same problem here, see what I have did and my environment:
which python
pip install keras
conda install keras
conda list
python -c "import keras; print(keras.version)"

which python
/home/cpchung/anaconda2/bin/python
pip install keras
Requirement already satisfied: keras in /home/cpchung/.local/lib/python2.7/site-packages
Requirement already satisfied: six in /home/cpchung/.local/lib/python2.7/site-packages (from keras)
Requirement already satisfied: pyyaml in /home/cpchung/.local/lib/python2.7/site-packages (from keras)
Requirement already satisfied: theano in /home/cpchung/.local/lib/python2.7/site-packages (from keras)
Requirement already satisfied: numpy>=1.9.1 in /home/cpchung/.local/lib/python2.7/site-packages (from theano->keras)
Requirement already satisfied: scipy>=0.14 in /home/cpchung/.local/lib/python2.7/site-packages (from theano->keras)
conda install keras
Fetching package metadata .........
Solving package specifications: .

 All the files are however inside preprocessing (image.py, sequence.py, text.py) but only sequence can be imported.

you can update the keras to the lastest version.

It worked after updating keras, tensorflow and importing from keras.preprocessing.text specifically
I know updating alone wasn't enough, but I don't know if it could have worked with just the import.
pip install -U pip keras tensorflow
from keras.preprocessing.text import Tokenizer
this worked for me too!

AttributeError                            Traceback (most recent call last)
 in ()
1 m,n,r = bgr_image.shape
----> 2 arr = keras.preprocessing.image.reshape(m*n, -1)
3 df = pd.DataFrame(arr, columns=['b', 'g', 'r'])
4 df.describe()
AttributeError: module 'keras.preprocessing.image' has no attribute 'reshape'

I am getting this error

I am getting this error

Using Colab

I am getting error in importing any module from tensor.keras in my colab notebook.
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.preprocessing import image
I am getting a module not found error in the above line of codes.

i am getting the same

same problem just i write keras.preprocessing without tensorflow and working

from keras.preprocessing.image import img_to_array
ImportError: cannot import name 'img_to_array' from 'keras.preprocessing.image'

I am also getting an error -
ImportError: cannot import name 'pad_sequences' from 'keras.preprocessing.sequence'
Versions -
Ubuntu 20.04
Keras - 2.9.0
Tensorflow - 2.9.0
My code so far -
from keras.utils import to_categorical from keras.layers import Dense, Dropout, Conv1D, MaxPool1D, GlobalMaxPool1D, Embedding, Activation from keras.preprocessing.text import Tokenizer from keras.preprocessing.sequence import pad_sequences from keras.models import Sequential

https://www.tensorflow.org/api_docs/python/tf/keras/preprocessing
it is no longer supported in v2.12.0
you can try to downgrade the TF and keras to 2.7.0
following is a code example
!pip install tensorflow==2.7.0
!pip install keras==2.7.0
from tensorflow import keras
from tensorflow.keras.preprocessing.text import Tokenizer
import pandas as pd
import numpy as np

according to the TF document, there is new equivalent like TextVectorization (refer to the link at the bottom)
https://www.tensorflow.org/api_docs/python/tf/keras/preprocessing/text/Tokenizer
https://www.tensorflow.org/api_docs/python/tf/keras/layers/TextVectorization

pip install -U pip keras tensorflow
Not working this at my side.

Use  !pip install Keras-Preprocessing to install the package in colab

ModuleNotFoundError                       Traceback (most recent call last)
Cell In[1], line 2
1 from keras.utils import to_categorical
----> 2 from keras_preprocessing.image import load_img
3 from keras.models import Sequential
4 from keras.layers import Dense, Conv2D, Dropout, Flatten, MaxPooling2D
ModuleNotFoundError: No module named 'keras_preprocessing'
this problem i will phase how to solve please help anyone !


rename visualization to artifact preview

https://issues.redhat.com/browse/RHOAIENG-11413
Description
Alter artifact visualization to artifact preview

How Has This Been Tested?

Create a pipeline run having artifacts
Click on the artifact node and check whether the Visualization tab is renamed to Artifact preview

Test Impact
Updated the unit and cypress test

Request review criteria:

Self checklist (all need to be checked):

[x] The developer has manually tested the changes and verified that the changes work
[x] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[ ] The developer has added tests or explained why testing cannot be added (unit or cypress tests for related changes)

If you have UI changes:

[ ] Included any necessary screenshots or gifs if it was a UI change.
[ ] Included tags to the UX team if it was a UI/UX change.

After the PR is posted & before it merges:

[ ] The developer has tested their solution on a cluster by using the image produced by the PR to main

@pnaik1 I talked with @yannnz and this UX change is no longer wanted so i will close this PR.
/close


[WIP]Create error handling for ViewModel and View layer

close #26
Changes

Make ApiErrorViewHelper for common API error handling in ViewModels.

Screenshot

Before
After

Note

Codecov Report

Merging #45 (498b15e) into main (b3e7149) will increase coverage by 3.21%.
The diff coverage is 56.00%.

@@             Coverage Diff              @@
##               main      #45      +/-   ##
============================================
+ Coverage     30.04%   33.26%   +3.21%
- Complexity       20       26       +6
============================================
  Files            40       42       +2
  Lines           436      472      +36
  Branches         48       52       +4
============================================
+ Hits            131      157      +26
- Misses          304      313       +9
- Partials          1        2       +1

Impacted Files
Coverage Δ

...ava/com/tfandkusu/template/error/ApiErrorMapper.kt
100.00% <ø> (ø)

...ava/com/tfandkusu/template/view/home/HomeScreen.kt
0.00% <0.00%> (ø)

...kusu/template/viewmodel/UnidirectionalViewModel.kt
100.00% <ø> (ø)

...fandkusu/template/viewmodel/error/UseErrorState.kt
0.00% <0.00%> (ø)

...tfandkusu/template/viewmodel/home/HomeViewModel.kt
87.09% <62.50%> (-8.91%)
:arrow_down:

...emplate/viewmodel/error/ApiErrorViewModelHelper.kt
95.83% <95.83%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b3e7149...498b15e. Read the comment docs.


No previews for private files

Describe the bug
The plugin in its latest version, take the environment variables Booleans as strings hence breaking the logic for the boolean flags
To Reproduce
Steps to reproduce the behavior:

put a breakpoint in the node_modules provider.js file in the package folder every where basically and you will see that the flags are always true because conditions are checking !boolean on string wich always returns true.

Expected behavior
boolean should remain boolean and not be parsed as string.
Screenshots
I had to duplicate the plugin and run it locally and push this fix which is not the best one but it is workaround that works for me.

Desktop (please complete the following information):

OS: MacOS

Additional context
Should be addressed because this can cause a lot confusion and burn time because this all provider thing is complicated enough with many moving parts starting from google cloud, bucket, service account etc. i mean there can be enough failure points and caveats so we should try and make sure we help the devs :)
Also I would suggest to add more flags to the return signed URL method like the cname or virtually control as can be seen here:
https://googleapis.dev/nodejs/storage/latest/Bucket.html#getSignedUrl
And also make sure you mention that the dev needs to give the service account this role:
gcloud projects add-iam-policy-binding PROJECT_ID --member=serviceAccount:ACCOUNT_EMAIL --role=roles/iam.serviceAccountTokenCreator
Because without that the app wont be able to sign those urls.

Not sure what's going on but my plugin config sets publicFiles to true and checking in GCS, the uploaded files are not public either so I can't see them in the previews in Strapi. I manually updated the access on all files but this is not convenient. Hoping this can be fixed soon 🤞

Hi,
Seems this issue relate to PR https://github.com/strapi-community/strapi-provider-upload-google-cloud-storage/pull/165 from @Marc-Roig
I will try to improve documentation and feature, but if someone else has more time to do that ? :)
Thanks,

Also I would suggest to add more flags to the return signed URL method like the cname or virtually control as can be seen here:

Curious about the use case here, it would be useful to return the cname of the bucket when signing a URL? How would you use this data?

I will push a new release code today with a quick fix for your problem, not sure eval are the best solution... but I've no time to find something better 🤣
Please try the latest release : 4.10.2 and tell me if it's working fine !!
Thanks 👍

#release


AI Gateway API

Proposed changes
https://developers.cloudflare.com/ai-gateway/
Subject Matter
Add, delete, modify and query AI gateway
Content Location
I don't know whether it is possible to manage my AI gateway through API, so that I can easily add, delete, and query to my existing or future applications.
Additional information
No response

Yep, at https://developers.cloudflare.com/api/operations/aig-config-list-gateway.
Question... where were you looking before? We have it linked at the top level of the docs + added to the setup docs.... but it sounds like you were searching for somewhere else?


Once event being removed early causing an error

ol.events.unlistenByKey function is not taking into account pending removals created by key.target.removeEventListener. As a result when it does a splice to remove an event, the parameters of the for loop in the function ol.events.EventTarget.prototype.dispatchEvent are changed. This creates an error on the last iteration where ii is greater than the actual number of listeners. As a result an attempt is made to call a undefined listener at the end of the loop. The removal of the event should wait till the for loop is completed as would seem to be the purpose of the pendingRemovals variable. From my quick glance of the code, the root of the problem would seem to be in the ol.events.unlistenByKey function not taking into account pending removals properly.

Would you be able to provide a test case that shows the issue?

Certainly. This should do it.
<!doctype html>

Can you put this in a JSFiddle and provide some explanation on how to trigger the bug? Thanks.

Here is the jsfiddle: https://jsfiddle.net/gpwL4ztv/1/
No idea if it is working correctly in there or not. I'm not familiar with JS fiddle enough to know what is going on with it. Certainly willing to learn more about it if you have any pointers. The error occurs with the  initial execution of the code. From the scope of the JS fiddle, the error occurs with the execution of line 68: "source.addFeatures(features);"

Thanks for the good bug report and the test case. The problem should be fixed with #5291.


Cart Recovery

%cart_start%Click here to recover your cart.%cart_end%
Doesn't seem to work right, I put some items in my cart on my work PC, then later when I received the Abandoned Cart email the link showed an empty cart on my phone.

Can you tell me your abamdoned cart settings? And The C5 environment you have installed ?
I will try to reproduce as soon as possible, however I have limited time (moving to a different place).

concrete<IP_ADDRESS>
Community Store v.1.3.3
Looks like I have a Community Store upgrade to do, you think that could be the issue?
Send reminder after X days
1
Send reminder to
Everyone
Subject
Hello %billing_first_name%, did something happen?
Content
First of all, thank you for visiting our website.
This is a small reminder that you left your shopping cart with some products in it. Did something happen at the checkout?
We have saved your shopping cart.
%cart_start%Click here to recover your cart.%cart_end%
Please have 10% off your order on us! Please just use the code at checkout: CartDiscount
Header & Footer
I did not change these from the default
The Copy Main settings did work perfectly!


Fallback font is not working on macOS, special characters are missing from RS font

Please check if your issue is not a duplicate by searching existing issues
Describe the bug
When you have slain a barrows brother the checkmark turns into an 'f'. This also occurs when doing clue scrolls that require you to wear certain items and do emotes. If you are carrying the correct clue items it turns into an 'f' and not a checkmark.
To Reproduce
Steps to reproduce the behavior:

Doing barrows
Doing Uri emote clues (hard)
Any overlay that would have a "checkmark" in the overlay box.

Expected behavior
A checkmark inside the box instead of an 'f' outside the box
Screenshots
If applicable, add screenshots to help explain your problem.

Environment (please complete the following information):

OS: Macbook Pro
RuneLite version: [e.g <IP_ADDRESS>]
Launcher version: [e.g 1.6.0]

Additional context
Add any other context about the problem here, e.g. logs. Your client logs can usually be found in
C:\Users\<your_user_name>\.runelite\logs on Windows and ~/.runelite/logs on Linux and macOS.

I've worked around this issue with ca56ef10823aea1ecd275c0d3c3f9a3b17838ff9

I've worked around this issue with ca56ef10823aea1ecd275c0d3c3f9a3b17838ff9


add truffle cli bash completions

Description

Truffle is a nodejs tool used for development of the blockchain projects by provide an features like scaffolding, testing and deployment
Motivation and Context

Couldn't find any completion over internet. So tried my own
How Has This Been Tested?

Manually on the local system in macOS
Screenshots (if appropriate):

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[ ] If my change requires a change to the documentation, I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] If I have added a new file, I also added it to clean_files.txt and formatted it using lint_clean_files.sh.
[x] I have added tests to cover my changes, and all the new and existing tests pass.

@gaelicWizard Could you help me understand meaning of -X "!&*" option in complete command?

meaning of -X "!&*" option in complete

@tbhaxor, usually lots of people do complicated use of compgen something like:
options=('--version' '--help' '--verbose')
COMPREPLY=( $(compgen -W "${options[*]} -- "$cur") )

The point of code like this is to filter the possible completions to only match what has already been typed, as opposed to all possible options. E.g., don't offer --help when the user has already typed --v.
BUT, that whole mess is unnecessary. The completion function can just always return all available options without filtering, and then adding -X '!&*' tells Bash to filter the returned completions based on what the user already typed.
-X means to exclude anything matching the pattern from completions, ! means not, & means "the word already typed", and * means anything. So, exclude anything matching "not the word already typed with anything after". I only learned this a month or so ago!

Bash manual:

complete [-abcdefgjksuv] [-o comp-option] [-DEI] [-A action] [-G globpat] [-W wordlist]
[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] name [name ...]

-X filterpat
filterpat  is  a  pattern as used for pathname expansion.  It is applied to the list of possible
completions generated by the preceding options and arguments, and each completion matching  fil-
terpat  is  removed  from the list.  A leading ! in filterpat negates the pattern; in this case,
any completion not matching filterpat is removed.

The ampersand is not documented in the manual, but the web site says this:

After all of the possible completions are generated, any filter specified with the -X option is applied to the list. The filter is a pattern as used for pathname expansion; a ‘&’ in the pattern is replaced with the text of the word being completed.

@gaelicWizard - can you take a look at the failing test? this also happens to me locally (test/run not executing any tests..)

@NoahGorny I've been seeing this one intermittently of late, but can't reproduce on my own OSX 11.6. It's just skipping some tests!!!!
It's driving me batty. My best guess is that something in test_helper.bash is failing and exiting, but because it's not within a function it's not being reported. I'm going to try doing what BATS documentation recommends: load the common setup from within setup(), not the other way around. That way at least we'll get the error message...I think...

@gaelicWizard @NoahGorny This is kinda false positive as in this PR the test failed on macos 11 and in recent push it failed on macos 10.15. Check this

Not required


Got ERROR: "[$compile:noslot] No parent directive that requires a transclusion with slot name "true""

But i've solved it by making some changes into template and css. I've  replaced  with . And, after that, i made some changes in css.
My template now looks like

           {{wnd.title}}

                     <ng-transclude></ng-transclude>

And my css:
.ng-window-content__overflow {      overflow-y: auto;     padding: 15px; }
I hope this will help someone

I'm having this same problem.
In your comment above, its unclear what you replaced with what.
Can you clear up what exactly you changed in the css?

@vaninv Thank you!
I did a PR by your code.