virtcontainers: Fix the memory leak caused by supportedQemuMachines

Fixes: #3112
Signed-off-by: Shukui Yang<EMAIL_ADDRESS>I use kata-runtime event to stat kata container, but  I find the RssAnon of kata-runtime is growing all the time
-bash-4.2# kata-runtime events --interval 0.1s 58f11a09c74dce4ac64f32192e36565c5b2da106bc6fedb3647f7f84d2014c41

# another terminal
-bash-4.2# cat /proc/`ps -aux|grep "0.1s"|grep -v grep|awk '{print $2}'`/status|grep RssAnon;date
RssAnon:           52512 kB
Tue Jan  5 17:15:34 CST 2021
-bash-4.2# cat /proc/`ps -aux|grep "0.1s"|grep -v grep|awk '{print $2}'`/status|grep RssAnon;date
RssAnon:           52520 kB
Tue Jan  5 17:15:42 CST 2021
-bash-4.2# cat /proc/`ps -aux|grep "0.1s"|grep -v grep|awk '{print $2}'`/status|grep RssAnon;date
RssAnon:           73776 kB
Tue Jan  5 17:33:32 CST 2021
-bash-4.2# cat /proc/`ps -aux|grep "0.1s"|grep -v grep|awk '{print $2}'`/status|grep RssAnon;date
RssAnon:           73776 kB
Tue Jan  5 17:33:34 CST 2021
-bash-4.2# cat /proc/`ps -aux|grep "0.1s"|grep -v grep|awk '{print $2}'`/status|grep RssAnon;date
RssAnon:           82104 kB
Tue Jan  5 17:45:02 CST 2021

So I add pprof to kata-runtime and I find that using supportedQemuMachines directly results in a memory leak,
a simpler way is to add printf like the follown,
diff --git a/virtcontainers/qemu_amd64.go b/virtcontainers/qemu_amd64.go
index ac7bc693..2d0ef86f 100644
--- a/virtcontainers/qemu_amd64.go
+++ b/virtcontainers/qemu_amd64.go
@@ -11,6 +11,7 @@ import (
        "github.com/kata-containers/runtime/virtcontainers/types"

        govmmQemu "github.com/intel/govmm/qemu"
+       "fmt"
 )

@@ -126,6 +128,7 @@ func newQemuArch(config HypervisorConfig) qemuArch {
                },
                vmFactory: factory,
        }
+       fmt.Printf("option len = %d\n", len(q.supportedQemuMachines[0].Options))

        q.handleImagePath(config)

run kata-runtime event and we can see,
-bash-4.2# ./kata-runtime events --interval 0.1s 58f11a09c74dce4ac64f32192e36565c5b2da106bc6fedb3647f7f84d2014c41|grep len
option len = 24
option len = 31
option len = 38
option len = 45
option len = 52
option len = 59
option len = 66
option len = 73
option len = 80
option len = 87
option len = 94
option len = 101
option len = 108
option len = 115
option len = 122
option len = 129
option len = 136
option len = 143
option len = 150

this pr don't use supportedQemuMachines directly and copy qemuMachines from supportedQemuMachines.

Hi @keloyang - thanks for reporting! Please could you provide a few more details - ideally by running the script the issue template asks you to run:

https://github.com/kata-containers/.github/blob/master/.github/ISSUE_TEMPLATE/bug_report.md#get-your-issue-reviewed-faster

Crucially,

What version of the runtime are you using?
How are you starting the container?

I think you are right - that code should not simply reference the global var and the use it but instead copy it. However, I don't see a leak the size of the one you are seeing, but I do see a leak with the latest HEAD. But this PR doesn't (fully) fix it so some more debugging is required I think.

Hi @keloyang - thanks for reporting! Please could you provide a few more details - ideally by running the script the issue template asks you to run:

https://github.com/kata-containers/.github/blob/master/.github/ISSUE_TEMPLATE/bug_report.md#get-your-issue-reviewed-faster

Crucially,

What version of the runtime are you using?
How are you starting the container?

I think you are right - that code should not simply reference the global var and the use it but instead copy it. However, I don't see a leak the size of the one you are seeing, but I do see a leak with the latest HEAD. But this PR doesn't (fully) fix it so some more debugging is required I think.

@jodh-intel I use latest kata-runtime, memleak is not abort the container , but the command of kata-runtime event.
use kata-runtime events --interval 0.1s ..., if just have a kata container in the host,  newQemuArch will be called every 0.1s, this make supportedQemuMachines[i].Options increase len(qemuNvdimmOption) every 0.1 second.
for the statement  of var qemuMachines = supportedQemuMachines, it only copy the address of content for supportedQemuMachines, not the content of supportedQemuMachines, so the address of qemuMachines[i] is the same of the address of supportedQemuMachines[i].

@jodh-intel I use latest kata-runtime, memleak is not abort the container , but the command of kata-runtime event.
use kata-runtime events --interval 0.1s ..., if just have a kata container in the host,  newQemuArch will be called every 0.1s, this make supportedQemuMachines[i].Options increase len(qemuNvdimmOption) every 0.1 second.
for the statement  of var qemuMachines = supportedQemuMachines, it only copy the address of content for supportedQemuMachines, not the content of supportedQemuMachines, so the address of qemuMachines[i] is the same of the address of supportedQemuMachines[i].

@keloyang - I understand the problem and the fix but I don't see the sorts of figures you do :) When you say "the latest", do you mean the latest released version of the runtime or the latest version from git? As I say, if you could paste the command output as requested, we wouldn't need to have this conversation ;)
ftr, does your patch 100% fix the leak? As I said yesterday it does not fix the problem fully for me. I'll try to tal at the issue in more detail tomorrow unless you can...

@keloyang - I understand the problem and the fix but I don't see the sorts of figures you do :) When you say "the latest", do you mean the latest released version of the runtime or the latest version from git? As I say, if you could paste the command output as requested, we wouldn't need to have this conversation ;)
ftr, does your patch 100% fix the leak? As I said yesterday it does not fix the problem fully for me. I'll try to tal at the issue in more detail tomorrow unless you can...

@jodh-intel I means  the latest version from git
[root@centos0 runtime]# ./kata-runtime version
kata-runtime  : 1.12.0-rc0
   commit   : bfbcfd022636bda37042bb7688579ad299444ad4
   OCI specs: 1.0.1-dev

But this PR doesn't (fully) fix it

I don't know what you mean,could you show me the details, maybe some code.

@jodh-intel I means  the latest version from git
[root@centos0 runtime]# ./kata-runtime version
kata-runtime  : 1.12.0-rc0
   commit   : bfbcfd022636bda37042bb7688579ad299444ad4
   OCI specs: 1.0.1-dev

But this PR doesn't (fully) fix it

I don't know what you mean,could you show me the details, maybe some code.

@keloyang - I can't look at this right now but are you sure this patch fixes the memory leak? Does "option len = XXX" stay constant for you? Have you tried printing out supportedQemuMachines on each iteration to see if it is only [0] that is growing?

@keloyang - I can't look at this right now but are you sure this patch fixes the memory leak? Does "option len = XXX" stay constant for you? Have you tried printing out supportedQemuMachines on each iteration to see if it is only [0] that is growing?

@jodh-intel q.supportedQemuMachines on each iteration with the fowllowing printf,
fmt.Printf("option len = %d %d %d %d %d,  addr %p %p %p %p %p\n",
		len(q.supportedQemuMachines[0].Options),
		len(q.supportedQemuMachines[1].Options),
		len(q.supportedQemuMachines[2].Options),
		len(q.supportedQemuMachines[3].Options),
		len(q.supportedQemuMachines[4].Options),
		&q.supportedQemuMachines[0].Options,
		&q.supportedQemuMachines[1].Options,
		&q.supportedQemuMachines[2].Options,
		&q.supportedQemuMachines[3].Options,
		&q.supportedQemuMachines[4].Options)

before this pr,
[root@centos1 ~]# /kata/bin/kata-runtime events --interval 1s 2888a85fd164c65d2785da463c167993ff778ae21fa145e2f7fd615960bc1e60|grep len
option len = 24 24 24 24 24,  addr 0x55fef0de00a0 0x55fef0de00d0 0x55fef0de0100 0x55fef0de0130 0x55fef0de0160
option len = 31 31 31 31 31,  addr 0x55fef0de00a0 0x55fef0de00d0 0x55fef0de0100 0x55fef0de0130 0x55fef0de0160
option len = 38 38 38 38 38,  addr 0x55fef0de00a0 0x55fef0de00d0 0x55fef0de0100 0x55fef0de0130 0x55fef0de0160
option len = 45 45 45 45 45,  addr 0x55fef0de00a0 0x55fef0de00d0 0x55fef0de0100 0x55fef0de0130 0x55fef0de0160
option len = 52 52 52 52 52,  addr 0x55fef0de00a0 0x55fef0de00d0 0x55fef0de0100 0x55fef0de0130 0x55fef0de0160
option len = 59 59 59 59 59,  addr 0x55fef0de00a0 0x55fef0de00d0 0x55fef0de0100 0x55fef0de0130 0x55fef0de0160
option len = 66 66 66 66 66,  addr 0x55fef0de00a0 0x55fef0de00d0 0x55fef0de0100 0x55fef0de0130 0x55fef0de0160

after this pr,
[root@centos1 ~]# /kata/bin/kata-runtime events --interval 1s 2888a85fd164c65d2785da463c167993ff778ae21fa145e2f7fd615960bc1e60|grep len
option len = 24 24 24 24 24,  addr 0xc00017c200 0xc00017c230 0xc00017c260 0xc00017c290 0xc00017c2c0
option len = 24 24 24 24 24,  addr 0xc00040e020 0xc00040e050 0xc00040e080 0xc00040e0b0 0xc00040e0e0
option len = 24 24 24 24 24,  addr 0xc00017c110 0xc00017c140 0xc00017c170 0xc00017c1a0 0xc00017c1d0
option len = 24 24 24 24 24,  addr 0xc00017c4d0 0xc00017c500 0xc00017c530 0xc00017c560 0xc00017c590
option len = 24 24 24 24 24,  addr 0xc00017c7a0 0xc00017c7d0 0xc00017c800 0xc00017c830 0xc00017c860
option len = 24 24 24 24 24,  addr 0xc00017c110 0xc00017c140 0xc00017c170 0xc00017c1a0 0xc00017c1d0
option len = 24 24 24 24 24,  addr 0xc00017c4d0 0xc00017c500 0xc00017c530 0xc00017c560 0xc00017c590
^C

supportedQemuMachines on each iteration with the fowllowing printf,
fmt.Printf("option len = %d %d %d %d %d,  addr %p %p %p %p %p\n",
		len(supportedQemuMachines[0].Options),
		len(supportedQemuMachines[1].Options),
		len(supportedQemuMachines[2].Options),
		len(supportedQemuMachines[3].Options),
		len(supportedQemuMachines[4].Options),
		&supportedQemuMachines[0].Options,
		&supportedQemuMachines[1].Options,
		&supportedQemuMachines[2].Options,
		&supportedQemuMachines[3].Options,
		&supportedQemuMachines[4].Options)

