Slowdown with ROCm 3.7 - gpuOwl application

https://github.com/preda/gpuowl/issues/188

Inlining the numbers from above ( preda/gpuowl#188 ):
ROCm 3.3 performance
gpu1 gpu2
min: 2404 us/it 2427 us/it
max: 2443 us/it 2510 us/it
ROCm 3.7 performance
gpu1 gpu2
min: 2501 us/it 2524 us/it
max: 2538 us/it 2612 us/it
about 102 us/it slower on gpu2.

If we compound with https://github.com/RadeonOpenCompute/ROCm/issues/766 ,
i.e. 5% slowdown from 2.2 to 2.3, compounded with 4% slowdown from 2.3 to 2.7 as reported here, we infer >9% slowdown from 2.2 to 2.7.
This is not progressing in the right direction.

I hoped to be able to use RDC to monitor gpus (available in 3.7) but instead I am going to rollback to 3.3

Hi @preda
Can you please try with the latest ROCm release version: 3.10 and update please.
Thank you.

Per kernel timings, ROCm 3.3:
carryFused     :    264 us/call
tailFusedSquare :    192 us/call
fftMiddleOut   :    127 us/call
fftMiddleIn    :    124 us/call

ROCm 3.10:
carryFused     :    281 us/call
tailFusedSquare :    211 us/call
fftMiddleOut   :    130 us/call
fftMiddleIn    :    125 us/call

Comparing occupancy for the top two kernels above, left is 3.3, right is 3.10:
carryFused       :    Occupancy: =     6       | carryFused       :    Occupancy: =     5
tailFusedMul     :    Occupancy: =     2       | tailFusedMul     :    Occupancy: =     1
---------------------
carryFused       :    NumVgprs:   =    39       | carryFused       :    NumVgprs: =    41
tailFusedMul     :    NumVgprs:   =   123       | tailFusedMul     :    NumVgprs: =   155

Hi @preda
I am getting lot of errors like missing files, linkage errors etc.
For ex:
taccuser@taccuser-SYS-4028GR-TR2:~/gpuowl$ make
echo "git describe --tags --long --dirty --always" > version.new
diff -q -N version.new version.inc >/dev/null || mv version.new version.inc
echo Version: cat version.inc
Version: "v7.2-21-g28dbf88"
g++ -MT ProofCache.o -MMD -MP -MF .d/ProofCache.Td -Wall -O2 -std=c++17   -c -o ProofCache.o ProofCache.cpp
In file included from ProofCache.cpp:3:0:
ProofCache.h:8:10: fatal error: filesystem: No such file or directory
#include
^~~~~~~~~~~~
compilation terminated.
Makefile:33: recipe for target 'ProofCache.o' failed
make: *** [ProofCache.o] Error 1

Hi @preda
I am getting lot of errors like missing files, linkage errors etc.
For ex:
taccuser@taccuser-SYS-4028GR-TR2:~/gpuowl$ make
echo "git describe --tags --long --dirty --always" > version.new
diff -q -N version.new version.inc >/dev/null || mv version.new version.inc
echo Version: cat version.inc
Version: "v7.2-21-g28dbf88"
g++ -MT ProofCache.o -MMD -MP -MF .d/ProofCache.Td -Wall -O2 -std=c++17   -c -o ProofCache.o ProofCache.cpp
In file included from ProofCache.cpp:3:0:
ProofCache.h:8:10: fatal error: filesystem: No such file or directory
#include
^~~~~~~~~~~~
compilation terminated.
Makefile:33: recipe for target 'ProofCache.o' failed
make: *** [ProofCache.o] Error 1

Please use a newer version of g++, like 9 or 10. 8 might also work fine. Would help to report the version of the compiler you're using, obtained with:
g++ --version

Please use a newer version of g++, like 9 or 10. 8 might also work fine. Would help to report the version of the compiler you're using, obtained with:
g++ --version

On a side note, the slowdown relative to ROCm 3.3 is still present in ROCm 4.0. The reason is wasteful VGPR allocation which reduces occupancy of some key kernels.

On a side note, the slowdown relative to ROCm 3.3 is still present in ROCm 4.0. The reason is wasteful VGPR allocation which reduces occupancy of some key kernels.

@preda Could you remaind me what GPU are you using? And what does clinfo reports about the amount of "Local memory" in 3.3 and 4.0? I noticed on my Fury X (FIJI, GFX8), that is incorrectly reports amount of 64KB of local memory, where I believe it has only 32KB per core. The OpenCL driver from AMD Pro drivers, reports it correctly, even if they include the OpenCL based on rocm. This might explain why compiler is doing so poorly and reduces performance so much.
I wonder if maybe it is similar with your GPU.

@preda Could you remaind me what GPU are you using? And what does clinfo reports about the amount of "Local memory" in 3.3 and 4.0? I noticed on my Fury X (FIJI, GFX8), that is incorrectly reports amount of 64KB of local memory, where I believe it has only 32KB per core. The OpenCL driver from AMD Pro drivers, reports it correctly, even if they include the OpenCL based on rocm. This might explain why compiler is doing so poorly and reduces performance so much.
I wonder if maybe it is similar with your GPU.

@baryluk The GPU is Radeon VII. The diff between clinfo on 3.3 and 4.0 is:
4c4
<   Platform Version                                OpenCL 2.1 AMD-APP (3098.0)
---
>   Platform Version                                OpenCL 2.0 AMD-APP (3212.0)
6,7c6
<   Platform Extensions                             cl_khr_icd cl_amd_event_callback cl_amd_offline_devices
<   Platform Host timer resolution                  1ns
---
>   Platform Extensions                             cl_khr_icd cl_amd_event_callback
12c11
<   Device Name                                     gfx906+sram-ecc
---
>   Device Name                                     gfx906
16c15
<   Driver Version                                  3098.0 (HSA1.1,LC)
---
>   Driver Version                                  3212.0 (HSA1.1,LC)
30c29
<   Graphics IP (AMD)                               9.6
---
>   Graphics IP (AMD)                               9.0
82c81
<   Max memory allocation<PHONE_NUMBER>2 (13.59GiB)
---
>   Max memory allocation<PHONE_NUMBER>8 (13.59GiB)
95c94
<   Max size for global variable<PHONE_NUMBER>2 (13.59GiB)
---
>   Max size for global variable<PHONE_NUMBER>8 (13.59GiB)
102,103c101,102
<     Max size for 1D images from buffer            65536 pixels
<     Max 1D or 2D image array size                 2048 images
---
>     Max size for 1D images from buffer<PHONE_NUMBER> pixels
>     Max 1D or 2D image array size                 8192 images
107c106
<     Max 3D image size                             2048x2048x2048 pixels
---
>     Max 3D image size                             16384x16384x8192 pixels
113c112
<   Max pipe packet size<PHONE_NUMBER> (1.587GiB)
---
>   Max pipe packet size<PHONE_NUMBER> (1.587GiB)
119c118
<   Max constant buffer size<PHONE_NUMBER>2 (13.59GiB)
---
>   Max constant buffer size<PHONE_NUMBER>8 (13.59GiB)

They both report
Local memory size                               65536 (64KiB)
Local memory syze per CU (AMD)                  65536 (64KiB)

@baryluk The GPU is Radeon VII. The diff between clinfo on 3.3 and 4.0 is:
4c4
<   Platform Version                                OpenCL 2.1 AMD-APP (3098.0)
---
>   Platform Version                                OpenCL 2.0 AMD-APP (3212.0)
6,7c6
<   Platform Extensions                             cl_khr_icd cl_amd_event_callback cl_amd_offline_devices
<   Platform Host timer resolution                  1ns
---
>   Platform Extensions                             cl_khr_icd cl_amd_event_callback
12c11
<   Device Name                                     gfx906+sram-ecc
---
>   Device Name                                     gfx906
16c15
<   Driver Version                                  3098.0 (HSA1.1,LC)
---
>   Driver Version                                  3212.0 (HSA1.1,LC)
30c29
<   Graphics IP (AMD)                               9.6
---
>   Graphics IP (AMD)                               9.0
82c81
<   Max memory allocation<PHONE_NUMBER>2 (13.59GiB)
---
>   Max memory allocation<PHONE_NUMBER>8 (13.59GiB)
95c94
<   Max size for global variable<PHONE_NUMBER>2 (13.59GiB)
---
>   Max size for global variable<PHONE_NUMBER>8 (13.59GiB)
102,103c101,102
<     Max size for 1D images from buffer            65536 pixels
<     Max 1D or 2D image array size                 2048 images
---
>     Max size for 1D images from buffer<PHONE_NUMBER> pixels
>     Max 1D or 2D image array size                 8192 images
107c106
<     Max 3D image size                             2048x2048x2048 pixels
---
>     Max 3D image size                             16384x16384x8192 pixels
113c112
<   Max pipe packet size<PHONE_NUMBER> (1.587GiB)
---
>   Max pipe packet size<PHONE_NUMBER> (1.587GiB)
119c118
<   Max constant buffer size<PHONE_NUMBER>2 (13.59GiB)
---
>   Max constant buffer size<PHONE_NUMBER>8 (13.59GiB)

They both report
Local memory size                               65536 (64KiB)
Local memory syze per CU (AMD)                  65536 (64KiB)

Interesting indeed. Thanks @preda

Interesting indeed. Thanks @preda

Hi @preda
Have moved to machine with gcc9 and able to build the application using make.
But application is running for more than 2 hours and still running. Now sure how much time it takes to complete.
I used this command: ./gpuowl -prp 96359411 -time
Can you please share a small test/sample to reproduce this problem.
Thank you.

Hi @preda
Have moved to machine with gcc9 and able to build the application using make.
But application is running for more than 2 hours and still running. Now sure how much time it takes to complete.
I used this command: ./gpuowl -prp 96359411 -time
Can you please share a small test/sample to reproduce this problem.
Thank you.

It is normal that it takes a long time, on the order of 24 hours depending on the GPU and exponent (the "exponent" is the number you pass to -prp, in your case 96359411). But in order to measure the performance you don't need to run a full exponent to completion -- the software outputs performance numbers periodically, something like 1396 us/it, that meaning: 1396 microseconds ("us") per iteration. That number being smaller means that the program runs faster, as it takes less time to run one iteration.
You can also run gpuowl with -iters , and the program will stop after the given number of iterations. Run with -iters 100000 , should take or the order of minutes to complete (depending on GPU).
-time is not needed to measure performance, it is only needed to output per-kernel timing information. Obtaining this information (timing per kernel) slows down the run a bit though. So to compare two setups (e.g. two ROCm versions on the same hardware), run without -time, with -iters  , and record both the iteration time displayed and the clock time. (that can be obtained with the "time" Unix command), e.g.:
time ./gpuowl -prp 102363257 -iters 100000 -B1 0 -nospin -proof 1 -device 0

if using version 7.2.21
To stop cleanly, give it a Ctrl-C or "kill -INT".
To reset to a clean state, simply remove (or move) the folder "102363257" (i.e. the exponent) that contains the savefiles, and restart the program.
Let me know what other questions appear.

It is normal that it takes a long time, on the order of 24 hours depending on the GPU and exponent (the "exponent" is the number you pass to -prp, in your case 96359411). But in order to measure the performance you don't need to run a full exponent to completion -- the software outputs performance numbers periodically, something like 1396 us/it, that meaning: 1396 microseconds ("us") per iteration. That number being smaller means that the program runs faster, as it takes less time to run one iteration.
You can also run gpuowl with -iters , and the program will stop after the given number of iterations. Run with -iters 100000 , should take or the order of minutes to complete (depending on GPU).
-time is not needed to measure performance, it is only needed to output per-kernel timing information. Obtaining this information (timing per kernel) slows down the run a bit though. So to compare two setups (e.g. two ROCm versions on the same hardware), run without -time, with -iters  , and record both the iteration time displayed and the clock time. (that can be obtained with the "time" Unix command), e.g.:
time ./gpuowl -prp 102363257 -iters 100000 -B1 0 -nospin -proof 1 -device 0

if using version 7.2.21
To stop cleanly, give it a Ctrl-C or "kill -INT".
To reset to a clean state, simply remove (or move) the folder "102363257" (i.e. the exponent) that contains the savefiles, and restart the program.
Let me know what other questions appear.

Thanks @preda
I am able to reproduce the problem.
I am observing 4% drop between 3.3 and 3.5 using the command: time ./gpuowl -prp 102363257 -iters 100000 -B1 0 -nospin -proof 1 -device 0
I will start debugging it and will assign to component accordingly. Please stay tuned for more updates.
Thank you.

Thanks @preda
I am able to reproduce the problem.
I am observing 4% drop between 3.3 and 3.5 using the command: time ./gpuowl -prp 102363257 -iters 100000 -B1 0 -nospin -proof 1 -device 0
I will start debugging it and will assign to component accordingly. Please stay tuned for more updates.
Thank you.

3.3 scores:
2021-01-29 15:29:50 459888c172da5eee 102363257 OK       800   0.00% 6e5d40814e8972fb  664 us/it + check 0.39s + save 0.28s; ETA 18:52
2021-01-29 15:29:56 459888c172da5eee 102363257        10000   0.01% 62cee1a7d612e416  664 us/it
2021-01-29 15:30:03 459888c172da5eee 102363257        20000   0.02% be681c958feac273  664 us/it
2021-01-29 15:30:09 459888c172da5eee 102363257        30000   0.03% f5e77003c5ff62ea  665 us/it
2021-01-29 15:30:16 459888c172da5eee 102363257        40000   0.04% 83bae23d7e091516  666 us/it
2021-01-29 15:30:23 459888c172da5eee 102363257        50000   0.05% 7081b36c3348edd3  666 us/it
2021-01-29 15:30:29 459888c172da5eee 102363257        60000   0.06% fcc65b9f70ccd618  666 us/it
2021-01-29 15:30:36 459888c172da5eee 102363257        70000   0.07% 7f44897e8bca208f  666 us/it
2021-01-29 15:30:43 459888c172da5eee 102363257        80000   0.08% d5fcf6c4ca6ce951  666 us/it
2021-01-29 15:30:49 459888c172da5eee 102363257        90000   0.09% 909b339c2637035e  667 us/it
2021-01-29 15:30:56 459888c172da5eee 102363257 Stopping, please wait..
2021-01-29 15:30:57 459888c172da5eee 102363257 OK    100000   0.10% a536e30314385089  670 us/it + check 0.41s + save 0.32s; ETA 19:05
2021-01-29 15:30:57 459888c172da5eee Exiting because "stop requested"
2021-01-29 15:30:57 459888c172da5eee Bye
real    1m11.769s
user    0m5.723s
sys     0m0.202s
3.5 scores:
2021-01-29 15:27:21 459888c172da5eee 102363257 OK       800   0.00% 6e5d40814e8972fb  687 us/it + check 0.40s + save 0.28s; ETA 19:31
2021-01-29 15:27:27 459888c172da5eee 102363257        10000   0.01% 62cee1a7d612e416  687 us/it
2021-01-29 15:27:34 459888c172da5eee 102363257        20000   0.02% be681c958feac273  688 us/it
2021-01-29 15:27:41 459888c172da5eee 102363257        30000   0.03% f5e77003c5ff62ea  688 us/it
2021-01-29 15:27:48 459888c172da5eee 102363257        40000   0.04% 83bae23d7e091516  689 us/it
2021-01-29 15:27:55 459888c172da5eee 102363257        50000   0.05% 7081b36c3348edd3  689 us/it
2021-01-29 15:28:01 459888c172da5eee 102363257        60000   0.06% fcc65b9f70ccd618  690 us/it
2021-01-29 15:28:08 459888c172da5eee 102363257        70000   0.07% 7f44897e8bca208f  690 us/it
2021-01-29 15:28:15 459888c172da5eee 102363257        80000   0.08% d5fcf6c4ca6ce951  690 us/it
2021-01-29 15:28:22 459888c172da5eee 102363257        90000   0.09% 909b339c2637035e  690 us/it
2021-01-29 15:28:29 459888c172da5eee 102363257 Stopping, please wait..
2021-01-29 15:28:30 459888c172da5eee 102363257 OK    100000   0.10% a536e30314385089  691 us/it + check 0.41s + save 0.29s; ETA 19:38
2021-01-29 15:28:30 459888c172da5eee Exiting because "stop requested"
2021-01-29 15:28:30 459888c172da5eee Bye
real    1m14.102s
user    0m5.939s
sys     0m0.215s
Same issue is seen with ROCm 4.0 also.

3.3 scores:
2021-01-29 15:29:50 459888c172da5eee 102363257 OK       800   0.00% 6e5d40814e8972fb  664 us/it + check 0.39s + save 0.28s; ETA 18:52
2021-01-29 15:29:56 459888c172da5eee 102363257        10000   0.01% 62cee1a7d612e416  664 us/it
2021-01-29 15:30:03 459888c172da5eee 102363257        20000   0.02% be681c958feac273  664 us/it
2021-01-29 15:30:09 459888c172da5eee 102363257        30000   0.03% f5e77003c5ff62ea  665 us/it
2021-01-29 15:30:16 459888c172da5eee 102363257        40000   0.04% 83bae23d7e091516  666 us/it
2021-01-29 15:30:23 459888c172da5eee 102363257        50000   0.05% 7081b36c3348edd3  666 us/it
2021-01-29 15:30:29 459888c172da5eee 102363257        60000   0.06% fcc65b9f70ccd618  666 us/it
2021-01-29 15:30:36 459888c172da5eee 102363257        70000   0.07% 7f44897e8bca208f  666 us/it
2021-01-29 15:30:43 459888c172da5eee 102363257        80000   0.08% d5fcf6c4ca6ce951  666 us/it
2021-01-29 15:30:49 459888c172da5eee 102363257        90000   0.09% 909b339c2637035e  667 us/it
2021-01-29 15:30:56 459888c172da5eee 102363257 Stopping, please wait..
2021-01-29 15:30:57 459888c172da5eee 102363257 OK    100000   0.10% a536e30314385089  670 us/it + check 0.41s + save 0.32s; ETA 19:05
2021-01-29 15:30:57 459888c172da5eee Exiting because "stop requested"
2021-01-29 15:30:57 459888c172da5eee Bye
real    1m11.769s
user    0m5.723s
sys     0m0.202s
3.5 scores:
2021-01-29 15:27:21 459888c172da5eee 102363257 OK       800   0.00% 6e5d40814e8972fb  687 us/it + check 0.40s + save 0.28s; ETA 19:31
2021-01-29 15:27:27 459888c172da5eee 102363257        10000   0.01% 62cee1a7d612e416  687 us/it
2021-01-29 15:27:34 459888c172da5eee 102363257        20000   0.02% be681c958feac273  688 us/it
2021-01-29 15:27:41 459888c172da5eee 102363257        30000   0.03% f5e77003c5ff62ea  688 us/it
2021-01-29 15:27:48 459888c172da5eee 102363257        40000   0.04% 83bae23d7e091516  689 us/it
2021-01-29 15:27:55 459888c172da5eee 102363257        50000   0.05% 7081b36c3348edd3  689 us/it
2021-01-29 15:28:01 459888c172da5eee 102363257        60000   0.06% fcc65b9f70ccd618  690 us/it
2021-01-29 15:28:08 459888c172da5eee 102363257        70000   0.07% 7f44897e8bca208f  690 us/it
2021-01-29 15:28:15 459888c172da5eee 102363257        80000   0.08% d5fcf6c4ca6ce951  690 us/it
2021-01-29 15:28:22 459888c172da5eee 102363257        90000   0.09% 909b339c2637035e  690 us/it
2021-01-29 15:28:29 459888c172da5eee 102363257 Stopping, please wait..
2021-01-29 15:28:30 459888c172da5eee 102363257 OK    100000   0.10% a536e30314385089  691 us/it + check 0.41s + save 0.29s; ETA 19:38
2021-01-29 15:28:30 459888c172da5eee Exiting because "stop requested"
2021-01-29 15:28:30 459888c172da5eee Bye
real    1m14.102s
user    0m5.939s
sys     0m0.215s
Same issue is seen with ROCm 4.0 also.

Hi @preda
Can you please confirm whether this issue is always reproducible?
Looks like I am not able to reproduce today.
I am getting same scores with both 3.3 and 3.5 today. Looks like this issue is intermittent.
3.5 scores observed today:
2021-02-03 14:31:48 459888c172da5eee 102363257 OK       800   0.00% 6e5d40814e8972fb  668 us/it + check 0.39s + save 0.28s; ETA 19:00
2021-02-03 14:31:55 459888c172da5eee 102363257        10000   0.01% 62cee1a7d612e416  668 us/it
2021-02-03 14:32:01 459888c172da5eee 102363257        20000   0.02% be681c958feac273  668 us/it
2021-02-03 14:32:08 459888c172da5eee 102363257        30000   0.03% f5e77003c5ff62ea  669 us/it
2021-02-03 14:32:15 459888c172da5eee 102363257        40000   0.04% 83bae23d7e091516  669 us/it
2021-02-03 14:32:21 459888c172da5eee 102363257        50000   0.05% 7081b36c3348edd3  670 us/it
2021-02-03 14:32:28 459888c172da5eee 102363257        60000   0.06% fcc65b9f70ccd618  670 us/it
2021-02-03 14:32:35 459888c172da5eee 102363257        70000   0.07% 7f44897e8bca208f  670 us/it
2021-02-03 14:32:41 459888c172da5eee 102363257        80000   0.08% d5fcf6c4ca6ce951  670 us/it
2021-02-03 14:32:48 459888c172da5eee 102363257        90000   0.09% 909b339c2637035e  671 us/it
2021-02-03 14:32:55 459888c172da5eee 102363257 Stopping, please wait..
2021-02-03 14:32:56 459888c172da5eee 102363257 OK    100000   0.10% a536e30314385089  671 us/it + check 0.40s + save 0.30s; ETA 19:03
2021-02-03 14:32:56 459888c172da5eee Exiting because "stop requested"
2021-02-03 14:32:56 459888c172da5eee Bye
real    1m12.074s
user    0m5.697s
sys     0m0.190s
3.3 scores observed today:
2021-02-03 14:36:39 459888c172da5eee 102363257 OK       800   0.00% 6e5d40814e8972fb  668 us/it + check 0.39s + save 0.26s; ETA 18:59
2021-02-03 14:36:45 459888c172da5eee 102363257        10000   0.01% 62cee1a7d612e416  668 us/it
2021-02-03 14:36:52 459888c172da5eee 102363257        20000   0.02% be681c958feac273  668 us/it
2021-02-03 14:36:59 459888c172da5eee 102363257        30000   0.03% f5e77003c5ff62ea  669 us/it
2021-02-03 14:37:05 459888c172da5eee 102363257        40000   0.04% 83bae23d7e091516  670 us/it
2021-02-03 14:37:12 459888c172da5eee 102363257        50000   0.05% 7081b36c3348edd3  670 us/it
2021-02-03 14:37:19 459888c172da5eee 102363257        60000   0.06% fcc65b9f70ccd618  670 us/it
2021-02-03 14:37:25 459888c172da5eee 102363257        70000   0.07% 7f44897e8bca208f  670 us/it
2021-02-03 14:37:32 459888c172da5eee 102363257        80000   0.08% d5fcf6c4ca6ce951  670 us/it
2021-02-03 14:37:39 459888c172da5eee 102363257        90000   0.09% 909b339c2637035e  671 us/it
2021-02-03 14:37:45 459888c172da5eee 102363257 Stopping, please wait..
2021-02-03 14:37:46 459888c172da5eee 102363257 OK    100000   0.10% a536e30314385089  671 us/it + check 0.41s + save 0.31s; ETA 19:03
2021-02-03 14:37:46 459888c172da5eee Exiting because "stop requested"
2021-02-03 14:37:46 459888c172da5eee Bye
real    1m12.131s
user    0m5.681s
sys     0m0.225s

The issue, in my observation, is consistent (not intermittent). OTOH you should keep an eye on the GPU temperature and the related throttling or boosting. Basically, keep gpuowl running for 5minutes or more until a stable-state is reached before measuring. Also, set the fan speed to a high speed manually as to prevent thermal throttling. Also, it's recomended to underclock the GPU (e.g. by setting sclk to level 3) which helps with throttling.
The issues also manifests in different ISA compilation, which can be dumped with -dump , where different occupancy and VGPRs allocation is observed, and this is consistent IMO as well -- but feel free to compare the generated ISA.

Thanks @preda
I switched to a different machine and am able to reproduce this 100% now after setting sclk to 3 and max fan levels.
I am working on finding faulty package.

Latest update on this issue:
This issue is caused due to changes in the comgr. Issue/Regression is observed from ROCm 3.5 and even today with ROCm 4.0 and 4.1 internal code too. Scores were good with ROCm 3.3 and so I can say that its regression from ROCm 3.5.
Filed an internal ticket and assigned to comgr team.
Please stay tuned for more updates. Thank you.

Latest update on this issue:
This issue is caused due to changes in the comgr. Issue/Regression is observed from ROCm 3.5 and even today with ROCm 4.0 and 4.1 internal code too. Scores were good with ROCm 3.3 and so I can say that its regression from ROCm 3.5.
Filed an internal ticket and assigned to comgr team.
Please stay tuned for more updates. Thank you.

Does the comgr package been corrected?

The bug concerns the LLVM GCN code generation and the related register allocation. There has been at least one regression among the LLVM changes; that regression was not detected at the time because of a lack of proper performance regression testing.

@ROCmSupport What is the current status of development on this topic ?

Hi @valeriob01
I will check with dev and get back to you with an update soon

Hi @valeriob01
I will check with dev and get back to you with an update soon

Hello @ROCmSupport not sure what you mean by "soon" however 8 days seems a more than reasonable slice of time for the task.

Hi @valeriob01
I will check with dev and get back to you with an update soon

-Hello @ROCmSupport I don't know what you mean with "soon" however 8 days seems a more than reasonable slice of time for the task.

Good news !
Installed ROCm 4.1.0 ... net gain of ~ -30 us/it

Thanks @valeriob01 for the update.
But still drop is there right?
Dev is working on further fix and so please expect further improvements in future releases.
I will keep sharing the updates.
Thank you.

Hi @valeriob01
Hope this issue is fixed with the latest compiler changes in ROCm 4.5/4.5.1.
Can you please check and confirm whether this issue is still observed.
Thank you.

Hi @valeriob01 Hope this issue is fixed with the latest compiler changes in ROCm 4.5/4.5.1. Can you please check and confirm whether this issue is still observed. Thank you.

This issue is not fixed, we still see slowdowns.

I have just checked with our internal builds and found the below issue.
taccuser@taccuser-GA-990FXA-UD5:~/gpuowl$ ./gpuowl -prp 102363257 -iters 100000 -B1 0 -nospin -proof 1 -device 0
20220209 19:34:48 GpuOwl VERSION v7.2-116-gb165627-dirty
20220209 19:34:48 GpuOwl VERSION v7.2-116-gb165627-dirty
20220209 19:34:48 Note: not found 'config.txt'
20220209 19:34:48 config: -prp 102363257 -iters 100000 -B1 0 -nospin -proof 1 -device 0
20220209 19:34:48 device 0, unique id '459888c172da5eee'
20220209 19:34:48 459888c172da5eee 102363257 FFT: 4M 1K:1:4K (24.41 bpw)
20220209 19:34:50 459888c172da5eee 102363257 OpenCL args "-DEXP=102363257u -DWIDTH=1024u -DHEIGHT=4096u -DAMDGPU=1 -DDWSTEP=0x947aa5109927db42ul -DDWSTEP_2=0x4a3d52884c93eda1ul -DIWSTEP=0xe971e372b581ed9bul -DIWSTEP_2=0xd2e3c6e66b03db35ul -DNH=8u  -cl-std=CL2.0 -cl-finite-math-only "
gpuowl: /long_pathname_so_that_rpms_can_package_the_debug_info/src/external/llvm-project/llvm/lib/CodeGen/CalcSpillWeights.cpp:94: bool isRematerializable(const llvm::LiveInterval&, const llvm::LiveIntervals&, const llvm::VirtRegMap&, const llvm::TargetInstrInfo&): Assertion `MI && "Dead valno in interval"' failed.
Aborted (core dumped)

Interesting, looks like a compiler (LLVM) assert triggering, not an
application error. Should be reported internally.

Mihai

On Wed, 9 Feb 2022 at 16:06, ROCmSupport @.***> wrote:

I have just checked with our internal builds and found the below issue.
@.***:~/gpuowl$ ./gpuowl -prp 102363257 -iters
100000 -B1 0 -nospin -proof 1 -device 0
20220209 19:34:48 GpuOwl VERSION v7.2-116-gb165627-dirty
20220209 19:34:48 GpuOwl VERSION v7.2-116-gb165627-dirty
20220209 19:34:48 Note: not found 'config.txt'
20220209 19:34:48 config: -prp 102363257 -iters 100000 -B1 0 -nospin
-proof 1 -device 0
20220209 19:34:48 device 0, unique id '459888c172da5eee'
20220209 19:34:48 459888c172da5eee 102363257 FFT: 4M 1K:1:4K (24.41 bpw)
20220209 19:34:50 459888c172da5eee 102363257 OpenCL args "-DEXP=102363257u
-DWIDTH=1024u -DHEIGHT=4096u -DAMDGPU=1 -DDWSTEP=0x947aa5109927db42ul
-DDWSTEP_2=0x4a3d52884c93eda1ul -DIWSTEP=0xe971e372b581ed9bul
-DIWSTEP_2=0xd2e3c6e66b03db35ul -DNH=8u -cl-std=CL2.0 -cl-finite-math-only "
gpuowl:
/long_pathname_so_that_rpms_can_package_the_debug_info/src/external/llvm-project/llvm/lib/CodeGen/CalcSpillWeights.cpp:94:
bool isRematerializable(const llvm::LiveInterval&, const
llvm::LiveIntervals&, const llvm::VirtRegMap&, const
llvm::TargetInstrInfo&): Assertion `MI && "Dead valno in interval"' failed.
Aborted (core dumped)
—
Reply to this email directly, view it on GitHub
https://github.com/RadeonOpenCompute/ROCm/issues/1196#issuecomment-1033796757,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFMO6WSNBHDPOEEQIAZK4LU2JYF5ANCNFSM4QG3IWBQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>

Hi @selroc and @valeriob01, do you still see this issue with latest ROCm 6.0.0?  I am trying to rebaseline the issue.  Thanks.

No, you can close it.
Thanks.
On Sat, Jan 27, 2024 at 5:04 AM Adam Tran - AMD @.***>
wrote:

Hi @selroc https://github.com/selroc and @valeriob01
https://github.com/valeriob01, do you still see this issue with latest
ROCm 6.0.0? I am trying to rebaseline the issue. Thanks.
—
Reply to this email directly, view it on GitHub
https://github.com/ROCm/ROCm/issues/1196#issuecomment-1912968921, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ANJ5ZVCG2JYOXMXT7SRNZHDYQR4FTAVCNFSM4QG3IWB2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOJRGI4TMOBZGIYQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

--
Valerio Bellizzomi
Rome Dynamics
Via Marilyn Monroe, 47 - 00128 Roma
Mob. +39<PHONE_NUMBER>
Tel.   +39 06 5080770
“Le informazioni contenute nella presente comunicazione e i relativi
allegati contenuti in questo messaggio sono strettamente riservati ed
esclusivamente indirizzate al destinatario indicato. Vogliate tener
presente che qualsiasi uso, riproduzione o divulgazione di questo messaggio
è vietata. Se questa comunicazione Vi è pervenuta per errore, siete pregati
di informare il mittente rispondendo a questa mail. La diffusione,
distribuzione e/o copiatura del documento trasmesso da parte di qualsiasi
soggetto diverso dal destinatario è proibita, sia ai sensi dell’art. 616
c.p. , che ai sensi del Regolamento UE 679/2016.”

Yu can close it.


Ruby Not Auto Installing When Not Found

I'm in the process of migrating and just starting to use mise to combine multiple tools (rvm, nvm, pyenv) and some bash shenanigans that I've been doing for a while.  Forgive me if I've missed this somewhere already, but I love what you're doing here.  I tried to give asdf a chance, but what you've done so far here works far better for how I use these types of tools, and I appreciate it!
Describe the bug
While having MISE_NOT_FOUND_AUTO_INSTALL=true set, and changing directories to a project with legacy Gemfile and .ruby-version files present, I find that mise is not auto installing the missing tool or version when it seems to do so properly for Python and Node so far without any additional configurations.
To Reproduce
I have an existing application directory with both .ruby-version and a Gemfile specifying ruby-2.7.7 and would expect that upon entering this directory, with the setting above set, that it would automatically install the missing tool version like it does with other default plugins so far.
> cat .ruby-version
ruby-2.7.7

> mise list
[DEBUG] ARGS: /opt/homebrew/bin/mise list
[DEBUG] Config {
    Config Files: [
        "~/dev/pnc-puppet-control/Gemfile",
        "~/dev/pnc-puppet-control/.ruby-version",
        "~/dev/.mise.toml",
        "~/.config/mise/config.toml",
    ],
}
[DEBUG] Toolset<EMAIL_ADDRESS>node@lts, <EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>Plugin  Version          Config Source                    Requested
node    16.16.0
node    20.11.0          ~/dev/.mise.toml                 lts
python  3.6.15           ~/.config/mise/config.toml       3.6
python  3.7.17           ~/.config/mise/config.toml       3.7
python  3.8.18           ~/.config/mise/config.toml       3.8
python  3.9.18           ~/.config/mise/config.toml       3.9
python  3.10.13          ~/.config/mise/config.toml       3.10
python  3.11.7           ~/.config/mise/config.toml       3.11
python  3.12.1           ~/.config/mise/config.toml       3.12
ruby    2.7.7 (missing)  ~/dev/puppet-control/Gemfile 2.7.7

Expected behavior
Ruby version is automatically installed when requested tool is missing when MISE_NOT_FOUND_AUTO_INSTALL=true
mise doctor output
❯ mise doctor
mise version:
  2024.1.24 macos-arm64 (2024-01-20)

build:
  Target: aarch64-apple-darwin
  Features: DEFAULT, NATIVE_TLS
  Built: Sat, 20 Jan 2024 03:22:30 +0000
  Rust Version: rustc 1.75.0 (82e1608df 2023-12-21) (Homebrew)
  Profile: release

shell:
  /opt/homebrew/bin/bash
  GNU bash, version 5.2.26(1)-release (aarch64-apple-darwin23.2.0)
  Copyright (C) 2022 Free Software Foundation, Inc.
  License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

  This is free software; you are free to change and redistribute it.
  There is NO WARRANTY, to the extent permitted by law.

mise data directory:
  /Users/jlindquist/mise

mise environment variables:
  MISE_PYTHON_VENV_AUTO_CREATE=true
  MISE_NOT_FOUND_AUTO_INSTALL=true
  MISE_DATA_DIR=/Users/jlindquist/mise
  MISE_EXPERIMENTAL=true
  MISE_SHELL=bash

settings:
  {
    "activate_aggressive": false,
    "all_compile": false,
    "always_keep_download": false,
    "always_keep_install": false,
    "asdf_compat": false,
    "cargo_binstall": true,
    "color": true,
    "disable_default_shorthands": false,
    "disable_tools": [],
    "experimental": true,
    "jobs": 4,
    "legacy_version_file": true,
    "legacy_version_file_disable_tools": [],
    "node_compile": false,
    "not_found_auto_install": true,
    "paranoid": false,
    "plugin_autoupdate_last_check_duration": "7d",
    "python_compile": false,
    "python_default_packages_file": "/Users/jlindquist/.default-python-packages",
    "python_patch_url": null,
    "python_precompiled_os": null,
    "python_patches_directory": null,
    "python_precompiled_arch": null,
    "python_pyenv_repo": "https://github.com/pyenv/pyenv.git",
    "python_venv_auto_create": true,
    "raw": false,
    "shorthands_file": null,
    "task_output": null,
    "trusted_config_paths": [],
    "quiet": false,
    "verbose": false,
    "yes": false,
    "ci": false,
    "cd": null,
    "debug": false,
    "env_file": null,
    "trace": false,
    "log_level": "info"
  }

config files:
  ~/.config/mise/config.toml
  ~/dev/.mise.toml
  ~/dev/puppet-control/.ruby-version
  ~/dev/puppet-control/Gemfile

plugins:
  bun      (core)
  deno     (core)
  erlang   (core)
  go       (core)
  java     (core)
  node     (core)
  python   (core)
  ruby     (core)

toolset:
<EMAIL_ADDRESS>node@lts, <EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
No problems found

Additional context
None

this is not a bug and expected behavior. mise does not install automatically install tools if you have not explicitly previously installed at least 1 version of it

Thanks for the quick reply.  Is that documented somewhere that I missed?

I don't believe so. I'll add some text about this.

Confirmed, it does work as you mentioned, so thank you again!


try to fix ci block

Changes proposed in this pull request:
try to fix jenkins ci block due to the failed work still running
see JENKINS-37121

Pull Request Test Coverage Report for Build 1091

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 68.023%

Totals

Change from base Build 591:
0.0%

Covered Lines:
11415

Relevant Lines:
16781

💛  - Coveralls


breaking: migrate to cjs

fixes #162
I think after this PR, we could ship the v1
WDYT @mateonunez?

TS is failing 💩

CC I wrote the TS part with @allevo @lmammino (4 moral support)

@Eomm and @mateonunez, I think there is the same problem with the CI here

Sigh. I wasn't able to reproduce it locally. We need to fix that flaky before v1.0.
Do you have more information about the error, @Puppo? In that case, we can open an issue with all the needed information to reproduce it locally and provide a fix.

I don't have any info yet. It seems to be stuck but randomly. I'll look it over.

The new typing system rocks, man! Thanks a lot.
I think we can send these improvements to v1.0, we just need to verify why tests sometimes struggle with Node v20.

@mateonunez, the problem with the test is something relative to the reporter; I'm on it to understand the problem; it seems something rests ongoing and doesn't close the process. But it's random and not easy to debug.

I think this is the issue

I think this is the issue

Nice catch, @Puppo!
Any concerns on this, @Eomm? Should we rollback to node-tap in your opinion?

Should we rollback to node-tap in your opinion?

I would wait a sec for a fix before switching.
Tap changed license and I see everybody is migrating to node test runner.

Any new here guys?
@mateonunez or @Eomm please, run the CI again meanwhile to check everything is okay.
The error is random so if you try twice or three time you should see the 🟢  light.

Green
missing approve 😄


Create publii.md

I'm no sure about what to put on typeofcms and what is meant by supportedgenerators. Please check those before merging.
This is using vue.js.

I believe Publii creates Git commits, so typeofcms would be "Git-based" and supportedgenerators would be - "Built In".

@erquhart Are we good to go now?


[improvement](ip function) refactor some ip functions and remove dirty codes

Proposed changes
Refactor the following functions and make the code concise.

is_ipv4_string
is_ipv6_string
ipv6_cidr_to_range

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


change osxfuse for macfuse

With cvmfs 2.8.0 there is a need for a newer version of fuse, however osxfuse was renamed to macfuse, so if you do
brew install --cask osxfuse

you get version 3.11, but you need version 4.0, for which you need to call
brew install --cask macfuse

@vvolkl it's re-tag time again

I don't have enough Mac expertise to review this, but I'll take your word for it!


Update Puppeteer.md

Summary
I bumped into three frustrating obstacles while reading the Jest Puppeteer docs today.

It wasn't clear that the Use Puppeteer preset and Custom Example were two separate options. Two sources of confusion exist. First, there's no testing file in the Use Puppeteer preset section so I thought I had to keep reading to complete the example. Two, Custom Example is a vague title. I've updated the titles and added a sentence to the Custom Example section to clarify.
It wasn't clear where I was supposed to do the setup, teardown or test environment. At first, I thought I had to import the setup modules into each individual test file. I added a jest.config.js section at the bottom of the Custom Example section.
I wasn't sure which variables were global within the setup.js, teardown.js and puppeteer.js files. Particularly, I was confused where global was being defined since I'm not a Node developer. I added require statements to each of those files

Lemme know what you guys think!
Test plan
N/a
I'm not sure if this change requires an update to the CHANGELOG since these are doc updates

LGTM, @neoziro does this look good to you?

Yes of course! It is better like this.

Codecov Report

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

@@           Coverage Diff           @@
##           master    #6758   +/-   ##
=======================================
  Coverage   63.68%   63.68%
=======================================
  Files         235      235
  Lines        9007     9007
  Branches        3        4    +1
=======================================
  Hits         5736     5736
  Misses       3270     3270
  Partials        1        1

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 6ebdd3d...d8f51c4. Read the comment docs.

@geoffreyyip if you also apply this to website/versioned_docs/version-23.3/ this will go live on merge

@rickhanlonii I'm guessing I would create a website/versioned_docs/version-23.3/Puppeteer.md file that's takes the new Puppeteer.md file up top, but prepends
---
id: version-23.3-puppeteer
title: Using with puppeteer
original_id: puppeteer
---

to the top of the file. Is that correct?

@geoffreyyip yup, that should be just fine

@geoffreyyip ping 🙂 We can land this after updating the versioned documents

Hey, sorry for the delay. Please do!
On Wed, Aug 15, 2018, 9:42 AM Simen Bekkhus<EMAIL_ADDRESS>wrote:

@geoffreyyip https://github.com/geoffreyyip ping 🙂 We can land this
after updating the versioned documents
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/facebook/jest/pull/6758#issuecomment-413200952, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AOmk6uOT7he7D1xzLjQEpOnPr0m4jn8bks5uRCUpgaJpZM4Vgv32
.

FYI, it won't show up until we cut the next version of the docs


Change edit period action

Once a user added a treatment plan- she should add the first day of period. If not added- it will be assumed to be the first day of that month. It will appear as an event in the calendar, and if she wishes to change the date- she can press "edit"


Add support for local text

This issue is meant to track PR from https://github.com/cachho.
Collating thoughts and final action here first

@cachho has put together some nice thoughts
Hey, first of all cool project.
I'm not sure if you want this to be an online only project. I totally see where that comes in handy. I prefer to do the loading of the data myself, then sanitize it locally, make sure everything is as I want it, and then have it embedded. I guess the difference in approach is that I want to supply my own learning material, while the online approach is more about teaching the right public material.
My specific use case is the following: I'm looking to switch from a classic QnA bot to a LLM. That's why I added the option to add a local QnA pair.
I made a new method add_local, to make it clear that it's not a URL you're supposed to pass to the function. This might seem like it adds complexity now, but I think this split makes sense going forward. We're going to want to add more local options, for instance regular plain text. And then we could also consider adding local variants of the online stuff, maybe not videos but local pdf makes sense.
I hope you approve of my idea, and agree that this functionality is the right way to move forward. Thanks.
I want to add that the prompt engineering that I do using Q:... \nA:... is how openai does it if you select the Q&A preset in the playground.
I'm happy to change the chunk size. I just looked at what you used for a pdf and decided it should be smaller since QnA pairs are usually smaller than a PDF I'd say, but that's totally negotiable.

Following questions should be thought of before adding a new endpoint

Add a new end point. What should be the name of it?
How many arguments should it take?
What other formats it can support?
Where should the loader live?
Where should the chunker live?
What should be the url value in meta_data?
Who will format the data? What should be a standard formatting guideline here? or no formatting guideline, leave it to the user to format the data in whatever way the user wants
What is a good chunking size here? Which chunker to use?
What should be the retrieval prompt for this?

Following questions should be thought of before adding a new endpoint

Add a new end point. What should be the name of it?

I think  add_local makes sense and is descriptive, yet still short. Can't think of anything better.

How many arguments should it take?

The add_local method is closely related to the add method, I just changed the argument name from url to content. I think we should only allow a single argument to the local_add method, just like the add method had. Then a collection type (list, tuple, dict) can be passed, depending on the use cases we come up with in the future.

What other formats it can support?

Plaintext should be the basis. QnA pair is something that definitely makes sense. I think the name qna-pair makes a lot of sense. Calling it pair communicates that the input is a tuple. Then you can allow the local passing of everything that's currently using a URL. I mean passing a local video is probably too much of an exotic use case (I don't know if that even works, no idea how the video is chunked), but PDFs would make sense. I would also skip webpages, since if you have them locally you can pass the important parts as text.

