Actions falsely triggered when using EdgeX as source

Here's the stream I created:
create stream edgex_stream () WITH ( FORMAT="JSON", TYPE="edgex");

and here's the rule:
{
  "sql": "SELECT baseinfo FROM edgex_stream",
  "actions": [
    {
      "mqtt": {
        "server": "tcp://localhost:1883",
        "topic": "rules_test"
      }
    },
    {
      "log":{}
    }
  ]
}

the action should only be trigger when an EdgeX event arrived which has a reading whose name is baseinfo, but in kuiper 0.9.0, when an EdgeX event with different reading name arrived, an empty message [{}] got published to the MQTT broker, here's the log:
time="2020-08-12T16:28:10+08:00" level=info msg="sink result for rule rule2: [{}]" file="entry.go:314" rule=rule2

and the message from EdgeX zeromq bus
{"correlation-id":"91099b55-f4f1-4021-a7d5-36f066ae0fed","id":"ae7f7852-2072-4cf2-b4e1-db17a92ede59","device":"Test001","created":1597220890943,"origin":1597220890942926000,"readings":[{"id":"db361145-0726-4a64-a2d0-c3eddb34d56b","origin":1597220890942748000,"device":"Test001","name":"speed","value":"0","valueType":"Int16"}]}

IMHO, the action shouldn't be triggered at all, or did I use the SELECT statement in a wrong way?

It will produce an empty result if the specified field cannot be found in the input stream. You can have two options to solve the problem,