before this pr,
[root@centos1 ~]# /kata/bin/kata-runtime events --interval 1s 2888a85fd164c65d2785da463c167993ff778ae21fa145e2f7fd615960bc1e60|grep len
option len = 31 31 31 31 31,  addr 0x55a772a540a0 0x55a772a540d0 0x55a772a54100 0x55a772a54130 0x55a772a54160
option len = 38 38 38 38 38,  addr 0x55a772a540a0 0x55a772a540d0 0x55a772a54100 0x55a772a54130 0x55a772a54160
option len = 45 45 45 45 45,  addr 0x55a772a540a0 0x55a772a540d0 0x55a772a54100 0x55a772a54130 0x55a772a54160
option len = 52 52 52 52 52,  addr 0x55a772a540a0 0x55a772a540d0 0x55a772a54100 0x55a772a54130 0x55a772a54160
option len = 59 59 59 59 59,  addr 0x55a772a540a0 0x55a772a540d0 0x55a772a54100 0x55a772a54130 0x55a772a54160
option len = 66 66 66 66 66,  addr 0x55a772a540a0 0x55a772a540d0 0x55a772a54100 0x55a772a54130 0x55a772a54160

after this pr,
[root@centos1 ~]# /kata/bin/kata-runtime events --interval 1s 2888a85fd164c65d2785da463c167993ff778ae21fa145e2f7fd615960bc1e60|grep len
option len = 24 24 24 24 24,  addr 0x5623918c00a0 0x5623918c00d0 0x5623918c0100 0x5623918c0130 0x5623918c0160
option len = 24 24 24 24 24,  addr 0x5623918c00a0 0x5623918c00d0 0x5623918c0100 0x5623918c0130 0x5623918c0160
option len = 24 24 24 24 24,  addr 0x5623918c00a0 0x5623918c00d0 0x5623918c0100 0x5623918c0130 0x5623918c0160
^C

@jodh-intel q.supportedQemuMachines on each iteration with the fowllowing printf,
fmt.Printf("option len = %d %d %d %d %d,  addr %p %p %p %p %p\n",
		len(q.supportedQemuMachines[0].Options),
		len(q.supportedQemuMachines[1].Options),
		len(q.supportedQemuMachines[2].Options),
		len(q.supportedQemuMachines[3].Options),
		len(q.supportedQemuMachines[4].Options),
		&q.supportedQemuMachines[0].Options,
		&q.supportedQemuMachines[1].Options,
		&q.supportedQemuMachines[2].Options,
		&q.supportedQemuMachines[3].Options,
		&q.supportedQemuMachines[4].Options)

before this pr,
[root@centos1 ~]# /kata/bin/kata-runtime events --interval 1s 2888a85fd164c65d2785da463c167993ff778ae21fa145e2f7fd615960bc1e60|grep len
option len = 24 24 24 24 24,  addr 0x55fef0de00a0 0x55fef0de00d0 0x55fef0de0100 0x55fef0de0130 0x55fef0de0160
option len = 31 31 31 31 31,  addr 0x55fef0de00a0 0x55fef0de00d0 0x55fef0de0100 0x55fef0de0130 0x55fef0de0160
option len = 38 38 38 38 38,  addr 0x55fef0de00a0 0x55fef0de00d0 0x55fef0de0100 0x55fef0de0130 0x55fef0de0160
option len = 45 45 45 45 45,  addr 0x55fef0de00a0 0x55fef0de00d0 0x55fef0de0100 0x55fef0de0130 0x55fef0de0160
option len = 52 52 52 52 52,  addr 0x55fef0de00a0 0x55fef0de00d0 0x55fef0de0100 0x55fef0de0130 0x55fef0de0160
option len = 59 59 59 59 59,  addr 0x55fef0de00a0 0x55fef0de00d0 0x55fef0de0100 0x55fef0de0130 0x55fef0de0160
option len = 66 66 66 66 66,  addr 0x55fef0de00a0 0x55fef0de00d0 0x55fef0de0100 0x55fef0de0130 0x55fef0de0160

after this pr,
[root@centos1 ~]# /kata/bin/kata-runtime events --interval 1s 2888a85fd164c65d2785da463c167993ff778ae21fa145e2f7fd615960bc1e60|grep len
option len = 24 24 24 24 24,  addr 0xc00017c200 0xc00017c230 0xc00017c260 0xc00017c290 0xc00017c2c0
option len = 24 24 24 24 24,  addr 0xc00040e020 0xc00040e050 0xc00040e080 0xc00040e0b0 0xc00040e0e0
option len = 24 24 24 24 24,  addr 0xc00017c110 0xc00017c140 0xc00017c170 0xc00017c1a0 0xc00017c1d0
option len = 24 24 24 24 24,  addr 0xc00017c4d0 0xc00017c500 0xc00017c530 0xc00017c560 0xc00017c590
option len = 24 24 24 24 24,  addr 0xc00017c7a0 0xc00017c7d0 0xc00017c800 0xc00017c830 0xc00017c860
option len = 24 24 24 24 24,  addr 0xc00017c110 0xc00017c140 0xc00017c170 0xc00017c1a0 0xc00017c1d0
option len = 24 24 24 24 24,  addr 0xc00017c4d0 0xc00017c500 0xc00017c530 0xc00017c560 0xc00017c590
^C

supportedQemuMachines on each iteration with the fowllowing printf,
fmt.Printf("option len = %d %d %d %d %d,  addr %p %p %p %p %p\n",
		len(supportedQemuMachines[0].Options),
		len(supportedQemuMachines[1].Options),
		len(supportedQemuMachines[2].Options),
		len(supportedQemuMachines[3].Options),
		len(supportedQemuMachines[4].Options),
		&supportedQemuMachines[0].Options,
		&supportedQemuMachines[1].Options,
		&supportedQemuMachines[2].Options,
		&supportedQemuMachines[3].Options,
		&supportedQemuMachines[4].Options)

before this pr,
[root@centos1 ~]# /kata/bin/kata-runtime events --interval 1s 2888a85fd164c65d2785da463c167993ff778ae21fa145e2f7fd615960bc1e60|grep len
option len = 31 31 31 31 31,  addr 0x55a772a540a0 0x55a772a540d0 0x55a772a54100 0x55a772a54130 0x55a772a54160
option len = 38 38 38 38 38,  addr 0x55a772a540a0 0x55a772a540d0 0x55a772a54100 0x55a772a54130 0x55a772a54160
option len = 45 45 45 45 45,  addr 0x55a772a540a0 0x55a772a540d0 0x55a772a54100 0x55a772a54130 0x55a772a54160
option len = 52 52 52 52 52,  addr 0x55a772a540a0 0x55a772a540d0 0x55a772a54100 0x55a772a54130 0x55a772a54160
option len = 59 59 59 59 59,  addr 0x55a772a540a0 0x55a772a540d0 0x55a772a54100 0x55a772a54130 0x55a772a54160
option len = 66 66 66 66 66,  addr 0x55a772a540a0 0x55a772a540d0 0x55a772a54100 0x55a772a54130 0x55a772a54160

after this pr,
[root@centos1 ~]# /kata/bin/kata-runtime events --interval 1s 2888a85fd164c65d2785da463c167993ff778ae21fa145e2f7fd615960bc1e60|grep len
option len = 24 24 24 24 24,  addr 0x5623918c00a0 0x5623918c00d0 0x5623918c0100 0x5623918c0130 0x5623918c0160
option len = 24 24 24 24 24,  addr 0x5623918c00a0 0x5623918c00d0 0x5623918c0100 0x5623918c0130 0x5623918c0160
option len = 24 24 24 24 24,  addr 0x5623918c00a0 0x5623918c00d0 0x5623918c0100 0x5623918c0130 0x5623918c0160
^C

@jodh-intel @bryteise @jon @liwei PTAL , thanks.

@jodh-intel @bryteise @jon @liwei PTAL , thanks.

/test

/test


Fix initial bottom panel size

Issue:
The initial bottom panel size on small screens was too big
What I did
Changed the initial value of the bottom panel size to be dynamic to the screen.

Thanks @mortal94 this is great, one small remark, then good to merge IMHO

Thanks @mortal94 this is great, one small remark, then good to merge IMHO

Thanks @ndelangen ! i've pushed the requested changes.
Will this fix be released in v5.1-beta.2?

@mortal94 yes this will be released in beta.2 after it gets merged


Peer-To-Peer Code Review

Hi @Nasirkhan294, good job so far on the Portfolio project. Below are some ideas and suggestions about the project, cheers! 👍🏽
HIGHLIGHTS 🎯

The project is well structured and organised into folders/directories ✅
The project has a comprehensive README documentation ✅
The project has been deployed properly and is accessible viewed via the demo link provided ✅
The project is very readable and easy to maintain due to the descriptive comments in your files 🥇

RECOMMENDATIONS 🤔

It's important to strike a balance between commenting enough to provide context and not commenting so much that the comments themselves become a burden. Good code should be self-explanatory and easy to read, with comments used sparingly and judiciously where necessary.

Hi @egichuhis, Well noted your recommendation!
Thanks for your time and consideration.


Merge Makefile.am into a single file

Benefits

Changes that result in a rebuild of libyara will also cause test programs to be rebuilt
Avoid repeating flag definitions

CIFuzz is failing, it may need to change this path: https://github.com/Oss-fuzz/oss-fuzz/blob/master/projects/yara/build.sh#L30

I tried merging this PR but I'm getting errors like this when running tests:
dyld[36973]: symbol not found in flat namespace (_string__finalize)

It looks like it's related to linking the tests against the dynamic library instead of the static library.

I tried merging this PR but I'm getting errors like this when running tests:

I suppose we would have seen that right away if we'd had MacOSX CI tests. :-)

@plusvic I have been able to reproduce the problem using CI. Investigating …

Fixed. The root cause of the problem was the new string module.
I had wondered where those string__something symbols might come from but otherwise ignored them because of the unfamiliar (to me) messages from the MacOSX dynamic linker. And perhaps because of your assumption about static linking, @plusvic. :-)
Feeling like a total newbie at this "compiling stuff from source" thing right now. ;-)


Problem in Training

I follow the guidelines here to train the ControlNet model.
https://github.com/lllyasviel/ControlNet/blob/main/docs/train.md
I want to train this model for image inpainting, the source image is an image being masked(masked region is in white color), the target image is the original image. However, during the training steps, in the image log, I found that the model also change the content of the unmasked region. How to solve this problem?

you need to provide more details about your training.
why you care about the unmasked region anyway when you don't need it for composition?

you need to provide more details about your training. why you care about the unmasked region anyway when you don't need it for composition?

As an image inpainting task, I want to keep the unmasked region unchanged. I just follow the guidelines here:
https://github.com/lllyasviel/ControlNet/blob/main/docs/train.md
and use pytorch lightning to train the model. In this guidelines, we need to create our custom dataset, hence the dataset consist of the following:
source: An RGB masked image, the white region is the masked region

target: The origin image

The I just follow the setting in the guidelines to do the training:
resume_path = './models/control_sd15_ini.ckpt'
batch_size = 4
logger_freq = 300
learning_rate = 1e-5
sd_locked = True
only_mid_control = False
model = create_model('./models/cldm_v15.yaml').cpu()
model.load_state_dict(load_state_dict(resume_path, location='cpu'))
model.learning_rate = learning_rate
model.sd_locked = sd_locked
model.only_mid_control = only_mid_control
dataset = MyDataset()
dataloader = DataLoader(dataset, num_workers=0, batch_size=batch_size, shuffle=True)
logger = ImageLogger(batch_frequency=logger_freq)
trainer = pl.Trainer(gpus=1, precision=32, callbacks=[logger])
trainer.fit(model, dataloader)

