ESP-NOW Examples crash during runtime (esp_wifi_set_channel failure)  (IDFGH-2156)

Environment

Development Kit:      ESP32-Wrover-Kit|
Kit version (for WroverKit/PicoKit/DevKitC): [v4]
Module or chip used:  ESP32-WROOM-32
IDF version (run git describe --tags to find it): v4.1-dev-474-g2e6398aff
Build System:         Make
Compiler version (run xtensa-esp32-elf-gcc --version to find it): xtensa-esp32-elf-gcc (crosstool-NG crosstool-ng-1.22.0-80-g6c4433a) 5.2.0
Operating System:     macOS
Power Supply:        N/A

Problem Description
ESP-NOW example in master fails at esp_wifi_set_channel command in both station and softAp mode.
Expected Behavior
ESP-NOW examples to work as per Readme. For esp_wifi_set_channel to execute without error.
Actual Behavior
E (747) wifi: esp_wifi_set_channel 1454 wifi not start or sniffer not enabled, should start wifi or enable sniffer first
ESP_ERROR_CHECK failed: esp_err_t 0x3002 (ESP_ERR_WIFI_NOT_STARTED) at 0x4008b7ac

Steps to repropduce

step1
...

// It helps if you attach a picture of your setup/wiring here.
Code to reproduce this issue
cd $IDF_PATH/examples/wifi/espnow
make flash monitor

Debug Logs
I (393) cpu_start: App cpu up.
I (418) heap_init: Initializing. RAM available for dynamic allocation:
I (424) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (430) heap_init: At 3FFB9228 len 00026DD8 (155 KiB): DRAM
I (437) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (443) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (449) heap_init: At 400905C4 len 0000FA3C (62 KiB): IRAM
I (456) cpu_start: Pro cpu start user code
I (474) spi_flash: detected chip: generic
I (475) spi_flash: flash io: dio
I (475) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
I (577) wifi: wifi driver task: 3ffc0b18, prio:23, stack:3584, core=0
I (577) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE
I (577) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE
I (607) wifi: wifi firmware version: 932678a
I (607) wifi: config NVS flash: enabled
I (607) wifi: config nano formating: disabled
I (607) wifi: Init dynamic tx buffer num: 32
I (607) wifi: Init data frame dynamic rx buffer num: 32
I (617) wifi: Init management frame dynamic rx buffer num: 32
I (617) wifi: Init management short buffer num: 32
I (627) wifi: Init static rx buffer size: 1600
I (627) wifi: Init static rx buffer num: 10
I (637) wifi: Init dynamic rx buffer num: 32
I (727) phy: phy_version: 4102, 2fa7a43, Jul 15 2019, 13:06:06, 0, 0
I (727) wifi: mode : softAP (80:7d:3a:8f:73:d5)
I (727) wifi: Total power save buffer number: 16
I (737) wifi: Init max length of beacon: 752/752
I (737) wifi: Init max length of beacon: 752/752
E (747) wifi: esp_wifi_set_channel 1454 wifi not start or sniffer not enabled, should start wifi or enable sniffer first
ESP_ERROR_CHECK failed: esp_err_t 0x3002 (ESP_ERR_WIFI_NOT_STARTED) at 0x4008b7ac

Other items if possible
espnow_error.zip
E (747) wifi: esp_wifi_set_channel 1454 wifi not start or sniffer not enabled, should start wifi or enable sniffer first
ESP_ERROR_CHECK failed: esp_err_t 0x3002 (ESP_ERR_WIFI_NOT_STARTED) at 0x4008b7ac
0x4008b7ac: _esp_error_check_failed at /Users/aturner/Code/Hardware/esp/esp-idf/components/esp32/panic.c:739

file: "/Users/aturner/Code/Hardware/esp/esp-idf/examples/wifi/espnow/main/espnow_example_main.c" line 56
func: example_wifi_init
expression: esp_wifi_set_channel(CONFIG_ESPNOW_CHANNEL, 0)

ELF file SHA256: 2c4833bb6dade5e36082cee79fbc0b4836774d831ee44cef4991977a2e70f0fb

Backtrace: 0x4008b221:0x3ffbaf30 0x4008b7af:0x3ffbaf50 0x400d2acd:0x3ffbaf70 0x400d3236:0x3ffbb030 0x400d0fba:0x3ffbb050 0x4008d759:0x3ffbb070
0x4008b221: invoke_abort at /Users/aturner/Code/Hardware/esp/esp-idf/components/esp32/panic.c:734

0x4008b7af: _esp_error_check_failed at /Users/aturner/Code/Hardware/esp/esp-idf/components/esp32/panic.c:740

0x400d2acd: example_wifi_init at /Users/aturner/Code/Hardware/esp/esp-idf/examples/wifi/espnow/main/espnow_example_main.c:56 (discriminator 1)

0x400d3236: app_main at /Users/aturner/Code/Hardware/esp/esp-idf/examples/wifi/espnow/main/espnow_example_main.c:373

0x400d0fba: main_task at /Users/aturner/Code/Hardware/esp/esp-idf/components/esp32/cpu_start.c:569

0x4008d759: vPortTaskWrapper at /Users/aturner/Code/Hardware/esp/esp-idf/components/freertos/port.c:403

Rebooting...
ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:7008

Still happening in v3.3 it'd seem v3.3-127-g0a0f2caa1
I (372) espnow_example: WiFi started
ESP_ERROR_CHECK failed: esp_err_t 0x3002 (ESP_ERR_WIFI_NOT_STARTED) at 0x400876c4

@alexanderturner this is NOT bug, in the latest v3.3, we added the limitation to esp_wifi_set_channel(), it can be called only both of following conditions are met:

esp_wifi_start() is returned
sniffer is enabled

Thanks @liuzfesp!
The issue is that the example crashes during runtime; the example provided in ESP-IDF. The issue is to correct the example.
Alex

Really need some help with this one - any follow up from Espressif?

this is NOT bug, in the latest v3.3, we added the limitation to esp_wifi_set_channel(), it can be called only both of following conditions are met:

esp_wifi_start() is returned
sniffer is enabled

Should always work unless STA mode is connected to an AP or a scan is in progress.  Required for espnow and esp_wifi_80211_tx.
https://github.com/espressif/esp-idf/issues/4005

Thanks @negativekelvin any chance you can try run the example and see what's happening. I've tried to get espnow running a few times now and I'm not having any luck at all - I'd love to avoid spinning up a BLE stack if possible

Anything here guys? @negativekelvin @liuzfesp

For now, fix is to just not set the channel https://github.com/espressif/esp-idf/commit/b9da410cbb037aedcea1deeee8b0e2d72262603c#diff-71d4a3ad5cf2dcb1e3f6bd8eff374134
But hopefully it will be fixed later so that user can set any channel

@negativekelvin I'm trying to use this to discover ESP32's, is it possible to discover them without setting the channel?

If they all stay on default channel

Thanks - not sure if I can guarantee that. Looking to discover ESP's then have them join the 'master's' AP which may be on a different channel. Makes it hard to gaurantee that they'll stay on the same channel.
Is there another way to change the channel? Even if I bounce it into another mode - this is very valuable to me as it prevents me from enabling the BLE stack

@alexanderturner

I'm trying to use this to discover ESP32's

I'm sorry I can't understand you. Do you mean you  want to discover an ESP32 with ESP-NOW ?

Hi @zhangyanjiaoesp that's right. In a network of ESP32's, I want a "master" to be able to discover a "slave" so it can adopt it.

@alexanderturner
You mean your "slaves" (or "master")have connected with other APs, and they are in different channels, you want to use 'esp_wifi_set_channel()' to change the channel of the "master" (or "slave") , then "master" can discover them, is that right?

Correct @zhangyanjiaoesp

@alexanderturner
Currently, you can only call esp_wifi_set_channel() after wifi initialized and sniffer enabled. We are trying to modify this function to let it can set the channel as long as the wifi initialized, thus you can set the channel in STA mode. But we will still don't support setting channel when the STA has connected to an AP, or when STA is scanning, or STA is connecting to an AP.

我碰到了同样的情况
代码如下:
 if(!radio_inited) {
        esp_initialize();
        if(!wifi_started) {
            ESP_LOGE("radio", "init and start wifi");
            wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
            ESP_ERROR_CHECK(esp_wifi_init(&cfg));
            ESP_ERROR_CHECK(esp_wifi_set_storage(WIFI_STORAGE_RAM));
            ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA));
            ESP_ERROR_CHECK(esp_wifi_start());
            wifi_started = true;
            ESP_LOGE("radio", "wifi started!");
        }
        ESP_LOGE("radio", "wifi status = %d", wifi_started);
        ESP_ERROR_CHECK(esp_wifi_set_channel(radio_channel, 0));

错误信息:
>>> radio.on()
E (17260) radio: init and start wifi
I (17290) wifi: wifi driver task: 3ffd31fc, prio:23, stack:3584, core=0
I (17732) wifi: wifi firmware version: 10f4364
I (17742) wifi: config NVS flash: enabled
I (17742) wifi: config nano formating: disabled
I (17742) wifi: Init dynamic tx buffer num: 32
I (17742) wifi: Init data frame dynamic rx buffer num: 32
I (17752) wifi: Init management frame dynamic rx buffer num: 32
I (17752) wifi: Init management short buffer num: 32
I (17762) wifi: Init static rx buffer size: 1600
I (17762) wifi: Init static rx buffer num: 10
I (17762) wifi: Init dynamic rx buffer num: 32
I (18032) wifi: mode : sta (3c:71:bf:9b:be:58)
E (18032) radio: wifi started!
E (18032) radio: wifi status = 1
E (18032) wifi: esp_wifi_set_channel 1464 wifi not start or sniffer not enabled, should start wifi or enable sniffer first
ESP_ERROR_CHECK failed: esp_err_t 0x3002 (ESP_ERR_WIFI_NOT_STARTED) at 0x40091520
file: "builtins/modradio.c" line 65
func: radio_enable
expression: esp_wifi_set_channel(radio_channel, 0)

同样的代码用IDF 3.3的版本是没问题的,但是现在的4.0的就报错,这个功能对我的项目很重要,设定channel功能也是必要的.
请问什么时候能修复这个问题呢?

I think it will be merged into IDF this month.

I have the same error/issue using the ESP32 on PlatformIO under the Arduino framework.
 tcpip_adapter_init();
      wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
      ESP_ERROR_CHECK(esp_wifi_init(&cfg));
      ESP_ERROR_CHECK(esp_wifi_set_country(&wifi_country));
      ESP_ERROR_CHECK(esp_wifi_set_storage(WIFI_STORAGE_RAM));
      ESP_ERROR_CHECK(esp_wifi_set_mode(ESPNOW_WIFI_MODE));
      ESP_ERROR_CHECK(esp_wifi_start());
      ESP_ERROR_CHECK(esp_wifi_set_channel(_channel, WIFI_SECOND_CHAN_NONE));

      // Initialize ESPNOW and register sending & receiving callback function
      ESP_ERROR_CHECK(esp_now_init());
      ESP_ERROR_CHECK(esp_now_register_send_cb(espnow_send_cb));
      ESP_ERROR_CHECK(esp_now_register_recv_cb(espnow_recv_cb));

      // Set primary master key
      ESP_ERROR_CHECK(esp_now_set_pmk(_esp_pmk));

What needs to be done to make sure the conditions are met please? This is code that used to work.