Where should the loader live?
Where should the chunker live?

I admit that making a separate folder for local loaders but not for chunkers is debatable. The reason I did this is because unlike the rest of the loaders, this loader doesn't take a url as an input, so I separated it. When it comes to chunking, it's really not treated differently than the other types, that's why I put it in the same folder. That's my reasoning.

What should be the url value in meta_data?

I don't know what the metadata is used for in the end and why it matters. If it's just used for hashing and deduplication, url 'local' should be fine since then it effectively just compares the content. You could add filenames, but then you would have to add a second parameter and not everything comes from it's own file necessarily. For instance URLs are unique per video/page, but for the QnA pair I can't think of a separate filename for each pair.

Who will format the data? What should be a standard formatting guideline here? or no formatting guideline, leave it to the user to format the data in whatever way the user wants

I would generally say that this should not be a sanitization library. We need to keep focus and that is embedding and LLMs. If you want to add online sources with a single command, some sanitization has to be included. This package is meant to be an abstraction. But the local files, should have as little abstraction and opinionation on a embedchain level as possible. That also makes it possible that if you aren't happy about the way this package handles formatting for web pages, to use requests, do your own formatting and then pass it as local text. I think this is a smart move and makes it so it can be wider adopted for a wider range of requirements and skill levels.

What is a good chunking size here? Which chunker to use?