As an image inpainting task, I want to keep the unmasked region unchanged.

Yeah... but does it really work that way? If you already have a mask, just copy-paste the regions you need into your original image and you are done.
How many steps or samples did you train?

batch_size = 4

I'd recommend to increase it (much better quality)

precision=32

I'd recommend to decrease to 16 while you are still improving your workflow (2x speed-up, slightly lower quality)

Please also post the generated images. How many steps or samples did you train? Did you reach convergence? It looks like a rendered image. Is this a domain-specific model or what are you using it for?

As an image inpainting task, I want to keep the unmasked region unchanged.

Yeah... but does it really work that way? I'd expect SD to change the whole image, because that's how SD works. But if you already have a mask, just copy-paste the regions you need into your original image and you are done. ... given the image makes sense in your original context but for this I need to know more details.

batch_size = 4

I'd recommend to increase it (if you have enough VRAM) or gradient accumulation steps. you get much better quality.

precision=32

I'd recommend to decrease to 16 while you are still improving your workflow (2x speed-up, slightly lower quality)

I am just providing an example of an input, the output generated image of this example cannot be provided. But you may expect the texture of the wall will change a lot. Although I can copy-paste those unmasked regions, but it will be extremely odd. For example if the generated image has a red wall, but the original image has a white wall, then they cannot be matched .
I also want to increase the batch size but unfortunately I don't have enough VRAM. Accumulated gradient maybe a possible solution but I think this cannot solve my problem.
I think controlnet can be used in image inpainting task. In fact in controlnet v1.1, it indeeds has a pretrained image inpainting model, but I need to train my model for some specific use.

the output generated image of this example cannot be provided

why?

May I ask whether this problem has been solved? I encountered a similar situation in the experiment, and the content of the generated image is different from that of the original image, which bothers me very much.

You can you use stable diffusion inpaint for inference


Helm chart error

Affected module
Helm chart
Describe the bug
When importing the helm chart, I get this error: Error: template: openmetadata/templates/secrets.yaml:24:22: executing "openmetadata/templates/secrets.yaml" at <b64enc>: invalid value; expected string. It was working the other day, but stopped working yesterday.
To Reproduce
Screenshots or steps to reproduce
Expected behavior
Import without error.
Version:

OS: [e.g. iOS]
Python version:
OpenMetadata version: [e.g. 0.8]
OpenMetadata Ingestion package version: [e.g. openmetadata-ingestion[docker]==XYZ]

Additional context
Add any other context about the problem here.

Hello @matthew-foreman  -
Request you to raise this issue in openmetadata-helm-charts with more details to your helm template! That would be the right place for this. Thanks.
Closing the issue here!

I was coming back here to do just that. Thanks!


chore:update leader-elect chart config

What this PR does / why we need it
update leader-elect chart config
Which issue(s) this PR fixes
none
Special notes for your reviewer
Does this PR introduce a user-facing change?

/kind documentation

tk, as suggested, I re-push the code.
but, i still have a question, what is the difference between value.yaml and value.global.yaml, because there are already complete examples to config in value.yaml

tk, as suggested, I re-push the code.
but, i still have a question, what is the difference between value.yaml and value.global.yaml, because there are already complete examples to config in value.yaml

That's a good question, the answer is values.yaml is autogenerated, if you take a look at the Makefile, we have a helm command, once run make helm, the values.yaml will be generated and overwritten, so we have another global values yaml to store customized configurations.
Anyway, we need to update the chart README.md for avoid such confusion.

/lgtm
/approve
Thanks @qinguoyi for your patience and efforts.


PLANNER-539 Reduce usage of commons.lang3 in optaplanner-benchmark.

Can one of the admins verify this PR? Comment with 'ok to test' to start the build.

Can one of the admins verify this PR? Comment with 'ok to test' to start the build.

ok to test

Brad, would you mind if I run an "optimize imports" on optaplanner-benchmark and reject this PR?
It seems that the solution of getting rid of the commons-lang3 dependency is worse than the problem. I proposed the JIRA, but I think the jira needs to change to "replace as much as possible with Java 8 methods".
Commons-lang3 isn't an ok dependency - they're backwards compatible. I worry more about the Guava dependency (they break backwards compatibility every 18 months).

OK. I had hoped to get closer to full removal, but there are a few places where that will be messy (like removing public API).

Thanks - I'll do an optimize imports after merging your other PR (which is waiting for changes, although if you're out of time I can handle them on my side).


setting "debug.showInStatusBar" to "never" requires reload to take effect

VS Code Insiders on macOS

set "debug.showInStatusBar" to "always"

Observe: debug widget appears in status bar

set "debug.showInStatusBar" to "never"

Observe: debug widget does not disappear

Good catch!


format error when printing new object

I realized that when I print my object it throws following errors,
ArgumentError - wrong number of arguments (given 1, expected 0):
(gem) awesome_print-1.7.0/lib/awesome_print/formatter.rb:122:in convert_to_hash'   (gem) awesome_print-1.7.0/lib/awesome_print/formatter.rb:55:in awesome_self'
(gem) awesome_print-1.7.0/lib/awesome_print/formatter.rb:36:in format'   (gem) awesome_print-1.7.0/lib/awesome_print/inspector.rb:148:in unnested'
(gem) awesome_print-1.7.0/lib/awesome_print/inspector.rb:115:in awesome'   (gem) awesome_print-1.7.0/lib/awesome_print/formatters/array_formatter.rb:27:in block (2 levels) in format'
(gem) awesome_print-1.7.0/lib/awesome_print/indentator.rb:13:in indent'   (gem) awesome_print-1.7.0/lib/awesome_print/inspector.rb:104:in increase_indentation'
(gem) awesome_print-1.7.0/lib/awesome_print/formatters/base_formatter.rb:111:in indented'   (gem) awesome_print-1.7.0/lib/awesome_print/formatters/array_formatter.rb:26:in block in format'
(gem) awesome_print-1.7.0/lib/awesome_print/formatters/array_formatter.rb:23:in format'   (gem) awesome_print-1.7.0/lib/awesome_print/formatter.rb:79:in awesome_array'
(gem) awesome_print-1.7.0/lib/awesome_print/formatter.rb:34:in format'   (gem) awesome_print-1.7.0/lib/awesome_print/inspector.rb:148:in unnested'
(gem) awesome_print-1.7.0/lib/awesome_print/inspector.rb:115:in awesome'   (gem) awesome_print-1.7.0/lib/awesome_print/formatters/hash_formatter.rb:31:in block (2 levels) in format'
but inspect still gives useful output:
#MachineShop::Rules:0x303cad4 JSON: {"id":"5721b427c80dd4c45f00006d","_id":"5721b427c80dd4c45f00006d","active":true,"cloud_rule":false,"created_at":"2016-04-28T06:56:39+00:00","data_source_ids":["5722002c67804cb15d0000be"],"data_source_type_ids":[],"deleted_at":null,"description":"test rule description","downstream_rule_id":null,"last_run_status":"pass","plain_english":"If is always true then send a POST request to<PHONE_NUMBER>. Otherwise do nothing.    This rule applies to these device instances: teste test tes.","then_actions":[{"id":"57cfadb8f1f17942dc0000a2","_id":"57cfadb8f1f17942dc0000a2","action_frequency":null,"body_template":"dfadfa dfad fadfa dfadfadfa dfadf a","clear":true,"created_at":"2016-09-07T06:03:36+00:00","deleted_at":null,"headers":{"Accept":"application/json"},"last_run":"1970-01-01T00:00:00+00:00","method":"post","priority":1,"send_to":"9843621770","updated_at":"2016-09-07T06:03:36+00:00","type":"http_request_rule_action"}],"updated_at":"2016-09-07T06:03:36+00:00","user_id":"57109072c80dd49a1f00008b","rule_condition":{"id":"57cfadb8f1f17942dc0000a1","_id":"57cfadb8f1f17942dc0000a1","created_at":"2016-09-07T06:03:36+00:00","deleted_at":null,"parent_or_sibling_key":null,"parent_or_sibling_value":null,"property":"","rule_id":"5721b427c80dd4c45f00006d","updated_at":"2016-09-07T06:03:36+00:00","value":"","type":"true_rule_condition"},"http_code":200}

That's a strange one:
https://github.com/awesome-print/awesome_print/blob/v1.7.0/lib/awesome_print/formatter.rb#L122
Not sure which method this is referring to when it mentions that we are passing an additional argument.

Oh wait... does MachineShop::Rules create a method or instance method called method? If so, that's a bad idea. We expect method to be https://ruby-doc.org/core-2.3.1/Object.html#method-i-method, which takes a symbol as an argument.


Selection of ASP.NET Projects on New Pipeline Configuration Screen in Azure DevOps is Confusing

Today, I am creating my first pipeline in Azure DevOps, and I find this selection very confusing.

Hi @BieleckiLtd,
This forum is available to discuss the concerns regarding Azuredevopslabs  site and the content. Seems like your concern is not related to any of the labs.
But just to give quick idea on your concern, there is a difference in the MS Build Arguments in the build task of these templates which we could see in the provided screenshot,
Other than most other things will be similar. Anyways, you have a option to add or modify the arguments as per your requirement.
Best way to understand this is to create a pipeline using these templates and observe the difference.
Refer:
Creating a pipeline for .NET Core application
Build ASP.NET apps with .NET Framework


One exclusive appointment

Could be an option, like if we set the maxReservableAppointments to 0, that only one appoitment is acceptable, when we click on another apointment, it automaticallys remove the first one.
I was trying to made that change, but I'm still too newbie in JS.
Thanks!

Hi irvingsl, maxReservableAppointments represents how many appointments can be selected. I put the deselection like mandatory because I thought that people will run a query for deselect that especific periods of time, so someone else could select an appointment in that periods, also people can select more appointment if they need. The way of selecting and remove the first one should have two transactions in the same function (one for delete the periods selected and one for create the selections in the new appointment periods). I base this way in some movie theaters apps from my country.
I hope you could use this package, if you have some other doubt, I would answer you as soon as possible.

Hi @irvingsl,
I already add a new feature that can help you.
I hope you can check it.


errors: consistently set attempt_count when missing

Description: Fixes an uninitialized value in filters when the attempt count header was missing, and sets attempt_count consistently to 1. Cleanup of "optional" attempt_counts coming in a subsequent PR.
Risk Level: Low
Testing: Unit, Local & CI
Signed-off-by: Mike Schore<EMAIL_ADDRESS>

Thanks @rebello95!


refactor(colors-social): move social colors' declarations to Share component's folder

cleanup before theming introduction

Not relevant anymore. Component moved from the repo in the next branch


setup cargo deny

Add support for cargo-deny.

tbh, I don't think cargo deny makes sense to setup for librarise. What you care about is that you don't have weird stuff in Cargo.lock, and libraries don't have meaningful cargo.lock.

tbh, I don't think cargo deny makes sense to setup for librarise. What you care about is that you don't have weird stuff in Cargo.lock, and libraries don't have meaningful cargo.lock.

It does for a binary crate. Take a look at https://github.com/near/near-memory-tracker/pull/80


Binaries in ~/.dtf/included do not have execute flag set

To overcome this, I'm going to switch to tar, which saves permission details.

