reading operation works perfect, write operation does not work for me

The h3 option worked fine for reading the flash contents. I used the shellcode.bin binary. Write operation however does not work for me. When issuing Write I get the Exception error as per example below.
w 08001000 ffffffff
Write [08001000]: FFFFFFFF!!! EXCEPTION !!!
ID: 03
Restart required!

The h3 option worked fine for reading the flash contents. I used the shellcode.bin binary. Write operation however does not work for me. When issuing Write I get the Exception error as per example below.
w 08001000 ffffffff
Write [08001000]: FFFFFFFF!!! EXCEPTION !!!
ID: 03
Restart required!

Hi hmeijdam, I tried to follow same tutorial but unsuccessful to read out flash content. Did you use external UART reader? Cause JP4 doesn't work when I flash attachboard binary file. Thanks!

Hi all, the read/write functionality accesses memory directly but has no flash-writer implemented. Let me explain some details on how this works:
The read/write in the PoC is implemented as a simple load/store from/to an address. Reading and writing RAM and peripherals can be done directly. Also READING flash memory is possible. But the chip requires additional steps to WRITE into the flash memory, i.e., enabling memory programming in the flash memory interface peripheral, triggering (and waiting) for the page erase, and then writing data. This is beyond the scope of this PoC.
I am sure that the PoC can be extended to support your use case. There is documentation available, e.g., the PM0075 has further information on how to write to flash memory.
I am leaving this open as I am willing to accept pull requests for such features.

Hi all, the read/write functionality accesses memory directly but has no flash-writer implemented. Let me explain some details on how this works:
The read/write in the PoC is implemented as a simple load/store from/to an address. Reading and writing RAM and peripherals can be done directly. Also READING flash memory is possible. But the chip requires additional steps to WRITE into the flash memory, i.e., enabling memory programming in the flash memory interface peripheral, triggering (and waiting) for the page erase, and then writing data. This is beyond the scope of this PoC.
I am sure that the PoC can be extended to support your use case. There is documentation available, e.g., the PM0075 has further information on how to write to flash memory.
I am leaving this open as I am willing to accept pull requests for such features.

Thanks for your explanation! I failed to replicate H3 exploit method. After glitching, STM32F103 seems booting to FLASH instead of SRAM even BOOT1=1. Steps which I already tried.
1/ Flash STM32F103 with blinking PC13 led and output signal on serial. Code works for sure!
2/ Set RDP via STM32CodeProgrammer
3/ Wiring as instructed. Voltage supplied to DUT is around 2.8-2.9V which is okay for openocd to connect
4/ Load shellcode.bin to SRAM at 0x20000000
5/ Press Blue button on STM32F3 Discovery board, LD8->LD9->LD10, nothing appears on serial console and PC13 of DUT blinks.
Any guess what went wrong? I tried more than 10 times already. I noticed that "h3-attack.bin" from "bin" folder is different from compiled file using STM32CubeIDE. Thanks!

hard to tell what goes wrong... you could verify step by step how far you get in the PoC code. e.g., if the SRAM code "survives" the glitch, if the Flash Patch Unit was configured correctly and so on.

hard to tell what goes wrong... you could verify step by step how far you get in the PoC code. e.g., if the SRAM code "survives" the glitch, if the Flash Patch Unit was configured correctly and so on.

Thanks for your hints! It works for me by removing capacitor C2 capacitor on RESET pin which prevents voltage glitching from working. I confirmed that h3 works flawlessly for me. Thanks again!

Great!
I also added your feedback to the README.

Hi all, the read/write functionality accesses memory directly but has no flash-writer implemented. Let me explain some details on how this works:
The read/write in the PoC is implemented as a simple load/store from/to an address. Reading and writing RAM and peripherals can be done directly. Also READING flash memory is possible. But the chip requires additional steps to WRITE into the flash memory, i.e., enabling memory programming in the flash memory interface peripheral, triggering (and waiting) for the page erase, and then writing data. This is beyond the scope of this PoC.
I am sure that the PoC can be extended to support your use case. There is documentation available, e.g., the PM0075 has further information on how to write to flash memory.
I am leaving this open as I am willing to accept pull requests for such features.

Thanks for your explanation! I failed to replicate H3 exploit method. After glitching, STM32F103 seems booting to FLASH instead of SRAM even BOOT1=1. Steps which I already tried.
1/ Flash STM32F103 with blinking PC13 led and output signal on serial. Code works for sure!
2/ Set RDP via STM32CodeProgrammer, re-connect -> DATA READ FAILED
3/ Wiring as instructed. Voltage supplied to DUT is around 2.8-2.9V which is okay for openocd to connect
4/ Load shellcode.bin to SRAM at 0x20000000, terminated openocd
5/ Press Blue button on STM32F3 Discovery board, LD8->LD9->LD10, shellcode doesn't appears on serial and PC13 of DUT blinks.
Can you please give me hints what went wrong? I tried more than 10 times already. I noticed that "h3-attack.bin" from "bin" folder is different from compiled file using STM32CubeIDE. Thanks!

Hi nhancaheo, I tried to follow H3, but failed to read Flash. I only receive 0xFE, 0xFE when I use CuteCom?

"Power up both boards"
"Open the serial interface connected to the DuT (9600, n, 8, 1)"
"Startup the debugger for the DuT "openocd -f ...
"Upload the shellcode into the DuT's SRAM", before that, use "reset halt"?
"Disconnect the debugger", how did you operate it, can you describe the operation in detail, disconnect SWD ~ CN4-Pin1, CN4-Pin3?

Make sure all wirings are correct, check voltage supply from PD0,PD1 (~around 2.9V is okay), you may need to remove capacitors on 3.3V and RESET lines. You can try to use this openocd command "openocd -f interface/stlink-v2-1.cfg -f target/stm32f1x.cfg -c "init;load_image shellcode.bin 0x20000000;exit;", remember to replace stlink-v2-1.cfg with your actual interface. It should display "1832 bytes written" and then press BLUE button.

Hi all, the read/write functionality accesses memory directly but has no flash-writer implemented. Let me explain some details on how this works:
The read/write in the PoC is implemented as a simple load/store from/to an address. Reading and writing RAM and peripherals can be done directly. Also READING flash memory is possible. But the chip requires additional steps to WRITE into the flash memory, i.e., enabling memory programming in the flash memory interface peripheral, triggering (and waiting) for the page erase, and then writing data. This is beyond the scope of this PoC.
I am sure that the PoC can be extended to support your use case. There is documentation available, e.g., the PM0075 has further information on how to write to flash memory.
I am leaving this open as I am willing to accept pull requests for such features.

Thanks for your explanation! I failed to replicate H3 exploit method. After glitching, STM32F103 seems booting to FLASH instead of SRAM even BOOT1=1. Steps which I already tried.
1/ Flash STM32F103 with blinking PC13 led and output signal on serial. Code works for sure!
2/ Set RDP via STM32CodeProgrammer, re-connect -> DATA READ FAILED
3/ Wiring as instructed. Voltage supplied to DUT is around 2.8-2.9V which is okay for openocd to connect
4/ Load shellcode.bin to SRAM at 0x20000000, terminated openocd
5/ Press Blue button on STM32F3 Discovery board, LD8->LD9->LD10, shellcode doesn't appears on serial and PC13 of DUT blinks.
Can you please give me hints what went wrong? I tried more than 10 times already. I noticed that "h3-attack.bin" from "bin" folder is different from compiled file using STM32CubeIDE. Thanks!

Hi nhancaheo, I tried to follow H3, but failed to read Flash. I only receive 0xFE, 0xFE when I use CuteCom?

"Power up both boards"
"Open the serial interface connected to the DuT (9600, n, 8, 1)"
"Startup the debugger for the DuT "openocd -f ...
"Upload the shellcode into the DuT's SRAM", before that, use "reset halt"?
"Disconnect the debugger", how did you operate it, can you describe the operation in detail, disconnect SWD ~ CN4-Pin1, CN4-Pin3?

Make sure all wirings are correct, check voltage supply from PD0,PD1 (~around 2.9V is okay), you may need to remove capacitors on 3.3V and RESET lines. You can try to use this openocd command "openocd -f interface/stlink-v2-1.cfg -f target/stm32f1x.cfg -c "init;load_image shellcode.bin 0x20000000;exit;", remember to replace stlink-v2-1.cfg with your actual interface. It should display "1832 bytes written" and then press BLUE button.

Hi all, the read/write functionality accesses memory directly but has no flash-writer implemented. Let me explain some details on how this works:
The read/write in the PoC is implemented as a simple load/store from/to an address. Reading and writing RAM and peripherals can be done directly. Also READING flash memory is possible. But the chip requires additional steps to WRITE into the flash memory, i.e., enabling memory programming in the flash memory interface peripheral, triggering (and waiting) for the page erase, and then writing data. This is beyond the scope of this PoC.
I am sure that the PoC can be extended to support your use case. There is documentation available, e.g., the PM0075 has further information on how to write to flash memory.
I am leaving this open as I am willing to accept pull requests for such features.

Ok, that makes sense. It was just my misinterpretation of the feature. It helped me already a lot in being able to repair a device that had a blown-up microprocessor.

Hi all, the read/write functionality accesses memory directly but has no flash-writer implemented. Let me explain some details on how this works:
The read/write in the PoC is implemented as a simple load/store from/to an address. Reading and writing RAM and peripherals can be done directly. Also READING flash memory is possible. But the chip requires additional steps to WRITE into the flash memory, i.e., enabling memory programming in the flash memory interface peripheral, triggering (and waiting) for the page erase, and then writing data. This is beyond the scope of this PoC.
I am sure that the PoC can be extended to support your use case. There is documentation available, e.g., the PM0075 has further information on how to write to flash memory.
I am leaving this open as I am willing to accept pull requests for such features.

Thanks for your explanation! I failed to replicate H3 exploit method. After glitching, STM32F103 seems booting to FLASH instead of SRAM even BOOT1=1. Steps which I already tried.
1/ Flash STM32F103 with blinking PC13 led and output signal on serial. Code works for sure!
2/ Set RDP via STM32CodeProgrammer, re-connect -> DATA READ FAILED
3/ Wiring as instructed. Voltage supplied to DUT is around 2.8-2.9V which is okay for openocd to connect
4/ Load shellcode.bin to SRAM at 0x20000000, terminated openocd
5/ Press Blue button on STM32F3 Discovery board, LD8->LD9->LD10, shellcode doesn't appears on serial and PC13 of DUT blinks.
Can you please give me hints what went wrong? I tried more than 10 times already. I noticed that "h3-attack.bin" from "bin" folder is different from compiled file using STM32CubeIDE. Thanks!

Hi nhancaheo, I tried to follow H3, but failed to read Flash. I only receive 0xFE, 0xFE when I use CuteCom?

"Power up both boards"
"Open the serial interface connected to the DuT (9600, n, 8, 1)"
"Startup the debugger for the DuT "openocd -f ...
"Upload the shellcode into the DuT's SRAM", before that, use "reset halt"?
"Disconnect the debugger", how did you operate it, can you describe the operation in detail, disconnect SWD ~ CN4-Pin1, CN4-Pin3?