@alexanderturner I'm not sure exactly where you should change the code in your example, but I had to do this to get it to work as per the documentation.
    //These two steps are required BEFORE the channel can be set
    // As per the documentation from Espressif:
    // https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/network/esp_wifi.html#_CPPv420esp_wifi_set_channel7uint8_t18wifi_second_chan_t
    ESP_ERROR_CHECK(esp_wifi_start());
    ESP_ERROR_CHECK(esp_wifi_set_promiscuous(true));

    ESP_ERROR_CHECK(esp_wifi_set_channel(_channel, WIFI_SECOND_CHAN_NONE));


Push on remote after change name branch

Version: 1.75.1 (user setup)
Commit: 441438abd1ac652551dbe4d408dfcec8a499b8bf
Data: 2023-02-08T21:32:34.589Z
Electron: 19.1.9
Chromium: 102.0.5005.194
Node.js: 16.14.2
V8: <IP_ADDRESS>-electron.0
SO: Windows_NT x64 10.0.19045
Em área restrita: No
Steps to Reproduce:

Change the branch name after the push on remote using the git commant git branch -m
Try push to remote repository

@alexandremsouza1, are you running the git branch -m in the integrated Terminal?
Are you able to reproduce the same behaviour if you try to use the "Git: Rename Branch..." command?

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!


stop the deadline timer in Stream.Read and Write

When a deadline is set on a stream, the time.Time is saved in the deadline member variable.
When Read or Write are called, and deadline is set, we start a timer in order to return these calls on timer expiration. In the common case, deadlines don't expire, and Read and Write calls return before expiration of the timer. We need to make sure to stop this timer, otherwise it will leak.
This is the more probable reason for the performance issue reported in https://github.com/ipfs/go-ipfs/issues/7263, as every single Read and Write call that returns before the deadline leaks a new timer. This will accumulate a lot more timers than the timer leak that happened when closing a session, or when we received a duplicate Initial, which was fixed in #2516.
cc @Stebalien

Codecov Report

Merging #2519 into master will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master    #2519   +/-   ##
=======================================
  Coverage   86.14%   86.14%
=======================================
  Files         122      122
  Lines        9536     9538    +2
=======================================
+ Hits         8214     8216    +2
  Misses        984      984
  Partials      338      338

Impacted Files
Coverage Δ

receive_stream.go
96.43% <100.00%> (+0.02%)
:arrow_up:

send_stream.go
92.99% <100.00%> (+0.03%)
:arrow_up:

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 c0b6d4e...996dd42. Read the comment docs.


Fix typo

GitHub action -> GitHub Action

@changeworld : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@PatrickFarley,
Can you review the proposed changes?
IMPORTANT: When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge. Thanks.

#sign-off


Implement uv help manually instead of using Clap default

Extends #4772
Implements uv help ourselves so we can do things like #4909
Adds hints to use uv help for more details during short help display.

Fixed the panic :)

Should these be different?
puffin on  zb/cli-help-cmd [$] is 📦 v0.2.23 via 🐍 v3.12.3 via 🦀 v1.79.0
❯ cargo run -- python --help
   Compiling uv-cli v0.0.1 (/Users/crmarsh/workspace/puffin/crates/uv-cli)
   Compiling uv v0.2.23 (/Users/crmarsh/workspace/puffin/crates/uv)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.81s
     Running `target/debug/uv python --help`
Manage Python installations

Usage: uv python [OPTIONS] <COMMAND>

Commands:
  list       List the available Python installations
  install    Download and install Python versions
  find       Search for a Python installation
  dir        Show the uv Python installation directory
  uninstall  Uninstall Python versions

Options:
  -q, --quiet                                  Do not print any output
  -v, --verbose...                             Use verbose output
      --color <COLOR_CHOICE>                   Control colors in output [default: auto] [possible values: auto, always, never]
      --native-tls                             Whether to load TLS certificates from the platform's native certificate store [env: UV_NATIVE_TLS=]
      --offline                                Disable network access, relying only on locally cached data and locally available files
      --python-preference <PYTHON_PREFERENCE>  Whether to prefer using Python from uv or on the system [possible values: only-managed, installed, managed, system, only-system]
      --python-fetch <PYTHON_FETCH>            Whether to automatically download Python when required [possible values: automatic, manual]
  -n, --no-cache                               Avoid reading from or writing to the cache [env: UV_NO_CACHE=]
      --cache-dir <CACHE_DIR>                  Path to the cache directory [env: UV_CACHE_DIR=]
      --config-file <CONFIG_FILE>              The path to a `uv.toml` file to use for configuration [env: UV_CONFIG_FILE=]
  -h, --help                                   Print help
  -V, --version                                Print version

Use `uv help python` for more details.
puffin on  zb/cli-help-cmd [$] is 📦 v0.2.23 via 🐍 v3.12.3 via 🦀 v1.79.0 took 3s
❯ cargo run -- help python
   Compiling uv-cli v0.0.1 (/Users/crmarsh/workspace/puffin/crates/uv-cli)
   Compiling uv v0.2.23 (/Users/crmarsh/workspace/puffin/crates/uv)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.83s
     Running `target/debug/uv help python`
Manage Python installations

Usage: python <COMMAND>

Commands:
  list       List the available Python installations
  install    Download and install Python versions
  find       Search for a Python installation
  dir        Show the uv Python installation directory
  uninstall  Uninstall Python versions
  help       Print this message or the help of the given subcommand(s)

Options:
  -h, --help
          Print help (see a summary with '-h')

Yes they should be different but we should be displaying the long-form documentation for all those options in the second invocation. Will investigate that...

Ah I pushed a fix to #4909 but not here by accident.


Implementing custom test assertions which reference both input and output

I'm enjoying getting to know Prompt Foo - thank you for the effort and for sharing the knowledge!
I am not particularly familiar with JS or TypeScript, so I've been trying to implement a set of evaluation metrics we've been using for a specific use case e.g.:

Word ratio: Calculate the ratio of the number of words in the output to the number of words in the input.
Word length ratio: Calculate the ratio of the mean length of words in the output to the mean length of words in the output.

Both of these metrics reference the input and output for each LLM call.
Ideally I'd implement these by importing a module via the Python test assertion functionality, but looking at assertions.js I can see that would not work without some modifications (I don't think I can import a module within a call to Python'sprint() function).
So the options available to me are to:

build some Javascript equivalents and include these over multiple lines in promptfooconfig.yaml. This feels a bit cumbersome
modify assertions.js to import the function I need. Sounds fine, but will break following an update!
implement a new test assertion (or two) to suit my needs.

I just wanted to ask if I might be missing a trick here before going down one of these paths? While the Python function is great for running say an anonymous function, or a tiny fragment of a Python script, it would be much more useful if an imported function could be called referencing context.vars and output as parameters.

Hi @richardguinness,
It sounds like it might help if the javascript and python assertion types could import full files, similar to the prompt functions capability.
- tests:
  - assert:
      - type: javascript
        value: myassert.js

In myassert.js:
module.exports = (output, context) => {
  console.log(`Check ${output} and ${JSON.stringify(context.vars)}...`);
};

Does this sound like something you'd use?

Yes indeed this would be brilliant, so long as context and output were made available to the called Python script (by way of command line arguments?).

(Accidentally closed!)

This change has been landed on main and will be published in the next release.  It is documented here: https://promptfoo.dev/docs/configuration/expected-outputs#load-assertions-from-external-file

Bravo - thank you!

Just to confirm the thinking here:

Use Python .py (or .js) files for both prompts and a given assertion's value fields
Files use a context['vars']['topic'] (Python syntax) to access variables

And that's how one can distribute vars to both input and expected output?

Yep!

This is really great to add a custom metric, e.g., F1 score on a classification task.
However, I'm not sure how to

add multiple metrics in a python call, e.g., precision and recall. Perhaps a Grading Result ComponentResult could help but not sure how to label different metrics when returning this dictionary/json object.
use a custom test file (-t tests.csv) along with a custom python metric file. It seems the -t overrides the python metric in conf file altogether. I have temporarily fixed by repeating all csv rows inside the config itself (not ideal).


RESQPY Refactoring - organize.py

Refactor organize.py to make it easier to work with and increase its unit test coverage. Carry out the following steps:

[x] Separate the existing classes in this file into multiple files.
[x] Break down the existing functions / methods into smaller, less complex methods.
[ ] Add unit tests to test each function that has been created, including as many different code paths as possible.

Code has been refactored, but we should add more unit test coverage, particularly around Geo Bodies and Strata Chrono pairs and equivalents of extra metadata.


Add support for Segment's

Relevant Chart.Js Docs
The given solution is marketable hacky, but with the current options provided by web assembly, I believe this is the best we can reasonably expect.

Excellent PR! Thank you! Left a couple comments, and other changes worth sweeping in but this is excellent, might need a cargo fmt before merging :).

One thing that might be useful is an expansion to the readme in the repo to explain in further detail some of the more unconventional components/workarounds in this library. Will open a new PR and potentially request your assistance with that.
Thanks!


invalid literal for int() with base 10

Traceback (most recent call last):
  File "cropset.py", line 19, in <module>
    main()
  File "cropset.py", line 16, in main
    obda.reduceDatasetByRois(offset = offset, outputImageDirectory = images_output_path, outputAnnotationDirectory = annotations_output_path)
  File "/home/ryan/anaconda3/envs/impy/lib/python3.6/site-packages/impy/ObjectDetectionDataset.py", line 391, in reduceDatasetByRois
    outputAnnotationDirectory = outputAnnotationDirectory)
  File "/home/ryan/anaconda3/envs/impy/lib/python3.6/site-packages/impy/ObjectDetectionDataset.py", line 447, in reduceImageDataPointByRoi
    annotation = ImageAnnotation(path = annotationPath)
  File "/home/ryan/anaconda3/envs/impy/lib/python3.6/site-packages/impy/ImageAnnotation.py", line 25, in __init__
    self.boundingBoxes = self.getBoundingBoxes(self.objects)
  File "/home/ryan/anaconda3/envs/impy/lib/python3.6/site-packages/impy/ImageAnnotation.py", line 68, in getBoundingBoxes
    xmin = int(coordinates.find("xmin").text)
ValueError: invalid literal for int() with base 10: '897.0416467209191'

The XML in part:
...
    <bndbox>
        <xmin>897.0416467209191</xmin>
        <ymin>501.42446808510635</ymin>
        <xmax>1010.0909526089038</xmax>
        <ymax>545.5436170212765</ymax>
    </bndbox>
</object><object>
    <name>test</name>
    <pose>Unspecified</pose>
    <truncated>0</truncated>
    <difficult>0</difficult>
    <bndbox>
        <xmin>848.32934418382</xmin>
        <ymin>499.586170212766</ymin>
        <xmax>954.0258496888464</xmax>
        <ymax>551.0585106382979</ymax>
    </bndbox>

...

I "fixed" it for me. I replaced all instances of int with float. Util.py and ObjectDetectionDataset.py with some index issues were the only 2 I had to change back


Rename file

Hi. Does it possible rename file before upload?

Sadly not, but you could setup a requestPostData object to map the File objects to their final filename, and then consult that map on the back-end to rename them individually.

I see. Thanks man.


Estute/disable a11y services

We don't seem to need this anymore, tests are running fine without it.


Animate dinamically during scroll

Hi to all,
I love AOS and I'm using it in all my projects, but I'm trying to understand if there is a way to animate my elements during the scroll dinamically, I mean that the animation doesn't starts end finish after  reaching the trigger position, but runs and stops simultaneously with the movement of my scroll up and down. I found scrollmagic.js that is doing this, but maybe there is way to obtain the same effect with AOS, or at least a suggestion on how to avoid the use of another library.
many thanks