Fixed via https://github.com/jakev/dtf/commit/2d4d44b94be3d89aeeec85840803d1a85cb7e3ca


streaming playback

Describe the bug
when the audios are downloaded locally they are reproduced without any kind of problem. On the other hand, when there is a direct reproduction with the server, depending on the audio format, it is not reproduced.
One of the advantages of having the server is being able to play the audios directly and not need to download them.
Reproduction
_
System Info
linux,brave,firefox

Used Package Manager
npm
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A, please open a GitHub Discussion instead.
[X] The provided reproduction is a minimal reproducible of the bug.

Could you give me an example of a podcast that isn't played correctly. Modern browsers normally support the gist of codecs.

Could you give me an example of a podcast that isn't played correctly. Modern browsers normally support the gist of codecs.

These are some of the podcasts that do not allow streaming, but there are many more

https://feedpress.me/sospechososhabituales
https://cuonda.com/binarios/feed
https://boluda.com/feed/
https://podcast.mixx.io/index.rss
https://fitnessrevolucionario.com/feed/podcast

They are well-known podcasts and have many listeners

I'm testing the latest update dev. All the audios that I am playing work perfectly. Spectacular work you are doing.
I keep trying...


fix (and test!) GitHub provider resolution

fixes failure introduced in #264

Thanks! Will deploy to staging as soon as it's uploaded.


Rust version requirement?

When attempting to install and run the interactive example, I see many errors such as:
error[E0658]: use of unstable library feature 'maybe_uninit' (see issue #53491)
    --> C:\Users\Johnsons\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.20.0-alpha4\src\platform_impl\windows\event_loop.rs:1736:46
     |
1736 |                                     pen_info.as_mut_ptr(),
     |                                              ^^^^^^^^^^

Does skulpin require nightly rustc?

I'm not sure what minimum Rust version is required, but I believe MaybeUninit was stabilized in 1.36. CI is successfully building against stable, beta and nightly. (https://travis-ci.org/aclysma/skulpin)

I looked into this a bit. What was checked in before required 1.38.0. I was able to make a simple change to get the minimum required version down to 1.36.0. winit requires 1.36.0 for MaybeUninit support, so this project's minimum required version will be 1.36 for now.
I've added 1.36.0 to the CI config and a note about this to the readme.


send* RPCs in the wallet should return the "fee reason"

When the wallet funds a transaction, it needs to add inputs until all output amounts as well as the fee are satisfied. The feerate is either set explicitly by the user or estimated.
To aid debugging, the fee reason should be reported to the user. For most wallet RPCs this is a breaking API change, so I suggest to make it an option like verbose=1 (default=0).
Useful skills:
Bitcoin Core wallet, RPC interface, functional tests.
Want to work on this issue?
The purpose of the good first issue label is to highlight which issues are suitable for a new contributor without a deep understanding of the codebase.
You do not need to request permission to start working on this. You are encouraged to comment on the issue if you are planning to work on it. This will help other contributors monitor which issues are actively being addressed and is also an effective way to request assistance if and when you need it.
For guidance on contributing, please read CONTRIBUTING.md before opening your pull request.

Please leave a comment if you intend to work on this or let me know if you have any questions.

Hey MarcoFalke, I am very interested in working on this issue

Great! I suggest you familiarize yourself with the RPC interface and how to compile Bitcoin Core and run the tests.
Let me know if you have any questions.

Okay Thank you!

Hey Marco, I just had few questions regarding adding fee reason. In rpcwallet.cpp i have found that fundrawtransaction let us input a manual feerate and settxfee  calculates automatic fee rate if n = 0. So, I am trying to display the fee reason output in gettransaction, but i just can't seem to connect the gettransaction and fundrawtransaction. Do you have any suggestions? Thankyou

There is a function called CreateTransaction. In the last line it logs the fee reason.
    WalletLogPrintf("Fee Calculation: Fee:%d Bytes:%u Needed:%d Tgt:%d (requested %d) Reason:\"%s\" Decay %.5f: Estimation: (%g - %g) %.2f%% %.1f/(%.1f %d mem %.1f out) Fail: (%g - %g) %.2f%% %.1f/(%.1f %d mem %.1f out)\n",
              nFeeRet, nBytes, nFeeNeeded, feeCalc.returnedTarget, feeCalc.desiredTarget, StringForFeeReason(feeCalc.reason), feeCalc.est.decay,
              feeCalc.est.pass.start, feeCalc.est.pass.end,
              100 * feeCalc.est.pass.withinTarget / (feeCalc.est.pass.totalConfirmed + feeCalc.est.pass.inMempool + feeCalc.est.pass.leftMempool),
              feeCalc.est.pass.withinTarget, feeCalc.est.pass.totalConfirmed, feeCalc.est.pass.inMempool, feeCalc.est.pass.leftMempool,
              feeCalc.est.fail.start, feeCalc.est.fail.end,
              100 * feeCalc.est.fail.withinTarget / (feeCalc.est.fail.totalConfirmed + feeCalc.est.fail.inMempool + feeCalc.est.fail.leftMempool),
              feeCalc.est.fail.withinTarget, feeCalc.est.fail.totalConfirmed, feeCalc.est.fail.inMempool, feeCalc.est.fail.leftMempool);
    return true;

I think all you need to do is return the feeCalc.reason from this function.

Okay i will look into it. Thank you very much!

Hey Marco, while returning '''feeCalc.reason''' in send* RPC functions, i would have to modify their current return type and i don't think that would be an efficient option considering all the functional tests. Is there anything i am missing or is there any other viable options? Thank you

For most wallet RPCs this is a breaking API change, so I suggest to make it an option like verbose=1 (default=0).

@MarcoFalke are you recommending adding a field "verbose", then if that is set to true show the fee reason? or are you referring to verbose as an example of a field that has a default option?

are you recommending adding a field "verbose", then if that is set to true show the fee reason?

Yes. Sorry if that was unclear.

oh okay. @stackman27 caught your drift and is headed down that path, but I was surprised by the idea of verbose for one additional field, so thought I'd check.
carry on :)

There is a function called CreateTransaction. In the last line it logs the fee reason.
    WalletLogPrintf("Fee Calculation: Fee:%d Bytes:%u Needed:%d Tgt:%d (requested %d) Reason:\"%s\" Decay %.5f: Estimation: (%g - %g) %.2f%% %.1f/(%.1f %d mem %.1f out) Fail: (%g - %g) %.2f%% %.1f/(%.1f %d mem %.1f out)\n",
              nFeeRet, nBytes, nFeeNeeded, feeCalc.returnedTarget, feeCalc.desiredTarget, StringForFeeReason(feeCalc.reason), feeCalc.est.decay,
              feeCalc.est.pass.start, feeCalc.est.pass.end,
              100 * feeCalc.est.pass.withinTarget / (feeCalc.est.pass.totalConfirmed + feeCalc.est.pass.inMempool + feeCalc.est.pass.leftMempool),
              feeCalc.est.pass.withinTarget, feeCalc.est.pass.totalConfirmed, feeCalc.est.pass.inMempool, feeCalc.est.pass.leftMempool,
              feeCalc.est.fail.start, feeCalc.est.fail.end,
              100 * feeCalc.est.fail.withinTarget / (feeCalc.est.fail.totalConfirmed + feeCalc.est.fail.inMempool + feeCalc.est.fail.leftMempool),
              feeCalc.est.fail.withinTarget, feeCalc.est.fail.totalConfirmed, feeCalc.est.fail.inMempool, feeCalc.est.fail.leftMempool);
    return true;

I think all you need to do is return the feeCalc.reason from this function.

Hey Marco, so the function createTransaction returns a boolean value. So, how would i return a string feeCalc.reason from the function? Am i supposed to store the value somewhere else and retrieve it in sendrpc calls? I found CWalletTx class in wallet.h line(269) that could be useful. Do you have any other suggestion? Thank you

values can be returned in function parameters as well. For example,
void sum(int a, int b, int& ret) {ret=a+b;}

is a function with void return type that returns the result as a parameter

Hey Marco, I made all the changes and its been over 2 weeks and I still haven't gotten any response on my PR. Is there anything I'm doing wrong. Can you please verify what's happening? Thank you

Sorry I got side-tracked. I'll take a look soon.

For sure! Thank you very much


This should not be available publicly.

Hi Jackson,
This should not be made publicly available.  From the AP Board's Lab directions:
Important — Students should only receive the ActivityN Starter Code folder that they need for a specific Activity. This is because subsequent ActivityN Starter Code folders contain the complete working solution code for earlier activities.
If you have it available, all that is needed is a google search.
Thanks,
Tim

Quite a few of these answers appear to me to be incorrect, or incomplete. This seems like a great way to catch the cheaters thinking they are so slick. For example, Activity 2, Question #2 is incorrect, And Question #3, and #4 answers are vague/incomplete


Json importers errors

Errors should use digest rather than system outs.

A lot of system outs are being removed - the error cases should still be identified and digested


nginx custom config not working in 7.2

https://github.com/jkaninda/nginx-php-fpm?tab=readme-ov-file#nginx-custom-config
not working for 7.2

I saw it, let me restore it

Restored


fix:#95 with null-safety

fix #95 with null-safety

Hi @domliang the real reason that I found while testing, the videos where this error is occurring don't contain proper Rotation information (so it is set to 0). You can also find some discussion about it here which causes various other video parsing issues (and it mostly affects the iOS device).
There's also a PR related to this which might fix this video parsing issue, here. But unfortunately, it isn't merged yet (and, it's a 2 year old PR 😞 ).
For example, I got an error like this using the video provided by @Vitaly-V:
TX and TY are 0. Rotation: 0. Natural width,height: 640.000000, 360.000000

This is the reason video_thumbnail package can't generate the thumbnails for that part of the video where it lacks the Rotation information (or, it is set to 0 by default).
For now, it's better to use this fix by reusing the previous correctly generated thumbnail where it returns null.

Thanks for this PR 🎉
LGTM


feat: added possibility to set defaults for custom functions and specify variable filter as a list of strings

Code to test
from modelon.impact.client import Client

client = Client(url="https://jhmi.modelon.com", interactive=True)

workspace = client.create_workspace("pop")

# Choose analysis type
dynamic = workspace.get_custom_function('dynamic')

# Get model
model = workspace.get_model("Modelica.Blocks.Examples.PID_Controller")
# Execute experiment
experiment_definition = model.new_experiment_definition(
    dynamic.with_parameters(start_time=0.0, final_time=2.0),
    simulation_options=dynamic.get_simulation_options().with_result_filter(
        ['*.phi', '*.y']
    ),
    solver_options={'atol': 1e-8},
)
exp = workspace.execute(experiment_definition).wait()

Jira - https://modelonproducts.atlassian.net/browse/WAMS-10828

@efredriksson-modelon , Thanks for the review! I have made the suggested changes.
Could you please take a look?


How to use deeply nested dataSource?

I'm working with geoJSON data (http://geojson.org/) Which is a JSON notation for geographic features.
I want to show a three-column table with the name, longitude and latitude of thousands of points.
The data is like this:
{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {
        "marker-color": "#7e7e7e",
        "marker-size": "medium",
        "marker-symbol": "",
        "name": "point_two"
      },
      "geometry": {
        "type": "Point",
        "coordinates": [
          85.4296875,
          60.930432202923335
        ]
      }
    },
    {
      "type": "Feature",
      "properties": {
        "marker-color": "#7e7e7e",
        "marker-size": "medium",
        "marker-symbol": "",
        "name": "point_one"
      },
      "geometry": {
        "type": "Point",
        "coordinates": [
<PHONE_NUMBER>,
          61.60639637138628
        ]
      }
    }
  ]
}

