Grad parameters are None with bigger autograd graphs

I'm training a model that involves using multiple LoRA adapters (3 different sets of adapters to be precise). For each input (which in my case is an image) I have to pass one version through one set of LoRA parameters, another version of the image through another set of LoRA and the final version of the image through the final set of LoRA adapters. This consumes a lot of memory in the form of the autograd graph, I believe.
What is happening is that when I use the 3 sets of LoRA adapters I get errors in DeepSpeed claiming the the grad parameters are None. Here is the traceback using zero stage 3:
Traceback (most recent call last):
  File "/cfs/home/u021543/pheye_llavar_accelerate.py", line 68, in <module>
  0%|                                                                                | 0/16 [00:02<?, ?it/s]
    accelerator.backward(loss)
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/accelerate/accelerator.py", line 1958, in backward
Traceback (most recent call last):
  File "/cfs/home/u021543/pheye_llavar_accelerate.py", line 68, in <module>
    accelerator.backward(loss)
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/accelerate/accelerator.py", line 1958, in backward
    self.deepspeed_engine_wrapped.backward(loss, **kwargs)
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/accelerate/utils/deepspeed.py", line 167, in backward
    self.engine.backward(loss, **kwargs)
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/utils/nvtx.py", line 15, in wrapped_fn
    ret_val = func(*args, **kwargs)
        self.deepspeed_engine_wrapped.backward(loss, **kwargs)
         ^^^^^^^^^^  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/accelerate/utils/deepspeed.py", line 167, in backward