You're right on that this is usually done with scrollmagic.js.
Depending on how heavy the animation is, you can set a CSS variable with javascript and dynamically update it on scroll/resize. Then set your transform value in CSS to equal the variable set on the body/wrapper element. You could theoretically even use a [data-aos] CSS selector to combine the two.
As for any native AOS functionality, this library only really checks for the moment the item enters your screen/leaves, and doesn't update anything in between.

thank you so much for your support.
regards from Italy


Unsupervised Inpars model checkpoints?

Hi, thanks for the open-sourced code, model checkpoints, and generated queries.
Im looking for the unsupervised inpars models checkpoints that are listed in Table 1 of https://dl.acm.org/doi/pdf/10.1145/3477495.3531863. But I could find them on huggingface hub.
Could you have me with that? thanks!

Hi @ArvinZhuang
Thanks for the interest in our work!
The models are available on HF hub: https://huggingface.co/zeta-alpha-ai

Hi @lhbonifacio, seems all the available models are inpar-v2 which are all based on ms marco tuned monoT5? I'm actually interested in the inpar models that are not originally initialized with msmarco-tuned monoT5 (row 5 in the table)

Hi @ArvinZhuang.
We've upload the InPars-v1 models (from scratch) to our HuggingFace repo.

Hi @lhbonifacio, that's what I exactly want! thanks a lot!


how to increase or decrease call-home timeout & no.of attempts

Hi @michalvasko , i want to increase or decrease the timeout of call-home in run-time & i want to limit call-home operation re-attempt for particular number of times , could you please suggest me a better approach

You have not mentioned details but you can find some timeouts in this YANG configuration subtree that you can adjust and the number of attempts is separately here.

Hello @michalvasko,
In O-RAN M-Plane specification, there are similar items stated such as re-call-home-no-ssh-timer and max-call-home-attempts in o-ran-operations.yang (revision 2021-12-01).
O-RAN.WG4.MP.0-v09.00.pdf
-> 6.3 NETCONF call home to O-RU controller(s) (page 32 - 33)
module: o-ran-operations
+--rw operational-info
+--rw re-call-home-no-ssh-timer? (default 60 seconds)
+--rw max-call-home-attempts?  (range "0 .. 20")
I am not sure that @chendrashekarp refered to these.
I do understand that netopeer2 does not handle this o-ran-operations.yang, but operation scenarios are closely related to netopeer2-server itself.
max-call-home-attempts might refer to reconnect-strategy max-attempts in ietf-netconf-server.yang.
However, I think re-call-home-no-ssh-timer is not related to periodic-connection timer.
Do you have any static or dynamic timer like re-call-home-no-ssh-timer in netopeer2-server configuration?
Thanks always.
Best Regards,
James Park

Do you have any static or dynamic timer like re-call-home-no-ssh-timer in netopeer2-server configuration?

Probably not, it is the compile-time variable CALL_HOME_BACKOFF_WAIT of libnetconf2. This parameter is not part of ietf-netconf-server YANG modules so we do not support it. However, I have brought this problem to attention of the WG and it seems it will be added and then we will support it directly.

Hi @michalvasko , as per leaf description , this
container reconnect-strategy {
"The reconnection strategy directs how a NETCONF server
reconnects to a NETCONF client, after discovering its
connection to the client has dropped, even if due to a
reboot.  The NETCONF server starts with the specified
endpoint and tries to connect to it max-attempts times
before trying the next endpoint in the list
} &
leaf max-attempts {
type uint8 {
range "1..max";
}
default "3";
description
"Specifies the number times the NETCONF server tries
to connect to a specific endpoint before moving on
to the next endpoint in the list (round robin).";
}
, this max-attempts will work only if there is connection drop & not for qst time connection ? is my understanding correct and if yes i need a parameters to work exactly
module: o-ran-operations
+--rw re-call-home-no-ssh-timer? (default 60 seconds)
+--rw max-call-home-attempts? (range "0 .. 20")

Hi @michalvasko , yes for parameter max-call-home-attempts , will it applicable for 1st time connecting to client also or after there is any connection then only this max-call-home-attempts works?
because i set the value as 2 in for max-call-home-attempts in running data store & i am observing the log as failing after 5 attempts

Wait, you are actually setting the value of max-call-home-attempts of YANG o-ran-operations? Obviously, that is not going to work because that module is not implemented, netopeer2-server implements ietf-netconf-server, so you will have to adjust its node max-attempts.

Hi @michalvasko, sorry for the wrong one , I am setting max-attempts from ietf-netconf-server yang only (netopeer2-version 2.0.35)

Okay, then it should work. However, I seem to vaguely remember some issue like this and you using an old year version may just be the problem. So, try to update to the latest released version. If the problem persist, let us know.

Hi @michalvasko , I have tried with new version still the behavior is same attaching the log for reference.
netopeer2-server -d -v 3:
[INF]: SR: Triggering "ietf-netconf-acm" "done" event on enabled data.
[INF]: LN: Call Home client "default-client" connecting...
[INF]: LN: Trying to connect via IPv4 to <IP_ADDRESS>:4334.
[INF]: LN: Timed out after 5s (Operation now in progress).
[INF]: LN: Trying to connect the pending socket 47.
[INF]: LN: Timed out after 5s (Operation now in progress).
[INF]: LN: Trying to connect the pending socket 47.
[INF]: LN: Timed out after 5s (Operation now in progress).
[INF]: LN: Trying to connect the pending socket 47.
[INF]: LN: Timed out after 5s (Operation now in progress).
[INF]: LN: Trying to connect the pending socket 47.
[INF]: LN: Timed out after 5s (Operation now in progress).
[ERR]: LN: Failed to connect socket 47 after 5 retries, closing.
[INF]: LN: Trying to connect via IPv4 to <IP_ADDRESS>:4334.

sysrepocfg -X -x "/ietf-netconf-server:netconf-server/call-home/netconf-client/reconnect-strategy/*"
<netconf-server xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-server">
  <call-home>
    <netconf-client>
      <name>default-client</name>
      <reconnect-strategy>
        <max-attempts>3</max-attempts>
      </reconnect-strategy>
    </netconf-client>
  </call-home>
</netconf-server>

netopeer2-server -V:
netopeer2-server 2.1.36

It seems there were 2 things mixed up. I have cleaned the code and now it should work correctly, with logging improved as well.

Hi @chendrashekarp,
Are you observing the expected behavior for re-call-home-no-ssh-timer and max-call-home-attempts in o-ran-operations.yang after setting period and max-attempts respectively in ietf-netconf-server.yang in latest version?

Hi @saraaibak , Just max-call-home-attempts was working as expected & for re-call-home-no-ssh-timer we did some changes in the libraries


http://zap.jackmallers.com/suggested-peers returns a 404

When the app starts up, it tries to connect to http://zap.jackmallers.com/suggested-peers. Currently, this URL is returning a 404. This is causing errors in the console:
GET http://zap.jackmallers.com/suggested-peers 404 (Not Found)

warning.js:33 Warning: Failed prop type: The prop `suggestedNodes` is marked as required in `SuggestedNodes`, but its value is `undefined`.

This seems to prevent the app from getting past the onboarding phase on startup with the user being stuck on the final 'loading' screen.
What is http://zap.jackmallers.com/suggested-peers supposed to provide?
Is it necessary?

It provides an array of nodes but the app shouldn't break if the API call fails. I'll work on a fix


cmd/link: panic: runtime error: invalid memory address or nil pointer dereference when using -buildmode=shared -linkshared on ppc64le

Please answer these questions before submitting your issue. Thanks!

What version of Go are you using (go version)?
go version go1.6.1 linux/ppc64le
Also fails with latest from tip.
What operating system and processor architecture are you using (go env)?
Ubuntu 16.04
GOARCH="ppc64le"
GOBIN=""
GOEXE=""
GOHOSTARCH="ppc64le"
GOHOSTOS="linux"
GOOS="linux"
GOPATH=""
GORACE=""
GOROOT="/usr/lib/go-1.6"
GOTOOLDIR="/usr/lib/go-1.6/pkg/tool/linux_ppc64le"
GO15VENDOREXPERIMENT="1"
CC="gcc"
GOGCCFLAGS="-fPIC -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"
What did you do?
If possible, provide a recipe for reproducing the error.
A complete runnable program is good.
A link on play.golang.org is best.

Tried to build kubernetes

What did you expect to see?
Successful build
What did you see instead?
Failed build.