I cannot answer this.

What should be the retrieval prompt for this?

Here are my thoughts on above
Add a new end point. What should be the name of it?

Current is .add_local. Intuitive by name, suggests something local and not online. Other alternatives can be .add_offline (not intuitive at all).

Lets go with .add_local

How many arguments should it take?
Ideally 2. One is the data_type and the other one should be the text.
Egs:
For qna pair, it will be ('qna_pair', (ques, ans))
For text, it will be ('text', text)
For markdown, it will be ('markdown', markdown)

Current implementation is fine.

What other formats it can support?
Covered in example above, but stating here: text, markdown.
Right now lets add support for qna, for others in future and if community suggests

Where should the loader live?

loader should live in the loader directory only. since its local, so its file name can start with local_qna_pair.py. Local clears out that its a local data loader and then the next name is data_type. We will assume all other loaders to be online where local is not present.

Change needed here: Can we rename the loader as per above guideline?

Where should the chunker live?
chunker should live in the chunker directory only. For chunker, we can skip adding the fact that its local as chunk operates on a data and it doesn't matter to a chunker from where the data is retrieved.

No change needed in current implementation

What should be the url value in meta_data?
For online loaders, meta_data is data specific but it has a key called url.
We will need to have url key here because there are some functionalities dependent on it.
Lets keep the url key here.
Right now user intutive is local.
The only concern it will have is when we are fetching existing ids before creating embeddings, then it will fetch all the chunks with url as local. Lets live with this for now, but in future we may need to revisit this.
Who will format the data? What should be a standard formatting guideline here? or no formatting guideline, leave it to the user to format the data in whatever way the user wants