How should I define the proper dataSource options, so that I can use the features[].properties.name field for column 1, features[].geometry.coordinates[0] for column 2 and features[].geometry.coordinates[1] for column 3 ?
I tried reading trough the docs, but all the examples use a flat data source; is using deeply nested dataSources supported?
Thanks!

We don't support such dataSources by default, but you can use column.renderer for each column to extract and display the needed info. You can read the documentation about this option at http://gijgo.com/Grid/Configuration/column.renderer.
Here is an example:
$('#grid').grid({
         dataSource: features
         columns: [
             { title: 'name', renderer: function (value, record) { return record.properties.name; } },
             { title: 'longitude ', renderer: function (value, record) { return record.geometry.coordinates[0]; } },
             { title: 'latitude ', renderer: function (value, record) { return record.geometry.coordinates[1]; }  }
         ]
     });


Fastlane authentication error on Unity Cloud Build

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I read the Contribution Guidelines
[x] I read docs.fastlane.tools
[x] I searched for existing GitHub issues

Issue Description
Fastlane won't authenticate to the app store. I have tried in many ways and with many different env variables, but no matter what I put deliver fails to authenticate.
the last runs I have been gatting the 2fa request on my mac while the build was running on the cloud.. which it shouldn't since I have specified the FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD.
I had previously tried to use this custom lane but the api_key fails with some "curve" error (which is apparently related to the _new line catachter_s]
https://docs.fastlane.tools/app-store-connect-api/
  lane :test_flight do
    api_key = app_store_connect_api_key(
      key_id: "******",
      issuer_id: "*******",
      key_content: ENV["IOS_API_KEY"], # you can specify this on the Unity Evnironment Variables setup
      duration: 1200, # optional (maximum 1200)
      in_house: false # optional but may be required if using match/sigh
    )
    pilot(api_key: api_key)
  end

Unity Cloud Build already uses fastlane to build the xcode project into the binary form, so I wonder if me tring to set up a different "fastlane environment" within the same machine is screwing things up..
Command executed
This is the bash script I run as post-build event

echo "###############################################"
echo "Uploading app to TestFlight..."
echo "-----------------------------------------------"
pwd
echo "-----------------------------------------------"
env
echo "-----------------------------------------------"
ls -a .
echo "-----------------------------------------------"

echo "-----------------------------------------------"
bundle install
echo "-----------------------------------------------"

exit_code=1
if bundle exec fastlane release --verbose ; then
    echo "======== Upload IPA to Appstore Connect finished with success"
    # end without error
    exit_code=0
else
    echo "======== ERROR! Upload IPA to Appstore Connect failed"
    echo "-------- Current Folder Content"
    ls -a .
    echo "-----------------------------------------------"
    bundle exec fastlane env
    echo "-----------------------------------------------"
    # end with error
    exit_code=1
fi

echo "###############################################"
exit $exit_code

Complete output when running fastlane, including the stack trace and command used
Generating fastlane environment output, this might take a few seconds...
swift-driver version: 1.26.21 ✅ fastlane environment ✅
Stack

Key
Value

OS
11.6.2

Ruby
2.7.4

Bundler?
true

Git
git version 2.34.1

Installation Source
~/.rvm/gems/ruby-2.7.4/bin/fastlane

Host
macOS 11.6.2 (20G314)

Ruby Lib Dir
~/.rvm/rubies/ruby-2.7.4/lib

OpenSSL Version
OpenSSL 1.1.1m  14 Dec 2021

Is contained
false

Is homebrew
false

Is installed via Fabric.app
false

Xcode Path
/Applications/Xcode13_2_1.app/Contents/Developer/

Xcode Version
13.2.1

Swift Version
5.5.2

System Locale

Variable
Value

LANG
en_US.UTF-8
✅

LC_ALL
en_US.UTF-8
✅

LANGUAGE
en_US.UTF-8
✅

fastlane files:
`./fastlane/Fastfile`
fastlane_require "dotenv"
# This file contains the fastlane.tools configuration
# You can find the documentation at https://docs.fastlane.tools
#
# For a list of all available actions, check out
#
#     https://docs.fastlane.tools/actions
#
# For a list of all available plugins, check out
#
#     https://docs.fastlane.tools/plugins/available-plugins
#
before_all do
  Dotenv.load ".env.secret"
end
# Uncomment the line if you want fastlane to automatically update itself
update_fastlane
default_platform(:ios)
platform :ios do
  before_all do
    Dotenv.load ".env.ios"
  end
  desc "Sync singing"
  lane :signing do
    sync_code_signing # match
    mapping = Actions.lane_context[
      SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING
    ]
    update_code_signing_settings(
      profile_name: mapping[ENV['MATCH_APP_IDENTIFIER']]
    )
  end
  private_lane :reset_pass do
    ENV['FASTLANE_USER'] = nil
    ENV['FASTLANE_PASSWORD'] = nil
  end
  desc "Sign and upload to upstore"
  lane :release do
    deliver
  end

end

`./fastlane/Appfile`
# For more information about the Appfile, see:
#     https://docs.fastlane.tools/advanced/#appfile
<EMAIL_ADDRESS>team_id("**********")

fastlane gems

Gem
Version
Update-Status

fastlane
2.206.2
✅ Up-To-Date

Loaded fastlane plugins:
No plugins Loaded
Loaded gems

Gem
Version

did_you_mean
1.4.0

rake
13.0.6

rexml
3.2.5

CFPropertyList
3.0.5

public_suffix
4.0.7

addressable
2.8.0

artifactory
3.0.15

atomos
0.1.3

aws-eventstream
1.2.0

aws-partitions
1.598.0

aws-sigv4
1.5.0

jmespath
1.6.1

aws-sdk-core
3.131.1

aws-sdk-kms
1.57.0

aws-sdk-s3
1.114.0

babosa
1.0.4

bundler
2.2.2

claide
1.1.0

colored
1.2

colored2
3.1.2

highline
2.0.3

commander
4.6.0

declarative
0.0.20

digest-crc
0.6.4

unf_ext
<IP_ADDRESS>

unf
0.1.4

domain_name
0.5.20190701

dotenv
2.7.6

emoji_regex
3.2.3

excon
0.92.3

faraday-em_http
1.0.0

faraday-em_synchrony
1.0.0

faraday-excon
1.1.0

faraday-httpclient
1.0.1

multipart-post
2.0.0

faraday-multipart
1.0.4

faraday-net_http
1.0.1

faraday-net_http_persistent
1.2.0

faraday-patron
1.0.0

faraday-rack
1.0.0

faraday-retry
1.0.3

ruby2_keywords
0.0.5

faraday
1.10.0

http-cookie
1.0.5

faraday-cookie_jar
0.0.7

faraday_middleware
1.2.0

fastimage
2.2.6

gh_inspector
1.1.3

jwt
2.4.1

memoist
0.16.2

multi_json
1.15.0

os
1.1.4

signet
0.16.1

googleauth
1.1.3

httpclient
2.8.3

mini_mime
1.1.2

trailblazer-option
0.1.2

uber
0.1.0

representable
3.2.0

retriable
3.1.2

webrick
1.7.0

google-apis-core
0.5.0

google-apis-androidpublisher_v3
0.21.0

google-apis-playcustomapp_v1
0.7.0

google-apis-iamcredentials_v1
0.10.0

google-apis-storage_v1
0.14.0

google-cloud-env
1.6.0

google-cloud-errors
1.2.0

google-cloud-core
1.6.0

google-cloud-storage
1.36.2

json
2.6.2

mini_magick
4.11.0

naturally
2.2.1

optparse
0.1.1

plist
3.6.0

rubyzip
2.3.2

security
0.1.3

simctl
1.6.8

terminal-notifier
2.0.0

unicode-display_width
1.8.0

terminal-table
1.8.0

tty-screen
0.8.1

tty-cursor
0.7.1

tty-spinner
0.9.3

word_wrap
1.0.0

nanaimo
0.3.0

xcodeproj
1.21.0

rouge
2.0.7

xcpretty
0.3.0

xcpretty-travis-formatter
1.0.1

generated on: 2022-06-15

Take notice that this output may contain sensitive information, or simply information that you don't want to make public.
Open https://github.com/fastlane/fastlane/issues/new to submit a new issue ✅

some other resources:

https://github.com/fastlane/fastlane/tree/master/credentials_manager
https://forum.unity.com/threads/fastlane-for-ios-and-android.1019485/
https://forum.unity.com/threads/unity-cloud-build-fastlane-for-android.1186918

Your article content is being very much interested, I am very impressed with your post. I hope to receive more great posts.

This works really well for us, thank you!

This works really well for us, thank you!

How is it working for you? 😭

This works really well for us, thank you!

 There really is not enough talk about this..
@Holthaus789 How did you app_store_connect_api_key? following the official documentation doesn't seem to work for me..

Here the same issue posted on Unity Forum
https://forum.unity.com/threads/fastlane-for-ios-and-android.1019485/#post-8224878

Well, I am still waiting for a response both from Fastlane and from Unity..


[front] - chore(SidebarMenu): keep action buttons visible

Description
This PR aims at keeping the action button sticky when editing conversations

References:

https://github.com/dust-tt/tasks/issues/1691

Risk
Low
Deploy Plan
Deploy front

Review in when hiding whitespace is much simpler here


Add support for defining known configurations in provisioning.xml

Resolves #140

Going to check how this merges on the future branch.

I think the known-feature-pack should either have galleonConfiguration or location/packages fields, never both. Otherwise we have to think about merging those configs.
Maybe we can even get rid of the latter and only use galleonConfiguration, WDYT?

No, I think it would be better to check galleonConfiguration and location/packages are exclusive in the KnownFeaturePack class. That would throw an exception during parsing hopefully.

IMO it would be nice if prospero offered an ability to install with only inline parameters, without having to have any files around. That would imply the need to keep the location/packages parameters I think.

The insides of known-feature-pack shouldn't be visible to the user, this is purely internal configuration.
To install with only parameters a user would do: prospero install --fpl=<FP_GAV> --remote-repositories=<REPO_URLs> --manifest=<MANIFEST> --dir server

You are right again, I lost the context. I think it's OK to only support one way of configuring this.

I rebased this on the "future" branch. Removed references to location and packages from the KnownFeaturePacks.
There is one remaining thing that I think needs to be solved, and that is how to reference the *-provisioning.xml files from the prospero-known-combinations.yaml, in cases when:

the files are packaged on the classpath,
and when the files are present on the file-system (also what should a current dir be, from which to resolve relative paths).

File system case:

