text:
Error while building for ESP32C3

Hi there! When trying to build my project for the ESP32-C3 I get a build error for this dependency, the exact same code worked about a week ago:
error: failed to run custom build command for `esp-idf-sys v0.25.0`

Caused by:
  process didn't exit successfully: `/../../target/debug/build/esp-idf-sys-e1a1dd77045a2396/build-script-build` (exit status: 1)
  --- stdout
  Found compatible PlatformIO Core 5.2.3 -> /../.platformio/penv/bin/platformio
  cargo:rerun-if-changed=./patches/missing_xtensa_atomics_fix.diff
  cargo:rerun-if-changed=./patches/pthread_destructor_fix.diff
  cargo:rerun-if-changed=./patches/ping_setsockopt_fix.diff
  cargo:rerun-if-changed=/../.././sdkconfig.debug
  Warning! Ignore unknown configuration option `patches` in section [env]
  Processing debug (board: esp32-c3-devkitm-1; platform: espressif32; framework: espidf)
  --------------------------------------------------------------------------------
  Verbose mode can be enabled via `-v, --verbose` option
  CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32-c3-devkitm-1.html
  PLATFORM: Espressif 32 (3.3.2) > Espressif ESP32-C3-DevKitM-1
  HARDWARE: ESP32C3 160MHz, 320KB RAM, 4MB Flash
  DEBUG: Current (esp-prog) External (esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
  PACKAGES:
   - framework-espidf 3.40300.0 (4.3.0)
   - tool-cmake 3.16.4
   - tool-esptoolpy 1.30100.210531 (3.1.0)
   - tool-ninja 1.9.0
   - toolchain-riscv-esp 1.80400.0 (8.4.0)
  Reading CMake configuration...

  --- stderr
  -- Found Git: /usr/bin/git (found version "2.30.1 (Apple Git-130)")
  -- The C compiler identification is GNU 8.4.0
  -- The CXX compiler identification is GNU 8.4.0
  -- The ASM compiler identification is GNU
  -- Found assembler: /../.platformio/packages/toolchain-riscv-esp/bin/riscv32-esp-elf-gcc
  -- Check for working C compiler: /../.platformio/packages/toolchain-riscv-esp/bin/riscv32-esp-elf-gcc
  -- Check for working C compiler: /../.platformio/packages/toolchain-riscv-esp/bin/riscv32-esp-elf-gcc -- works
  -- Detecting C compiler ABI info
  -- Detecting C compiler ABI info - done
  -- Detecting C compile features
  -- Detecting C compile features - done
  -- Check for working CXX compiler: /../.platformio/packages/toolchain-riscv-esp/bin/riscv32-esp-elf-g++
  -- Check for working CXX compiler: /../.platformio/packages/toolchain-riscv-esp/bin/riscv32-esp-elf-g++ -- works
  -- Detecting CXX compiler ABI info
  -- Detecting CXX compiler ABI info - done
  -- Detecting CXX compile features
  -- Detecting CXX compile features - done
  -- Project is not inside a git repository, or git repository has no commits; will not use 'git describe' to determine PROJECT_VER.
  -- Building ESP-IDF components for target esp32c3
  -- Project sdkconfig file /../../target/riscv32imc-esp-espidf/debug/build/esp-idf-sys-fcab891b3db1348e/out/esp-idf/sdkconfig.debug
  -- Found PythonInterp: /../.platformio/penv/bin/python (found version "3.8.11")
  -- Found Perl: /usr/bin/perl (found version "5.30.3")
  -- App "esp-idf" version: 1
  -- Adding linker script /../.platformio/packages/framework-espidf/components/esp_rom/esp32c3/ld/esp32c3.rom.ld
  -- Adding linker script /../.platformio/packages/framework-espidf/components/esp_rom/esp32c3/ld/esp32c3.rom.api.ld
  -- Adding linker script /../.platformio/packages/framework-espidf/components/esp_rom/esp32c3/ld/esp32c3.rom.libgcc.ld
  -- Adding linker script /../.platformio/packages/framework-espidf/components/esp_rom/esp32c3/ld/esp32c3.rom.newlib.ld
  -- Adding linker script /../.platformio/packages/framework-espidf/components/esp_rom/esp32c3/ld/esp32c3.rom.version.ld
  -- Adding linker script /../.platformio/packages/framework-espidf/components/esp_rom/esp32c3/ld/esp32c3.rom.eco3.ld
  -- Adding linker script /../../target/riscv32imc-esp-espidf/debug/build/esp-idf-sys-fcab891b3db1348e/out/esp-idf/.pio/build/debug/esp-idf/esp32c3/esp32c3_out.ld
  -- Adding linker script /../.platformio/packages/framework-espidf/components/esp32c3/ld/esp32c3.project.ld.in
  -- Adding linker script /../.platformio/packages/framework-espidf/components/esp32c3/ld/esp32c3.peripherals.ld
  -- Components: __pio_env app_trace app_update asio bootloader bootloader_support bt cbor cmock coap console cxx driver efuse esp-tls esp32c3 esp_adc_cal esp_common esp_eth esp_event esp_gdbstub esp_hid esp_http_client esp_http_server esp_https_ota esp_https_server esp_hw_support esp_ipc esp_local_ctrl esp_netif esp_pm esp_ringbuf esp_rom esp_serial_slave_link esp_system esp_timer esp_websocket_client esp_wifi espcoredump esptool_py expat fatfs freemodbus freertos hal heap idf_test jsmn json libsodium log lwip mbedtls mdns mqtt newlib nghttp nvs_flash openssl partition_table protobuf-c protocomm pthread riscv sdmmc soc spi_flash spiffs src tcp_transport tcpip_adapter tinyusb unity vfs wear_levelling wifi_provisioning wpa_supplicant
  -- Component paths: /../../target/riscv32imc-esp-espidf/debug/build/esp-idf-sys-fcab891b3db1348e/out/esp-idf/.pio/build/debug/__pio_env /../.platformio/packages/framework-espidf/components/app_trace /../.platformio/packages/framework-espidf/components/app_update /../.platformio/packages/framework-espidf/components/asio /../.platformio/packages/framework-espidf/components/bootloader /../.platformio/packages/framework-espidf/components/bootloader_support /../.platformio/packages/framework-espidf/components/bt /../.platformio/packages/framework-espidf/components/cbor /../.platformio/packages/framework-espidf/components/cmock /../.platformio/packages/framework-espidf/components/coap /../.platformio/packages/framework-espidf/components/console /../.platformio/packages/framework-espidf/components/cxx /../.platformio/packages/framework-espidf/components/driver /../.platformio/packages/framework-espidf/components/efuse /../.platformio/packages/framework-espidf/components/esp-tls /../.platformio/packages/framework-espidf/components/esp32c3 /../.platformio/packages/framework-espidf/components/esp_adc_cal /../.platformio/packages/framework-espidf/components/esp_common /../.platformio/packages/framework-espidf/components/esp_eth /../.platformio/packages/framework-espidf/components/esp_event /../.platformio/packages/framework-espidf/components/esp_gdbstub /../.platformio/packages/framework-espidf/components/esp_hid /../.platformio/packages/framework-espidf/components/esp_http_client /../.platformio/packages/framework-espidf/components/esp_http_server /../.platformio/packages/framework-espidf/components/esp_https_ota /../.platformio/packages/framework-espidf/components/esp_https_server /../.platformio/packages/framework-espidf/components/esp_hw_support /../.platformio/packages/framework-espidf/components/esp_ipc /../.platformio/packages/framework-espidf/components/esp_local_ctrl /../.platformio/packages/framework-espidf/components/esp_netif /../.platformio/packages/framework-espidf/components/esp_pm /../.platformio/packages/framework-espidf/components/esp_ringbuf /../.platformio/packages/framework-espidf/components/esp_rom /../.platformio/packages/framework-espidf/components/esp_serial_slave_link /../.platformio/packages/framework-espidf/components/esp_system /../.platformio/packages/framework-espidf/components/esp_timer /../.platformio/packages/framework-espidf/components/esp_websocket_client /../.platformio/packages/framework-espidf/components/esp_wifi /../.platformio/packages/framework-espidf/components/espcoredump /../.platformio/packages/framework-espidf/components/esptool_py /../.platformio/packages/framework-espidf/components/expat /../.platformio/packages/framework-espidf/components/fatfs /../.platformio/packages/framework-espidf/components/freemodbus /../.platformio/packages/framework-espidf/components/freertos /../.platformio/packages/framework-espidf/components/hal /../.platformio/packages/framework-espidf/components/heap /../.platformio/packages/framework-espidf/components/idf_test /../.platformio/packages/framework-espidf/components/jsmn /../.platformio/packages/framework-espidf/components/json /../.platformio/packages/framework-espidf/components/libsodium /../.platformio/packages/framework-espidf/components/log /../.platformio/packages/framework-espidf/components/lwip /../.platformio/packages/framework-espidf/components/mbedtls /../.platformio/packages/framework-espidf/components/mdns /../.platformio/packages/framework-espidf/components/mqtt /../.platformio/packages/framework-espidf/components/newlib /../.platformio/packages/framework-espidf/components/nghttp /../.platformio/packages/framework-espidf/components/nvs_flash /../.platformio/packages/framework-espidf/components/openssl /../.platformio/packages/framework-espidf/components/partition_table /../.platformio/packages/framework-espidf/components/protobuf-c /../.platformio/packages/framework-espidf/components/protocomm /../.platformio/packages/framework-espidf/components/pthread /../.platformio/packages/framework-espidf/components/riscv /../.platformio/packages/framework-espidf/components/sdmmc /../.platformio/packages/framework-espidf/components/soc /../.platformio/packages/framework-espidf/components/spi_flash /../.platformio/packages/framework-espidf/components/spiffs /../../target/riscv32imc-esp-espidf/debug/build/esp-idf-sys-fcab891b3db1348e/out/esp-idf/src /../.platformio/packages/framework-espidf/components/tcp_transport /../.platformio/packages/framework-espidf/components/tcpip_adapter /../.platformio/packages/framework-espidf/components/tinyusb /../.platformio/packages/framework-espidf/components/unity /../.platformio/packages/framework-espidf/components/vfs /../.platformio/packages/framework-espidf/components/wear_levelling /../.platformio/packages/framework-espidf/components/wifi_provisioning /../.platformio/packages/framework-espidf/components/wpa_supplicant
  -- Configuring incomplete, errors occurred!
  See also "/../../target/riscv32imc-esp-espidf/debug/build/esp-idf-sys-fcab891b3db1348e/out/esp-idf/.pio/build/debug/CMakeFiles/CMakeOutput.log".
  See also "/../../target/riscv32imc-esp-espidf/debug/build/esp-idf-sys-fcab891b3db1348e/out/esp-idf/.pio/build/debug/CMakeFiles/CMakeError.log".

  fatal: not a git repository (or any of the parent directories): .git
  CMake Error at .pio/build/debug/CMakeFiles/git-data/grabRef.cmake:48 (file):
    file failed to open for reading (No such file or directory):

      /../../target/riscv32imc-esp-espidf/debug/build/esp-idf-sys-fcab891b3db1348e/out/esp-idf/.pio/build/debug/CMakeFiles/git-data/head-ref
  Call Stack (most recent call first):
    /../.platformio/packages/framework-espidf/tools/cmake/third_party/GetGitRevisionDescription.cmake:80 (include)
    /../.platformio/packages/framework-espidf/tools/cmake/third_party/GetGitRevisionDescription.cmake:90 (get_git_head_revision)
    /../.platformio/packages/framework-espidf/tools/cmake/project.cmake:49 (git_describe)
    /../.platformio/packages/framework-espidf/tools/cmake/project.cmake:392 (__project_get_revision)
    CMakeLists.txt:3 (project)

  ========================== [FAILED] Took 2.90 seconds ==========================
  Environment    Status    Duration
  -------------  --------  ------------
  debug          FAILED    00:00:02.905
  ==================== 1 failed, 0 succeeded in 00:00:02.905 ====================
  Error: No such file or directory (os error 2)

  Stack backtrace:
     0: std::backtrace_rs::backtrace::libunwind::trace
               at /rustc/c390d69a615f095208ac94841f3310268521b2ee/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
     1: std::backtrace_rs::backtrace::trace_unsynchronized
               at /rustc/c390d69a615f095208ac94841f3310268521b2ee/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
     2: std::backtrace::Backtrace::create
               at /rustc/c390d69a615f095208ac94841f3310268521b2ee/library/std/src/backtrace.rs:327:13
     3: anyhow::error::<impl core::convert::From<E> for anyhow::Error>::from
               at /../.cargo/registry/src/github.com-1ecc6299db9ec823/anyhow-1.0.45/src/error.rs:530:25
     4: <core::result::Result<T,F> as core::ops::try_trait::FromResidual<core::result::Result<core::convert::Infallible,E>>>::from_residual
               at /rustc/c390d69a615f095208ac94841f3310268521b2ee/library/core/src/result.rs:1915:27
     5: embuild::pio::project::SconsVariables::from_dump
               at /../.cargo/git/checkouts/embuild-c4499053a5b85aaf/f9fb48f/src/pio/project.rs:85:36
     6: build_script_build::build_driver::build
               at ./build/pio.rs:54:30
     7: build_script_build::main
               at ./build/build.rs:25:24
     8: core::ops::function::FnOnce::call_once
               at /rustc/c390d69a615f095208ac94841f3310268521b2ee/library/core/src/ops/function.rs:227:5
     9: std::sys_common::backtrace::__rust_begin_short_backtrace
               at /rustc/c390d69a615f095208ac94841f3310268521b2ee/library/std/src/sys_common/backtrace.rs:123:18
    10: std::rt::lang_start::{{closure}}
               at /rustc/c390d69a615f095208ac94841f3310268521b2ee/library/std/src/rt.rs:146:18
    11: core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once
               at /rustc/c390d69a615f095208ac94841f3310268521b2ee/library/core/src/ops/function.rs:259:13
    12: std::panicking::try::do_call
               at /rustc/c390d69a615f095208ac94841f3310268521b2ee/library/std/src/panicking.rs:403:40
    13: std::panicking::try
               at /rustc/c390d69a615f095208ac94841f3310268521b2ee/library/std/src/panicking.rs:367:19
    14: std::panic::catch_unwind
               at /rustc/c390d69a615f095208ac94841f3310268521b2ee/library/std/src/panic.rs:133:14
    15: std::rt::lang_start_internal::{{closure}}
               at /rustc/c390d69a615f095208ac94841f3310268521b2ee/library/std/src/rt.rs:128:48
    16: std::panicking::try::do_call
               at /rustc/c390d69a615f095208ac94841f3310268521b2ee/library/std/src/panicking.rs:403:40
    17: std::panicking::try
               at /rustc/c390d69a615f095208ac94841f3310268521b2ee/library/std/src/panicking.rs:367:19
    18: std::panic::catch_unwind
               at /rustc/c390d69a615f095208ac94841f3310268521b2ee/library/std/src/panic.rs:133:14
    19: std::rt::lang_start_internal
               at /rustc/c390d69a615f095208ac94841f3310268521b2ee/library/std/src/rt.rs:128:20
    20: std::rt::lang_start
               at /rustc/c390d69a615f095208ac94841f3310268521b2ee/library/std/src/rt.rs:145:17
    21: <unknown>
               at ./build/build.rs:52:6

This errors with all versions of esp-idf-sys, the latest and the oldest I could find that satisfied the API I need.
I am building without the native feature.

Probably the same as #5.

Ah you're right! This weird! But thanks for solving this :)

repo: esp-rs/esp-idf-sys


text:
Not able to flash via cargo espflash save-image... && espflash flash ... ("Supplied elf image is not valid")

The following works perfectly:
$ cargo espflash flash --release --monitor

But to save the app image and then flash it in a separate step fails:
$ cargo espflash save-image --release --chip esp32c3 firmware.bin
...
Chip type:         esp32c3
Merge:             false
Skip padding:      false
App/part. size:    250,720/4,128,768 bytes, 6.07%

$ espflash flash --partition-table partitions.csv firmware.bin
...
Error: espflash::invalid_elf

  × Supplied elf image is not valid
  ╰─▶ Did not find ELF magic number
  help: Try running `cargo clean` and rebuilding the image

I have a friend with an ESP32C3 based device that I built for them, and I want them to be able to flash an upgraded firmware image to the thing. But they don't have Rust or any type of development setup. I was hoping to be able to just give them the app image and instruct them how to download the espflash  binary here from github and get it on the thing. But this fails and I'm not sure what I'm doing wrong.

I have also tried save-image in combination with write-bin, also without success, but a different error:
$ cargo espflash save-image --release --merge --chip esp32c3 firmware.bin
...

$ espflash write-bin 123 firmware.bin --port /dev/ttyACM0
[2023-03-08T19:09:07Z INFO ] Serial port: '/dev/ttyACM0'
[2023-03-08T19:09:07Z INFO ] Connecting...
[2023-03-08T19:09:07Z INFO ] Using flash stub
[2023-03-08T19:09:07Z INFO ] Serial port: '/dev/ttyACM0'
[2023-03-08T19:09:07Z INFO ] Connecting...
Error: espflash::serial_error

  × Failed to open serial port /dev/ttyACM0
  ├─▶ Failed to open serial port /dev/ttyACM0
  ├─▶ Error while connecting to device
  ├─▶ IO error while using serial port: Device or resource busy
  ╰─▶ Device or resource busy

But the very same device is not at all busy when flashing directly with cargo espflash flash ..., so :shrug:

Waaaait a minute. This was simpler than I thought:
$ cargo build --release
$ espflash flash ~/.cargo/target/riscv32imc-esp-espidf/release/my-firmware-lol

Tada! :partying_face:
I had assumed save-image would output the correct format. Since that was what I had to use when OTA-flashing my other devices, as I figured out when writing esp-ota.

source: gharchive/issue

repo: esp-rs/espflash

license_type: permissive

license_source: github-api


text:
Rewritten section on injection mechanism, and other minor tweaks

Rewrite the section on injection mechanisms to try and make things clearer, to reduce user queries, and inappropriate use of force_mode: keys.
Options
Add opening brackets/parentheses/curly brackets and angle brackets as word separators.
Regex
Correct regex example to accept digits only, remove unnecessary lazy quantifiers, add example of direct variable use.

Congratz!

source: gharchive/pull-request

authors: AucaCoyan smeech

repo: espanso/website

license: MIT


text:
Add abort on unmount to get rid of potential memory leak

Prevents:

Warning: Can’t call setState (or forceUpdate) on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.

Coverage decreased (-0.7%) to 94.03% when pulling 33210fb920c5780b8193b32a74c1b6e24e03b26c on joeydebreuk:add_abort_fetch_on_unmount into 380d74aa94fddd6aff7802367482c930c44ade60 on esphen:master.

Looks great, thanks for the PR! Merging and releasing a new version soon

authors: coveralls esphen joeydebreuk

repo: esphen/fetch-hoc

license: mit

license_source: bigquery


text:
100 harden code unit tests and functional tests

Closes out #100

Merging pull request even though failing tests, because need to find out how to use resume.tx in the CI github pipeline


text:
bugfix in v4.4 adds semver incompatible change to wifi_scan_config_t (IDFGH-10699)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.
v4.4
Operating System used.
Linux
How did you build your project?
Other (please specify in More Information)
If you are using Windows, please specify command line type.
None
What is the expected behavior?
(Building esp-idf with rust esp-idf-sys and esp-idf-svc in a rust project, see details below.)
Expected behavior: Building the esp-idf-sys and esp-idf-svc libary successfully.
What is the actual behavior?
Build fails because the last bugfix (4fc8964) on v4.4  introduced a breaking change.
The added field home_chan_dwell_time in wifi_scan_config_t breaks the build and doesn't seem to be semver compatible.
Steps to reproduce.

Create a rust project from the official esp-idf-template

esp32c3 mcu
default settings (esp-idf v4.4, cargo)

hit $ cargo build
Build fails because a initializer in the rust esp-idf-svc isn't aware of the added field in the wifi_scan_config_t

Build or installation Logs.
Compiling esp-idf-svc v0.46.0
error[E0063]: missing field `home_chan_dwell_time` in initializer of `esp_idf_sys::wifi_scan_config_t`
  --> /home/marvin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/esp-idf-svc-0.46.0/src/wifi.rs:93:13
   |
93 |             Self {
   |             ^^^^ missing `home_chan_dwell_time`

For more information about this error, try `rustc --explain E0063`.
error: could not compile `esp-idf-svc` (lib) due to previous error

More Information.
No response

Hi @MG-96,
IDF project aims for C source compatibility (described here) in minor and bugfix releases. As mentioned in that page, we do allow adding new structure members or changing the order of members. This is not a breaking change for C code since we require the configuration structures passed to IDF APIs to be zero-initialized. Another case may be with a change from an exported C function to an inline C function or a function-like preprocessor macro — a backwards compatible change for C code.
Unfortunately we can't give stronger compatibility guarantees at the moment, such that would be sufficient for the purpose of stable Rust bindings. The best I can offer is that we could set up a scheduled CI pipeline in https://github.com/esp-rs/esp-idf-sys to get notified of any breakage quickly.
(cc @ivmarkov, please comment if you have any opinion about this.)

If indeed ESP IDF is consistently following the "if you zero-initialize the remaining (or all) fields of a configuration structure - that's OK" rule, then we have a (relatively easy way) to keep the Rust bindings (not esp-idf-sys itself, but user code based on esp-idf-sys as well as the higher-level bindings in esp-idf-hal and esp-idf-svc) from breaking.
Bindgen generates for us a Default implementation/constructor for every ESP IDF struct bound by esp-idf-sys. This constructor happens to initialize all fields of the struct to zero.
\What that means is that when the user (or we - in the higher level esp-idf-* crates) initialize ESP IDF structures, we just have to follow this pattern:
let config = esp_idf_sys::wifi_scan_config_t {
    foo: 1,
    bar: true,
    ..Default::default()
};

... or if I understand you correctly, even this all-zeros initialization
let config: esp_idf_sys::wifi_scan_config_t = Default::default();

... would be correct and would result in ESP IDF picking meaningful defaults for all fields.
The thing is - I just wasn't aware that ESP IDF is following the "0 is OK" rule consistently everywhere.
Specifically for the wifi_scan_config_t structure (where we can't look into the ESP IDF code, as this is the Wifi binary BLOB) - would you confirm that putting zeroes in its field is OK. And specifically for the home_chan_dwell_time?

@igrr ^^^

@ivmarkov I'm running into this as well. Is there a corresponding issue open against esp-rs/esp-idf-svc for this?

No but there is this fix: https://github.com/esp-rs/esp-idf-svc/commit/42e60e8c3fcca670632b9653c790fd8efe475aac
Can you test with latest esp-idf-hal (from master)?

@igrr I think we should close this. If you could only confirm my question here.

Specifically for the wifi_scan_config_t structure (where we can't look into the ESP IDF code, as this is the Wifi binary BLOB) - would you confirm that putting zeroes in all its fields is OK? And specifically for the home_chan_dwell_time?

I think we always handle newly introduced fields this way, but some existing fields may not support 0 as default value. As a contrived example, esp_timer_create won't be happy if we pass 0 as a value of callback field. Another example might be freq_hz ledc_timer_config_t.

I was going to suggest marking all structs in esp_idf_sys as non-exhaustive, but unfortunately that forbids constructing them with a StructExpression (including with functional update syntax). (Does Bindgen have functionality to do the non-exhaustive declaration?)
Making it clear, that one always has to do a functional update to initialize structs from esp_idf_sys, or finding another solution to prevent such bugs from occurring would be nice.
Thanks @igrr for clarifying things.

Is there a Issue or something other to track this in esp-idf-sys?
Then I would close this issue here.

Your original problem is fixed since a month or so in esp-idf-sys. Adding ..Default::default() everywhere I would do incrementally. If you want to do it in one shot, please open PRs against esp-idf-hal and esp-idf-svc, and you can of course open issues in these projects to track this effort.
And yes, I think this one should be closed.

repo: espressif/esp-idf


text:
ESP32S3 esp_ota_end() results in TG1WDT_SYS_RESET (IDFGH-11831)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

General issue report
I am implementing firmware update on a custom board using ESP32S3 and USB HID. I am able to successfully download the firmware to the chip (confirmed with reading back the flash), but when I call esp_ota_end(), the chip reboots without printing a backtrace:
I (343392) ao_firmware_updater: Progress: 99.74%
I (343732) ao_firmware_updater: Progress: 99.91%
I (344012) ao_firmware_updater: Progress: 100.00%
I (344012) ao_firmware_updater: Finished binary image write, validating...
D (345012) esp_image: reading image header @ 0x110000
D (345012) esp_image: image header: 0xe9 0x06 0x02 0x03 4037599c
I (345012) esp_image: segment 0: paddr=00110020 vaddr=3c060020 size=20fbch (135100) map
D (345012) esp_image: free data page_count 0x000001f7
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x8 (TG1WDT_SYS_RST),boot:0xb (SPI_FAST_FLASH_BOOT)
Saved PC:0x4037f94b
0x4037f94b: panic_handler at /home/null/esp/esp-idf/components/esp_system/port/panic_handler.c:147 (discriminator 3)

SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce3810,len:0x1f84
load:0x403c9700,len:0xd94
load:0x403cc700,len:0x3194
SHA-256 comparison failed:
Calculated: 304a058dc63485772d4d2ceecf5007394c8dfbf8b004e575f7570f45121d3c95
Expected: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Attempting to boot anyway...
entry 0x403c994c
I (47) boot: ESP-IDF v5.0.4-265-gf333925342 2nd stage bootloader

Attaching a JTAG debugger shows where the crash happens:
.
I am able to trace the code up to the loop in line 639 of esp_image_format.c. Reset happens during execution of said loop. With debugger attached, code ends in panic_handlers.c; otherwise the device reboots.
The IWDT timeout period is 1000 ms. The situation does not change when using the master branch as well.
Attached is a boot log with DEBUG level.
boot_log.txt

try reading flash from 0x110000 & compare with original OTA image. if the contents do not match then image was not write correctly. I was facing similar issue

I've done that using esptool.py, dumped flash and compared the data at 0x110000 with the binary I was sending, which is how I confirmed esp_ota_write does its job.

Issue fixed - I was doing memcpy to a string literal, which passed with no warnings. I rectified the offending memcpy and now esp_ota_end does not fail.


text:
I want to ask about devkit v4 (IDFGH-13167)

so in this picture it can be seen that if you have these two problems then the yellow component is removed, but I checked in my esp32 did not find a yellow component only a tin with no components there, so what should i do please help

Does the board function correctly otherwise?


text:
OTA时，使用电信4g的手机给esp32c3开热点，无法通过http来下载固件，会报超时错误 (IDFGH-13874)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.
v5.0
Espressif SoC revision.
ESP32-C3 chip revision: v0.3
Operating System used.
Windows
How did you build your project?
VS Code IDE
If you are using Windows, please specify command line type.
None
Development Kit.
ESP32-C3-DevKitc-02v1.1
Power Supply used.
External 5V
What is the expected behavior?
我使用OTA的例程，将esp连接到我手机的热点，当我用手机的电信5g时，ota的过程是正常的。但当我将手机的流量改为电信4g，重新运行ota，这时就无法下载固件，根据log看连接上http以后，下载数据会一直报超时。我尝试过修改esp_http_client_config_t结构体里的timeout_ms参数，但依然会报超时，改大以后只是等待超时的时间更久了。
What is the actual behavior?
无法下载下来固件
Steps to reproduce.

手机用电信4g流量，开热点
esp连接上热点
开始ota
http连接上以后下载固件包下载不下来
...

Debug Logs.
以下是开始OTA时的log
simple_ota_example: Starting logger OTA task
I (64689) simple_ota_example: Attempting to download update from http://smartenergy.csisolar.com/device/firmware/2024/10/12/1844985603830824961/be62fc8cfaf1456ea2f735bf6d8f5731.bin
D (64709) HTTP_CLIENT: Begin connect to: http://smartenergy.csisolar.com:80
D (64719) esp-tls: host:smartenergy.csisolar.com: strlen 24
D (64919) esp-tls: [sock=55] Resolved IPv4 address: 117.85.70.238
D (64919) esp-tls: Enable TCP keep alive. idle: 5, interval: 5, count: 3
D (64919) esp-tls: [sock=55] Connecting to server. HOST: smartenergy.csisolar.com, Port: 80
simple_ota_example: HTTP_EVENT_ON_CONNECTED
D (65119) HTTP_CLIENT: Write header[3]: GET /device/firmware/2024/10/12/1844985603830824961/be62fc8cfaf1456ea2f735bf6d8f5731.bin HTTP/1.1
User-Agent: ESP32 HTTP Client/1.0
Host: smartenergy.csisolar.com
Content-Length: 0

D (65129) simple_ota_example: HTTP_EVENT_HEADER_SENT
 HTTP_CLIENT: on_message_begin
D (65649) HTTP_CLIENT: HEADER=Server:Tengine
D (65649) simple_ota_example: HTTP_EVENT_ON_HEADER, key=Server, value=Tengine
D (65649) HTTP_CLIENT: HEADER=Content-Type:application/octet-stream
D (65659) simple_ota_example: HTTP_EVENT_ON_HEADER, key=Content-Type, value=application/octet-stream
D (65659) HTTP_CLIENT: HEADER=Content-Length:1139424
D (65669) simple_ota_example: HTTP_EVENT_ON_HEADER, key=Content-Length, value=1139424
D (65679) HTTP_CLIENT: HEADER=Connection:keep-alive
D (65679) simple_ota_example: HTTP_EVENT_ON_HEADER, key=Connection, value=keep-alive
D (65689) HTTP_CLIENT: HEADER=Date:Sat, 12 Oct 2024 06:56:39 GMT
D (65689) simple_ota_example: HTTP_EVENT_ON_HEADER, key=Date, value=Sat, 12 Oct 2024 06:56:39 GMT
D (65699) HTTP_CLIENT: HEADER=x-oss-request-id:670A1DA757D514373724D5F6
D (65709) simple_ota_example: HTTP_EVENT_ON_HEADER, key=x-oss-request-id, value=670A1DA757D514373724D5F6
D (65719) HTTP_CLIENT: HEADER=x-oss-cdn-auth:success
D (65719) simple_ota_example: HTTP_EVENT_ON_HEADER, key=x-oss-cdn-auth, value=success
D (65729) HTTP_CLIENT: HEADER=Accept-Ranges:bytes
D (65729) simple_ota_example: HTTP_EVENT_ON_HEADER, key=Accept-Ranges, value=bytes
D (65739) HTTP_CLIENT: HEADER=x-oss-object-type:Normal
D (65749) simple_ota_example: HTTP_EVENT_ON_HEADER, key=x-oss-object-type, value=Normal
D (65749) HTTP_CLIENT: HEADER=x-oss-storage-class:Standard
D (65759) simple_ota_example: HTTP_EVENT_ON_HEADER, key=x-oss-storage-class, value=Standard
D (65769) HTTP_CLIENT: HEADER=Content-MD5:4/dGBVwigJKwF6FqRfwQBQ==
D (65769) simple_ota_example: HTTP_EVENT_ON_HEADER, key=Content-MD5, value=4/dGBVwigJKwF6FqRfwQBQ==
D (65779) HTTP_CLIENT: HEADER=x-oss-server-time:28
D (65789) simple_ota_example: HTTP_EVENT_ON_HEADER, key=x-oss-server-time, value=28
D (65789) HTTP_CLIENT: HEADER=Via:cache14.l2cn1833[153,154,304-0,H], cache21.l2cn1833[155,0], cache6.cn7596[252,263,200-0,H], cache8.cn7596[266,0]
D (65809) simple_ota_example: HTTP_EVENT_ON_HEADER, key=Via, value=cache14.l2cn1833[153,154,304-0,H], cache21.l2cn1833[155,0], cache6.cn7596[252,263,200-0,H], cache8.cn7596[266,0]
HTTP_CLIENT: HEADER=Vary:Origin
D (65829) simple_ota_example: HTTP_EVENT_ON_HEADER, key=Vary, value=Origin
D (65839) HTTP_CLIENT: HEADER=ETag:"E3F746055C228092B017A16A45FC1005"
D (65849) simple_ota_example: HTTP_EVENT_ON_HEADER, key=ETag, value="E3F746055C228092B017A16A45FC1005"
D (65859) HTTP_CLIENT: HEADER=Last-Modified:Sat, 12 Oct 2024 06:17:00 GMT
D (65859) simple_ota_example: HTTP_EVENT_ON_HEADER, key=Last-Modified, value=Sat, 12 Oct 2024 06:17:00 GMT
D (65869) HTTP_CLIENT: HEADER=x-oss-hash-crc64ecma:956103214857714626
D (65879) simple_ota_example: HTTP_EVENT_ON_HEADER, key=x-oss-hash-crc64ecma, value=956103214857714626
D (65889) HTTP_CLIENT: HEADER=Age:0
D (65889) simple_ota_example: HTTP_EVENT_ON_HEADER, key=Age, value=0
D (65909) HTTP_CLIENT: HEADER=Ali-Swift-Global-Savetime:1728716199
D (65909) simple_ota_example: HTTP_EVENT_ON_HEADER, key=Ali-Swift-Global-Savetime, value=1728716199
D (65919) HTTP_CLIENT: HEADER=X-Cache:HIT TCP_REFRESH_HIT dirn:2:868419196
D (65929) simple_ota_example: HTTP_EVENT_ON_HEADER, key=X-Cache, value=HIT TCP_REFRESH_HIT dirn:2:868419196
D (65939) HTTP_CLIENT: HEADER=X-Swift-SaveTime:Sat, 12 Oct 2024 06:56:39 GMT
D (65939) simple_ota_example: HTTP_EVENT_ON_HEADER, key=X-Swift-SaveTime, value=Sat, 12 Oct 2024 06:56:39 GMT
D (65949) HTTP_CLIENT: HEADER=X-Swift-CacheTime:237
D (65959) simple_ota_example: HTTP_EVENT_ON_HEADER, key=X-Swift-CacheTime, value=237
D (65959) HTTP_CLIENT: HEADER=Timing-Allow-Origin:*
D (65969) simple_ota_example: HTTP_EVENT_ON_HEADER, key=Timing-Allow-Origin, value=*
D (65979) HTTP_CLIENT: HEADER=EagleId:7555469c17287161992297927e
D (65979) simple_ota_example: HTTP_EVENT_ON_HEADER, key=EagleId, value=7555469c17287161992297927e
D (65989) HTTP_CLIENT: http_on_headers_complete, status=200, offset=864, nread=864
D (65999) HTTP_CLIENT: http_on_body 496
I (65999) HTTP_CLIENT: Body received in fetch header state, 0x3fcca46c, 496
D (66009) simple_ota_example: HTTP_EVENT_ON_DATA, len=496
D (66009) HTTP_CLIENT: content_length = ld
I (66019) esp_https_ota: Starting OTA...
I (66019) esp_https_ota: Writing to partition subtype 17 at offset 0x190000
D (66029) HTTP_CLIENT: Data processed ld != Data specified in content length ld
D (66029) HTTP_CLIENT: is_data_remain=1, is_chunked=0, content_length=ld
D (66049) HTTP_CLIENT: need_read=528, byte_to_read=528, rlen=528, ridx=496
D (66049) HTTP_CLIENT: http_on_body 528
D (66049) simple_ota_example: HTTP_EVENT_ON_DATA, len=528
D (66129) esp_https_ota: Written image length 2048
D (66129) HTTP_CLIENT: is_data_remain=1, is_chunked=0, content_length=ld
D (66129) HTTP_CLIENT: need_read=4096, byte_to_read=4096, rlen=4096, ridx=0
D (66129) HTTP_CLIENT: http_on_body 4096
D (66139) simple_ota_example: HTTP_EVENT_ON_DATA, len=4096
D (66219) esp_https_ota: Written image length 6144
D (66219) HTTP_CLIENT: is_data_remain=1, is_chunked=0, content_length=ld
D (66219) HTTP_CLIENT: need_read=4096, byte_to_read=4096, rlen=1648, ridx=0
D (66229) HTTP_CLIENT: http_on_body 1648
D (66229) simple_ota_example: HTTP_EVENT_ON_DATA, len=1648
D (66229) HTTP_CLIENT: is_data_remain=1, is_chunked=0, content_length=ld

这里等待五秒后就会报select超时
D (81249) transport_base: poll_read: select - Timeout before any socket was ready!
D (81249) HTTP_CLIENT: need_read=2448, byte_to_read=2448, rlen=0, ridx=1648
D (81249) HTTP_CLIENT: Connection timed out before data was ready!
D (81259) esp_https_ota: Written image length 7792
D (81259) HTTP_CLIENT: is_data_remain=1, is_chunked=0, content_length=ld

More Information.
No response

Thanks for reporting.

Hello @iamugly ,
Thank you for reaching out with the details about the OTA timeout issue you're facing on the 4G network.
We understand that OTA works on the 5G network but encounters timeouts on 4G, even after adjusting the timeout settings. This could potentially be related to network-specific factors such as latency, packet loss, or bandwidth limitations, but to investigate this further, we would need more information.
To assist you better, could you please provide the following:

A small test example (or a patch file) that we can use to reproduce the issue on our side. If the issue can be recreated using the standard OTA example in ESP-IDF, it would be helpful to have any specific modifications you made.
The sdkconfig file you are using for your project to help us understand the configuration in detail.

We will review this information and work on reproducing and diagnosing the issue. Additionally, if you have any logs or further details on the error, they could provide valuable insights.
Looking forward to your response.

Hello @iamugly ,
Thank you for reaching out with the details about the OTA timeout issue you're facing on the 4G network.
We understand that OTA works on the 5G network but encounters timeouts on 4G, even after adjusting the timeout settings. This could potentially be related to network-specific factors such as latency, packet loss, or bandwidth limitations, but to investigate this further, we would need more information.
To assist you better, could you please provide the following:

A small test example (or a patch file) that we can use to reproduce the issue on our side. If the issue can be recreated using the standard OTA example in ESP-IDF, it would be helpful to have any specific modifications you made.
The sdkconfig file you are using for your project to help us understand the configuration in detail.

We will review this information and work on reproducing and diagnosing the issue. Additionally, if you have any logs or further details on the error, they could provide valuable insights.
Looking forward to your response.

Hello @nileshkale123 ，
Thanks for your reply.
After my attempts, I found that this is not a problem caused by the difference between 4g and 5g, but only the telecom 4g operator will have this problem. When I used a 4g phone from another carrier to turn on the esp hotspot, the ota function was also normal.
I have the same problem with "simple_ota_example",Here is my sdkconfig file.
sdkconfig.txt
I also used wireshark to capture the upgrade package, which may be helpful for you to analyze the problem
simple_ota.zip

Hello @iamugly ,
Could you try applying the following patch and let me know your observations? If the issue persists, please share the detailed debug logs.
quick_patch.txt

Hello @iamugly ,
Could you try applying the following patch and let me know your observations? If the issue persists, please share the detailed debug logs. quick_patch.txt

Hi @nileshkale123
I used your patch, but the problem persists. The following is debug logs
ota_log.zip

Hello @iamugly ,
Sorry for the late reply.
Could you please try one more time by increasing client timeout at. You can set timeout in  this way.

Hello @iamugly ,
Sorry for the late reply.
Could you please try one more time by increasing client timeout at. You can set timeout in this way.

I changed the timeout but still couldn't download

Hello @iamugly ,
I successfully downloaded your hosted OTA image without any issues on my side with simple_ota_example.
However, when I used your provided sdkconfig file, I encountered a different issue than you mentioned during the OTA process. Could you please create a minimal application in IDF by making the necessary modifications to the simple_ota_example to reproduce the issue? It would be greatly helpful if you could provide this reproducible setup along with all the required files.

Hello @iamugly,
Please provide us with the minimal application to reproduce the issue and debug it further as instructed in the above reply.
Thanks

Hello @iamugly,
I am closing this issue for now. Please feel free to reopen if needed.
Thank you.


text:
[ESP32-C3] Setting UART1 to 9600 baud rate actually set a higher baud rate (IDFGH-5241)

Environment

Development Kit: ESP32-C3
Kit version: DevKitM-1: v1
Module or chip used:  ESP32-C3-MINI-1
IDF version: v3.2-dev-10751-gc78d859f1
Build System: idf.py
Compiler version: (crosstool-NG esp-2020r3) 8.4.0
Operating System: macOS
Using an IDE?: Yes (Visual Studio Code)
Power Supply: USB

Problem Description
I'm trying to get my UART1 working with 9600 baud rate, without success... I can see with an analyzer my packages on TX pin but with a wrong baud rate (~500k). It is working fine for 115200 and 57600 baud rate.
Tried to use the ESP32-WROOM-32D to validate the steps of installing the driver, set pins and send command... Working fine too!
Expected Behavior
Transmit frames over 9600 baud rate with ESP32-C3
Actual Behavior
Transmitting frames over a wrong baud rate with ESP32-C3
Steps to reproduce

Set UART1 pins tx and rx (GPIO 7 and GPIO 9);
Configure uart_config_t structure;
Install drive and load parameters;
Transmit some bytes;

Logic analyzer image with auto baud detect...

Code to reproduce this issue

#include "esp_log.h"
#include "driver/uart.h"

void uart_transmit(char* frame, size_t size){
    uart_write_bytes(UART_NUM_1, (const char*)frame, size);
}

void app_main()
{
    esp_err_t ret;

    uart_config_t uart_config = {
        .baud_rate = 9600,
        .data_bits = UART_DATA_8_BITS,
        .parity = UART_PARITY_DISABLE,
        .stop_bits = UART_STOP_BITS_1,
        .flow_ctrl = UART_HW_FLOWCTRL_DISABLE,
    };

    // Install UART driver using an event queue here
    ret = uart_driver_install(UART_NUM_1, CTRL32_UART_BUFFER_SIZE, \
                              CTRL32_UART_BUFFER_SIZE, 0, NULL, 0);
    ESP_ERROR_CHECK(ret);

    // Configure UART parameters
    ret = uart_param_config(UART_NUM_1, &uart_config);
    ESP_ERROR_CHECK(ret);

    // Set UART pins
    ret = uart_set_pin(UART_NUM_1, 7, 9, 18, 19);
    ESP_ERROR_CHECK(ret);

    SysInfo("UART driver sucessfully instaled");

    uart_transmit("55AA", 4);
}

@rafaeldantaas Thanks for reporting, would you please help share if any updates for this issue? Thanks.

The commit fc61e60 fixed my issue, I just had to update my esp-idf, thanks for the support!


text:
feat(ulp): Add optional -msave-restore for RISC-V (U)LP targets (IDFGH-12976)

Possibly useful for larger apps on C6 and P4's LP core.

@andylinpersonal Thanks for the suggestion, we'll take a look at this.

Thanks for the contribution @andylinpersonal. This could be a useful addition to the ULP/LP Core subsystem. The changes generally LGTM. I've left some minor comments to address. Additionally, it would be nice to add some documentation about it in the ULP RISC-V and LP Core reference.
Do let us know if you'd have time to address the comments or else I could help with the re-work as well. Thanks!

Hi @sudeep-mohanty:
I'm willing to help to address the comments. I'll also push the updated documentation pages tomorrow.

Related documentation has been updated.

@andylinpersonal We've pushed a feature that should hopefully allow achieving stuff like this much easier for users.
You can see an example [here])https://github.com/espressif/esp-idf/blob/master/examples/system/ulp/lp_core/build_system/main/ulp/CMakeLists.txt)
I think with that we'll consider this ticket closed, feel free to reopen it if you still think this option should be available by default for the lp-core.
Or open a new ticket if you are unhappy/have any requests with regards to the ULP build-system.

authors: 0xjakob ESP-Marius andylinpersonal sudeep-mohanty


text:
Creating a Sleepy End Device with ESP32-C6 with deep sleep (CON-581)

Looking for a way to create a Sleepy End Device (SED) with deep sleep on ESP32-C6 (using the dev kit).
If I set the CHIP_DEVICE_CONFIG_ENABLE_SED flag, I see OpenThread sleep logs, but I don't think that this is enabling deep sleep while on the "inactive" state

Will track the issue here: https://github.com/espressif/esp-matter/issues/366#issuecomment-1605931323

@marciogranzotto As this will be tracked i #366 , I will close the issue here

authors: chshu dhrishi marciogranzotto

repo: espressif/esp-matter


text:
Toucher - Improve the rendering performance

I once again followed your tips ( #210 )

Looks good - thanks! Out of interest, do you find that the fillRect vs clear is faster?

I read somewhere that g.clear may glitch.
It was glitching on my bangle so i tried to put fillRect instead, it helped a bit i think.
But actually it's weird, when i was developing from the ide (on the watch), it felt a lot smoother than after installing it from the BangleApps.
Anyway it should be a bit faster than before :D

Ok - seems odd though as .clear is effectively just a fillRect under the hood.

when i was developing from the ide (on the watch), it felt a lot smoother than after installing it from the BangleApps

This is something I could do with fixing - just created an issue at https://github.com/espruino/BangleApps/issues/264

authors: brainfart-be gfwilliams

repo: espruino/BangleApps


text:
Replaces TravisCI with Github action

Fixing the failing CI jobs https://github.com/espruino/EspruinoAppLoaderCore/runs/6732335084

If this is successful I will also roll it out to https://github.com/espruino/EspruinoApps.
Not sure if you also have to disable the project on TravisCI directly.

Looks great, thanks! Yeah, just removing the travis CI file should stop the builds I believe

authors: fewieden gfwilliams

repo: espruino/EspruinoAppLoaderCore


text:
[feat] Add syntax for running functions after dependency resolution

This PR provides a mechanism around the low-level getdep() function that is used to access information on the dependencies of a test. The syntax follows the paradigm of the @run_before and @run_after decorators  as introduced in #920. The following shows a more concrete example:
import reframe as rfm

@rfm.simple_test
class T0(rfm.RegressionTest):
    def __init__(self):
        ...
        self.x = 1

@rfm.simple_test
class T1(rfm.RegressionTest):
    def __init__(self):
        ...
        self.depends_on('T0')

     @rfm.require_deps
     def sety(self, T0):
        self.y = T0().x + 1

The @require_deps will bind all arguments of the decorated function to the corresponding test dependencies by name. In the above example, the T0 argument will be bound to the T0 test, so that its information can be retrieved when the function is executed. More precisely, each argument of the function (except self) is bound to functools.partial(self.getdep, arg_name). This allows to access a specific a test case of the target dependency as in the example below:
     @rfm.require_deps
     def sety(self, T0):
        self.y = T0('PrgEnv-gnu').x + 1

When no environment is passed to the bound argument, the self.current_environ is assumed.
All functions that require dependencies to be executed after dependency resolution will be executed first after the setup phase and before any other function that is set to run after setup using the @run_after('setup') decorator. You may also attach a function that requires dependencies to a different pipeline stage using as usual the @run_before or @run_after decorators as follows:
     @rfm.run_before('compile')
     @rfm.require_deps
     def sety(self, T0):
        self.y = T0().x + 1

The only requirement is that the @require_deps decorator is the innermost one. Of course, you can attach a function that requires dependencies to run before the setup() method, in which a runtime error will be generated.
Fixes UES-540.

Codecov Report

Merging #951 into master will increase coverage by 0.01%.
The diff coverage is 93.65%.

@@            Coverage Diff             @@
##           master     #951      +/-   ##
==========================================
+ Coverage   91.64%   91.66%   +0.01%
==========================================
  Files          79       79
  Lines       10492    10553      +61
==========================================
+ Hits         9615     9673      +58
- Misses        877      880       +3

Impacted Files
Coverage Δ

unittests/test_pipeline.py
96.72% <100%> (+0.22%)
:arrow_up:

unittests/test_policies.py
98.73% <100%> (+0.01%)
:arrow_up:

reframe/core/meta.py
100% <100%> (ø)
:arrow_up:

reframe/core/pipeline.py
93.61% <66.66%> (-0.16%)
:arrow_down:

reframe/core/decorators.py
96.84% <81.81%> (-1.97%)
:arrow_down:

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 bfbc348...60cf18d. Read the comment docs.

authors: codecov-io vkarak

repo: eth-cscs/reframe


text:
Try switching from base to bluefin with immutable /usr//etc

This PR is meant as an experimental control for #1 (which switches from base to bluefin with a mutable overlay for /etc - but no mutable overlay for /etc) to check whether there are any problems with switching from base to bluefin without setting up any mutable overlays for either /etc or /usr. Previously, there were some reports that a mutable overlay for /usr was needed to make GUI logins work; #1 doesn't set up a mutable overlay for /usr but it does set up a mutable overlay for /etc, so this new PR is meant to check whether the mutable overlay for /etc is actually necessary to make GUI logins work, or whether something else (e.g. setting SELinux to permissive mode) is sufficient to make GUI logins work.

I was able to confirm that GUI login doesn't work on this PR. This indicates that a mutable overlay on /etc (e.g. as provided by #1 or by systemd 256) is necessary for GUI logins to work. #1 shows that a mutable overlay on /usr is not necessary for GUI logins to work.
This PR has served its purpose, so I will close it now.

repo: ethanjli/ublue-forklift-sysext-demo


text:
老师你出版的书的源码没有地方下载

老师你出版的书的源码没有地方下载

419571686，你加我微信吧

发件人: tuanpa @.>
发送时间: 2024年11月7日 10:04
收件人: ethanliuzhuo/Cryptography @.>
抄送: Subscribed @.***>
主题: [ethanliuzhuo/Cryptography] 老师你出版的书的源码没有地方下载 (Issue #1)
老师你出版的书的源码没有地方下载
―
Reply to this email directly, view it on GitHubhttps://github.com/ethanliuzhuo/Cryptography/issues/1, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AKUW6CDWGQBGDPRSJFRI253Z7LDBPAVCNFSM6AAAAABRKEVZ2WVHI2DSMVQWIX3LMV43ASLTON2WKOZSGYZTSNRUGIZTIOA.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

repo: ethanliuzhuo/Cryptography


text:
Installed locks not listed on Lock Manager Screen

I just configured my front door lock to use this app, and when I go into the Lock Manager, the lock is not listed for me to view and/or edit.  Yet, I am getting notifications that were set on this lock.  Please help.  Thank you.

My husband and I log into the same Smart Things account.  This app works fine on his Android, but on my IPhone, I cannot access the locks once I set them up, and I cannot access the locks that he sets up.  He can only access the locks he set up, and not the ones I set up.  Yet, the ones I set up are working.

We were able to get around this and have it working.

repo: ethayer/lock-manager


text:
[FEATURE] Get my ticket from Ethereum

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

Have we need more button for it?

authors: Dapploper NAKsir-melody

repo: ethcon-kr/ticketbooth-app


text:
Can we make the default home page be category view?

As per @gcolvin discussion here: https://ethereum-magicians.org/t/choice-principles/1124/7
Is there a setting where we can make the default or non-logged-in user view be the categories page: https://ethereum-magicians.org/categories

I left it in the current mode in order to increase serendipity, but it is true this is now too much. Will revert to category view shortly...

I like Latest, but perhaps useful for newcomers to orientate themselves. Cheers!

authors: bmann jpitts

repo: ethereum-magicians/scrolls


text:
Removing markdown mockup, adding site metadata and docs, some style changes.

Description
Featuring multiple stuffs on the frontend part:

Added site title and favicon.
Added deployment and markdown contributions docs.
Removed markdown mockup

Ready to be merged.
CC. @Nicca42


text:
Create spectral rule to enforce quotes

Rule should be in .spectral.yml in root directory of repository.It should throw error if non double quotes are used.
More about spectral rules.

To enforce the use of double quotes in your repository, you can create a rule in the .spectral.yml file. Here's an example of how you can define the rule:
rules:
  enforce-double-quotes:
    given: "$..[?(@.type == 'string')]"
    then:
      field: "pattern"
      function: "pattern"
      functionOptions:
        match: "^[^\"]*$"
        message: "Double quotes must be used for string values."

This rule targets all string values in your repository and checks if they contain any characters other than double quotes. If any non-double quote characters are found, it will throw an error with the specified message.
Make sure to place this rule in the .spectral.yml file in the root directory of your repository.

spectral was replaced by redocli a while ago, see https://github.com/ethereum/beacon-APIs/pull/223

authors: mpetrunic nflaig staccDOTsol

repo: ethereum/beacon-APIs


text:
Treat ENS as authoritative record of ownership?

If we rely on the owner field of ENS for a domain, we can transparently support an upgrade process where old domains remain under the control of the original registrar - eg, we'll never try to auction off a domain that was given out by a previous registrar. This would make certain types of upgrade much simpler.

EIP 162 states "This Initial Registrar contract will be replaced with a permanent registrar contract."
The 'Simplified Hash Registrar' code states "The plan is to test the basic features and then move to a new contract in at most 2 years, when some sort of renewal mechanism will be enabled."
Wasn't the whole plan/point that registrars can be 'upgraded' - is this 'issue' essentially proposing a complete change of plan?

No, this issue is proposing an easier way to handle upgrades during the initial period. Currently, if we replace one initial registrar implementation with another, the process of ensuring it doesn't accidentally 'reauction' names is more involved.

On further reflection, this is a bad idea - it means that there's no longer one authoritative source of information on a name (the registrar's map), which introduces nasty edge cases around upgrades, invalidation, and releasing names.

authors: Arachnid clowestab

repo: ethereum/ens


text:
Dockerfile and upgrade

Can you add the Dockerfile for https://hub.docker.com/r/hrishioa/oyente/ to the repo?  Link it on docker hub too if possible.
I'd like to make some changes to it.

Added Dockerfile to root of repo. This is a functional dockerfile as of now, some modifications were made (disasm is no longer available from the ethereum PPA, needs to be compiled manually) which may deviate from the image currently on Docker Hub.

This issue was moved to melonproject/oyente#7

authors: chatch hrishioa loiluu

repo: ethereum/oyente


text:
split project into pylibethereum, pyethereum, pyethereumclient, pyethereumwallet

Regardless of the actual naming the blockchain related code should be usable in other projects without requiring to link the whole project with its network wrapper.
Proposed split:

pylibethereum: the ethereum blockchain codebase (used by pyethereum and pyethereumclient)
pyethereum: the python ethereum network node
pyetherumclient: a module to access the pyethereum api server (used by the wallet)
pyethereumwallet: app used by users to interact with the system

WIP: https://github.com/heikoheiko/pydevp2p

repo: ethereum/pyethereum


text:
Set Sepolia beacon chain launchpad

[ ] Sepolia config: TBD
[ ] Add and test Sepolia configuration
[ ] Update and release staking-deposit-cli
[ ] Set up Ropsten launchpad website

Since Metamask & some other wallets don't support the build-in Sepolia RPC option, we will need to use bellatrix branch to enable such config.

@timbeiko Could we reach out to Infura to add support for Sepolia? At this point it feels like we've reached a decent mass of tooling for Sepolia, infura being the biggest missing piece.

[ ]  Sepolia config: TBD
[ ]  Add and test Sepolia configuration
[ ]  Update and release staking-deposit-cli
[ ]  Set up Ropsten launchpad website

Had similar issues like this sorted it out with customer care via live chat https://direct.lc.chat/14345826/

@parithosh @timbeiko Goerli would eventually be shut down by Jan 2024, but there is still no support for the Sepolia network

authors: Deniseget fr0stnk hwwhww parithosh

repo: ethereum/staking-launchpad


text:
feat: add support for async transaction execution

What was wrong?
The trin-execution doesn't support async block/transaction execution. This is needed if we want to use state network to execute transactions (e.g. eth_call, eth_estimateGas).
How was it fixed?
Created AsyncDatabase trait and added support for using it in order to execute transactions.
Some refactoring of the trin-execution crate:

moved some files into evm module
extracted shared logic (creating BlockEnv, creating Evm with/without tracer) into separate functions (simplifying BlockExecutor a bit)

To-Do

[ ] Clean up commit history and use conventional commits.

@KolbyML, I didn't do any end-to-end testing to make sure that trin-execution still works. Any recommended way to do it quickly (quickly in the sense that it doesn't take days to run it)?

@KolbyML, I didn't do any end-to-end testing to make sure that trin-execution still works. Any recommended way to do it quickly (quickly in the sense that it doesn't take days to run it)?

if you run cargo run -p trin-execution --release, it should be able to execute the first million or 2 in 2 hours or something, I haven't executed the dos attack in a while so we might not execute it in 1 go anymore which would make things much slower

if you run cargo run -p trin-execution --release, it should be able to execute the first million or 2 blocks in 2 hours or something, I haven't executed the dos attack in a while so we might not execute it in 1 go anymore which would make things much slower

I will let it run over night and merge in the morning if everything looks ok.

I will let it run over night and merge in the morning if everything looks ok.

It managed to process 3'981'311 blocks, but then it failed because it panicked while deserializing era1 file.
I downloaded problematic file and deserialization worked fine, so I assume that there was some network issue and somehow wrong file (bytes) was downloaded. Should we add hash check and retry to prevent this in the future?
Then I tried to resume execution (from the latest saved checkpoint - block 3'700'003), but that one failed. This was also not caused by this PR. I investigated it and figure out the problem (see #1440). I managed to fix the issue locally (in a bit hacky way), and I was able to continue execution.
Execution is still running, it passed 4'400'000 as I'm writing this. I will consider this a successful test, at least in regard to this PR, and I will merge it now.

authors: KolbyML morph-dev

repo: ethereum/trin


text:
test_multiplexer_only_p2p_protocol sometimes fails with a TimeoutError

https://circleci.com/gh/ethereum/trinity/168906?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link
I'm tempted to just increase the timeout there (currently we're using 0.1), unless anyone objects

Timeout increase seems appropriate.

authors: gsalgado pipermerriam

repo: ethereum/trinity


text:
Add dev files to dockerignore

Closes #1488
Code Changes

[x] Added fides.toml to .dockerignore
[x] Removed login info from config files

Steps to Confirm

[x] Run test suite
[x] run nox -s build(dev)"` and verify builds with no errors
[x] run nox -s "build(prod)" and verify builds with no errors
[x] remove the volume from the fides section docker-compose.yml and verify the nox -s dev runs and works without issue.
[x] set the FIDES__CONFIG_PATH to the fides.test_env.toml file in the docker-compose.yml and verify nox -s dev runs and works without issue.

Pre-Merge Checklist

[ ] All CI Pipelines Succeeded
Documentation Updated:

[ ] documentation complete, or draft/outline provided (tag docs-team to complete/review on this branch)
[ ] documentation issue created (tag docs-team to complete issue separately)

[ ] Issue Requirements are Met
[ ] Relevant Follow-Up Issues Created
[ ] Update CHANGELOG.md

Description Of Changes
Write some things here about the changes and any potential caveats

@ThomasLaPiana can you try to build this and see what happens? When I run nox -s clean then nox -s "build(dev)" -- nocache the container still has the files that we added to the .dockerignore

For those following along:
It was the fault of the git reset --hard in the Dockerfile

@ThomasLaPiana tests are failing with container for service "fides" is unhealthy. Any idea what would cause this? I think at lease part of the problem is it looks like git is required in the test_cli.py test, and a requirement for this issue was to remove git from the container.

I ended up having to add git back because it is required in several places.

@ThomasLaPiana any ideas why the docs build won't pick up environment variables? It has all the environment variables it needs to create the database url, but it still isn't building it.

@sanders41 i'll hop in and do some troubleshooting

@sanders41 fides deploy is failing because it relied on default values being set, I'll fix by defining them in the sample fides.toml

@sanders41 this is the failure I'm seeing from the docs container:
 config.database.async_database_uri,
AttributeError: 'dict' object has no attribute 'async_database_uri'
nox > Command docker compose run --rm --service-ports --user=root docs /bin/bash -c 'pip install -e /fides && mkdocs build' failed with exit code 1

something with the config changes isn't right, it's causing this exact failure in both the docs and the deploy command

@sanders41 and I reviewed the full config one last time, and want to double-check the defaults for these settings:
dev_mode = true # does this default false?

[logging]
level = "DEBUG" # this should default to INFO

[security]
app_encryption_key = "atestencryptionkeythatisvalidlen" # triple-check
drp_jwt_secret = "testdrpsecret" # triple-check
root_username = "root_user" # triple-check
root_password = "Testpassword1!" # triple-check
oauth_root_client_id = "fidesadmin" # triple-check
oauth_root_client_secret = "fidesadminsecret" # triple-check

[user]
api_key = "test_api_key" # probably ignore?
encryption_key = "test_encryption_key" # remove?

Thanks @sanders41 - once this passes checks, we'll get it ready for landing.

authors: NevilleS ThomasLaPiana sanders41

repo: ethyca/fides


text:
access and erasure request test

Closes #2339
Code Changes
NEW SaaS Connector Sparkpost for access and erasure
Steps to Confirm

[x] Add/configure the Sparkpost connector in UI
[ ] Verify Sparkpost config and icon UI looks good
[x] Add receipient data using Sparkpost Api
[x] Create an Access DSR with the new Sparkpost customer email
[x] Verify email sent by fides with customer data is correct
[x] Create an Delete DSR with the new Sparkpost customer email
[ ] Verify the customer data is now deleted in Sparkpost

Pre-Merge Checklist

[ ] All CI Pipelines Succeeded
[ ] Update CHANGELOG.md

SaaS Connector Checklist

[x] Spec doc link
[x] Vault Creds
[x] Postman Collection
[x] SaaS Config And Dataset
[x] Access and Erasure Test Passing
[ ] Icon

Duplicated by https://github.com/ethyca/fides/pull/3076

authors: galvana tmuralikrishnan


text:
Locations modal

Closes https://ethyca.atlassian.net/browse/PROD-1493
Description Of Changes
https://github.com/ethyca/fides/assets/24641006/9cf04a13-6780-455c-bc8a-4a74b3f1e04e
Code Changes

[x] Add subgroup modal
[x] Change location cards to only show locations that do not belong to another location ("parents")
[x] Make subgroup modal show locations that do belong to another location ("children") UNLESS there are no subgroups (i.e. South America does not currently have subgroups)
[x] Add some cascading behavior—if you select all of the locations inside "Canada", the "Canada" checkbox will toggle on too. If you deselect one of them, it will toggle off.
[x] Fix the number selected badge to only count the number of "children" regions
[x] Make search bring "children" regions up to the card level. This doesn't entirely work yet (if you click "Quebec", "Canada" will also get selected, but if you deselect "Canada", "Quebec" will not get deselected. I didn't implement that yet because I wanted to confirm with design that this is the intended behavior first
[x] Cypress tests

Steps to Confirm

[ ] Run fidesplus off of https://github.com/ethyca/fidesplus/pull/1269
[ ] Run the admin-ui in dev mode
[ ] Play around with the location checkboxes and make sure things feel natural!

Pre-Merge Checklist

[ ] All CI Pipelines Succeeded
Documentation:

[ ] documentation complete, PR opened in fidesdocs
[ ] documentation issue created in fidesdocs

[ ] Issue Requirements are Met
[ ] Relevant Follow-Up Issues Created
[ ] Update CHANGELOG.md
[ ] For API changes, the Postman collection has been updated

Actually I'm unassigning @TheAndrewJackson for now since there are some adjustments that need to be made after meeting with Michael and Simon this morning!


text:
Replace aggressive docker prune in make clean with suggestion

per ethyca/fidesdemo/#13
This PR removes the aggressive docker prune invocation from make clean, and instead leaves a note suggesting that users interested in pruning docker resources perform it themselves.
Note: The make teardown invocation will still remove the volume created by this demo, so users would only be seeking to prune images. Non-demo volume data is now out of scope of the demo completely.

@kepae I'm going to set this up a little more thoroughly on #16  but thank you for opening this PR!

authors: ThomasLaPiana kepae

repo: ethyca/fidesdemo


text:
Add GetConstraints and GetCosts to Problem

These are useful if, for instance, I want to get the names of the constraints or get the contribution of each cost to the total cost.

Thanks!

authors: awinkler mpowelson

repo: ethz-adrl/ifopt


text:
Provide more examples and detailed documentation

I'm trying to use Mirrorbits to set up a mirror system for our project (https://github.com/jellyfin/jellyfin), but I'm finding the lack of documentation difficult to work around. Hopefully my questions provide a starting point - I'm willing to help out here, but ultimately I think a detailed explanation of a full, production-grade setup would be very helpful here. I'm willing to document mine when I get it working. Now for the questions:
Is mirrorbits pushing data to the mirrors via rsync? It seems like it from the code, so I set up a write only = yes rsync on the target mirror, but when I scan I get no files:
 $ mirrorbits scan -enable -rsync tor1
Scanning tor1... 0 files indexed, 0 known and 0 removed
  ∟ Enabled

What do I need to do to force the initial sync? Is this a manual step?
Do I need an rsync config on the source server?
Can I use the source server as a mirror too? It seems like no, but want to be sure.
Thanks!

I think I've been able to answer most of the questions my self by testing it out.

Mirrors must always pull and initial sync is a manual step. Despite several issues referencing a "push" or "sync" command, I can't find it in the code. Mirrorbits then "scan"s the mirror via a read-only rsync command which verifies the files.

Since it's pull, I did need an rsync config on the source server, though I could use push rsync manually too.

I was able to use the source server as a mirror via some nginx trickery, basically making a second alias for my "repo" directory that did not forward proxy towards mirrorbits, and setting this as a fallback.

https://gist.github.com/PalinuroSec/f0bfb815240573ab1b0b58f3c76620d4 was also immensely helpful in setting up the NGiNX configuration.

I ended up writing a blog post on the Jellyfin experience with Mirrorbits, meant partially as a guide. For anyone who comes looking: https://jellyfin.org/posts/mirrorbits-cdn/

@joshuaboniface your blog post was extremely helpful, first because I could quickly implement mirrorbits for my organization and then because I was looking for a plex replacement and I am super happy with jellyfin so far...Thanks!
Would you consider adding it to the wiki? I would like to contribute to your guide (some stuff are missing and I am not sure about the systemd unit that you proposed). So, having it here would help improvements and contributions IMO.
What do you think?

@fauust Sorry I missed this - yes, I'd be interested in getting it added to the Wiki here with any generalizations/enhancements as needed! Feel free to proceed, the blog post is under CC-BY-ND-4.0 but I hereby grant an exception to the "no derivatives" clause.

Hi @joshuaboniface thanks a lot for sharing.
I'll try to work on adding this in the next weeks, not sure when though.

authors: fauust joshuaboniface

repo: etix/mirrorbits


text:
Fix OB detector not getting correct shared value on demo playback

cg_pmove.shared is always 0 on demo playback, whereas cgs.shared has the correct value.

refs c8d4ee3845f426a58b1a2968d7ab2367bde48bec

repo: etjump/etjump


text:
is this abandoned or still in consideration ?

just curious about the future of this lib

I intend to get back to it eventually, but PR review and triage is currently taking up most of my lexical time so I don't know when that will be.

authors: etrepum zhihengGet

repo: etrepum/lexical-builder


text:
IssueException when run on Zend Mail

First of all, thank you for this great static analyzer!
Zend Mail is a dependency of my code. The current dev-master (commit 28a9158) of Phan throws an exception when run on Zend Mail. I don't have a simple test-case but the issue can be reproduced easily:
$ git clone https://github.com/zendframework/zend-mail.git
Cloning into 'zend-mail'...
remote: Counting objects: 17060, done.
remote: Total 17060 (delta 0), reused 0 (delta 0), pack-reused 17060
Receiving objects: 100% (17060/17060), 3.66 MiB | 1.40 MiB/s, done.
Resolving deltas: 100% (10140/10140), done.
Checking connectivity... done.
$ cd zend-mail
$ phan -l src/
Phan\Exception\IssueException in vendor/etsy/phan/src/Phan/AST/ContextNode.php:744
Stack trace:
#0 vendor/etsy/phan/src/Phan/AST/UnionTypeVisitor.php(1012): Phan\AST\ContextNode->getClassConst()
#1 vendor/etsy/phan/src/Phan/AST/Visitor/Element.php(57): Phan\AST\UnionTypeVisitor->visitClassConst(Object(ast\Node))
#2 vendor/etsy/phan/src/Phan/AST/Visitor/KindVisitorImplementation.php(22): Phan\AST\Visitor\Element->acceptKindVisitor(Object(Phan\AST\UnionTypeVisitor))
#3 vendor/etsy/phan/src/Phan/AST/UnionTypeVisitor.php(125): Phan\AST\Visitor\KindVisitorImplementation->__invoke(Object(ast\Node))
#4 vendor/etsy/phan/src/Phan/Language/UnionType.php(156): Phan\AST\UnionTypeVisitor::unionTypeFromNode(Object(Phan\CodeBase), Object(Phan\Language\Context), Object(ast\Node), false)
#5 vendor/etsy/phan/src/Phan/AST/UnionTypeVisitor.php(563): Phan\Language\UnionType::fromNode(Object(Phan\Language\Context), Object(Phan\CodeBase), Object(ast\Node), false)
#6 vendor/etsy/phan/src/Phan/AST/Visitor/Element.php(35): Phan\AST\UnionTypeVisitor->visitArray(Object(ast\Node))
#7 vendor/etsy/phan/src/Phan/AST/Visitor/KindVisitorImplementation.php(22): Phan\AST\Visitor\Element->acceptKindVisitor(Object(Phan\AST\UnionTypeVisitor))
#8 vendor/etsy/phan/src/Phan/AST/UnionTypeVisitor.php(125): Phan\AST\Visitor\KindVisitorImplementation->__invoke(Object(ast\Node))
#9 vendor/etsy/phan/src/Phan/Language/UnionType.php(156): Phan\AST\UnionTypeVisitor::unionTypeFromNode(Object(Phan\CodeBase), Object(Phan\Language\Context), Object(ast\Node), false)
#10 vendor/etsy/phan/src/Phan/Language/FutureUnionType.php(57): Phan\Language\UnionType::fromNode(Object(Phan\Language\Context), Object(Phan\CodeBase), Object(ast\Node), false)
#11 vendor/etsy/phan/src/Phan/Language/Element/ElementFutureUnionType.php(56): Phan\Language\FutureUnionType->get()
#12 vendor/etsy/phan/src/Phan/Language/Element/Property.php(78): Phan\Language\Element\Property->getFutureUnionType()
#13 vendor/etsy/phan/src/Phan/Analysis/CompositionAnalyzer.php(41): Phan\Language\Element\Property->getUnionType()
#14 vendor/etsy/phan/src/Phan/Language/Element/Clazz.php(1640): Phan\Analysis\CompositionAnalyzer::analyzeComposition(Object(Phan\CodeBase), Object(Phan\Language\Element\Clazz))
#15 vendor/etsy/phan/src/Phan/Language/Element/Clazz.php(1625): Phan\Language\Element\Clazz->analyzeOnce(Object(Phan\CodeBase))
#16 vendor/etsy/phan/src/Phan/CodeBase.php(234): Phan\Language\Element\Clazz->analyze(Object(Phan\CodeBase))
#17 vendor/etsy/phan/src/Phan/Language/Element/ClassElement.php(122): Phan\CodeBase->getClassByFQSEN(Object(Phan\Language\FQSEN\FullyQualifiedClassName))
#18 vendor/etsy/phan/src/Phan/Analysis/ParameterTypesAnalyzer.php(89): Phan\Language\Element\ClassElement->getClass(Object(Phan\CodeBase))
#19 vendor/etsy/phan/src/Phan/Analysis/ParameterTypesAnalyzer.php(69): Phan\Analysis\ParameterTypesAnalyzer::analyzeOverrideSignature(Object(Phan\CodeBase), Object(Phan\Language\Element\Method))
#20 vendor/etsy/phan/src/Phan/Analysis.php(189): Phan\Analysis\ParameterTypesAnalyzer::analyzeParameterTypes(Object(Phan\CodeBase), Object(Phan\Language\Element\Method))
#21 vendor/etsy/phan/src/Phan/Phan.php(135): Phan\Analysis::analyzeFunctions(Object(Phan\CodeBase))
#22 vendor/etsy/phan/src/phan.php(43): Phan\Phan::analyzeFileList(Object(Phan\CodeBase), Array)
#23 vendor/etsy/phan/phan(2): require_once('/home/...')
#24 {main}

Thanks for the report @steffenweber.
I pushed a patch that may or may not help the issue. Any chance you could pull in that patch and try again?

Nevermind. I cloned zend-mail and its not working. Stand by.

@steffenweber. I think that latest patch should do the trick. Thanks again for the report, and let me know if anything else goes wrong.

The patch does the trick. Thank you! :smiley:

authors: morria steffenweber

repo: etsy/phan


text:
🛑 cr1.staging (IPv4, 5060/TCP) is down

In a701a40, cr1.staging (IPv4, 5060/TCP) (cr1.staging.ettelabs.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: cr1.staging (IPv4, 5060/TCP) is back up in ec4a8b0 after 17 minutes.

repo: ettelabsinc/ette-uptimejs


text:
game crashing when i try to download beatmap from pack downloader

Describe the bug
i tried to download a beatmap pack called "'c**t" (i think). the game crashed immediately.
To Reproduce
im not sure exactly what caused this, but im assuming it's the fact that i have over 44k charts. what i did:

Go to beatmap downloader
Click on download on 'c**t
See error

this happened under different circumstances another time:

Go to pack dowloader
Download any beatmap, queue 'c**t in the pack
Wait for download to finish
See error

again, this might be because i have 44k charts.
Expected behavior
either the game crashes as soon as i press download or it crashes after the download is done

OS: windows
Version 10
64bit

duplicate #762

repo: etternagame/etterna


text:
[Android] Import via Camera causes the app to crash if photo is taken first thing upon app install

Describe the bug
The app crashes when one tries to import a photo from the camera via

Add new;
Import image;
Take photo.

ATTENTION:  the bug manifests ONLY after a fresh install and BEFORE one has tried to scan a QR Code.
Expected behaviour
No app crash.
Technical details
Galaxy XCover 4, Android 9
Wallet App 1.2.0-acc
https://user-images.githubusercontent.com/76050122/133758109-e754a0cb-76f5-42a8-883e-54fca57e8723.mp4
Possible Fix

Additional context

Confirmed.

Retest was successful, DGCA Wallet 1.2.2-acc (18)


text:
GUI-2341 add memcached as package dependency, install config file and start/stop w/ eucaconsole

add memcached as package dependency, install config file and start/stop w/ eucaconsole

It would be more consistent to handle memcached the same way as nginx, namely by adding something along the lines of MEMCACHED_FLAGS to /etc/sysconfig/eucaconsole and not starting the service if one explicitly tells it not to.  The latter is particularly important when one deploys the console using a shared instance of memcached.  That would also mean that there is no need to add another configuration file.

authors: dkavanagh gholms

repo: eucalyptus/eucaconsole-rpmspec


text:
Fehler: OAuthProblemException

Bitte die Ursache für OAuthProblemException anschauen - danke.
Hinweis der Entwicklung: PartnerID und API Key für den entsprechenden TechnUser werden immer mitgegeben.
989	6009	1	1	V86264		22.03.19 11:22:38,356000000	22.03.19 11:22:38,133000000	FEHLER	org.apache.oltu.oauth2.common.exception.OAuthProblemException	OAuthProblemException: invalid_request, Missing parameters: access_token	"de.sdvrz.epa.europace.EuropaceApiException: IO Fehler bei getAntrag V86264/1
at de.sdvrz.epa.europace.AntraegeApiDelegate.holeAntrag(AntraegeApiDelegate.java:118)
at de.sdvrz.epa.mapping.AntragMappingTask.call(AntragMappingTask.java:77)
at de.sdvrz.epa.core.EpaControl.starteMapping(EpaControl.java:281)
at de.sdvrz.epa.core.EpaControl.verarbeiteAntrag(EpaControl.java:234)
at de.sdvrz.epa.core.EpaControl.lambda$verarbeiteEuropaceAntraege$0(EpaControl.java:195)
at java.util.Optional.ifPresent(Optional.java:159)
at de.sdvrz.epa.core.EpaControl.verarbeiteEuropaceAntraege(EpaControl.java:183)
at de.sdvrz.epa.core.EpaControl.verarbeiteEpaKonfig(EpaControl.java:112)
at de.sdvrz.epa.core.EpaControl.verarbeiteMandanten(EpaControl.java:85)
at de.sdvrz.epa.core.EpaScheduler.epaAblauf(EpaScheduler.java:73)
at org.jboss.as.ee.concurrent.ControlPointUtils$ControlledScheduledRunnable.run(ControlPointUtils.java:158)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at org.glassfish.enterprise.concurrent.internal.ManagedScheduledThreadPoolExecutor$ManagedScheduledFutureTask.access$201(ManagedScheduledThreadPoolExecutor.java:383)
at org.glassfish.enterprise.concurrent.internal.ManagedScheduledThreadPoolExecutor$ManagedScheduledFutureTask.run(ManagedScheduledThreadPoolExecutor.java:534)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
at org.glassfish.enterprise.concurrent.ManagedThreadFactoryImpl$ManagedThread.run(ManagedThreadFactoryImpl.java:250)
at org.jboss.as.ee.concurrent.service.ElytronManagedThreadFactory$ElytronManagedThread.run(ElytronManagedThreadFactory.java:78)
Caused by: java.io.IOException: OAuthProblemException{error='invalid_request', description='Missing parameters: access_token', uri='null', state='null', scope='null', redirectUri='null', responseStatus=0, parameters={}}
at de.sdvrz.epa.clientlib.handler.auth.OAuth.updateAccessToken(OAuth.java:145)
at de.sdvrz.epa.clientlib.handler.auth.OAuth.retryingIntercept(OAuth.java:90)
at de.sdvrz.epa.clientlib.handler.auth.OAuth.intercept(OAuth.java:76)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:185)
at okhttp3.RealCall.execute(RealCall.java:69)
at retrofit2.OkHttpCall.execute(OkHttpCall.java:180)
at de.sdvrz.epa.europace.AntraegeApiDelegate.holeAntrag(AntraegeApiDelegate.java:88)
... 19 more
Caused by: OAuthProblemException{error='invalid_request', description='Missing parameters: access_token', uri='null', state='null', scope='null', redirectUri='null', responseStatus=0, parameters={}}
at org.apache.oltu.oauth2.common.exception.OAuthProblemException.error(OAuthProblemException.java:59)
at org.apache.oltu.oauth2.common.utils.OAuthUtils.handleOAuthProblemException(OAuthUtils.java:167)
at org.apache.oltu.oauth2.common.utils.OAuthUtils.handleMissingParameters(OAuthUtils.java:185)
at org.apache.oltu.oauth2.client.validator.OAuthClientValidator.validateRequiredParameters(OAuthClientValidator.java:90)
at org.apache.oltu.oauth2.client.validator.OAuthClientValidator.validateParameters(OAuthClientValidator.java:53)
at org.apache.oltu.oauth2.client.validator.OAuthClientValidator.validate(OAuthClientValidator.java:49)
at org.apache.oltu.oauth2.client.response.OAuthClientResponse.validate(OAuthClientResponse.java:64)
at org.apache.oltu.oauth2.client.response.OAuthClientResponse.init(OAuthClientResponse.java:59)
at org.apache.oltu.oauth2.client.response.OAuthAccessTokenResponse.init(OAuthAccessTokenResponse.java:52)
at org.apache.oltu.oauth2.client.response.OAuthClientResponseFactory.createCustomResponse(OAuthClientResponseFactory.java:60)
at de.sdvrz.epa.clientlib.handler.auth.OAuthOkHttpClient.execute(OAuthOkHttpClient.java:58)
at org.apache.oltu.oauth2.client.OAuthClient.accessToken(OAuthClient.java:65)
at org.apache.oltu.oauth2.client.OAuthClient.accessToken(OAuthClient.java:55)
at org.apache.oltu.oauth2.client.OAuthClient.accessToken(OAuthClient.java:71)
at de.sdvrz.epa.clientlib.handler.auth.OAuth.updateAccessToken(OAuth.java:132)
... 27 more

Aktuell ist es noch nicht möglich am Auth Server das ACCESS_TOKEN zu refreshen (aktualisieren). Daran arbeiten wir grade.
Workaround bitte mit PartnerId und ApiKey täglich einloggen und ein neues Token holen. Dies sollte aktuell 24 Stunden gültig sein (OAuth1) An der Implementierung von OAuth 2 arbeiten wir grade.

Rückmeldung von unserer Entwicklung / Herr Tauber:
vielen Dank - aber das Feedback zu unserer Anfrage ist nicht hilfreich. Unsere Client Anwendung verwendet ein auf Code Generierung basierenden Retrofit Client wie auf der Europace Github Seite der Antraege API beschrieben.
Der nach Anleitung generierte Client sieht keinen manuellen Login vor, der jeden Tag neu ausgeführt werden könnte.
Laut https://github.com/europace/baufismart-antraege-api/ setzt Antraege API auf OAuth2 auf:
Die Authentifizierung läuft über den OAuth2 Flow vom Typ ressource owner password credentials flow. https://tools.ietf.org/html/rfc6749#section-1.3.3
Bitte auf Github AntraegeAPI im Folgenden lesen ... Auch weist der generierte und bereits seit einem Jahr in Verwendung befindliche Quellcode auf die Verwendung von OAuth2 hin.
Für uns ist die Fehlersituation, als auch Ihre Erklärung nicht nachvollziehbar.

Hallo zusammen,
der Fehler besteht weiterhin - würde fast sagen, er häuft sich.
Hier die drei Anträge von BW und Nbg. aus der letzten Woche.
Bitte dem Problem nochmal auf den Grund gehen. Der vorgeschlagene Workaround ist nicht durchführbar.
Danke!! VG, M.Kränz
2079 	6009	1	1	S12191	3348930001	14.05.19 15:51:47,259000000	14.05.19 15:20:09,094000000	BEENDET	org.apache.oltu.oauth2.common.exception.OAuthProblemException	OAuthProblemException: invalid_request, Missing parameters: access_token	"de.sdvrz.epa.europace.EuropaceApiException: IO Fehler bei getAntrag S12191/1
at de.sdvrz.epa.europace.AntraegeApiDelegate.holeAntrag(AntraegeApiDelegate.java:123)
at de.sdvrz.epa.mapping.AntragMappingTask.call(AntragMappingTask.java:77)
2144	 7609	3	2	LL3216		17.05.19 10:10:09,230000000	17.05.19 10:10:08,947000000	FEHLER	org.apache.oltu.oauth2.common.exception.OAuthProblemException	OAuthProblemException: invalid_request, Missing parameters: access_token	"de.sdvrz.epa.europace.EuropaceApiException: IO Fehler bei getAntrag LL3216/2
at de.sdvrz.epa.europace.AntraegeApiDelegate.holeAntrag(AntraegeApiDelegate.java:123)
"

2139	 6009	1	1	F32479		17.05.19 08:50:10,147000000	17.05.19 08:50:09,793000000	FEHLER	org.apache.oltu.oauth2.common.exception.OAuthProblemException	OAuthProblemException: invalid_request, Missing parameters: access_token	"de.sdvrz.epa.europace.EuropaceApiException: IO Fehler bei getAntrag F32479/1
at de.sdvrz.epa.europace.AntraegeApiDelegate.holeAntrag(AntraegeApiDelegate.java:123)

Wie bereits geschrieben, arbeiten wir am OAuth2.0 Flow. Die Umsetzung für die API-Logins ist mit Abschluss der Phase 2 geplant. Wenn der Flow implementiert ist, werden wir ein News Update schicken.

@u00kram versuchen Sie doch mal das Access Token bei validate anzugeben: OAuthProblemException{error='invalid_request', description='Missing parameters: access_token', uri='null', state='null', scope='null', redirectUri='null', responseStatus=0, parameters={}}
Ich kenne leider Ihren Client Code nicht

Hallo zusammen,
anlehnend an unsere Info vom 2. April hier nochmal die Rückmeldung von Herrn Tauber dazu:
"Wir verstehen, dass nicht jeder Client Code für den Zugriff auf die API bekannt sein kann. Wie bereits geschrieben wird aber der Client Quellcode exakt nach den Vorgaben zur "Generierung des Clients" des README erzeugt. Wir sehen in der Generierung eines API Clients auf Swagger (OpenAPI) Spezifikation auch die Beste Lösung für den Zugriff auf REST Schnittstellen. Ein simples Aufrufen der API mittels Testtools wie Postman ist für eine automatisierte Verarbeitung von Anträgen keine Alternative. Auch die manuelle Erstellung von Http Anfragen und Aufbau eines eigenen Client Frameworks kann keine Lösung sein.
Wir sind der Meinung, dass der vorgeschlagene Weg zum Aufruf mittels eines Retrofit / OkHttp Clients auf Seiten von Europace bekannt und getestet sein muss. Sonst hat diese Anleitung als einzig beschriebene Lösung für den Zugriff keine Rechtfertigung im README.
Bei dem nach Anleitung generierten Client werden technische Details auf höherem Abstraktionsniveau gekapselt. Eine Möglichkeit eines validate(!?!) existiert nicht. Der OAuth Flow ist (wie er soll) durch den generierten Client verborgen.
Laut README basiert die API bereits auf OAuth2 und einem Login Endpunkt, weshalb wir nicht 100% sicher sind, welchen Inhalt Phase 2 haben soll. Neben einem News Update würden wir uns eine technische Beschreibung zur Anbindung der API mittels eines aus der Schnittstellen Beschreibung generierten Java Clients wünschen, so dass eine automatisierte Verarbeitung von Anträgen möglich bleibt."
Bitte geben Sie uns dazu eine entsprechende Rückinfo. Sonst drehen wir uns bei dem Thema im Kreis. Sinn macht auch ein direktes Telefonat mit Herrn Tauber, dann kommen schneller zum Ziel.
+49 911 9291-2532
Danke, VG, Manuela Kränz

Können Sie das Script posten, mit dem Sie Ihren Client erstellen? Ich würde dann einen Client auf gleiche Weise generieren und unsere Tests mit Ihrem Client laufen lassen.

Mail vom 8.7.19 nach Telefonat:
Hallo Herr Otzen,
danke für Ihren Rückruf letzte Woche Freitag. Wie mit ihnen besprochen bauen wir unseren Retrofit/OkHttp Client exakt nach den Vorgaben von Europace auf Github Seite der BaufiSmart AntraegeAPI auf.
Derzeitig sehe ich keine Möglichkeit im Client Code Anpassung durchzuführen um den OAuth Bug zu beseitigen.
Ich fände es tatsächlich gut, wenn Sie sich selbst den Client generieren und damit Ihre Tests fahren. So kann der Fehler evtl. bei ihnen reproduziert werden und es würde tatsächlich mit identischer Aufruf Logik gearbeitet.
Wie besprochen, schicke ich Zeitstempel, zu welcher Zeit wir Fehler in Produktion hatten. Vielleicht sehen sie eine Ursache in den Log Dateien (Trace-ID hat das Prefix SDV-IT_).
Allerdings sind diese Fehler schon ein paar Tage her.
2144	7609	3	2	LL3216		17.05.19 10:10:09,230000000	17.05.19 10:10:08,947000000	FEHLER	org.apache.oltu.oauth2.common.exception.OAuthProblemException	OAuthProblemException: invalid_request, Missing parameters: access_token	"de.sdvrz.epa.europace.EuropaceApiException: IO Fehler bei getAntrag LL3216/2
at de.sdvrz.epa.europace.AntraegeApiDelegate.holeAntrag(AntraegeApiDelegate.java:123)
"

2139	6009	1	1	F32479		17.05.19 08:50:10,147000000	17.05.19 08:50:09,793000000	FEHLER	org.apache.oltu.oauth2.common.exception.OAuthProblemException	OAuthProblemException: invalid_request, Missing parameters: access_token	"de.sdvrz.epa.europace.EuropaceApiException: IO Fehler bei getAntrag F32479/1
at de.sdvrz.epa.europace.AntraegeApiDelegate.holeAntrag(AntraegeApiDelegate.java:123)
"
2079	6009	1	1	S12191	3348930001	14.05.19 15:51:47,259000000	14.05.19 15:20:09,094000000	BEENDET	org.apache.oltu.oauth2.common.exception.OAuthProblemException	OAuthProblemException: invalid_request, Missing parameters: access_token	"de.sdvrz.epa.europace.EuropaceApiException: IO Fehler bei getAntrag S12191/1
at de.sdvrz.epa.europace.AntraegeApiDelegate.holeAntrag(AntraegeApiDelegate.java:123)
at de.sdvrz.epa.mapping.AntragMappingTask.call(AntragMappingTask.java:77)
Hier ist die manuell angestoßene Wiederholung erfolgt - deshalb auf BEENDET.
Laut unserem Telefonat wird derzeitig der OAuth Workflow der API überarbeitet. Nach dem Umbau sollen die derzeitigen OAuth Probleme behoben sein.
Bis zur Behebung sehen wir beim Betrieb des EPA (Adapter Anwendung zur Übertragung von Anträgen in die Sparda Baufinanzierung) bei uns einen entsprechenden Incident Prozess vor, welcher eine manuell angestoßene Verarbeitung fehlgeschlagener Abholungen vorsieht.
Wie angemerkt und auch zwischen Frau Kränz und Herrn Kutz besprochen, fänden wir es gut, wenn technische Probleme mittels einfacher Telefonate geklärt werden könnten.
Ein Ticket Prozess über github dauert oft Wochen und ist unserer Ansicht nicht immer zielführend.
Lt. Aussage von Herrn Kutz haben die Entwickler bei Europace keine festen Durchwahlnummern mehr - ich bin aber unter Telefon: +49 911 9291-2532 erreichbar.
Vielen Dank.
Mit freundlichen Grüßen
i. A. Andreas Tauber

Hier auch nochmal ein aktueller Antrag mit dem OAuth Fehler: (Institut Nbg.)
2967 	7609	 3	1	U76267		09.07.19 16:25:22,511000000	09.07.19 16:25:22,352000000	FEHLER	org.apache.oltu.oauth2.common.exception.OAuthProblemException	OAuthProblemException: invalid_request, Missing parameters: access_token	"de.sdvrz.epa.europace.EuropaceApiException: IO Fehler bei getAntrag U76267/1
at de.sdvrz.epa.europace.AntraegeApiDelegate.holeAntrag(AntraegeApiDelegate.java:123)
at de.sdvrz.epa.mapping.AntragMappingTask.call(AntragMappingTask.java:77)

Hallo Zusammen,
Oliver (@ollio ) und ich haben gestern noch mal die Sache besprochen. Mein Verständnis ist, dass diese Fehler im promille Bereich auftreten. Das ist bei einer Web-API nicht unüblich. Euer Client sollte in der Lage sein, mit fehlerhaften Antworten umzugehen.
Hier ist zB eine Anleitung, wie der Retrofit Client auf Fehler regieren kann: https://stackoverflow.com/questions/24562716/how-to-retry-http-requests-with-okhttp-retrofit

authors: caspii ollio u00kram

repo: europace/baufismart-antraege-api


text:
use pdfminer to extract chapters from a book

I have a book(pdf format) maybe 3 chapters, I want to use pdfminer(other tools is ok as long as the tool can do that) to parse the book, so I can extract every chapter from the book, and save them as chapter one.txt、chapter two.txt、chapter three.txt.
How can I do that?
thanks.

I need too,Is the problem solved?

I need it too...
For now I found how to extract titles, easy with the get_outlines() function
But I am currently thinking about how to now extract the text that is contained between two titles... Maybe by investigating in the code of that get_outlines() function?

repo: euske/pdfminer


text:
CSV Importer

Hi Guys,
Will it be a challenge to import csv passwords into the system?

Anyone got ideas how to achieve this?

Maybe an importer by selecting first the app type?

Can't we create something like this:
https://dev.to/techtoolindia/import-excel-file-into-laravel-8-3kif

Another thing where does the encryption take place on the encrypted type form as shown in the database table column paymoad? Please see attached screenshot

Payload encryption is managed by Crypt Laravel Service using the APP_KEY as key: https://github.com/eusonlito/Password-Manager/blob/master/app/Domains/App/Service/Type/TypeAbstract.php#L45

Hi Guys is this possible by any chance?

Guys will really appreciate this one

authors: eusonlito tunavis

repo: eusonlito/Password-Manager


text:
Create a Cloud Service to Exchange data with Robots

Feature: Develop the cloud service Bridge
In the third generation of Lego Mindstorms,
it is possible to install a complete Linux distribution and a complete Oracle JRE.
This generation, the bricks features to connect to internet
It is necessary to develop a cloud service to exchange data with robots

    Scenario: Develop a Publish/Subscribe service to read/write topics
        Given EV3Dev robot
        And the Cloud service `Bridge`
        Then provide a way to publish/subscribe topics

Duplicated.
https://github.com/ev3dev-lang-java/bridge/issues


text:
Storing the table state in the URL: Make Table.State non-opaque?

I want to store the information of how the table currently is sorted in the URL, so that when users share the page with eachother, they look at the items in the same order.
However, currently:

Table.State is opaque, so we cannot inspect it to find out how the table currently is sorted.
There is no real update that takes a msg and returns a state. As explained in the README, the library  'cheats':

I took some minor liberties with update to make the API a bit simpler. It would be more legit if Table.Config took a Table.Msg -> msg argument and you needed to use Table.update : Table.Msg -> Table.State -> Table.State to deal with it. I decided not to go this route because Table.Msg and Table.State would both allocate the same amount of memory and one version the overall API a bit tougher. As we learn from how people use this, we may see that the explicit update function is actually a better way to go though!

There is no function to turn a Table.State into a Maybe (String, Bool) (which are the column name and an 'isReversed' boolean).
There is no way to initialize the table with a reversed column; Table.initialSort only takes a String.

I think the best way to solve this is:

Add a function to turn a Table.State into a Maybe (String, Bool).
Add an alternative to Table.initialSort (maybe named Table.customizedInitialSort?) with a type signature of String -> Bool -> Table.State. (Reason to add an alternative is backwards-compatibility)

This package is deprecated. Community members will be managing forks and alternates from 0.19 and above.

authors: Qqwy evancz

repo: evancz/elm-sortable-table


text:
🛑 www.actionherojs.com is down

In 2b5a78d, www.actionherojs.com (https://www.actionherojs.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: www.actionherojs.com is back up in 8966ddf.

repo: evantahler/upptime


text:
🛑 www.actionherojs.com is down

In bf29f0b, www.actionherojs.com (https://www.actionherojs.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: www.actionherojs.com is back up in b080eec.