all data formatting should be user specific, since we cannot anticipate in advance how the user wants to format
also if data formatted in a specific way, then it becomes limiting for other users

What is a good chunking size here? Which chunker to use?

RecursiveChunker with 300 makes sense for now. This may be revisited in future.

What should be the retrieval prompt for this?
Right now, we can keep the same prompt, but in future we might have data_type specific retrieval prompts.

Would like to see this, would make this project compete with LlamaIndex and PersonalGPT


IMPORTANT - Fixing collecting data from observers when using batch observer in first run

I discovered a bug when using batch observer. The batch observers needs to be run first so that the batcher can update observers first. After this the rest of observers and metrics should be run to collect the data. Otherwise when using the batch observers the meter.getBatcher().checkPointSet() was returning 0 records at first run.

@open-telemetry/javascript-approvers this is important bug fix, please have a look, thx

I agree with @legendecas but let's get this bugfix merged then we can follow up if all agree

PR-wise LGTM.
However, I'm wondering if a batch observer should be an instance of Metric. According to https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/metrics/api.md#batch-observer the batch observers merely acts as an co-ordinator for other instruments. There may not be possibly instruments can be bound by the batch observer. Yet the implementation of BatchObserverMetric does inherit from Metric which can be bound to create new instruments -> those created instruments can not be updated by the callback of BatchObserverMetric.
In my thoughts, BatchObserverMetric can be simplified as separate categories with metrics and reduce confusion that BatchObserverMetric itself can be updated with values, and rename BatchObserverMetric to BatchObserver to indicate that itself is not a Metric.