Make sure all wirings are correct, check voltage supply from PD0,PD1 (~around 2.9V is okay), you may need to remove capacitors on 3.3V and RESET lines. You can try to use this openocd command "openocd -f interface/stlink-v2-1.cfg -f target/stm32f1x.cfg -c "init;load_image shellcode.bin 0x20000000;exit;", remember to replace stlink-v2-1.cfg with your actual interface. It should display "1832 bytes written" and then press BLUE button.

Hi nhancaheo, I tried successfully on the chips STM32F103C8 and STM32F103R8, but failed on STM32F103VC. Have you tested successfully, in other series of STM32F1

hard to tell what goes wrong... you could verify step by step how far you get in the PoC code. e.g., if the SRAM code "survives" the glitch, if the Flash Patch Unit was configured correctly and so on.

Thanks for your hints! It works for me by removing capacitor C2 capacitor on RESET pin which prevents voltage glitching from working. I confirmed that h3 works flawlessly for me. Thanks again!

I'm glad you found this. Yesterday I got very confused that I could not repeat h3 on another STM32F103C6  that I needed to extract for a repair, but in the end removing C2 made it work right away.

I did everything as described, but it didn't work. My board is STM32F103C8T6 (blue pill) and I have all the capacitors removed except the crystall related ones.
I've got able to run the shell, but it dumps all memory as 0xFF. The glitch is clearly seen on an oscilloscope. It differs from the plot in the article though. It lasts only 2-3 us and appears simultaniously with the reset fall.

I need assistance flashing the STM32F3DISCOVERY...

STM32F3DISCOVERY: CN4-jumpers installed
Opened attackboard-folder with STM32CubeIDE
Flashed STM32F303VCT6 via run-command
STM32F3DISCOVERY: CN4-jumpers removed
STM32F3DISCOVERY: SWD of DuT to CN4
Starting openocd debugger fails..

Step 6 fail, however I'm a able to establish a connection to the DuT via SWD, when having it powered via 3V3 of the STM32F3DISCOVERY, not PD0+PD1 of the STM32F303VCT6. When powering the attackboard up PD0+PD1 are not 3V3.
I assume, the STM32F303VCT6 is not flashed?

I also tried flashing via st-flash:
# st-flash write h3-attackboard.bin 0x8000000
st-flash 1.7.0
2023-02-19T14:49:12 INFO common.c: F3xx: 40 KiB SRAM, 256 KiB flash in at least 2 KiB pages.
file h3-attackboard.bin md5 checksum: 76e44b208b592c4333ceb1accbd83088, stlink checksum: 0x0012dada
2023-02-19T14:49:12 INFO common.c: Attempting to write 12388 (0x3064) bytes to stm32 address: 134217728 (0x8000000)
2023-02-19T14:49:12 INFO common.c: Flash page at addr: 0x08000000 erased
2023-02-19T14:49:12 INFO common.c: Flash page at addr: 0x08000800 erased
2023-02-19T14:49:12 INFO common.c: Flash page at addr: 0x08001000 erased
2023-02-19T14:49:12 INFO common.c: Flash page at addr: 0x08001800 erased
2023-02-19T14:49:12 INFO common.c: Flash page at addr: 0x08002000 erased
2023-02-19T14:49:12 INFO common.c: Flash page at addr: 0x08002800 erased
2023-02-19T14:49:12 INFO common.c: Flash page at addr: 0x08003000 erased
2023-02-19T14:49:12 INFO common.c: Finished erasing 7 pages of 2048 (0x800) bytes
2023-02-19T14:49:12 INFO common.c: Starting Flash write for VL/F0/F3/F1_XL
2023-02-19T14:49:12 INFO flash_loader.c: Successfully loaded flash loader in sram
2023-02-19T14:49:12 INFO flash_loader.c: Clear DFSR
  7/  7 pages written
2023-02-19T14:49:13 INFO common.c: Starting verification of write complete
2023-02-19T14:49:13 INFO common.c: Flash written and verified! jolly good!


[E2E]add worker group manage e2e case

Purpose of the pull request
add e2e security case #7281

Brief change log

Verify this pull request

This pull request is code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:

Codecov Report

Merging #7879 (f1a70ec) into dev (f3f1f40) will decrease coverage by 0.08%.
The diff coverage is n/a.

:exclamation: Current head f1a70ec differs from pull request most recent head c4463a8. Consider uploading reports for the commit c4463a8 to get more accurate results

@@             Coverage Diff              @@
##                dev    #7879      +/-   ##
============================================
- Coverage     41.08%   40.99%   -0.09%
+ Complexity     3701     3693       -8
============================================
  Files           637      637
  Lines         27044    27044
  Branches       3067     3067
============================================
- Hits          11110    11087      -23
- Misses        14864    14890      +26
+ Partials       1070     1067       -3

Impacted Files
Coverage Δ

...er/master/processor/queue/TaskResponseService.java
50.00% <0.00%> (-18.19%)
:arrow_down:

...rver/master/processor/queue/TaskResponseEvent.java
93.54% <0.00%> (-6.46%)
:arrow_down:

...er/master/dispatch/host/assign/RandomSelector.java
77.77% <0.00%> (-5.56%)
:arrow_down:

...org/apache/dolphinscheduler/remote/utils/Host.java
37.77% <0.00%> (-2.23%)
:arrow_down:

...e/dolphinscheduler/remote/NettyRemotingClient.java
52.11% <0.00%> (-0.71%)
:arrow_down:

Continue to review full report at Codecov.

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


Formalise Python 3.8 support

Merged in ddbbaea288361efb6be537932d5f609e75e2f3c7