First, with the cloned code as is, the error is:  relocation truncated to fit: R_PPC64_REL24 from several lines due to the size of the packages and binary getting too large.  I believe the use of shared libraries should help this problem, so I modified hack/lib/golang.sh to use -buildmode=shared and -linkshared.
go install "${goflags[@]:+${goflags[@]}}" -x -buildmode=shared -ldflags "${goldflags} -linkshared" "${nonstatics[@]:+${nonstatics[@]}}
After adding that I get this error:
/usr/lib/go-1.6/pkg/tool/linux_ppc64le/link -o $WORK/lib.so -L $WORK -installsuffix dynlink -buildmode=shared -X k8s.io/kubernetes/pkg/version.buildDate=2016-05-20T14:18:29Z -X k8s.io/kubernetes/pkg/version.gitCommit=b7a31ad2615524cefcb82ed4b3832e2105147410 -X k8s.io/kubernetes/pkg/version.gitTreeState=dirty -X k8s.io/kubernetes/pkg/version.gitVersion=v1.3.0-alpha.4.191+b7a31ad2615524-dirty -X k8s.io/kubernetes/pkg/version.gitMajor=1 -X k8s.io/kubernetes/pkg/version.gitMinor=3+ -linkshared -extld=powerpc64le-linux-gnu-gcc runtime/cgo=/usr/lib/go-1.6/pkg/linux_ppc64le_dynlink/runtime/cgo.a
//# /tmp/go-build298159653/lib.so
missing Go type information for global symbol: k8s.io/kubernetes/pkg/version.buildDate size 16
missing Go type information for global symbol: k8s.io/kubernetes/pkg/version.gitCommit size 16
missing Go type information for global symbol: k8s.io/kubernetes/pkg/version.gitMajor size 16
missing Go type information for global symbol: k8s.io/kubernetes/pkg/version.gitMinor size 16
missing Go type information for global symbol: k8s.io/kubernetes/pkg/version.gitTreeState size 16
missing Go type information for global symbol: k8s.io/kubernetes/pkg/version.gitVersion size 16
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x8 pc=0x1172dc]
goroutine 1 [running]:
panic(0x260e40, 0xc82000e160)
/usr/lib/go-1.6/src/runtime/panic.go:464 +0x3a0
cmd/link/internal/ld.defgotype(0xc821609680, 0x12)
/usr/lib/go-1.6/src/cmd/link/internal/ld/dwarf.go:1101 +0x3adc
cmd/link/internal/ld.Dwarfemitdebugsections()
/usr/lib/go-1.6/src/cmd/link/internal/ld/dwarf.go:2120 +0x960
cmd/link/internal/ppc64.asmb()
/usr/lib/go-1.6/src/cmd/link/internal/ppc64/asm.go:905 +0x1308
cmd/link/internal/ld.Ldmain()
/usr/lib/go-1.6/src/cmd/link/internal/ld/pobj.go:248 +0x20f4
cmd/link/internal/ppc64.Main()
/usr/lib/go-1.6/src/cmd/link/internal/ppc64/obj.go:44 +0x28
main.main()
/usr/lib/go-1.6/src/cmd/link/main.go:36 +0x540
To reproduce:
git clone https://github.com/kubernetes/kubernetes.git
cd kubernetes
make
Similar error happens with go built from latest master but the stack is somewhat different.  I did try removing the -X options to the link and the messages about "missing Go type... " didn't appear but the panic still happened.
/home/boger/golang/upstream/go/pkg/tool/linux_ppc64le/link -o $WORK/lib.so -L $WORK -installsuffix dynlink -buildmode=shared -X k8s.io/kubernetes/pkg/version.buildDate=2016-05-20T14:31:11Z -X k8s.io/kubernetes/pkg/version.gitCommit=b7a31ad2615524cefcb82ed4b3832e2105147410 -X k8s.io/kubernetes/pkg/version.gitTreeState=dirty -X k8s.io/kubernetes/pkg/version.gitVersion=v1.3.0-alpha.4.191+b7a31ad2615524-dirty -X k8s.io/kubernetes/pkg/version.gitMajor=1 -X k8s.io/kubernetes/pkg/version.gitMinor=3+ -linkshared -extld=powerpc64le-linux-gnu-gcc runtime/cgo=/home/boger/golang/upstream/go/pkg/linux_ppc64le_dynlink/runtime/cgo.a
//# /tmp/go-build839806022/lib.so
go.link.addmoduledata: missing Go type information for global symbol: k8s.io/kubernetes/pkg/version.buildDate size 16
go.link.addmoduledata: missing Go type information for global symbol: k8s.io/kubernetes/pkg/version.gitCommit size 16
go.link.addmoduledata: missing Go type information for global symbol: k8s.io/kubernetes/pkg/version.gitMajor size 16
go.link.addmoduledata: missing Go type information for global symbol: k8s.io/kubernetes/pkg/version.gitMinor size 16
go.link.addmoduledata: missing Go type information for global symbol: k8s.io/kubernetes/pkg/version.gitTreeState size 16
go.link.addmoduledata: missing Go type information for global symbol: k8s.io/kubernetes/pkg/version.gitVersion size 16
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x101c84]
goroutine 1 [running]:
panic(0x1f6d00, 0xc420010120)
/home/boger/golang/upstream/go/src/runtime/panic.go:500 +0x3a8
cmd/link/internal/ld.newtype(0xc421fafee0, 0xc420012360)
/home/boger/golang/upstream/go/src/cmd/link/internal/ld/dwarf.go:998 +0x3ab4
cmd/link/internal/ld.defgotype(0xc421fafee0, 0x12)
/home/boger/golang/upstream/go/src/cmd/link/internal/ld/dwarf.go:854 +0x3fc
cmd/link/internal/ld.dwarfgeneratedebugsyms()
/home/boger/golang/upstream/go/src/cmd/link/internal/ld/dwarf.go:1982 +0x930
cmd/link/internal/ld.dodata()
/home/boger/golang/upstream/go/src/cmd/link/internal/ld/data.go:1741 +0x3780
cmd/link/internal/ld.Ldmain()
/home/boger/golang/upstream/go/src/cmd/link/internal/ld/pobj.go:211 +0x1630
cmd/link/internal/ppc64.Main()
/home/boger/golang/upstream/go/src/cmd/link/internal/ppc64/obj.go:45 +0x28
main.main()
/home/boger/golang/upstream/go/src/cmd/link/main.go:36 +0x4c4

How much of the -buildmode=shared -linkshared options should work with ppc64le?  I see it is mentioned in the Go 1.6 release notes as being supported for ppc64le but I have not used it before.
I've been trying various ways to use it but can't make it work.
From looking through various documentation I need to make sure I have libstd.so, and possibly libcmd.so.  When I try to build using -buildmode=shared I am getting errors like this:
/home/boger/golang/ibm-go1.6/go/pkg/tool/linux_ppc64le/link -o $WORK/lib.so -L $WORK -installsuffix dynlink -buildmode=shared -X k8s.io/kubernetes/pkg/version.buildDate=2016-05-25T18:15:36Z -X k8s.io/kubernetes/pkg/version.gitCommit=025b0172774770f0d5eee3e9604c1a2d938976e0 -X k8s.io/kubernetes/pkg/version.gitTreeState=dirty -X k8s.io/kubernetes/pkg/version.gitVersion=v1.3.0-alpha.4.474+025b0172774770-dirty -X k8s.io/kubernetes/pkg/version.gitMajor=1 -X k8s.io/kubernetes/pkg/version.gitMinor=3+ -v -extldflags -Wl,--print-map -extld=powerpc64le-linux-gnu-gcc runtime/cgo=/home/boger/golang/ibm-go1.6/go/pkg/linux_ppc64le_dynlink/runtime/cgo.a
sync/atomic.StorePointer: sync/atomic.StoreUintptr: not defined
sync/atomic.SwapPointer: sync/atomic.SwapUintptr: not defined
sync/atomic.CompareAndSwapPointer: sync/atomic.CompareAndSwapUintptr: not defined
runtime.sync_atomic_CompareAndSwapUintptrÂ·f: sync/atomic.CompareAndSwapUintptr: not defined
runtime.sync_atomic_StoreUintptrÂ·f: sync/atomic.StoreUintptr: not defined
runtime.sync_atomic_SwapUintptrÂ·f: sync/atomic.SwapUintptr: not defined
I can see that the symbol sync/atomic.StoreUintptr is in my libstd.so, but it is not finding it, unless I need to do something to get it to find it.

It should work, but hasn't been deeply tested.  I suspect that it's the -X
arguments that are causing the problems you initially reported.
I don't understand that second link failure, it seems to be trying to link
runtime/cgo only, which makes no real sense. What commands are you running?
On 26 May 2016 at 06:33, Lynn Boger<EMAIL_ADDRESS>wrote:

How much of the -buildmode=shared -linkshared options should work with
ppc64le? I see it is mentioned in the Go 1.6 release notes as being
supported for ppc64le but I have not used it before.
I've been trying various ways to use it but can't make it work.
From looking through various documentation I need to make sure I have
libstd.so, and possibly libcmd.so. When I try to build using
-buildmode=shared I am getting errors like this:
/home/boger/golang/ibm-go1.6/go/pkg/tool/linux_ppc64le/link -o
$WORK/lib.so -L $WORK -installsuffix dynlink -buildmode=shared -X
k8s.io/kubernetes/pkg/version.buildDate=2016-05-25T18:15:36Z -X
k8s.io/kubernetes/pkg/version.gitCommit=025b0172774770f0d5eee3e9604c1a2d938976e0
-X k8s.io/kubernetes/pkg/version.gitTreeState=dirty -X
k8s.io/kubernetes/pkg/version.gitVersion=v1.3.0-alpha.4.474+025b0172774770-dirty
-X k8s.io/kubernetes/pkg/version.gitMajor=1 -X
k8s.io/kubernetes/pkg/version.gitMinor=3+ -v -extldflags -Wl,--print-map
-extld=powerpc64le-linux-gnu-gcc
runtime/cgo=/home/boger/golang/ibm-go1.6/go/pkg/linux_ppc64le_dynlink/runtime/cgo.a
sync/atomic.StorePointer: sync/atomic.StoreUintptr: not defined
sync/atomic.SwapPointer: sync/atomic.SwapUintptr: not defined
sync/atomic.CompareAndSwapPointer: sync/atomic.CompareAndSwapUintptr: not
defined
runtime.sync_atomic_CompareAndSwapUintptrÂ·f:
sync/atomic.CompareAndSwapUintptr: not defined
runtime.sync_atomic_StoreUintptrÂ·f: sync/atomic.StoreUintptr: not defined
runtime.sync_atomic_SwapUintptrÂ·f: sync/atomic.SwapUintptr: not defined
I can see that the symbol sync/atomic.StoreUintptr is in my libstd.so, but
it is not finding it, unless I need to do something to get it to find it.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/golang/go/issues/15770#issuecomment-221665360

I can't reproduce this (with the go 1.6.2 that's on yakkety):
(yakkety-ppc64el)root@diamond:~/kubernetes# git diff
diff --git a/hack/lib/golang.sh b/hack/lib/golang.sh
index 0ff6e97..2e766e7 100755
--- a/hack/lib/golang.sh
+++ b/hack/lib/golang.sh
@@ -454,7 +454,7 @@ kube::golang::build_binaries_for_platform() {
   else
     # Use go install.
     if [[ "${#nonstatics[@]}" != 0 ]]; then
-      go install "${goflags[@]:+${goflags[@]}}" \
+      go install -buildmode=shared -linkshared
"${goflags[@]:+${goflags[@]}}" \
         -ldflags "${goldflags}" \
         "${nonstatics[@]:+${nonstatics[@]}}"
     fi
(yakkety-ppc64el)root@diamond:~/kubernetes# make
hack/build-go.sh
Go version: go version go1.6.2 linux/ppc64le
+++ [0526 00:04:29] Building the toolchain targets:
    k8s.io/kubernetes/hack/cmd/teststale
+++ [0526 00:04:31] Building go targets for linux/ppc64le:
    cmd/kube-dns
    cmd/kube-proxy
    cmd/kube-apiserver
    cmd/kube-controller-manager
    cmd/kubelet
    cmd/kubemark
    cmd/hyperkube
    federation/cmd/federation-apiserver
    federation/cmd/federation-controller-manager
    plugin/cmd/kube-scheduler
    cmd/kubectl
    cmd/integration
    cmd/gendocs
    cmd/genkubedocs
    cmd/genman
    cmd/genyaml
    cmd/mungedocs
    cmd/genbashcomp
    cmd/genswaggertypedocs
    cmd/linkcheck
    examples/k8petstore/web-server/src
    vendor/github.com/onsi/ginkgo/ginkgo
    test/e2e/e2e.test
    test/e2e_node/e2e_node.test
+++ [0526 00:07:45] Placing binaries
(yakkety-ppc64el)root@diamond:~/kubernetes# echo $?
0

I doubt something between 1.6.1 and 1.6.2 fixed this but who knows.
On 26 May 2016 at 09:35, Michael Hudson-Doyle<EMAIL_ADDRESS>wrote:

It should work, but hasn't been deeply tested.  I suspect that it's the -X
arguments that are causing the problems you initially reported.
I don't understand that second link failure, it seems to be trying to link
runtime/cgo only, which makes no real sense. What commands are you running?
On 26 May 2016 at 06:33, Lynn Boger<EMAIL_ADDRESS>wrote:

How much of the -buildmode=shared -linkshared options should work with
ppc64le? I see it is mentioned in the Go 1.6 release notes as being
supported for ppc64le but I have not used it before.
I've been trying various ways to use it but can't make it work.
From looking through various documentation I need to make sure I have
libstd.so, and possibly libcmd.so. When I try to build using
-buildmode=shared I am getting errors like this:
/home/boger/golang/ibm-go1.6/go/pkg/tool/linux_ppc64le/link -o
$WORK/lib.so -L $WORK -installsuffix dynlink -buildmode=shared -X
k8s.io/kubernetes/pkg/version.buildDate=2016-05-25T18:15:36Z -X
k8s.io/kubernetes/pkg/version.gitCommit=025b0172774770f0d5eee3e9604c1a2d938976e0
-X k8s.io/kubernetes/pkg/version.gitTreeState=dirty -X
k8s.io/kubernetes/pkg/version.gitVersion=v1.3.0-alpha.4.474+025b0172774770-dirty
-X k8s.io/kubernetes/pkg/version.gitMajor=1 -X
k8s.io/kubernetes/pkg/version.gitMinor=3+ -v -extldflags -Wl,--print-map
-extld=powerpc64le-linux-gnu-gcc
runtime/cgo=/home/boger/golang/ibm-go1.6/go/pkg/linux_ppc64le_dynlink/runtime/cgo.a
sync/atomic.StorePointer: sync/atomic.StoreUintptr: not defined
sync/atomic.SwapPointer: sync/atomic.SwapUintptr: not defined
sync/atomic.CompareAndSwapPointer: sync/atomic.CompareAndSwapUintptr: not
defined
runtime.sync_atomic_CompareAndSwapUintptrÂ·f:
sync/atomic.CompareAndSwapUintptr: not defined
runtime.sync_atomic_StoreUintptrÂ·f: sync/atomic.StoreUintptr: not defined
runtime.sync_atomic_SwapUintptrÂ·f: sync/atomic.SwapUintptr: not defined
I can see that the symbol sync/atomic.StoreUintptr is in my libstd.so,
but it is not finding it, unless I need to do something to get it to find
it.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/golang/go/issues/15770#issuecomment-221665360

Building kubernetes is new to me so I'm still learning about the makefiles and what should get built.  And it seems to behave differently as commits are added to it,  so the behavior is not consistent.
If you pull from the latest then you must update the hack/lib/golang.sh file to enable builds for ppc64le.
+++ b/hack/lib/golang.sh
@@ -69,7 +69,7 @@ else
linux/amd64
linux/arm
linux/arm64

#linux/ppc64le # temporarily disabled due to a linking error

linux/ppc64le # temporarily disabled due to a linking error
)