Lets investigate this in separate PR -> https://github.com/open-telemetry/opentelemetry-js/issues/1489


[REQUEST] Show custom input values in MultiRunJobViewer

hello
there are more important things, but I think it contributes to a better UI Native add the (Host:DNS) for universal config ,
similar to the browser version

sorry repeat the post but the other are closed

When you use inputs does your host show blank also ???


Issue with ROOT Dictionaries

The dictionaries seem not quite right. when I do (on the root promt, ROOT 6.18)
gSystem->Load("libedm4hep")
c = edm4hep::MCParticleData()

there's an error :ROOT_prompt_1:1:5: error: invalid use of incomplete type 'edmhep::MCParticleData'
I haven't seen that before.

Ah, this was solved by installing EDM4hep. Running from the build directory (even with LD_LIBRARY_PATH and ROOT_INCLUDE_PATH set up) doesn't work, apparently.


AnyType always casts to True

Something weird from the current codebase. Isn't it?
from jsontableschema.types import AnyType

type = AnyType()
print(type.cast('word'))
# True
print(type.cast('3'))
# True

https://github.com/frictionlessdata/jsontableschema-py/blob/master/jsontableschema/types.py#L546-L551

FIXED


Feature/#52 living lab

page for living lab
halfway dependent on organization issue #50

missing info text explaining living labs in template


Realm is not always passed

This conditional assumes the realm is valid, and it is not always.
https://github.com/zulip/zulip/blob/58d1be8085c5278de1f94087c1a8c848968cd58f/zerver/lib/subdomains.py#L73

What's the case which gets here without a realm set?

The caller is here:
https://github.com/zulip/zulip/blob/10a0bf4de4f3594ee5f72ef5b6e873bb894e8d9d/zerver/lib/markdown/__init__.py#L598
Although Markdown.zulip_realm is typed Optional[Realm], the problem is that Processor.md is stubbed as Any.


html2canvas google map capture not working on chrome

http://jsfiddle.net/barteloma/nqqh9w3q/4/
I want to capture google map. The script is working fine on Mozilla Firefox and IE. But the tiles are missing after drag map.

I have the same question even if use the proxy.

Duplicate from:

https://github.com/niklasvh/html2canvas/issues/485
https://github.com/niklasvh/html2canvas/issues/462
https://github.com/niklasvh/html2canvas/issues/244
https://github.com/niklasvh/html2canvas/issues/345
https://github.com/niklasvh/html2canvas/issues/453

Regarding some of the issues reported above, I suspect it's not about html2canvas itself.
Missing markers - not sure about the cause, but if one puts a Base64 string (e.g. 'data:image/png;base64,...') instead of an image URL as the icon property in new google.maps.Marker(), the resulting canvas shows the marker as expected. Not a significant performance issue if you plan to have no more than a couple of hundred markers on the map.
As about the missing tiles after dragging, it is clearly caused by not running html2canvas(document.getElementById("map-canvas"),{...}) in a tilesloaded / bounds_changed event, or similar. As expected, the content of element "map-canvas" changes whilst interacting with the map.
Great work, BTW.


PHP 56 compatibility

Hi,
From version 2.1.0 you are telling on composer.json that your library is compatible with php 5.6 or above.
You're using the ?? in CassandraDataCollector though, making it 7.0 or above compliant.
Could you change this, by making a version compatible with 56 (like isset($a['a'])? $a['a'] : '';), and another one with the composer.json modified?
Thanks

thanks for the contribution
as PHP 5.6 is no more supported, I think I will update the requirement in the composer.json to php 7.2

Thanks!
Have a nice day


Replace /bind with /3pid/bind

Sydent implements /3pid/bind instead of /bind. So I have changed the specification to document what is actually implemented.
I have also changed the /unbind endpoint in MSC 1915 in a similar fashion, since this also seems to be a mistake.

@aqtusia thanks for this - we are dealing with security fallout currently but will review asap.

hey @aqtusia - we forgot to get sign off from you on this before merging. Please leave a comment here saying Signed-off-by: Your Name<EMAIL_ADDRESS>- thanks!


Add debug assertions in dependency resolution when locks should be held

related to #28028
This issue uncovered a codepath that has long assumed it had a mutable project lock but does not appear it ever did.  The underlying issue was a thread (with the project lock) modified a container that was being iterated over by another thread (without the project lock).
We avoided CMEs for a long time because of an unintentional copy of the collection being iterated over. This narrowed the window for the CME significantly.
We should investigate other places that we obviously assume we have a lock and assert that we do to surface any other codepaths that may be vulnerable to this.

We investigated this and we do not always hold the appropriate locks.
We need to make some deeper modifications to hold the correct locks.
Starting from https://github.com/gradle/gradle/pull/28573


Saving fails with Smithing cheats enabled

Cannot be reproduced currently. I will keep an eye on it.


Add @Shopify/retail-succeed-extensibility to code owners

Background
Right now changing anything related to retail is pinging the checkout extensibility team. This PR changes it to the retail extensibility team, since we own these packages.
Solution
I think this should work?
Checklist

[ ] I have :tophat:'d these changes
[ ] I have updated relevant documentation

@elanalynn Thanks for getting our team in the repo!


tdd-platform: add corpus for test speed up

The tdd-platform container has a post_build.sh script that starts a container with the just built image, compiles for every platform and then tests the fuzzing and symbolic execution.
The fuzzing is run with no corpus. This makes it slow. Solution: corpus from tdd-platform repository (made from action workflow for commit b5c3f22) is manually added and used.

superseded by #28


Fix code scanning alert - path-to-regexp: Backtracking regular expressions cause ReDoS

Tracking issue for:

[ ] https://github.com/bcgov/quickstart-openshift/security/code-scanning/196

Long since resolved.


Multi-level wildcard operator and 1.1

Hello!
I was curious if you would be interested in supporting OSC 1.1 features from https://opensoundcontrol.stanford.edu/files/2009-NIME-OSC-1.1.pdf - not much has changed but the multi-level wildcard could come in handy (‘//param’ matches ‘/synth1/param’, ‘/synth2/param’, etc)

Hi @richardwesthaver !
I am definitely interested in supporting OSC 1.1, but don't have any plans to implement support for it yet.  It would be great if someone could contribute this, or parts of the added functionality, with a PR.


Shift + Enter

Hi,
would not it be possible to have a property that causes that Enter inserts br instead of p? I want to avoid using Shift + Enter.
Thank you.

Hi, @pazicb
Cannot insert br tag instead of p.
Instead of p, you can use div tags that do not have a margin in the formats menu.
Or, if you insert br> into textarea and create an editor, you do not have to change it in the Format menu.
Thank you.

Hi,
maybe we don't understand each other. I just need to rotate the Enter and Shift + Enter functions using a variable.
Thank you.

Hi,
Other side effects occur during the operation.
I could't update it in the shortest time.
I will add an option to the next version.

Hi again,
suneditor was developed from the ground up without considering line breaks with the
 tag.
Most basic core functions need to be modified to implement
 tag wrapping.
I will implement this feature.
However, it is expected to take quite a while, so I close this issue.

Hello, are there any updates?
It would be great to have the possibility to set the break line tag from  to  through a parameter

Yes, i agree - please check this request


Backend (and wiring to GUI) for new Crowd Curation

Related to #1119  - backend for new Crowd Curation GUI.

[ ] add capture of viewed_by_x. (view2item)
[ ] add capture of marked/unmarked as useful. (marked2item)
[ ] add statistics to all dataset fetches. See format of statistics in comments below.
[ ] add extended publisher 'record' to all datasets fetches. See format in comments below.
[ ] add list of users that found dataset useful (using user profile records)
[ ] add 'datasets that are useful' to user profile record and update action when dataset is marked/unmarked
[ ] update logic of GUI/frontend to account for any changes in the format/content of statistics
[ ] update logic of GUI/frontend to account for any changes in the format/content of extended publisher
[ ] update logic of GUI/frontend to account got any changes in the format/content of list of user who found content useful.

New View2Item table: item_id, item_type, viewer_id, viewer_type
New Mark2Item: item_id, item_type, user_id


Using pyTorch: Linux, Pip, Python, ROCm 4.0 (beta)

I am using an AMD GPU, which is incompatible with CUDA. So I decided to download the CPU binary package for pyTorch first, which has poor speed and performance. Can I use pyTorch ROCm, which can be used for AMD graphics card, for this repository? Or must it be CPU or CUDA?
Thanks for creating this repository.