Configure omitIfEmpty to true in your mqtt or log sink - refer to (detail description)[https://github.com/emqx/kuiper/blob/master/docs/en_US/rules/overview.md#sinksactions].
Add a WHERE condition. E,g, WHERE baseinfo != nil

Thanks a lot, I'll try those two approaches.


Issue #1716 not fixed : Svelte : TypedDocumentNode does not play well with Typescript for subscription

After updating to<EMAIL_ADDRESS>(which contains #1731), I went and checked if my issue from #1716 was fixed and it seems to be there again :

This time however, my data variable is indeed properly typed (it is a NewMessagesSubscription instead of any).
cc @kitten
Originally posted by @V-ed in https://github.com/FormidableLabs/urql/issues/1731#issuecomment-868850256

I use the following file in the meantime to fix my issue :

urqlsvelte.d.ts
import { OperationStore, SubscriptionHandler } from '@urql/svelte';

declare module '@urql/svelte' {
	export declare function subscription<Data = any, Result = Data, Variables = object>(
		store: OperationStore<Data, Variables>,
		handler?: SubscriptionHandler<Data, Result>,
	): OperationStore<Result, Variables>;
}

Happy to discuss this in the original issue, #1716, but let's not create more duplicates. For now, I haven't quite looked into this, but I did test this, so I'm surprised by this. However, I think it depends on how TypeScript infers types once again. Also, using a return value of OperationStore<Result, Variables> is plain incorrect. The input and output types here must match, which is why I've added a third generic. If TypeScript turns out not to be smart enough to infer this with little information however, it's possible that we'll have to keep it at that.


Template tests fail to parse when referencing a subproperty without parenthesis

Expected Behavior
Sub properties of properties in the template data should be able to be referenced as the additional test parameter of a test without using parenthesis
Actual Behavior
The test fails to parse if a sub property of a property (with a dictionary value) in the template data is referenced as the additional argument of a test
Template Code
This template fails parsing:
{% for target in Iterator if target.property is eq Value.Subproperty %}
    {{target.property}}
{% endfor %}

This template succeeds:
{% for target in Iterator if target.property is eq Value %}
    {{target.property}}
{% endfor %}

This template also succeeds:
{% for target in Iterator if target.property is eq(Value.Subproperty) %}
    {{target.property}}
{% endfor %}

Full Traceback
File "c:\Users\Mike\Documents\projects\jinja2visitor\notes\test.py", line 80, in <module>
    print env.parse(template)
  File "C:\python27\lib\site-packages\jinja2\environment.py", line 493, in parse
    self.handle_exception(exc_info, source_hint=source)
  File "C:\python27\lib\site-packages\jinja2\environment.py", line 780, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "<unknown>", line 1, in template
jinja2.exceptions.TemplateSyntaxError: expected token 'end of statement block', got '.'

Your Environment

Python version: 2.7.11
Jinja version: 2.10

I'll work on this at PyCon 2019 sprints.

Hi, I've been doing some research on this and I'm wondering if I'm on the right track.
I founded the 'parse_if()' has inside the 'parse_tuple()' and that function specifies something about 'explicit_parenthesis' and when it doesn't have the parenthesis the return value is odd to me, maybe that is related?

Hello! Asking for a review :D

@kevin-brown could you please consider this fix for a potential v2.10.2 release, too? As far as I see this has only been merged to master... Are there any planes for an additional 2.10 bugfix release "soon"?


SleuthHystrixConcurrencyStrategy startup order problem

We are seeing an issue with the startup order of the SleuthHystrixConcurrencyStrategy and the use of Hystrix libraries...specifically with the HystrixCodaHaleMetricsPublisherThreadPool.
The scenario is that, during application context initialization, one of our Spring beans makes a call through a Hystrix command, which initializes all the plugins and the metrics publisher specifically. (i.e. HystrixCodaHaleMetricsPublisherThreadPool.initialize() is invoked).  This operations happens to occur before the SleuthHystrixConcurrencyStrategy is created.  Once the Sleuth class is instantiated, it calls HystrixPlugins.reset(), which wipes out the internal static cache in HystrixMetricsPublisherFactory.  The next time our original Hystrix command is run, we get the error below. The problem is that the HystrixPlugins.reset() method doesn't un-register the metrics added to the MetricRegistry, so the second initialization of Hystrix causes the error.
ERROR [http-nio-11088-exec-1] --- MyClass: A metric named MyCommandName.isCircuitBreakerOpen already exists
        java.lang.IllegalArgumentException: A metric named MyCommandName.isCircuitBreakerOpen already exists
            at com.codahale.metrics.MetricRegistry.register(MetricRegistry.java:91) ~[metrics-core-3.1.4.jar:3.1.4]
            at com.netflix.hystrix.contrib.codahalemetricspublisher.HystrixCodaHaleMetricsPublisherCommand.initialize(HystrixCodaHaleMetricsPublisherCommand.java:54) ~[hystrix-codahale-metrics-publisher-1.4.10.jar:1.4.10]
            at com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory.getPublisherForCommand(HystrixMetricsPublisherFactory.java:115) ~[hystrix-core-1.4.21.jar:1.4.21]
            at com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory.createOrRetrievePublisherForCommand(HystrixMetricsPublisherFactory.java:83) ~[hystrix-core-1.4.21.jar:1.4.21]
            at com.netflix.hystrix.AbstractCommand.<init>(AbstractCommand.java:228) ~[hystrix-core-1.4.21.jar:1.4.21]
            at com.netflix.hystrix.HystrixCommand.<init>(HystrixCommand.java:142) ~[hystrix-core-1.4.21.jar:1.4.21]
            at com.netflix.hystrix.HystrixCommand.<init>(HystrixCommand.java:128) ~[hystrix-core-1.4.21.jar:1.4.21]
...

I realize this isn't necessarily a Spring Sleuth problem per-se, but I'm wondering if there's a way to work around the issue in some way, perhaps forcing the startup ordering in some way?

That's an interesting problem... Is HystrixCodaHaleMetricsPublisherThreadPool set up by some Spring Boot Autoconfiguration? I'm asking cause theoretically what you could do is to create an additional autoconfigration and set sth like this:
@Configuration
@AutoConfigureBefore(AutoConfigurationWhere HystrixCodaHaleMetricsPublisherThreadPoolIsSet.class)
@AutoConfigureAfter(SleuthHystrixAutoConfiguration.class)
public class YourCustomAutoConfig {

}

and add to spring.factories
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.example.YourCustomAutoConfig

That way you might force the order. If that works fine then we can try to merge it back to Sleuth somehow. WDYT?

Setting up autoconfiguration like that would certainly be one way to work around the problem.  I've been suggesting to our team that adding a Spring application lifecycle listener which execute after the context has been initialized is another way.
I'm not really sure there are any good solutions here, with the way Hystrix is written.  Hopefully Hystrix 2.0 will be better in this regard.

So maybe until then let's close this issue and once you prove that there's a workaround for this we'll paste it here?

Sounds reasonable...mainly wanted to point it out in case you had some trick up your sleeve to work around the issue on the Spring Sleuth side of things

No tricks this time ;) If you want to see tricks you can check this out https://github.com/spring-cloud/spring-cloud-sleuth/issues/680 . Maybe you have a better idea how to solve it :)

I faced the same issue with the SleuthHystrixConcurrencyStrategy and new HystrixCodaHaleMetricsPublisher(this.metricRegistry). In my project I use just Feign w/ hystrix support. Is there some way to disable creation of SleuthHystrixConcurrencyStrategy ?

Have you read the documentation?  http://cloud.spring.io/spring-cloud-static/Dalston.SR4/multi/multi__integrations.html#_custom_concurrency_strategy

Nope, but thanks. I don't know what exactly I'll miss with the turning off but it would be at least a workaround for the problem.


Consent related use cases (former PR#33)

What type of PR is this?

documentation

What this PR does / why we need it:
This PR restores PR #33 - "The objective of the PR is to contribute to a document listing consent related use-cases. Thi document will be use as an output for Consent API work."
Which issue(s) this PR fixes:
None
Special notes for reviewers:
This is a DRAFT document.

@bigludo7 Maybe we could close this PR. What do you think?


Module does not appear to contain Start/Stop-SqlInstance Commands

Hi,
I've installed version 22.0.59 of this module, and I can't seem to use the Start-SqlInstance or Stop-SqlInstance commands.  They are in the module manifest, but when I go to use them, PowerShell says they aren't recognized.  Get-SqlInstance and many other commands in the module seem to work fine.
Here's a screenshot.

Hi @bbseal,
As per https://github.com/microsoft/SQLServerPSModule/wiki/What's-new-in-v22#relevant-changes-in-v22-compared-to-v21, those 2 cmdlets were removed as part of a major cleanup I did in v22.
Thanks for pointing out that I forgot to remove them from the manifest. I'll look into removing it in a future v22 update.

This was fixed in v22.1.1.


Update auto generated files

This is a fix for the make verify which breaks every turn of year due to the Year in the copyright.

Codecov Report

Merging #2066 (1afc011) into main (3f0a531) will not change coverage.
Report is 1 commits behind head on main.
The diff coverage is n/a.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2066   +/-   ##
=======================================
  Coverage   47.32%   47.32%
=======================================
  Files          77       77
  Lines        7352     7352
=======================================
  Hits         3479     3479
  Misses       3742     3742
  Partials      131      131

This fixes the issues with make verify-bundle which are currently blocking all the dependency bumps.
@kubernetes-sigs/security-profiles-operator-maintainers PTAL

It was updated in https://github.com/kubernetes-sigs/security-profiles-operator/pull/1917.

I disable temporary the vulnerability scanning for buld-image. I don't understand why is failing.


could not detect a running discord client when discord is open

could not detect a running discord client when discord is open while using linux using popos

No, via IDEA's plugins menu.

I meant discord, not the plugin

Installed from the official Arch Linux repository:
❯ pacman -Qi discord
Name            : discord
Version         : 0.0.11-1
Description     : All-in-one voice and text chat for gamers that's free and secure.
Architecture    : x86_64
URL             : https://discordapp.com
Licenses        : custom
Groups          : None
Provides        : None
Depends On      : libnotify  libxss  nspr  nss  gtk3  opera-ffmpeg-codecs  libegl  libgles
Optional Deps   : libpulse: Pulseaudio support [installed]
                  xdg-utils: Open files [installed]
Required By     : None
Optional For    : None
Conflicts With  : None
Replaces        : None
Installed Size  : 159,20 MiB
Packager        : Filipe Laíns<EMAIL_ADDRESS>Build Date      : Чт 06 авг 2020 20:32:36
Install Date    : Пт 07 авг 2020 09:28:27
Install Reason  : Explicitly installed
Install Script  : No
Validated By    : Signature

Installed via a .deb repo from discords website.

I'm not sure if the one on the arch repo is provided by discord, the deb should work tho.
Make sure that discord is running before you open your ide
More troubleshooting steps are explained in the FAQ channel on discord https://discord.gg/VBkAanh

If you run the Discord first and then the IDEA, everything works as expected. But in my use case IDEA is always on and Discord runs when needed. Therefore, you need to make the plugin to periodically search for running Discord to avoid a dependency on the launch order.

pop os, discord installed from .deb, same issue. Tried everything you guys wrote, the plugin still not recognizing discord.

I also have the same problem, It was working but when I switched from Intelj Community to Intelj Ultimate after that it doesn't detect discord, it might be something I done in between, but I am not 100% sure.

That error message is currently completely separate from actually connecting to Discord. It can theoretically also show up when the presence works just fine (and atm especially won't disappear later when a connection has been established). The message appears when the plugin can't find "/discord" in the output of ps xo user:30,command when starting the IDE.

Closing this due to inactivity

hey, i had same issue but i fixed with a simple trick, renaming Discord executable to discord, apparently discord plugin grep and search for discord with lowercase.

Hi, I am using windows and have this problem. Can anyone help me how to fix this?


empty libtest harness under cargo-careful fails valgrind

Steps to reproduce:
mkdir /tmp/memory-error && cd /tmp/memory-error
cargo init --lib
cargo +nightly careful test --no-run
valgrind --track-origins=yes target/debug/deps/memory_error-394e695bdd4a1e0f

Valgrind output:
==741342== Memcheck, a memory error detector
==741342== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
==741342== Using Valgrind-3.19.0 and LibVEX; rerun with -h for copyright info
==741342== Command: target/debug/deps/memory_error-394e695bdd4a1e0f
==741342==
==741342== Conditional jump or move depends on uninitialised value(s)
==741342==    at 0x16673A: runtime<u8> (raw.rs:93)
==741342==    by 0x16673A: from_raw_parts<u8> (intrinsics.rs:2220)
==741342==    by 0x16673A: deref<u8, alloc::alloc::Global> (mod.rs:2533)
==741342==    by 0x16673A: index (string.rs:2185)
==741342==    by 0x16673A: eq (string.rs:2185)
==741342==    by 0x16673A: eq (lib.rs:626)
==741342==    by 0x16673A: eq<getopts::Name, getopts::Name> (lib.rs:933)
==741342==    by 0x16673A: {closure#0} (lib.rs:933)
==741342==    by 0x16673A: position<getopts::Opt, getopts::find_opt::{closure_env#0}> (macros.rs:295)
==741342==    by 0x16673A: getopts::find_opt (lib.rs:933)
==741342==    by 0x166084: getopts::Matches::opt_vals (lib.rs:797)
==741342==    by 0x16634A: getopts::Matches::opt_present (lib.rs:813)
==741342==    by 0x13C548: test::cli::parse_opts (cli.rs:207)
==741342==    by 0x15A0FC: test::test_main (lib.rs:95)
==741342==    by 0x15B0D1: test::test_main_static (lib.rs:131)
==741342==    by 0x123112: memory_error::main (lib.rs:1)
==741342==    by 0x12307A: core::ops::function::FnOnce::call_once (function.rs:251)
==741342==    by 0x12315D: std::sys_common::backtrace::__rust_begin_short_backtrace (backtrace.rs:122)
==741342==    by 0x122CE0: std::rt::lang_start::{{closure}} (rt.rs:166)
==741342==    by 0x18AA53: call_once<(), (dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe)> (function.rs:286)
==741342==    by 0x18AA53: do_call<&(dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe), i32> (panicking.rs:464)
==741342==    by 0x18AA53: try<i32, &(dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe)> (panicking.rs:428)
==741342==    by 0x18AA53: catch_unwind<&(dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe), i32> (panic.rs:137)
==741342==    by 0x18AA53: {closure#2} (rt.rs:148)
==741342==    by 0x18AA53: do_call<std::rt::lang_start_internal::{closure_env#2}, isize> (panicking.rs:464)
==741342==    by 0x18AA53: try<isize, std::rt::lang_start_internal::{closure_env#2}> (panicking.rs:428)
==741342==    by 0x18AA53: catch_unwind<std::rt::lang_start_internal::{closure_env#2}, isize> (panic.rs:137)
==741342==    by 0x18AA53: std::rt::lang_start_internal (rt.rs:148)
==741342==    by 0x122CB9: std::rt::lang_start (rt.rs:165)
==741342==  Uninitialised value was created by a stack allocation
==741342==    at 0x165FE7: getopts::Matches::opt_vals (lib.rs:796)
==741342==
==741342== Conditional jump or move depends on uninitialised value(s)
==741342==    at 0x16680E: runtime<u8> (raw.rs:93)
==741342==    by 0x16680E: from_raw_parts<u8> (intrinsics.rs:2220)
==741342==    by 0x16680E: deref<u8, alloc::alloc::Global> (mod.rs:2533)
==741342==    by 0x16680E: index (string.rs:2185)
==741342==    by 0x16680E: eq (string.rs:2185)
==741342==    by 0x16680E: eq (lib.rs:626)
==741342==    by 0x16680E: eq<getopts::Name, getopts::Name> (lib.rs:940)
==741342==    by 0x16680E: {closure#1} (lib.rs:940)
==741342==    by 0x16680E: any<getopts::Opt, getopts::find_opt::{closure_env#1}> (macros.rs:242)
==741342==    by 0x16680E: getopts::find_opt (lib.rs:940)
==741342==    by 0x166084: getopts::Matches::opt_vals (lib.rs:797)
==741342==    by 0x16634A: getopts::Matches::opt_present (lib.rs:813)
==741342==    by 0x13C548: test::cli::parse_opts (cli.rs:207)
==741342==    by 0x15A0FC: test::test_main (lib.rs:95)
==741342==    by 0x15B0D1: test::test_main_static (lib.rs:131)
==741342==    by 0x123112: memory_error::main (lib.rs:1)
==741342==    by 0x12307A: core::ops::function::FnOnce::call_once (function.rs:251)
==741342==    by 0x12315D: std::sys_common::backtrace::__rust_begin_short_backtrace (backtrace.rs:122)
==741342==    by 0x122CE0: std::rt::lang_start::{{closure}} (rt.rs:166)
==741342==    by 0x18AA53: call_once<(), (dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe)> (function.rs:286)
==741342==    by 0x18AA53: do_call<&(dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe), i32> (panicking.rs:464)
==741342==    by 0x18AA53: try<i32, &(dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe)> (panicking.rs:428)
==741342==    by 0x18AA53: catch_unwind<&(dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe), i32> (panic.rs:137)
==741342==    by 0x18AA53: {closure#2} (rt.rs:148)
==741342==    by 0x18AA53: do_call<std::rt::lang_start_internal::{closure_env#2}, isize> (panicking.rs:464)
==741342==    by 0x18AA53: try<isize, std::rt::lang_start_internal::{closure_env#2}> (panicking.rs:428)
==741342==    by 0x18AA53: catch_unwind<std::rt::lang_start_internal::{closure_env#2}, isize> (panic.rs:137)
==741342==    by 0x18AA53: std::rt::lang_start_internal (rt.rs:148)
==741342==    by 0x122CB9: std::rt::lang_start (rt.rs:165)
==741342==  Uninitialised value was created by a stack allocation
==741342==    at 0x165FE7: getopts::Matches::opt_vals (lib.rs:796)
==741342==
==741342== Conditional jump or move depends on uninitialised value(s)
==741342==    at 0x16673A: runtime<u8> (raw.rs:93)
==741342==    by 0x16673A: from_raw_parts<u8> (intrinsics.rs:2220)
==741342==    by 0x16673A: deref<u8, alloc::alloc::Global> (mod.rs:2533)
==741342==    by 0x16673A: index (string.rs:2185)
==741342==    by 0x16673A: eq (string.rs:2185)
==741342==    by 0x16673A: eq (lib.rs:626)
==741342==    by 0x16673A: eq<getopts::Name, getopts::Name> (lib.rs:933)
==741342==    by 0x16673A: {closure#0} (lib.rs:933)
==741342==    by 0x16673A: position<getopts::Opt, getopts::find_opt::{closure_env#0}> (macros.rs:295)
==741342==    by 0x16673A: getopts::find_opt (lib.rs:933)
==741342==    by 0x166084: getopts::Matches::opt_vals (lib.rs:797)
==741342==    by 0x166643: getopts::Matches::opt_str (lib.rs:804)
==741342==    by 0x13C764: get_allow_unstable (cli.rs:471)
==741342==    by 0x13C764: parse_opts_impl (cli.rs:252)
==741342==    by 0x13C764: test::cli::parse_opts (cli.rs:214)
==741342==    by 0x15A0FC: test::test_main (lib.rs:95)
==741342==    by 0x15B0D1: test::test_main_static (lib.rs:131)
==741342==    by 0x123112: memory_error::main (lib.rs:1)
==741342==    by 0x12307A: core::ops::function::FnOnce::call_once (function.rs:251)
==741342==    by 0x12315D: std::sys_common::backtrace::__rust_begin_short_backtrace (backtrace.rs:122)
==741342==    by 0x122CE0: std::rt::lang_start::{{closure}} (rt.rs:166)
==741342==    by 0x18AA53: call_once<(), (dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe)> (function.rs:286)
==741342==    by 0x18AA53: do_call<&(dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe), i32> (panicking.rs:464)
==741342==    by 0x18AA53: try<i32, &(dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe)> (panicking.rs:428)
==741342==    by 0x18AA53: catch_unwind<&(dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe), i32> (panic.rs:137)
==741342==    by 0x18AA53: {closure#2} (rt.rs:148)
==741342==    by 0x18AA53: do_call<std::rt::lang_start_internal::{closure_env#2}, isize> (panicking.rs:464)
==741342==    by 0x18AA53: try<isize, std::rt::lang_start_internal::{closure_env#2}> (panicking.rs:428)
==741342==    by 0x18AA53: catch_unwind<std::rt::lang_start_internal::{closure_env#2}, isize> (panic.rs:137)
==741342==    by 0x18AA53: std::rt::lang_start_internal (rt.rs:148)
==741342==    by 0x122CB9: std::rt::lang_start (rt.rs:165)
==741342==  Uninitialised value was created by a stack allocation
==741342==    at 0x165FE7: getopts::Matches::opt_vals (lib.rs:796)
==741342==

running 1 test
test tests::it_works ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s

==741342==
==741342== HEAP SUMMARY:
==741342==     in use at exit: 0 bytes in 0 blocks
==741342==   total heap usage: 479 allocs, 479 frees, 53,506 bytes allocated
==741342==
==741342== All heap blocks were freed -- no leaks are possible
==741342==
==741342== For lists of detected and suppressed errors, rerun with: -s
==741342== ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)

I've tried to debug this with gdb and adding prints, but it disappears if you look at it too closely so gave up after a bit of trying

Which binary are you running here? I am confused what this is a bug in. But it seems to me this is running the empty libtest harness and pointing at something in there? So it would be a bug in libtest, getopts, or valgrind, but not cargo-careful?
That libtest harness is extensively tested by Miri though.

Which binary are you running here? I am confused what this is a bug in. But it seems to me this is running the empty libtest harness and pointing at something in there?

yeah, it fails on libtest even before getting to the tests.

So it would be a bug in libtest, getopts, or valgrind, but not cargo-careful?

I agree, but it only happens under the cargo-careful configuration, and not with a regular cargo test binary, so I decided to open it here because cargo-careful is the easiest way to reproduce the problem, but I can open an issue in rust-lang/rust instead.

Note that getopts+unicode-width(the only dep getopts has) both have 0 unsafe in them.

If you use regular cargo and set
RUSTFLAGS="-Zstrict-init-checks -Zextra-const-ub-checks -Cdebug-assertions=on

does that trigger the problem?

I assume you meant RUSTFLAGS="-Zstrict-init-checks -Zextra-const-ub-checks -Cdebug-assertions=on" cargo +nightly test -Z build-std --target=x86_64-unknown-linux-gnu
And it doesn't seem to trigger the problem

I don't know what exactly build-std does, it might not apply the flags to the standard library.
So looks like this has to do with compiling the standard library with debug assertions?

So looks like this has to do with compiling the standard library with debug assertions?

As far as I can tell, yes

Assuming the line numbers are correct, it points at this debug assertion
https://github.com/rust-lang/rust/blob/075084f772abbc53263fc946c047a01e0dd65f80/library/core/src/slice/raw.rs#L93-L96
None of this can really be uninit though, given that Miri has been all over that code, so my assumption is that LLVM did something odd to the assembly that confuses valgrind, or some such thing. That's way outside of what I can debug, sorry.

The call is to
000000000006a790 <_ZN7getopts8find_opt17ha49ce0943149df1eE>:
   6a790:       55                      push   %rbp
   6a791:       41 57                   push   %r15
   6a793:       41 56                   push   %r14
   6a795:       41 55                   push   %r13
   6a797:       41 54                   push   %r12
   6a799:       53                      push   %rbx
   6a79a:       48 83 ec 28             sub    $0x28,%rsp
   6a79e:       48 85 f6                test   %rsi,%rsi
   6a7a1:       0f 84 a6 00 00 00       je     6a84d <_ZN7getopts8find_opt17ha49ce0943149df1eE+0xbd>
   6a7a7:       49 89 fe                mov    %rdi,%r14
   6a7aa:       4c 6b ce 38             imul   $0x38,%rsi,%r9
   6a7ae:       4c 8b 2a                mov    (%rdx),%r13
   6a7b1:       4c 8b 42 10             mov    0x10(%rdx),%r8
   6a7b5:       44 8b 52 08             mov    0x8(%rdx),%r10d
   6a7b9:       4d 85 c0                test   %r8,%r8
   6a7bc:       4c 89 4c 24 10          mov    %r9,0x10(%rsp)
   6a7c1:       44 89 54 24 0c          mov    %r10d,0xc(%rsp)
   6a7c6:       4c 89 44 24 20          mov    %r8,0x20(%rsp)
   6a7cb:       0f 88 83 00 00 00       js     6a854 <_ZN7getopts8find_opt17ha49ce0943149df1eE+0xc4>

The last conditional jump is the one flagged by Valgrind.  Relevant instructions are:
   6a7b1:       4c 8b 42 10             mov    0x10(%rdx),%r8
...
   6a7b9:       4d 85 c0                test   %r8,%r8
...
   6a7cb:       0f 88 83 00 00 00       js     6a854 <_ZN7getopts8find_opt17ha49ce0943149df1eE+0xc4>

So Valgrind thinks that 0x10(%rdx) is uninitialized.  The caller opt_vals() passes its %rsp as %rdx:
...
   6a387:       48 83 ec 68             sub    $0x68,%rsp
   6a38b:       48 89 54 24 18          mov    %rdx,0x18(%rsp)
   6a390:       48 89 4c 24 20          mov    %rcx,0x20(%rsp)
...
   6a3d3:       89 44 24 08             mov    %eax,0x8(%rsp)
   6a3d7:       48 c7 04 24 00 00 00    movq   $0x0,(%rsp)
   6a3de:       00
   6a3df:       eb 0e                   jmp    6a3ef <_ZN7getopts7Matches8opt_vals17hbf0997a509768c43E+0x6f>
...
   6a3ef:       48 89 e2                mov    %rsp,%rdx
...
   6a3f8:       ff 15 b2 87 0b 00       call   *0xb87b2(%rip)        # 122bb0 <_GLOBAL_OFFSET_TABLE_+0x8f8>

And it looks like Valgrind is right.  opt_vals() never stores anything to 0x10(%rsp).
The value at %rsp is of type enum Name:
enum Name {
    /// A string representing the long name of an option.
    /// For example: "help"
    Long(String),
    /// A char representing the short name of an option.
    /// For example: 'h'
    Short(char),
}

and it's the Short variant.  The conditional jump in find_opt() is checking the sign bit at offset 16 bytes into the enum Name instance.  I assume that's padding in Name::Short, but I'm not sure what the layout of Name is exactly.
It does seem weird that find_opt() is checking the 16th byte of a Name before checking which variant it is, but it is not necessarily an incorrect compilation.  Maybe both sides of the conditional branch end up checking which variant it is before using the result.  I think the code is inlined from the derived PartialEq impl for Name:
fn find_opt(opts: &[Opt], nm: &Name) -> Option<usize> {
    // Search main options.
    let pos = opts.iter().position(|opt| &opt.name == nm);
...

Here's a reduction that doesn't depend on the test harness:
main.rs
use std::hint::black_box;

/// Name of an option. Either a string or a single char.
#[derive(Clone, Debug, PartialEq, Eq)]
enum Name {
    /// A string representing the long name of an option.
    /// For example: "help"
    Long(String),
    /// A char representing the short name of an option.
    /// For example: 'h'
    Short(char),
}

use self::Name::*;

impl Name {
    fn from_str(nm: &str) -> Name {
        if nm.len() == 1 {
            Short(nm.as_bytes()[0] as char)
        } else {
            Long(nm.to_string())
        }
    }
}

/// Describes whether an option has an argument.
#[derive(Clone, Debug, Copy, PartialEq, Eq)]
pub enum HasArg {
    /// The option requires an argument.
    Yes,
    /// The option takes no argument.
    No,
    /// The option argument is optional.
    Maybe,
}

/// Describes how often an option may occur.
#[derive(Clone, Debug, Copy, PartialEq, Eq)]
pub enum Occur {
    /// The option occurs once.
    Req,
    /// The option occurs at most once.
    Optional,
    /// The option occurs zero or more times.
    Multi,
}

/// A description of a possible option.
#[derive(Clone, Debug, PartialEq, Eq)]
struct Opt {
    /// Name of the option
    name: Name,
    /// Whether it has an argument
    hasarg: HasArg,
    /// How often it can occur
    occur: Occur,
    /// Which options it aliases
    aliases: Vec<Opt>,
}

/// Describes whether an option is given at all or has a value.
#[derive(Clone, Debug, PartialEq, Eq)]
enum Optval {
    Val(String),
    Given,
}

fn find_opt(opts: &[Opt], nm: &Name) -> Option<usize> {
    // Search main options.
    let pos = opts.iter().position(|opt| &opt.name == nm);
    if pos.is_some() {
        return pos;
    }

    // Search in aliases.
    for candidate in opts.iter() {
        if candidate.aliases.iter().any(|opt| &opt.name == nm) {
            return opts.iter().position(|opt| opt.name == candidate.name);
        }
    }

    None
}

/// The result of checking command line arguments. Contains a vector
/// of matches and a vector of free strings.
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct Matches {
    /// Options that matched
    opts: Vec<Opt>,
    /// Values of the Options that matched and their positions
    vals: Vec<Vec<(usize, Optval)>>,
    /// Free string fragments
    pub free: Vec<String>,
}

impl Matches {
    fn opt_vals(&self, nm: &str) -> Vec<(usize, Optval)> {
        match find_opt(&self.opts, &Name::from_str(nm)) {
            Some(id) => self.vals[id].clone(),
            None => panic!("No option '{}' defined", nm),
        }
    }
}

fn main() {
    let matches = Matches {
        opts: vec![
            Opt {
                name: Name::from_str("h"),
                hasarg: HasArg::No,
                occur: Occur::Optional,
                aliases: vec![],
            },
        ],
        vals: vec![
            vec![(0, Optval::Given)],
        ],
        free: vec![],
    };

    let vals = black_box(matches).opt_vals(black_box("h"));
    println!("{vals:?}");
}

tavianator@graphene $ cargo +nightly careful run --release
Preparing a careful sysroot (target: x86_64-unknown-linux-gnu)... done
   Compiling careful-bug-4 v0.1.0 (/home/tavianator/code/careful-bug-4)
warning: variant `Val` is never constructed
  --> src/main.rs:64:5
   |
63 | enum Optval {
   |      ------ variant in this enum
64 |     Val(String),
   |     ^^^
   |
   = note: `Optval` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
   = note: `#[warn(dead_code)]` on by default

warning: `careful-bug-4` (bin "careful-bug-4") generated 1 warning
    Finished release [optimized] target(s) in 0.36s
     Running `target/release/careful-bug-4`
[(0, Given)]
tavianator@graphene $ valgrind target/release/careful-bug-4
==44884== Memcheck, a memory error detector
==44884== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
==44884== Using Valgrind-3.19.0 and LibVEX; rerun with -h for copyright info
==44884== Command: target/release/careful-bug-4
==44884==
==44884== Conditional jump or move depends on uninitialised value(s)
==44884==    at 0x1158A2: careful_bug_4::main (in /home/tavianator/code/careful-bug-4/target/release/careful-bug-4)
==44884==    by 0x114522: std::sys_common::backtrace::__rust_begin_short_backtrace (in /home/tavianator/code/careful-bug-4/target/release/careful-bug-4)
==44884==    by 0x114F18: std::rt::lang_start::{{closure}} (in /home/tavianator/code/careful-bug-4/target/release/careful-bug-4)
==44884==    by 0x127D03: std::rt::lang_start_internal (in /home/tavianator/code/careful-bug-4/target/release/careful-bug-4)
==44884==    by 0x115EE7: main (in /home/tavianator/code/careful-bug-4/target/release/careful-bug-4)
==44884==
[(0, Given)]
==44884==
==44884== HEAP SUMMARY:
==44884==     in use at exit: 0 bytes in 0 blocks
==44884==   total heap usage: 15 allocs, 15 frees, 3,325 bytes allocated
==44884==
==44884== All heap blocks were freed -- no leaks are possible
==44884==
==44884== Use --track-origins=yes to see where uninitialised values come from
==44884== For lists of detected and suppressed errors, rerun with: -s
==44884== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)

Does this reproduce without careful, ie
RUSTFLAGS="-Zstrict-init-checks -Zextra-const-ub-checks -Cdebug-assertions=on" cargo +nightly run --release

Nope, looks like it needs the standard library to be built with those flags too.  Ultimately I think this comes down to impl Index<RangeFull> for String calling str::from_utf8_unchecked which calls mem::transmute which I assume has some extra checks added by those flags.

According to the valgrind location, it's this check in from_raw_parts.
Probably copying enough things from the stdlib to the testcase can reproduce it without the custom stdlib -- not sure.

Reproduced this without cargo-careful:

main.rs
  ```rust
  #![feature(core_intrinsics, ptr_internals, strict_provenance, pointer_is_aligned)]
use core::intrinsics::const_eval_select;
use core::intrinsics::discriminant_value;
use core::{alloc::Layout, ffi::c_int, hint::black_box, mem, ptr};
use std::{hint::unreachable_unchecked, ptr::NonNull};
pub struct Vec {
    ptr: NonNull,
    cap: usize,
    len: usize,
}
impl Vec {
pub fn with_cap(cap: usize) -> Self {
let layout = Layout::array::(cap).unwrap();
if usize::BITS < 64 && layout.size() > isize::MAX as usize {
unimplemented!();
}
let ptr = unsafe { std::alloc::alloc(layout) };
Self {
ptr: NonNull::new(ptr).unwrap().cast(),
cap,
len: 0,
}
}
pub fn from_slice(s: &[T]) -> Self {
let mut vec = Self::with_cap(s.len());
unsafe { ptr::copy_nonoverlapping(s.as_ptr(), vec.ptr.as_mut(), s.len()) };
vec.len = s.len();
vec
}
pub fn as_slice(&self) -> &[T] {
let data = self.as_ptr();
let len = self.len;
unsafe {
assert_unsafe_precondition!([T](data: *const T, len: usize) =>
is_aligned_and_not_null(data)
&& crate::mem::size_of::().saturating_mul(len) <= isize::MAX as usize
);
&*ptr::slice_from_raw_parts(data, len)
}
}
pub fn as_ptr(&self) -> *const T {
self.ptr.as_ptr()
}
}
impl PartialEq for Vec {
fn eq(&self, other: &Self) -> bool {
let s = self.as_slice();
let o = other.as_slice();
    if s.len() != o.len() {
        return false;
    }
    extern "C" {
        fn memcmp(s1: *const u8, s2: *const u8, n: usize) -> c_int;
    }
    unsafe {
        let size = mem::size_of_val(self);
        memcmp(s.as_ptr() as *const u8, o.as_ptr() as *const u8, size) == 0
    }
}

}
struct String {
vec: Vec,
}
impl String {
fn from_str(s: &str) -> String {
let bytes = s.as_bytes();
String {
vec: Vec::from_slice(bytes),
}
}
}
impl PartialEq for String {
fn eq(&self, other: &String) -> bool {
self.vec == other.vec
}
}
enum Name {
Long(String),
Short(char),
}
impl PartialEq for Name {
fn eq(&self, other: &Name) -> bool {
let self_tag = discriminant_value(self);
let other_tag = discriminant_value(other);
self_tag == other_tag
&& match (self, other) {
(Name::Long(self_0), Name::Long(other_0)) => self_0 == other_0,
(Name::Short(self_0), Name::Short(other_0)) => self_0 == other_0,
_ => unsafe { unreachable_unchecked() },
}
}
}
impl Name {
fn from_str(nm: &str) -> Name {
if nm.len() == 1 {
Name::Short(nm.as_bytes()[0] as char)
} else {
Name::Long(String::from_str(nm))
}
}
}
struct Opt {
name: Name,
}
#[inline(never)]
fn find_opt(opts: &[Opt], nm: &Name) -> Option {
// Search main options.
let mut pos = None;
for (i, opt) in opts.iter().enumerate() {
if &opt.name == nm {
pos = Some(i);
break;
}
}
pos
}
fn main() {
let opts = &[Opt {
name: Name::from_str("h"),
}][..];
let nm = black_box("h");
let name = Name::from_str(nm);
black_box(find_opt(opts, &name));

}
macro_rules! assert_unsafe_precondition {
($([$($tt:tt)])?($($i:ident:$ty:ty),$(,)?) => $e:expr) => {
if cfg!(debug_assertions) {
fn runtime$(<$($tt)>)?($($i:$ty),) {
if !$e {
panic!()
}
}
const fn comptime$(<$($tt)>)?($(_:$ty),) {}
const_eval_select(($($i,)*), comptime, runtime);
}
};
}
pub(crate) use assert_unsafe_precondition;
pub(crate) fn is_aligned_and_not_null(ptr: *const T) -> bool {
!ptr.is_null() && ptr.is_aligned()
}
</details>

This fails with:

RUSTFLAGS="-Zstrict-init-checks -Zextra-const-ub-checks -Cdebug-assertions=on" cargo +nightly run --release

valgrind output:

==365407== Memcheck, a memory error detector
==365407== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
==365407== Using Valgrind-3.19.0 and LibVEX; rerun with -h for copyright info
==365407== Command: target/release/wat
==365407==
==365407== Conditional jump or move depends on uninitialised value(s)
==365407==    at 0x10FC1F: saturating_mul (main.rs:37)
==365407==    by 0x10FC1F: runtime (main.rs:37)
==365407==    by 0x10FC1F: as_slice (main.rs:35)
==365407==    by 0x10FC1F: eq (main.rs:50)
==365407==    by 0x10FC1F: eq (main.rs:80)
==365407==    by 0x10FC1F: eq<wat::String, wat::String> (main.rs:95)
==365407==    by 0x10FC1F: eq (main.rs:95)
==365407==    by 0x10FC1F: eq<wat::Name, wat::Name> (main.rs:121)
==365407==    by 0x10FC1F: wat::find_opt (main.rs:121)
==365407==    by 0x10FD56: wat::main (main.rs:136)
==365407==    by 0x10FDF2: call_once<fn(), ()> (function.rs:251)
==365407==    by 0x10FDF2: std::sys_common::backtrace::__rust_begin_short_backtrace (backtrace.rs:122)
==365407==    by 0x10FBC8: std::rt::lang_start::{{closure}} (rt.rs:166)
==365407==    by 0x12247E: call_once<(), (dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe)> (function.rs:286)
==365407==    by 0x12247E: do_call<&(dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe), i32> (panicking.rs:464)
==365407==    by 0x12247E: try<i32, &(dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe)> (panicking.rs:428)
==365407==    by 0x12247E: catch_unwind<&(dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe), i32> (panic.rs:137)
==365407==    by 0x12247E: {closure#2} (rt.rs:148)
==365407==    by 0x12247E: do_call<std::rt::lang_start_internal::{closure_env#2}, isize> (panicking.rs:464)
==365407==    by 0x12247E: try<isize, std::rt::lang_start_internal::{closure_env#2}> (panicking.rs:428)
==365407==    by 0x12247E: catch_unwind<std::rt::lang_start_internal::{closure_env#2}, isize> (panic.rs:137)
==365407==    by 0x12247E: std::rt::lang_start_internal (rt.rs:148)
==365407==    by 0x10FDDE: main (in /tmp/wat/target/release/wat)
==365407==  Uninitialised value was created by a stack allocation
==365407==    at 0x10FCC0: wat::main (main.rs:129)

I think the exact lines of valgrind are wrong, this might be a miscompilation thing

Miri is fine with that code... so yeah either a miscompilation or a valgrind false positive.
Sounds like this should be turned into a rustc bug report then?

Sounds like this should be turned into a rustc bug report then?
Yes, I edited https://github.com/rust-lang/rust/issues/102712 to reflect the conversation here, so I guess this can be closed


tvbrowser: fix, update, build from source, add small test

Description of changes
Updates and fixes tvbrowser (previously tvbrowser-bin), and add a simple test derivation to verify basic functionality.
tvbrowser-bin was broken since https://github.com/NixOS/nixpkgs/commit/48978fb8d0696d10e7bba6b3226358a682a2cb91 .  The pull request at hand fixes the package and introduces the following improvements:

Update to current version 4.2.7.  This version is compatible with current jre and thereby fixes the package.
Switch to a build from source instead of using pre-build jar files.  This is the reason for renaming the package to tvbrowser.  This is mentioned in the release notes; an alias is added.
Use the .desktop file that is created by the build process instead of creating our own.
Use the wrapper script that is created by the build process.
Move output files from /share/java/tvbrowser to /share/tvbrowser.
Update/Extend meta attributes.
Add a simple test derivation that verifies the main program opens its windows.

To facilitate bisections, the changes are divided into separate commits.  More details on the rationale behind these changes are given in the commit messages.
Notifying maintainer
Dear @jfrankenau, maybe you can have a look and provide a review.  Given this package was broken for several years and this pull request introduces significant changes, I took the liberty of adding myself as co-maintainer.  I hope you don't mind.
Things done

Built on platform(s)

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

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

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

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

[x] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[x] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review run on x86_64-linux 1

1 package marked as broken and skipped:

tvbrowser-bin

1 package blacklisted:

nixos-install-tools

1 package built:

tvbrowser

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/1792

Now you need to rephrase the commit messages. The language looks like a "everything looks like C to a C programmer".

Oh how I HATE the online interface of Github!

First commit:

tvbrowser: add myself (Yarny) as maintainer

OK, keep it as is.
Second commit:

tvbrowser: track required JDK version
The minimal JDK version required by tvbrowser is encoded in its download
URL. Track it by using a let binding.

Third commit:

tvbrowser: 4.0.1 -> 4.2.7
Fixes tvbrowser, broken since NixOS@48978fb
Update the makeWrapper flags according to the tvbrowser.sh script provided
by upstream.
Release notes: https://www.tvbrowser.org/index.php?id=news

Fourth commit:

tvbrowser: add {pre,post}Install decoration hooks

This is universal unwritten knowledge now.
Fifth commit:

tvbrowser: build from source This commit changes from a precompiled bundle to
a source file. Accordingly, the expression file is renamed to default.nix
and the old attribute name is changed to tvbrowser, the old one being now a
throw-message.

The upstream build script tries to download the news plugin; so, we provide
this and pass it as a parameter.

Given that this is still a piece of a precompiled Java bytecode, along with a
main readable source bundle, meta.sourceProvenance is updated accordingly.

Sixth commit:
keep it.
Seventh commit:

tvbrowser: move installation directory to /share/tvbrowser
In accordance to the conventions stated in the Nixpkgs manual:
https://nixos.org/manual/nixpkgs/stable/#sec-language-java .

Eighth commit:

tvbrowser: use upstream desktop file

No need for that confusing and redundant explanation. We don't need to justify
why we are sticking to upstream-provided facilities.
Ninth commit:

tvbrowser: use upstream wrapper script

Same motivation as above.
Tenth commit:

tvbrowser: update meta.license and add other meta attributes
The file txt/COPYRIGHT.txt in the source archive states it as
GPL3+-licensed.

Finally
Also, I suggest to create
meta.changelog = "https://www.tvbrowser.org/index.php?id=news";
Phew!


[CRITICAL] Couldn't connect to logind service ([System.Error.EISDIR] Is a directory)

I'm trying to run hyridle with hyperland window manager, but I'm not succeeding, as I always come across the message below:
'[CRITICAL] Couldn't connect to logind service ([System.Error.EISDIR] Is a directory)'
Attached is the log file when I try to run the program.
NOTE: The Linux distribution I use is Gentoo, with OpenRC as service manager (and not SystemD). Hyprland requires the seatd software to start - I've already compiled it without and with elogind support, but I keep encountering this error.
hypridle.log

Have you added the elogind service to the boot runlevel?
Also, running seatd isn't required if logind is running, but it does require the elogind flag.

Yes, elogind had already been placed in the boot runlevel.
Anyway, I finally managed to solve the problem by trying to understand everything that was involved:

Initially I wanted to use Hyprland without elogind. I was able to use it normally, but I couldn't get hypridle to work.

So I tried using Hyprland with elogind, but I still couldn't get hypridle to work (which motivated me to report this here).

I then realized that, even with elogind, I had to do something manually (via shell script) that should be automatic: creating the XDG_RUNTIME_DIR environment.

I then discovered that sys-apps/shadow was compiled without the PAM flag (but elogind was). This is necessary for the automatic creation of the XDG_RUNTIME_DIR environment.

Although seatd is a dependency on Hyprland, it does not need to be run if elogind is being used, as long as polkit is compiled with the daemon flag (and obviously seatd compiled with the elogind flag).

Having done all this, everything is working now.
Out of curiosity, I would just like to know if it would be possible to use hypridle without elogind and polkit, that is, only with seatd. Would some environment variable have to be prepared for hypridle to recognize libseat without elogind? I reinforce again that without elogind I couldn't make it work.

Out of curiosity, I would just like to know if it would be possible to use hypridle without elogind and polkit, that is, only with seatd.

This is what I am doing currently, using seatd (the daemon) and turnstile. I recently had a PR merged (#76) that makes logind optional.
Alternatively to turnstile, you can use pam_rundir to set XDG_RUNTIME_DIR. I have ebuilds for both in my overlay if you want to have a look.

I installed turnstile and recompiled seatd without elogind (in fact I removed this flag from the entire system, thus being able to remove elogind and polkitd).
I added turnstiled to the boot runlevel and seatd to the default runlevel.
The XDG_RUNTIME_DIR environment is automatically prepared by turnstiled and Hyprland runs normally (with the help of seatd).
However, when I run hypridle, I now encounter the following error:
[CRITICAL] Couldn't connect to logind service ([org.freedesktop.DBus.Error.ServiceUnknown] The name org.freedesktop.login1 was not provided by any .service files)

You currently either need to run the main version of hypridle until the next release or patch v0.1.2 with 76.txt
(Put the above file at /etc/portage/patches/gui-apps/hypridle-0.1.2/76.patch)
A side note, not really important: turnstiled is fine in the default runlevel.

Thank you very much, it worked with the patch: hyprland and hypridle without elogind and polkitd.


Build package for VIM syntax plugin

Not a package but also useful: use Vundle.
set nocompatible              " be iMproved, required
filetype off                  " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'

Plugin 'quattor/pan', {'rtp': 'pan-vim/'}

call vundle#end()            " required
filetype plugin indent on    " required


iPad Pro. Unable to Checkout. Using Different Billing and Shipping Addresses.

iPad Pro
iOS 11.0.3
Steps to Reproduce:

Open Spartacus storefront in ccv2 env.
Login as registered user.
Add products to cart and proceed to checkout.
Add new shipping address or select stored address.
In payment method tab, enter a new credit card, and a new billing address. (De-select "use same shipping address)
Enter a new billing address.
Proceed to place order.

Expected Results:
7. Order placed successfully.
Actual Results:
Error message displayed. Missing state/province field. Billing address not accepted.
Unable to add alternative billing address (i.e. different than shipping address).
Unable to complete order even after selecting an OK credit card.
Basically, I have to log out and log back in to start checkout process again.

@giancorderoortiz 	please provide address that was used in 'new billing address' form. I can't reproduce that error on Mac atm.
on the second hand I might know what could cause this problem, will check that

Able to reproduce on Mac, Chrome. Public Spartacus server.
Billing address used:
Country: Canada
First name: Yogi
Last name: Bera
Address 1: 444 North Avenue
Address 2: Apt 5
City: Toronto
Zip Code: HTS J2R
Province/State (Field not available)

https://github.com/SAP/cloud-commerce-spartacus-storefront/issues/93#issuecomment-460266509
I have to check if the change from the link above was made.

Find another bug, reopen this ticket

Will fix it in another ticket.

Will be fixed in #3255

Test successful in dev-com17.
Able to checkout using a new billing address. 🆗
Permutations tested:

New user -> no stored addresses, nor payment types.
Registered user -> no stored addresses.
Registered user -> stored addresses, stored payment types.
Registered user -> stored addresses.


Is the schema for dynamic metric alert different from static metric alert?

When you define metric alert rule there are different properties if the alert is static or dynamic. Does that difference also reflects the schema? From what I can see the example is for static metric alert so I wonder if it is the same for dynamic one. It is important as if you create logic app or any other automation to process the schema it might fail if there is difference.

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

ID: 525c43f0-5145-a4f3-c6ef-f06cb113b73d
Version Independent ID: 17475989-7cb6-fb37-0e5f-c420f13621c5
Content: Alert schema definitions in Azure Monitor - Azure Monitor
Content Source: articles/azure-monitor/alerts/alerts-common-schema-definitions.md
Service: azure-monitor
Sub-service: alerts
GitHub Login: @ofirmanor
Microsoft Alias: robb

@slavizh Thanks for your comment. We will review the issue and get back to you shortly.

@harelbr Can you please answer the question?

@slavizh Thank you for this comment.
The schema (alertContext section) is different for dynamic threshold alerts, as it contains unique fields.
I've just issued an update to the documentation and added an example for a dynamic threshold alert. Thanks again!

Thanks @harelbr for updating the document.
@slavizh We will close the issue for now. If there are further questions , please revert and we will be glad to assist you.


rye for packaging

I suggest using rye to manage, as its compatible with rust interop good for solana
https://rye.astral.sh/

can you test with package 2.1.8 and see if your dependency problems are resolved? Please provide any immediate feedback on it, we will look into rye. Appreciate the insight!


Deduplicate Docker images for gaiad

The ibc-0 and ibc-1 images were only really different in the content of the chain data directory, which is copied from the repository checkout.
To save building Gaia twice and occupying twice the space on the Docker repo, build and push the gaiad image once and reuse it for the two node container instances in CI, specifying volume mounts of the respective chain data directories from the repository checkout.

What is the status and intention with this PR?

Superseded by #2471.


add deeplabv3P segmentation control for controlnet

Please complete and upload the readme document asap.

Please complete and upload the readme document asap.

Please complete and upload the readme document asap.

Already complete

LGTM


Support percentage value for caption max width

Support a percentage value (instead of an absolute value) for caption max width. The percentage should be taken as a fraction of the available space (not the width of the object being captioned).

This is slightly complicated because technically we are missing a dimension. When the max-width is set to a fixed value (absolute or percentage), there are two possible alignments. First, is the alignment of the text within that width. The second is the position of restricted-width caption. Right now, these two properties are joined. So if you set max-width to 50% and align to center, the caption will be aligned to the center of the page and the text will be center aligned within the caption box.
Perhaps as a follow-up we can split these properties. If we followed CSS, we would rename align to text-align. But I fear that would be too big a change, esp at this point. Better would be to add a new property to control the horizontal position of the caption box, perhaps position (e.g., position: center). (We could also consider align-self or justify).

As far as this change is concerned, the two alignment properties will stay linked.


Unable to create Dev Drive

Dev Home version
<IP_ADDRESS>
Windows build number
10.0.23466.1001
Other software
OS Build Version: 10.0.23466.1001.amd64fre.ni_prerelease.230522-1422
.NET Version: .NET 6.0.16
Steps to reproduce the bug
Moved to Dev channel and installed latest channel build.
Expected result
No response
Actual result
UI options to create the dev drive are not available.
Included System Information
CPU: AMD Ryzen 7 6800HS with Radeon Graphics
Physical Memory: 15.23GB (6.4GB free)
Processor Architecture: x64
Included Extensions Information
Extensions:
Microsoft.Windows.DevHome_<IP_ADDRESS>_x64__8wekyb3d8bbwe
Microsoft.Windows.DevHomeGitHubExtension_<IP_ADDRESS>_x64__8wekyb3d8bbwe

/dup #933


"code: [32m'MODULE_NOT_FOUND' [39m," when running node bot.js

All the files in the repo are intact.

you are supposed to cd into the repo first....

and how do we do that?

you are supposed to cd into the repo first....

wdym?

I cdED into the repo, still same error

you are supposed to cd into the repo first....

how do we do this exactly?

@Tezrk use cd downloads then go further till you find the file then do npm install

Try to install the module manualy.
When o tried to install some program in Python it gave me that the module not found, then I tried in another window pip3 inatall NameOfModule and it worked.I know this is JavaScript not Python but it should be the same.

do
npm i discord.js


Fix mispelled mayor's name: Scaaf -> Schaaf

Great catch! Thanks!

@teddywilson If you all need any additional help adding emails, I'd be happy to lend a hand.


Document [package] section

I've seen in multiple issues people referencing [package] section in pyproject.toml. Apparently, you can define some useful things there, like includes.
I need to be able to define the package path that's different from the package name. I think this may be a thing solvable with [package], but there are no docs about it at all, so I can't even check if my problem has been solved yet.

I just stumbled across the includes/excludes section and didn't find it useful either. I'm trying to include a NOTICE file, which lives in the top-level directory of my repository, in the distribution packages created by poetry build.
Has anyone had success doing something like this?

The include/exclude sections are not yet implemented. This is some leftover of the previous pypoet project.
Regarding the [package] section: this is also a leftover (sorry about that). This is now the root section [tool.poetry].


Fix conditional example missing return

Hello there.
Nice examples you have here! I found some missing return while I was reading it :)

Thank you, @cristianoliveira :)


debug_test() will potentially execute multiple tests

First of all, Hello :) This is a grate simple plugin, thank you for developing it ! I'm not sure if this is a bug, or intended behavior.
Given a test file:
func Test_SimpleTest(t *testing.T) {
	fmt.Println("Test_SimpleTest")
}

func Test_SimpleTest_SpecialCase(t *testing.T) {
	fmt.Println("Test_SimpleTest_SpecialCase")
}

func Test_OtherSimpleTest(t *testing.T) {
	fmt.Println("Test_OtherSimpleTest")
}

Running lua require('dap-go').debug_test() on  Test_SimpleTest will execute  Test_SimpleTest and Test_SimpleTest_SpecialCase.
REPL output:
Type 'dlv help' for list of commands.

[debug-adapter stdout] Test_SimpleTest

[debug-adapter stdout] Test_SimpleTest_SpecialCase
PASS

This happens because the -test.run arguments value is passed as plain name (in this case Test_SimpleTest) and dlv will match all tests in the file that contain this substring in their names.
Possible fix:
Add regex line anchors to the -test.run argument value.
local function debug_test(testname, testpath, build_flags)
  local dap = load_module("dap")
  dap.run({
    type = "go",
    name = testname,
    request = "launch",
    mode = "test",
    program = testpath,
    args = { "-test.run", "^" .. testname .. "$" },
    buildFlags = build_flags,
  })
end

Hey! Thank you!
That is a good point. Have you tried the proposed solution to make sure it works?

@leoluz Yes I have :)  Here is my analysis.
For given test samples:
func Test_SimpleTest_Nested(t *testing.T) {
	t.Run("example", func(t *testing.T) {
		fmt.Println("Test_NestedTest_example")
	})

	t.Run("example 1", func(t *testing.T) {
		fmt.Println("Test_NestedTest_example 1")
	})

	t.Run("example 2", func(t *testing.T) {
		fmt.Println("Test_NestedTest_example 2")

		t.Run("example 2.1", func(t *testing.T) {
			fmt.Println("Test_NestedTest_example 2.1")
		})
	})
}

func Test_SimpleTest(t *testing.T) {
	fmt.Println("Test_SimpleTest")
}

func Test_SimpleTest_SpecialCase(t *testing.T) {
	fmt.Println("Test_SimpleTest_SpecialCase")
}

func Test_OtherSimpleTest(t *testing.T) {
	fmt.Println("Test_OtherSimpleTest")
}

The current algorithm will generate following test name passed to dlv:
Test_SimpleTest_Nested
Test_SimpleTest_Nested/example
Test_SimpleTest_Nested/example_1
Test_SimpleTest_Nested/example_2
example_2/example_2.1
Test_SimpleTest
Test_SimpleTest_SpecialCase
Test_OtherSimpleTest

We can observe that without the line anchors Test_SimpleTest and Test_SimpleTest_Nested/example   will also trigger execution of other tests.
Test_SimpleTest -> Test_SimpleTest, Test_SimpleTest_Nested and Test_SimpleTest_SpecialCase
Test_SimpleTest_Nested/example -> Test_SimpleTest_Nested/example, Test_SimpleTest_Nested/example_1 and Test_SimpleTest_Nested/example_2
And ofc example_2/example_2.1 does not work and wont result in any test being executed.
I have tested the proposed solution on all the cases, and it seems to work just fine.  (ofc except of the example_2/example_2.1 case)
Off-topic:
I have also noticed that nvim-dap-go currently won't execute single testify suite test methods, only the whole suite. I will crate a separate issue describing the problem.

The main issue is now fixed in https://github.com/leoluz/nvim-dap-go/commit/1b508e9db330108d3b5d62a6d9cc01fe6bbdd4e0 .
The example_2/example_2.1 case is a known issue (https://github.com/leoluz/nvim-dap-go/issues/39)
Thank you for the great details in your issue.


Write deploy script for testnet

Dework assigned me this because I assigned myself the Dework task for issue number 36 on the frontend repo 👀


Proposal - A benchmark showing slow down on memory reads due to cache misses

Hey! Thanks for the interesting compilation of topics / benchmarks.
The "Test your CPU's branch predictor with just 10 lines of code." specifically made me recall an experimentation I've conducted couple of years ago to get a real feeling for the hardware specifics (cache line and prefetching, just like branch predictor) that one ought to know if performance is at all a concern.
To test it I enginereed a test of sequential and random access of the elements of a contigeous array

And as one would expect at some point the slow down is considerable and it can also help pinpoint the actual L2 / L3 cache size of my CPU (it was an old i4700k when I measured this originally).

It was a trivial experiment with unsurprising but nonetheless interesting results and in isolation I did not see any point of publishing it. If you find this s of interest for the repo I can integrate the same benchmark for less_slow.cpp.

Sure, that sounds like a nice addition! Thank you @armmah 🤗


CI Does Not Build with Uppercase Chars in $GITHUB_REPOSITORY variable

For anyone that has either a username or a repository name in GitHub that contains capital letters, the build job will fail. For example, my username is WayneLambert, therefore my build process failed with the following in the traceback:
Run docker-compose -f docker-compose.ci.yml build
  docker-compose -f docker-compose.ci.yml build
  shell: /bin/bash -e {0}
  env:
    WEB_IMAGE: docker.pkg.github.com/WayneLambert/django-github-digitalocean/web
    NGINX_IMAGE: docker.pkg.github.com/WayneLambert/django-github-digitalocean/nginx
Building web
invalid reference format: repository name must be lowercase
##[error]Process completed with exit code 1.

Full image below:

By the look of things, the variable takes the repository name as a concatenation of the username and the repository name exactly as it is.

I circumvented the unnecessary variable by just hardcoding the actual url. In my case, my github username is pattoM and the capitalized m was bringing on issues.

Yes, you can hard code the value and it will then build but if your goal is to build a template for future projects, then you can replace $GITHUB_REPOSITORY with $(echo $GITHUB_REPOSITORY | tr '[:upper:]' '[:lower:]') and it will build.


add dbt server repo

adding public dbt server repo for sl docs
Description & motivation

To-do before merge

Prerelease docs
If this change is related to functionality in a prerelease version of dbt (delete if not applicable):

[ ] I've added versioning components, as described in "Versioning Docs"
[ ] I've added a note to the prerelease version's Migration Guide

Checklist
If you added new pages (delete if not applicable):

[ ] The page has been added to website/sidebars.js
[ ] The new page has a unique filename

If you removed existing pages (delete if not applicable):

[ ] The page has been removed from website/sidebars.js
[ ] An entry has been added to _redirects
[ ] Run link testing to update the links that point to the deleted page

hi @callum-mcdata can i ask you to review this for technical accuracy? once you have a look, I'll then ask the docs team for a review. many thanks!

made those changes now @callum-mcdata !


Bugfix: replace mctx.virt_pmp_offset by mctx.pmp_virt_pmp

And the mistery of the PMP problem has been solved

@CharlyCst I know the protect payload policy test is broken now. In the commit with explicit forwarding rules I will fix everything.


Generate compressed binary file to CirclCI artifacts

The CI script is not smart, but it works now. The built compressed binary files are now on CI Server.

It looks like the Linux file has issue. Investigating it :eyes:
[4055] Error loading Python lib '/tmp/_MEIbjvQZx/libpython3.7m.so.1.0': dlopen: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /tmp/_MEIbjvQZx/libpython3.7m.so.1.0)

[4055] Error loading Python lib '/tmp/_MEIbjvQZx/libpython3.7m.so.1.0': dlopen: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /tmp/_MEIbjvQZx/libpython3.7m.so.1.0)

Fixed it on my local tests.
Because the circleci/python:3.7 docker image was with a newer Ubuntu version, so the machine with an older version may have this issue.
I changed it to using machine Ubuntu 16.04 (image: ubuntu-1604:202007-01) and rebuild Python for using PyInstaller... it takes more resources then before but we can optimize it with a custom and cleaner docker image later.


Required to use actual SMTP-server for email alerts?

Given a setup where a host running elastalert has nullmailer configured my assumption was that elastalert would be able to use sendmail (or rather the alternative implementation provided by nullmailer) for delivery to the final recipient.
After reading the elastalert code I get the impression that elastalert cannot use sendmail. Is this correct?

You could probably use the command alerter with sendmail. For example
alert: command
command: ["/usr/bin/sendmail", "-i"<EMAIL_ADDRESS>pipe_alert_text: true

where recipient is a field in the match.
I haven't tried this exactly but I don't see why it shouldn't work.

That does indeed work well. Seems command-alerts is the way to go if one wants SSL/TLS.

Oh, and thank you. :)

"if one wants SSL/TLS"
ElastAlert supports both SMTP starttls extension and connecting to SMTP over transport layer TLS.

Yeah, that was actually me being blind while reading the documentation. I had missed the fact that user and password was supposed to be placed in a separate file pointed to by smtp_auth_file. :man_facepalming: So what happened was that python threw a slew of generic protocol errors, with absolutely no hints about what was wrong. I have no idea how I missed that smtp_auth_file parameter while reading the docs (several times I might add). That one is on me. Thanks for helping. :)

Ah, easy to miss, the documentation layout could use some serious love.


VSCode 1.86.2 on Mac formats files on save when Format On Save is disabled

I’m having an issue with vscode 1.86.2 on the Mac where my files are being formatted when I save, even though the Format on Save option is disabled.
I opened a Dockerfile, modified a few lines, then hit Cmd-S to save the file, and it automatically changed the indentation on a few lines that I did not change. I verified that Format On Save was unchecked, restored the original indentation, then saved the file again, and vscode reformatted the indentation on those lines again.
I was able to work around the issue by changing the option Format On Save Mode to modifications.

It looks like the issue is caused by one of your installed extensions. All extensions execute together on a single nodejs process, so in order to narrow down the possible problematic extension, please try the following:

run F1 > Help: Start Extension Bisect
(this will restart VS Code with half of your extensions disabled)
try to do the steps which reproduce the problem
if the problem reproduces, click "This is bad" (this narrows down the problematic extension to the half which was enabled)
if the problem does not reproduce, click "Good now" (this narrows down the problematic extension to the half which was disabled)
these steps will repeat until the problematic extension is found

initial
step
final

The problem appears to be in the vscode docker extension:

I've confirmed that leaving the extension disabled fixes the issue.

This issue is caused by an extension, please file it with the repository (or contact) the extension has linked in its overview in VS Code or the marketplace for VS Code. See also our issue reporting guidelines. If you don't know which extension is causing the problem, you can run Help: Start extension bisect from the command palette (F1) to help identify the problem extension.
Happy Coding!


Fixed flow errors because of empty array literals

This was giving me like 200 flow errors because of empty array literals on translation files.
ie: https://github.com/nmn/react-timeago/blob/master/src/language-strings/de-short.js#L22
IDK whether it's better to change the root of the error or tell flow to accept it, but for now I'm leaving this on my fork.
Thanks :+1:

I believe it creates even more errors atm. Need to look deep into it.


[Request] Add support for Expanded Storage and

Placing containers from the following mods to not cause htm to lock them.
https://www.curseforge.com/minecraft/mc-mods/expanded-storage
https://www.curseforge.com/minecraft/mc-mods/mythicmetals-decorations

If you are wanting those mods to be autolocked when placed, you can add those containers to the "autolockingContainers" list of the config.
just paste the below in a new line after "minecraft:black_shulker_box", (assuming that you have not changed the autolocking containers config, otherwise just paste it into the list and make there are commas on every line except the last on in the list b4 the ])
"mythicmetals_decorations:aquarium_chest",
"mythicmetals_decorations:silver_chest",
"mythicmetals_decorations:platinum_chest",
"mythicmetals_decorations:adamantite_chest",
"mythicmetals_decorations:bronze_chest",
"mythicmetals_decorations:manganese_chest",
"mythicmetals_decorations:carmot_chest",
"mythicmetals_decorations:stormyx_chest",
"mythicmetals_decorations:midas_gold_chest",
"mythicmetals_decorations:osmium_chest",
"mythicmetals_decorations:runite_chest",
"mythicmetals_decorations:prometheum_chest",
"mythicmetals_decorations:star_platinum_chest",
"mythicmetals_decorations:orichalcum_chest",
"mythicmetals_decorations:banglum_chest",
"mythicmetals_decorations:orichalcum_chest",
"mythicmetals_decorations:quadrillum_chest",
"mythicmetals_decorations:carmot_chest",
"mythicmetals_decorations:celestium_chest",
"mythicmetals_decorations:durasteel_chest",
"mythicmetals_decorations:mythril_chest",
"mythicmetals_decorations:hallowed_chest",
"mythicmetals_decorations:kyber_chest",
"mythicmetals_decorations:metallurgium_chest",
"mythicmetals_decorations:quadrillum_chest",
"mythicmetals_decorations:steel_chest",
"mythicmetals_decorations:palladium_chest",
"expandedstorage:iron_chest",
"expandedstorage:old_iron_chest",
"expandedstorage:old_gold_chest",
"expandedstorage:old_diamond_chest",
"expandedstorage:netherite_barrel",
"expandedstorage:obsidian_barrel",
"expandedstorage:diamond_barrel",
"expandedstorage:gold_barrel",
"expandedstorage:old_netherite_chest",
"expandedstorage:iron_barrel",
"expandedstorage:wood_chest",
"expandedstorage:pumpkin_chest",
"expandedstorage:present",
"expandedstorage:gold_chest",
"expandedstorage:diamond_chest",
"expandedstorage:obsidian_chest",
"expandedstorage:netherite_chest",
"expandedstorage:old_wood_chest"

Placing containers from the following mods to not cause htm to lock them.
https://www.curseforge.com/minecraft/mc-mods/expanded-storage
https://www.curseforge.com/minecraft/mc-mods/mythicmetals-decorations

If you are wanting those mods to be autolocked when placed, you can add those containers to the "autolockingContainers" list of the config.
just paste the below in a new line after "minecraft:black_shulker_box", (assuming that you have not changed the autolocking containers config, otherwise just paste it into the list and make there are commas on every line except the last on in the list b4 the ])
"mythicmetals_decorations:aquarium_chest",
"mythicmetals_decorations:silver_chest",
"mythicmetals_decorations:platinum_chest",
"mythicmetals_decorations:adamantite_chest",
"mythicmetals_decorations:bronze_chest",
"mythicmetals_decorations:manganese_chest",
"mythicmetals_decorations:carmot_chest",
"mythicmetals_decorations:stormyx_chest",
"mythicmetals_decorations:midas_gold_chest",
"mythicmetals_decorations:osmium_chest",
"mythicmetals_decorations:runite_chest",
"mythicmetals_decorations:prometheum_chest",
"mythicmetals_decorations:star_platinum_chest",
"mythicmetals_decorations:orichalcum_chest",
"mythicmetals_decorations:banglum_chest",
"mythicmetals_decorations:orichalcum_chest",
"mythicmetals_decorations:quadrillum_chest",
"mythicmetals_decorations:carmot_chest",
"mythicmetals_decorations:celestium_chest",
"mythicmetals_decorations:durasteel_chest",
"mythicmetals_decorations:mythril_chest",
"mythicmetals_decorations:hallowed_chest",
"mythicmetals_decorations:kyber_chest",
"mythicmetals_decorations:metallurgium_chest",
"mythicmetals_decorations:quadrillum_chest",
"mythicmetals_decorations:steel_chest",
"mythicmetals_decorations:palladium_chest",
"expandedstorage:iron_chest",
"expandedstorage:old_iron_chest",
"expandedstorage:old_gold_chest",
"expandedstorage:old_diamond_chest",
"expandedstorage:netherite_barrel",
"expandedstorage:obsidian_barrel",
"expandedstorage:diamond_barrel",
"expandedstorage:gold_barrel",
"expandedstorage:old_netherite_chest",
"expandedstorage:iron_barrel",
"expandedstorage:wood_chest",
"expandedstorage:pumpkin_chest",
"expandedstorage:present",
"expandedstorage:gold_chest",
"expandedstorage:diamond_chest",
"expandedstorage:obsidian_chest",
"expandedstorage:netherite_chest",
"expandedstorage:old_wood_chest"


Idea: componentized designer wizard

Currently when you choose to add an "ADO.NET Entity Data Model" to a project we offer a fixed set of options:

Considering:

recent feedback indicating that some customers used to EF6 don't know how to start using EF Core and
the existence of third party utilities that allow creating EF models such as the @sjh37's Reverse POCO generator or @ErikEJ's  SQLite Toolbox, and also commercial offerings such as https://www.llblgen.com/ and https://www.devart.com/entitydeveloper/,

we are starting to think about:

Turning the first page of the wizard into an extensible launch pad for our own and third party extensions
Adding default EF Core options there
Possibly standardizing on ways to differentiate between options that

Create empty models vs. models from existing databases
Support Entity Framework 6 or below vs. Entity Framework Core

Possibly changing the name of "ADO.NET Entity Data Model" to something more accurate, e.g. "Entity Framework model".

@sjh37 !

Could you create a new wizard in WPF by reusing some available options? This Windows Forms dialog is extremely outdated.

@xperiandri we would consider that if there is a lot of value in it, otherwise we will go with minimal changes. Could you explain what the advantages would be?

EF Team Triage: This issue is not something that our team is planning to address in the EF6.x code base.  This does not mean that we would not consider a community contribution to address this issue.
Moving forwards, our team will be fixing bugs, implementing small improvements, and accepting community contributions to the EF6.x code base. Larger feature work and innovation will happen in the EF Core code base (https://github.com/aspnet/EntityFramework).
Closing an issue in the EF6.x project does not exclude us addressing it in EF Core. In fact, a number of popular feature requests for EF have already been implemented in EF Core (alternate keys, batching in SaveChanges, etc.).
BTW this is a canned response and may have info or details that do not directly apply to this particular issue. While we'd like to spend the time to uniquely address every incoming issue, we get a lot traffic on the EF projects and that is not practical. To ensure we maximize the time we have to work on fixing bugs, implementing new features, etc. we use canned responses for common triage decisions.


linuxPackages.perf: fix cross-compilation by providing HOSTLD

Description of changes
Fairly trivial fix, we already provide HOSTCC, also provide HOSTLD. This is done for the generic kernel builder and for all builds (not just cross), I don't think there's any reason to make the fix specific to perf or to cross builds.
Note: this causes rebuilds for all kernel packages, happy to rebase this to staging if you think that's too many rebuilds (I've been told in the past that kernel changes don't usually end up going through staging?).
@ofborg build linuxPackages.perf pkgsCross.aarch64-multiplatform.linuxPackages.perf
Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

@trofi since you're the only one who's had a look at this so far, any thought on staging vs. master? It's the only open question that's really remaining here.
If you think it's fine on master I'll just merge this since I don't think we have an active maintainer for perf anymore (looking at viric's github activity).

Good question. I'd say normally 1000+ packages (or a non-trivial change) is a natural candidate for staging. I was wondering if kernels (and their deps) specifically are faster to build and thous had a chance to get to master faster. I ran the nixpkgs-review locally and it did not finish in 2 hours,
Thus I suggest switching to staging.

@ofborg build linuxPackages.perf pkgsCross.aarch64-multiplatform.linuxPackages.perf


Add community details for JS-SDK

Signed-off-by: Shubham Sharma<EMAIL_ADDRESS>This PR adds a link to the JS-SDK community calls.

/ping @nyemade-uversky


hexRegistrySnapshot: d58a937 -> e88db1f

Depends on erlang-nix/hex-pm-registry-snapshots#2.
Update: https://github.com/erlang-nix/hex-pm-registry-snapshots/pull/2 has been merged.

[ ] Update to depend on https://github.com/erlang-nix/hex-pm-registry-snapshots/commit/e5e494acc046877c1b4dc96f3fcbcf74ca1740cc instead

Motivation for this change
The previous version is several months old.
/cc @ericbmerritt @gleber
Things done

[ ] Tested using sandboxing
(nix.useSandbox on NixOS,
or option build-use-sandbox in nix.conf
on non-NixOS)
Built on platform(s)

[ ] NixOS
[x] macOS
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

I'll make the update mentioned above and rebase shortly, amending the title and commit message accordingly.

Superseded by https://github.com/NixOS/nixpkgs/commit/705bdce17ecfd5dcc0e66f4b942e3841cda7fbf1.


Salvaging previous work and going further

So far, this includes the preface and chapters 1 and 2.

Great work!


Get real-life data about traffic situations.

Search for real-life traffic data which we can use to test.
Experiment with Open Street Map data

Some data available here:
http://prdownloads.sourceforge.net/sumo/fsp_speed_and_lengths.tar?download
Also, two publications where this data was used:
Petty K.F.; Noeimi H.; Sanwal K.; Rydzewski D.; Skabardonis A.; Varaiya P.; Al-Deek H.; "The freeway service patrol evaluation project: database support programs, and accessibility"; In: Transportation Research Part C: Emerging Technologies, Volume 4, Number 2, April 1996 , pp. 71-85(15), Elsevier
"An Example of Microscopic Car Models Validation using the open source Traffic Simulation SUMO"; Daniel Krajzewicz, Georg Hertkorn, Christian Rössel, Peter Wagner; In: Proceedings of Simulation in Industry, 14th European Simulation Symposium, 2002, SCS European Publishing House, 2002, pp. 318-322, Simulation in Industry, 14th European Simulation Symposium, Oct. 2002, Dresden / Germany
Source: http://sumo.dlr.de/wiki/Data/Traffic_Data


Charts[Network Node]: Ensure OTel collector is able to export metrics and traces

We need to ensure the following:

Node metrics are exported through OTel collector to external Prometheus
Traces are exported through OTel collector to external Grafana OTLP endpoint
Grafana dashboard has these sets of charts: https://github.com/hashgraph/hedera-services/tree/develop/hedera-node/infrastructure/grafana/dashboards/production/hedera-node

:tada: This issue has been resolved in version 0.8.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Fixed randomly selected date when using rangeHoverEffect=false and ch…

Fixes the following testcase:

Set rangeHoverEffect to false
Pick a beginning date.
Click next month

Then a randomly end date and range is semiselected.

Also closes #141

@SaturnTeam Hi, remember to update the version on NPM, thanks!


Translate attribute affecting multiple binding when blankspace.

Subject of the issue
When using the translate attribute with a value of blank space with a multiple binding, Angular only parses the last binding.
Your environment

Angular Translate: 2.10.0
Angular: 1.4.8
Browser: Google Chrome 50.0.2661.86

Steps to reproduce
JS Bin
Expected behaviour
The expected behaviour is for the translate attribute to be ignored and parse all values.
Actual behaviour
The actual behaviour is Angular parsing only the last binding.
Code:

      Hello {{demo.name}} of {{demo.planet}}, my name is {{demo.author}}. Is your name {{demo.author}}?

app.controller('DemoCtrl', function() {
  this.name = 'world';
  this.planet = 'earth';
  this.author = "Jordan";
});

Output:
Hello {{demo.name}} of {{demo.planet}}, my name is {{demo.author}}. Is your name Jordan?
Note
A question that will come up is the reasoning for having the translate attribute when you aren't translating. I've read examples and personally use it myself for keeping track of elements that will be or are currently being translated.

You are holding it the wrong way. :)
Seriously, this is the correct way of using both filters and directives. I suggest visiting our guide at https://angular-translate.github.io/docs/#/guide/05_using-translate-directive.
In short: Either use the directive or the filter.. but not mixing it. Speaking of your case (with variables), the section about params is also interesting: https://angular-translate.github.io/docs/#/guide/06_variable-replacement

@knalli Thanks for the response and information. I agree my usage isn't in line with the documentation but I do feel that the translate attribute shouldn't be affecting Angular's parsing if nothing is being translated.
The translate attribute should act the same way as other HTML attributes and not cause issue if nothing is set. This can be seen with the style attribute not affecting the style of a DOM element if set to blank space here.

Nope. You are using the directive not as is should be used. If the attribute translate is empty, the innerHTML will be used.


feature/evil: add org-agenda-mode to evil-snipe-disabled-modes

Before this commit, pressing t in org-agenda buffer resulted in activation of evil-snipe instead of setting todo state as how it is intended by evil-org
(If this was on purpose and Doom has some custom way for setting todo states from org-agenda buffers I am not aware, I apology for pointless pull request)

This was definitely an oversight and I'm glad to see it corrected. Thanks!


Limit disabling of REs that include ChoiceSets with no selection

This is tough to understand from the PR name. Glancing at the code, is it that you're limiting to those that pass the predicate? Aka skipping disabling from choice sets that fail predication?


Card Menu isn't working

The card menu today only provides a single action, namely to adjust the font size. When the menu is clicked, there is the console output:
react.development.js:220 Warning: Failed prop type: The prop `setFilters` is marked as required in `SettingsCard`, but its value is `undefined`.
    at SettingsCard (http://localhost:3000/_next/static/chunks/pages/_app.js?ts=1635938399312:287462:19)
    at Card (http://localhost:3000/_next/static/chunks/pages/_app.js?ts=1635938399312:286269:18)

The font size dialog actually opens:

The dialog is draggable, but if you attempt to use the slider, Next.js shows:

From discord conversation: probably not passing setFilters function as a prop to Card component. I suggest looking at the gateway-edit code to see how we implemented this. Will look into it.
(thanks @mannycolon )


Exceptions in mps due to limited AMT resources

Describe the bug 🪲
AMT resources (enumeration contexts for example) are limited.  If too many requests are sent to a computer over CIRA in a given time frame, some will fail, typically with a CHANNEL_OPEN_FAILURE with either code 2 or 4.  This results in an exception and the API call fails.
Code 2 is OPEN_CONNECT_FAILED and code 4 is OPEN_RESOURCE_SHORTAGE.
It is particularly bad if the Pull for an enumeration fails as the enumeration context will be lost until it times out.  One fewer context makes the problem more likely.
This isn't the fault of the caller.  MPS needs to do some kind of flow control and only let so many requests over CIRA be active at once - especially with enumerations.  Failures need to be retried - preferably after a delay.
To Reproduce 🪜
Steps to reproduce the behavior:
These exceptions do occur randomly, but the following is almost certain to generate these errors.

Set MPS logging to "silly" and restart MPS.  Wait for devices to reconnect with CIRA.
Use the sample UI to go to the device details page for a device connected using CIRA.
Reload the page several times quickly in succession.

Note that error messages will flash on the page, and some data will not be filled in.  Further attempts to refresh the page may generate more errors and different data will not be filled in.
The MPS logs will have errors like this:
2022-08-03T06:47:47.739Z silly: MPS: CHANNEL_OPEN_FAILURE, 794, 4
2022-08-03T06:47:47.740Z info: getComputerSystemPackage getResponse :
2022-08-03T06:47:47.740Z silly: getComputerSystemPackage Complete
2022-08-03T06:47:47.740Z error: Exception during AMT Hardware Information request : TypeError: Cannot read properties of null (reading 'Envelope')
2022-08-03T06:47:47.741Z debug: Event message published
2022-08-03T06:47:47.749Z debug: end of request, closing channel
2022-08-03T06:47:47.750Z debug: end of request, closing channel
2022-08-03T06:47:47.750Z silly: MPS: CHANNEL_OPEN_FAILURE, 795, 4
2022-08-03T06:47:47.751Z silly: getRedirectionService Complete
2022-08-03T06:47:47.752Z error: Exception during AMT Features request: TypeError: Cannot read properties of null (reading 'Envelope')

and later, after restarting everything:
2022-08-03T20:57:04.637Z silly: MPS: CHANNEL_OPEN_FAILURE, 41, 2
2022-08-03T20:57:04.638Z info: getChassis getChassis :
2022-08-03T20:57:04.638Z silly: getChassis Complete
2022-08-03T20:57:04.638Z error: Exception during AMT Hardware Information request : TypeError: Cannot read properties of null (reading 'Envelope')

Expected behavior
The page should reload with no errors.
AMT Device (please complete the following information): 🖥

OS: Windows
AMT Version: 15.0.41
AMT Configuration Mode: CCM
Network Configuration: Dynamic IP

Service Deployment (please complete the following information): ⛈

Deployment Type: Docker
Node Version: 16
Component & Version: latest

I added socket.tag.activetunnels to the CHANNEL_OPEN_FAILURE log message.  In almost all cases, activetunnels was 8 when a failure occurred with reasonCode of 4.  There were a few of 7, but that can be explained by the fact that activetunnels isn't incremented until after a channel is setup, so an eighth channel was likely being setup at the time of the failure.
Given this, it seems that this particular AMT BIOS has a limit of 8 simultaneously open channels.
I suggest only allowing some number of simultaneous channels less than 8.  It can easily be done with an "await semaphore" in CIRAHandler.ExecRequest() as follows:
npm install await-semaphore

CIRAHandler.ts:
import { Semaphore } from 'await-semaphore'

...
export class CIRAHandler {
  xml: string
  httpHandler: HttpHandler
  username: string
  password: string
  channel: CIRAChannel
  channelState: number = 0
  connectAttempts: number = 0
  socket: CIRASocket
  semaphore: Semaphore
  constructor (httpHandler: HttpHandler, username: string, password: string) {
    this.username = username
    this.password = password
    this.httpHandler = httpHandler
    // I chose 4 simultaneous channels, half the assumed maximum
    this.semaphore = new Semaphore(4)
  }

...
    async ExecRequest (xml: string): Promise<any> {
    // If it weren't for the recursive call, we could probably
    // wrap the entire function contents with this.semaphore.use()
    const release = await this.semaphore.acquire()
    if (this.channelState === 0) {
      this.channelState = await this.Connect()
    }
    if (this.channelState === 2) {
      try {
        if (this.httpHandler.isAuthInProgress == null) {
          this.httpHandler.isAuthInProgress = new Promise((resolve, reject) => {
            this.httpHandler.authResolve = resolve
          })
        } else {
          await this.httpHandler.isAuthInProgress
        }
        const data = await this.channel.write(xml)
        const parsedData = this.handleResult(data)
        release()
        return parsedData
      } catch (error) {
        if (error?.message === 'Unauthorized' || error?.message === 'Closed') {
          this.channelState = this.channel.CloseChannel()
          release()
          return await this.ExecRequest(xml)
        } else {
          release()
          throw error
        }
      }
    }

    release()
    return null
  }

Limited testing so far indicates that this works.
The reasonCode 2 failures are likely due to a limit on the number of wsman connections the BIOS can handle simultaneously; if only one, then perhaps the number of pending connections allowed.  Either way, reducing the number of simultaneous channels will also reduce the number of connections to wsman too and this error hasn't been seen with the above charge.

Well, that is a rock I wish I hadn't turned over...
There are still occasional reasonCode 2 channel open failures that will need to be retried.
In addition, there are some enumeration failures claiming (see below): "The action could not be completed due to concurrency or locking problems.", so it looks like the number of simultaneous enumerations needs to be limited.
Furthermore, the handling of "Enumerate()" failures in DeviceAction.ts is inconsistent.  Some cases check the response for null, then will throw an exception looking for enumResponse.Envelope.Body.EnumerateResponse.EnumerationContext which doesn't exist when the call fails; others check for the existence of the enumeration context with something like:
    const enumContext: string = result?.Envelope?.Body?.EnumerateResponse?.EnumerationContext
    if (enumContext == null) {
      logger.error(`getPowerState failed. Reason: ${messages.ENUMERATION_RESPONSE_NULL}`)
      return null
    }

This prevents the exception, but loses the reason for the failure.
Example failure response:
2022-08-07T05:19:11.429Z info: getSoftwareIdentity enumeration result: {
        "Envelope": {
                "Header": {
                        "To": "http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous",
                        "RelatesTo": 0,
                        "Action": "http://schemas.dmtf.org/wbem/wsman/1/wsman/fault",
                        "MessageID": "uuid:00000000-8086-8086-8086-000000000400"
                },
                "Body": {
                        "Fault": {
                                "Code": {
                                        "Value": "a:Sender",
                                        "Subcode": {
                                                "Value": "e:Concurrency"
                                        }
                                },
                                "Reason": {
                                        "Text": "The action could not be completed due to concurrency or locking problems."
                                },
                                "Detail": ""
                        }
                }
        },
        "statusCode": 400
}

Seems that CIRAHandler isn't a good place for the semaphore - it needs to be alongside activetunnels, i.e. in CIRASocket.tag.
There are problems as to when to release the semaphore, especially considering that the browser can 'cancel' the request at any point in time - which results in the CIRA Channel being closed and, as far as I can tell, any outstanding request being orphaned.

See the channel_semaphore branch on https://github.com/orinem/mps for work in progress on this issue.
The semaphore basically works, and extra logging indicates that all the acquisitions are released, but the concurrency problem with enumerations remains.

The WS-Enumeration section here:
https://software.intel.com/sites/manageability/AMT_Implementation_and_Reference_Guide/default.htm?turl=WordDocuments%2Fdsp0226webservicesformanagementwsmanagementspecification.htm
would indicate that 3 would be a good number for the maximum number of concurrent enumeration requests.  If we don't differentiate between enumeration requests and other requests, then for now, 3 would be a good initial value for the semaphore.

Release
Number of Supported Concurrent Enumeration Flows
Total Number of Concurrent Enumeration Contexts

Pre-7.0
3
1

7.0
3
3

8.0
6
3

Note that AMT V16 on a Dell Precision 3571 returns channel numbers 0 through 7 only, indicating a maximum of 8 channels can be open at the same time.

It is indeed much better with pull request #726 - but as mentioned above with my semaphore solution, the concurrency problem with enumerations remains since each enumeration requires at least an ENUMERATE then a PULL*.  The solution (and the semaphore solution) throttles the ENUMERATE and PULL individually, so it's possible for other enumeration requests to sneak in between the ENUMERATE and the PULL and fail.
So in addition, the number of concurrent ENUMERATE/PULL pairs need to be limited.
*the case where more than one PULL is required isn't considered here.

Handling tracking those pairs will be more involved to get correct.  Are you OK with seeing if the current solution solves the issue and if we find cases where it isn't sufficient, we re-open the issue?

I did just get an enumeration failure...
2022-11-22T22:48:30.891Z error: Exception during alarm occurrences request : TypeError: Cannot read properties of undefined (reading 'EnumerationContext')
It worked on a 'reload'.
I think we should close this issue and raise a separate issue for enumerations.

closing per owners request.


Get Started doesn't work

When using the template to generate the new repository under get started instructions, the xll_template.sln is not a valid solution. I think the problem is that the xll directory is empty and so one required project is missing. Probably I am doing something wrong?
Thank you very much

Works for me in VS 2019 and 2022. What is the url of the repository generated from the template?

Thank you for the super-fast reply. It was a private repo but I just did the same and made it public:
https://github.com/pausti2/xlldemo2
I am using Microsoft Visual Studio Community 2022 (64-bit)
Apologies if I am doing something silly

I cloned the link above into VS 2022, clicked on OK to retarget, opened xll_template.sln, selected xll_template as the startup project and pressed F5. Everything built and (64-bit) Excel started in the debugger with the add-in loaded.
You may have to hit Ctrl-N in Excel to get a new window.
Let me know if this is not working for you.

Thank you, I used SourceTree to pull https://github.com/pausti2/xlldemo2. It has pulled xll_template.sln and other files in the same directory, but it hasn't pulled anything into the xll directory (it's just an empty directory).
I have just tried this:

cd xll
git pull origin master
and it outpus this:
From https://github.com/pausti2/xlldemo

branch            master     -> FETCH_HEAD
Already up to date.

Clearly an issue on my side as I can see the xla folder and content in the github web interface. Can you think what the issue could be?

Ah, this worked (run from the main folder)
git submodule update --init xll
Thank you again for your help

Glad you are up and running. My guess is that it is a Sourcetree issue. Submodules seem to be a work-in-progress on GitHub.
You can use update to get the latest version of the xll library. Submodules are not automatically updated.