Or do we only want to support the classpath case? (Currently it is. It's about how the manager is to be distributed...)
In that case the "classpath:" prefix is not needed and I can just always load the XMLs via getClassLoader().getResource(...).

I think the classpath option is enough. We only load the known-feature-packs.yaml via classpath as well

I updated the PR.
There is now default "production" provisioning.xml for Wildfly, which uses FPL "wildfly@maven(org.jboss.universe:community-universe):current#latest".
In the end, I also had to implement "classpath:" scheme for *-provisioning.xml files. It's true that when working with predefined FPLs, they are currently always on classpath, but the logic further on (ProvisioningDefinition#toProvisioningConfig()) needs to be able to handle both filesystem references and classpath references - it's common code for both use cases.
Separate thought: does it make sense to have Wildfly as predefined FPL, when there is no publicly available channel for Wildfly? We don't allow installation without channel... Maybe it gets replaced by EAP8 in future?

Separate thought: does it make sense to have Wildfly as predefined FPL, when there is no publicly available channel for Wildfly? We don't allow installation without channel... Maybe it gets replaced by EAP8 in future?

The idea was to make it easier by hiding the Wildfly FPL, but yes without the channel it's not very useful.

Thanks @TomasHofman!


When switching time based sessions, I want to see current time session

Overview (Required)

Title says everything.
You can check it by changing device time

Current time session has been opened already at the master branch.
But it works at time and room based session screen.

@seisuke Thanks, I think that is good. 👍
I think it is better to show DAY1 / 14:00 tab.
What do you think? 🤔

I implement to show current session tab.


[tensor/tensor_dim] Added equal comparison operation

Added equal comparison operation
Currently its based on fixed epsilon
Needs updation to use variable number of bits based on exponentiation as done in gtest
Related Issue: #202
Signed-off-by: Parichay Kapoor<EMAIL_ADDRESS>

:memo: TAOS-CI Version: 1.4.20191203. Thank you for submitting PR #214. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://nnsuite.mooo.com/.

:octocat: cibot: @kparichay, A builder checker could not be completed because one of the checkers is not completed. In order to find out a reason, please go to http://nnsuite.mooo.com/nntrainer/ci/repo-workers/pr-checker/214-202006231422330.64306497573853-d40af1275a8a2a52ac0416ce27616b13a8740e4b/.

@zhoonit @jijoongmoon Should I make tensor depend on gtest and use its float comparison directly, or implement a similar one for future?

directly, or implement a similar one in the next PR? Current implementation uses fixed epsilon which works for now but isnt good.

I think it is better to make a similar feature. I think GTEST is not designed to use outside of the TEST() scope


[hffs] Alias for the refs/convert/parquet branch

Right now users have to load datasets in pandas/dask using using
df = dd.read_parquet("hf://datasets/lhoestq/demo1@refs%2Fconvert%2Fparquet")

It would be nice to have some sort of alias for that branch, maybe using a special character to signify that it's not a git revision but an alias
df = dd.read_parquet("hf://datasets/lhoestq/demo1@~parquet")

This is open to discussion, what do you think ?
The alternative is to create the "parquet" git tag for all the datasets repos

Alias is nice IMO
Could be implemented on server-side for consistency and instant backward compat

I'd also be in favor of a server-side alias. Git tags seems clunky as it would mean each time the parquet ref is updated, you'd need to delete a tag and recreate one.
If we do a server-side alias, should we just go for parquet and forbid this name as revision? If we use a special character we would need to url-encode it as well which is what we want to avoid here.

Created an issue on moon-landing: https://github.com/huggingface/moon-landing/issues/6978 (internal).

yes urlencode(~) == ~

Done and in prod. We can close, I think

Thanks @severo :)
@lhoestq can you confirm your use case is addressed and close the issue?


fix(core): normalize input for poll option

Pre-flight checklist

[X] I have read the Contributing Guidelines on pull requests.
[ ] If this is a code change: I have written unit tests and/or added dogfooding pages to fully verify the new behavior.
[ ] If this is a new API or substantial change: the PR has an accompanying issue (closes #0000) and the maintainers have approved on my working plan.

Motivation
This change normalizes input for the poll option to either a boolean or number to meet the specs required by Webpack config
Fixes #8306
Test links
Deploy preview: https://deploy-preview-8342--docusaurus-2.netlify.app/
Related issues/PRs
#8306
#6722

LGTM thanks 👍

LGTM


chore: more automated import renaming in start_port.sh

Also: sort the list of patterns

bors merge


[IMPR] Improve sending non-generated urls

Make an option to use bcc instead of looping over all the recipients.

Implemented in 7dbc82c


gst-vaapi/msdk add .av1 file extension support

gst-vaapi/msdk add .av1 file extension support
high resolution av1 decode will include .av1 file extension

#depend on vaapi-fits https://github.com/intel/vaapi-fits/pull/271
test contents:
x-build32.sh.intel.com:/GFX/media_asset/av1/8bit

Test result:
root@yami-tgl:/home/focus/workspace_focus/vaapi-fits-full# ./full run test/ffmpeg-qsv/decode/av1.py --pl TGL
11 tests collected
test/ffmpeg-qsv/decode/av1.py ...........  PASS
======================================= Session ended. 11 successful, 0 skipped, 0 failed, 0 erroneous. Total duration: 00:00:07 ========================================
root@yami-tgl:/home/focus/workspace_focus/vaapi-fits-full# ./full run test/gst-msdk/decode/av1.py --pl TGL
11 tests collected
test/gst-msdk/decode/av1.py ....F......  FAIL
There is a case failed which is an exiting case caused by run time above 300 second (running too long time with too long video frames in this test clip, will fix it with other patch)
case=Halo_1080P
F    AssertionError: CALL TIMEOUT: timeout after 300 seconds (pid: 9302).
assert not True


error when building Sodium

I have tried this result many times.

The error tells you the problem. libtool is required but want found. You need to install it. apt install libtool

Thanks, I have compiled successfully.


Try to fix #1358

Yeah, I'm pretty sure I did something wrong, but running the specs takes FOREVER on my laptop, so I'm just going to let Travis do its thing. :)

Maybe the specs will pass, but the to_s for Array should be Array(T) while for the Iterator inside an Array it should be Array::Iterator, so the logic is a bit more complex.


Add vcpkg-sample-library to vcpkg

sample library from microsoft vcpkg.

Why?

@DirkBabel-Hexagon, We don't need to do this. Users who need to view the sample can directly visit https://github.com/microsoft/vcpkg-docs/tree/cmake-sample-lib

I normally would get an OK from the other maintainers before closing something, but in this case we are upstream and do not want the samples in the curated registry like this. Thanks for your contribution to vcpkg and sorry that we were unable to accept it!


fix(semantic): Added files to support semantic release automation

Added files to support semantic release automation
Bug fix to show proper status alert in progress screen

merging myself to test the semantic process

@jarifibrahim can you please review this PR once ?


FFI_Yajl shared parsing API with exception handling

Fixes https://github.com/chef/knife-tidy/issues/120
Whereas previously there was no indication which file was not valid json, now there is clear and actionable output:
ERROR: unable to parse file: '/Users/jmiller/jm01/transfer/Devel/ChefProject/chef-server-vagrant/backups/users/bob.json' lexical error: invalid string in json text.
                                       none
                     (right here) ------^

Signed-off-by: Jeremy J. Miller<EMAIL_ADDRESS>

@tas50 I fixed up the verify tests for this project 🎉

Looks good. Thanks @jeremymv2


[FEATURE] Search items

Please add a search in piker
Thx!

+1

@sergey-zhuravel Did you ever find a way to add the search item>


Ethernet W5500 driver fails initialization with latest change - revert needed

Describe the bug
W5500 driver is now unusable due to RTR Read Error from swapped GPIO initialization introduced in https://github.com/zephyrproject-rtos/zephyr/pull/46139
To Reproduce
Steps to reproduce the behavior:

Have a board with W5500 with reset pin defined as GPIO_ACTIVE_LOW as per documentation
Flash it with a sample such as DHCP sample while using W5500 driver
Observe debug log output Error during initialization phase, and that it is now stuck at reset

Expected behavior
W5500 initializes without error, estabilishes the network interface successfully, and stays up
Impact
Showstopper² - this has broken/will break every board application that is currently working the W5500 driver
Logs and console output
Example from an MQTT application:
[00:00:00.355,651] <err> eth_w5500: Unable to read RTR register
[00:00:00.356,536] <inf> net_config: Initializing network
[00:00:00.356,689] <inf> net_config: Running dhcpv4 client...
[00:00:04.816,223] <inf> net_mqtt_publisher_sample: tls_init: 0 <OK>
[00:00:04.816,223] <inf> net_mqtt_publisher_sample: attempting to connect:
[00:00:07.818,634] <inf> net_mqtt_publisher_sample: mqtt_connect: -116 <ERROR>
[00:00:11.831,054] <inf> net_mqtt_publisher_sample: mqtt_connect: -116 <ERROR>
[00:00:15.932,952] <inf> net_mqtt_publisher_sample: mqtt_connect: -116 <ERROR>

Environment (please complete the following information):

Ubuntu Focal Fossa flashing nRF52840
gcc-arm-none-eabi-9-2019-q4-major with nRF Connect SDK 1.9.1
Nordic ncs 2.7.99

Additional context
The driver had been working in a stable manner before https://github.com/zephyrproject-rtos/zephyr/pull/46139 introduced the following line:
https://github.com/zephyrproject-rtos/zephyr/blob/17f8f627896c4189bd2dbe134040b4a6bf5e51c5/drivers/ethernet/eth_w5500.c#L511
There have been other changes but I have no opinion on them because there is no information on what they do. The PR was merged without an issue thread so it only makes sense it gets reverted because there is nothing to test the changes against.

Fixed in #46469


Feat:Add Support for Profile Links in AvatarCircles Component

fix #305
Changes Made

Updated AvatarCircles Component:

Modified the AvatarCircles component to support profile URLs.
Added a new avatarUrls prop that now accepts an array of objects, each containing an imageUrl and profileUrl

Usage
To utilize this feature, update the avatarUrls prop with an array of objects, where each object includes:

imageUrl: The URL of the avatar image.
profileUrl: The URL of the corresponding GitHub profile.

Any update?

@sanjay-mali  Are you addressing two different issues here? Any changes made to the hero-video-dialog component should be in a separate PR, as it should address a different issue, right? I understand the changes made for Avatar, but could you clarify what changes you're making to the hero-video-dialog component?

@itsarghyadas Yes, you are correct that changes to the hero-video-dialog component should ideally be in a separate PR. However, in this particular PR, the changes to hero-video-dialog are as follows:
Dynamic Gradient Background- I added functionality to allow dynamic background gradients based on the startColor and endColor props. Previously, the component only used a fixed gradient (from-primary/30 to-primary). Now, it checks whether the provided colors are valid Tailwind colors or custom ones and applies them accordingly.
I hope that clarifies the changes. Let me know if you'd like me to split this into a separate PR or if you need further refinements.

@dillionverma Thank you! I completely understand. I'll go ahead and create a separate PR for the changes to the hero-video-dialog component so it's easier to review and merge. I'll get that done shortly! 😊
Let me know if there's anything else I can assist with!

Hey @dillionverma , I created a separate PR as you suggested. Please check #417 and let me know if the changes look good. Should we go ahead and close this PR?

@sanjay-mali I’m reviewing that right now. Thanks for the extra work! You can close this PR and create or update this one for your proposed changes to the hero-video-dialog component.

@sanjay-mali I’m reviewing that right now. Thanks for the extra work! You can close this PR and create or update this one for your proposed changes to the hero-video-dialog component.

@itsarghyadas Thank you 😊


Can't address lights after 255