Rolling back, as webp (#5249) doesn't seem to be supported on Python 3.8 by the current release of Pillow.


Added button font setting to Builder

You shouldn't add parameters to methods, you should add another variation (overload) the method and add the new parameter. Otherwise it could break many projects.


not able to see the control on UI

Hi,
The directive looks great. I am trying to use it in my application. but somehow I am not able to see the control :(. In console I can see the code. Somehow this is not visible.
FYI : I have added the CSS.
Can anyone help?
Thanks,
-/Sammi

Got fixed it byself.


Exclude repos by glob

References #69

All good calls, addressed everything.

Merged. Thanks for the contribution @Steven-Nagie!

Merged. Thanks for the contribution @Steven-Nagie!

Thank you! Sourcebot has been a big help, happy to contribute in my small way.


charset missing

Did a fresh install of mrsimulator stable in a new conda environment.   Tried to run the test code at https://mrsimulator.readthedocs.io/en/stable/
and got this error.

ModuleNotFoundError                       Traceback (most recent call last)
File ~/anaconda3/envs/test/lib/python3.9/site-packages/requests/compat.py:11
10 try:
---> 11     import chardet
12 except ImportError:
ModuleNotFoundError: No module named 'chardet'
During handling of the above exception, another exception occurred:
ImportError                               Traceback (most recent call last)
Untitled-1.ipynb Cell 1 line 1
----> 1 from mrsimulator import Simulator, SpinSystem, Site
2 from mrsimulator.method.lib import BlochDecaySpectrum
3 import matplotlib.pyplot as plt
File ~/anaconda3/envs/test/lib/python3.9/site-packages/mrsimulator/init.py:36
33 os.environ["VECLIB_MAXIMUM_THREADS"] = "1"
34 # os.environ["NUMEXPR_NUM_THREADS"] = "1"
---> 36 from .spin_system import Site  # lgtm [py/import-own-module] # noqa:F401
37 from .spin_system import Coupling  # lgtm [py/import-own-module]  # noqa:F401
38 from .spin_system import SpinSystem  # lgtm [py/import-own-module] # noqa:F401
File ~/anaconda3/envs/test/lib/python3.9/site-packages/mrsimulator/spin_system/init.py:10
...
11     Base abstract class used for mess detection plugins.
12     All detectors MUST extend and implement given methods.
13     """
ImportError: cannot import name 'COMMON_SAFE_ASCII_CHARACTERS' from 'charset_normalizer.constant' (/Users/philip/anaconda3/envs/test/lib/python3.9/site-packages/charset_normalizer/constant.py)
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings...

I ran pip install charset
and reran the code and got the following error:
The default interactive shell is now zsh.
To update your account to use zsh, please run chsh -s /bin/zsh.
For more details, please visit https://support.apple.com/kb/HT208050.
(base) tsf-428-wpa-6-079:test philip$ conda activate test
(test) tsf-428-wpa-6-079:test philip$ pip install char-set
ERROR: Could not find a version that satisfies the requirement char-set (from versions: none)
ERROR: No matching distribution found for char-set
(test) tsf-428-wpa-6-079:test philip$ pip install charset
Collecting charset
Downloading charset-1.0.1.tar.gz (189 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 189.7/189.7 kB 450.0 kB/s eta 0:00:00
Preparing metadata (setup.py) ... done
Collecting chardet (from charset)
Downloading chardet-5.2.0-py3-none-any.whl.metadata (3.4 kB)
Downloading chardet-5.2.0-py3-none-any.whl (199 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 199.4/199.4 kB 917.7 kB/s eta 0:00:00
Building wheels for collected packages: charset
Building wheel for charset (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [98 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build/lib.macosx-11.1-arm64-cpython-39
creating build/lib.macosx-11.1-arm64-cpython-39/charset
copying charset/cmd.py -> build/lib.macosx-11.1-arm64-cpython-39/charset
copying charset/init.py -> build/lib.macosx-11.1-arm64-cpython-39/charset
running egg_info
writing charset.egg-info/PKG-INFO
writing dependency_links to charset.egg-info/dependency_links.txt
writing entry points to charset.egg-info/entry_points.txt
writing requirements to charset.egg-info/requires.txt
writing top-level names to charset.egg-info/top_level.txt
reading manifest file 'charset.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching '.txt' under directory 'docs'
warning: no files found matching '.txt' under directory 'languagedet/data'
warning: no files found matching '.pickle' under directory 'languagedet/data'
warning: no files found matching '.conf' under directory 'languagedet/data'
writing manifest file 'charset.egg-info/SOURCES.txt'
running build_ext
building 'charset.detector' extension
creating build/temp.macosx-11.1-arm64-cpython-39
creating build/temp.macosx-11.1-arm64-cpython-39/src
creating build/temp.macosx-11.1-arm64-cpython-39/src/mozilladetector
clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /Users/philip/anaconda3/envs/test/include -arch arm64 -I/Users/philip/anaconda3/envs/test/include -fPIC -O2 -isystem /Users/philip/anaconda3/envs/test/include -arch arm64 -Isrc/mozilladetector -I/Users/philip/anaconda3/envs/test/include/python3.9 -c src/charset.detector.cpp -o build/temp.macosx-11.1-arm64-cpython-39/src/charset.detector.o
src/charset.detector.cpp:677:5: warning: code will never be executed [-Wunreachable-code]
goto __pyx_L3;
^~~~~~~~~~~~~
src/charset.detector.cpp:1308:5: warning: code will never be executed [-Wunreachable-code]
goto __pyx_L20;
^~~~~~~~~~~~~~
src/charset.detector.cpp:2356:26: warning: 'PyEval_CallObjectWithKeywords' is deprecated [-Wdeprecated-declarations]
owned_instance = PyEval_CallObject(type, args);
^
/Users/philip/anaconda3/envs/test/include/python3.9/ceval.h:24:5: note: expanded from macro 'PyEval_CallObject'
PyEval_CallObjectWithKeywords(callable, arg, (PyObject *)NULL)
^
/Users/philip/anaconda3/envs/test/include/python3.9/ceval.h:17:1: note: 'PyEval_CallObjectWithKeywords' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(PyObject *) PyEval_CallObjectWithKeywords(
^
/Users/philip/anaconda3/envs/test/include/python3.9/pyport.h:508:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) attribute((deprecated))
^
src/charset.detector.cpp:2432:21: error: no member named 'exc_type' in '_ts'
*type = tstate->exc_type;
~~~~~~  ^
src/charset.detector.cpp:2433:22: error: no member named 'exc_value' in '_ts'; did you mean 'curexc_value'?
*value = tstate->exc_value;
^~~~~~~~~
curexc_value
/Users/philip/anaconda3/envs/test/include/python3.9/cpython/pystate.h:78:15: note: 'curexc_value' declared here
PyObject *curexc_value;
^
src/charset.detector.cpp:2434:19: error: no member named 'exc_traceback' in '_ts'; did you mean 'curexc_traceback'?
*tb = tstate->exc_traceback;
^~~~~~~~~~~~~
curexc_traceback
/Users/philip/anaconda3/envs/test/include/python3.9/cpython/pystate.h:79:15: note: 'curexc_traceback' declared here
PyObject *curexc_traceback;
^
src/charset.detector.cpp:2446:24: error: no member named 'exc_type' in '_ts'
tmp_type = tstate->exc_type;
~~~~~~  ^
src/charset.detector.cpp:2447:25: error: no member named 'exc_value' in '_ts'; did you mean 'curexc_value'?
tmp_value = tstate->exc_value;
^~~~~~~~~
curexc_value
/Users/philip/anaconda3/envs/test/include/python3.9/cpython/pystate.h:78:15: note: 'curexc_value' declared here
PyObject *curexc_value;
^
src/charset.detector.cpp:2448:22: error: no member named 'exc_traceback' in '_ts'; did you mean 'curexc_traceback'?
tmp_tb = tstate->exc_traceback;
^~~~~~~~~~~~~
curexc_traceback
/Users/philip/anaconda3/envs/test/include/python3.9/cpython/pystate.h:79:15: note: 'curexc_traceback' declared here
PyObject *curexc_traceback;
^
src/charset.detector.cpp:2449:13: error: no member named 'exc_type' in '_ts'
tstate->exc_type = type;
~~~~~~  ^
src/charset.detector.cpp:2450:13: error: no member named 'exc_value' in '_ts'; did you mean 'curexc_value'?
tstate->exc_value = value;
^~~~~~~~~
curexc_value
/Users/philip/anaconda3/envs/test/include/python3.9/cpython/pystate.h:78:15: note: 'curexc_value' declared here
PyObject *curexc_value;
^
src/charset.detector.cpp:2451:13: error: no member named 'exc_traceback' in '_ts'; did you mean 'curexc_traceback'?
tstate->exc_traceback = tb;
^~~~~~~~~~~~~
curexc_traceback
/Users/philip/anaconda3/envs/test/include/python3.9/cpython/pystate.h:79:15: note: 'curexc_traceback' declared here
PyObject *curexc_traceback;
^
3 warnings and 9 errors generated.
error: command '/usr/bin/clang' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for charset
Running setup.py clean for charset
Failed to build charset
ERROR: Could not build wheels for charset, which is required to install pyproject.toml-based projects
(test) tsf-428-wpa-6-079:test philip$ pip install charset
Collecting charset
Using cached charset-1.0.1.tar.gz (189 kB)
Preparing metadata (setup.py) ... done
Collecting chardet (from charset)
Using cached chardet-5.2.0-py3-none-any.whl.metadata (3.4 kB)
Using cached chardet-5.2.0-py3-none-any.whl (199 kB)
Building wheels for collected packages: charset
Building wheel for charset (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [98 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build/lib.macosx-11.1-arm64-cpython-39
creating build/lib.macosx-11.1-arm64-cpython-39/charset
copying charset/cmd.py -> build/lib.macosx-11.1-arm64-cpython-39/charset
copying charset/init.py -> build/lib.macosx-11.1-arm64-cpython-39/charset
running egg_info
writing charset.egg-info/PKG-INFO
writing dependency_links to charset.egg-info/dependency_links.txt
writing entry points to charset.egg-info/entry_points.txt
writing requirements to charset.egg-info/requires.txt
writing top-level names to charset.egg-info/top_level.txt
reading manifest file 'charset.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching '.txt' under directory 'docs'
warning: no files found matching '.txt' under directory 'languagedet/data'
warning: no files found matching '.pickle' under directory 'languagedet/data'
warning: no files found matching '.conf' under directory 'languagedet/data'
writing manifest file 'charset.egg-info/SOURCES.txt'
running build_ext
building 'charset.detector' extension
creating build/temp.macosx-11.1-arm64-cpython-39
creating build/temp.macosx-11.1-arm64-cpython-39/src
creating build/temp.macosx-11.1-arm64-cpython-39/src/mozilladetector
clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /Users/philip/anaconda3/envs/test/include -arch arm64 -I/Users/philip/anaconda3/envs/test/include -fPIC -O2 -isystem /Users/philip/anaconda3/envs/test/include -arch arm64 -Isrc/mozilladetector -I/Users/philip/anaconda3/envs/test/include/python3.9 -c src/charset.detector.cpp -o build/temp.macosx-11.1-arm64-cpython-39/src/charset.detector.o
src/charset.detector.cpp:677:5: warning: code will never be executed [-Wunreachable-code]
goto __pyx_L3;
^~~~~~~~~~~~~
src/charset.detector.cpp:1308:5: warning: code will never be executed [-Wunreachable-code]
goto __pyx_L20;
^~~~~~~~~~~~~~
src/charset.detector.cpp:2356:26: warning: 'PyEval_CallObjectWithKeywords' is deprecated [-Wdeprecated-declarations]
owned_instance = PyEval_CallObject(type, args);
^
/Users/philip/anaconda3/envs/test/include/python3.9/ceval.h:24:5: note: expanded from macro 'PyEval_CallObject'
PyEval_CallObjectWithKeywords(callable, arg, (PyObject *)NULL)
^
/Users/philip/anaconda3/envs/test/include/python3.9/ceval.h:17:1: note: 'PyEval_CallObjectWithKeywords' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(PyObject *) PyEval_CallObjectWithKeywords(
^
/Users/philip/anaconda3/envs/test/include/python3.9/pyport.h:508:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) attribute((deprecated))
^
src/charset.detector.cpp:2432:21: error: no member named 'exc_type' in '_ts'
*type = tstate->exc_type;
~~~~~~  ^
src/charset.detector.cpp:2433:22: error: no member named 'exc_value' in '_ts'; did you mean 'curexc_value'?
*value = tstate->exc_value;
^~~~~~~~~
curexc_value
/Users/philip/anaconda3/envs/test/include/python3.9/cpython/pystate.h:78:15: note: 'curexc_value' declared here
PyObject *curexc_value;
^
src/charset.detector.cpp:2434:19: error: no member named 'exc_traceback' in '_ts'; did you mean 'curexc_traceback'?
*tb = tstate->exc_traceback;
^~~~~~~~~~~~~
curexc_traceback
/Users/philip/anaconda3/envs/test/include/python3.9/cpython/pystate.h:79:15: note: 'curexc_traceback' declared here
PyObject *curexc_traceback;
^
src/charset.detector.cpp:2446:24: error: no member named 'exc_type' in '_ts'
tmp_type = tstate->exc_type;
~~~~~~  ^
src/charset.detector.cpp:2447:25: error: no member named 'exc_value' in '_ts'; did you mean 'curexc_value'?
tmp_value = tstate->exc_value;
^~~~~~~~~
curexc_value
/Users/philip/anaconda3/envs/test/include/python3.9/cpython/pystate.h:78:15: note: 'curexc_value' declared here
PyObject *curexc_value;
^
src/charset.detector.cpp:2448:22: error: no member named 'exc_traceback' in '_ts'; did you mean 'curexc_traceback'?
tmp_tb = tstate->exc_traceback;
^~~~~~~~~~~~~
curexc_traceback
/Users/philip/anaconda3/envs/test/include/python3.9/cpython/pystate.h:79:15: note: 'curexc_traceback' declared here
PyObject *curexc_traceback;
^
src/charset.detector.cpp:2449:13: error: no member named 'exc_type' in '_ts'
tstate->exc_type = type;
~~~~~~  ^
src/charset.detector.cpp:2450:13: error: no member named 'exc_value' in '_ts'; did you mean 'curexc_value'?
tstate->exc_value = value;
^~~~~~~~~
curexc_value
/Users/philip/anaconda3/envs/test/include/python3.9/cpython/pystate.h:78:15: note: 'curexc_value' declared here
PyObject *curexc_value;
^
src/charset.detector.cpp:2451:13: error: no member named 'exc_traceback' in '_ts'; did you mean 'curexc_traceback'?
tstate->exc_traceback = tb;
^~~~~~~~~~~~~
curexc_traceback
/Users/philip/anaconda3/envs/test/include/python3.9/cpython/pystate.h:79:15: note: 'curexc_traceback' declared here
PyObject *curexc_traceback;
^
3 warnings and 9 errors generated.
error: command '/usr/bin/clang' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for charset
Running setup.py clean for charset
Failed to build charset
ERROR: Could not build wheels for charset, which is required to install pyproject.toml-based projects

Is this still an issue? The original issue was the wrong version of pydantic. pydantic<2.0 will work.


Logic App ProcessTeamRequest not showing steps

First time deploying here.  I noticed on Step 4 of the deployment guide is states "Open the Azure portal and under the new resource group, search for the Logic App (ProcessTeamRequest). Edit the Logic App to confirm" and it lists a few steps with titles of "When an item is created or modified", "Update status to Team Creation", and "Update status to Team Created".
However when I open the ProcessTeamRequest Logic App and edit I don't see those steps.  Everything else has been fine up to this point.
Any help would be great!

@imgibason can you post a screenshot of what you do see please? I'd like to see the steps in the logic app to try and troubleshoot. Thanks

Hi Alexc,
Thanks for the reply.  I did end up getting this working.  What I ended up doing was clicking on the steps at had a SharePoint icon on them and clicking the connect button.  They initially had a yellow caution symbol on them with no title.
Once I was able to connect them they showed up correctly and I was able to move forward.
I did end up getting everything up and running.  However I am now running into a couple other issues but I will start a new thread for those.
Thanks again!
Ian...

@imgibason ok thanks - glad to hear you got it working.
I have created some new templates for new issues today so please feel free to create new threads and use the provided templates.
Thanks


Make VirtualEmptyBlockGetter.lightEngine::getLevel return null

This is for the sake of compatibility with Starlight, and with anything else that would expect that the LightChunkGetter passed to the LevelLightEngine constructor should return a Level from its getLevel method.
Tested and seems to only solve problems, not create any.

closed pending verification that I haven't overlooked anything

I stand by this

This change can also be merged to the forge branch without issue

Closing this to instead PR a less :concern: change to Starlight


Update to Nx 19.5.3 and beyond

Which scope/s are relevant/related to the feature request?
Don't know / other
Information
First upgrade to Nx 19.5.3 ... but the PR will fail deployment to Vercel due to
fix(core): prevent post install failures when socket path too long
Describe any alternatives/workarounds you're currently using
No response
I would be willing to submit a PR to fix this issue

[X] Yes
[ ] No

Nx is on v20


Fail to load microsoft/ApplicationInspector-Action/v1/action.yml

Hi there, I am trying ApplicationInspector in Github Action, here is my yml file, very simple, but it doesn't work.  Could anyone help to point out what's the problem? I can't find in the document.
name: Code scanning

on:
    push:
        branches:
            - "master"

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
    # This workflow contains a single job called "build"
    build:
        # The type of runner that the job will run on
        runs-on: ubuntu-latest

        # Steps represent a sequence of tasks that will be executed as part of the job
        steps:
            # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
            - name: Checkout repository
              uses: actions/checkout@v2
              with:
                  fetch-depth: 0

            - uses: microsoft/ApplicationInspector-Action@v1
            - uses: actions/upload-artifact@v2
              with:
                  name: AppInspectorResults
                  path: AppInspectorResults.json

Prepare workflow directory
Prepare all required actions
Download action repository 'actions/checkout@v2'
Download action repository 'github/codeql-action@v1'
Download action repository 'microsoft/ApplicationInspector-Action@v1'
##[error]microsoft/ApplicationInspector-Action/v1/action.yml (Line: 25, Col: 9): Unexpected value ''
##[error]microsoft/ApplicationInspector-Action/v1/action.yml (Line: 25, Col: 9): Unexpected value ''
##[error]System.ArgumentException: Unexpected type 'NullToken' encountered while reading 'outputs'. The type 'MappingToken' was expected.
   at GitHub.DistributedTask.ObjectTemplating.Tokens.TemplateTokenExtensions.AssertMapping(TemplateToken value, String objectDescription)
   at GitHub.Runner.Worker.ActionManifestManager.Load(IExecutionContext executionContext, String manifestFile)
##[error]Fail to load microsoft/ApplicationInspector-Action/v1/action.yml

Thanks in advance

I had the same exact error and created a PR https://github.com/microsoft/ApplicationInspector-Action/pull/4 to resolve the issue.

Same error

I have the same error

Resolved by merging proposed PR. Sorry for the delay. Please try latest.

Resolved by merging proposed PR. Sorry for the delay. Please try latest.


rinetd: init at 0.73

Description of changes
Trying to package rinetd but build falis because it trys to install stuff at /usr/local/sbin which off course doesn't work. When grepping through the sources it's only mentioned in the man page and the index.html which both don't theme like they set that. I also build the configure script and ran autoconfig and make but they also don't create files with a mention of users and make install just fails.

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

@ofborg build rinetd

rinetd on aarch64-darwin — Success
rinetd on aarch64-linux — Success
rinetd on x86_64-linux — Success

Nice!  I suggest you use your shiny new commit-bit to merge this. :smile:

@amjoseph-nixpkgs feel free to merge it, I already merged ~50 PRs in the last two or three days and one of my mentors basically made me promise to not do self merges if at all avoidable :D

Result of nixpkgs-review pr 234520 run on x86_64-linux 1

1 package built:

rinetd

@amjoseph-nixpkgs could you not link to issues, that are watched by so many people.
And your suggestion to self merge could be a trap or a honest suggestion, I'm not sure what is worse.
@Janik-Haag you could have some sanity checks with passthru.tests.version utilising testers.testVersion.
Cannot nix-instantiate `rinetd.passthru.tests' because:
error: attribute 'tests' in selection path 'rinetd.passthru.tests' not found

@ofborg build

@ofborg  eval

I think this wins the award for weirdest github comment I've seen so far:

And your suggestion to self merge could be a trap or a honest suggestion, I'm not sure what is worse.

@0x4A6F it was of course an honest suggestion; how and why could it be "a trap"?  And how would an honest suggestion be worse?

@amjoseph-nixpkgs @0x4A6F could you please discuss this some where different like matrix to not ad notifications to this PR?


event loop: Create Futures in a pedantic way

Specify event loops explicitly everytime futures are created

@cybergrind
I send you new PR about specifying event loops for Futures. :relaxed:

I'll rebase my branch onto micro-fan:master and re-send this soon

@rhdxmr ok, great. Also, I've sent you invite, after you accept it you may create branches inside this repo, it will make rebases easier to me too

@cybergrind Great! I accepted the invitation. Thank you.

@cybergrind
I'm gonna rebase onto the mater branch after PR#58 is merged successfully.
Because that the error incurred at Travis CI is solved by PR#58

:+1:


When installing gets stuck on "timing reifNode:node_modules/tar-fs"

When installing better-sqlite3 using the terminal command npm i better-sqlite3 it refuses to get past this line:
It does not appear to be an issue with the terminal or the npm install or the terminal as other node modules install fine. I'm not too sure what the issue is due to the fact that it will not produce a debug log. Any help or guidence would be apreciated.

FIXED:
Just did the old uninstall and reinstall and now were all good. May have been down to corrupt node install not too sure.


ActorIdentity rather than "Unique ActorPath" for resolve and identity

This relates to the big "do not use paths for core of identity, but just ActorIDs".
Old ticket was:

This is in remoting since it impacts how we do resolve(name) -> Ref

Our current paths design is inherited from Akka:

Actor HAS-A (Unique)ActorPath
identity is carried by the (Unique)ActorPath

This matters for remoting actually, since:
Sending ActorRefs:

we need to convert a ref to its "distributable format;

in Akka this is the string representation of the path; akka://system@10.0.01:5555/user/example/something#UID
downsides:

path rendering is expensive-ish
path as String means envelope has to be able to carry variable-length here

the ref while local does not always carry the host part, and needs to be populated when rendering

this needs to work with codable

Receiving ActorRefs:

Upon receiving an akka://system@10.0.01:5555/user/example/something#UID we have to check:

is the destination system "me"? if yes then continue:

in reality, the system also carries its own UUID since we have to know if it is the same instance of a system on this address, or a new one (!)

we need to transform the /user/example/something#UID path into the actual ActorRef which inserts messages to the right mailbox

this is done by some "lookup", we call this "resolve the actor ref" kind of like dns resolvers -- name -> actual thing after all
if the Path is the source of truth the implementation to resolve is: traverse the actor tree from top through all children using the path, and once leaf reached verify is is the right UUID (since diff actor could have started on the same path, but it's different and shall not receive this message

if the actor is not resolved, the message is "dead-lettered", since the actor seems to have died before the message reached it

The not so nice part is the traversing, since all access to .children needs to be lock protected (well, or atomic dances to immutable structures). and the traversal grows in time as deeper the children become (each level being one dictionary lookup by name).
Akka is Path as identifier focused because historically it allowed actorSelection(String): ActorRef which is NOT something that we want (or can) offer since the type of the actor ref is not known! This is solved by other mechanisms.
Alternative design
Key changes:

Paths are only for humans.
AID -- like a PID but for actors.
registry allowing to look up AID to ReceivesSystemMessages.

TODO: actor deaths need to remove from the registry

AID is a UID is unique within an actor system and should be unique enough that many many actors in the local system do not get the same AID. It is NOT globally unique. AID + SystemID is globally unique. And we need system ID anyway for handshakes to know if a thing is "the same system" or a "new system on same address".
Under this scheme:

we do not protect .children from asynchronous access; they may only be accessed by the parent (good!)
we need a registry data structure that is optimized to store AID: ReceivesMessages and we can force them to ActorRef<M> from serialization infra by obtaining the right M from message Ids.
implementing a "traverse" is still possible, and we will do so more "proper" rather than touching other actors internals; we can implement a system message .traverse(visitor) and implement handling it. Traversing becomes then a) safe b) will not accidentally print dead actors c) a generic tool we can use for other mechanisms, other than just "print the tree".

I am worried about the one registry being needed for resolving the refs -- it will be hammered with reads on every deserialization. And hammered by writes on every actor start. It is less pointer chasing than the resolve however it does cause more contention...
I also like how Naming and Identificaotionin Distributed Systems reminded me that we are closer to how filesystems work -- no-one (in normal operation) looks at i-nodes, but at logical paths of files.

This is eye-opening. Dropping selection is a game changer...
More notes:
The format should allow sharding the data for lookups;
Observations:
AID registration happens from an arbitrary thread -- whichever thread the parent happens to run on
AID should be prefixed with node identifier, where 0 means local.
this allows us to pull some tricks in storage, e.g. keep one IdentityTable for local ones, and if a resolve comes in with ID == our id, we can immediately jump to that table id && 0b0000 it and use it to do a direct lookup in the table. We can do the same for others if we wanted to, but most likely we'll keep others together.
Though we could "shard them" into many smaller tables if need be. This makes "drop all refs from node X" easier since we locate the table for X and drop it entirely, rather than having to filter the dictionary for "remove those that start with X" -- though to be honest this is not a super frequent thing... Could potentially matter though in scenarios with high node churn?
lookups are super frequent since every incoming message needs to hit the registry, we may want to avoid contention on this, even though it is just reads (TODO research).
since those things are really most used by decoding, we could copy the lookup into a decoder-local structure that does not do any atomics, since it knows it always would be on the same thread (e.g. since dedicated event loop for it or similar). This also serves as cache basically, so we could limit it in size.
cleanup gets more involved though, so, for now, let's not do it.
Results:
the structure needs to be written to on actor creation
it would be best to host it under providers... makes the initial lookup weird
TODO: not sure here; i.e. AID comes in -- look for it in /system or /user?

I'm letting this go for now. Some final tradeoff thoughts:
this would have solve that we dont really want to store all actors here; just the ones that hit remoting; so in essence it becomes a cache already it could be more optimal thanks to the AIDs rather than paths as keys, but other than that it comes back to being a cache like thing
because otherwise it would have to register all actors, and that includes such that live only for a tiny moment of time and never hit remoting. So we'd want to avoid this.
state management of this needs a "gc" kind of like the "unsubscriber" that akka has in the event stream - when actors die they need to be removed from the map; this can not be done lazily on "next time we access it" since we may never see another message to it -- it has died after all.
All in all, exploring the AID idea as uniqueness for the caching mechanism seems like the best outcome for now when we'd want to optimize this.
Note: traversal means optimizing for space -- there's no additional store, the tree is the source of truth.

Funny enough I just found a description of how Erlang reimplemented their tables: https://github.com/erlang/otp/blob/master/erts/emulator/internal_doc/PTables.md
They were originally guarded with locks but nowadays are quite optimized.
Keeping this ticket around for optimizing lookups if we'd want to attempt this at some point.
Currently we have traversal lookups implemented.

This is partially done -- we now have tags, but need to change how resolve works to ignore paths.


[DNMY] OPF formulation documentation

See https://ai4opt.github.io/OPFGenerator/previews/PR105/ for this version of the docs

I have the problem that most symbols are not displayed correctly

🤨 Which browser do you use and does this happen on mobile as well? I tried Firefox on Windows and iOS, and the symbols render correctly. Let me try a couple more browers.
I would bet on either a browser issue or font issue. Those symbols that don't display all use \mathcal symbols.
PowerModels documentation doesn't use any mathcal symbols AFAICT


Integration with cppcheck

This will consist of a few steps:

[ ] 1. Run cppcheck on the ifm3d codebase
[ ] 2. Identify and fix any real issues
[ ] 3. Tune cppcheck to ignore issues we won't be fixing
[ ] 4. Integrate into CMake
[ ] 5. Include checks in CI

With cppchek take care to use a mor modern release than the one included in Ubuntu 18.04. Hm, maybe there is a snapped version.....


Building for MSVC and libcurl

I'm struggling with how to build a Hyper.dll + Hyper.lib for use in libcurl.
I'm a n00b when it comes to Rust + Cargo. So I've used the below GNU-makefile for some time.
But it has stopped working in producing a normal lib-file.
Instead I get a target/i686-pc-windows-msvc/release/libhyper.rlib built instead. A static library (?) that is of no use in MSVC's linker.
And no .dll or import library gets produced.
So what exact  cargo build flags and RUSTFLAGS are needed to built a Hyper.dll + Hyper.lib for use in libcurl?
My <Hyper-root>/Makefile.Windows:
#
# Create 'hyper.lib' for MSVC (x86 / x64, release + debug)
#
green_msg = @echo -e "\e[1;32m$(strip $(1))\e[0m"

ifeq ($(CPU),x86)
  TARGET = i686-pc-windows-msvc
else
  TARGET = x86_64-pc-windows-msvc
endif

HYPER_LIB_RELEASE = target/$(TARGET)/release/hyper.rlib
HYPER_LIB_DEBUG   = target/$(TARGET)/debug/hyper.rlib

TARGETS = $(HYPER_LIB_RELEASE) \
          $(HYPER_LIB_DEBUG)

INSTALL_ROOT = $(realpath $(VSINSTALLDIR))

export RUSTFLAGS= --cfg hyper_unstable_ffi

#
# These flags does trigger a compile error:
#   error: language item required, but not found: `eh_personality`
#
# export RUSTFLAGS= --cfg hyper_unstable_ffi --crate-type staticlib,cdylib

#
# And these from 'https://seanmonstar.com/post/678895803144830976/help-stabilize-hyper-in-curl'
# does not work:
#   export RUSTFLAGS=--cfg hyper_unstable_ffi --features client,http1,http2,ffi --crate-type staticlib,cdylib
#

all: $(TARGETS)
	$(call green_msg, Do a 'make -f Makefile.Windows install' at own risk.)

$(HYPER_LIB_RELEASE): Cargo.toml
	$(call cargo_build, $@, --release)

$(HYPER_LIB_DEBUG): Cargo.toml
	$(call cargo_build, $@, )

install: $(HYPER_LIB_RELEASE)
	$(call green_msg, Copying $(1))
	cp --update target/$(TARGET)/release/hyper.{dll,pdb}  $(INSTALL_ROOT)/bin
	cp --update $(HYPER_LIB_RELEASE)                      $(INSTALL_ROOT)/lib/hyper.lib
	@echo

clean vclean distclean:
	rm -f $(TARGETS) Cargo.lock target/.rustc_info.json
	rm -fr target

define cargo_build
  $(call green_msg, Building $(1))
  cargo build --no-default-features $(2) --target $(TARGET)
  @echo
endef

And adding a --crate-type staticlib to the RUSTFLAGS, causes these errors:
   Compiling cfg-if v1.0.0
error: language item required, but not found: `eh_personality`
  |
  = note: this can occur when a binary crate with `#![no_std]` is compiled for a target where
`eh_personality` is defined in the standard library
  = help: you may be able to compile for a target that doesn't need `eh_personality`, specify a target with
`--target` or in `.cargo/config`

error: `#[panic_handler]` function required, but not found

error: could not compile `pin-project-lite` due to 2 previous errors

Hey there! So, I haven't tried on Windows, but maybe it's not too different. For starters, most of the options shouldn't be set in the RUSTFLAGS environment variable, but passed as options to cargo rustc.
So, something like this:
export RUSTFLAGS= --cfg hyper_unstable_ffi

cargo rustc -Z unstable-options --crate-type cdylib --features client,http1,http2,ffi

Thanks for replying. But cargo rustc and not cargo build? Like I wrote, I'm a n00b when it comes to this.
But these commands:
cargo rustc -Z unstable-options --crate-type cdylib --features client,http1,http2,ffi  --release --target i686-pc-windows-msvc
cargo rustc -Z unstable-options --crate-type cdylib --features client,http1,http2,ffi            --target i686-pc-windows-msvc

gives me these:
target\i686-pc-windows-msvc\debug\hyper.dll.lib
target\i686-pc-windows-msvc\release\hyper.dll.lib
target\i686-pc-windows-msvc\debug\hyper.dll
target\i686-pc-windows-msvc\release\hyper.dll

And a _RELEASE static lib with:
cargo rustc -Z unstable-options --crate-type staticlib --features client,http1,http2,ffi --release --target i686-pc-windows-msvc

producing this 16 MByte lib target\i686-pc-windows-msvc\release\hyper.lib
So I guess these are good to use in libcurl.
BTW. How come there is no --debug flags AFAICS?

But cargo rustc and not cargo build?

Yep! The rustc subcommand of cargo is for configuring more advanced options, and chose the crate-type is one of those.

How come there is no --debug flags AFAICS?

The default build if you don't specify --release is the debug version. It includes debug data, debug assertions, etc. It's possible to pass extra options to change the defaults, but if you don't, most is on until you write --release. The docs on cargo's default profiles has more info.

Ok, thanks for the details. It's working in libcurl now. Hence I'm closing.


missing paramiko requirement

The paramiko module is not installed, yet used for the airflow.contrib.ssh_hook. Maybe the fix is just a small tweak to the Dockerfile?
To reproduce:
from airflow.contrib.operators.ssh_operator import SSHOperator

Observed error:
airflow_1   |   File "/usr/local/lib/python3.6/site-packages/airflow/contrib/operators/ssh_operator.py", line 19, in <module>
airflow_1   |     from airflow.contrib.hooks.ssh_hook import SSHHook
airflow_1   |   File "/usr/local/lib/python3.6/site-packages/airflow/contrib/hooks/ssh_hook.py", line 21, in <module>
airflow_1   |     import paramiko
airflow_1   | ModuleNotFoundError: No module named 'paramiko'

Potential fix:
pip install paramiko

This is still an issue in 1.9.0-4.

I just added this to requirements.txt
Thiago MadPin
cel:             +55 11 99614 1038
website: http://madpin.net
email/msn<EMAIL_ADDRESS>skype:         madpin
On Wed, 25 Jul 2018 at 18:59, c-horn<EMAIL_ADDRESS>wrote:

This is still an issue in 1.9.0-4.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/puckel/docker-airflow/issues/145#issuecomment-407910085,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA_yuXjgWSYvZsjuI8MaHSX5fWQWZg2Uks5uKOotgaJpZM4RaPFc
.

Which requirements.txt?

Ah ok, I'm attempting to use this image with k8s not docker compose, I will have to mount the file separately.
https://github.com/puckel/docker-airflow#install-custom-python-package


copy backtrace / generate report

it would be very helpful if one could easily copy the backtrace, or generate some kind of text report from MTuner

Please refrain from posting feature requests as issues, especially if a feature already exists (generating text reports).


Specify license on package.json

By specifying the license on package.json, then automated tools such as https://github.com/pivotal/LicenseFinder can easily display which license your module is using.

:+1: to this change, but please do the following:

make it Apache-2.0 with a hyphen, per package.json docs and SPDX license IDs
put the license field in between version and repository.

Thanks @nylen. I didn't know about SPDX license IDs, bookmarked!. I've made your requested changes as well.

My email inbox is a madhouse these days, sorry for the delay.  I've merged this and released 0.6.0 on npm.


list of existing C and C++ libraries that can be handled?

Very interested in this repo; is there a list of existing C and C++ libraries that can be handled? (besides https://github.com/genotrance/nimterop/blob/master/tests/include/test.h)
"currently 0" is ok as an answer if that's the case, I understand it's an early release

I was testing this with the tree-sitter runtime.h itself and it worked pretty well, but that was only #defines, structs and enums, not procs. It's worth trying with simpler libs so that issues can be identified.
I will be testing with libs as I go but eager on hearing from the community as well.

Have been tracking the supported features in the README - will expand as nimterop expands. Any tree-sitter limitations will be reported upstream - they have been quite responsive.


ctPointLabels Not Displaying on Line Chart

I am attempting to add point labels to my line chart using the ctPointLabels plugin, but they are not appearing on the chart. I am already using the tooltip plugin, which is working, so I am not sure what I am missing.
I have included the plugin stylesheets in the  tags:
<link href="css/plugins/chartist.min.css" rel="stylesheet">
<link href="js/plugins/chartist-plugin-tooltip-master/src/css/chartist-plugin-tooltip.css" rel="stylesheet">

And I have included the js scripts at the bottom of the page right before my chart scripts:
<!--Chartist Plugins-->
<script src="//cdn.jsdelivr.net/chartist.js/latest/chartist.min.js"></script>
<script src="js/plugins/chartist-plugin-pointlabels-master/src/scripts/chartist-plugin-pointlabels.js"></script>
<script src="js/plugins/chartist-plugin-tooltip-master/src/scripts/chartist-plugin-tooltip.js"></script>

Here is my script for drawing the line chart:
<script>
            // Loads per Broker (Red Chart)
            new Chartist.Line('#chart1', {
                labels: [1, 2, 3, 4, 5, 6, 7, 8],
                series: [
                  [5, 9, 7, 8, 5, 3, 5, 4]
                ]
              }, {
                  plugins: [
                    Chartist.plugins.tooltip({
                        /*currency: '$',*/
                        anchorToPoint: true
                  }),
                    Chartist.plugins.ctPointLabels({
                        textAnchor: 'middle'
                  })
                ],
                low: 0,
                showArea: true
              });
</script>

Here is a screenshot showing that the tooltips are working, but not the point lables:

Thank you for your assistance!

I hope someone will be able to help. I'm having the same problem here.

@sshanzel I had posted a ticket on the page for the actual plugin and received an answer from @dustinnulf that solved the issue. See the post here: https://github.com/gionkunz/chartist-plugin-pointlabels/issues/16


Checking for empty batch before submitting.

LGTM - sorry this wasn't merged before. I'll manually get this in after merging #12 - thanks!


Login webportal with "Token Invalid" error

Organization Name:
Advantech

Short summary about the issue/question:
Login the webportal with correct username/password. However, the portal pop up error window shows that UnauthorizedError. Your token is invalid.  and Your token is invalid  error messages.
Brief what process you are following:

Browse the web portal
Try to login with correct username / password.
The token is invalid window shows up.
Use will be redirect to the login portal after
k8s log and portal error UI are depicted below

login_error.log

How to reproduce it:

OpenPAI Environment:

OpenPAI version:
v1.0.1
Cloud provider or hardware configuration:
OpenStack VMs
OS (e.g. from /etc/os-release):
ubuntu 16.04.6
Kernel (e.g. uname -a):
4.4.0-194-generic
Others:

Anything else we need to know:
It is a sudden event. We can use the same username/password to login in the morning and then failed the same action in the afternoon.

I can create a maintain devbox container and the service pods are still alive.
The 'token error' status still exist after restarting rest-server, portal, pylon and grafana pod.
Could I to create a new admin user in devbox container to work-around the issue?

You can delete the old user info by:
./paictl.py service delete -n rest-server
./paictl.py service start -n rest-server

Please notice it will remove all current user accounts, and set the admin user/password to the default one (specified in services-configuration.yaml).

You can delete the old user info by:
./paictl.py service delete -n rest-server
./paictl.py service start -n rest-server

Please notice it will remove all current user accounts, and set the admin user/password to the default one (specified in services-configuration.yaml).

Thanks to reply quickly.
Does the rest-server recreation action impact anything except recreate default user on web service?
Thanks again.

All current user accounts will be deleted.
Jobs won't be affected.

@hzy46
Thanks and it works.
I create another admin user on portal to avoid the situation happened again.
The root cause for the token invalid error is still unknown.

You can check the secrets in pai-user-v2 namespace in Kubernetes if the issue happens again. We stored the user information there.

@hzy46
Thanks a lot for your information. I saw several secrets in the pai-user-v2 namespace. How to check the validness of those secret/user account ?

In pai-user-v2 namespace, the key of the secert is a hex encoding of the username. So you can use a hex decoder tool like https://www.convertstring.com/EncodeDecode/HexDecode to decode it.
The value of the secert contains the base64 encoding value of the user's password.
You can also check the tokens of the users in the secrets of the pai-user-token namespace.

close this. Feel free to reopen

close this. Feel free to reopen


Automatic PR from RestAPI-PR1970

Generated from RestAPI PR: https://github.com/Azure/azure-rest-api-specs/pull/1970

Doc only

Codecov Report

Merging #1614 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #1614   +/-   ##
=======================================
  Coverage   55.48%   55.48%
=======================================
  Files        3740     3740
  Lines       91931    91931
=======================================
  Hits        51004    51004
  Misses      40927    40927

Impacted Files
Coverage Δ

...perations/virtual_machine_scale_sets_operations.py
12.79% <ø> (ø)
:arrow_up:

...ompute/v2017_03_30/operations/images_operations.py
34.64% <ø> (ø)
: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 c1e5de4...989ba06. Read the comment docs.


Better typings for KeyboardEvent.key

KeyboardEvent.key is typed as a string, even though it's a union of string literals.
window.addEventListener('keydown', (e)=>{
  // string type
  e.key
})

Would be really nice to get autocomplete here =D

https://www.w3.org/TR/uievents-key/#keys-unicode

Almost every Unicode character can be used as a valid key attribute value, but there is a small set of Unicode characters which MUST NOT be used. We introduce the concept of a key string to identify the set of Unicode strings that are appropriate for use as a key attribute value.
A key string is a string containing a 0 or 1 non-control characters ("base" characters) followed by 0 or more combining characters. The string MUST be in Normalized Form C (NFC) as described in [UAX15].
A non-control character is any valid Unicode character except those that are part of the "Other, Control" ("Cc") General Category.
A combining character is any valid Unicode character in the "Mark, Spacing Combining" ("Mc") General Category or with a non-zero Combining Class.

Listing all possible value is possible but impractical considering all the keyboard configurations around the globe and ever changing Unicode standard. Quick good enough solution could be only including US keyboard keys plus predefined keys.

Related: https://github.com/microsoft/TypeScript/issues/38886

https://github.com/microsoft/TypeScript/issues/29729#issuecomment-471566609


fix-fsselection: cannot parse styles correctly

When I run the script on fonts which exist in a complex folder structure, apparently the filename isn't canonical. I believe this is happening because the is_canonical function expects just a filename when it's actually receiving a font's full path.
Imo, the script is very messy and should be refactored anyway.

Fixed in https://github.com/googlefonts/gftools/pull/207


Add trace_download_errors_total metric

This covers "Trace download failures should be recorded'

Summary by CodeRabbit

New Features

Enhanced event ingestion process to include metrics collection for improved observability and performance monitoring.
Added functionality to track trace download failures, allowing better error handling and monitoring.

Bug Fixes

Improved error handling in trace downloads by integrating specific failure tracking.

Tests

Updated tests to incorporate metrics collection, enhancing monitoring capabilities during test execution.

@sideninja let's merge it in


Errors running code not dispalyed properly in scenario editor

For example, running the recommended_protocols test in scenario editor in this file generates an eot error that should be displayed in the problems tab, but isn't. "predicate doesn't exist" errors also don't work properly (if you search for a predicate that doesn't have a rule defining it).
immunization_test.txt

Resolved in v1.6.12-alpha


JaegerAgent (1.9.2) running as DaemonSet not always forwarding spans to JaegerCollector (1.9.2)

Describe the bug
With Jaeger 1.9.2 even Agent receives the log it does not forward logs to Collector (1.9.2). I set debug level on both collector and Agent. I see spans are received by Agent but it is not forwarded to Collector.  ) It forwards logs to Jaeger Collector.
To Reproduce
Steps to reproduce the behavior:

Install jaeger agent 1.9.2 as DaemonSet with log level of Debug (to see an error)
Send logs to DaemonSet (not via SideCar)
See Jaeger-Agent received spans but not sending it to Jaeger-Collector 1.9.2

We are running Kafka but since this issue is Agent <--> Collector no details are given for Kafka as after killing and respawning Agent DaemonSet it works fine.
Expected behavior
Agent should forward spans to Collector even on DaemonSet mode without issues. This situation is flaky.  Can't get a path to repeat it. It is something to do with connection from Agent to Collector I think.
Screenshots
If applicable, add screenshots to help explain your problem.
Version (please complete the following information):

OS: Ubuntu 16.04 (running as Azure  AKS 1.16.13)
Jaeger version: 1.9.2
Deployment: Kubernetes 1.16.13 on AKS

What troubleshooting steps did you try?
stern --tail 20 -n observability jaeger-agent-daemo*
stern --tail 20 -n observability jaeger-collector-*

Additional context
I see logs at Jaeger Agent running as DaemonSet:
jaeger-agent-daemonset-xjjxk jaeger-agent-daemonset {"level":"debug","ts":1599743431.949259,"caller":"processors/thrift_processor.go:120","msg":"Span(s) received by the agent","bytes-received":649}
jaeger-agent-daemonset-xjjxk jaeger-agent-daemonset {"level":"debug","ts":1599743432.9496808,"caller":"processors/thrift_processor.go:120","msg":"Span(s) received by the agent","bytes-received":643}
jaeger-agent-daemonset-xjjxk jaeger-agent-daemonset {"level":"debug","ts":1599743433.9493701,"caller":"processors/thrift_processor.go:120","msg":"Span(s) received by the agent","bytes-received":644}
jaeger-agent-daemonset-xjjxk jaeger-agent-daemonset {"level":"debug","ts":1599743434.949377,"caller":"processors/thrift_processor.go:120","msg":"Span(s) received by the agent","bytes-received":652}
jaeger-agent-daemonset-xjjxk jaeger-agent-daemonset {"level":"debug","ts":1599743435.9492238,"caller":"processors/thrift_processor.go:120","msg":"Span(s) received by the agent","bytes-received":644}

but not on Collector.
After killing jaeger-agent pod spans are received by Collector and was sent to Storage as expected:
ce-id":"4c3dae19927fccf6","span-id":"0beb7aa3f306f3ff"}
jaeger-collector-959b7f564-85dck jaeger-collector {"level":"debug","ts":1599743435.6712654,"caller":"static/strategy_store.go:77","msg":"sampling strategy not found, using default","service":"executor"}
jaeger-collector-959b7f564-85dck jaeger-collector {"level":"debug","ts":1599743435.6715622,"caller":"app/span_processor.go:147","msg":"Span written to the storage by the collector","trace-id":"37c1963c629b5f83","span-id":"62499a50f177ae93"}
jaeger-collector-959b7f564-85dck jaeger-collector {"level":"debug","ts":1599743435.671604,"caller":"app/span_processor.go:147","msg":"Span written to the storage by the collector","trace-id":"37c1963c629b5f83","span-id":"37c1963c629b5f83"}
jaeger-collector-959b7f564-85dck jaeger-collector {"level":"debug","ts":1599743435.671599,"caller":"app/span_processor.go:147","msg":"Span written to the storage by the collector","trace-id":"05d426c26771f2a7","span-id":"05d426c26771f2a7"}
jaeger-collector-959b7f564-85dck jaeger-collector {"level":"debug","ts":1599743435.6716194,"caller":"app/span_processor.go:147","msg":"Span written to the storage by the collector","trace-id":"05d426c26771f2a7","span-id":"498394fccffe4a96"}

Our template for Jaeger CR for this issue is as follows:

apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
  name: jaeger # For clarity we just used jaeger
  namespace: {{seldon_tracing_ns}}
spec:
  strategy: streaming
  storage:
    type: elasticsearch
    options:
      es:
        server-urls: {{es_protocol}}://{{es_host}}:{{es_port}}
        index-prefix: {{es_jaeger_prefix}}
        tls:
          enabled: yes
          ca: /es/certificates/ca.crt
      log-level: debug
    secretName: {{seldon_tracing_secret}}
  volumeMounts:
    - name: certificates
      mountPath: /es/certificates/
      readOnly: true
  volumes:
    - name: certificates
      secret:
        secretName: {{seldon_tracing_secret_ca}}
  agent:
    strategy: DaemonSet
    options:
      log-level: debug
  ingress:
    enabled: false  #Default true. But we need to create custom Ingress for Nginx Ingress and serving thru a subdir
    options:
      log-level: debug
  collector:
    options:
      log-level: debug
      kafka:
        producer:
          topic: {{seldon_tracing_kafka_topic}}
          brokers: {{seldon_tracing_kafka_name}}-kafka-bootstrap.{{seldon_tracing_kafka_ns}}:{{seldon_tracing_kafka_port}}
  ingester:
    options:
      log-level: debug
      kafka:
        consumer:
          topic: {{seldon_tracing_kafka_topic}}
          brokers: {{seldon_tracing_kafka_name}}-kafka-bootstrap.{{seldon_tracing_kafka_ns}}:{{seldon_tracing_kafka_port}}
      ingester:
        deadlockInterval: 0s #umber of minutes to wait for a message before terminating ingester
  query:
    options:
      query:
        base-path: /{{seldon_tracing_path}}
      log-level: debug
  ui:
    options:
      log-level: debug
      dependencies:
        menuEnabled: false # Default False

Could you get us the whole agent logs? I'm particularly interested in the gRPC-related entries.

After using helm-chart  jaeger-operator-2.17.0 i dont see that issue again. So will watch for a few days and if i dont see this issue we can close it.
helm list -n observability
NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                   APP VERSION
jaeger-operator observability   8               2020-09-15 11:05:01.307903837 +0000 UTC deployed        jaeger-operator-2.17.0  1.19.0

We have a similar problem, same version: jaeger-operator-2.17.0 App VERSION 1.19.0:
Agent + Collector have version 1.19.2.
There seems to be a problem with the agent:
Many times the agent does not receive any spans (or only 4-5 spans) from the client, right from the start of the agent. We tested different clients (Java, NodeJS), same behaviour. Loglevel=Debug, in Agent + Collector.
The agent seems to receive some spans 0 or (4 or 5), and than it stalls, nothing is logged anymore in the debug log (the 4-5 spans were logged as recieved), and now it is broken. After restarting the agent 2-3 times, it recieves all? spans, and sends them to the connector which sends them to Elasticsearch. In this case, it keeps on working and working..
The error is very hard to track down. We switched to an older versions of jaeger (1.18.1.), and this flaky behaviour is gone. Seems to be a bug in the receiving part of the agent in 1.19.0 (we use UDP+Thrift, standard java client lib, standard nodejs client lib).
Any hints how to debug this issue? Is there some easy way to remote-debug the golang agent, like a special docker-image with delve enabled? We would like to have a look at this.

We have a similar problem, same version: jaeger-operator-2.17.0 App VERSION 1.19.0:
Agent + Collector have version 1.19.2.

Could you please confirm the operator version? It probably is 1.17.0. Are you overriding the images in the CR, so that it uses 1.19.2? It probably won't matter for your case, but if you use the operator v1.19.x, it should automatically get you Jaeger v1.19.2.
Would you be open to use a sidecar for some deployments, and daemonset for others? I wonder if the deployment mode affects the behavior in this case, and if you could run some deployments with sidecars, that would help confirm this idea.
I would also appreciate if you could send us more details on how your infra looks like: how are your deployments configured? Is it like this:
      containers:
      - name: myapp
        image: acme/myapp:myversion
        env:
        - name: JAEGER_AGENT_HOST
          valueFrom:
            fieldRef:
              fieldPath: status.hostIP

like a special docker-image with delve enabled? We would like to have a look at this.

We don't have that, but we do have pprof endpoints that you can inspect:
http://localhost:14269/debug/pprof/
You should also take a look at the metrics:
http://localhost:14269/metrics
You can also use the LoggingReporter on the client side to give a positive confirmation that the client sent a batch to the agent. For most clients, it's sufficient to set JAEGER_REPORTER_LOG_SPANS to true as an env var.

Related to @bjung82
We used operator version 1.19.0.
We now changed it to operator version 1.18.1.
Related to connection issues with Elasticsearch, we changed the image version from the jaeager-collector and the jaeger jaeger-query to image version 19.0.0.
With this configuration options it works fine.
Images:
jaeager-operator: jaegertracing/jaeger-operator:1.18.1
jaeager-collector: jaegertracing/jaeger-collector:1.19.0
jaeager-query: jaegertracing/jaeger-query:1.19.0
jaeger-agent: jaegertracing/jaeger-agent:1.18.1
Starting with image jaegertracing/jaeger-agent:1.19.0 it stops working.
Another question, is it normal behavior that if there are already spans send when the agent is starting, that the agent will not record any spans?
Jaeger-Agent will then only start collecting spans if it is restarted.

I think the problems you are experiencing, @SimoneFalzone and @bjung82, isn't the same as the originally reported. It sound suspiciously similar to these: https://github.com/jaegertracing/jaeger-operator/issues/1175 and https://github.com/jaegertracing/jaeger/issues/2443 . Could you try with jaegertracing/jaeger-agent:latest, which should have the fix for the mentioned issue?
If possible, provide the bootstrap logs for your agent.

@jpkrohling Ok let me try that.

Hi @jpkrohling Does Release 1.20.0 contains fix for this  issue ?

It does contain a fix for jaegertracing/jaeger-operator#1175 and #2443. Whether those are the fixes for the problem you reported, I hope you'll tell me :-)

Ok i will try this and let you know after we get helm chart updated to have 1.20.0

Is there an ETA for jaegertracing/jaeger-operator that supports 1.20 ?

Probably something to raise in the Helm Chart repo: https://github.com/jaegertracing/helm-charts/issues/new

I see it is created on helm-charts
jaegertracing/jaeger-operator   2.18.3          1.20.0          jaeger-operator Helm chart for Kubernetes
jaegertracing/jaeger-operator   2.18.2          1.20.0          jaeger-operator Helm chart for Kubernetes
jaegertracing/jaeger-operator   2.18.1          1.20.0          jaeger-operator Helm chart for Kubernetes
jaegertracing/jaeger-operator   2.18.0          1.20.0          jaeger-operator Helm chart for Kubernetes
jaegertracing/jaeger-operator   2.17.0          1.19.0          jaeger-operator Helm chart for Kubernetes
jaegertracing/jaeger-operator   2.16.0          1.18.0          jaeger-operator Helm chart for Kubernetes
jaegertracing/jaeger-operator   2.15.1          1.18.0          jaeger-operator Helm chart for Kubernetes

I see it is created on helm-charts
jaegertracing/jaeger-operator   2.18.3          1.20.0          jaeger-operator Helm chart for Kubernetes
jaegertracing/jaeger-operator   2.18.2          1.20.0          jaeger-operator Helm chart for Kubernetes
jaegertracing/jaeger-operator   2.18.1          1.20.0          jaeger-operator Helm chart for Kubernetes
jaegertracing/jaeger-operator   2.18.0          1.20.0          jaeger-operator Helm chart for Kubernetes
jaegertracing/jaeger-operator   2.17.0          1.19.0          jaeger-operator Helm chart for Kubernetes
jaegertracing/jaeger-operator   2.16.0          1.18.0          jaeger-operator Helm chart for Kubernetes
jaegertracing/jaeger-operator   2.15.1          1.18.0          jaeger-operator Helm chart for Kubernetes


[REQ] Feature to re-enable multi-instance at our own risk.

Acknowledgement of preliminary instructions

[X] I have read and acknowledged the preliminary instructions.

What idea do you have?
Add back the feature to re-enable multi-instance at our own risk, even if it's sometimes a hit-and-miss, it has worked for me since the start with no error
I have read that it has been removed, please add it back with an option to enable it at our own risk.

Yes! I have never had one single error running 6+ accounts at once.

Won't happen, they clearly mentioned they do not want to be seen as a alt-account farming application creator..

Won't happen, they clearly mentioned they do not want to be seen as a alt-account farming application creator..

Well then using the Roblox Account Manager is the only option.


[Builtins] Fuse 'AsConstant' and 'FromConstant' into 'HasConstantIn'

We had to have two classes because of the way costing was aligned,
but that has changed, so now we can unite these classes.

Good to know that a "harmless" equality constraint can cost us that much.
Ready for review.


Repeated GetBuffer calls by a client instance for a single get operation.

Hi vineyard developers,
Recently, we reaserch vineyard flow, I found that when I do one single get operation in python script, client executed multiple GetBuffer requests. I added a print log at command_t::GET_BUFFERS_REQUEST state in the processMessage state mechine （at line 259 in the socket_server.cc）. The printed log show that at least three invocations of the GetBuffer request. Here is the log: from vineyardd:
// log position:
  } else if (cmd == command_t::GET_BUFFERS_REQUEST) {
    printf("[\033[33m%s\033[0m] %s %s doGetBuffers\n", my_time_stamp().c_str(), __FILE__, __FUNCTION__);
    return doGetBuffers(root);
}
...
} else if (cmd == command_t::GET_DATA_REQUEST) {
    printf("[\033[33m%s\033[0m] %s %s doGetData\n", my_time_stamp().c_str(), __FILE__, __FUNCTION__, __LINE__);
    return doGetData(root);
  }

[2024-05-15 18:03:36.939] v6d/src/server/async/socket_server.cc processMessage doGetData
[2024-05-15 18:03:36.941] v6d/src/server/async/socket_server.cc processMessage doGetBuffers
[2024-05-15 18:03:36.942] v6d/src/server/async/socket_server.cc processMessage doGetData
[2024-05-15 18:03:36.945] v6d/src/server/async/socket_server.cc processMessage doGetBuffers
[2024-05-15 18:03:36.948] v6d/src/server/async/socket_server.cc processMessage doGetData
[2024-05-15 18:03:36.949] v6d/src/server/async/socket_server.cc processMessage doGetBuffers

Test Demo:
#-------------------- ipc_put.py
import vineyard
import numpy as np
import os, sys

if __name__ == '__main__':
    if len(sys.argv) != 2:
        print("using : python main.py size(KB unit)")
        exit(-1)

    client = vineyard.connect('/var/run/vineyard.sock')
    b4 = 2 * np.ones((128,int(sys.argv[1])),dtype=int)
    obj_id = client.put(b4)
    print(obj_id)

#--------------------  ipc_get.py
import vineyard
import numpy as np
import os, sys
if __name__ == '__main__':
    client = vineyard.connect('/var/run/vineyard.sock')
    if len(sys.argv) != 2:
        print("using : python main.py obj-id")
        exit(-1)
    obj = vineyard.ObjectID(str(sys.argv[1]))
    array = client.get(obj)
    print(array)

Tracing the flow of the code as below:

In the resover.py(line 235),  get function call the obj = client.get_object(object_id) function to retrieve an object (obj).

def get_object(self, object_id: ObjectID) -> Object:
        """
        Fetches the object associated with the given object_id from Vineyard.
        The IPC client is preferred if it's available, otherwise the RPC client
        """
        return self._fetch_object(object_id)  # fetch the object

def _fetch_object(self, object_id: ObjectID) -> Object:
        meta = self.get_meta(object_id)  # get_meta-->GetMetaData-->GetBuffers

        if self.has_ipc_client():
            if meta.instance_id == self._ipc_client.instance_id or meta.isglobal:
                return self._ipc_client.get_object(object_id, fetch=False)  # GetObject-->GetMetaData-->GetBuffers
            else:
                warnings.warn(
                    f"Migrating object {object_id} from another vineyard instance "
                    f"{meta.instance_id}"
                )
                return self._ipc_client.get_object(object_id, fetch=True)
        if self.has_rpc_client():
            if self._rpc_client.is_fetchable(meta):
                return self._rpc_client.get_object(object_id)
            else:
                return self._locate_and_fetch(meta)

Inside the get_object function, call the get_meta function to obtain the metadata (meta) of the object.

 "get_meta",
          [](Client* self, ObjectIDWrapper const& object_id,
             bool const sync_remote) -> ObjectMeta {
            ObjectMeta meta;
            throw_on_error(self->GetMetaData(object_id, meta, sync_remote)); // Call the GetBuffers internally
            return meta;
          },
          "object_id"_a, py::arg("sync_remote") = false,
          doc::IPCClient_get_meta)

Inside the get_meta function, client calls the GetBuffer function to request the buffer of the object from vineyardd.
When the get_object function is called from client.py +581, internally (in client.cc on line 393), the GetMetaData function is re-invoked.

Status Client::GetObject(const ObjectID id, std::shared_ptr<Object>& object) {
 ObjectMeta meta;
 RETURN_ON_ERROR(this->GetMetaData(id, meta, true));   // Call the GetBuffers internally
 RETURN_ON_ASSERT(!meta.MetaData().empty());
 object = ObjectFactory::Create(meta.GetTypeName());
 if (object == nullptr) {
   object = std::unique_ptr<Object>(new Object());
 }
 object->Construct(meta);
 return Status::OK();
}

Status Client::GetMetaData(const ObjectID id, ObjectMeta& meta,
                          const bool sync_remote) {
 ENSURE_CONNECTED(this);
 json tree;
 RETURN_ON_ERROR(GetData(id, tree, sync_remote));
 meta.Reset();
 meta.SetMetaData(this, tree);

 std::map<ObjectID, std::shared_ptr<Buffer>> buffers;
 RETURN_ON_ERROR(GetBuffers(meta.GetBufferSet()->AllBufferIds(), buffers)); // Here call the GetBuffers

 for (auto const& id : meta.GetBufferSet()->AllBufferIds()) {
   const auto& buffer = buffers.find(id);
   if (buffer != buffers.end()) {
     meta.SetBuffer(id, buffer->second);
   }
 }
 return Status::OK();
}

My question, Is there a problem of repeated GetBuffer calls?

@ysbqiaqia Thanks for the detailed steps. You are right, there are indeed multiple GetBuffer calls.
The current design is to simplify the API configuration. When dealing with multiple vineyard nodes on k8s, we first need to check the metadata to determine which vineyard node the object is stored on. Then, we can create a corresponding IPC/RPC client to obtain the object, as it may exist locally or remotely.
The GetMetaData function consists of two steps: GetData (to get metadata from etcd) and GetBuffer (to get the payload from vineyard). As you mentioned, both get_meta and get_object will invoke the GetMetaData function. One potential solution to address the issue of repeatedly calling GetBuffer and GetData is to split the GetMetaData function.
We will fix it quickly and thanks again!

GetMetaData

yes, I think get_meta function just get meta from etcd, and GetBuffer  can be called in some where of get_object function.


feat(protocol-designer): add air gap form validation

Overview
This PR closes #6007 by adding air gap validation to PD.
Note: the min air gap volume is "enforced" via a form level warning. The "masking" (which is done by dependentFieldsUpdateMoveLiquid.js) only clamps the air gap volume to a value between 0 and the max air gap volume defined in the ticket.
Changelog

Add air gap form validation

Review requests
Code review, including tests!

Make a protocol with an air gap
When you type a value larger than (pipette capacity - min pipette volume), the value should be clamped to (pipette capacity - min pipette volume)
You shouldn't be able to type negative numbers
You shouldn't be able to type decimals

Risk assessment
Low, adding validation behind FF

@Kadee80 fixed! Thanks to @IanLondon for sorting that out with me

Cool, I'll merge this for now and we can make changes in a follow up PR if need be. Thanks for raising that @IanLondon!


Is altLabel necessary?

I'm not clear on the purpose of altLabel I get that it's an alternative, non-preferred label, but is restrictive or suggestive? I.e. am I allowed to use a verb display that is not either the preferred or alternate label for that verb?
If it's suggestive, then why have it? We have the label that we want people to use, why suggest another one?
I don't see any reason for it to be restrictive - why limit people from using any alternative label?
In any case, if we keep it then it should be a language map of arrays (a list of values per language). There's no reason why there should be exactly 1 alternative.

altLabel is there partly to provide guidance on particular alternatives that might be in use--"here's a verb, here's how you should probably display it, but be aware some people are sending data with this other display". It is also partly for discovery -- someone might type a search term in while looking for something, and if it exactly/closely matches an altLabel that verb could be surfaced.
I do think the value is minimal overall; I nearly dropped altLabel along with some other things from the vocabulary spec.
Re: array, yep, I'd already made a note to change that but it looks like I hadn't added it to the issues yet (there's a way to have language tagged values in an array instead of a map in JSON-LD, which is what we'd use). If we keep altLabels that'll happen

I'd like to get rid of altLabel, thinking about it.

Consensus reached, remove it


Slightly strangeness on moment

I don't fully understand why this is happening—I'm not even sure it's an issue—but I figured I'd post it here anyway.
We just changed the clocks back in England, which meant we had a day that was 25 hours long. The next day, we had a day appearing twice in the calendar on our site.
Basically:
moment.duration(-moment('2016-10-30').diff('2016-10-31')).asDays();
// -> 1.041666

moment('2016-10-31').diff('2016-10-30', 'days');
// -> 1

We were originally using the former, but switched to the latter to fix the issue. The former remains recommended in many places across the internet.
Is this expected / known? (also, does this happen with leap seconds too?)

Thanks for asking!  This behavior is expected and intended.  moment#diff without a units argument returns a number of milliseconds, so that's representing 25 hours stripped from any context of where those 25 hours came from.  Then you create a duration from that value, and of course 25 hours generally is more than a day, so it gets handled accordingly.  Your issue is exactly why the team added that second parameter to diff so you can get accurate results in other units.

Great, thanks for the explanation! (and sorry for the title gore: didn't notice until I reread it just now)


ignore audit advisories we want to ignore, or cannot do anything right now

If we want the audit checks on PRs or in forks to pass we have to ignore everything we don't directly fix.
I'm not 100% sure what to add in the comments, I'm happy to add more.
I also set deny = ["warnings"] which makes the audit fail when unmaintained crates are added like I did in #1541 .

don't merge just yet, I want to test the deny = ["warnings"] part first

Will we get an error/warning if one of the ignored advisories does not trigger?

Will we get an error/warning if one of the ignored advisories does not trigger?

I don't think so.
Also, I saw an option to deny yanked releases, not sure if that would be usedful for us. IMHO it depends on why the release was yanked :)

I need to dig deeper here... the actions-rs/audit-check GH action doesn't fail the job when we only have warnings.

@jyn514 to me it seems like that actions-rs/audit-check is ignoring warnings coming from cargo audit, even when audit itself correctly fails.
Seeing open PRs and issues I'm actually not sure if a PR fixing this would even be looked at :) Or do we know someone there?
IMHO we should merge this PR and then see separately how we solve audit. Running it directly would mean we don't have the nicely created issues any more. Or we need to fork it.

Like this the scheduled check should be fine also for forks, only raising warnings (unmaintained dependency) on PRs doesn't.

IMHO we should merge this PR and then see separately how we solve audit.

👍 Seems good


Feature test workflow

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@d909fec). Click here to learn what that means.
The diff coverage is n/a.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@           Coverage Diff           @@
##             main       #1   +/-   ##
=======================================
  Coverage        ?   98.14%
=======================================
  Files           ?       20
  Lines           ?      864
  Branches        ?      314
=======================================
  Hits            ?      848
  Misses          ?       16
  Partials        ?        0


Allow supplying --email and --password to login

$ goji login --email<EMAIL_ADDRESS>--password "Hello World"

I'd like to move password to be stdin, shouldn't be as option.

Using stdin for password will be safer option

Using stdin for password will be safer option

This should already be supported with GOJI_EMAIL and GOJI_PASSWORD. You won't need to use the login command as these won't be persisted.

Effectively a duplicate of https://github.com/kylef/goji/pull/46 / #44


[WFLY-12218] Add support for automatically adding and updating credentials in a credential store

https://issues.jboss.org/browse/WFLY-12218
Requires https://github.com/wildfly/wildfly-core/pull/3925 in order to compile

I've now updated this to ensure that if an operation that includes a credential-reference parameter fails for any reason, then the credential store update will get rolled back.

Hi @fjuma, can you please solve the merge conflict here?

@tterem I've now rebased and fixed the merge conflict.

Dependency Tree Analyzer Output:
Removed Dependencies:

xml-resolver:xml-resolver:jar:1.2:compile

Major Version Changes:

org.wildfly.core:wildfly-cli:jar:client:11.0.0.Final:compile -> 12.0.0.Beta1
org.wildfly.core:wildfly-core-feature-pack:zip:11.0.0.Final:compile -> 12.0.0.Beta1
org.wildfly.core:wildfly-elytron-integration:jar:11.0.0.Final:compile -> 12.0.0.Beta1
org.wildfly.core:wildfly-event-logger:jar:11.0.0.Final:compile -> 12.0.0.Beta1
org.wildfly.core:wildfly-version:jar:11.0.0.Final:compile -> 12.0.0.Beta1

CC @wildfly/prod

Just FYI, the "core-upgrade-needed" label can be removed from this PR. Thanks.

Looks good to me for the messaging part

@pferraro Thanks very much for the clustering updates, they are now included in this PR.

@fl4via could you please review the undertow upgrade please?
@maeste could you please review the JCA/datasource upgrades please?
@ehsavoie could you please review the messaging upgrade please?

agroal changes looks good.
@fjuma could you please rebase to fix the conflict in messaging-activemq's BridgeAdd?
Once @fl4via has approved the undertow changes, we will be able to merge the PR.

Thanks for the reviews. I've rebased to fix the conflict.


Add php-cs-fixer to control the code style during development

Add a PHP-CS-Fixer.

Coverage decreased (-0.02%) to 99.86% when pulling 49a4c1a91a036f8ccd38616ac9e2c164a8b2fa2a on peter-gribanov:php-cs-fixer into 3f47c94fc54b3535ce0e248407931ed81ae5c467 on gpslab:master.

Coverage decreased (-0.02%) to 99.86% when pulling 49a4c1a91a036f8ccd38616ac9e2c164a8b2fa2a on peter-gribanov:php-cs-fixer into 3f47c94fc54b3535ce0e248407931ed81ae5c467 on gpslab:master.

Coverage decreased (-0.02%) to 99.86% when pulling 49a4c1a91a036f8ccd38616ac9e2c164a8b2fa2a on peter-gribanov:php-cs-fixer into 3f47c94fc54b3535ce0e248407931ed81ae5c467 on gpslab:master.

Coverage decreased (-0.02%) to 99.86% when pulling 49a4c1a91a036f8ccd38616ac9e2c164a8b2fa2a on peter-gribanov:php-cs-fixer into 3f47c94fc54b3535ce0e248407931ed81ae5c467 on gpslab:master.

Coverage decreased (-0.02%) to 99.86% when pulling 49a4c1a91a036f8ccd38616ac9e2c164a8b2fa2a on peter-gribanov:php-cs-fixer into 3f47c94fc54b3535ce0e248407931ed81ae5c467 on gpslab:master.

Coverage decreased (-0.02%) to 99.86% when pulling 49a4c1a91a036f8ccd38616ac9e2c164a8b2fa2a on peter-gribanov:php-cs-fixer into 3f47c94fc54b3535ce0e248407931ed81ae5c467 on gpslab:master.


Enable Slack Github Integration and Notifications

Please make sure that this is a feature request. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:feature_template
System information

TensorFlow version (you are using): NA
Are you willing to contribute it (Yes/No): NA

Describe the feature and the current behavior/state.
I want to the Slack Github integration to notify my team of activity in tensorflow/tensorflow, but I received an error:
Either the app isn't installed on your repository or the repository does not exist. Install it to proceed.

To reproduce:

Add GitHub app to your Slack workspace
In a channel, run /github subscribe tensorflow/tensorflow
See error

Will this change the current api? How?
NA
Who will benefit with this feature?
Everyone who uses Slack for GitHub notifications!
Any Other info.
Only an organization owner can enable this integration

This behavior can be mimic-ed in slack by subscribing the Github projects RSS feed
/feed https://github.com/tensorflow/tensorflow/releases.atom

The error message sounds like that would require us to install a slack app on tensorflow. Unfortunately, this is not something we can do. I hope the workaround suggested by @devstein works for you.