^^^^^^^^^^^
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/runtime/engine.py", line 1955, in backward
    self.engine.backward(loss, **kwargs)
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/utils/nvtx.py", line 15, in wrapped_fn
    ret_val = func(*args, **kwargs)
              ^^^^^^^^^^^^^^^^^^^^^
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/runtime/engine.py", line 1955, in backward
    self.optimizer.backward(loss, retain_graph=retain_graph)
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/utils/nvtx.py", line 15, in wrapped_fn
    ret_val = func(*args, **kwargs)
              ^^^^^^^^^^^^^^^^^^^^^
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/runtime/zero/stage3.py", line 2135, in backward
    self.optimizer.backward(loss, retain_graph=retain_graph)
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/utils/nvtx.py", line 15, in wrapped_fn
    ret_val = func(*args, **kwargs)
              ^^^^^^^^^^^^^^^^^^^^^
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/runtime/zero/stage3.py", line 2135, in backward
    self.loss_scaler.backward(loss.float(), retain_graph=retain_graph)
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/runtime/fp16/loss_scaler.py", line 63, in backward
    scaled_loss.backward(retain_graph=retain_graph)
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/torch/_tensor.py", line 492, in backward
    self.loss_scaler.backward(loss.float(), retain_graph=retain_graph)
    torch.autograd.backward(
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/torch/autograd/__init__.py", line 251, in backward
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/runtime/fp16/loss_scaler.py", line 63, in backward
    scaled_loss.backward(retain_graph=retain_graph)
    Variable._execution_engine.run_backward(  # Calls into the C++ engine to run the backward pass
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/utils/nvtx.py", line 15, in wrapped_fn
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/torch/_tensor.py", line 492, in backward
    ret_val = func(*args, **kwargs)
              ^^^^^^^^^^^^^^^^^^^^^
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/runtime/zero/stage3.py", line 1119, in reduce_partition_and_remove_grads
    torch.autograd.backward(
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/torch/autograd/__init__.py", line 251, in backward
    Variable._execution_engine.run_backward(  # Calls into the C++ engine to run the backward pass
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/utils/nvtx.py", line 15, in wrapped_fn
    ret_val = func(*args, **kwargs)
              ^^^^^^^^^^^^^^^^    ^self.reduce_ready_partitions_and_remove_grads(param)^
^^^
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/runtime/zero/stage3.py", line 1119, in reduce_partition_and_remove_grads
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/runtime/zero/stage3.py", line 1409, in reduce_ready_partitions_and_remove_grads
    self.reduce_ready_partitions_and_remove_grads(param)
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/runtime/zero/stage3.py", line 1409, in reduce_ready_partitions_and_remove_grads
    self.reduce_independent_p_g_buckets_and_remove_grads(param)
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/runtime/zero/stage3.py", line 1156, in reduce_independent_p_g_buckets_and_remove_grads
    self.reduce_independent_p_g_buckets_and_remove_grads(param)
self.__add_grad_to_ipg_bucket(param)
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/runtime/zero/stage3.py", line 1156, in reduce_independent_p_g_buckets_and_remove_grads
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/utils/nvtx.py", line 15, in wrapped_fn
    ret_val = func(*args, **kwargs)
              ^^^^^^^^^^^^^^^^^^^^^
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context
    return func(*args, **kwargs)
         self.__add_grad_to_ipg_bucket(param)
     ^^^^^  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/utils/nvtx.py", line 15, in wrapped_fn
^^^^^^^^^^^^^^^^
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/runtime/zero/stage3.py", line 1164, in __add_grad_to_ipg_bucket
    ret_val = func(*args, **kwargs)
              ^^^^^^^^^^^^^^^^^^^^^
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^    ^if self.contiguous_gradients and self.elements_in_ipg_bucket + param.grad.numel() <= self.reduce_bucket_size:^
^^^
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/runtime/zero/stage3.py", line 1164, in __add_grad_to_ipg_bucket
                                                                   ^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'numel'
    if self.contiguous_gradients and self.elements_in_ipg_bucket + param.grad.numel() <= self.reduce_bucket_size:
                                                                   ^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'numel'

and here is the traceback using zero stage 2:
Traceback (most recent call last):
  File "/cfs/home/u021543/pheye_llavar_accelerate.py", line 68, in <module>
  0%|                                                                                | 0/16 [00:08<?, ?it/s]
    accelerator.backward(loss)
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/accelerate/accelerator.py", line 1958, in backward
Traceback (most recent call last):
  File "/cfs/home/u021543/pheye_llavar_accelerate.py", line 68, in <module>
    accelerator.backward(loss)
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/accelerate/accelerator.py", line 1958, in backward
    self.deepspeed_engine_wrapped.backward(loss, **kwargs)
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/accelerate/utils/deepspeed.py", line 167, in backward
    self.engine.backward(loss, **kwargs)
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/utils/nvtx.py", line 15, in wrapped_fn
    ret_val = func(*args, **kwargs)
              ^^^^^^^^^^^^^^^^^^^^^
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/runtime/engine.py", line 1955, in backward
    self.deepspeed_engine_wrapped.backward(loss, **kwargs)
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/accelerate/utils/deepspeed.py", line 167, in backward
    self.optimizer.backward(loss, retain_graph=retain_graph)
    self.engine.backward(loss, **kwargs)  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/runtime/zero/stage_1_and_2.py", line 2019, in backward

  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/utils/nvtx.py", line 15, in wrapped_fn
    ret_val = func(*args, **kwargs)
              ^^^^^^^^^^^^^^^^^^^^^
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/runtime/engine.py", line 1955, in backward
    self.loss_scaler.backward(loss.float(), retain_graph=retain_graph)
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/runtime/fp16/loss_scaler.py", line 63, in backward
    scaled_loss.backward(retain_graph=retain_graph)
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/torch/_tensor.py", line 492, in backward
    self.optimizer.backward(loss, retain_graph=retain_graph)
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/runtime/zero/stage_1_and_2.py", line 2019, in backward
    self.loss_scaler.backward(loss.float(), retain_graph=retain_graph)
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/runtime/fp16/loss_scaler.py", line 63, in backward
    scaled_loss.backward(retain_graph=retain_graph)
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/torch/_tensor.py", line 492, in backward
    torch.autograd.backward(
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/torch/autograd/__init__.py", line 251, in backward
    torch.autograd.backward(
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/torch/autograd/__init__.py", line 251, in backward
    Variable._execution_engine.run_backward(  # Calls into the C++ engine to run the backward pass
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/runtime/zero/stage_1_and_2.py", line 865, in reduce_partition_and_remove_grads
    Variable._execution_engine.run_backward(  # Calls into the C++ engine to run the backward pass
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/runtime/zero/stage_1_and_2.py", line 865, in reduce_partition_and_remove_grads
    self.reduce_ready_partitions_and_remove_grads(param, i)
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/runtime/zero/stage_1_and_2.py", line 1377, in reduce_ready_partitions_and_remove_grads
    self.reduce_ready_partitions_and_remove_grads(param, i)
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/runtime/zero/stage_1_and_2.py", line 1377, in reduce_ready_partitions_and_remove_grads
    self.reduce_independent_p_g_buckets_and_remove_grads(param, i)
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/runtime/zero/stage_1_and_2.py", line 911, in reduce_independent_p_g_buckets_and_remove_grads
    self.reduce_independent_p_g_buckets_and_remove_grads(param, i)
  File "/cfs/home/u021543/miniconda3/lib/python3.11/site-packages/deepspeed/runtime/zero/stage_1_and_2.py", line 911, in reduce_independent_p_g_buckets_and_remove_grads
    new_grad_tensor.copy_(grad_reduc.view(-1))
                          ^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'view'
    new_grad_tensor.copy_(grad_reduc.view(-1))
                          ^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'view'

My problem is very similar to https://github.com/microsoft/DeepSpeed/issues/700#issue-795318541, because when using zero stage 1 I get no issue, but I really need to use stage 2.
System info

OS: openSUSE Leap 15.5
One machine with 2 NVIDIA Quadro RTX 6000 (25GB)
Python 3.11.4
deepspeed==0.12.6
torch==2.1.1

I've come to the conclusion that this is happening because my lora weights are being set the .requires_grad attribute to False, although I am not sure where or why this only happens when I add 3 sets of LoRA adapters to my model

@miguelscarv I am trying to attempt a similar pipeline as you where I have multiple adapters. Have you found a solution? Thanks!

@jdchang1 Unfortunately I haven't, what I am doing is simply using deepseed stage 0 (DDP)

@jdchang1 Unfortunately I haven't, what I am doing is simply using deepseed stage 0 (DDP)

@miguelscarv I am trying to attempt a similar pipeline as you where I have multiple adapters. Have you found a solution? Thanks!

have you guys found a solution to training multiple LoRAs? I am also doing something similar. Thanks


net core 5.0 many to many out of the box

Hello
I am using the new .net core 5 and ef core 5.0.10 many-to-many feature with sqlite.
I have a class Group that contains List User List Worker and the User and Worker class have callback List Group for the many-to-many relationship.
If i have a existing User and Worker i have to get all entities wit no tracking when getting all the entities(Group,Users,Workers) to add to the Group.Users and Group.Workers.
The problem is when i want to update the Group.Users/Group.Workers list to add new values. I get this error

I already tried with tracking no tracking.
Is there a solution for the many-to-many to work out of the box ?
I know i can create a intermediary class link add it as dbset overwrite the out of the box many-to-many relationship and update the intermediary table separate.
Thank you.

This issue is not related to the library. Please search on stack overflow with the error message.


Guides hover link

For some reason Quick start is always given a gray background, so when you hover over place-my-order.com, they both have a gray background, which looks like a bug.

Fixed in the branch css-tweaks-v2.


Calculate button doesn't work when applied to certain values

In QA, the calculate button doesn't work when applied to "-36+34" on the right or "-34+34" on the left (but does work in Staging); also introduces an error message

The bug is in mathlive -- it is saying the selection is "-34+34 \leq". The \leq shouldn't be there. I'm looking into a fix in mathlive.


sc2: Adding larva command card submenu for advanced strains

also moving pygalisks to larva
Tentative new layout:

(scourge hotkey changed locally S -> X, the rest should all be default)
The submenu is sticky, so multiple advanced morphs can be built after opening the submenu once.

I hope this opens the door to more basic morphs, and possibly some "morph the advanced unit straight from larva" upgrades, particularly for banelings (AI gets them sometimes, would get me to build them more) and Vipers (melee-style).
TODO

[ ] Update Pygalisk unlock trigger to give spawning pool and not give predator nest / merc upgrades
[ ] Investigate larva cancel smart command card; if it never works, remove it and move submenu controls to 0,4 instead of 0,3

Added the gamestrings for the submenu buttons. Note the submenu buttons are available immediately, even if no advanced morphs are unlocked.

Added a flag so the advanced morphs subtab only shows up if you have a unit in there.

Unfortunately, it greys the submenu out if you don't have the requirements for any unit in the subtab :/

Fixed the greyed-out submenu button issue.

It involved manually adding all advanced morphs to a requirement, which is unfortunate as it's an easy thing to forget if adding new advanced morphs in future. I think it's easy enough to spot and fix if we do add more, though


tests: kernel: mutex: Require 32KB of RAM for userspace test

The sys_mutex test doesn't seem to fit in 24KB of RAM anymore, so
restrict it to platforms that have 32KB or more of RAM, which seems like
a logical minimal RAM size for enabling userspace.
Signed-off-by: Carles Cufi<EMAIL_ADDRESS>

Fixes the sys_mutex failures in #18246

@galak yeah, I suspected that. I am not sure what changed that makes this fail, my other proposal was to reduce the only big RAM consumer in that test: ISR_STACK_SIZE from 2048 to 1024. But I am not sure whether this will impact other architectures.

@galak yeah, I suspected that. I am not sure what changed that makes this fail, my other proposal was to reduce the only big RAM consumer in that test: ISR_STACK_SIZE from 2048 to 1024. But I am not sure whether this will impact other architectures.

I wonder if its best to just turn CONFIG_USERSPACE off for the 2 boards that are failing or for the 2 boards set CONFIG_PRIVILEGED_STACK_SIZE=512 or something.

@galak yeah, I suspected that. I am not sure what changed that makes this fail, my other proposal was to reduce the only big RAM consumer in that test: ISR_STACK_SIZE from 2048 to 1024. But I am not sure whether this will impact other architectures.

I wonder if its best to just turn CONFIG_USERSPACE off for the 2 boards that are failing or for the 2 boards set CONFIG_PRIVILEGED_STACK_SIZE=512 or something.

I only increased the RAM requirements of the test that uses userspace. Are you sure those boards you mention actually run that test?

@galak yeah, I suspected that. I am not sure what changed that makes this fail, my other proposal was to reduce the only big RAM consumer in that test: ISR_STACK_SIZE from 2048 to 1024. But I am not sure whether this will impact other architectures.

I wonder if its best to just turn CONFIG_USERSPACE off for the 2 boards that are failing or for the 2 boards set CONFIG_PRIVILEGED_STACK_SIZE=512 or something.

The things is: we can always reduce the privilege stack size in this particular test, this will save lots of memory, because  a privilege stack area is reserved for every thread-stack of the test, including (lol) the interrupt stack.
Turning off USERSPACE for the boards, is not as nice, because there might be developers using these SOCs and in need of user mode.
The other option is what Carles did; adding a filter-out by sram. I would go for reducing PRIV_STACK_SIZE for this test, with proper commenting, and also checking that it works for all other platforms (e.g. no privilege stack overflow)

I'm not sure this is the correct fix. There are a number of board w/less than 24k of ram that build this test (for example stm32f0_disco, nucleo_l053r8, nrf51_blenano, ...)

do we really need to build those kernel tests on those boards? This is a not a board feature test, it is a kernel test that would be covered on similar HW with more more memory. If we follow this path then all our tests should never exceed 8k in size.!! We do need to be selective, the number of tests being built run without a good reason is going out of control.

The things is: we can always reduce the privilege stack size in this particular test, this will save lots of memory, because a privilege stack area is reserved for every thread-stack of the test, including (lol) the interrupt stack.
Turning off USERSPACE for the boards, is not as nice, because there might be developers using these SOCs and in need of user mode.
The other option is what Carles did; adding a filter-out by sram. I would go for reducing PRIV_STACK_SIZE for this test, with proper commenting, and also checking that it works for all other platforms (e.g. no privilege stack overflow)

Would we see priv stack overflow as a build or runtime issue?

do we really need to build those kernel tests on those boards? This is a not a board feature test, it is a kernel test that would be covered on similar HW with more more memory. If we follow this path then all our tests should never exceed 8k in size.!! We do need to be selective, the number of tests being built run without a good reason is going out of control.

I'm not against limiting things, I just dont think it makes sense that kernel tests should exclude platforms in large ways.  Since if we limit by ram than any small RAM SoCs will get excluded even if they are capable.

I'm not sure this is the correct fix. There are a number of board w/less than 24k of ram that build this test (for example stm32f0_disco, nucleo_l053r8, nrf51_blenano, ...)

do we really need to build those kernel tests on those boards? This is a not a board feature test, it is a kernel test that would be covered on similar HW with more more memory. If we follow this path then all our tests should never exceed 8k in size.!! We do need to be selective, the number of tests being built run without a good reason is going out of control.

It's a tricky question because it really is interesting and reassuring to see if those smaller boards run the kernel tests correctly. That's why I think that limiting userspace to boards with a certain amount of RAM is not that bad an idea, since userspace eats up a lot of it.

The things is: we can always reduce the privilege stack size in this particular test, this will save lots of memory, because a privilege stack area is reserved for every thread-stack of the test, including (lol) the interrupt stack.
Turning off USERSPACE for the boards, is not as nice, because there might be developers using these SOCs and in need of user mode.
The other option is what Carles did; adding a filter-out by sram. I would go for reducing PRIV_STACK_SIZE for this test, with proper commenting, and also checking that it works for all other platforms (e.g. no privilege stack overflow)

Would we see priv stack overflow as a build or runtime issue?

That's seen in runtime @galak

That's seen in runtime @galak

Than I say we limit CONFIG_PRIVILEGED_STACK_SIZE=512 to the 2 failing to build platforms as I assume someone at nordic can run the tests on those to verify to overruns.

That's seen in runtime @galak

Than I say we limit CONFIG_PRIVILEGED_STACK_SIZE=512 to the 2 failing to build platforms as I assume someone at nordic can run the tests on those to verify to overruns.

That's ugly, isn't it? I.e. limit the privilege stack size for the nRF SOCs with 24k RAM, in general? Why don't we just limit in this particular test?

That's ugly, isn't it? I.e. limit the privilege stack size for the nRF SOCs with 24k RAM, in general? Why don't we just limit in this particular test?

Up to others, I was just trying to limit the risk of this test starting to fail this late into the release cycle.

@galak it could be the MPU

That's ugly, isn't it? I.e. limit the privilege stack size for the nRF SOCs with 24k RAM, in general? Why don't we just limit in this particular test?

Up to others, I was just trying to limit the risk of this test starting to fail this late into the release cycle.

Let's check with @andrewboie regarding the privilege stack size needed for this test. I expect 512 should be enough.

Up to others, I was just trying to limit the risk of this test starting to fail this late into the release cycle.

Just tested locally that the tests passes for qemu_x86 and all qemu-ARM platforms, with PRIV_STACK_SIZE=512. And of course it builds-OK for the nrf SOCs with small ram.

@galak We just discussed this with @andrewboie, @ioannisg and @nashif, and we all align towards the idea that raising the minimum RAM to 32KB RAM is the better solution here. This test does not need to run on all platforms, but it does require creating a bunch of threads which raises the memory requirements. Playing with the privileged stack size is more dangerous and seen as a worse option here.

I think this is OK, this test creates a lot of threads.

@andrewboie confused, do you think its ok to reduce the PRIV_STACK_SIZE=512?

@galak We just discussed this with @andrewboie, @ioannisg and @nashif, and we all align towards the idea that raising the minimum RAM to 32KB RAM is the better solution here. This test does not need to run on all platforms, but it does require creating a bunch of threads which raises the memory requirements. Playing with the privileged stack size is more dangerous and seen as a worse option here.

I don't agree with the sentiment that kernel tests shouldn't run on as many platforms as possible.  I don't think this should limit RAM to 32K, but should exclude the platforms it can't build on instead.

@andrewboie confused, do you think its ok to reduce the PRIV_STACK_SIZE=512?

No I don't. I think this PR is fine as written.

@galak the test can't build because of RAM requirements, so filtering it with RAM threshold seems reasonable.
Note, also, that the test does build for the platforms you mentioned above, with the small ram, because there is an alternative test-case with USERSPACE=n, which is, effectively, what happens on platforms without an MPU

@galak the test can't build because of RAM requirements, so filtering it with RAM threshold seems reasonable.
Note, also, that the test does build for the platforms you mentioned above, with the small ram, because there is an alternative test-case with USERSPACE=n, which is, effectively, what happens on platforms without an MPU

Than it seems like the better choice would be:
diff --git a/tests/kernel/mutex/sys_mutex/testcase.yaml b/tests/kernel/mutex/sys_mutex/testcase.yaml
index 349ee2743c..460b88779a 100644
--- a/tests/kernel/mutex/sys_mutex/testcase.yaml
+++ b/tests/kernel/mutex/sys_mutex/testcase.yaml
@@ -1,6 +1,7 @@
 tests:
   sys.mutex:
     tags: kernel userspace
+    filter: CONFIG_USERSPACE

I see that just filtering on CONFIG_USERSPACE doesn't fix the issue, so doing both CONFIG_USERSPACE and min_ram: 32 works and I'm good with.
diff --git a/tests/kernel/mutex/sys_mutex/testcase.yaml b/tests/kernel/mutex/sys_mutex/testcase.yaml
index 349ee2743c..834376db5b 100644
--- a/tests/kernel/mutex/sys_mutex/testcase.yaml
+++ b/tests/kernel/mutex/sys_mutex/testcase.yaml
@@ -1,6 +1,9 @@
 tests:
   sys.mutex:
     tags: kernel userspace
+    min_ram: 32
+    filter: CONFIG_USERSPACE
+
   sys.mutex.nouser:
     tags: kernel
     extra_configs:

filter: CONFIG_USERSPACE

That won't work.
Did you mean CONFIG_ARCH_HAS_USERSPACE?

filter: CONFIG_USERSPACE

That won't work.
Did you mean CONFIG_ARCH_HAS_USERSPACE?

Right, that would work

@galak I added the explicit test filter with ARCH_HAS_USERSPACE along with the ram filtering

@galak I added the explicit test filter with ARCH_HAS_USERSPACE along with the ram filtering

should update the commit message, but otherwise LGTM.

@galak I added the explicit test filter with ARCH_HAS_USERSPACE along with the ram filtering

should update the commit message, but otherwise LGTM.

I made a try, pls, check if sthg is missing/not accurate


Execution failed for task ‘:react-native-deepar:bundleReleaseLocalLintAar’

My project is developed in React Native and We are facing issue with the creating a build with Android App, We are facing following issue while creating a release build.
Execution failed for task ‘:react-native-deepar:bundleReleaseLocalLintAar’.
Error while evaluating property ‘hasLocalAarDeps’ of task ‘:react-native-deepar:bundleReleaseLocalLintAar’
Direct local .aar file dependencies are not supported when building an AAR. The resulting AAR would be broken because the classes and Android resources from any local .aar file dependencies would not be packaged in the resulting AAR. Previous versions of the Android Gradle Plugin produce broken AARs in this case too (despite not throwing this error). The following direct local .aar file dependencies of the :react-native-deepar project caused this error: /Users/hemendu.kathiriya/Documents/NetWeb_Projects/GromSocial_React/GromSocialMobileApp/SocialNetwork/node_modules/react-native-deepar/android/libs/deepar-3.4.4.aar
Looking forward for your answer on above query.

Dear DeepAr im facing same issue


refactor(cherow): fix directive parsing

This pull request introduces 8 alerts when merging a918cd5c5d1e6c0656137a5f7d551ce77f3a7456 into 093ceff4f708752b1df1d74594c08102ac82932c - view on LGTM.com
new alerts:

8 for Unused variable

Comment posted by LGTM.com


feat: support change sessionCookieLiftTime in conf file

feat: #3210

Replaced by: https://github.com/casdoor/casdoor/commit/12d6d8e6ce634a2aae73128c30352e27e05ef7e5


preLaunchTask : looping

VSCode Version: Code 1.11.1 (d9484d12b38879b7f4cdd1150efeb2fd2c1fbf39, 2017-04-06T13:58:12.954Z)
OS Version: Windows_NT ia32 6.3.9600
Extensions:

Extension
Author
Version

mssql
ms-mssql
0.3.0

typescript-hero
rbbit
0.12.0

if preLaunchTask is configured will never stop to run the task configured.The debuuger try to start but the preLaunchTask configured it's restarted.
No matter which  task you run.

Steps to Reproduce:

set to package.json a script like
"scripts": {
"compile": "grunt build"
}
This grunt task is using grunt-copy  and grunt-ts to copy static resources and compile *.ts

set  tasks.json like
{
"version": "0.1.0",
"command": "npm",
"isShellCommand": true,
"showOutput": "always",
"suppressTaskName": true,
"echoCommand": true,
"tasks": [
{
"taskName":"compile",
"args":["run","compile"]
}
]
}

set the launch.json like
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program in DEVELOPMENT",
"preLaunchTask": "compile",
     "program": "${workspaceRoot}/dist/main.js",
     "outFiles": ["${workspaceRoot}/dist/**/*.js"],
     "args":["env=development"]
 }

]
}

Assigning to april to investigate

@marcopogo81 This scenario works for me.
Can you please provdie a bit more details. What does not seem to work?
You are not using a watching task? But the task always seems to start again and again when you try to start debugging?

Closing until more details are provided

I can reproduce this using Github DebugProtractorTypeScript

@lsantos10 thanks. Reopening and assigning to June to look into it

@lsantos10 I tried reproducing using the repository you provided and could not. The task finishes but the debug fails to start (to an unrelated reason that I do not have everything setup)
Can you let me know how did you setup the repository or can you reproduce with some other repository?


crypto/x509: parse trust settings in root_nocgo_darwin

#24652 addressed a number of issues with root_[no]cgo_darwin, but the nocgo version still resorts to shelling out to security instead of parsing the trust settings.
Ideally, we want to obtain the trust settings from security, and apply the same logic as the cgo code. (Possibly the same code, so we don't make mistakes twice.)

Let's do #32604 instead.


Rewrite xml parser

This (huge?) PR replaces the old SAX parser with a more stable implementation based on the JAVA Eclipse/Lemminx parser implementation (which is also based in the Microsoft's HTML parser).
This implementation provides much more detail about the position of every token, even if the XML is incomplete or malformed.
Also, some related classes, like XmlContext were updated and improved to benefit from the new parser.
Finally, some new tests were added and most of the ones that were still relevant adapted to cover a wide range of cases.
Closes #53

:heart:

Thanks for taking the time to review @bgruening!
I may have translated these algorithms from JAVA to Python too literally ;)

Awesome! This will give us some more freedom! :)


Feature: Add Dependabot for automatic software updates

Description
Add Dependabot workflow for automatic software updates. Depends on PR https://github.com/Roestlab/massdash/pull/138
This PR also completes the migration from setup.cfg to the .toml file. Note all of the requirements files are removed except for one which is autogenerated using pip-compile.

Contents (#139)
Other

add dependabot workflow
bugs in workflow file
Roestlab/massdash into dependabot

Uncategorised!

Merge branch 'patch/pyopenms_32_update' into dependabot
rm setup.cfg
move location of dependabot file
create requirements.txt for docs with pip-compile
bump python version
update requirements
update pyproject.toml

Main thing is I do not know if this screws up pushing to pypi

I do not think this will automatically create releases, I think it will create PR to ensure packages stay up to date. Have not been able to test it out though since it is not merged so going to merge now.


FATAL: kernel too old on openvz containers.

Ark Server Tools, worked just fine last night (installed 2 mods one of which valhalla map, and one sound mod).  But today on any command it is now spitting out fatal old kernel... I know openvz uses the old 2.6 kernels but its up to date and worked fine last night even after i installed the mods, but this morning something has changed,  Any ideas on what could of caused it?

Never mind sorry for posting, i installed other programs which was requiring different dependencies of glibc.  User error.


Get this version of deposit-cli linked in launchpad app

deposit-cli repo by EF is unmaintained.
We should get the launchpad app to link to this version.

Yes and: We need to get through audits. We have a few medium-large changes to this tool in the issue list yet. Audit kicks off in October.
After audit and when all issues raised by audit have been addressed - by code or a comment - we can then release a “generally available” version and talk to the launchpad maintainers about their appetite for listing this fork.


Add support for Priority Classes for fluentd and fluentbit

Logging is critical infrastructure, and so users may wish to ensure that
fluentd and/or fluentbit are scheduled before other workloads on nodes. This
is done through exposing PriorityClassName in the fluentd and fluentbit
CRDs.

Q
A

Bug fix?
no

New feature?
yes

API breaks?
no

Deprecations?
no

Related tickets

License
Apache 2.0

What's in this PR?

This adds support for setting priority classes for fluentd and fluentbit.
Why?

Operators may wish to ensure that they get scheduled to nodes before other workloads, and to ensure that they get priority in terms of resources
Checklist

[ ] Error handling code meets the guideline
[ ] Logging code meets the guideline (TODO)
[x] User guide and development docs updated (if needed)
[x] Related Helm chart(s) updated (if needed) (updated helm docs, no changes needed to charts)

This is a great idea. I will test it soon. Thanks @worr


⚠ Thumbnails API Endpoint has degraded performance

In 95232b6, Thumbnails API Endpoint (https://thumbnails.roblox.com/v1/assets?assetIds=82738847&format=Png&isCircular=false&size=30x30) experienced degraded performance:

HTTP code: 200
Response time: 1216 ms

Resolved: Thumbnails API Endpoint performance has improved in d0211c2.


Typo "@input_schema"→"@input_schema"

Italic with escape characters
https://docs.microsoft.com/en-us/power-bi/service-machine-learning-integration

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

Corrections confirmed. Thanks.


chat: make sure we load in appropriate data when scrolling to a message outside of our current messages

Fixes LAND-1331 (and any other case where our scrollTo message falls outside of currently loaded messages).
Previously, the scroller would just scroll to the top of what we currently have and useInfinitePosts wouldn't refetch to get messages around the message in question.
I also added a comment to another, related useEffect to make things a bit clearer.

Wasn't working for me in testing. Would also be curious to walk through it with you guys

We looked at brian's setup out of band, turns out he was having an issue with git not pulling down branches (code would not change when he changed branches).


Upgrade nextjs example to NextJS 14

This updates the example in nextjs to use Next.js v14. A few minor changes to accommodate v14:

Accessing dynamic data sources such as cookies is not permitted inside a cache scope, so the getMessages function we use for a fake DB had to be refactored to accept a cookie instead of doing the lookup inside: See https://nextjs.org/docs/app/api-reference/functions/unstable_cache
serverActions are no longer experimental and are the default so that was removed from the nextjs config file.

Once connectrpc/connect-es#1159 is merged and released, we can upgrade these examples to use the new peer deps.

Regenerated a Next.js app using v14 and all suggested defaults. Hopefully this should be adhering to v14 patterns.

Looks great! Keeping the scaffolded files up-to-date is super helpful for users setting up a project, and it gives us confidence that we're compatible.
I don't think we should use Tailwind though 😬
I didn't realize that create-next-app saved my settings (can delete them with npx create-next-app@latest --reset-preferences) and though it wasn't a default choice.
Tailwind is actually fine, but we shouldn't have Tailwind on board and then use CSS modules instead. I guess we opted for CSS modules because it's much more simple, and we don't care about CSS in our examples.
So we should either remove Tailwind, or port the styles to use Tailwind.

Removed Tailwind (and PostCSS) in favor of the previous CSS modules we've always used. Also updated the README to reflect that we opted out of Tailwind.

Nice, let's release the upstream update and get this merged.


Couple questions

One advantage of a node-embedding-based link predictor is that it's relatively easy to define item-to-item or user-to-user similarity from the embeddings (for recommender systems). Since your approach doesn't use node embeddings, is there any analogous way of defining similarity between nodes within one of the parts?

Have you tried loss functions and evaluations for ranking and implicit feedback instead of rating prediction and explicit feedback?

Hi! For the first question: IGMC does not learn node embeddings so that we can compute distance easily between node embeddings to predict links. Instead, IGMC learns an embedding for each link of interest (from its enclosing subgraph). It can be regarded as a generalization of the inner product kernel between node embeddings (like in MF) to a kernel between two nodes defined on their enclosing subgraphs realized by a GNN. This makes retrieval of top-K similar users/items not as cheap as embedding-based approaches, as we need to extract an enclosing subgraph and apply the GNN for every (target user, user) pairs. There are ways to alleviate it, including multi-stage ranking (first use simple heuristics to filter out most irrelevant users and then apply IGMC). But it is still a key challenge for scaling IGMC to super-large datasets, and needs the community to find a solution.
For the second problem: No, I haven't. But I remember there are several papers citing IGMC which extend it to ranking metrics.

Hi, thanks for the quick reply

This makes retrieval of top-K similar users/items not as cheap as embedding-based approaches, as we need to extract an enclosing subgraph and apply the GNN for every (target user, user) pairs.

IGMC is always trained with the subgraph of one-hop from a (user, item) pair though, right? Isn't one-hop from a (user, user) pair a totally different kind of subgraph (would only contain the 2 users and then all the items they interact with)? How does it apply in this case? Sorry if I'm missing something obvious

But I remember there are several papers citing IGMC which extend it to ranking metrics.

Would it happen to be "Bipartite Graph Embedding via Mutual Information Maximization"? https://arxiv.org/abs/2012.05442 I found performance comparisons in here but I'm wondering if you had another in mind

For the first one, yeah, IGMC only applies to (user, item) pairs. I was using user/item exchangably. What I meant is that from a user to retrieve top K items require extracting a subgraph around each (target user, item) pair. If we can supervise on (user, user) pairs, we can also apply IGMC to learn a user-user kernel.
For the second one, yes, "Bipartite Graph Embedding via Mutual Information Maximization" is one paper. Another one I know is "Inductive Relational Matrix Completion", https://arxiv.org/pdf/2007.04833.pdf

Makes sense. Thanks for your help!


Module filter fix

Depends on https://github.com/dimagi/commcare/pull/62
Includes menu command ID with Evaluation Context request when filtering modules

Fix for: http://manage.dimagi.com/default.asp?162644


[DROOLS-1074] fix usage of org.kie.spring.KModuleSpringMarshaller

fixed the reflective call to the method from kie-spring
(removed not needed argument)

fixed the URL/path parsing method to strip the suffix
KieModuleModelImpl.KMODULE_JAR_PATH only if the path
actually ends with it (otherwise we are incorrectly stripping
content from paths which do not end with that suffix)

Same change already on 6.4.x (https://github.com/droolsjbpm/drools/pull/680)

Merged by https://github.com/droolsjbpm/drools/commit/7d46e95ce


Create significant changes

Create significant changes

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: contributor01 sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


Removed compiler & OS garbage

Removes all MacOS, Intellij, and Maven build files, etc that generally should not be pushed to a GitHub repository.

Removes all MacOS, Intellij, and Maven build files, etc that generally should not be pushed to a GitHub repository.

correct, I speedrunned making the first version of this and was too lazy to setup gitignore


Update no-var-keyword to dissalow var in export statements (fixes #1256)

Fixes #1256
Test cases with extra whitespaces and comment added to ensure that new way to determine start of var keyword works correctly.
Also this is breaking changes and required update to mark one of previously existing test as failure (line 35).
One possible solution is to add argument "allow-in-exports" which will provide backward compatibility.

Nice, the code & tests lgtm @IllusionMH!
We've had this situation in the past (fixing a major false negative) and I think the approach has been to simply introduce the breaking change... but now that we are more mature maybe we should reconsider that. Thoughts @JKillian?

If the rule is new and has just recently been added, I'm normally okay with giving it a release or two to fix false negatives since the amount of users is low. This seems like a rule that's widely used though, so I'd be worried about the build breaks this would cause.
On the other hand, I'm not against a major release, 4.0 soon if necessary.

@JKillian sure, I'm game for a 4.0 release soon; let's make sure to hit most of the other breaking changes for that.
In the meantime, let's try to get the other open PRs into a v3.15 release.


[3.1] SOAP to REST API operations have security disabled by default

Description:
Steps to reproduce:
Try deploying a SOAP WSDL as a REST service as [1].
Check the operations under resources section and security is set to disable, and you can invoke it without a token.
Affected Product Version:
APIM 3.1
Environment details (with versions):

OS:
Client:
Env (Docker/K8s):

Optional Fields
Related Issues:

Suggested Labels:

Suggested Assignees:

This was not reproduced in the latest pack.


[4.x regression] AutoLoad scenes (not scripts) do not support implicit types

Godot version
v4.0.alpha.custom_build [19e3c7fcd]
Not reproducible in 3.4.4
System information
Arch on 5.15.41-1-lts
Issue description

Steps to reproduce

test.gd:
extends Node

var hello := "world"

scene.gd:
extends Node

func _ready() -> void:
	var x := Test.hello

test.tscn - Empty scene with test.gd, add as singleton.
scene.tscn - Empty scene with scene.gd, set as main scene.

Notice the GDScript error in scene.gd.

Minimal reproduction project
3.4.4 (no reproducible): test1.zip
4.x (reproducible): test2.zip

Still valid in e69b7083d45c5d8698508cce7086d361c4b1f44c, but this seems unreliable.
I have a method
func something() -> Vector2i
    stuff that returns vector

and I am doing
var myvector := Autoload.something()

It was ok until recently. Like, it parsed, I could run the project. Everything was perfectly fine.
But suddenly after some changes in my code this no longer works and I get the error as in the OP. I think this has something to do with some hidden cyclic reference. (although this doesn't explain why the simple MRP is broken too)

I integrated my fix into my PR #67714 about cyclic references, but it can be split if needed.

Unfortunately, something changed and my PR #67714 does not fix anymore this issue. Will work on it after.


Edit -> Settings -> SciView problems:

wrong name of the menu item (should be sciview)
does nothing at all (used to control the old inspector + REPL panel)

I would remove this item completely.

I think this is a duplicate of https://github.com/scenerygraphics/sciview/issues/284


Subcpack

Original pull request by Giampiero Gabbiani (Bitbucket: ggabbiani, GitHub: ggabbiani).

Hi Bastiaan,
now the fedora release on which the project is being packaged is automatically detected and package filenames produced accordingly.
I’ll create also PR for all the other tested Coin3D projects on which new cpack.d has been tested.
Best regards
Giampero

Original comment by Bastiaan Veelo (Bitbucket: veelo, GitHub: veelo).

Thanks!


Evan/cosmetics

Description
Add the celestia specific readme back in
Closes: #XXX

I tried to cherry-pick as much as possible, but some changes in the readme were squashed in the giant rebrand PR, so I made those manually by copying and pasting the README.md from the current master of celestia-core


Tear Detection not working properly

Tear detection not working properly. Test video:
Project CARS 2, grabbed from PS4, 1080p60, uncompressed video file:
https://1drv.ms/v/s!AkWwKG2Adtp_gbwqSGsNopFd9LSiug
Doesn't count any tears, although the video shows quite heavy tearing, doesn't change when pixel count is 0, 5 or 8. Tearing was set to 0.6.

Thanks for uploading a video. So far, trdrop can only detect "full tears", meaning the frame is "cut" into two parts. The tearing in the video you uploaded is more in a "banding" fashion in the middle of the frame. The image below shows where the tear occurs. The black bar across the frame is what's left of the previous frame. If it was a full tear, the whole top (or bottom) of the frame would be black.

We might add the detection for these kind of tears in the future. Unfortunately, we haven't really had much time to further develop trdrop in the last couple of months. Hopefully that will change during the holidays. Feel free to submit any issues you find until then :)


It´s possible use chrome of a different machine?

I want to create a service that lauch automatically the chrome of a user of my service and run some actions automatically....Can I use a executablePath with the IP of the PC that is consuming the service?
Some like this:
`let launchOptions = { headless: false,
                                        executablePath: http://<IP_ADDRESS>/google-chrome-stable };

    const browser = await puppeteer.launch(launchOptions);`

I don't believe we can support this, I'm afraid.


Outline view sorting seems to be random

Issue Type: Bug
Tested with PowerShell code
When viewing the Outline, the order of the symbols does not correspond in any way to the order they are defined in the code editor.  Variables are at the top of the code, but at the bottom of the outline.  Functions at the top of the editor are in the middle of the Outline, etc.
VS Code version: Code 1.24.0 (6a6e02cef0f2122ee1469765b704faf5d0e0d859, 2018-06-06T17:30:30.113Z)
OS version: Darwin x64 17.5.0

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-5557U CPU @ 3.10GHz (4 x 3100)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: enabledrasterization: enabledvideo_decode: enabledvideo_encode: enabledvpx_decode: enabledwebgl: enabledwebgl2: enabled

Load (avg)
3, 3, 3

Memory (System)
16.00GB (0.95GB free)

Process Argv
/Applications/Visual Studio Code.app/Contents/MacOS/Electron -psn_0_5149929

Screen Reader
no

VM
0%

Extensions (3)

Extension
Author (truncated)
Version

githistory
don
0.4.1

PowerShell
ms-
1.7.0

vscode-open-in-github
ziy
1.3.1

stable sort issue, cannot find the dupe right now...


Attaching methods / a custom JS prototype to a Record type?

I'd like to use immutable-js records for all data types in my program.  One thing I'm missing is the ability to attach methods to records, so they can be used like JS objects of a custom type.

@manuel How did you do this? By passing functions as values in the object passed to Record()? Thanks

Just setting them directly on the prototype of a newly created record IIRC.


ValueError: dependence_plot error for categorical variables with matplotlib >= 3.5.0

Bug Summary
The function dependence_plot throws a value error for interactions with categorical variables for matplotlib version 3.5.0.
The bug is caused since matplotlib.pyplot.scatter prohibits the use of the parameters norm and vmin/vmax at the same time which the dependence_plot does for categorical variables.
SHAP Version
0.40.0
Matplotlib Version
3.5.0
Python Version
Python 3.7.10
Code for Reproduction
import shap
import matplotlib.pyplot as plt
import numpy as np

n_points = 100

# create two float and one binary feature
X = np.concatenate([np.random.rand(n_points,2), np.random.randn(n_points,1)>0], axis=1)
shap_values = np.random.randn(*X.shape)

# features 0 and 1 are both floats
print("numerical / numerical interaction:")
shap.dependence_plot(0,shap_values,X, interaction_index=1)

# feature 2 is binary
print("numerical / binary interaction:")
shap.dependence_plot(0,shap_values,X, interaction_index=2)

Outcome
numerical / numerical interaction:

numerical / binary interaction:
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-44-ec650db72f40> in <module>
      8 shap.dependence_plot(0,shap_values,X, interaction_index=1)
      9 print("numerical / binary interaction")
---> 10 shap.dependence_plot(0,shap_values,X, interaction_index=2)

/opt/conda/lib/python3.7/site-packages/shap/plots/dependence.py in dependence_plot(ind, shap_values, features, feature_names, display_features, interaction_index, color, axis_color, cmap, dot_size, x_jitter, alpha, title, xmin, xmax, ax, show)

/opt/conda/lib/python3.7/site-packages/matplotlib/__init__.py in inner(ax, data, *args, **kwargs)
   1410     def inner(ax, *args, data=None, **kwargs):
   1411         if data is None:
-> 1412             return func(ax, *map(sanitize_sequence, args), **kwargs)
   1413
   1414         bound = new_sig.bind(ax, *args, **kwargs)

/opt/conda/lib/python3.7/site-packages/matplotlib/axes/_axes.py in scatter(self, x, y, s, c, marker, cmap, norm, vmin, vmax, alpha, linewidths, edgecolors, plotnonfinite, **kwargs)
   4426             collection.set_cmap(cmap)
   4427             collection.set_norm(norm)
-> 4428             collection._scale_norm(norm, vmin, vmax)
   4429
   4430         # Classic mode only:

/opt/conda/lib/python3.7/site-packages/matplotlib/cm.py in _scale_norm(self, norm, vmin, vmax)
    379             if norm is not None:
    380                 raise ValueError(
--> 381                     "Passing parameters norm and vmin/vmax simultaneously is "
    382                     "not supported. Please pass vmin/vmax directly to the "
    383                     "norm when creating it.")

ValueError: Passing parameters norm and vmin/vmax simultaneously is not supported. Please pass vmin/vmax directly to the norm when creating it.

+1, any updates on this ?

+1, same issue.

+1
this has something to do with the parameter interaction_index which is set to "auto" by default. If interaction_index is set to some featurename it works.

+1, same issue.

The change in matplotlib causing the failure is described here (5th bullet point).

downgrading matplotlib to 3.2.2 worked for me as a temporary solution

Same, thanks for the advice

For me 3.4.0 already solved the issue

+1 I have the same issue, any updates for now?

+1
I am having the same issue. Everything above 3.3.0 fails. Check the following release https://matplotlib.org/3.3.0/api/api_changes.html
Parameters norm and vmin/vmax should not be used simultaneously (link)
Passing parameters norm and vmin/vmax simultaneously to functions using colormapping such as scatter() and imshow() is deprecated. Inestead of norm=LogNorm(), vmin=min_val, vmax=max_val pass norm=LogNorm(min_val, max_val). vmin and vmax should only be used without setting norm.
I would like to see an update on this

+1 for having the same issue. Downgrading helped temporarily but results in a warning.
For some reason, the labels for the interaction_index are not always displayed (this is not reproducible...). Might be related to @mariusgarbowski's comment.
Without downgrading matplotlib, the result from shap.plots.scatter() is very similar to the shap.dependence_plot() (dependence_legacy -> dependence_plot) but has no problems with matplotlib 3.5.1. Does anyone know how they exactly differ?

+1 for the same issue.
I made a workaround below that sort of imitates the dependence plots...
shap_val_df = pd.DataFrame(shap_values[1], index=X.index, columns=X.columns)
shap_val_df['target'] = y
custom color map tool to kinda match
from matplotlib.colors import LinearSegmentedColormap
colors = [(0, 0.5, 1), (1, 1, 1), (1, 0.2, 0.2)] #Bluish->White->Salmony
cmap_name = 'BlWhSm'
cm = LinearSegmentedColormap.from_list(cmap_name, colors, N=500)
plt.register_cmap(cmap=cm)
for ci in shap_val_df.columns:
fig, ax=plt.subplots(1,1,figsize=(12,6))
scatter = ax.scatter(x=X[ci],
y=shap_val_df[ci],
c=shap_val_df.target,
cmap='BlWhSm', alpha=0.6, marker='o', s=5);
ax.axhline(0, c='k', alpha=0.3)
ax.axvline(0, c='k', alpha=0.3)
ax.legend(*scatter.legend_elements())
ax.set_ylabel(f"SHAP VALUE - {ci}", fontsize=12)
ax.set_xlabel(f"{ci}", fontsize=12);

Hello, +1 same problem for me

It looks like this issue was fixed by this commit on Mar 22, 2022. It is not yet part of release (as of 0.40.0). If necessary - just repeat this edit ( remove vmin=clow, vmax=chigh,).

Same issue.
Only workable solution was downgrading to matplotlib==3.2.1, which in and of itself was a dependency hell!

If adding norm = None , it will temporarily work.

I got the error with SHAP 0.40.0 but it was fixed by upgrading to 0.41.0. Using matplotlib 3.5.2

I got the error with SHAP 0.40.0 but it was fixed by upgrading to 0.41.0. Using matplotlib 3.5.2

thanks for your share! I make it by taking your advice!

Closing as I believe this is issue was fixed in release 0.41.0. I cannot reproduce the error on the master branch.


Typo in allow-privileged will cause units to error

juju config kubernetes-worker allow-privileged=True will endup enabling privileged containers through:
'snap' 'set' 'kubelet' 'client-ca-file=/root/cdk/ca.crt' 'network-plugin=cni' 'kubeconfig=/root/cdk/kubeconfig' 'tls-private-key-file=/root/cdk/server.key' 'address=<IP_ADDRESS>' 'anonymous-auth=false' 'v=0' 'require-kubeconfig=true' 'tls-cert-file=/root/cdk/server.crt' 'cluster-dns=<IP_ADDRESS>' 'port=10250' 'allow-privileged=false' 'allow-privileged=True' 'cluster-domain=cluster.local' 'logtostderr=true'
error: cannot perform the following tasks:

Run configure hook of "kubelet" snap (run hook "configure": Invalid value for allow-privileged: True, expected true or false)

We should normalize the parameters and, with this field, do some fuzzy
matching
On Wed, Jan 31, 2018 at 7:08 AM Konstantinos Tsakalozos <
<EMAIL_ADDRESS>wrote:

Just tested this. juju config kubernetes-worker allow-privileged=True
will not fail but kubelet will not switch to allow-privileged.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/juju-solutions/bundle-canonical-kubernetes/issues/374#issuecomment-361913476,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAET1TaYwlWTkHrojhFkwVERsCq7jh_Zks5tQFeigaJpZM4OvYiK
.


Custom UserProvider extended NoDatabaseUserProvider

Laravel Version: 5.6
Adldap2-Laravel Version: ^4.0
PHP Version: 7.1
LDAP Type: ActiveDirectory

Description:
Hello! :)
I'm trying to create my own provider that extends NoDatabaseUserProvider.
But I can't because of this line:
https://github.com/Adldap2/Adldap2-Laravel/blob/cc16fafdee3269b2395e77cdfd243a878525984d/src/Resolvers/UserResolver.php#L74
which is testing the class selected by string comparison.
So my provider even if it extend NoDatabaseUserProvider, is treated as DatabaseUserProvider.
Is it possible to replace that comparison by something using "instanceof" ?
Like in this class:
https://github.com/Adldap2/Adldap2-Laravel/blob/68deabaf054be519e8a4fd38ce701c6d76fc9964/src/Middleware/WindowsAuthenticate.php#L77
That would be very usefull :)
Regards,
Antoine

Hi @TwanoO67, thanks for bringing this up! Going to label this as a bug. I definitely want developers to be able to extend the providers.
Going to fix this tonight! :smile:

Fixed in v4.0.8.
Thanks!

Hi @stevebauman,
I believe, I have the same but opposite problem as @TwanoO67 above.
I'm trying to override DatabaseServiceProvider:: validateCredentials() by extending it.
However there is a check here AdldapAuthServiceProvider  for if ($provider == DatabaseUserProvider::class) { which doesn't evaluate to true if extending  DatabaseUserProvider.
Perhaps there is another recommended approach to extending that user provider?
Background:
Using Doctrine instead of Eloquent, and need to map the Adldap model values to specific Doctrine User entities, but otherwise want to take advantage of all the code your got for importing and syncing users.

Hi @hartleypool,
I think that using instanceof everywhere instead of comparing class should fix your issue.
Furthermore,I dont know if it can help you with your problem, but there is some option in the original adldap package to specify the User model you want. So you don't need to override the user provider to change model class.
I hope that it will help :)

@TwanoO67 Thanks. Yes, I had already changed the config provider.users.model to point to my Doctrine User model, but the difference between the Eloquent and Doctrine user model meant that it doesn't work 'out of the box' due to how the DatabaseUserProvider makes pretty Eloquent-specific calls.
It turned out to be fairly straightforward, so in case someone else comes across this. I'll document what worked below for creating a provider that overrides/extends DatabaseUserProvider:
In config/auth.php:
Set the model to point to the non-Eloquent User model (in my case, Doctrine):
'providers' => [
        'users' => [
            'driver' => 'adldap',
            'model' => App\Model\ORM\User::class,
        ],

Make custom Provider :
php artisan make:provider DoctrineDatabaseUserProvider
In config/adldap_auth.php:
Set provider that Adldap uses to the new provider:
'provider' => App\Providers\DoctrineDatabaseUserProvider::class,
Edit new DoctrineDatabaseUserProvider.php
For my case I needed to override the following methods:

validateCredentials() to change how a Doctrine User was called
retrieveById() to use Doctrine EntityManager to find a user by ID
updateRememberToken() to use Doctrine EntityManager to update the token

<?php

namespace App\Providers;

use Adldap\Models\User;
use Adldap\Laravel\Auth\Provider;
use Adldap\Laravel\Auth\DatabaseUserProvider;
use Adldap\Laravel\Facades\Resolver;
use Adldap\Laravel\Commands\Import;
use Adldap\Laravel\Commands\SyncPassword;
use Adldap\Laravel\Events\Imported;
use Adldap\Laravel\Events\AuthenticationRejected;
use Adldap\Laravel\Events\AuthenticationSuccessful;
use Adldap\Laravel\Events\DiscoveredWithCredentials;
use Adldap\Laravel\Events\AuthenticatedWithCredentials;
use Illuminate\Support\Facades\Bus;
use Illuminate\Support\Facades\Event;
use Illuminate\Support\Facades\Config;
use Illuminate\Auth\EloquentUserProvider;
use Illuminate\Contracts\Hashing\Hasher;
use Illuminate\Contracts\Auth\UserProvider;
use Illuminate\Contracts\Auth\Authenticatable;
use Hash;
use DateTime;
use EntityManager;

/**
 * Provider replaces Adldap\Laravel\Auth\DatabaseUserProvider by supporting
 * Doctrine User Model in place of expected Eloquent User Model.
 *
 */
class DoctrineDatabaseUserProvider extends DatabaseUserProvider
{

    /**
     * The Doctrine user model.
     *
     * @var string
     */
    protected $model;

    /**
     * The currently authenticated LDAP user.
     *
     * @var User|null
     */
    protected $user;

    /**
     * Constructor.
     *
     */
    public function __construct()
    {
        $this->model = array_get(config('auth'), 'providers.users.model');
    }

    /**
     * {@inheritdoc}
     */
    public function validateCredentials(Authenticatable $model, array $credentials)
    {
        if ($this->user instanceof User) {
            // If an LDAP user was discovered, we can go
            // ahead and try to authenticate them.
            if (Resolver::authenticate($this->user, $credentials)) {
                Event::fire(new AuthenticatedWithCredentials($this->user, $model));

                // Here we will perform authorization on the LDAP user. If all
                // validation rules pass, we will allow the authentication
                // attempt. Otherwise, it is automatically rejected.
                if ($this->passesValidation($this->user, $model)) {
                    // Here we can now synchronize / set the users password since
                    // they have successfully passed authentication
                    // and our validation rules.
                    Bus::dispatch(new SyncPassword($model, $credentials));

                    // map to local user and save
                    $this->model = $this->saveLocalUser();

                    if ($this->localUserCreated($model->getCreatedOn())) {
                        // If the model was recently created, they
                        // have been imported successfully.
                        Event::fire(new Imported($this->user, $this->model));
                    }

                    Event::fire(new AuthenticationSuccessful($this->user, $model));

                    return true;
                }

                Event::fire(new AuthenticationRejected($this->user, $model));
            }

            // LDAP Authentication failed.
            return false;
        }

        if ($this->isFallingBack() && $model->exists) {
            // If the user exists in our local database already and fallback is
            // enabled, we'll perform standard eloquent authentication.
            return $this->fallback->validateCredentials($model, $credentials);
        }

        return false;
    }

    /**
     * {@inheritdoc}
     *
     */
    public function retrieveById($identifier)
    {
        return EntityManager::getRepository(\App\Model\ORM\User::class)->findOneBy(['id' => (int) $identifier ]);
    }

    /**
     * Update the "remember me" token for the given user in storage.
     *
     * @param Authenticatable $user
     * @param string          $token
     *
     * @return void
     */
    public function updateRememberToken(Authenticatable $user, $token)
    {
        $user->setRememberToken($token);
        EntityManager::persist($user);
        EntityManager::flush();
    }

    /**
     * Checks if an LDAP user has already received a local account
     * and if not creates the new local application User record.
     *
     * @return App\Model\ORM\User
     */
    protected function saveLocalUser() {
        $user = EntityManager::getRepository(\App\Model\ORM\User::class)->findOneBy(['username' => $this->user->getAttribute('userprincipalname')]);
        if (empty($user)) {
            $user = new \App\Model\ORM\User();
            $user = $user->createLdapUser($this->user);
        }
        // change random password on each login
        $user->setPassword(Hash::make(bin2hex(random_bytes(20))));
        EntityManager::persist($user);
        EntityManager::flush();

        return $user;
    }

    /**
     * Returns true if the local User record was just created
     * in the last 30 seconds.
     *
     * @param DateTime $createdDate
     * @return boolean
     */
    protected function localUserCreated (DateTime $createdDate) {
        $interval = abs(time() - $createdDate->getTimestamp());
        return ($interval < 10);
    }
}


Dropdown elements have different font sizes for no reason

Hi,
Please check this -> http://quemfazsite.com.br/temp/criar-site-erro.php
I have 2 dropdowns, one using a more "stylish" approach and another using the plain and simple <select> element. You can see that the element on the right (that uses the select) has a different font-size and a different line-height. Is there any way to overcome this?
I know I could use the element on the left and replicate it many times as I want instead of using the element in the right! BUT I have a problem: my company is developing an enterprise level system administration and in one single page it has 70 selects! Yeap! Using the approach in the left makes the final outputed HTML really big (at least 3x!), so I really would like to use the select approach. Of course, you could tell me to use only the select approach BUT in some cases I really need a searcheable dropdown (exactly the one in the left).
As far as I know I am using the ui action input parent (as you already taught me before) and I am using the same size big in both elements.

Hi @batata004, try removing .big from both dropdowns and adding it to .ui.action.input instead. Does it solve the issue?

WOW WOW WOW!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! WORKED! http://quemfazsite.com.br/temp/criar-site-erro1.php
I have no idea why this works cause docs says clearly the size must be added to the element itself, not to the parent! My friend, I've figthing this for a long time , sometimes I even have to use line-height to make elements with equal size! Now I think you got it right in the bull's eye! I need to set the size to the parent of the elements!!!
Do you have any link where I can read the need to use .ui.input.action and why shouldnt I set sizes in the element's themselves?
Sorry for bringing this usage question again, but before I come here take your time I always search a lot and try to make it work to avoid spending other's people time

@batata004 It’s just something you need to remember when working with .ui.action.input, it sets the sizes for all of its child elements, so you don’t need to do it for every single child element inside of it. I don’t think the documentation mentions it, but I’m also not sure where we can put it—I’ll go through the docs tomorrow to see where it can be mentioned.

Hi my friend, thanks again. Here is the docs:

If has multiple buttons and each one has a size given in its own tag. Sincerally, this is the only place where I can find anything talking only about size.
I will remember what you said, I promise! I will not bring up this kind of problem anymore! But it would be nice to know why I should use ".ui.action.input". Will I always have to use that when I have buttons/inputs/selects... side by side and I want them to have the same size? Even if I have only 2 elements, will I have to give a common parent to those 2 elements and assign it .ui.action.input?

If I am not abusing your patience, I followed your instructions and indeed, if I give the size to the parent element it works perfectly! But for some reason buttons that have icons they are not increasing the size of the icon. Please take a brief example here -> https://www.frasesparavida.com.br/

Please see the blue arrow pointing to the search icon. It's very small, why this icon didnt grow up as the font of the other 2 elements grew?

@batata004 Yes. .ui.action.input is just a convenient container that not only sets the sizes, but also fixes borders and margins to allow the components to exist as a single thing. Without it, you’d have to write a custom replacement, which you can do as well.
The button issue is actually a problem, good catch. I won’t be labeling and reopening the issue—I was planning to work on SUI tomorrow anyway, so I’ll just bookmark the thread and open a PR then; the fix should be pretty straightforward.

Thanks @Banandrew  you were crystal clear! I will follow your advices and I am pretty sure now I will have a much better relationship with SU library! So far I've been fighting against it to set margins, sizes, font-sizes correctly but you made it very clear: set the size togetter with the container and not in the elements individually!
Have a nice weekend my friend and I hope you are not in the path of the hurricane, if so I wish you best luck!

Fixed since Fomantic-UI 2.5. Actually  SUI misses font sizes for dropdown, that is the main cause of this issue
See https://jsfiddle.net/bdv5q3r9/


swc-node doesn't work with latest node version

It seems like swc-node broke after node 20.5.1?
To reproduce, execute this:
nvm install 20.9.0
nvm use 20.9.0
mkdir swc-node-test
cd swc-node-test
echo "{}" > package.json
touch yarn.lock
yarn set version berry
echo 'console.log("Hello world")' > index.ts
yarn add @swc-node/register @swc/core typescript
yarn node --loader @swc-node/register/esm index.ts

You should see the following output:
node:internal/process/esm_loader:40
      internalBinding('errors').triggerUncaughtException(
                                ^
TypeError [ERR_INVALID_RETURN_PROPERTY_VALUE]: Expected array buffer, or typed array to be returned for the "source" from the "transformSource" function but got undefined.
    at new NodeError (node:internal/errors:406:5)
    at assertBufferSource (node:internal/modules/esm/translators:84:9)
    at stringify (node:internal/modules/esm/translators:94:3)
    at createCJSModuleWrap (node:internal/modules/esm/translators:219:12)
    at ModuleLoader.commonjsStrategy (node:internal/modules/esm/translators:297:10) {
  code: 'ERR_INVALID_RETURN_PROPERTY_VALUE'
}

Node.js v20.9.0

Edit: same thing happens with node v21.1.0

Ok I looked into this a bit and it seems that what happens is:

readFileSync is imported from fs here https://github.com/nodejs/node/blob/main/lib/internal/modules/esm/translators.js#L35 but for some reason this is before yarn pnp has patched the fs module
Reading the file contents here fails but node chooses to proceed anyway
Node runs into some error in an assert

See in this screenshot where pnp isn't in the stack trace when calling the readFileSync function available in the scope and it fails, while require("fs").readFileSync succeeds

For comparison, here's the correctly patched fs module's stack trace

In conclusion this seems to be an issue with yarn.

swc-node now works with node 21.2.0 without a problem, after updating to yarn 4.0.2 (thanks to https://github.com/yarnpkg/berry/pull/5961)


Required library at /natives/darwin/libudpqueue.dylib was not found

Happens on a fresh installation of Lavalink (build 759) and macOS 10.13.6 running Java 11 (AdoptOpenJDK with openj9)
Error in console when attempting to play music:
https://hastebin.com/tacofexace

You have to manually insert in the .jar file th directory natives/darwin which must contain this file. Or at least that's how I solved it.

Hm, I'll try that, but I remember it used to work fine on a mac, and now it suddenly isn't included anymore?

Hm, I'll try that, but I remember it used to work fine on a mac, and now it suddenly isn't included anymore?

@chaNcharge Here's a repacked JAR that should work on macOS, from Lavalink build 759.
https://www.dropbox.com/s/gkcrahoik8if3tx/Lavalink759-macOS.jar?dl=1

This is useful, thanks! Any chance it will get re-added into the main builds on the CI server?

If you encounter 403 errors while trying to play tracks, a newer Mac jar is available at https://github.com/Cog-Creators/Lavalink-Jars/releases/tag/<IP_ADDRESS>_796 that includes Lavaplayer 1.3.17. The 759 build linked here uses 1.3.10 and 403's can be a common issue with that version now.

with v3.5.0 lavalink added support for arm.


Adds sticky nav

Pull Request

Fixes #88

Proposed Changes

Added appropriate styles to nav bar to remain sticky
Adds margin-top for content area to reserve room for sticky nav

Types of changes made

[ ] Fixed Bug
[X] Added new Features
[ ] Edited Documentations
[ ] Enhanced the working of code
[ ] Additional Changes
Mention any Additional Change here

Checklist:

[X] My code follows the Mentioned Guidelines for the project
[X] I have self-reviewed the changes made
[X] I have made the changes easy to understand by adding comments
[X] My changes does not generate new warnings/errors
[ ] I have attached relevant screenshots to display the changes made
[ ] I have made the required changes to the documentations

Hey @caseymhunt this issue was originally assigned to @Priyansh-09 can you please take up issue #40 since it is open for everybody if still interested? Thank you! :tada:


Filesystem module shows "not mounted"

`[module/filesystem2]
type = internal/fs
spacing = 2
fixed-value = true
interval = 30
mount-0 = /home/smee
format-mounted =
label-mounted = "%mountpoint%" %used% of %total%`
This is the module that doesn't display anything, and says "/home/smee is not mounted."
And that's not possible, as that's my home folder, which has to be mounted for me to operate my computer, isn't it?
Plus, another module which displays disk usage of / correctly displays it, it's working fine, which has the same configu, just instead of mount-0 = /home/smee its mount-0 = /.
And when I check the logs, by doing
cat /tmp/polybar2.log
it displays error message
polybar|warn:  module/filesystem2: Mountpoint /home/smee is not mounted
Also, I tried it with just /home, which didn't work either, just displayed the same message.
So,what do I do/what am I doing wrong?

Is your /home/smee folder its own partition? The fs module can only display information about mountpoints not arbitrary folders.

Oh. I didn't know that.
After dong so, it works perfectly fine.
Thanks for helping out such a noob like me!


feat(storage-resize-images) Updated to Firebase Admin v10

Updating storage-resize-images to use firebase-admin v10.
I published this as<EMAIL_ADDRESS>and verified most of the basic functionality by deploying on a test project and resizing some images. I confirmed the following situations work as intended:

All 3 options for 'delete original image'
Using a storage bucket other than the default
With and without a path for resized images

Codecov Report

Merging #935 (005c074) into next (1a72ebb) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head 005c074 differs from pull request most recent head 018057d.


Can't invoque remote skill

Describe the bug
I have a project with multiple skills, everything works when I invoke the skills locally, but when I deploy the skills and I try to invoke the remote skill I get the following error:
Error invoking the skill id: "<APP ID from the Bot Channel registration resource>" at "https://contactskilldev.azurewebsites.net/api/messages" (status is 401).
I followed the steps in https://docs.microsoft.com/en-us/composer/how-to-export-a-skill and https://docs.microsoft.com/en-us/composer/how-to-connect-to-a-skill and also set allowedCallers to "*" on the skill configuration settings.
This is how one of the skill manifests looks like:
{   "$schema": "https://schemas.botframework.com/schemas/skills/skill-manifest-2.0.0.json",   "$id": "ContactDetailsSkill-7561f7ff-d796-4774-a5ee-a2fe432cbbf4",   "endpoints": [     {       "protocol": "BotFrameworkV3",       "name": "ContactManifest1",       "description": "Contact Skill",       "msAppId": "<APP ID from the Bot Channel registration resource>",       "endpointUrl": "https://contactskilldev.azurewebsites.net/api/messages"     }   ],   "name": "ContactDetailsSkillRemote",   "version": "1.0",   "publisherName": "CSCBot",   "activities": {     "ContactDetailsSkill": {       "type": "event",       "name": "ContactDetailsSkill"     },     "GetContactDetailsDialog": {       "type": "event",       "name": "GetContactDetailsDialog"     },     "conversationUpdate": {       "type": "conversationUpdate"     }   } }
Version
1.3.0
Browser

[X] Electron distribution
[ ] Chrome
[ ] Safari
[ ] Firefox
[ ] Edge

OS

[X] macOS
[ ] Windows
[ ] Ubuntu

Expected behavior
I expect to be able to invoke remote skills
Additional context

@pedro-ramirez-suarez The allowedCallers validation is done both on the skill side and the Root Bot (consumer bot) side. Could you try adding the MsAppId of the remote skill in the allowedCallers list of the consumer bot too?
One more place an error can happen while consuming a remote skill is "Skill Host Endpoint" setting of the Root Bot needs to updated with a tunnel url that the skill can communicate back to the bot.

@pedro-ramirez-suarez The allowedCallers validation is done both on the skill side and the Root Bot (consumer bot) side. Could you try adding the MsAppId of the remote skill in the allowedCallers list of the consumer bot too?
One more place an error can happen while consuming a remote skill is "Skill Host Endpoint" setting of the Root Bot needs to updated with a tunnel url that the skill can communicate back to the bot.

Hi @srinaath  thanks for the guidance, that helped; to make it work I had to remove the "" entry everywhere and have only the MSAppIds of the skills that I want to allow, having the "" in the array throws a 500 error when the skill is invoked.
Unfortunately now I am getting a new error. The skill is now being invoked and executed, but when the skills ends and the conversation should  return to the  root/consumer bot I am getting the following error:
An attempt was made to access a socket in a way forbidden by its access permissions.
Do you have any idea of what could be happening?

Hi @srinaath  thanks for the guidance, that helped; to make it work I had to remove the "" entry everywhere and have only the MSAppIds of the skills that I want to allow, having the "" in the array throws a 500 error when the skill is invoked.
Unfortunately now I am getting a new error. The skill is now being invoked and executed, but when the skills ends and the conversation should  return to the  root/consumer bot I am getting the following error:
An attempt was made to access a socket in a way forbidden by its access permissions.
Do you have any idea of what could be happening?

@pedro-ramirez-suarez I haven't seen that issue before. The same skill when you run locally works fine but when you run it from azure you get this error correct?
First thing to check probably is skillHostEndpoint setting is correctly set to the {ngrokUrl}/api/skills. The ngrok url of course is pointing to port in which the root bot is running.
Can you check http://<IP_ADDRESS>:4040/inspect/http to see the requests (if your ngrok tunnel is running on port 4040). Do you see the skill call back {ngrokUrl}/api/skills url?
@dmvtech

@pedro-ramirez-suarez I haven't seen that issue before. The same skill when you run locally works fine but when you run it from azure you get this error correct?
First thing to check probably is skillHostEndpoint setting is correctly set to the {ngrokUrl}/api/skills. The ngrok url of course is pointing to port in which the root bot is running.
Can you check http://<IP_ADDRESS>:4040/inspect/http to see the requests (if your ngrok tunnel is running on port 4040). Do you see the skill call back {ngrokUrl}/api/skills url?
@dmvtech

Hi @srinaath ,
All the bots are part of the same project, when I run and the skills and the bot locally everything works, when I publish the skills and I try to connect to any the remote skills if throws the same error, no matter if the main bot runs locally or on Azure.
The Skills endpoint of the main bot is setup correctly as mentioned on https://docs.microsoft.com/en-us/composer/how-to-connect-to-a-skill#set-configurations-in-a-consumer-bot, I can see requests on ngrok.
If I have everything running on azure, do I need to add any special permissions or open any specific ports?

Hi @srinaath ,
All the bots are part of the same project, when I run and the skills and the bot locally everything works, when I publish the skills and I try to connect to any the remote skills if throws the same error, no matter if the main bot runs locally or on Azure.
The Skills endpoint of the main bot is setup correctly as mentioned on https://docs.microsoft.com/en-us/composer/how-to-connect-to-a-skill#set-configurations-in-a-consumer-bot, I can see requests on ngrok.
If I have everything running on azure, do I need to add any special permissions or open any specific ports?

Nope. There are no special permissions to set up since all the calls to skills work and the skill logic works. It just fails when the skill logic ends and control shifts back to the root bot right? Was skills call made inside the Greeting trigger or inside a loop by any chance?

Nope. There are no special permissions to set up since all the calls to skills work and the skill logic works. It just fails when the skill logic ends and control shifts back to the root bot right? Was skills call made inside the Greeting trigger or inside a loop by any chance?

@luhan2017 Have you encountered a bug like the above when calling skills?

@luhan2017 Have you encountered a bug like the above when calling skills?

Hi @srinaath, let me clarify a little bit more,
All the bots are part of the same project, when I run the skills and the bot locally everything works fine; when I publish the skills and I try to connect to any of the remote skills from my local bot I get a 500 error; If run everything on azure I get An attempt was made to access a socket in a way forbidden by its access permissions. after the skill has been invoked and finishes it's execution.
About running the bot locally, the Skills' endpoint of the main bot is setup correctly as mentioned on https://docs.microsoft.com/en-us/composer/how-to-connect-to-a-skill#set-configurations-in-a-consumer-bot
I can see requests on ngrok but I get the following:
/api/skill/v3/conversations/1be3fa73-2b18-4ac5-ad7f-f1652b087e0c-c302 404 Not Found And on the emulator I get a 500 error.

Hi @srinaath, let me clarify a little bit more,
All the bots are part of the same project, when I run the skills and the bot locally everything works fine; when I publish the skills and I try to connect to any of the remote skills from my local bot I get a 500 error; If run everything on azure I get An attempt was made to access a socket in a way forbidden by its access permissions. after the skill has been invoked and finishes it's execution.
About running the bot locally, the Skills' endpoint of the main bot is setup correctly as mentioned on https://docs.microsoft.com/en-us/composer/how-to-connect-to-a-skill#set-configurations-in-a-consumer-bot
I can see requests on ngrok but I get the following:
/api/skill/v3/conversations/1be3fa73-2b18-4ac5-ad7f-f1652b087e0c-c302 404 Not Found And on the emulator I get a 500 error.

Nope. There are no special permissions to set up since all the calls to skills work and the skill logic works. It just fails when the skill logic ends and control shifts back to the root bot right? Was skills call made inside the Greeting trigger or inside a loop by any chance?

Yes, it fails when shift backs to the main bot; The main bot invokes the skill after presenting a menu (HeroCard) to the user, depending on the selection a particular skill is invoked, the skills ask for some user input and execute an api call, then it returns a response to the main bot and the main bot performs additional actions depending on the skills' response, this does not occur inside a loop.
Inside the skill we have a few dialogs, the entry point dialog starts on both the greeting and inside an unknown intent that we have at the same level of the greeting; we did this because we found that when the skill is invoked from an external bot, the unknown intent is the one that starts our entry point dialog, but if we interact with the skill directly from the emulator, the greeting is the one that starts the entry point.

Nope. There are no special permissions to set up since all the calls to skills work and the skill logic works. It just fails when the skill logic ends and control shifts back to the root bot right? Was skills call made inside the Greeting trigger or inside a loop by any chance?

Yes, it fails when shift backs to the main bot; The main bot invokes the skill after presenting a menu (HeroCard) to the user, depending on the selection a particular skill is invoked, the skills ask for some user input and execute an api call, then it returns a response to the main bot and the main bot performs additional actions depending on the skills' response, this does not occur inside a loop.
Inside the skill we have a few dialogs, the entry point dialog starts on both the greeting and inside an unknown intent that we have at the same level of the greeting; we did this because we found that when the skill is invoked from an external bot, the unknown intent is the one that starts our entry point dialog, but if we interact with the skill directly from the emulator, the greeting is the one that starts the entry point.

Got it.
Thanks @pedro-ramirez-suarez.. Lets handle the first failure case of local RootBot(Consumer Bot) when trying to connect to the remote skills failing with the 500 status error. (response to when I run the skills and the bot locally everything works fine; when I publish the skills and I try to connect to any of the remote skills from my local bot I get a 500 error)
Could you expand on the 500 error that you are getting (the error message).

Are you able to connect just to one remote skill from Bot Framework Emulator using the MsAppId and MsPass of the skill without Composer in the picture?
Does the allowedCallers setting of the remote skill you just deployed have the MsAppId of the Root Bot that is calling it? You can check this in your azure portal under the bot's appsettings.json or can do a reploy of the skill using Composer.
You had already mentioned that allowedCaller setting of the root bot has the MsAppId of the remote skill that its calling which  is also a mandatory step.

The 404 in your ngrok view (/api/skill/v3/conversations/1be3fa73-2b18-4ac5-ad7f-f1652b087e0c-c302 404 Not Found) could be a problem. I just tried calling a remote skill and this is a snapshot that i receive.

Got it.
Thanks @pedro-ramirez-suarez.. Lets handle the first failure case of local RootBot(Consumer Bot) when trying to connect to the remote skills failing with the 500 status error. (response to when I run the skills and the bot locally everything works fine; when I publish the skills and I try to connect to any of the remote skills from my local bot I get a 500 error)
Could you expand on the 500 error that you are getting (the error message).

Are you able to connect just to one remote skill from Bot Framework Emulator using the MsAppId and MsPass of the skill without Composer in the picture?
Does the allowedCallers setting of the remote skill you just deployed have the MsAppId of the Root Bot that is calling it? You can check this in your azure portal under the bot's appsettings.json or can do a reploy of the skill using Composer.
You had already mentioned that allowedCaller setting of the root bot has the MsAppId of the remote skill that its calling which  is also a mandatory step.

The 404 in your ngrok view (/api/skill/v3/conversations/1be3fa73-2b18-4ac5-ad7f-f1652b087e0c-c302 404 Not Found) could be a problem. I just tried calling a remote skill and this is a snapshot that i receive.

Got it.
Thanks @pedro-ramirez-suarez.. Lets handle the first failure case of local RootBot(Consumer Bot) when trying to connect to the remote skills failing with the 500 status error. (response to when I run the skills and the bot locally everything works fine; when I publish the skills and I try to connect to any of the remote skills from my local bot I get a 500 error)
Could you expand on the 500 error that you are getting (the error message).?

Are you able to connect just to one remote skill from Bot Framework Emulator using the MsAppId and MsPass of the skill without Composer in the picture?
Does the allowedCallers setting of the remote skill you just deployed have the MsAppId of the Root Bot that is calling it? You can check this in your azure portal under the bot's appsettings.json or can do a reploy of the skill using Composer.
You had already mentioned that allowedCaller setting of the root bot has the MsAppId of the remote skill that its calling which  is also a mandatory step.

The 404 in your ngrok view (/api/skill/v3/conversations/1be3fa73-2b18-4ac5-ad7f-f1652b087e0c-c302 404 Not Found) could be a problem. I just tried calling a remote skill and this is a snapshot that i receive.

Are you able to connect just to one remote skill from Bot Framework Emulator using the MsAppId and MsPass of the skill without Composer in the picture?
Yes, I can connect to the skill; doing this at the end of the execution I get an Object reference not set to an instance of an object. error, actually, all my skills end with that error when I access them directly via the emulator.
Does the allowedCallers setting of the remote skill you just deployed have the MsAppId of the Root Bot that is calling it? You can check this in your azure portal under the bot's appsettings.json or can do a reploy of the skill using Composer.
Yes, I have the app id of the caller, previously I didn't have that id and I was getting a 401 error.
You had already mentioned that allowedCaller setting of the root bot has the MsAppId of the remote skill that its calling which  is also a mandatory step.
Yes, I already have that.
About the 500 error, this is what I get on the emulator:
Error invoking the skill id: “c302550f-6825-4711-ad4c-30c1eeb724e6” at “https://devlicenseplateskillbot-dev.azurewebsites.net/api/messages” (status is 500).
This is the detail of the message from the emulator:
{
  "channelId": "emulator",
  "conversation": {
    "id": "897989e0-5451-11eb-82c5-a309b909e217|livechat"
  },
  "from": {
    "id": "89793bc0-5451-11eb-a602-05e38b44e658",
    "name": "Bot",
    "role": "bot"
  },
  "id": "9078c490-5451-11eb-82c5-a309b909e217",
  "inputHint": "acceptingInput",
  "localTimestamp": "2021-01-11T13:11:25-08:00",
  "locale": "en-US",
  "recipient": {
    "id": "6bf9e9c5-9312-467a-86b8-4b02a7c70922",
    "role": "user"
  },
  "replyToId": "8bb214c0-5451-11eb-82c5-a309b909e217",
  "serviceUrl": "https://f63050d15a5b.ngrok.io",
  "text": "Error invoking the skill id: \"c302550f-6825-4711-ad4c-30c1eeb724e6\" at \"https://devlicenseplateskillbot-dev.azurewebsites.net/api/messages\" (status is 500). \r\n ",
  "timestamp": "2021-01-11T21:11:25.785Z",
  "type": "message"
}

Got it.
Thanks @pedro-ramirez-suarez.. Lets handle the first failure case of local RootBot(Consumer Bot) when trying to connect to the remote skills failing with the 500 status error. (response to when I run the skills and the bot locally everything works fine; when I publish the skills and I try to connect to any of the remote skills from my local bot I get a 500 error)
Could you expand on the 500 error that you are getting (the error message).?

Are you able to connect just to one remote skill from Bot Framework Emulator using the MsAppId and MsPass of the skill without Composer in the picture?
Does the allowedCallers setting of the remote skill you just deployed have the MsAppId of the Root Bot that is calling it? You can check this in your azure portal under the bot's appsettings.json or can do a reploy of the skill using Composer.
You had already mentioned that allowedCaller setting of the root bot has the MsAppId of the remote skill that its calling which  is also a mandatory step.

The 404 in your ngrok view (/api/skill/v3/conversations/1be3fa73-2b18-4ac5-ad7f-f1652b087e0c-c302 404 Not Found) could be a problem. I just tried calling a remote skill and this is a snapshot that i receive.

Are you able to connect just to one remote skill from Bot Framework Emulator using the MsAppId and MsPass of the skill without Composer in the picture?
Yes, I can connect to the skill; doing this at the end of the execution I get an Object reference not set to an instance of an object. error, actually, all my skills end with that error when I access them directly via the emulator.
Does the allowedCallers setting of the remote skill you just deployed have the MsAppId of the Root Bot that is calling it? You can check this in your azure portal under the bot's appsettings.json or can do a reploy of the skill using Composer.
Yes, I have the app id of the caller, previously I didn't have that id and I was getting a 401 error.
You had already mentioned that allowedCaller setting of the root bot has the MsAppId of the remote skill that its calling which  is also a mandatory step.
Yes, I already have that.
About the 500 error, this is what I get on the emulator:
Error invoking the skill id: “c302550f-6825-4711-ad4c-30c1eeb724e6” at “https://devlicenseplateskillbot-dev.azurewebsites.net/api/messages” (status is 500).
This is the detail of the message from the emulator:
{
  "channelId": "emulator",
  "conversation": {
    "id": "897989e0-5451-11eb-82c5-a309b909e217|livechat"
  },
  "from": {
    "id": "89793bc0-5451-11eb-a602-05e38b44e658",
    "name": "Bot",
    "role": "bot"
  },
  "id": "9078c490-5451-11eb-82c5-a309b909e217",
  "inputHint": "acceptingInput",
  "localTimestamp": "2021-01-11T13:11:25-08:00",
  "locale": "en-US",
  "recipient": {
    "id": "6bf9e9c5-9312-467a-86b8-4b02a7c70922",
    "role": "user"
  },
  "replyToId": "8bb214c0-5451-11eb-82c5-a309b909e217",
  "serviceUrl": "https://f63050d15a5b.ngrok.io",
  "text": "Error invoking the skill id: \"c302550f-6825-4711-ad4c-30c1eeb724e6\" at \"https://devlicenseplateskillbot-dev.azurewebsites.net/api/messages\" (status is 500). \r\n ",
  "timestamp": "2021-01-11T21:11:25.785Z",
  "type": "message"
}

@pedro-ramirez-suarez Thank you. Im afraid i have exhausted my remote debugging ways on this issue. Is there any way you can give me the zipped up bot solution so that I can further debug on my end. My microsoft email id is<EMAIL_ADDRESS>

@pedro-ramirez-suarez Thank you. Im afraid i have exhausted my remote debugging ways on this issue. Is there any way you can give me the zipped up bot solution so that I can further debug on my end. My microsoft email id is<EMAIL_ADDRESS>

Hi @srinaath ,
I'll be sending you my project by email, my email is (pedro.ramirez@muraladvisors.com).
Thanks.

Hi @srinaath ,
I'll be sending you my project by email, my email is (pedro.ramirez@muraladvisors.com).
Thanks.

@pedro-ramirez-suarez @srinaath could you please check the the azure webapp appid and the appid in manifest are matched?

@pedro-ramirez-suarez @srinaath could you please check the the azure webapp appid and the appid in manifest are matched?

@pedro-ramirez-suarez could you confirm the msAppID in your manifest file (also the msAppId included in allowedCallers list of the root bot) is the same msAppId that was created in the Bot Registration resources created as a part of bot deployment correct?

@pedro-ramirez-suarez could you confirm the msAppID in your manifest file (also the msAppId included in allowedCallers list of the root bot) is the same msAppId that was created in the Bot Registration resources created as a part of bot deployment correct?

Closing this ticket. The issue was an invalid MsAppId for the consumer bot and the need to configure MsAppId's for all the skills when one of them is remote.

Closing this ticket. The issue was an invalid MsAppId for the consumer bot and the need to configure MsAppId's for all the skills when one of them is remote.


module 'cv2' has no attribute 'xfeatures2d'

I'm trying use BRIEF in img matching but not work
self.matching = cv2.xfeatures2d.BriefDescriptorExtractor_create()
AttributeError: module 'cv2' has no attribute 'xfeatures2d'
My cv2 version is 4.8.1

print(cv2.version)
4.8.1

Someone help me

You need opencv_contrib package for it.