unexpected issues.  2 channel lights added to universe 1 channels 22-254 all work as expected. 2 channel lights added 256-512  have unexpected behavior/don't work/ pull data from universe 2 channel 254.

Fixed in 395d7e261c29767d115d5d4551025db28dcc10d5


Collapsible fields in Orderable/InlinePanel and StructBlock

Is your proposal related to a problem?
Sometimes in an Orderable or a StructBlock, there will be one or more fields that are rarely used but necessarily need to be part of that construct. When the field is rendered in the page or snippet editor, it will take up unnecessary space and get in the way of the editor's primary content entry task.
Describe the solution you'd like
I'd like to have control, as a developer, of which fields are collapsible and whether they are initially rendered in the editor in a collapsed state or not. Ideally, the content of the field (or an initial extract) will be visible next to the field label when the field is collapsed.
To collapse and un-collapse the field, a small caret or the field label itself can be clicked; and a keyboard equivalent with the same outcome made available.
This is similar to the automatic collapsible fields when at the top level of the model, but it would need to be more compact.
Describe alternatives you've considered
I'm not aware of any workarounds or alternatives that would provide this capability, other than custom classes and JS/TS code.
Additional context
My initial use case is within an Orderable rendered in an InlinePanel.

Thank you for the suggestion @dkirkham. I’ll add this to the agenda for our next design review. Thinking about this a bit, I suspect this could also be tackled by adding a way to collapse sections of the form, potentially including multiple fields?
One problem we’d have with doing this for individual fields is that labels are meant to be clickable to focus the corresponding fix. We decided to compromise on that for top-level fields for consistency with other sections, but I don’t feel comfortable with us making this tradeoff for arbitrary form fields.

@thibaudcolas, a way of collapsing multiple fields in one go will likely save a bit of screen real-estate. Are you suggesting there could be multiple sections of the same form that could be collapsed independently? I think this would be essential in longer forms, where grouping and ordering the fields will be important.
In a single field scenario, maybe then we'd need to have a caret next to the field label. It would give the clue that the field has been collapsed, and serve as the element to control the collapse/un-collapse action. (But maybe I'm misunderstanding you, as I'm not sure what "focus the corresponding fix" means.)

Just cross-linking to https://github.com/wagtail/wagtail/issues/10168 - while this is related to the underlying JS behaviour it's good to be aware of this.

Hi!
For reference, just picking up on this one...I believe this is how the above example of secondary links should display as a collapsible nested list (that sits as a sibling to other fields). Essentially it adds the icon alongside the list/section title and indents the children.
(prototype view here - to see it in context)

Help wanted with this? This is my pain point, too, and I think I can figure it out based on CollectionItem component implementation.


fix: [h5] double quote escape [prod env]

Related pr: #2
I forgot to test it in production mode previously.
I fixed the regular expression in this pr.

ok


Set Test timeout higher for robust performance

SegmentManagerThreadSafetyTest throwing below error because of lesser timeout time. increasing timeout value to 6000L solved the problem.
Stack Trace:
org.junit.runners.model.TestTimedOutException: test timed out after 5000 milliseconds
at sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:429)
at java.util.concurrent.FutureTask.get(FutureTask.java:191)
at org.apache.druid.server.SegmentManagerThreadSafetyTest.testLoadMultipleSegments(SegmentManagerThreadSafetyTest.java:166)

@SandishKumarHN thanks for your contribution.
I'm wondering why it took so long time. This test is supposed to finish really quickly. It took 1.255 sec in Intellij with my laptop. It took even shorter time in Travis as seen below:
Running org.apache.druid.server.SegmentManagerThreadSafetyTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.304 sec - in org.apache.druid.server.SegmentManagerThreadSafetyTest

If it took 6 seconds, I suspect something might go wrong with parallel segment loading. As I asked in the dev mailing list, would you please check there is any suspicious behavior in thread dump? I'm wondering what took so much time. If it's a sort of bug, we should fix it rather than increasing timeout.

@jihoonson I don't see anything related to any test or to this particular test SegmentManagerThreadSafetyTest, I all see is GC logging's

That sounds strange. There should be something that shows what the test threads were doing in the thread dump if you dumped while the test was running.
What SegmentManagerThreadSafetyTest does is basically creating 88 files of 15 bytes each and copying those files into another directory using 4 threads. Both directories where those files are created and copied to are under your temp directory in your local disk. So, even though future.get() is a blocking call, I'm not sure how it could take so long time unless there is a sort of bug. I bet it would take less than 1 second even if we do the same thing with a single thread.
Travis CI is one of the worst test environment which runs all unit/integration tests with limited resources for every commit, and I've never seen this error before.
So, I'm not sure this problem is somehow related to your test environment or not. Would you tell me where you ran those tests? Like CPU cores, Java heap memory, your local disk spec, the command you used to run those tests, etc.

@jihoonson  here are my system details:
Model Name: MacBook Pro
Model Identifier: MacBookPro15,1
Processor Name: Intel Core i7
Processor Speed: 2.6 GHz
Number of Processors: 1
Total Number of Cores: 6
L2 Cache (per Core): 256 KB
L3 Cache: 9 MB
Hyper-Threading Technology: Enabled
Memory: 16 GB
$ java -XX:+PrintFlagsFinal -version | grep HeapSize
uintx ErgoHeapSizeLimit                         = 0                                   {product}
uintx HeapSizePerGCThread                       = 87241520                            {product}
uintx InitialHeapSize                          := 268435456                           {product}
uintx LargePageHeapSizeThreshold                = 134217728                           {product}
uintx MaxHeapSize                              :=<PHONE_NUMBER>                          {product}
java version "1.8.0_211"
$ diskutil info disk0
Device Identifier:         disk0
Device Node:               /dev/disk0
Whole:                     Yes
Part of Whole:             disk0
Device / Media Name:       APPLE SSD AP0512M
Volume Name:               Not applicable (no file system)
Mounted:                   Not applicable (no file system)
File System:               None
Content (IOContent):       GUID_partition_scheme
OS Can Be Installed:       No
Media Type:                Generic
Protocol:                  PCI-Express
SMART Status:              Verified
Disk Size:                 500.3 GB<PHONE_NUMBER>68 Bytes) (exactly 977105064 512-Byte-Units)
Device Block Size:         4096 Bytes
Read-Only Media:           No
Read-Only Volume:          Not applicable (no file system)
Device Location:           Internal
Removable Media:           Fixed
Solid State:               Yes
Hardware AES Support:      Yes
and I'm using the mvn test command to run the test and tried even running with IntelliJ tests
I observed that segmentManager.loadSegment(segment); taking ~100 milliseconds for each segment. is that normal? if that's normal it makes sense why 5 seconds for the whole test.

Thank you for providing details of your test environment. I assume you used the default heap configurations, and if so, they look fine.

I observed that segmentManager.loadSegment(segment); taking ~100 milliseconds for each segment. is that normal? if that's normal it makes sense why 5 seconds for the whole test.

I don't think it's normal. loadSegment is a method essentially copying a file of 15 bytes from a temp directory to another one. It shouldn't take 100 ms and it actually took less than 1 ms in my laptop.
Would you please check again where it takes so much time? Also, do you see this problem happening all the time whenever you run those tests?

@jihoonson that's strange, SegmentManager.loadSegment(segment); taking ~100 milliseconds even after multiple retries. and also can you share your test code for getting time metrics for the test?

There's nothing special in my test code. I just measured time elapsed in SegmentManager.loadSegment().
  @Test(timeout = 5000L)
  public void testLoadMultipleSegments() throws IOException, ExecutionException, InterruptedException
  {
    final List<DataSegment> segments = new ArrayList<>(88);
    for (int i = 0; i < 11; i++) {
      for (int j = 0; j < 8; j++) {
        segments.add(createSegment(StringUtils.format("2019-%02d-01/2019-%02d-01", i + 1, i + 2)));
      }
    }

    final List<Future> futures = IntStream
        .range(0, 16)
        .mapToObj(i -> exec.submit(() -> {
          for (DataSegment segment : segments) {
            try {
              final long before = System.currentTimeMillis();
              segmentManager.loadSegment(segment);
              System.err.println(Thread.currentThread().getName() + ": " + (System.currentTimeMillis() - before) + " ms");
            }
            catch (SegmentLoadingException e) {
              throw new RuntimeException(e);
            }
          }
        }))
        .collect(Collectors.toList());
    for (Future future : futures) {
      future.get();
    }
    Assert.assertEquals(11, segmentPuller.numFileLoaded.size());
    Assert.assertEquals(1, segmentPuller.numFileLoaded.values().iterator().next().intValue());
    Assert.assertEquals(0, segmentLoader.getSegmentLocks().size());
  }

As I said earlier, I don't think it's normal if it takes ~100 ms to copy a single file with modern hardware. It took 0.304 sec even in Travis which runs those tests with limited resources in a virtualized container. Since it seems that this problem is reproducible only in your test environment, please check what portion takes so long time.

@jihoonson in loadSegment method out of 100ms this final Segment adapter = getAdapter(segment); is taking ~90ms, not sure why ? any clue ?
and also discovered that after the initial load of the segment by each thread, time reduces to ~1 ms, the only first time by each thread is taking ~100ms.

@jihoonson below synchronized block is taking around ~80 ms but for getSegmentFiles one thread is taking ~75ms all others are ~1ms.
synchronized (lock) {       try {         segmentFiles = getSegmentFiles(segment);       }       finally {         unlock(segment, lock);       }     }
and changed NUM_THREAD to 1 instead of 4 (default), full test time reduced to ~500ms from ~5000ms with 4 threads
Looks like getting lock is significant overhead to the methods since it requires acquiring a lock when entering the method - or at least checking whether the current thread already possesses the lock. These operations are quite expensive and they have to be done every single time one of the methods is entered. Since - due to the recursion - this happens a lot, it has an extreme impact on the program performance.

and also discovered that after the initial load of the segment by each thread, time reduces to ~1 ms, the only first time by each thread is taking ~100ms.

Yes, this is what I'm seeing here too. What's happening is SegmentLoaderLocalCacheManager.loadInLocation() takes ~ 100ms at this line only for the very first call. That is, only the thread first called this method  takes ~ 100ms and subsequent calls are waiting for the lock to be released after the first call is finished. Once this method is called, I guess some code path is cached (probably generic or code generation part) and subsequent calls are optimized to take less than 1 ms.

Looks like getting lock is significant overhead to the methods since it requires acquiring a lock when entering the method - or at least checking whether the current thread already possesses the lock. These operations are quite expensive and they have to be done every single time one of the methods is entered. Since - due to the recursion - this happens a lot, it has an extreme impact on the program performance.

This is what I'm suspecting too. Synchronization here is inevitable since we need to support parallel segment loading. So, if this is the case, we should mitigate the lock overhead somehow. However, I'm still not sure what's the root cause.

changed NUM_THREAD to 1 instead of 4 (default), full test time reduced to ~500ms from ~5000ms with 4 threads

This part sounds like all CPU cores are not being used for tests. What was the exact command you used to run those tests?

@jihoonson NUM_THREAD is a default option to the SegmentManagerThreadSafetyTest, is set to 4 threads , which is the root cause for taking a long time to run tests (Synchronization lock). My tests improved performance after changing NUM_THREAD from 4 to 1.
it will not use all CPU cores because of NUM_THREAD option. please correct me if I'm wrong.