@@ -79,7 +79,7 @@ else
linux/386
linux/arm
linux/arm64

#linux/ppc64le # temporarily disabled due to a linking error

linux/ppc64le # temporarily disabled due to a linking error
darwin/amd64
darwin/386
windows/amd64

The original error happens when building the hyperkube binary, and that error was a relocation truncation error due to the text section getting too large for the GNU linker to handle.  After the original failure, in some later commits it does build successfully, it just depends on the size that it ends up being or the length for the branch targets.  In any case, I was hoping that the use of -buildmode=shared -linkshared would resolve the original issue and allow the build to succeed but maybe that is a wrong assumption.  In any case I would like to understand how the buildmode and linkshared options should be used in this case even if it doesn't solve my original problem.
If the build of the hyperkube binary succeeds (without the -buildmode=shared -linkshared options) you should see these:
./_output/local/bin/linux/ppc64le/hyperkube
./_output/local/go/bin/hyperkube
Here's what I tried, and maybe I'm not using the options correctly.
I first did:
go install -buildmode=shared std
In my experiments, when I add -buildmode=shared -linkshared to 'go install' in golang.sh it doesn't build the hyperkube binary so it's not really doing what it needs to do.  Not sure if that is expected when using those options.
When I added just -bulidmode=shared, I get the errors I posted earlier, maybe that that is incorrect usage of the options.
Any comments or advice would be helpful.

@mwhudson
I am not able to reproduce the original error.  After lots of experimentation I can see that I was misunderstanding how these options should work.  It appears that each package that you want to be built as a shared library must be explicitly built with the -buildmode=shared -linkshared options.  I was working under the false assumption that the dependent packages would also get built as shared.
I think I have found a real bug with the used of -linkshared and -buildmode and not sure if it is ppc64le only.  I can change the title or close this one and open a new one.
If std has been built as a shared library and you try to use -buildmode=shared -linkshared with something that imports golang.org/x/sys/unix, you will get errors like this:
host link: "powerpc64le-linux-gnu-gcc" "-m64" "-gdwarf-2" "-Wl,-znow" "-o" "/tmp/go-build873207612/k8s.io/kubernetes/cmd/kubelet/_obj/exe/a.out" "-rdynamic" "/tmp/go-link-758373105/go.o" "/tmp/go-link-758373105/000000.o" "/tmp/go-link-758373105/000001.o" "/tmp/go-link-758373105/000002.o" "-L/home/boger/golang/go1.6/go/pkg/linux_ppc64le_dynlink/" "-Wl,-rpath=/home/boger/golang/go1.6/go/pkg/linux_ppc64le_dynlink/" "-lstd" "-g" "-O2" "-g" "-O2" "-g" "-O2"
/home/boger/golang/go1.6/go/pkg/tool/linux_ppc64le/link: running powerpc64le-linux-gnu-gcc failed: exit status 1
/usr/bin/ld: /tmp/go-link-758373105/go.o: In function local.k8s.io/kubernetes/vendor/golang.org/x/sys/unix.Syscall': (.text+0xbb0560): call to syscall.Syscall' lacks nop, can't restore toc; recompile with -fPIC
/usr/bin/ld: /tmp/go-link-758373105/go.o: In function local.k8s.io/kubernetes/vendor/golang.org/x/sys/unix.Syscall': (.text+0xbb0560): unresolvable R_PPC64_REL24 against syscall.Syscall'
/usr/bin/ld: /tmp/go-link-758373105/go.o: In function local.k8s.io/kubernetes/vendor/golang.org/x/sys/unix.Syscall6': (.text+0xbb0570): call to syscall.Syscall6' lacks nop, can't restore toc; recompile with -fPIC
/usr/bin/ld: /tmp/go-link-758373105/go.o: In function local.k8s.io/kubernetes/vendor/golang.org/x/sys/unix.Syscall6': (.text+0xbb0570): unresolvable R_PPC64_REL24 against syscall.Syscall6'
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
The instruction it is complaining about is a simple branch instruction.  The asm code looks like this:
// Just jump to package syscall's implementation for all these functions.
// The runtime may know about them.
TEXT    Â·Syscall(SB),NOSPLIT,$0-56
BR      syscallÂ·Syscall(SB)
TEXT Â·Syscall6(SB),NOSPLIT,$0-80
BR      syscallÂ·Syscall6(SB)
TEXT Â·RawSyscall(SB),NOSPLIT,$0-56
BR      syscallÂ·RawSyscall(SB)
TEXT Â·RawSyscall6(SB),NOSPLIT,$0-80
BR      syscallÂ·RawSyscall6(SB)
The ppc64le asm is just a branch.

Here is a simple way to reproduce the problem I found.  There are actually two problems.

If you use the -linkshared option with go get, it does not use linux_ppc64le_dynlink as the install directory.
go get -u -x -linkshared golang.org/x/sys/unix
cd .
git clone https://go.googlesource.com/sys /home/boger/golang.work/src/golang.org/x/sys
cd /home/boger/golang.work/src/golang.org/x/sys
git submodule update --init --recursive
cd /home/boger/golang.work/src/golang.org/x/sys
git show-ref
cd /home/boger/golang.work/src/golang.org/x/sys
git submodule update --init --recursive
WORK=/tmp/go-build954411439
mkdir -p $WORK/golang.org/x/sys/unix/_obj/
mkdir -p $WORK/golang.org/x/sys/
cd /home/boger/golang.work/src/golang.org/x/sys/unix
/home/boger/golang/go1.6/go/pkg/tool/linux_ppc64le/compile -o $WORK/golang.org/x/sys/unix.a -trimpath $WORK -dynlink -p golang.org/x/sys/unix -installsuffix dynlink -buildid c6471c5554bcf97afeb2aba390b30ab58fbaf41d -D _/home/boger/golang.work/src/golang.org/x/sys/unix -I $WORK -pack -asmhdr $WORK/golang.org/x/sys/unix/_obj/go_asm.h ./bluetooth_linux.go ./constants.go ./env_unix.go ./env_unset.go ./flock.go ./race0.go ./sockcmsg_linux.go ./sockcmsg_unix.go ./str.go ./syscall.go ./syscall_linux.go ./syscall_linux_ppc64x.go ./syscall_unix.go ./zerrors_linux_ppc64le.go ./zsyscall_linux_ppc64le.go ./zsysnum_linux_ppc64le.go ./ztypes_linux_ppc64le.go
/home/boger/golang/go1.6/go/pkg/tool/linux_ppc64le/asm -o $WORK/golang.org/x/sys/unix/_obj/asm.o -trimpath $WORK -I $WORK/golang.org/x/sys/unix/_obj/ -I /home/boger/golang/go1.6/go/pkg/include -D GOOS_linux -D GOARCH_ppc64le -D=GOBUILDMODE_shared=1 -dynlink ./asm.s
/home/boger/golang/go1.6/go/pkg/tool/linux_ppc64le/asm -o $WORK/golang.org/x/sys/unix/_obj/asm_linux_ppc64x.o -trimpath $WORK -I $WORK/golang.org/x/sys/unix/_obj/ -I /home/boger/golang/go1.6/go/pkg/include -D GOOS_linux -D GOARCH_ppc64le -D=GOBUILDMODE_shared=1 -dynlink ./asm_linux_ppc64x.s
pack r $WORK/golang.org/x/sys/unix.a $WORK/golang.org/x/sys/unix/_obj/asm.o $WORK/golang.org/x/sys/unix/_obj/asm_linux_ppc64x.o # internal
mkdir -p /home/boger/golang.work/pkg/linux_ppc64le/golang.org/x/sys/
cp $WORK/golang.org/x/sys/unix.a /home/boger/golang.work/pkg/linux_ppc64le/golang.org/x/sys/unix.a
If I use go get -d followed by go install -linkshared, it generates the correct directory:
go install -x -linkshared golang.org/x/sys/unix
WORK=/tmp/go-build696097881
mkdir -p $WORK/golang.org/x/sys/unix/_obj/
mkdir -p $WORK/golang.org/x/sys/
cd /home/boger/golang.work/src/golang.org/x/sys/unix
/home/boger/golang/go1.6/go/pkg/tool/linux_ppc64le/compile -o $WORK/golang.org/x/sys/unix.a -trimpath $WORK -dynlink -p golang.org/x/sys/unix -installsuffix dynlink -buildid c6471c5554bcf97afeb2aba390b30ab58fbaf41d -D _/home/boger/golang.work/src/golang.org/x/sys/unix -I $WORK -pack -asmhdr $WORK/golang.org/x/sys/unix/_obj/go_asm.h ./bluetooth_linux.go ./constants.go ./env_unix.go ./env_unset.go ./flock.go ./race0.go ./sockcmsg_linux.go ./sockcmsg_unix.go ./str.go ./syscall.go ./syscall_linux.go ./syscall_linux_ppc64x.go ./syscall_unix.go ./zerrors_linux_ppc64le.go ./zsyscall_linux_ppc64le.go ./zsysnum_linux_ppc64le.go ./ztypes_linux_ppc64le.go
/home/boger/golang/go1.6/go/pkg/tool/linux_ppc64le/asm -o $WORK/golang.org/x/sys/unix/_obj/asm.o -trimpath $WORK -I $WORK/golang.org/x/sys/unix/_obj/ -I /home/boger/golang/go1.6/go/pkg/include -D GOOS_linux -D GOARCH_ppc64le -D=GOBUILDMODE_shared=1 -dynlink ./asm.s
/home/boger/golang/go1.6/go/pkg/tool/linux_ppc64le/asm -o $WORK/golang.org/x/sys/unix/_obj/asm_linux_ppc64x.o -trimpath $WORK -I $WORK/golang.org/x/sys/unix/_obj/ -I /home/boger/golang/go1.6/go/pkg/include -D GOOS_linux -D GOARCH_ppc64le -D=GOBUILDMODE_shared=1 -dynlink ./asm_linux_ppc64x.s
pack r $WORK/golang.org/x/sys/unix.a $WORK/golang.org/x/sys/unix/_obj/asm.o $WORK/golang.org/x/sys/unix/_obj/asm_linux_ppc64x.o # internal
mkdir -p /home/boger/golang.work/pkg/linux_ppc64le_dynlink/golang.org/x/sys/
cp $WORK/golang.org/x/sys/unix.a /home/boger/golang.work/pkg/linux_ppc64le_dynlink/golang.org/x/sys/unix.a
But then if I use this testcase with the unix package I see the same errors as above:
package main