No idea, you can try. In principle there is nothing cuda specific.

I know this is probably not relevant for you now, but for any future people that are trying it seems to be working fine for me using ROCM 5.7 on Linux. GPU 7900XTX with HSA_OVERRIDE_GFX_VERSION=11.0.0 HIP_VISIBLE_DEVICES=0 as environment variables. My GPU usage spikes and I'm getting 120+ it/s so I'm pretty sure it is using the GPU.


Creating 'workload' results in 'Unsupported value: "Never"'

Rancher versions:
rancher/rancher:2.0.6
After creation of 'Job', deployment is not created in UI.
error message
Validation failed in API: Deployment.apps "ddd" is invalid: spec.template.spec.restartPolicy: Unsupported value: "Never": supported values: "Always"

'restartPolicy' does not seem to be initialized.

Fixed in https://github.com/rancher/ui/pull/2065. It will be in 2.0.7
Now you can change it to Always via Show advanced options -> Command -> Auto Restart

Thanks for your report!


Issue 180 - Distill Bugfix

dark_mode.js was not being loaded on distill blog pages.
Moved dark_mode.js and jquery.html to head.html to simplify/standardize dark mode/theming for other pages.

Bug fix can be checked here : https://jongwoo-shim.github.io/al-folio/blog/2018/distill/

Bug fix can be checked here : https://jongwoo-shim.github.io/al-folio/blog/2018/distill/

Thanks for the bug fix, really appreciate it!
While we are at it, do you mind adding some minor dark mode style fixes (1) the text color of authors in the blog post header (in the dark mode, should be white), (2) the color of horizontal lines (should be white in dark mode), and (3) same for the color of footnotes and references?
Thanks again for all your contributions to the theme!!

Thanks for the bug fix, really appreciate it!
While we are at it, do you mind adding some minor dark mode style fixes (1) the text color of authors in the blog post header (in the dark mode, should be white), (2) the color of horizontal lines (should be white in dark mode), and (3) same for the color of footnotes and references?
Thanks again for all your contributions to the theme!!

@alshedivat No problem. I actually have made most of the fixes and was planning on making a desperate branch for it.
The distill template was really problematic, due to the fact that the css was written into the template.v2.js file.
Just need your input on the code blocks : https://github.com/alshedivat/al-folio/issues/183, and I'll make a pull request with the fixes.

@alshedivat No problem. I actually have made most of the fixes and was planning on making a desperate branch for it.
The distill template was really problematic, due to the fact that the css was written into the template.v2.js file.
Just need your input on the code blocks : https://github.com/alshedivat/al-folio/issues/183, and I'll make a pull request with the fixes.

@Jongwoo-Shim, thank you! Let me take a look at the issue you linked.
Re: distill styles and template.v2.js -- I maintain a fork of the distillpub-template which has al-folio branch. It might be easier to make significant style changes there and then re-generate template.v2.js, which is programmatically generated. However, dark mode style overrides do not require significant changes (only adjusting colors in a few places), so the preferred solution is just to override CSS without touching template.v2.js.

@Jongwoo-Shim, thank you! Let me take a look at the issue you linked.
Re: distill styles and template.v2.js -- I maintain a fork of the distillpub-template which has al-folio branch. It might be easier to make significant style changes there and then re-generate template.v2.js, which is programmatically generated. However, dark mode style overrides do not require significant changes (only adjusting colors in a few places), so the preferred solution is just to override CSS without touching template.v2.js.

@alshedivat Part of the reason that I started to modify the template.v2.js file was due to the fact that there are several css attributes that are currently hard coded into it. I was finding that it was making it difficult/impossible to modify certain attributes of the distill template.
Then again, I'm not particularly great at web-dev so I might be implementing the css incorrectly.
Regardless, I personally think that the css should be stripped from the distill template, and either added to the _base.scss file or added to it's own scss file.
This is due to the fact that :

It's unintuitive where to look to make css changes for distill pages.
It forces additional changes to be custom tailored for distill, which I think would be otherwise unnecessary.

Unless, there's a specific reason that would restrict the movement of the css from the template. The template that you linked could just be used to create the scaffold of the page, while the css is managed in the al-folio project.
We could merge in the changes to the template.v2.js file as a temporary bug-fix and migrate the css files later down the line.

@alshedivat Part of the reason that I started to modify the template.v2.js file was due to the fact that there are several css attributes that are currently hard coded into it. I was finding that it was making it difficult/impossible to modify certain attributes of the distill template.
Then again, I'm not particularly great at web-dev so I might be implementing the css incorrectly.
Regardless, I personally think that the css should be stripped from the distill template, and either added to the _base.scss file or added to it's own scss file.
This is due to the fact that :

It's unintuitive where to look to make css changes for distill pages.
It forces additional changes to be custom tailored for distill, which I think would be otherwise unnecessary.

Unless, there's a specific reason that would restrict the movement of the css from the template. The template that you linked could just be used to create the scaffold of the page, while the css is managed in the al-folio project.
We could merge in the changes to the template.v2.js file as a temporary bug-fix and migrate the css files later down the line.

@alshedivat Additionally, are you looking for all of the fixes to be in a single merge? As previously mentioned I was planning to make a separate branch/merge request for it. But I can adjust it if need be.

@alshedivat Additionally, are you looking for all of the fixes to be in a single merge? As previously mentioned I was planning to make a separate branch/merge request for it. But I can adjust it if need be.

We could merge in the changes to the template.v2.js file as a temporary bug-fix and migrate the css files later down the line.

That sounds good. Let's discuss this in the corresponding issue before making any changes.

@alshedivat Additionally, are you looking for all of the fixes to be in a single merge?

No need to, it's a good idea to stage these changes through multiple PRs. I'll also think more what's the best way to go about altering CSS in template.v2.js. Since that file is generated from distillpub-template, if we are to upgrade to a later version of distillpub styles in the future, it will have to be re-generated, so any changes we make will be lost or have to be re-applied.

We could merge in the changes to the template.v2.js file as a temporary bug-fix and migrate the css files later down the line.

That sounds good. Let's discuss this in the corresponding issue before making any changes.

@alshedivat Additionally, are you looking for all of the fixes to be in a single merge?

No need to, it's a good idea to stage these changes through multiple PRs. I'll also think more what's the best way to go about altering CSS in template.v2.js. Since that file is generated from distillpub-template, if we are to upgrade to a later version of distillpub styles in the future, it will have to be re-generated, so any changes we make will be lost or have to be re-applied.


Fix a Typo in apache documentation

Hey there,
just installed papermerge and saw a minor typo in the documentation for apache
https://papermerge.com/docs/Installation/server_configuration.html#apache
/etc/apache2/sites-available/papermerge-site.conf

<VirtualHost *:8060>
    <Directory /opt/papermerge/config>
        Require all granted
    </Directory>

    Alias /media/ /var/media/papermerge/
    Alias /static/ /var/static/papermerge/

    <Directory /var/media/papermerge>
       Require all granted
    </Directory>

    <Directory /var/startic/papermerge>
      Require all granted
    </Directory>

    ServerName papermerge.home
    ServerRoot /opt/papermerge
</VirtualHost>

WSGIPythonHome /opt/papermerge/.venv/
WSGIPythonPath /opt/papermerge/
WSGIScriptAlias / /opt/papermerge/config/wsgi.py

<Directory /var/startic/papermerge>
There is an r in static that is not supposed to be there.

@hillbicks, thanks for reporting this typo. It was fixed!


Wise cleanup

don't show error message on wise query page if search never entered
save wise query type and source in localstorage
submit wise query on enter click from search input

fixes #1592

lgtmuii

lgtmuii


Automated cherry pick of #3582: fix: 避免Openstack越过存储检查

Cherry pick of #3582 on release/2.10.0.
#3582: fix: 避免Openstack越过存储检查

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/2.10.0@4451c60). Click here to learn what that means.
The diff coverage is 0%.

@@               Coverage Diff                @@
##             release/2.10.0   #3586   +/-   ##
================================================
  Coverage                  ?   7.48%
================================================
  Files                     ?     415
  Lines                     ?   66302
  Branches                  ?       0
================================================
  Hits                      ?    4966
  Misses                    ?   60908
  Partials                  ?     428

Flag
Coverage Δ

#aFlag
7.48% <0%> (?)

Impacted Files
Coverage Δ

pkg/compute/models/guest_actions.go
0% <0%> (ø)

pkg/compute/guestdrivers/openstack.go
7.35% <0%> (ø)

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 4451c60...0783ea1. Read the comment docs.

/approve
/lgtm


⚠ Jenkins Plugins Artifactory has degraded performance

In 2f81cb4, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1437 ms

Resolved: Jenkins Plugins Artifactory performance has improved in b95bb65 after 34 minutes.


Fix exception while typing in date using keyboard input

Related to issue #24

Cleanup of old PRs. The updated validator should prevent throws from invalid inputs.  Should be fixed in more recent releases and hopefully also by using the validator pipeline from #138.


profiles and compile/build

Our project exists of gui and tty parts.
i have created 2 profiles:
"profiles": [
  { "name": "V12.8 GUI", "value": { "oeversion": "12.8", "graphicalMode": true }},
  { "name": "V12.8 TTY", "value": { "oeversion": "12.8", "graphicalMode": false }}
]