I meant your maven command or Intellij options, not code. NUM_THREADS just means the number of threads to be used in those tests and doesn't necessarily mean the same number of CPU cores are used for them. If you're running some heavy programs which are occupying most cores, then only less number of cores might be available for tests. It's really up to your test environment.

I tested with different numbers of threads and tasks. Even with 256 threads and 1024 tasks, it took only 3.828 sec. I don't see any concurrency issue here.
I'm just merging this PR if it's not clear even to you what makes those tests slow since 6000 timeout doesn't harm.

I meant your maven command or Intellij options, not code. NUM_THREADS just means the number of threads to be used in those tests and doesn't necessarily mean the same number of CPU cores are used for them. If you're running some heavy programs which are occupying most cores, then only less number of cores might be available for tests. It's really up to your test environment.

I also believe that not all CPU cores been used for the test, I just had glanced at CPU usage while tests are running, only 10% of CPU was used.

I'm just merging this PR if it's not clear even to you what makes those tests slow since 6000 timeout doesn't harm.

Yeah, 6000 timeout, shouldn't harm anything


[HOLD for Payment 2024-09-03] [$250] Chat - Unable to deselect user using The Tab key

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: v9.0.19-0
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail: https://expensify.testrail.io/index.php?/tests/view/4847797
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Logs: https://stackoverflow.com/c/expensify/questions/4856
Issue reported by: Applause-Internal team
Action Performed:

Go to FAB > Start Chat
Using the tab key and Enter key select add to group multiple results from the contact lists
use the arrow and tab key and try to deselect the selected users

Expected Result:
Able to deselect users using tab key
Actual Result:
Unable to deselect user using The Tab key. User is navigated to 1:1 conversation
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/a96ad427-588d-4158-be18-1bfd533fd388

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~018da70c1cbe5cf980
Upwork Job ID:<PHONE_NUMBER>345036137
Last Price Increase: 2024-08-13
Automatic offers:

ZhenjaHorbach | Contributor | 103590029
Krishna2323 | Contributor | 103591698

Issue OwnerCurrent Issue Owner: @alitoshmatov

@alitoshmatov can you take a look at the proposals we have so far?

@ZhenjaHorbach thanks for handling C+ for this one!

Sounds good to me! Let's attempt to swap out all the ACCESSIBILITY_ROLE instances for ROLE, like you said - but if it's too many and hard to test, then maybe we can do it later.

I confirmed that this is live on prod! Moving to daily and handling payment.

Summarizing payment on this issue:
Contributor: @ZhenjaHorbach $250, paid via Upwork
Contributor+: @Krishna2323 $250, paid via Upwork
@ZhenjaHorbach do you think we need regression test steps here? If so, could you please leave proposed test steps?

BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

[x]  [@ZhenjaHorbach] The PR that introduced the bug has been identified. Link to the PR:

Unfortunately, I did not find a suitable PR
Plus this PR is more related to code refactoring and ACCESSIBILITY_ROLE removal

[x]  [ @ZhenjaHorbach] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:

NA

[x]  [@ZhenjaHorbach] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:

NA

[x]  [@ZhenjaHorbach] Determine if we should create a regression test for this bug.
[x]  [@ZhenjaHorbach] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.

Regression Test Proposal

Go to FAB > Start Chat
Using the tab key and Enter key select add to group multiple results from the contact lists
Use the arrow and tab key and try to deselect the selected users
Verify user can be deselected using tab key

Do we agree 👍 or 👎

@sakluger
Done !

Thanks!


ENH: Update GitHub actions

Description
This PR will update this module with recent changes made to the ITKModuleTemplate. These changes include the following.
Changes

Bump ITK version to v5.1.1 and ITK Python Package version to 5.1.1.post
Adding ITK runtime directory in PATH for Windows cxx build
Update the supported Python versions
-  New support minimum: 3.6
-  New supported maximum: 3.9
- Update setup.py to use ITK v5.1.1
Bumping package version in setup.py from 1.1.0 to 1.2.0

Closing Remarks
Once this branch is merged, a new tag v1.2.0 will need to be created.

LGTM!


feat(deps): bump jw-epub-parser from 1.36.0 to 1.37.0

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


defineProps with imported Typescript interfaces in union converts to Null type

Version
3.2.33
Reproduction link
sfc.vuejs.org/
Steps to reproduce

Use Vue 3 + setup + Typescript
Use defineProps() and set the properties via a Typescript generic
Within Props use a union of an imported Interface and another type, .i.e

import MyInterface from './MyInterface.ts';
defineProps<{someProperty: MyInterface | string}>();

What is expected?
No warning, just Vue quietly allowing to set someProperty to either an Object of type MyInterface or a String.
What is actually happening?
Warning on browser console:

Invalid prop: type check failed for prop "someProperty". Expected Null | String, got Object

Somehow Vue seems to internally convert the type of MyInterface to Null instead of an Object of type MyInterface.

Notes
This doesn't happen if you use an Interface that has been defined in the same file/component as your defineProps<>(); So this is no general problem with union'izing custom Interfaces and basic types
interface MyInterface {
  foo: string;
}
defineProps<{someProperty: MyInterface | string}>();

This doesn't happen if you just use the Interface without union; So this is no general problem with imported Interfaces
import MyInterface from './MyInterface.ts';
defineProps<{someProperty: MyInterface}>();

Only the combination of imported Interface and union is problematic.

this is not support yet.
see #4294


fix(scripts): if glog is not installed locally, build it from source.

This PR improves the build process to make building TiledCUDA more automatic. The goal is to complete the build from scratch without any manual intervention.

The current version requires a locally installed glog; otherwise, users need to install it themselves. This PR addresses this issue by building glog from source if it is not installed locally. resolve https://github.com/TiledTensor/TiledCUDA/issues/62
Enhance CMake to locate the Torch library.

LGTM overall, but I wonder if it would be a better choice to explicitly place glog in third-party as submodule? I'm not very clear on whether there are specific standards for how C++ introduces third-party libraries.

I think it's feasible if we choose to do so, as CMake is a scripting language. Similar to how gtest is currently added to dependencies as submodules without building, but glog requires building.
https://github.com/TiledTensor/TiledCUDA/blob/13e789a587c17b50e37b1822f8b6fda4b8c225a8/scripts/cmake/dependencies.cmake#L6-L8
Therefore, an additional out-of-source configuration and build process would be needed. Based on my past habits, an external project that requires configuration and building is added using ExternalProject_Add.

Therefore, an additional out-of-source configuration and build process would be needed. Based on my past habits, an external project that requires configuration and building is added using ExternalProject_Add.

Got it！


Fix makefile on WSL

Using Windows Subsystems for Linux (Ubuntu 22.14 LTS distro) I was able to build, but with several issues I had to fix:

Filepaths in Windows (such as the ones that contain Docker) can contain spaces, so I had to enclose the Docker path in quotes (would be best to do this for all filepath variables just to be safe, but I only did the one I needed)
"python" command on my distro was deprecated, had to change to python3

Commit 7dc6c72 more detailed info:
After applying fixes (mentioned in previous issues) to allow everything to run on Windows, I get an Error: No such container: charlie_luna_tutorial_1  message when running make provision_dremio after creating an admin account.
After running docker container ls to get all containers, it is confirmed that indeed, no such container exists: instead of charlie_luna_tutorial_1, the name is charlie-luna_tutorial-1.
I'm not sure if this would break other platforms (depends how filename is generated).


Fix errors reported by cppcheck

@francois-berder I haven't heard back from you. I would rather close this PR than merge it TBH. Any opinions?

No feedback for a very long time. I am going to close this


Use strong types

Using strong types should be evaluated.

performance impact, check generated assembly.
safety++.
enabler for more generic code.
maybe we could enable other interfaces than those using json.

Library to evaluate: https://github.com/rollbear/strong_type

Done, for now.


radio browser: crashes when browsing lists with several thousand radio stations

What version of Music Assistant has the issue?
2.0.0b62
The problem
When browsing the stations by country and selecting a country with thousands of stations (like Germany or America), the provider seems to crash and cause a reload of the MA frontend. I could not find anything in the logs, Websocket connection seems to crash though, which leads to the reload of the frontend I suppose.
How to reproduce
enable the radio provider, browse radio stations by country and select America or Germany
Relevant log output
No response
Additional information
No response
What version of Home Assistant Core are your running
2023.07.3
What type of installation are you running?
Home Assistant OS
On what type of hardware are you running?
Raspberry Pi

First of all I didn't knew that a country could have several thousands of radio stations...
The issue does not exist when accessing the MA frontend directly. It's a limit in the ingress implementation of HA actually where we reach a certain threshold of the data size due to the huge listing from the Radio browser items for Germany.

Will it just be a limitation then and not fixable?

Oh no, I will fix it by implementing a paged load of the items

@da-anda Fixed in b69. Thanks for the report!


Hl 552 sentry config

Description :sparkles:
According to the Sentry documentation , Sentry NextJS integration uses the Sentry CLI under the hood to tag a release and generate & send sourcemaps when Sentry.init() is run.  In the current build stage, the NEXTJS_DISABLE_SENTRY  variable is always true, possibly due to the variable being set 1 in the shared frontend Dockerfile, so the Sentry.init() is not run. This PR also adds the env variables required by the Sentry CLI.
Issues :bug:
Testing :alembic:
Start a new build with these changes to the Dockerfile and observe if Sentry is initialised when next build command is run.
Screenshots :camera_flash:
Additional notes :spiral_notepad:

Codecov Report

Merging #1804 (5a9526e) into develop (a8d126b) will decrease coverage by 10.85%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##           develop    #1804       +/-   ##
============================================
- Coverage    66.71%   55.87%   -10.85%
============================================
  Files          920      196      -724
  Lines        26585     3046    -23539
  Branches      2559      619     -1940
============================================
- Hits         17737     1702    -16035
+ Misses        8501     1261     -7240
+ Partials       347       83      -264

Impacted Files
Coverage Δ

backend/kesaseteli/common/urls.py

backend/benefit/companies/tests/test_api.py

...ndler/src/components/mainIngress/useMainIngress.ts

...pplicationActions/HandlingApplicationActions.sc.ts

backend/benefit/messages/tests/test_models.py

...d/benefit/handler/src/components/footer/Footer.tsx

...t/applications/migrations/0004_validation_fixes.py

backend/benefit/calculator/tests/test_models.py

...d/src/components/attachments/AttachmentsList.sc.ts

backend/benefit/terms/migrations/0001_initial.py

... and 878 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


[+WATCH_FULLVIDEOs!] Girlylana Viral Leaked Video On Social Media X Twitter [ZNOW25K]

25 sec ago Girlylana Leaked Video Viral On Social Media. [+WATCH_FULLVIDEOs!] Girlylana Viral Leaked Video On Social Media X Twitter [ZNOW25K]

Girlylana’s latest video has gone viral, igniting conversations across numerous social media platforms. This rising digital creator, recognized for her engaging content—particularly her recent Spiderman-themed clip—has experienced a surge of interest from fans eager to find the full version. Many are flocking to platforms like Instagram, X (formerly Twitter), and Discord to check out her latest creations.
As the buzz intensifies, fans are actively sharing their reactions online, highlighting the vital role social media plays in elevating creators like Girlylana. With her distinctive style and creative approach, she has quickly made a notable impact in the digital landscape, leaving many curious about her upcoming projects.