import (
"fmt"
"golang.org/x/sys/unix"
)
func main() {
fmt.Printf("pagesize: %d \n", unix.Getpagesize())
}
I see multiple errors.
go build -linkshared sharedtest.go
command-line-arguments
/home/boger/golang/go1.6/go/pkg/tool/linux_ppc64le/link: running gcc failed: exit status 1
/usr/bin/ld: /tmp/go-link-460846081/go.o: In function local.golang.org/x/sys/unix.(*mmapper).Lock': (.text+0x10c4): call to sync.(*Mutex).Lock' lacks nop, can't restore toc; recompile with -fPIC
/usr/bin/ld: /tmp/go-link-460846081/go.o: In function local.golang.org/x/sys/unix.(*mmapper).Lock': (.text+0x10c4): unresolvable R_PPC64_REL24 against sync.(*Mutex).Lock'
/usr/bin/ld: /tmp/go-link-460846081/go.o: In function local.golang.org/x/sys/unix.(*mmapper).Unlock': (.text+0x1114): call to sync.(*Mutex).Unlock' lacks nop, can't restore toc; recompile with -fPIC
/usr/bin/ld: /tmp/go-link-460846081/go.o: In function local.golang.org/x/sys/unix.(*mmapper).Unlock': (.text+0x1114): unresolvable R_PPC64_REL24 against sync.(*Mutex).Unlock'
/usr/bin/ld: /tmp/go-link-460846081/go.o: In function local.golang.org/x/sys/unix.Syscall': (.text+0x1128): call to syscall.Syscall' lacks nop, can't restore toc; recompile with -fPIC
/usr/bin/ld: /tmp/go-link-460846081/go.o: In function local.golang.org/x/sys/unix.Syscall': (.text+0x1128): unresolvable R_PPC64_REL24 against syscall.Syscall'
/usr/bin/ld: /tmp/go-link-460846081/go.o: In function local.golang.org/x/sys/unix.Syscall6': (.text+0x1138): call to syscall.Syscall6' lacks nop, can't restore toc; recompile with -fPIC
/usr/bin/ld: /tmp/go-link-460846081/go.o: In function local.golang.org/x/sys/unix.Syscall6': (.text+0x1138): unresolvable R_PPC64_REL24 against syscall.Syscall6'
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status

same problem happened here in x86_64 with go 1.6.2 too. the problem looked like the same no matter with '-x' option or not.
go install  -buildmode=shared -linkshared  -s -v -p 4  golang.org/x/text/...
[   53s] golang.org/x/text/unicode
[   53s] golang.org/x/text/unicode/rangetable
[   57s] panic: runtime error: invalid memory address or nil pointer dereference
[   57s] [signal 0xb code=0x1 addr=0x71 pc=0x414d9b]
[   57s]
[   57s] goroutine 20 [running]:
[   57s] panic(0x93d400, 0xc8200101e0)
[   57s] 	/usr/lib64/go/src/runtime/panic.go:481 +0x3e6
[   57s] main.(*builder).install(0xc820184d90, 0xc8202616c0, 0x0, 0x0)
[   57s] 	/usr/lib64/go/src/cmd/go/build.go:1630 +0x5b
[   57s] main.(*builder).do.func1(0xc8202616c0)
[   57s] 	/usr/lib64/go/src/cmd/go/build.go:1260 +0x3b2
[   57s] main.(*builder).do.func2(0xc8202b8bd0, 0xc820184d90, 0xc8204f6a40)
[   57s] 	/usr/lib64/go/src/cmd/go/build.go:1317 +0x156
[   57s] created by main.(*builder).do
[   57s] 	/usr/lib64/go/src/cmd/go/build.go:1323 +0x39e

@laboger, what's the status here? Go1.10?

I'm sorry I didn't see this sooner, sometimes I don't see the notifications for @laboger, not sure why or how to find out.
I just tried this, it still fails. This needs to be compiled as position independent (-shared) but a direct branch to an external target like this is not what the ext linker expects in position independent code. It is the following BR instructions that it is complaining about.
TEXT    ·Syscall(SB),NOSPLIT,$0-56
BR      syscall·Syscall(SB)
TEXT ·Syscall6(SB),NOSPLIT,$0-80
BR      syscall·Syscall6(SB)
TEXT ·RawSyscall(SB),NOSPLIT,$0-56
BR      syscall·RawSyscall(SB)
TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
BR      syscall·RawSyscall6(SB)
It should probably be done one way for PIC and another for non-PIC.

I looked at this a bit...  I think what needs to be done is if there is a BR (branch) with the target too far or in a different name space, then it needs to generate a code sequence like a trampoline, if compiled with -dynlink or -shared.


⚠ Samsung has degraded performance

In d256db6, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 1752 ms

Resolved: Samsung performance has improved in 5ddce90.


Android studio fix

Adds a gradle task that puts the android sdk at the bottom of the classpath, to make the process a bit less annoying. Now it's possible to add it to the run configurations, or as a dependency for some other task
Inspired by: https://github.com/sababado/gradle-android-add-dir/

This type of change should really be part of an IDE plugin, not part of the gradle plugin. Check out https://github.com/evant/android-studio-unit-test-plugin if you want compatibility with Android Studio.


Trigger type comparison mapping error

Hi,
The section on Pipeline-to-trigger relationship, the tumbling window trigger is a many-to-one relationship and not a one-to-one relationship.
You have the ability to create multiple triggers for a single pipeline. This may be interpreted incorrectly.
Kind regards

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

ID: 3d564675-f719-57fc-a406-6aec51d26b29
Version Independent ID: 84124e8f-efad-274f-c2eb-40a04748296c
Content: Pipeline execution and triggers in Azure Data Factory
Content Source: articles/data-factory/concepts-pipeline-execution-triggers.md
Service: data-factory
GitHub Login: @sharonlo101
Microsoft Alias: shlo

@lawrencejoffe
Thanks for the feedback! We are currently investigating and will update you shortly.

@sharonlo101 could you take a look at this?

We sincerely apologize for the delayed response to this issue. I am working in collaboration with the owners of the GitHub Issues related to Data Factory to help either get them resolved or to determine how to update our documentation.
As such, is this GitHub Issue still a concern for you? If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion, and we will reopen the issue.
Due to the age of this issue, we will continue to close this issue.
To see what the community is wanting, please visit the UserVoice site.
Thank you.
@djpmsft for awareness
#please-close


LineComment break args/list/etc formatting

code like this:
#let x =  (
    expand: expand,
    parent: none,  // if hline was broken into multiple
)

will be formatted as this which would break the code
#let x =  (
    expand: expand,
    parent: none,
// if hline was broken into multiple)

resolved on master


Fix README for "students/int:student_id/task/int:task_id/" GET

It's implemented but marked as not.

Because this did in #135

I closed that issue after edited name of #135. Mission completed 💯 👍

This is not the endpoint I'm referring to.


Add czech translation

The Bolt 3 version of the extension does not yet use translations, but we'll re-introduce that functionality soon.
Thanks for the PR! 👍


Upgrade NPM packages

The Travis error is:
TypeScript error in /home/travis/build/puzztool/puzztool/src/Common/KeyedCipherStream/index.tsx(81,13):
Type '(event: FormEvent) => void' is not assignable to type '(event: ChangeEvent) => void'.
Types of parameters 'event' and 'event' are incompatible.
If a minor version bump of a dependency broke this, that seems like a problem with that dependency.  Is this a pre-existing failure?

The Travis error is:
TypeScript error in /home/travis/build/puzztool/puzztool/src/Common/KeyedCipherStream/index.tsx(81,13):
Type '(event: FormEvent) => void' is not assignable to type '(event: ChangeEvent) => void'.
Types of parameters 'event' and 'event' are incompatible.
If a minor version bump of a dependency broke this, that seems like a problem with that dependency. Is this a pre-existing failure?

I suspect that they don't consider typing changes to be semver. Not ideal, but not a huge deal either.
https://github.com/react-bootstrap/react-bootstrap/pull/5067

Confirmed that this happens in a clean client, so this being out of date wasn't the source of the break.  Thanks for fixing - I would argue that type changes should be semver, but then again I spend most of my life in statically-typed languages.

I agree with the sentiment, but I'm just glad to see more packages maintaining their own typings rather than relying on DefinitelyTyped.


My custom alias get execute when I start my terminal

when I start my terminal, my custom alias got execute as in the picture. my custom alias is located in ~/bash-it/aliases/enabled/custom.aliases.bash. im on ubuntu mate 16.04

@mengkheang What does your custom.aliases.bash file contain?

@MunifTanjim
my alias in custome.aliases.bash
alias go-vb="cd $HOME/Documents/vb"
alias p="python"
alias av=". venv/bin/activate"
alias prun="av;p run.py"
alias pvb="p vb.py"

I just tried this locally with the exact same content in ~/.bash_it/aliases/enabled/custom.aliases.bash, but it works fine for me. When opening a new Terminal window, I don't see any output like you do. I get the same error when I try to run prun manually, since I don't have venv installed, but only when I run it manually.
Not sure what's wrong in your case.
Can you try putting these aliases into an existing alias file and then enabling that? Are you seeing the same issues?

i have it too. It appears to be something with bash complete.

I had this issue too. You need to have your aliases defined after source "$BASH_IT"/bash_it.sh


Debugger Assert