Now how can i get the build to build a specific part with tty settings/profile?
"buildPath": [
  // Entries can have type 'source' or 'propath'. Path attribute is mandatory. Build attribute is optional (defaults to 'path'). Xref attribute is optional (defaults to 'build/.pct' or '.builder/srcX')
  { "type": "source" , "path": "srcNG", "excludes": "UpdProcs/ARCHIVE/**,UpdProcs/R200/**", "build": "build"},
  { "type": "source" , "path": "src/gen", "build": "build/gen"},
  { "type": "source" , "path": "src/gui", "build": "build/gui"},

PS: how can i turn of  Xref attribute?

buildPath can be overridden in profiles:
"profiles": [
  { "name": "V12.8 GUI", "value": { "oeversion": "12.8", "graphicalMode": true, "buildPath": [ /* Whatever you want here */ ] }},
  { "name": "V12.8 TTY", "value": { "oeversion": "12.8", "graphicalMode": false }}
]

Profile can also inherit from another profile.

Ok that's clear. Thank you.
But what i am missing is how does the build action now when to compile with profile V12.8 GUI or with profile V12.8 TTY.

Van: Gilles Querret @.>
Verzonden: vrijdag 5 april 2024 13:06
Aan: vscode-abl/vscode-abl @.>
CC: Maurice Stassen | WICS @.>; Author @.>
Onderwerp: Re: [vscode-abl/vscode-abl] profiles and compile/build (Issue #139)
buildPath can be overridden in profiles:
"profiles": [
{ "name": "V12.8 GUI", "value": { "oeversion": "12.8", "graphicalMode": true, "buildPath": [ /* Whatever you want here */ ] }},
{ "name": "V12.8 TTY", "value": { "oeversion": "12.8", "graphicalMode": false }}
]
Profile can also inherit from another profile.
—
Reply to this email directly, view it on GitHubhttps://github.com/vscode-abl/vscode-abl/issues/139#issuecomment-2039521059, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BHG3SEDQA7LNBUKUNTPQFGLY32AVFAVCNFSM6AAAAABFY4ZVMOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMZZGUZDCMBVHE.
You are receiving this because you authored the thread.Message ID: @.***>

Is it possible to do something like this?
"buildPath": [
// Entries can have type 'source' or 'propath'. Path attribute is mandatory. Build attribute is optional (defaults to 'path'). Xref attribute is optional (defaults to 'build/.pct' or '.builder/srcX')
{ "type": "source" , "path": "src/tty", "build": "build/tty", "graphicalMode": false},

Is it possible to do something like this?

No, the background session is either GUI or TTY, but it's not possible to specify the session mode per entry.


fix_tokenizer_snapshot_download_bug

V0.4.1 version using vllm
environment
Server 1: Linux
Server 2: Local
LLM(model="qwen/Qwen1.5-4B", trust_remote_code=True, dtype=torch.float16, enable_lora=True, tensor_parallel_size=1, enforce_eager=True, seed=42, max_num_seqs=8)

There is a bug that prevents downloading and initializing the tokenizer

After investigation, it was found that there was an issue with the regular expression used in the ignore_file_pattern of the code "vllm/transformers utils/tokenizer. py"
 ignore_file_pattern=["*.pt", "*.safetensors", "*.bin"])

 ignore_file_pattern=[".*.pt", ".*.safetensors", ".*.bin"])

 PR Checklist (Click to Expand)
Thank you for your contribution to vLLM! Before submitting the pull request, please ensure the PR meets the following criteria. This helps vLLM maintain the code quality and improve the efficiency of the review process.
PR Title and Classification
Only specific types of PRs will be reviewed. The PR title is prefixed appropriately to indicate the type of change. Please use one of the following:

[Bugfix] for bug fixes.
[CI/Build] for build or continuous integration improvements.
[Doc] for documentation fixes and improvements.
[Model] for adding a new model or improving an existing model. Model name should appear in the title.
[Frontend] For changes on the vLLM frontend (e.g., OpenAI API server, LLM class, etc.)
[Kernel] for changes affecting CUDA kernels or other compute kernels.
[Core] for changes in the core vLLM logic (e.g., LLMEngine, AsyncLLMEngine, Scheduler, etc.)
[Hardware][Vendor] for hardware-specific changes. Vendor name should appear in the prefix (e.g., [Hardware][AMD]).
[Misc] for PRs that do not fit the above categories. Please use this sparingly.

Note: If the PR spans more than one category, please include all relevant prefixes.
Code Quality
The PR need to meet the following code quality standards:

We adhere to Google Python style guide and Google C++ style guide.
Pass all linter checks. Please use format.sh to format your code.
The code need to be well-documented to ensure future contributors can easily understand the code.
Include sufficient tests to ensure the project to stay correct and robust. This includes both unit tests and integration tests.
Please add documentation to docs/source/ if the PR modifies the user-facing behaviors of vLLM. It helps vLLM user understand and utilize the new features or changes.

Notes for Large Changes
Please keep the changes as concise as possible. For major architectural changes (>500 LOC excluding kernel/data/config/test), we would expect a GitHub issue (RFC) discussing the technical design and justification. Otherwise, we will tag it with rfc-required and might not go through the PR.
What to Expect for the Reviews
The goal of the vLLM team is to be a transparent reviewing machine. We would like to make the review process transparent and efficient and make sure no contributor feel confused or frustrated. However, the vLLM team is small, so we need to prioritize some PRs over others. Here is what you can expect from the review process:

 After the PR is submitted, the PR will be assigned to a reviewer. Every reviewer will pick up the PRs based on their expertise and availability.
 After the PR is assigned, the reviewer will provide status update every 2-3 days. If the PR is not reviewed within 7 days, please feel free to ping the reviewer or the vLLM team.
 After the review, the reviewer will put an  action-required label on the PR if there are changes required. The contributor should address the comments and ping the reviewer to re-review the PR.
 Please respond to all comments within a reasonable time frame. If a comment isn't clear or you disagree with a suggestion, feel free to ask for clarification or discuss the suggestion.

Thank You
 Finally, thank you for taking the time to read these guidelines and for your interest in contributing to vLLM. Your contributions make vLLM a great tool for everyone!

Hmm this is weird.
https://huggingface.co/docs/huggingface_hub/en/guides/download#filter-files-to-download
snapshot download from HF says the pattern is standard glob pattern


Please explain these lines

https://github.com/zerodhatech/javakiteconnect/blob/66adc3ac18fc832ef7a11e60e66938793c84538a/kiteconnect/src/com/zerodhatech/ticker/KiteTicker.java#L455
int segment = x & 0xff;
int dec1 = (segment == NseCD) ? 10000000 : 100;

How are you getting if it's a currency derivative from these lines?
Why not considering BseCD too?

Hi,
The segment is identified by a number (1-9) which can be seen in the constants. It is bit-shifted into the instrument_token.
In the above line, we're doing a bit shift and getting the segment ID.
We don't support BSE CDS yet.

Ok, so in simple terms... you are doing mod 256 on instrument_token...
What I mean to understand is... how did you conclude that segment = instrument_token % 256?
Is this documented somewhere?

In the instrument CSV dump, there are two columns that you'll see, exchange_token and instrument_token. exchange_token is the original underlying token directly obtained from the exchange and instrument_token is our bit-shifted version that includes the segment information as well.
instrument_token = (exchange_token << 8) + segment_id
This is abstracted away and you don't generally need to dissect the instrument_token to interact with the APIs.

Sure. Understood.
I was directly interacting with HTTP API and using this SDK as reference, hence stumbled upon this.
Thanks


Webapp fix after inclusion of kie-wb-common-library

+!.

Test failure not related. thanks @paulovmr


Uptime counter

It looked a bit fancy when I thought about it.
But what about an uptime counter which displays the uptime in %?

Is this maybe duplicate of #3 ? Uptime monitoring is definitely planned though 🙂 But I guess it will have to wait until summer 🙁

That is a good idea, don't know why it didn't occur to me! Theoretically it could be implemented earlier, but I might still keep it to 1.2.0 because in that development cycle there are many huge changes planned (like #30 and #23) and it seems to be pretty tied to #3. Also I want 1.1.0 to be mainly about smaller fixes and update stuff (#18) which I didn't think would be necessary, but obviously people are using this project and should be at least notified when there is a new release 🙂


[Question]: Why does the Initialize Containers step always mount the workspace in the container?

Describe your question
As the use of running a stage within a container is described as a way to always have a clean environment, it feels weird that multiple host folders are automatically mounted in the container. I would expect to just get a running container, and still need to do the checkout step within the container for example.
Based on this snippet of Agent code, it would not appear so:
if (container.ImageOS != PlatformUtil.OS.Windows)
            {
                string workspace = executionContext.Variables.Get(Constants.Variables.Pipeline.Workspace);
                workspace = container.TranslateContainerPathForImageOS(PlatformUtil.HostOS, container.TranslateToContainerPath(workspace));
                string mountWorkspace = container.TranslateToHostPath(workspace);
                executionContext.Debug($"Workspace: {workspace}");
                executionContext.Debug($"Mount Workspace: {mountWorkspace}");
                container.MountVolumes.Add(new MountVolume(mountWorkspace, workspace, readOnly: container.isReadOnlyVolume(Constants.DefaultContainerMounts.Work)));

                container.MountVolumes.Add(new MountVolume(HostContext.GetDirectory(WellKnownDirectory.Temp), container.TranslateToContainerPath(HostContext.GetDirectory(WellKnownDirectory.Temp))));
                container.MountVolumes.Add(new MountVolume(HostContext.GetDirectory(WellKnownDirectory.Tasks), container.TranslateToContainerPath(HostContext.GetDirectory(WellKnownDirectory.Tasks)),
                    readOnly: container.isReadOnlyVolume(Constants.DefaultContainerMounts.Tasks)));
            }

Currently, this is problematic for our application of containerized stages, as the stage suddenly contains test dlls (and application code) from a different stage, which we do not want.
Have we missed a knob/argument/feature flag that allows us to disable this behavior?
Versions
Azure Devops 3.243.1 on Ubuntu 20.04 LTS
Environment type (Please select at least one enviroment where you face this issue)

[X] Self-Hosted
[ ] Microsoft Hosted
[ ] VMSS Pool
[X] Container

Azure DevOps Server type
dev.azure.com (formerly visualstudio.com)
Operation system
Ubuntu 20.04
Version controll system
Git with external repo
Azure DevOps Server Version (if applicable)
3.243.1

@BasJ93, сould you please provide more details on your request?
Are you asking for a way to configure a stage that operates within a container without needing a _work directory for your source files?
I recommend implementing a workaround to remove unnecessary sources at the end of your stage, or you could use the checkout task with the option clean: true.

Are you asking for a way to configure a stage that operates within a container without needing a _work directory for your source files?

No, I'm looking for a way where the _work directory of the host is not mapped in to the container. Allowing me to just download an artifact to use within the container.
Our use case (that we wish to get working) is running unit tests in an isolated container environment, so that we run a specific set of tests that require data placed in our custom image.
Due to the workspace being mapped in to the container, we end up running more tests than we need, because the other tests in the project are also detected. We would very much like to not have to clean the workspace of the host, as our repository is quite large and would then require a full clone again.
In conclusion: is it possible to configure the agent to not mount the _work directory in to the container, and just create an empty _w within the container to place data from artifacts?

@BasJ93, apologies for the delay in getting back to you.
I have been gathering the necessary details related to your question.
The _work directory's mapping is by design behavior. You can refer to this documentation https://github.com/microsoft/azure-pipelines-agent/blob/master/docs/jobdirectories.md for a better understanding of why the _work directory is needed to keep working files and folders.
Currently, there are no mechanisms in place to prevent this folder from being mounted in a container.
However, you might find a workaround by either deleting unnecessary files in a prior step or by setting up a separate agent dedicated to testing.
This agent could download your artifact and conduct the required tests in an isolated environment.


Callback called before row inserted with pool

I have a query (CREATE_FEEDBACK_ENTRIES) I am executing with a pool:
INSERT INTO eventshub.tbl_feedback (notification_id, user_id)
  SELECT
    @notificationId AS notification_id,
    s.subscriber_user_id AS user_id
  FROM eventshub.tbl_subscriber s
  WHERE s.subscription_id = @subscriptionId
  AND FIND_IN_SET(s.subscriber_user_id, @filteredSubscribers)

And the table DDL:
CREATE TABLE `tbl_feedback` (
  `feedback_id` bigint(20) NOT NULL AUTO_INCREMENT,
  `notification_id` bigint(20) NOT NULL,
  `user_id` varchar(8) NOT NULL,
  `isread` char(1) DEFAULT 'N',
  `read_dt` timestamp NULL DEFAULT NULL,
  `liked` char(1) DEFAULT NULL,
  `liked_dt` timestamp NULL DEFAULT NULL,
  `viewed_dt` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`feedback_id`),
  KEY `user_id` (`user_id`),
  KEY `tbl_feedback_ibfk_1_idx` (`notification_id`),
  KEY `notification_id_idx` (`notification_id`),
  CONSTRAINT `tbl_feedback_ibfk_1` FOREIGN KEY (`notification_id`) REFERENCES `tbl_notification` (`notification_id`)
) ENGINE=InnoDB AUTO_INCREMENT=281437 DEFAULT CHARSET=utf8

Node.js version: 10.0.0
lib version: 2.16.0
let pool: Pool

class Executor {
  public static update = (sql: string, parameters?: { [key: string]: string|number }): Promise<InsertResult> => {
    return new Promise((resolve, reject) => {
      Executor.getPool().query(sql, parameters, (error, results, fields) => {
        if (error) {
          reject(error);
          return;
        }
        resolve({
          insertId: results.insertId,
          affectedRows: results.affectedRows
        });
      });
    });
  }

  /**
   * Create or return a configured MySQL connection pool
   */
  public static getPool = (): Pool => {
    if (pool) {
      return pool
    }
    pool = mysql.createPool(config)
    return pool
  }
}

Executor.update(CREATE_FEEDBACK_ENTRIES, {
  notificationId: apiResponseInfo.notification_id,
  subscriptionId: request.subscriptionId,
  filteredSubscribers: filteredSubscribers
})
  .then((result: InsertResult) => {
    // perform action dependent on row being present
    triggerPushMessage(...)
  })
  .catch((err) => log.error(err));

The problem I am experiencing is that the query is executed and the callback is fired, however when I query the table for a short time after this, the rows are not returned. I have verified this from workbench as well as the application from another endpoint which relies on the data being present in a timely manner. If I wait a few minutes, then the row appears and the issues resolve themselves.
This is a Cloud SQL instance running on GCP, MySQL version 5.7

When this issue happens, are you getting a results.insertId from the callback response, and is that the row ID that ends up eventually appearing?

I recently added that log point to the my application, and the issue is very intermittent right now, so I should know next time it happens in my deployment environment. I haven't been able to reproduce the behavior on my local environment.

Sweet,  thanks! If there is an insertId being returned in this case, that would mean that the Mysql server actually did send a response back, so as far as this module would know the INSERT is "done".

I was never able to get this to reproduce so I can't directly answer your question about the insertId, however I do believe I resolved my issue by changing the transaction isolation level to READ COMMITTED for each connection in the connection pool upon the connection creation.
pool.on('connection', (connection) => {
  connection.query('SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED', (err) => {
    if (err) log.error(`Failed to set transaction isolation level: ${err}`)
  })
});


jmh code might be unreproducible

One of the travis builds failed on the reproducibility test without apparent relation to the change (I think). Makes me think maybe it just surfaced there:
https://travis-ci.org/bazelbuild/rules_scala/jobs/497218553
< 47c3d415c9e5dbe424c573d08f40da1e  bazel-bin/test/jmh/test_benchmark_compiled_benchmark_lib.jar
< 47c3d415c9e5dbe424c573d08f40da1e  bazel-bin/test/jmh/test_benchmark.runfiles/io_bazel_rules_scala/test/jmh/test_benchmark_compiled_benchmark_lib.jar
1501a1500
> 4f5fa74aa94da701176f042a1e47c841  bazel-bin/test/jmh/test_benchmark_codegen_resources.jar
5393a5393,5394
> d9a26e038170d9e26c593555af311b79  bazel-bin/test/jmh/test_benchmark_compiled_benchmark_lib.jar
> d9a26e038170d9e26c593555af311b79  bazel-bin/test/jmh/test_benchmark.runfiles/io_bazel_rules_scala/test/jmh/test_benchmark_compiled_benchmark_lib.jar
7596d7596
< ef6ee9a44b47c199f47ee962eaf89e7f  bazel-bin/test/jmh/test_benchmark_codegen_resources.jar

@johnynek wdyt?

mainly since the PR passed and then I pushed two commits and it broke:
https://github.com/bazelbuild/rules_scala/pull/698/commits/b7979bac2d9f2809849ef81085e8b24d1a753d49
https://github.com/bazelbuild/rules_scala/pull/698/commits/a530f8b29b201561624127c7b0bea9c9b658dc61
They seem really unrelated

indeed passed after rerun without code changing

yeah, it looks like it is unreproducible. Fortunately, we never depend on a benchmark, we only ever run them, so I guess it is not totally critical to fix, but it would be nice to.
Surprising this pops up now years later.

yeah, very surprising.
maybe we should exclude it from the reproducibility test for now?

I just noticed that the shas are always the same:
< 47c3d415c9e5dbe424c573d08f40da1e  bazel-bin/test/jmh/test_benchmark_compiled_benchmark_lib.jar
< 47c3d415c9e5dbe424c573d08f40da1e  bazel-bin/test/jmh/test_benchmark.runfiles/io_bazel_rules_scala/test/jmh/test_benchmark_compiled_benchmark_lib.jar
1620a1619
> 4f5fa74aa94da701176f042a1e47c841  bazel-bin/test/jmh/test_benchmark_codegen_resources.jar
5836a5836,5837
> d9a26e038170d9e26c593555af311b79  bazel-bin/test/jmh/test_benchmark_compiled_benchmark_lib.jar
> d9a26e038170d9e26c593555af311b79  bazel-bin/test/jmh/test_benchmark.runfiles/io_bazel_rules_scala/test/jmh/test_benchmark_compiled_benchmark_lib.jar
6954d6954
< ef6ee9a44b47c199f47ee962eaf89e7f  bazel-bin/test/jmh/test_benchmark_codegen_resources.jar

that's the linux build. Note, they are reproducibly wrong. The first hash above matches the one in the original issue, as does the second.
This suggests it should be debuggable.

This seems to be because the JMH generator holds the benchmarks list in a hashmap, which results in the benchmark set being emitted in a non-deterministic order.

Nice find. Would be interesting to see if they would take a PR to make it a sorted set or a list. Did you find a line number somewhere to look at?

Thereabouts https://hg.openjdk.java.net/code-tools/jmh/file/99d7b73cf1e3/jmh-core/src/main/java/org/openjdk/jmh/generators/core/BenchmarkGenerator.java#l123
On Thu, Jul 18, 2019, at 21:23, P. Oscar Boykin wrote:

Nice find. Would be interesting to see if they would take a PR to make
it a sorted set or a list. Did you find a line number somewhere to look
at?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/bazelbuild/rules_scala/issues/699?email_source=notifications&email_token=AABVSTRD6S4MBSJN6Q4IHC3QAE6SLA5CNFSM4GZJKUP2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD2KQ4EA#issuecomment-513084944, or mute the thread https://github.com/notifications/unsubscribe-auth/AABVSTVAXD3GRMVWDJVAKUDQAE6SLANCNFSM4GZJKUPQ.


Question about integration with yuka

Hi, I'm trying to use yuka (https://github.com/Mugen87/yuka) to implement some kind of basic game AI and I'm having trouble figuring out where to put the imperative code.
I want to implement this example:
demo: https://mugen87.github.io/yuka/examples/steering/seek/
code: https://github.com/Mugen87/yuka/blob/master/examples/steering/seek/index.html
What I want to do it make a vehicle steer towards a target,
Basically, the imperative code looks like this:
const vehicleGeometry = new THREE.ConeBufferGeometry( 0.1, 0.5, 8 );
vehicleGeometry.rotateX( Math.PI * 0.5 );
const vehicleMaterial = new THREE.MeshNormalMaterial();
const vehicleMesh = new THREE.Mesh( vehicleGeometry, vehicleMaterial );
vehicleMesh.matrixAutoUpdate = false;
scene.add( vehicleMesh );

const targetGeometry = new THREE.SphereBufferGeometry( 0.05 );
const targetMaterial = new THREE.MeshBasicMaterial( { color: 0xff0000 } );
const targetMesh = new THREE.Mesh( targetGeometry, targetMaterial );
targetMesh.matrixAutoUpdate = false;
scene.add( targetMesh );

entityManager = new YUKA.EntityManager();
time = new YUKA.Time();

target = new YUKA.GameEntity();
target.setRenderComponent( targetMesh, sync );

vehicle = new YUKA.Vehicle();
vehicle.setRenderComponent( vehicleMesh, sync );

const seekBehavior = new YUKA.SeekBehavior( target.position );
vehicle.steering.add( seekBehavior );

entityManager.add( target );
entityManager.add( vehicle );

function sync( entity, renderComponent ) {
    renderComponent.matrix.copy( entity.worldMatrix );
}

So what I am doing is storing a reference to the target mesh in a global store, and use a React ref to a group as a vehicle.
I am using seMemo hook to store class instances like entityManager and vehicle inside a component, and set stuff like seekBehavior inside a useEffect hook.
In a useFrame hook, I am updating the entityManager with the time delta. Anything I am missing here?

I set up a codesandbox showing my issue : https://codesandbox.io/s/agitated-vaughan-n5zid
The sphere should steer towards the box.

this is very similar to https://github.com/react-spring/use-cannon
there are a few mistakes you made.

you set position on the mesh, but it has to be set in the entity, otherwise the gamemanager doesn't know it. for the manager the vehicle was already at 0/0/0 that's why nothing moved

you forgot to set matrixAutoUpdate. you need that if you set the matrix yourself. otherwise change the code in setRenderComponent and set position/rotate/scale directly

with react you have the chance to clean up the imperative mess. try to see the concerns: you have a player, a vehicle and a manager. the manager is the parent to the entities, so it should control the logic.

here's a working draft: https://codesandbox.io/s/interesting-tree-f0rqo

ps, i didn't know yuka, but if you do something cool with it, let me know - would love to retweet so others can learn from this.

That makes sense, thanks for taking time to explain this!


Remove padding from first and last bar

Expected behavior
I need remove left padding from first element and right from last one
Current behavior
I have paddings

Reproducible sample
https://www.chartjs.org/dist/master/chart.umd.js
Optional extra steps/info to reproduce
No response
Possible solution
No response
Context
No response
chart.js version
4
Browser name and version
No response
Link to your project
No response

This is not a bug, for these kind of questions please head over to Stack overflow


Dev environment + CI configuration

.coveragerc in preference of not passing certain CLI arguments around
Update .gitignore to exclude generated tests/coverage related files
Update .gitignore to exclude .idea/ and .env (Prevent accidental inclusion)
.travis.yml for testing on CI (Coverage reporting isn't configured for it yet)
Makefile for common tasks
Pipfile for dev-dependency management and CI builds
Pipfie.lock to lock dev-dependencies for CI builds
requirements.txt for some integrations and convenience
Fixed some typos
Updated dependencies
tests/test_cloudscraper.py is just a placeholder
tox.ini - tox configuration file for pre-release testing, etc.
Other dev-dependencies as required by future tests
Prefers coveralls for coverage reporting

I'm going to move the interpreter refactoring to a new PR


Increase coverage for aptly_snapshot.rb

Cover 4 remaining lines in aptly_snapshot.rb, bringing coverage of that file to 100%! :smile:

Coverage increased (+0.6%) to 99.431% when pulling dadea99760d9eb9ba2ef6864276c2657f8e8acad on msabramo:increased_coverage_for_aptly_snapshot into 153bb55620b4a890734cbeeef95986b3e42ce840 on sepulworld:master.

Coverage increased (+0.6%) to 99.431% when pulling 50b156ebb7203e4e0025a9862e210645ce7b89e8 on msabramo:increased_coverage_for_aptly_snapshot into 153bb55620b4a890734cbeeef95986b3e42ce840 on sepulworld:master.

Coverage increased (+0.6%) to 99.431% when pulling 50b156ebb7203e4e0025a9862e210645ce7b89e8 on msabramo:increased_coverage_for_aptly_snapshot into 153bb55620b4a890734cbeeef95986b3e42ce840 on sepulworld:master.

Woot!  100%! Ty!


Some unwanted information when generating star shape

Material Maker version:
0.93
OS/device including version:
Win10
Issue description:
I guess MM is generating some inwanted artifacts when using simple star shape, see the screeshot.https://i.imgur.com/buH9SjF.png
Do you see those 2 dilated "pixels"?
Steps to reproduce:

@Tar0x This should be fixed now. Would it be possible for you to check the fix in this dev build? https://github.com/RodZill4/material-maker/actions/runs/316154092
Thanks!

It works as it should, thank you :) 👍