I get the following Mono debugger assert when placing a breakpoint at line 34 of the attached AppDelegate.cs and stepping over.
error: * Assertion at /Users/runner/work/1/s/src/mono/mono/mini/mini-arm64.c:6876, condition `native_offset % 4 == 0' not met
Test Environment:
iOS Simulator running on MacOS 14.7 on Apple Silicon
Steps to reproduce:

Place a breakpoint at AppDelegate.cs:34
Run application with debugger
Step-over from breakpoint

debugger_assert.zip
May be related to this Mono bug:
https://github.com/mono/mono/issues/19899

I can't reproduce it:
dotnet: 9.0.100
mlaunch: /usr/local/share/dotnet/packs/Microsoft.iOS.Sdk.net8.0_18.0/18.0.8303/tools/bin/mlaunch

Do you have the same dotnet version?

Hi, @mlancione ! Yes, I can reproduce it. I will create an issue in xamarin-macios repository. Maybe people from there will help us with this error.
They've already helped me once: https://github.com/dotnet/android/issues/8653

https://github.com/dotnet/runtime/issues/110016


Segfault on arm using nightly rust 1.6

Continuing from https://github.com/emoon/minifb/issues/2, here's the backtrace after the s.as_ptr() as *const _ hack:
Starting program: /tmp/rust64-master/target/debug/rust64
Program received signal SIGSEGV, Segmentation fault.
0x7f57cc4c in mfb_update (buffer=0xb6458000) at src/native/x11/X11MiniFB.c:128
128             s_ximage->data = (char*)buffer;
(gdb) bt
#0  0x7f57cc4c in mfb_update (buffer=0xb6458000) at src/native/x11/X11MiniFB.c:128
#1  0x7f57c6f8 in minifb::update (buffer=...)
    at /home/odroid/.cargo/git/checkouts/rust_minifb-65b6a7c68ef60bd2/master/src/lib.rs:53
#2  0x7f55ff88 in rust64::c64::C64::render (self=0xbeffec78) at src/c64/mod.rs:89
#3  0x7f55cb38 in rust64::main () at src/main.rs:68
#4  0x7f586874 in sys_common::unwind::try::try_fn::h3067093340196622558 ()
#5  0x7f583c80 in __rust_try ()
#6  0x7f5863e0 in rt::lang_start::h6fedeacd81917c3471x ()
#7  0x7f560034 in main () at src/c64/mod.rs:90

Thanks for the report. Which platform is this on (I have Raspberry Pi 2 at home which I could try to repro this on)
It seems that either this call
https://github.com/emoon/rust_minifb/blob/master/src/native/x11/X11MiniFB.c#L90
Fails or that the code actually doesn't get there.

It's an Odroid C1.

Regarding your last comment.
Have you tested to run the example that is included? Is that when you get the crash or is it when you use it somewhere else?

I have only tried it as part of rust64. Give me a sec to try the example as well.

That being said I'm not actually sure how Cargo deals which multiple versions of libs.

Ok, I think I see the problem now - minifb is still using libc v0.1.12 which is why the hack that should work against libc 0.2 segfaults when paired with libstd from rust 1.6 (your example segfaults in exactly the same way after hacking minifb first)

And with libc 0.2 it still crashes?

After a mechanical update it does unfortunately.

alright, I think it fails on this call
https://github.com/emoon/rust_minifb/blob/master/src/native/x11/X11MiniFB.c#L90
For some reason. Without having access to the hardware it's hard to debug it. If you in gdb shows the value of s_ximage (it should be a proper value, and not 0) that would be great.

$1 = (XImage *) 0x0

So that call fails for some reason... Oh well. I guess I should order a Odroid C1 so I can fix the issue :)

You mean it doesn't reproduce on Rpi2? I believe the problem is purely about those C bindings so you should be fine without spending anything.
And BTW, if you want a real step up you should definitely get a XU4 which in retrospect I'd buy today.

I haven't actually tried it on Rpi 2 so I should do that.
I also notice some bad code,
https://github.com/emoon/rust_minifb/blob/master/src/lib.rs#L41
This only checks for 0 but I see that I return -1 in some cases in https://github.com/emoon/rust_minifb/blob/master/src/native/x11/X11MiniFB.c#L21
which is bad so there might be some call that fails earlier for some reason.

And BTW, if you want a real step up you should definitely get a XU4 which in retrospect I'd buy today.

Ok. That one seems pretty cool so will get one of those :)

Cool, the difference is definitely worth the money (and 2GB of ram is a hit).
Quick rust links for the Pi:
https://sothr.com/RustBuild/armv6-armhf/rust/nightly/latest
https://sothr.com/RustBuild/armv6-armhf/cargo/nightly/latest

Thanks!
I will try to test it during the weekend.. Also I plan to move over the C code to Rust also and make sure errors are reported back earlier (the library hasn't been released on creates.io yet for a reason :)

Hi again,
How's your rust on arm experience been so far? :)

Hi, I got the hardware but I haven't got around to use it yet :( I hope to get going with it during next week.

Hi. I tested today and I have updated quite a bit of the code but nothing that should really change anything and it works for me.
Can you tested with the latest code and see if it works?

You mean it works for you on Rpi, right?

It works on the Odroid XU4

Oh, great; I'll get back to you with the result a little later.

thanks! :)

I tried a quick cargo run --example noise and it didn't segfault but I'm using 16bpp so I got:
Unable to find 32-bit format for X11 display
Unable to create window Unable to open Window

On Odroid C1 a reboot is necessary to change colour depth unfortunately, so that will have to wait until tomorrow. Hope you like your XU4 ;)

Cool. Thanks for testing :) Yeah, I have added more checks so there shouldn't be any crashes but some logging on what goes wrong.

Closing this now as it seems to work with 32/24-bit

You should definitely have a look at glshim, one of the coolest projects on ARM devices! The parent project's author is the one to follow whereas ptitSeb's fork is the most usable.

Cool. My goal with minifb was really to not require any 3D accelerator and only use 2D APIs (while OS may still use 3D accel under the hood I don't of course care about) but for ARM devices it likely makes sense to setup a OpenGL context instead.
That being said minifb is more of a prototyping lib which is supposed to make it easy to just get something up and running and likely never will be as complete compared to SDL for example.

On most ARM devices you'd be using the native OpenGL ES - I mentioned glshim cause it's a hacking masterpiece.

If you want to see how powerful your XU4 is doing the translations try this

Cool. But In my case I could just use OpenGL ES right? I I mean I only need to put a 32-bit buffer on the screen (so I really only need to update a texture from the CPU side) and I guess OpenGL ES should support that?

Yes, definitely, forget about accelerated OpenGL on most arm devices (unless you owned an NVIDIA Tegra board) - I quipped about glshim thinking you might like the hackery behind it.
The OpenGL you have available is just soft-rendered MESA so from now on, it should always be GLES/EGL for ya! :)

Right :) Well for my use-case that is fine.

One cool library lunixbochs wrote is called tinygles - it's a pure software implementation so maybe you could use some ideas from it.

Cool. Thanks!


is there a way to pass an unsafe memory region

From @alexandrubordei on April 15, 2016 9:58
Is there a way to pass a sun.misc.Unsafe allocated memory block to the Aparapi kernel and back again? I'm trying to avoid a memory copy if I can help it but I am unsure how to instruct Aparapi push this generic buffer region down to the kernel and back again if it's the case.
thanks,
alex
Copied from original issue: aparapi/aparapi#29

@alexandrubordei You still looking for an answer to this. I noticed this was pulled in from another project so going to close this if it is no longer outstanding.


sfdx-project.json validation incorrectly rejecting unpackagedMetadata

Describe the bug
sfpowerscripts:orchestrator:prepare reports that my sfdx-project.json file is invalid when using the
unpackagedMetadata flag documented here: https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_unlocked_pkg_unpackaged_md.htm
To Reproduce
specify unpackage metadata for your package as documented here https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_unlocked_pkg_unpackaged_md.htm
Attempt to build the pool with sfpowerscripts:orchestrator:prepare
Expected behavior
Scratch orgs to build
Screenshots
If applicable, add screenshots to help explain your problem.
Platform Details (please complete the following information):

OS: macOS 12.3.1
Version: @dxatscale/sfpowerscripts 13.0.14
sfdmu 4.13.0
sfpowerkit 4.2.5
Salesforce CLI(sfdx cli) Version:sfdx-cli/7.143.0 darwin-arm64 node-v16.14.2

Additional context
Add any other context about the problem here.

@yippie  We currently do not support 'unpackagedMetadata'. We are looking into how better to address this from an artifact perspective.
Supported schema is
https://github.com/Accenture/sfpowerscripts/blob/main/packages/sfpowerscripts-cli/resources/schemas/sfdx-project.schema.json

Unpackaged is exactly that "unpackaged" it is only needed and used for the unit tests in an sfdx package:version:create call.
As far as sfpowerscripts is concerned, I would expect it to be completely ignored as it is ONLY needed by Salesforce for salesforces own package validation of unit tests.
Currently it is blocking, if I have it, it rejects my project file and aborts. I want the unpackaged to be ignored so I can use sfpowerscripts but still package my unlocked packages correctly.

@yippie - Is there a particular business reason why the "unpackaged" test classes would not want to be included in the package creation. In the Salesforce Docs, they do not really specify the business case to not include this but provide it as an option.  Just wanted to see the context of this use case and why it would not just be included in the package folder for completeness.

@vuha-acn it is not unpackaged test classes. it is unpackaged Custom Metadata Records for a managed package we depend on. The managed package has triggers on objects we do test against (like task) that throw null pointers if the CMT does not exist (ie, in the packaging org). The "fix" is to include unpackaged CMT during package creation. If we don't include the metadata, our unit tests fail because the managed package code is throwing null pointers expecting a CMT record when there aren't any.

in #921, all three of the things you removed are ONLY used by sfdx force:package:version:create and the only thing sfpowerscripts needs to do to completely support them is to allow the sfdx force:package:version:create command to see them. There is nothing else to do with them so blocking their usage is just removing packaging options from people needlessly.
They are just used by salesforce servers to affect how the package behaves on salesforce servers. They should have no affect on sfpowerscripts or dx@scale flow.
Please put them back in the schema (or better yet, don't do a blocking schema check at all, if sfpowerscripts can add custom options, why can't I for my own use?)

There more I look at this the less sense it makes. sfpowerscripts currently is taking full ownership of sfdx-project and locking everyone else out. To use SFPowerscripts at all I have to ONLY use sfpowerscripts and cannot put my own notes or usage in it or even use all STANDARD salesforce features.
I would like to propose the following change to the sfdx-project.schema.json file to fix this:

Please please please consider doing this change and being better citizens

Yes, we could unblock unpackaged, but unpackaged being generic can point to any other source package or any other path.
During a parallel build sfpowerscripts create individual working directory for each package and we need to ensure the unpackaged directory is correctly copied into the working directory. This is currently not supported and once it is added we can add that back. There is a similar issue raised as #842
On the additional properties path, we are just being strict, for eg, if you add an additional property to unlocked package, it will fail during version:create. All additional sfpowerscripts properties are cleansed before being send to salesforce. .But we could have an optional environment variable to remove the check.
Please feel free to raise a PR or we could schedule for a future release

Also, do you see how this plays out during validate command? Ignore this package directory?

I would expect it to be completely ignored for all commands and tasks except for calling force:package:version:create. It is often pointing at another "real" package directly as typically you also will want/have the unpackaged in your scratch org for development also. The unpackaged directory is never, and should never, be sent or deployed to any orgs. It is nothing more than required config for unit tests to pass in a "packaging org" basically as a work around for the fact that scratch-def doesn't cover everything.

Yep, the pointing to the 'real' package is where it gets tricky. That means this is a something that need to be part of development scratch org, so it implies it has to be part of prepare as well,  where prepare only uses last known validated package to build the scratch org
My current proposal is the following

Any such unpackaged addition shouldn't point to a real package. Lets reject if we find any
We will pack the unpackaged metadata into the artifact and will be deployed 'after' the actual contents of the package is deployed.

Are you trying to fake a packaging org (IE set up a scratch org identically to salesforce package validation orgs)? If you are, sure, but the unpackaged tag should never, ever be deployed to a pool scratch org, development scratch org, sandbox or production...ever.
If something should be deployed, I will, and people should, be making actual packages for them and then you just deploy the regular package list.
Unpackaged means exactly that, unpackaged, it is something that should not be packaged or distributed (although its contents might be shared with a real package). It is in practice and intent, an extension on the scratch-def.json used by salesforce for creating a new package version ID via force:package:version:create.
Please don't ever deploy it or restrict it, just make it available to the force:package:version:create command so that salesforce packaging can succeed. When developing and deploying from artifacts it should not exist.
Best practice is likely the opposite of what you proposed. Likely unpackaged SHOULD be pointing at a real package. That way you are developing with the same config that salesforce packages with. We had it different because we only needed a stripped down subset (3 custom metadata type records) to get unit tests to pass when packaging, but if I had to make it a real package with sfpowerscripts I wouldn't blink.

I guess ultimately what I am asking is that the native force:xxx behavior is maintained and not changed or restricted. force:push/pull never touch or look at the unpackagedMetadata directory. ONLY force:package:create does. As far as any other command is concerned, it doesn't exist and it never sees the light of day after the package is made.


Create Unit Tests for tagesplash

Need to create Unit tests for tagesplash module

renamed tagetitlescreen module to tagesplash. This better fits what that module will do (Render splash screens, not just title screens).

No unit tests needed at this time


Update protobufs

@Crazy-Duck Let's have a look at what updated.
Of note:

CMsgPlayerConductScorecardRequest
Wagering stuff
3 new combat log entries (BOTTLE_HEAL_ALLY, ENDGAME_STATS, INTERRUPT_CHANNEL)
They really hate people that track things, re-using event IDs like that (EVENT_ID_WINTER_MAJOR_2016)

And... literally nothing else.

welp, must've missed that protomessage when implementing the lobby stuff

Yea, matchIDs are supposedly 64bit unsigned now. Legacy apps should feel the crunch soon.

Getting close:
https://yasp.co/status
2139021365/2147483647

I'm sure that responsible developers have already accounted for 32bit matchID crunch. Fine developers like @manveru


Wireguard Monitor

Hello, would it be possible to implement a wireguard monitor like on vpn example https://github.com/furlongm/openvpn-monitor
I know you have a monitor but it would be great if people have some different wireguard servers on different locations to monitor all these wireguards o on location. Would it be possible?

It will be awesome to can see where my WG Server users are logged on the map! For ex open street map ;)


Add backoff to Stocksnap DAG for 5XX errors

Airflow log link

Note: Airflow is currently only accessible to maintainers & those given
access. If you would like access to Airflow, please reach out to a member of
@WordPress/openverse-maintainers.

https://airflow.openverse.org/dags/stocksnap_workflow/grid?dag_run_id=manual__2024-09-05T18%3A39%3A42%2B00%3A00&task_id=ingest_data.pull_image_data&base_date=2024-09-05T18%3A39%3A42%2B0000&tab=logs
Description

It looks like we're starting to encounter ephemeral 5XX errors with certain Stocksnap errors (separate from #4101). We should add a backoff.on_exception wrapper to the _get_filesize function of the ingestion class so these errors can be retried:
https://github.com/WordPress/openverse/blob/7f4fb7c91363747505d72a63dc7509617d16acfc/catalog/dags/providers/provider_api_scripts/stocksnap.py#L160
This can be done using a decorator like Freesound:
https://github.com/WordPress/openverse/blob/05f8c55df108e9af237bde8d4b8e2834fe71f89f/catalog/dags/providers/provider_api_scripts/freesound.py#L182
Although we'd want the check to look like the global one for Science Museum (see #4715)
https://github.com/WordPress/openverse/blob/81d8da840a732073af261c30924e524459d97370/catalog/dags/providers/provider_api_scripts/science_museum.py#L50-L59

Reproduction

Since these are temporal issues, I wasn't able to reproduce the 502 in the logs
DAG status

I've left this enabled, though I will add a silenced alert clause for this linking to this issue.

@AetherUnbound I'd love to work on this issue!

Hi @MarleaM, thank you for your interest in contributing to Openverse! I've assigned this issue to you. If you have any questions, you may leave them here.
Please check out our welcome and general setup documentation pages for getting started with setting up your local environment.

hi @AetherUnbound ! I believe I have a solution for this ready, however I am having trouble getting ov to run (i'm on windows & having issues with WSL).
I think that what I have should address the issue, though. Should I go ahead and push?
Thanks for your help : )


Fix statspusher error logging

Issue Description
At least some errors aren't getting logged, just bubbled up, and all that is printed is encountered an error during startup. Go through and make sure errors are being logged at some point.
Steps to Reproduce (if applicable):
One example: Run with an incomplete config.json (e.g. missing a TTL)
Acceptance Criteria (how do we know when this is done?)
All errors are logged

http://dave.cheney.net/2016/06/12/stack-traces-and-the-errors-package is worth looking in to

I like the wrapping and stack tracing idea a lot.

Related to #308

Closing as statspusher has been broken apart in #347 and logging work is being done in #308


Swift try, catch, throw not highlighted

I have combed through the open and closed issues but can't seem to find an existing issue for this.
As the title suggests, keywords such as "try" "catch" and "throws" are not being highlighted properly.

You're right. In fact, it seems they aren't even reserved words according to the documentation!


Access Denied running wt.exe and failing to startup on boot

Windows Terminal version
1.18.3181.0
Windows build number
10.0.22631 Build 22631
Other Software
No response
Steps to reproduce

Install WindowsTerminal.
Crash Windows (video driver problem).
WindowsApp folder has corrupt ACLs. Fix per knowledge MS base (takeown cacls) using MS support.
All apps working fine except WindowsTerminal. Now getting "access denied" when attempting to execute "wt -w 0 nt --title "Java" -d %CD%"
Re-install WindowsTerminal No change.

Expected Behavior
Open a new tab
Actual Behavior
Access Denied error message

I managed to get WindowsTerminal to work correctly. But he issue points to something likely being left behind somewhere when uninstalling/reinstalling.
If I enable "Terminal" in the Startup Apps. I get access denied in the terminal; but the terminal opens.
If I run the WindowsTerminal application via the start menu. Nothing happens. Task Manager briefly shows the app starting and then it disappears.
If I run "wt" via the start bar, everything works as expected.

same issue occurring for me after update

WindowsApp folder has corrupt ACLs. Fix per knowledge MS base (takeown cacls) using MS support.

Literally any time someone does this, it's unfixable. It's going to seriously mess up your system.
A small recent sample:

https://github.com/microsoft/terminal/issues/13622#issuecomment-1202718325
https://github.com/microsoft/terminal/discussions/13511
https://github.com/microsoft/terminal/issues/16419#issuecomment-1839009663

For example, in this case: the OS specifically hits an Access Denied the first time it tries to open ...WindowsApps/.../wt.exe, and that access denied actually lets the OS know to do the right thing and re-try the exe as a packaged application (which then does work). If you instead grant permissions to wt.exe, then the first E_ACCESSDENIED never happens, and you get into all sorts of undefined behavior.
NEVER mess with the permissions anywhere on WindowsApps!

@zadjii-msft
Well, in this case, I did what I was told too by MS Support. After a series of power failures that took out my UPS, I had corrupt ACLs on the WindowsApps folder.
What do you think is the correct way to fix ACLs when they are showing as corrupt?
Tim

I honestly don't know. What I do know, is to never ever ever touch them. I've only ever heard of folks having to straight-up reinstall Windows to fix it.

Yeah, I also had to learn this the hard way, for now just running the portable version of Windows Terminal, and reinstalled all my WSL distros


introduce preflight check toggle

CORE-928 is requesting a preflight check toggle around pps kube validations. (claims to be blocked by it) Defaults true for reverse compatibility but has a helm toggle to disable it. will result in a warning when disabled i.e
 {"message":"Preflight checks are disabled. This is not recommended.","severity":"warning","time":"2022-08-02T03:40:18.897643513Z"}
this toggle is more of a unblocker, needs to be confirmed for a real solution. perhaps adding the security context to the test RC spec so opa violation are not hit.

👀 @BOsterbuhr

LGTM, but I think we need to confirm that this actually solves the problem with a custom build in the customer environment before merging.

@robert-uhl well the customer is already on alpha which is cut from master and its where they saw they issue. ill have to merge this in to master to cut an alpha. customs for 2.3.0 dont exist yet since we dont have a 2.3.0 release branch.
thats why i made it a toggle to keep same behavior for everyone else


Support for grouping rpm packages by distribution and version

Closes #25304
Refactor: #25866
Related: #27056
The current rpm repository places all packages in the same repository, and different systems (el7,f34) may hit packages that do not belong to this distribution ( #25304 )  , which now supports grouping of rpm.
:warning: BREAKING :warning:
Migrate old RPM packages to  default/stable distribution, remove the old RPM upload API

example: https://git.d7z.net/packages/-/packages/rpm/yq/4.33.3-1.el9

I'm unsure if it is good to replicate the Debian style here. The RPM repo does not have fixed parameters like distribution or component. Some may just need one, some may need more parameters to structure their packages. It may be better to keep this optional but allow flexible parameters like the container registry does. The container can be named domain/owner/package but domain/owner/my/flexible/named/package is supported too.
The RPM registry would need more advanced routing then (like the container registry does) but the other code just need to respect the "flexible path" which defaults to "" like it is at the moment.

I'm unsure if it is good to replicate the Debian style here. The RPM repo does not have fixed parameters like distribution or component. Some may just need one, some may need more parameters to structure their packages. It may be better to keep this optional but allow flexible parameters like the container registry does. The container can be named domain/owner/package but domain/owner/my/flexible/named/package is supported too. The RPM registry would need more advanced routing then (like the container registry does) but the other code just need to respect the "flexible path" which defaults to "" like it is at the moment.

I reimplemented the route reference docker and it should now support uploading RPM under any path.

@KN4CK3R After a period of use, this PR is ready to begin reviewing.

There are some flaws I created a fix-PR for this PR but forgot to block this one, sorry. I will send the fix as a new PR.

Erm… Why did Giteabot mark the PR as breaking?
Why does it even mark a PR as breaking in the first place?
I don't think that feature exists…


Install webfont-opensans with all fonts by gulp

https://github.com/sonicparke/webfont-opensans

Am I right that we just need OpenSans Regular? If yes I would propose to use https://github.com/FontFaceKit/open-sans and strip out unused fonts with gulp. This should be easy because this repo looks well maintained and has nice SASS files.

No, we need in addition to Regular the font styles of Bold and Italic for nicer font face. If you split up these 3 font style note that the css still contains all font faces (and paths).

As discussed I try to add https://github.com/FontFaceKit/open-sans.
@emanuelschuetze Can we remove the font FontAwesome? I can not find it in projector.css so I think it is gone.

Can we remove the font FontAwesome?
No! FontAwesome is our important icon font for the web interface - and maybe later also for projector (e.g. clock). The projector redesign is still open.

I tried hard but the repo https://github.com/FontFaceKit/open-sans is somehow special. I propose to save all needed fonts in our own font repository. This we can keep clean and also keep our released package small.

See #1740

This is done.


cdc scan data size is much more larger than the incremental data size

Bug Report
Please answer these questions before submitting your issue. Thanks!

What did you do? If possible, provide a recipe for reproducing the error.

Pause changefeed, then lightning load data to upstream tidb, backend=tidb.
When load 200GB data size, resume changefeed.
Waiting for changefeed sync completing.

What did you expect to see?

What did you see instead?

The time from changefeed resume to sync completed takes 14 hours.

kv scan 1.6TB while the real incremental data size is only 200GB, and unified sorter disk usage is also 1.6TB.

Versions of the cluster

Upstream TiDB cluster version (execute SELECT tidb_version(); in a MySQL client):
5.0.0-nightly 05-24-2021

TiCDC version (execute cdc version):
5.0.0-nightly 05-24-2021

The version 5.0.0-nightly 05-24-2021 could reconnect when a region is in incremental scan state, which causes large amount of duplicated scan data.
We have refined the reconnect strategy in #1949, could you please confirm this issue has been solved @Tammyxia ?

Both table rebalance and TiKV leader transfer will cause TiKV scan data more than we wrote. As long as TiCDC/TiKV are in stable state, it won't be a problem. Change to severity/moderate

could you please  check this issue has been solved  in the recent version?

/unsigned @Tammyxia
/assigned @hicqu

/assigne @hicqu
/unsigne @Tammyxia

/unassign @Tammyxia
/assign @sdojjy

it's not a bug, we will improve this case in feature.


Update README.md

Just testing to make sure our CI runs on the PR

since we are changing the mgmt CI file in this PR, the pipeline will be kicked off for the PR