Fix a typo

Change "state" to "states". rc's replicas may have different states.

NOTE: Please check the “Allow edits from maintainers” box below to allow
reviewers fix problems on your patch and speed up the review process.
Please delete this note before submitting the pull request.

This change is

But I think it can only one current state. Am I missing something? I'm not a native speaker, but maybe @DirectXMan12 can help here.

My suggestion for that sentence would be: "Scale is an interface that allows you to dynamically set the number of replicas and examine each of their current states."

@fgrzadkowski There is one state of rc's replicas in the final showing of kubectl-cli.

@zhangxiaoyu-zidif @fgrzadkowski Does Scale actually let you examine each replica or just the overall set? If the latter, then the sentence should be: "Scale is an interface that allows you to dynamically set the number of replicas and examine the current state of the replica set."

@chenopis I will do some tests and then give you feadback.

@zhangxiaoyu-zidif Ok, great. Thanks!

@chenopis @fgrzadkowski  I did some checks about "scale" of rc.
The result is:
I think "states" may be better. The analysis is below:
The replicas scaling by rc share one state group with label "status" in output file of rc by command "kubectl get rc <rc's name> -o json > ".
The state group contains "replicas", "fullyLabeledReplicas", "readyReplicas", and "observedGeneration".
replicas is a parameter that can be set. The others are the examined informations.
Hope it is convinced.

@zhangxiaoyu-zidif Ok, in that case, I agree. Let's go w/ the current version. Thanks for doing the research! =)


Decouple User Interface from application core

Allow for specifying what interface to use at runtime. Examples would be headless, cli and wayland_vulkan
Headless would basically be no UI, and you can only interact with the core via IPC.

Interface for this completed in https://github.com/kdchambers/reel/pull/19


Fix the binary path reported by get-kube script.

@erictune
fixes #7280

@vmarmol

LGTM, thanks @rjnagal!


plugin

Hello this looks like what I need.  Is it a plugin?  If so does it support buddypress?
thanks

This is the library-only. The plugin version is on w.org (link is in the description). There is no relation to BuddyPress, as you can integrate this library to any theme/plugin. Or you can use it as a tool to i.e. check your client's license before replying to him.


Logo instead of title text

Hi There,
How can i use logo (jpg, png or svg) in place of  title text instead of title text. Can i have the solution on this section

You should use custom components. It's described in the README and covered in the example here

Hi @Kureev ,
Thanks, to this post, i can successfully show logo in nav bar. i'have directly to the title.
Thanks


radvd not deprecation old prefix on dhcp6c RENEW

Important notices
Before you add a new report, we ask you kindly to acknowledge the following:

[x] I have read the contributing guide lines at https://github.com/opnsense/core/blob/master/CONTRIBUTING.md
[x] I am convinced that my issue is new after having checked both open and closed issues at https://github.com/opnsense/core/issues?q=is%3Aissue

Describe the bug
In other tickets (like #6515), it was already reported that OPNsense sometimes fails to update delegated prefixes. But now I discovered another bug that interrupts network communication even if OPNsense detects the prefix change.
dhcp6c changes the prefix within radvd.conf file and restarts radvd. Somehow this causes radvd to fail to send a deprecation message using the OLD prefix (even though DeprecatePrefix on is already configured). So the old prefix does not get deprecated and hosts on LAN have preferred IPv6 addresses from both prefixes, but OPNsense itself no longer knows about the old prefix (nor do upstream routers), so network communication fails.
I then tried to stop radvd manually. But that just deprecated the NEW prefix (hence why even a reboot of OPNsense can't fix this issue, but all devices on LAN need to be touched)
To Reproduce
Steps to reproduce the behavior:

Router with DHCPv6-PD on WAN
IP on WAN via DHCPv6
IP on LAN interface dependent
Wait until dhcp6c receives a RENEW event
(dhcp6c now reconfigures interfaces and overwrites /var/etc/radvd.conf to use the new prefix)
(While that observe radvd messages on LAN)

Steps to reproduce in a Lab environment (a bit more deterministic and maybe easier to reproduce):

Router with DHCPv6-PD on WAN
IP on WAN via DHCPv6
IP on LAN interface dependent
Manually overwrite /var/etc/radvd.conf to use some random prefix (P1).
Retart radvd (so that it advertises P1 now)
kill -1 dhcp6c-pid to have dhcp6c rewrite the radvd config file (replacing P1 with another prefix P2) and restart it.
Observe radvd and P1 deprecation (this currently does not occur in my instance).
Stop radvd and observe deprecation (this only deprecates P2, but not P1)

Expected behavior
radvd deprecating old prefix
Describe alternatives you considered
Maybe patching /var/etc/dhcp6c_wan_script.sh to write the old prefix into /var/etc/radvd.conf, stop radvd (so that it sends a deprecation message with the old prefix), write the new prefix into radvd, and restart it.
Screenshots
If applicable, add screenshots to help explain your problem.
Relevant log files

Additional context
/var/etc/radvd.conf (Sensitive information replaced with $-Pseudo-Variables):
# Automatically generated, do not edit
# Generated for DHCPv6 server lan
interface hn0 {
        AdvSendAdvert on;
        MinRtrAdvInterval 3;
        MaxRtrAdvInterval 60;
        AdvLinkMTU 1492;
        AdvDefaultPreference medium;
        AdvManagedFlag on;
        AdvOtherConfigFlag on;
        prefix $P2/64 {
                DeprecatePrefix on;
                AdvOnLink on;
                AdvAutonomous on;
        };
        RDNSS $OPNsenseIP {
        };
        DNSSL $myDNSSL {
        };
};

/var/etc/dhcp6c.conf:
interface hn1 {
  send ia-pd 0; # request prefix delegation
  request domain-name-servers;
  request domain-name;
  script "/var/etc/dhcp6c_wan_script.sh"; # we'd like some nameservers please
};
id-assoc pd 0 {
  prefix ::/62 infinity;
  prefix-interface hn0 {
    sla-id 0;
    sla-len 2;
  };
};

/var/etc/dhcp6c_wan.conf:
interface hn1 {
  send ia-pd 0; # request prefix delegation
  request domain-name-servers;
  request domain-name;
  script "/var/etc/dhcp6c_wan_script.sh"; # we'd like some nameservers please
};
id-assoc pd 0 {
  prefix ::/62 infinity;
  prefix-interface hn0 {
    sla-id 0;
    sla-len 2;
  };
};

/var/etc/dhcp6c_wan_script.sh:
#!/bin/sh
if [ -n "2" ]; then
    /usr/bin/logger -t dhcp6c "dhcp6c $REASON on hn1"
fi
case $REASON in
INFOREQ|REQUEST)
    /usr/bin/logger -t dhcp6c "dhcp6c $REASON on hn1 - running newipv6"
    ARGS=
    for NAMESERVER in ${new_domain_name_servers}; do
        ARGS="${ARGS} -a ${NAMESERVER}"
    done
    /usr/local/sbin/ifctl -i hn1 -6nd ${ARGS}
    ARGS=
    for DOMAIN in ${new_domain_name}; do
        ARGS="${ARGS} -a ${DOMAIN}"
    done
    /usr/local/sbin/ifctl -i hn1 -6sd ${ARGS}
    /usr/local/sbin/ifctl -i hn1 -6pd ${PDINFO:+"-a ${PDINFO}"}
    FORCE=
    if [ ${REASON} = "REQUEST" ]; then
        FORCE=force
    fi
    /usr/local/sbin/configctl -d interface newipv6 hn1 ${FORCE}
    ;;
EXIT|RELEASE)
    /usr/bin/logger -t dhcp6c "dhcp6c $REASON on hn1 - running newipv6"
    /usr/local/sbin/ifctl -i hn1 -6nd
    /usr/local/sbin/ifctl -i hn1 -6sd
    /usr/local/sbin/ifctl -i hn1 -6pd
    /usr/local/sbin/configctl -d interface newipv6 hn1
    ;;
*)
    ;;
esac

Environment
Software version used and hardware type if relevant, e.g.:
OPNsense 23.1.6-amd64
FreeBSD 13.1-RELEASE-p7
OpenSSL 1.1.1t 7 Feb 2023
AMD Ryzen 7 3800X 8-Core Processor (4 cores, 8 threads)

Reverting eec08e05502 might be worth a try...
# opnsense-patch eec08e05502

Better?

Reverting this fixes the issue. However, it also causes a new one in Windows. Even though the prefix is now correctly listed as deprecated, it still tries to use it. Until I force the interface down and up again (which removes the deprecated prefixes). But there is probably nothing we can do about that. Interestingly I did not have this issues previously on my self-made lab router with alpine linux, dhcpcd and radvd. I think I still have a configuration backup somewhere. I could have a look if it helps.

I can't help with the latter part but I can issue a radvd restart once a full IPv6 renew event is being handled. That should give us the best of both worlds.

Scratch the windows part. It turned out to be a "just" Chrome thing🤦 for all tabs I had open, it kept using the deprecated IP (even for new webpages or for forced refreshes). But restarting the browser made it use the new IP (without touching the interface).

Ok, sounds good. This is going to be a bit complicated but I'll take a closer look later this week.

Actually the only way to do this is set DeprecatePrefix on and shut radvd down. All I'm attempting to do here in 23.1.x is to try and prevent radvd from sending deprecation messages for when ravd restarts without IPv6 reconnecting underneath, which can happen on a few GUI pages causing spurious disconnects. macOS seems to react the worst to this.

Should we consider trying to patch radvd to "fix" that? Because sending a deprecation message without a prefix change sounds like a bug anyway...

It's being discussed since 2014 over at radvd. I don't have much hope :)

Refs https://github.com/radvd-project/radvd/issues/91 https://github.com/radvd-project/radvd/issues/85 https://github.com/radvd-project/radvd/issues/39

It would be a whole lot easier if radvd had a kill signal to reload its config... then it could run forever and with GUI changes, only a signal woul be neccessary...

@meyergru that's what SIGHUP does :) but it mimicks a restart, only that it forget to deprecate the previous prefix... but the underlying issue is a bit more challenging, because on SIGHUP it would have to check IF the prefix configured changes in order to deprecate it. I don't think this works considering you can stuff multiple prefixes in there at any time.

But in that case, you could set DeprecatePrefix on, and on GUI changes only issue a SIGHUP.
When you see that the prefix has changed (e.g. when the connection is brought up again and the old prefix is different from the new one), you could restart the daemon.

There is no way to track this through the code without ripping it all open across multiple files. And even then it might be on a configuration change and we miss it by issuing a faulty SIGHUP.
I don't want to start tracking deprecated prefixes... I thought we had multiple software solutions for that :/

Just to reiterate, sending SIGHUP may be a better option if the config doesn't change (and the service is started).
For any other case we restart properly. Just the "::/64" case has me worried, which does "magic" that we can neither track nor verify functionally (doing a simple test setup forcing this aside). Here my point is that this may have had negative effects on people's deployments all along, see commit for details on weird AdvRouterAddr option use.

I think the work around we have now is all we can do. And the other thing is something that maybe should be brought up again in the radvd side. Because they can much more easily compare the running config with the configuration file...

I am aware of where the real problem lies. I am just lucky to get the same prefix again on reconnects...

The only other thing we could do (without code change to radvd) is to set the lifetimes to their minimum and have clients more or less constantly renew them...

RFC junkies will argue it drains all power from mobile stack ;)

Well too bad for the mobile stack then. At least until radvd fixes the implementation bug. What else could we do?
And the mobile stack does not have that much traffic, so it may just have to ignore all traffic disconnect from network and peak into it every 30 seconds or 5 minutes...

Stuff like this is functionally correct, but the pragmatic defaults were better once upon a time. 20efa4f46c2
Not blaming the contributor (very good one actually) but the truth is that the tools that should handle this are not very good to begin with. It's similar with dhcp6c which we still have to use because FreeBSD has no base option and we inherited it through the fork.

So it is basically time for consolidating and rewriting the IPv6 "helper stack". Such issues were why I gave up on running my own router using Alpine and moved to OPNsense in the first place.
(It's better to use something where you're not the only one ironing out bugs 🙃)

Just for reference, the Chromium "bug" I mentioned is apparently what the RFC wants...
RFC4862 Section 5.5.4

A preferred address becomes deprecated when its preferred lifetime
expires.  A deprecated address SHOULD continue to be used as a source
address in existing communications, but SHOULD NOT be used to
initiate new communications if an alternate (non-deprecated) address
of sufficient scope can easily be used instead.
Note that the feasibility of initiating new communication using a
non-deprecated address may be an application-specific decision, as
only the application may have knowledge about whether the (now)
deprecated address was (or still is) in use by the application.  For
example, if an application explicitly specifies that the protocol
stack use a deprecated address as a source address, the protocol
stack must accept that; the application might request it because that
IP address is used in higher-level communication and there might be a
requirement that the multiple connections in such a grouping use the
same pair of IP addresses.
IP and higher layers (e.g., TCP, UDP) MUST continue to accept and
process datagrams destined to a deprecated address as normal since a
deprecated address is still a valid address for the interface.  In
the case of TCP, this means TCP SYN segments sent to a deprecated
address are responded to using the deprecated address as a source
address in the corresponding SYN-ACK (if the connection would
otherwise be allowed).
An implementation MAY prevent any new communication from using a
deprecated address, but system management MUST have the ability to
disable such a facility, and the facility MUST be disabled by
default.
Other subtle cases should also be noted about source address
selection.  For example, the above description does not clarify which
address should be used between a deprecated, smaller-scope address
and a non-deprecated, sufficient scope address.  The details of the
address selection including this case are described in [RFC3484] and
are beyond the scope of this document.
An address (and its association with an interface) becomes invalid
when its valid lifetime expires.  An invalid address MUST NOT be used
as a source address in outgoing communications and MUST NOT be
recognized as a destination on a receiving interface.

As I'm currently reading this RFC anyway, I'm going to quote some parts of section 5.5.3 as well, which also relates to this issue (as it is the source of why we can't just set Valid Lifetime to 0 and have all devices remove the old address immediately...
RFC4862 Section 5.5.3

e)  If the **advertised prefix is equal to the prefix of an address**
  **configured by stateless autoconfiguration** in the list, the
  **preferred lifetime** of the address **is reset to** the Preferred
  Lifetime in **the received advertisement**.  The specific **action** to
  perform **for the valid lifetime** of the address **depends** on the Valid
  Lifetime in the received advertisement and the remaining time to
  the valid lifetime expiration of the previously autoconfigured
  address.  We call the remaining time "RemainingLifetime" in the
  following discussion:
  1.  If the received Valid Lifetime **is greater than 2 hours or**
      **greater than RemainingLifetime**, **set the valid lifetime** of the
      corresponding address to the advertised Valid Lifetime.

  2.  If **RemainingLifetime is less than or equal to 2 hours**, **ignore**
      the Prefix Information option with regards to the valid
      lifetime, **unless** the Router Advertisement from which this
      option was obtained **has been authenticated** (e.g., via Secure
      Neighbor Discovery [RFC3971]).  If the Router Advertisement
      **was authenticated, the valid lifetime of the corresponding**
      **address should be set to the Valid Lifetime** in the received
      option.

  3.  **Otherwise, reset** the valid lifetime of the corresponding
      address **to 2 hours**.

  The above rules address a specific denial-of-service attack in
  which a bogus advertisement could contain prefixes with very small
  Valid Lifetimes.  Without the above rules, a single
  unauthenticated advertisement containing bogus Prefix Information
  options with short Valid Lifetimes could cause all of a node's
  addresses to expire prematurely.  The above rules ensure that
  legitimate advertisements (which are sent periodically) will
  "cancel" the short Valid Lifetimes before they actually take
  effect.

  Note that the **preferred lifetime** of the corresponding address is
  **always reset** to the Preferred Lifetime in the received Prefix
  Information option, **regardless of** whether the **valid lifetime** is
  also reset or ignored.  The difference comes from the fact that
  the possible attack for the preferred lifetime is relatively
  minor.  Additionally, it is even undesirable to ignore the
  preferred lifetime when a valid administrator wants to deprecate a
  particular address by sending a short preferred lifetime (and the
  valid lifetime is ignored by accident).

Basically, following the RFC, we either have to accept that communication partially fails for 2 hours after a renewal (until the valid lifetime expires), or we need all devices to support RFC3971's Secure Neighbor Discovery as that's (currently) the only way to set the Valid Lifetime to 0 (or anything below two hours)...
What's the adoption of SEND again? And is there anything else devices consider "authenticated" already?

This was fixed in 23.1.7 -- close?

It's not completely fixed no, opensense still has issues with the renewal, but it is better now. At least wenn opnsense itself triggers the renew/revalidate it works now.
But when the upstream router triggers it, it's still kinda buggy...
I had it a few hours ago. Upstream router prefix expired and it reconnected. I ended up hitting reload in the Web-UI. The log contained a bunch of errors, but I currently don't know which ones belong to which event (upstream router triggered or web UI triggered).
The related logs are:
removing an event on hn1, state=RENEW
/usr/local/etc/rc.newwanipv6: No IP change detected for WAN[wan]
/usr/local/etc/rc.newwanipv6: The command '/bin/kill -'TERM' '90332'' returned exit code '1', the output was 'kill: 90332: No such process'
/usr/local/etc/rc.newwanipv6: The command '/sbin/mount -r -t nullfs '/usr/local/lib/python3.9' '/var/unbound/usr/local/lib/python3.9'' returned exit code '1', the output was 'mount_nullfs: /var/unbound/usr/local/lib/python3.9: Resource deadlock avoided'
/usr/local/etc/rc.newwanipv6: The command '/sbin/mount -r -t nullfs '/usr/local/lib/python3.9' '/var/unbound/usr/local/lib/python3.9'' returned exit code '1', the output was 'mount_nullfs: /var/unbound/usr/local/lib/python3.9: Resource deadlock avoided'
/usr/local/etc/rc.restart_webgui: The command '/usr/local/bin/flock -ne /var/run/lighty-webConfigurator.pid /usr/local/sbin/lighttpd -f /var/etc/lighty-webConfigurator.conf' returned exit code '1', the output was ''

/usr/local/etc/rc.configure_interface: The command '/bin/kill -'TERM' '90332'' returned exit code '1', the output was 'kill: 90332: No such process'

Full log: https://gist.github.com/agowa/00e70b22330d1f5ba2948a6920f5b93b
And I also have the feeling that something is getting confused because the upstream is providing a GUA and a ULA to the WAN interface. At least it logs some confusing "Notice" messages and sometimes it says "No IP change detected for WAN" (probably because there are multiple IPs and the ULA didn't change).

@agowa ok, step by step... Can you apply this one to see which IP is being cached? 2db028d
# opnsense-patch 2db028d

I'd also hope you can try the latest additions to dhcp6c daemon via:
# opnsense-revert -z dhcp6c

Cheers,
Franco

The flapping between ULA and GUA is not nice indeed.
Does the ifconfig output reorder the addresses when you run the command multiple times? The thing is it only tries to sneak one "primary" address but if there are multiple and their ordering changes we can end up with a random one which would make sorting addresses useful before picking one.

One more thought that seems crucial: we don't handle RENEW/REBIND at the moment which is probably the root cause if what you are seeing. Question is if your prefix actually changes? I think we can detect that then...

31961bf577b is perhaps what you are looking for here. I fiddled a bit too much on the master branch so apply with opnsense-patch may be tricky. We still have to solve the primary IP "changing" but I think we can manage that easily with more debug data from your end.

The flapping between ULA and GUA is not nice indeed.
Does the ifconfig output reorder the addresses when you run the command multiple times? The thing is it only tries to read one "primary" address but if there are multiple and their ordering changes we can end up with a random one which would make sorting addresses useful before picking one.

No, it stays constant, I however don't know if this may be a race condition thing when the GUA expired and gets renewed but the ULA is still valid...

Question is if your prefix actually changes? I think we can detect that then...

Yes it is changing, and when you look at the logs I provided, I made sure to reduce it in a way that preserved which values were equal. I.E. "1" is always the same value and different from "2".
Do you need more information? What exactly would help? (I executed the two commands you provided right now, but I cannot really force the issue to occur, as it (at least until now) only occurs when stuff changes upstream outside of my control, I could try hitting the reconnect button in the CE though, but that may have slightly different behaviour...)

I restarted opnsense after the patches, looks unchanged so far.
The log still says:
2023-05-11T15:55:53	Error	opnsense	/usr/local/etc/rc.routing_configure: ROUTING: not a valid default gateway address: ''
2023-05-11T15:55:53	Error	opnsense	/usr/local/etc/rc.newwanipv6: The command '/bin/kill -'TERM' '90332'' returned exit code '1', the output was 'kill: 90332: No such process'

For some reason, the console now lists the link-local (fe80::) IPvs as "v6/DHCP6" for the wan interface.
And I also noticed that the service startup order is suspicious. radvd, crony, unbound, and then newwanip. crony and unbound also logged some errors to the screen about unreachable IPs (as it started before newwanip gets called).
Also, can you have a quick look at the logged kill command? (this is the one responsible for the deprecation of the IP, right?) I tried to execute it as it was logged, and it doesn't work. Is the quotation of the logged command different from what is actually executed? Or does it log an incorrect error message?
# ps aux | grep dhcp
# kill -'TERM' '27995'
TERM: Unknown signal; kill -l lists signals.

I don't think the errors are all that relevant.
Ok, if the GUA is deprecated it would pick up the ULA when that one is not yet set to deprecated.
Clear about the PD changing then. The master branch state is probably what you are looking for. I've made a backport as
05c6f2e which should apply to 23.1.7 as well.
# opnsense-patch 05c6f2e

I'd recommend a reboot just to be sure. If this isn't working for some reason best to revert all for now:
# opnsense-revert opnsense

Cheers,
Franco

I think from my side this is a wrap. 23.1.8 will ship all the relevant code. Also see https://forum.opnsense.org/index.php?topic=26832.0 for more discussion and test results.

I think from my side this is a wrap. 23.1.8 will ship all the relevant code. Also see https://forum.opnsense.org/index.php?topic=26832.0 for more discussion and test results.
I've got the same issue, still occurring randomly too running latest 23.1.8 If you need any logs let me know :)

@TheekshanaA so did you try the patch and reboot?

@TheekshanaA so did you try the patch and reboot?

I did apply this patch and rebooted yep
opnsense-patch 05c6f2e

got these same errors

I am unsure what the error even is. "got these same errors" might be nothing. What's wrong operationally?

I am unsure what the error even is. "got these same errors" might be nothing. What's wrong operationally?

Sorry for the vague message, with the errors a lan outage is synchronised, it lasts around 30 seconds roughly maybe a bit less. I'll get you the errors once it reoccurs.  I reverted back to 23.1.8 and applied patches as mentioned in the above message.
opnsense-patch 2db028d and # opnsense-revert -z dhcp6c
I can't seem to reproduce it on demand but it seems to occur "randomly" once a hour or so. I'll get you the logs as soon as the issue reoccurs. I apologise if something isn't clear as this is my first time using opnsense since I used pfSence as a kid almost 10 years ago.
Kind Regards,
Nimesh

@fichtner
Here is my errors from "General" logs.
2023-05-31T20:00:36	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure vpn (execute task : ipsec_configure_do(,wan))	 2023-05-31T20:00:36	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure vpn (,wan)	 2023-05-31T20:00:36	Notice	kernel	<6>ue0: link state changed to UP	 2023-05-31T20:00:36	Notice	kernel	<6>ue0: link state changed to DOWN	 2023-05-31T20:00:36	Notice	kernel	<6>ue0: link state changed to UP	 2023-05-31T20:00:36	Notice	kernel	<6>ue0: link state changed to DOWN	 2023-05-31T20:00:36	Notice	kernel	<6>ue0: link state changed to UP	 2023-05-31T20:00:36	Notice	kernel	<6>ue0: link state changed to DOWN	 2023-05-31T20:00:36	Notice	opnsense	/usr/local/etc/rc.linkup: plugins_configure dns (execute task : unbound_configure_do())	 2023-05-31T20:00:36	Notice	opnsense	/usr/local/etc/rc.linkup: plugins_configure dns (execute task : dnsmasq_configure_do())	 2023-05-31T20:00:36	Notice	opnsense	/usr/local/etc/rc.linkup: plugins_configure dns ()	 2023-05-31T20:00:36	Notice	opnsense	/usr/local/etc/rc.newwanipv6: ROUTING: entering configure using 'lan'	 2023-05-31T20:00:36	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure monitor (execute task : dpinger_configure_do(,WAN_DHCP6))	 2023-05-31T20:00:36	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure monitor (,WAN_DHCP6)	 2023-05-31T20:00:36	Notice	opnsense	/usr/local/etc/rc.newwanipv6: ROUTING: keeping current inet6 default gateway 'fe80::4e16:fcff:fe2e:a88a%em0'	 2023-05-31T20:00:36	Notice	opnsense	/usr/local/etc/rc.newwanipv6: ROUTING: configuring inet6 default gateway on wan	 2023-05-31T20:00:36	Notice	opnsense	/usr/local/etc/rc.newwanipv6: ROUTING: entering configure using 'wan'	 2023-05-31T20:00:36	Error	opnsense	/usr/local/etc/rc.linkup: The command '/usr/sbin/daemon -f -p '/var/run/dhcpleases6.pid' '/usr/local/opnsense/scripts/dhcp/prefixes.sh'' returned exit code '3', the output was 'daemon: process already running, pid: 84563'	 2023-05-31T20:00:36	Error	opnsense	/usr/local/etc/rc.linkup: The command '/usr/local/sbin/dhcpd -6 -user dhcpd -group dhcpd -chroot /var/dhcpd -cf /etc/dhcpdv6.conf -pf /var/run/dhcpdv6.pid ue0' returned exit code '1', the output was 'Internet Systems Consortium DHCP Server 4.4.3-P1 Copyright 2004-2022 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Config file: /etc/dhcpdv6.conf Database file: /var/db/dhcpd6.leases PID file: /var/run/dhcpdv6.pid There's already a DHCP server running. If you think you have received this message due to a bug rather than a configuration issue please read the section on submitting bugs on either our web page at www.isc.org or in the README file before submitting a bug. These pages explain the proper process and the information we find helpful for debugging. exiting.'	 2023-05-31T20:00:26	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure newwanip (execute task : webgui_configure_do(,lan))	 2023-05-31T20:00:26	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure newwanip (execute task : vxlan_configure_do())	 2023-05-31T20:00:24	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure newwanip (execute task : unbound_configure_do(,lan))	 2023-05-31T20:00:24	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure newwanip (execute task : openssh_configure_do(,lan))	 2023-05-31T20:00:24	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure newwanip (execute task : opendns_configure_do())	 2023-05-31T20:00:21	Notice	opnsense	/usr/local/etc/rc.newwanipv6: No IP change detected for WAN[wan]	 2023-05-31T20:00:21	Notice	dhcp6c	dhcp6c_script: RELEASE on em0 executing	 2023-05-31T20:00:20	Error	opnsense	/usr/local/etc/rc.newwanipv6: The command '/bin/kill -'TERM' '17760'' returned exit code '1', the output was 'kill: 17760: No such process'	 2023-05-31T20:00:20	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure dhcp (execute task : dhcpd_dhcp_configure(,inet6))	 2023-05-31T20:00:20	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure dhcp (,inet6)	 2023-05-31T20:00:20	Notice	opnsense	/usr/local/etc/rc.newwanipv6: IP renewal starting (new: 2001:8003:f00:8204:7972:6de0:daea:e19f, old: 2001:8003:f00:8204:7972:6de0:daea:e19f, interface: WAN[wan], device: em0, force: yes)	 2023-05-31T20:00:20	Notice	dhcp6c	dhcp6c_script: REQUEST on em0 renewal (REASON)	 2023-05-31T20:00:20	Notice	dhcp6c	dhcp6c_script: REQUEST on em0 executing	 2023-05-31T20:00:19	Notice	kernel	<7>cannot forward src fe80:6::8433:dfff:fe22:2f23, dst 2001:8003:ac09:bc00:2e0:4cff:fe68:54, nxt 17, rcvif ue0, outif em0	 2023-05-31T20:00:18	Notice	opnsense	/usr/local/etc/rc.linkup: plugins_configure dhcp (execute task : dhcpd_dhcp_configure())	 2023-05-31T20:00:18	Notice	opnsense	/usr/local/etc/rc.linkup: plugins_configure dhcp ()	 2023-05-31T20:00:18	Notice	opnsense	/usr/local/etc/rc.linkup: plugins_configure ipsec (execute task : ipsec_configure_do(,lan))	 2023-05-31T20:00:18	Notice	opnsense	/usr/local/etc/rc.linkup: plugins_configure ipsec (,lan)	 2023-05-31T20:00:18	Notice	opnsense	/usr/local/etc/rc.linkup: ROUTING: entering configure using 'lan'	 2023-05-31T20:00:18	Notice	opnsense	/usr/local/etc/rc.linkup: DEVD: Ethernet attached event for lan(ue0)	 2023-05-31T20:00:18	Notice	opnsense	/usr/local/etc/rc.linkup: DEVD: Ethernet detached event for lan(ue0)	 2023-05-31T20:00:17	Notice	kernel	<6>ue0: link state changed to UP	 2023-05-31T20:00:17	Notice	kernel	<6>ue0: link state changed to DOWN	 2023-05-31T20:00:17	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure newwanip (execute task : ntpd_configure_do())	 2023-05-31T20:00:17	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure newwanip (execute task : dnsmasq_configure_do())	 2023-05-31T20:00:17	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure newwanip (,lan)	 2023-05-31T20:00:17	Notice	opnsense	/usr/local/etc/rc.newwanipv6: Resyncing OpenVPN instances for interface LAN.	 2023-05-31T20:00:17	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure vpn (execute task : openvpn_configure_do(,lan))	 2023-05-31T20:00:17	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure vpn (execute task : ipsec_configure_do(,lan))	 2023-05-31T20:00:17	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure vpn (,lan)	 2023-05-31T20:00:17	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure newwanip (execute task : webgui_configure_do(,wan)) 2023-05-31T20:00:17	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure newwanip (execute task : vxlan_configure_do())	 2023-05-31T20:00:17	Notice	kernel	<6>ue0: link state changed to UP	 2023-05-31T20:00:17	Notice	kernel	<6>ue0: link state changed to DOWN	 2023-05-31T20:00:17	Error	opnsense	/usr/local/etc/rc.newwanipv6: The command '/sbin/mount -r -t nullfs '/usr/local/lib/python3.9' '/var/unbound/usr/local/lib/python3.9'' returned exit code '1', the output was 'mount_nullfs: /var/unbound/usr/local/lib/python3.9: Resource deadlock avoided'	 2023-05-31T20:00:16	Error	opnsense	/usr/local/etc/rc.linkup: The command '/sbin/mount -t devfs devfs '/var/unbound/dev'' returned exit code '1', the output was 'mount: devfs: Device busy'	 2023-05-31T20:00:16	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure newwanip (execute task : unbound_configure_do(,wan))	 2023-05-31T20:00:16	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure newwanip (execute task : openssh_configure_do(,wan))	 2023-05-31T20:00:16	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure newwanip (execute task : opendns_configure_do())	 2023-05-31T20:00:16	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure newwanip (execute task : ntpd_configure_do())	 2023-05-31T20:00:16	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure newwanip (execute task : dnsmasq_configure_do())	 2023-05-31T20:00:16	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure newwanip (,wan)	 2023-05-31T20:00:16	Notice	opnsense	/usr/local/etc/rc.newwanipv6: Resyncing OpenVPN instances for interface WAN.	 2023-05-31T20:00:16	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure vpn (execute task : openvpn_configure_do(,wan))	 2023-05-31T20:00:16	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure vpn (execute task : ipsec_configure_do(,wan))	 2023-05-31T20:00:16	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure vpn (,wan)	 2023-05-31T20:00:16	Notice	opnsense	/usr/local/etc/rc.newwanipv6: ROUTING: entering configure using 'lan'	 2023-05-31T20:00:16	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure monitor (execute task : dpinger_configure_do(,WAN_DHCP6))	 2023-05-31T20:00:16	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure monitor (,WAN_DHCP6)	 2023-05-31T20:00:16	Notice	opnsense	/usr/local/etc/rc.newwanipv6: ROUTING: keeping current inet6 default gateway 'fe80::4e16:fcff:fe2e:a88a%em0'	 2023-05-31T20:00:16	Notice	opnsense	/usr/local/etc/rc.newwanipv6: ROUTING: configuring inet6 default gateway on wan	 2023-05-31T20:00:16	Notice	opnsense	/usr/local/etc/rc.linkup: plugins_configure dns (execute task : unbound_configure_do())	 2023-05-31T20:00:16	Notice	opnsense	/usr/local/etc/rc.linkup: plugins_configure dns (execute task : dnsmasq_configure_do())	 2023-05-31T20:00:16	Notice	opnsense	/usr/local/etc/rc.linkup: plugins_configure dns ()	 2023-05-31T20:00:16	Notice	opnsense	/usr/local/etc/rc.newwanipv6: ROUTING: entering configure using 'wan'	 2023-05-31T20:00:16	Notice	kernel	<6>ue0: link state changed to UP	 2023-05-31T20:00:16	Notice	kernel	<6>ue0: link state changed to DOWN	 2023-05-31T20:00:16	Error	opnsense	/usr/local/etc/rc.linkup: The command '/usr/sbin/daemon -f -p '/var/run/dhcpleases6.pid' '/usr/local/opnsense/scripts/dhcp/prefixes.sh'' returned exit code '3', the output was 'daemon: process already running, pid: 18379'	 2023-05-31T20:00:16	Error	opnsense	/usr/local/etc/rc.linkup: The command '/usr/local/sbin/dhcpd -6 -user dhcpd -group dhcpd -chroot /var/dhcpd -cf /etc/dhcpdv6.conf -pf /var/run/dhcpdv6.pid ue0' returned exit code '1', the output was 'Internet Systems Consortium DHCP Server 4.4.3-P1 Copyright 2004-2022 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Config file: /etc/dhcpdv6.conf Database file: /var/db/dhcpd6.leases PID file: /var/run/dhcpdv6.pid There's already a DHCP server running. If you think you have received this message due to a bug rather than a configuration issue please read the section on submitting bugs on either our web page at www.isc.org or in the README file before submitting a bug. These pages explain the proper process and the information we find helpful for debugging. exiting.'	 2023-05-31T20:00:03	Notice	opnsense	/usr/local/etc/rc.newwanipv6: No IP change detected for WAN[wan]	 2023-05-31T20:00:03	Notice	dhcp6c	dhcp6c_script: RELEASE on em0 executing	 2023-05-31T20:00:03	Error	opnsense	/usr/local/etc/rc.newwanipv6: The command '/bin/kill -'TERM' '54098'' returned exit code '1', the output was 'kill: 54098: No such process'	 2023-05-31T20:00:03	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure dhcp (execute task : dhcpd_dhcp_configure(,inet6))	 2023-05-31T20:00:03	Notice	opnsense	/usr/local/etc/rc.newwanipv6: plugins_configure dhcp (,inet6)	 2023-05-31T20:00:03	Notice	opnsense	/usr/local/etc/rc.newwanipv6: IP renewal starting (new: 2001:8003:f00:8204:7972:6de0:daea:e19f, old: 2001:8003:f00:8204:7972:6de0:daea:e19f, interface: WAN[wan], device: em0, force: yes)	 2023-05-31T20:00:03	Notice	dhcp6c	dhcp6c_script: REQUEST on em0 renewal (REASON)	 2023-05-31T20:00:03	Notice	dhcp6c	dhcp6c_script: REQUEST on em0 executing	 2023-05-31T20:00:00	Notice	opnsense	/usr/local/etc/rc.newwanipv6: Failed to detect IP for WAN[wan]	 2023-05-31T20:00:00	Notice	dhcp6c	dhcp6c_script: RELEASE on em0 executing	 2023-05-31T20:00:00	Notice	opnsense	/usr/local/etc/rc.linkup: plugins_configure dhcp (execute task : dhcpd_dhcp_configure())	 2023-05-31T20:00:00	Notice	opnsense	/usr/local/etc/rc.linkup: plugins_configure dhcp ()	 2023-05-31T20:00:00	Notice	opnsense	/usr/local/etc/rc.linkup: plugins_configure ipsec (execute task : ipsec_configure_do(,lan))	 2023-05-31T20:00:00	Notice	opnsense	/usr/local/etc/rc.linkup: plugins_configure ipsec (,lan)	 2023-05-31T20:00:00	Notice	opnsense	/usr/local/etc/rc.linkup: ROUTING: entering configure using 'lan'	 2023-05-31T20:00:00	Notice	opnsense	/usr/local/etc/rc.linkup: DEVD: Ethernet attached event for lan(ue0)	 2023-05-31T20:00:00	Notice	kernel	<6>ue0: link state changed to UP	 2023-05-31T20:00:00	Notice	kernel	<6>ue0: link state changed to DOWN	 2023-05-31T20:00:00	Notice	opnsense	/usr/local/etc/rc.linkup: DEVD: Ethernet detached event for lan(ue0)
Again as I mentioned this could purely be the realtek usb NIC playing up but maybe you see something out of order.
Kind Regards,
Nimesh

I just updated to 23.1.9 and also get the same error as others above:
2023-06-02T06:37:09	Error	opnsense	/usr/local/etc/rc.newwanipv6: The command '/sbin/mount -r -t nullfs '/usr/local/lib/python3.9' '/var/unbound/usr/local/lib/python3.9'' returned exit code '1', the output was 'mount_nullfs: /var/unbound/usr/local/lib/python3.9: Resource deadlock avoided'
2023-06-02T06:37:09	Error	opnsense	/usr/local/etc/rc.newwanipv6: The command '/bin/kill -'TERM' '3872'' returned exit code '1', the output was 'kill: 3872: No such process'

Unbound was stopped after reboot after update
manually starting unbound worked

Briefly after the error above, I also saw this one:
2023-06-02T06:37:14	Error	opnsense	/usr/local/etc/rc.newwanipv6: Error: Invalid certificate hash info for

My IPv6 configuration is all green and working, from the OPNsense side, but when checked with external services (https://test-ipv6.com/), I have no IPv6 connectivity. This is since 23.1.8. On 23.1.7, I had all green lights with the same connection settings (default, from the docs).

@Sieboldianus I don’t see anything related to what you are describing.

@fichtner: Yes, my IPv6 problems may be unrelated to the logs above (the only thing that pointed me to IPv6 was seeing newwanipv6 in the logs).
Perhaps also unrelated is that https://test-ipv6.com/ suddenly shows all green lights. I was just going to update my answer above. It seems the update to 23.1.9 has fixed my IPv6 problem.

hmm, ok. An interface reconfiguration is required to replace the faulty script and a reboot or kill for dhcp6c to pick up the updated binary. If you still see issues later I’d recommend a reboot just to be sure.

Interestingly I'm seeing exactly the same behaviour since the last update. dhcpv6 constantly crashing for some reason with the same log entries as shared by @TheekshanaA.

Which error? Do you also use „ue“
USB Ethernet driver? Not very reliable.

The errors as shown in the general log which where shared by TheekshanaA. I'm not using a USB Ethernet driver, I have a Intel I350 NICs in a Sophos XG430 appliance.

It happened again. Not that often as before, but the issue persists.
system.log.csv

cannot forward src fe80:6::8433:dfff:fe22:2f23, dst 2a03:2880:f234:1c7:face:b00c:0:7260, nxt 6, rcvif ue0, outif em0

These are most likely Android phones failing to acquire a GUA via SLAAC. They send out garbage anyway.
Not much we can do about it and no relation to WAN side dhcp6c being discussed here. Check your LAN settings and also see https://docs.opnsense.org/manual/ipv6.html#basic-setup-and-troubleshooting
Cheers,
Franco

cannot forward src fe80:6::8433:dfff:fe22:2f23, dst 2a03:2880:f234:1c7:face:b00c:0:7260, nxt 6, rcvif ue0, outif em0

These are most likely Android phones failing to acquire a GUA via SLAAC. They send out garbage anyway.
Not much we can do about it and no relation to WAN side dhcp6c being discussed here. Check your LAN settings and also see https://docs.opnsense.org/manual/ipv6.html#basic-setup-and-troubleshooting
Cheers, Franco

Can confirm, I have multiple android devices on my network so you are likely correct.  Thought I'd also mention there are no more DHCP failing to renew errors that the others are reporting on my router. It may be worth noting I did spoof my MAC address to be the same as my original router's WAN port however I am not sure if this is related or not.

Dear all,
I would like to have a perfect radvd 2.20, it is possible to talk about your radvd problems upstream?
Several Issues/PRs are always opened:

https://github.com/radvd-project/radvd/issues
https://github.com/radvd-project/radvd/pulls

Thanks in advance.


Document how to use DiagnosticSource/DiagnosticListener

See https://github.com/aspnet/EntityFrameworkCore/issues/626#issuecomment-348574462

Also see See https://github.com/aspnet/EntityFrameworkCore/issues/12024


Various fixes

Preparing PGSession 9 :-)

Codecov Report

Merging #118 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master   #118   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           9      9
  Lines        1009   1008    -1
=====================================
- Hits         1009   1008    -1

Impacted Files
Coverage Δ

ldap2pg/ldap.py
100% <ø> (ø)
:arrow_up:

ldap2pg/manager.py
100% <100%> (ø)
:arrow_up:

ldap2pg/config.py
100% <100%> (ø)
:arrow_up:

ldap2pg/utils.py
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


test and doc dependencies in devDependencies

Fixes
Checklist

[x] I acknowledge that all my contributions will be made under the project's license
[ ] I have made a material change to the repo (functionality, testing, spelling, grammar)
[ ] I have read the [Contribution Guide] and my PR follows them.
[ ] I updated my branch with the development branch.
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have added necessary documentation about the functionality in the appropriate .md file
[ ] I have added in line documentation to the code I modified

Short description of what this PR does:

If you have questions, please send an email to Twilio SendGrid, or file a Github Issue in this repository.

Duplicates https://github.com/sendgrid/sendgrid-nodejs/pull/1010


[Question] Conditionally run task if files have changed on set directory

Hey,
Is it possible to conditionally skip or include steps based on changes on the filesystem? I read about watch but that's not really what I am looking for, I think. I would like to able to run a separate binary crate on my workspace before compiling and running my main application IF certain directory's contents have changed since the last time cargo make was run.
[env]
CARGO_MAKE_EXTEND_WORKSPACE_MAKEFILE = true

[tasks.pre-process-stuff]
# execute this task only if files have changed on a specified directory
condition="..."
command="cargo"
args=["run", "--bin", "name_of_crate"]

[tasks.run-main-app]
command="cargo"
args=["run", "--bin", "run_the_main_app"]

[tasks.go]
dependencies = [
    "pre-process-stuff",
    "run-main-app"
]

It is a valid request, however, currently it is not supported.
To support it, i would require to 'cache' some state on the file system that currently I do not manage at all (apart of a global one for the entire machine).
Usually the more specific binaries do that, for example cargo build would not rebuild files that were not changed or not impacted by some change, same goes for other compilers.
i'm guessing in your case, the binary you want to call, doesn't support it so you would prefer to have that logic in cargo-make.

The crate I want to call is my own and in the same Rust workspace as the rest of my application, so I could in theory add the required watch logic in it directly. And yes, I wanted to see if there's a tool available that does this for me automatically, preferably something very close to Rust and Cargo.
I would use the Rust's own build scripts by running the run_the_main_app's build.rs and calling Command::new("cargo run --bin name_of_crate ...") or whatever inside of it, but this does not work because you can't run Cargo within the same workspace again because the Cargo lock file is shared between the crates of the workspace and it will hang the whole process.

i wonder if something like in #436 could help?
its using duckscript to check if path is newer than other path and based on it, run a task.
would that help?

@kaphula did you look at that issue i mentioned? i have there duckscript script that checks if path is newer than call some cargo make task. maybe it is useful for you as well?

Thanks for the advice, I'll keep that in mind for the future but I don't currently have time to play around with this now. I settled for a solution that is based on pure Cargo/Rust commands. You can close this issue if you want.

I stumbled upon the same issue, I will be able to solve it via duck script I think, but I would still like something like this.
I imagined like a glob that can be specified to be checked for changes.
In my case it is to run yarn in a subfolder to generate some files I include, the command I use is quite slow even without changes so it would be great to be able to have a condition like changed_since_last_build="website/src/*"

like i explained before, it would mean cargo-make would need to know what your command does and where the output is.
otherwise, it can't compare timestamps.
using duckscript you can tell it how and what to compare.
basically it means, you would never be really able just to say: 'do if these files were updated' in any tool unless the tool knows what the output of that command is.
for example compilers know what they are creating, so they can do only delta.
tools that create their own cache of the build output also can support it.
cargo-make generates nothing at the moment and i think it helps make things simpler.
using globs in duckscript could make your code pretty generic and no need to maintain much logic.
for example, if its checking if java file was compiled to a class you can do:
[tasks.compile-if-updated]
script = [
'''
#!@duckscript

source_files = glob_array ./src/main/**/*.java
for source_file in ${source_files}
  output_file = replace ${source_file} .java .class
  output_file = replace ${output_file} src/main/java/ ./target/classes/
  existing_file = is_file ${output_file}
  should_compile = set true
  if ${existing_file}
    should_compile = is_path_newer ${source_file} ${output_file}
  end
  echo checking source file: ${source_file} output file: ${output_file} output exists: ${existing_file} should compile: ${should_compile}

  if ${should_compile}
    echo found updates
    cm_run_task compile
    exit 0
  end
end
'''
]

[tasks.compile]
command = "echo"
args = ["compiling...."]

I get what you mean by that, I just wonder if this might be an often enough usecase that I might want to say, run this, if any file in this glob is newer than any file in the other glob.
e.g.
any_newer= {src=["src/*.js", "static/*.html"], target=["out/*"]}

the mapping is an issue. js might stay js and html might get converted to js.
i could create some task with the deckscript script that you can extend and just give it the params like source, target and task to invoke but i do not think it would cover all cases

the mapping is an issue. js might stay js and html might get converted to js.

I didn't want anything that advanced.
Just any file in src should be newer than every file in target.
While that does not cover all cases, if one wants specific behavior based on a file to file mapping they probably need to use duckscript.

i might be able to do something for that...


pythonPackages.grpcio-tools: fix undefined symbol error on armv6l

Motivation for this change
On armv6l, grpc needs to link to libatomic to provide C++ atomic operations. Without this PR, importing this Python module results in the following error:
Traceback (most recent call last):
  File "nix_run_setup", line 8, in <module>
    exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\\r\\n', '\\n'), __file__, 'exec'))
  File "setup.py", line 6, in <module>
    from grpc_tools import protoc
  File "/nix/store/b21rflbwjpfj7lxm3fg88p64ri6p0pm6-python3.7-grpcio-tools-1.23.0/lib/python3.7/site-packages/grpc_tools/protoc.py", line 20, in <module>
    from grpc_tools import _protoc_compiler
ImportError: /nix/store/b21rflbwjpfj7lxm3fg88p64ri6p0pm6-python3.7-grpcio-tools-1.23.0/lib/python3.7/site-packages/grpc_tools/_protoc_compiler.cpython-37m-arm-linux-gnueabihf.so: undefined symbol: __atomic_fetch_add_8

One might expect that the grpcio package would need this fix, rather than grpcio-tools, but this does not seem to be the case.
Things done

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

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Notify maintainers
cc @vanschelven

I fixed protobuf on armv6l upstream a while ago (https://github.com/protocolbuffers/protobuf/pull/5227), and I have only seen this issue with grpcio-tools. I looked into fixing this upstream, but I think it would be difficult because it is hard to do autotools/CMake style compile tests in Python libraries.

It looks like this has been fixed upstream: https://github.com/grpc/grpc/pull/20414

Fixed by #72892


Session daemon error during Caret recording in Autoware

Checklist

[X] I've read the contribution guidelines.
[X] I've read document and no solution were found.

Issue type
Bug
Step where the issue is related to
Recording
Environments

OS: Ubuntu 22.04.3 LTS
Kernel version: 5.15.0-91-generic
ROS 2: Humble
CPU: Intel® Core™ i7-9700K CPU @ 3.60GHz × 8
Memory: 32.0 GiB

CARET version

CARET: v0.4.22

Target application

Application: Autoware running with AWSIM.

Description
I have encountered Error: No session daemon is available. or recvmsg: Connection reset by peer (in lttcomm_recv_unix_sock() at unix.c:205) Error: Fatal error of the session daemon.
I think the error is caused by lttsession failure. This causes limited nodes and topics trace was recorded. I reckon it is caused by too many caret_trace nodes created and leading to some error in lttsession.
I used the launch file from the carete_autoware_launch repository and I believe the session was correctedly created since I could collect certain nodes' traces. However, it is not complete and a lot of nodes are missing when I analyze the records. Any possible solution to this?
Steps to reproduce

Install caret.
Compile autoware with caret.
Modify launch files.
Start AWSIM.
Launch Autoware.

Commands
No response
Logs
No response
LTTng trace log file
No response
Screenshots
No response

I apologize for the delayed response @ThankPan .
I haven't encountered the errors recvmsg: Connection reset by peer (in lttcomm_recv_unix_sock() at unix.c:205) Error: Fatal error of the session daemon. Therefore, it is challenging to provide specific solutions at this moment.
If we gain any insights, we will contact you.

@ThankPan Thank you for your patience.
The caret_autoware_launch you are trying does not support AWSIM.
Please try again using the following procedure.
environments
# installed ubuntu22.04 and ros2 humble-desktop
ulimit -n 16384

caret setup
source /opt/ros/humble/setup.bash
cd ~
git clone git@github.com:tier4/caret.git
cd ros_caret_ws
mkdir src
vcs import src < caret.repos
./setup_caret.sh
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release

autoware setup
source /opt/ros/humble/setup.bash
cd ~
git clone https://github.com/autowarefoundation/autoware.git
cd autoware
git checkout 2024.03

# If the cuda/cudnn/tensorrt environment has been established, the cuda setup will skip.
# if you do not want to install only nvidia drivers, submit the command
# ./setup-dev-env.sh -y --no-cuda-drivers --download-artifacts

./setup-dev-env.sh

nvidia-smi # Ensure success

mkdir src
vcs import src < autoware.repos

rosdep update
rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO

https://tier4.github.io/caret_doc/main/faq/known_issues/#build
Apply the patch indicated in this known_issues.
# build
source ~/caret_ws/ros2_caret_ws/install/local_setup.bash

colcon build --symlink-install --packages-skip rclcpp rclcpp_action rclcpp_components rclcpp_lifecycle --cmake-args -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=Off -DCMAKE_CXX_FLAGS="-w"

# Confirm that caret has been successfully applied and built
. ~/ros2_caret_ws/install/local_setup.bash
xxx@yyy:~/autoware$ ros2 caret check_caret_rclcpp .
INFO    : 2024-07-23 10:49:20 | All packages are built using caret-rclcpp.

AWSIM setup
https://tier4.github.io/AWSIM/GettingStarted/QuickStartDemo/
Get AWSIM and map data. autoware has already been built and is not needed her

AWSIM caret measurement.
terminal#1 AWSIM
cd ~
AWSIM/AWSIM_v1.2.2/AWSIM.x86_64

terminal#2 autoware logging_simulator
Once rviz starts, wait for Localzation to become Intialized and set the goal.
source /opt/ros/humble/setup.bash
cd ~/autoware
source ~/ros2_caret_ws/setenv_caret.bash
source  install/local_setup.bash
ros2 launch autoware_launch e2e_simulator.launch.xml vehicle_model:=sample_vehicle sensor_model:=awsim_sensor_kit map_path:=<your mapfile location>

terminal#3 caret record
source /opt/ros/humble/setup.bash
source ~/ros2_caret_ws/install/local_setup.bash
ros2 caret record -v -s trace_data -f 50000 --light
UST tracing enabled (xx events)
kernel tracing disabled
context (x fields)
writing tracing session to: /home/xxx/.ros/tracing/trace_data
press enter to start...

The first  input starts the measurement, and the second  input ends the measurement. Measurement data is generated under /home/xxx/.ros/tracing/trace_data.

@ThankPan
Since we have not received a response for a long time and the status of the issue is unknown, we are closing it.
If you encounter similar problems in the future using the method shown here, please create another issue.


Raise error on unterminated string at EOF

Resolves part (or all?) of the issue mentioned in #35, but only for the Python tokenizer, of course.
Corresponding PR for the Rust tokenizer: https://github.com/smheidrich/py-json-stream-rs-tokenizer/pull/55
Also adds new test case for this.

Hey, I'll pick up from here and cover the other two cases, unterminated list and unterminated object.

@smheidrich thoughts?

@daggaz Looks good to me :+1: I've merged https://github.com/smheidrich/py-json-stream-rs-tokenizer/pull/55, so if you depend on version 0.4.16+ of the Rust tokenizer (should be released ~20 minutes from now), the issue will be resolved there as well.


Socket connection to NodeJS server ( Socket.io ) - Failure in SSL library, usually protocol error

Related to https://github.com/flutter/flutter/issues/62661 ! Sorry, i didnt know i made this one too.


how to control level of sparsity?

how to control level of sparsity?

Level of sparsity can be controlled with the 'threshold_alpha' parameter which defines the cut-off value of the basis functions. Set it to a higher level to have less sparsity and to a lower level to obtain more sparsity. Default is 1e5 but it will be changed to 1e9 in v0.1.1

I should also say that higher values of 'threshold_alpha' will result in longer training times as less basis functions are pruned.


Feature request: Ignore a line

First I will thank you for this great project! I use it regularly to validate my iRules.
I have one feature request:
It would be useful if there were a syntax to exclude the next or current line from validation.
#irulscan-ignore-next-line
eval ...

Hi @JuergenMang, happy to hear you use irulescan successfully! irulescan doesn't scan iRules line-by-line, hence it's not a simple task to implement this feature.
What I'd suggest is to capture any findings as "acceptable" results. This is what https://github.com/marketplace/actions/irules-security-scan does for example.

Thanks for your fast reply. I will look into that.


Problem with numpy 1.7 and comparing units

Shown at https://travis-ci.org/astropy/astroplan/jobs/149552934, the numpy 1.7 build isn't handling comparisons between TimeDeltas and time Quantities.
I am having difficulties with getting numpy 1.7 to work on my computer (when I tried from astropy.time import Time I got RuntimeError: module compiled against API version 0xa but this version of numpy is 0x7 so I can't test why this is occurring.
I also only changed the end_time used in the scheduling, compared to a version of the test that passed the checks (https://github.com/astropy/astroplan/pull/203/files#diff-0a76986689e0ed763a45883b287ee97fL41 are the changes compared to the version that passed).

@eteq @bsipocz any idea why the TimeDelta and Quantity comparison is having issues (or why numpy is even involved in the comparison)?

Doesn't tb.duration become an array a few lines above? So I don't think it's the TimeDelta and Quantity check that is failing, I think it is tb.duration > new_start_time - tb.start_time which is saying [] > 100 s.
I was working on this chunk of code last night and ran into some similar problems (along with others).

tb.duration = times_indices * time_resolution is probably what you are referencing. times_indices is an int and time_resolution is an astropy.Quantity so it shouldn't be an array

Oh, got it, sorry. I did see something similar to this last night though so
I'll look through what I was doing.
On Thu, Aug 4, 2016 at 7:32 AM, Karl<EMAIL_ADDRESS>wrote:

tb.duration = times_indices * time_resolution is probably what you are
referencing. times_indices is an int and time_resolution is an
astropy.Quantity so it shouldn't be an array
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/astropy/astroplan/issues/205#issuecomment-237381141,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAEUUNJegh44c4MBK37XF-t9uTBcZuDfks5qcQjrgaJpZM4JcGkp
.

--
~Wilfred Tyler Gee

Any idea is worth looking into (that's just one case where I have a lot of familiarity with the code).

I don't have time now to look into the details, but it may be worth going
through the numpy changelog and see what was new in 1.8. My guess is that
you use something in the new code that was not available (or buggy) in 1.7.
On 3 August 2016 at 22:47, Karl<EMAIL_ADDRESS>wrote:

Any idea is worth looking into (that's just one case where I have a lot of
familiarity with the code).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/astropy/astroplan/issues/205#issuecomment-237385105,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGeUwmu2Us0nT4LZE-r0_GNzbDGtp9xUks5qcQxfgaJpZM4JcGkp
.

This appears to be fixed by #232, though I have no idea why.

Such mystery.


Scroll sensitivity control in each direction

Because of a fixed header in my application, i needed to have fine control on scroll sensitivity in the top direction.
Here is the patch i use.
To not break compatibilty i chose to use an object with top, bottom, left and right keys.

@waynevanson I've made the change, just let me more time to test it on my application.
Also can you confirm that there will be no problem with the switch to TypeScript.

Also can you confirm that there will be no problem with the switch to TypeScript.

No worries. Please let me know when you're ready.

Also can you confirm that there will be no problem with the switch to TypeScript.

No Problem.

@waynevanson sorry but i could not manage to test it with the new packaging/typescript way.


Remove MOUSEMOVE event binding on component unmount

Thank you, How did you encounter the problem? because handleLeave , handleDragEnd and handlePanEnd take care of removing the listener.

I have a dropdown that unfolds on top of the chart, on select, it removes it. Since the mouse never leave the canvas, handleLeave was not called.
Thank you for this awesome lib !


Fixed Incorrect help message

Thanks for making that small change, appreciate it!

Thanks for making that small change, appreciate it!

Thanks to youu sir.. for letting me contribute :)


test only subset of models when all used to be tested

Previously, when certain files were altered (such as files within the model_helpers directory of brainscore_vision), tests were run on all models present in the brainscore_vision repository. This change should ensure that only the following subset of models are run:

hmax
alexnet
CORnet-S
resnet-50-robust
voneresnet-50-non_stochastic
resnet18-local_aggregation
grcnn_robust_v1
custom_model_cv_18_dagger_408
ViT_L_32_imagenet1k
mobilenet_v2_1.4_224
pixels
cvt_cvt-w24-384-in22k_finetuned-in1k_4
resnext101_32x8d_wsl
effnetb1_cutmixpatch_augmix_robust32_avge4e7_manylayers_324x288

@mschrimpf is this everywhere that all models would be tested in the past?


Accept parameters when firing a probe

Systemtap's USDT probes accept parameters, and this library should accept parameters too.

Fixed with 03d6560


[feat]: Add aliases for your embassy main UI

Prerequisites

[X] I have searched for existing issues that already suggest this feature, without success.

Describe the Feature Request
Ability to add an alias URL for your embassy landing page. This would be in addition to the default embassy-xxxxxxx.local URL.
This would need to come with a CA cert, or instructions on how to add a CA cert to the additional alias URL.
Describe the Use Case
Having an alias URL will make it easier for a user with multiple embassy servers to be able to identify and use them over LAN.
Describe Preferred Solution
Option on the Embassy page to add Alias URL, with a string field that has validation to make sure the URL is formed correctly.
Describe Alternatives
No response
Anything else?
No response

Currently, you can create a friendly name for your Embassy inside the Preferences section of the Embassy tab. Is this sufficient? Or can you explain the use case where it's not?


Increasing the speed of data updates in the DOM

I ran into the problem of updating a large amount of data, which in turn caused the calculation of each DOM element, especially when I used "updateTable" and "editor" together.
The solution is very simple - detach the element from the DOM, make changes and put everything back in its place.

let parent = this.mainTable.parentElement;
let removed = parent.removeChild(this.mainTable); // remove table for batch editing
this.table.setData(dataTable); // inserting new data that causes element updates
parent.appendChild(removed); // add the list back after editing

Just FYI, I submitted a PR which has been merged which might help you: #859

This has been included, closing...


DUDe dont give up

i use this plugin all the time please dont abandon it

I agree with him, please dont give up = (

@kalebplayz125 @MrIDontKNow-hub The issue is not "giving up"
Spoofing data to discord using the screenshare bypass can result in your account getting banned

^


Provide an example of using Newtype and Maybe Newtype

This pull request adds an example of using Newtype as well as Maybe Newtype.
Being relatively new to PureScript, it took me a bit of time to understand what was going on with the nested Except and Maybe functors. The journey taught me a lot however and I believe this example could be helpful to others.
I feel there's something not really idiomatic in using <#> map Email, which initially came up as <#> (<$>) Email while I was figuring out the types and nesting.
I'd happily rename Email and foo, bar, baz, duh to something more meaningful.

error in deps, maybe will work if restarted


MATCH ALL(a < 0, b >= 3)

Last argument does not support ending comma

Panics with
thread 'actix-rt:worker:0' panicked at 'index out of bounds: the len is 0 but the index is 2', $HOME/wooridb/wql/src/logic.rs:19:25

At wql/logic.rs:13 include filter.
 base.split(',')
        .map(|l| {

Becomes:
base.split(',')
        .filter(|l| !l.is_empty())
        .map(|l| {


Support for nested point access

Add parser and compiler support for accessing/modifying nested points: in by, sort, put/reduce and both left and right side of assignment.

The most natural syntax to access nested data is a.b (for objects) and a[b] (for both arrays and objects). We should be able to do e.g.:
head 5 by a.b
sort by a.b
put a.b = c.d
reduce a.b = count(c.d)

As for a[b], an obvious question is: what does a[b] mean in cases like put x = a[b] or reduce ... by a[b] when both a and b are not defined? Right now, the semantics of this construct is weird (see #135).
To me, the most logical answer is that a[b] should access an element in field a determined by the value of field b. This makes perfect sense in put and reduce (on both sides) but in by, sort, and reducer invocations (e.g. count(c.d)) it would mean the field specification would cease to exist as a static, build-time construct but become a dynamic, runtime one. This has consequences in areas like optimization and custom reducer semantics which need to be thought through.

Let’s start by making member access work properly in non-flowgraph context.

I thought about the issues involved a bit.
The by Clause
Current Semantics
Right now, the semantics of the by-list is a list of fields. It can be entered as a list of strings or a list of identifiers (which will be coerced to strings internally):
head by "field1", "field2"
head by field1, field2

An important feature is ability to pass by-lists using constants, parameters, etc. This is most useful for subs:
sub s(by) {
    head by by
}

s -by "field1", "field2"

Technically, by-list passing is implemented using auto-flattening the list. The head invocation in the previous example is equivalent to head by ["field1", "field2"] (a one-element by-list whose element is an array), which is flattened to head by "field1", "field2" (a two element by-list).
Extending by
We’d like to extend by to allow expressions like this:
head by a.b
head by a[0]
head by a[0].b[1]

It’s clear that the the list of fields semantics wouldn’t suffice here. But another semantics almost suggests itself: a list of expressions. For each point, expressions in the by-list would just be evaluated in the streaming context and points would be bucketed according to the results. This approach is both elegant and quite generic.
One problem with this approach is that it would make things harder for optimization. Instead of working with a list of strings, the optimizer would have to travel AST nodes and determine whether they represent something simple enough to optimize. This could be solved by limiting the expressions to simple forms. For example, we could allow indexing only with build-time constant indices (so a[0] would be valid, but a[b] would not, unless b is a constant). The whole expression then could be converted into an array of indices (for example, a[0].b[1] would be converted to ["a", 0, "b", 1]), which is something the optimizer can work with fairly easily. I’ll call this semantics a list of lists of indices.
Big disadvantages of this approach are limited expressive power and possibly confusing semantics (mixing streaming and build-time expressions together). The confusing semantics could be prevented by allowing indexing only by literals, but this would limit expressive power even further.
Passing By-Lists
How can we pass by-lists around with the two semantics suggested above?
In case of expressions, we’d need to invent some kind of first-class by-list or first-class by-expression construct:
sub s(by) {
    head by by
}

s -by byexpr { a.b }

This is necessary because s -by a.b by itself wouldn’t work (a.b would get evaluated before calling the sub, not in streaming context for each point).
Obviously, this solution leads to very different syntax in the by clause and in options. It would also complicate the language.
It should be noted that first-class by-expressions would be similar to hypothetical first-class filter expressions (both are a kind of expression in streaming context). We should consider those constructs together and maybe even generalize them to some form of lambda functions (I won’t explore that direction here).
In case of indices lists, situation is better as they can be passed around as normal arrays:
sub s(by) {
    head by by
}

s -by ["a", "b"]

Again, the syntax looks different in the by clause and in options. But there is an additional problem: ambiguity. Does the value of the -by option above mean “group by fields a and b” or “group by field a.b”? Disambiguating this would complicate either the syntax for grouping by one nested field or for grouping by multiple non-nested fields with a requirement of an additional level of [...] wraping. Note both kinds of grouping will be quite common.
Another approach, valid for both by-list semantics, would be to allow calling subs with a by clause which would be treated as a special argument — either implicit or explicit. In the implicit variant, the argument wouldn’t be declared and it would just appear in scope (like this or self in most object-oriented languages). In the explicit variant, the argument would be declared using a special syntax, possibly similar to the by clause itself:
sub s() by fields {
    head by fields
}

s by a.b

This approach is admittedly inspired by how Ruby treats blocks passed to methods.
The sort Proc
Sort-lists are similar to by-lists, so what I wrote above is also mostly valid for them. One additional feature sort-lists have is the sort direction, but this can be easy modeled both with expressions and indices lists. Also note that we probably can’t allow the luxury of having a special argument syntax for passing sort-lists. This is a significant constrain as solutions for both by-lists and sort-lists should be consistent.
Reducers
Reducers now rely on coercion to interpret expressions like count(a). How could they support expressions like count(a.b) without destroying usual semantics for non-field arguments and introducing confusion about what things get evaluated when?
One possibility relies on observation that the first argument of all built-in reducers and almost all stdlib reducers is a field. We can simply formalize this as a requirement and introduce a different semantics for this argument than for the rest.
The * Operator
The * operator currently accepts only strings. It would need to be extended to understand whatever field representation we will choose. This should be relatively straightforward with any semantics.

We discussed this with @demmer yesterday.
The main conclusion is that the concept of “field path” deserves a first-class representation. In principle, it could be declarative (similar to the list of indices internally) or executable (basically the expression semantics I proposed above). We decided to go the declarative way at the beginning, limiting field paths to static ones. This is simpler and opens the possibility of implementing path manipulation operations (equivalents of basename, pathname, etc.). These can’t be implemented with opaque executable representation. Note that if we don’t introduce any operations and later decide we need the flexibility of full expressions, we can flip to the executable representation easily.
One thing we didn’t solve yet is the exact syntax and semantics. The biggest concerns are to keep the syntax lightweight and the semantics intuitive. One idea is to be able to specify an option type in a sub, e.g. like this:
sub s(f: fields, x, y) {
  head by fi
}

s -f a.b -x 5 -y 6

At the call site, the types would be known, which would lead to -f being treated as a field path literal (not as an expression to be evaluated). Similar thing could also work for reducers.
Given this idea smells a lot like a type system (which is a can of worms by itself), it is more like an eventual goal rather than the means how to implement nested point field access now.


Fix matching on employee in contract request assign

#3224

Coverage remained the same at 88.462% when pulling 1c6994fc1d545246b2e9cd7024da08f821567faf on fix-contract-request-assignee-match into 7898995a7f7a912309516e837d9baaa590882007 on develop.


News item update not being applied

There's an item posted by service-36925c92-2903-4d17-951c-f1c8f8e1c99d, that's been updated ±12h after it has been posted. This text update is not applied in the iOS app. Even not after pull-to-refresh.

server issue


QR code scanner

Description of the new feature / enhancement
Integrate a qr code scanner in power toys , It will work like text extractor. After scanning any qr , it will immediately display a popup containing info about qr code.
Scenario when this would be used?
for scanning qr code
Supporting information
No response

/dup https://github.com/microsoft/PowerToys/issues/4859


Add api to check ansible operator

For https://github.com/open-cluster-management/backlog/issues/12826

/hold

/unhold
Nevermind, I thought I had broken something


Missing parameters

Hey!
I'm looking to use this project to build and output plugin in rust. I think I've found an issue where you can't really read any configuration for the plugin. Also, the tag is missing from the Flush call (or it looks like this on a first read).
Rust is not a language I feel comfortable in, Is there any reason all this hasn't been implemented? It could be that I'm missing something but I'd appreciate your support

Hi @xocasdashdash
I am not sure if I understood the issue. so, can you elaborate a bit more about "can't really read any configuration for the plugin", read from where? , about the tag, yes, It has not been exposed through the public api yet, but, It should be easy to add, do you want to collaborate with it? I can help you if You want. If that is not the case, I can add support for it maybe next weekend.. :)

well, in fluent bit you can load configuration for a specific plugin.
You can see how its done here for go:
https://github.com/fluent/fluent-bit-go/blob/master/examples/out_gstdout/out_gstdout.go#L19-L24
I have very little experience with Rust, this is one of the reasons why I want to do this little side project

Thank you for the link,  it clarifies a lot. those features don't look difficult to implement, the easiest one is the tag in the flush function.
I will add these features next days and will inform you here once it is ready for testing.

The tag feature was added, It is in the dev branch if you want to test. also updated the examples/json example to use it.. still need to add the configuration feature, once It is done, I will submit this as fluent-bit v0.2., because It will be a breaking change.

About the configuration, and don't see if it is necessary, considering that you can have a context in your struct or whatever you implement the trait FLBPluginMethods on, as far as I understand, this configuration is a sort of global variable or state??
https://github.com/fluent/fluent-bit-go/blob/e125cab1796300900f5f496c413270b58002309f/output/output.go#L72
, so, by implementing this Trait on a struct, in the init function you can initialize and configure any context your implementor has, let's say you can initialize custom buffers, parsers or even make http requests etc.. What would be common use for this context initialization in go, what would you usually do with this??

Yeah, the configuration could be used to pass parameters down to the output plugin. If you check out any of the "normal" output plugins from fluent-bit you can see that they're very configurable.
In the usecase I'm thinking I'd use to configure the location of an http client cert, the destination URL and some more parameters.
The code you're linking what I think it does is generate a unique ID per copy of the output plugin. I'm guessing in order to namespace the configuration of each copy.

Hi:
It is done, you can check the dev branch.
you can follow the example in examples/json to see how it works.
Please tell me how it goes on your side, once the example is compiled, I ran it using:
fluent-bit -e libjson.so -i cpu -o "rustout" --prop="params=http://example.com"

Hey! Sorry I didn't get back to you, i did manage to get a simple example working. Thanks for implementing it!


Take C++ dialect out of the name of built CUB examples/tests

Always having the C++ dialect in the CUB test name (e.g. cub.cpp14.test.device_select_unique.minimal) is going to be problematic for testing NVC++ with CUB in the NVC++ test system. Can we fix this? Thrust doesn't do this when multi-config is off. I'd like that behavior.
I'd like to get the CUB tests turned on in NVC++'s test system ASAP so if we can prioritize this it would be great.

I was actually planning to implement CUB's behavior in Thrust as part of NVIDIA/thrust#1333 -- keep the info in the test / example executable names and just have the one path through the build system to maintain. Configuring for a single config would still be possible (and default to cpp.cuda.cpp14), but the info would stay in the test / executable names.
Can you explain how this breaks nvc++builds? It sounds like I'll need to rethink my plans for thrust.

The NVC++ QA system wants to be able to pass through arbitrary flags to the compiler, which is how they manage configs for things like language dialect. Everything is just a flag for them.
We could just have an option to exclude it from the config name specifically for them.


Don't run the reduce pass in the REPL

The existential example doesn't work in the REPL because of this:
> type box =
.   | Box : ('a -> string) * 'a -> box ;;

> let show_it (Box (f, x)) = f x
amc: src/Core/Optimise/Reduce.hs:384:9-50: Irrefutable pattern failed for pattern Just ty

@zardyh told me to do this to make Amulet seem like it has contributors.

I neither confirm nor deny these allegations.

The comment is still right - we need to do some commuting conversion in order to ensure codegen isn't trite


update NS_SWIFT_NAME parameter to remove build warnings

#no-changelog
Should fix build warnings in #9331

@elenadoty See the latest comment in #9331

Whoops, sorry @elenadoty. I actually merged my PR into this one. 😄 So this is good to merge into master.


Scrapoxy Integration

Hello,
Did you try to integrate Scrapoxy.io into haipproxy ?
Best regards,
Fabien

Thanks for your recommendation,I'll try scrapoxy in my free time

Hi, Scrapoxy 4 is out if you are interested
Scrapoxy is a open source proxy aggregator, allowing you to manage all proxies in one place 🎯, rather than
spreading it across multiple scrapers 🕸.
Smartly designed for efficient traffic routing 🔀, Scrapoxy minimizes #bans and boosts success rates 🚀.
The tech stack is built on the latest NodeJS, Typescript, utilizing the NestJS and Angular frameworks.
Here are the key features:

☁ Cloud Providers with easy installation: Scrapoxy supports many cloud providers like AWS, Azure, or GCP.
🌐 Proxy Services: Scrapoxy supports many proxy services like Rayobyte, IPRoyal or Zyte.
💻 Hardware materials: Scrapoxy supports many 4G proxy farms hardware types, like Proxidize or XProxy.io.
📜 Free Proxy Lists: Scrapoxy supports lists of HTTP/HTTPS proxies and SOCKS4/SOCKS5 proxies.
⏰ Timeout free: Scrapoxy only routes traffic to online proxies to avoid inactive connection.
🔄 Auto-Rotate proxies: Scrapoxy automatically changes IP addresses at regular intervals.
🏃 Auto-Scale proxies: Scrapoxy monitors incoming traffic and automatically scales the number of proxies according to your needs.
🍪 Sticky sessions on Browser: Scrapoxy keeps the same IP address for a scraping session, even for browsers.
🚨 Ban management: Scrapoxy injects the name of the proxy into the HTTP responses.
📡 Traffic interception: Scrapoxy intercepts HTTP requests/responses to modify headers, keeping consistency in your scraping stack. It can add session cookies or specific headers like user-agent.
📊 Traffic monitoring: Scrapoxy measures incoming and outgoing traffic to provide an overview of your scraping session.
🌍 Coverage monitoring: Scrapoxy displays the geographic coverage of your proxies to better understand the global distribution of your proxies.
🚀 Easy-to-use and production-ready: Scrapoxy is suitable for both beginners and experts (Kubernetes / Helm).
🔓 Open Source: And of course, Scrapoxy is open source, under the MIT license.

Checkout https://scrapoxy.io/ !


Error getting status (An internal error occurred)

This node was working fine for a while then has stopped. I get the error "Error getting status (An internal error occurred)" when injecting a time stamp.
if i move the node in the lay out and re-deploy it it comes back to life.

use cloud or adapter ?

It was using Cloud. I've not been able to get serial working yet.

full deploy or "Modified Nodes" ?

Both

try<EMAIL_ADDRESS>, if this error reply 5 times will be re-initialize new token

hey is Comfee MDDF-16DEN7-WF Luftentfeuchter working with this?
i get alltime the Message ""Error getting status (An internal error occurred)" if i inject timestamp!

no

Would there be one way to insert it?

Would there be one way to insert it?

I have the same issue Error getting status (An internal error occurred) using 1.1.9 - any suggestions to debug this?
thx for support

hi try 1.2.0 now support OSK103


I can't push my contract

This is my deploy script
import { ethernal, ethers } from "hardhat"

async function main() {
    const [owner] = await ethers.getSigners()

    const Contract = await ethers.getContractFactory("Contract")
    const Deployed = await Contract.deploy()

    await ethernal.push({
        name: "Contract",
        address: Deployed.address
    })

    console.log("Contract address:", Deployed.address)
    console.log("Owner address:", owner.address)
}

main()
    .then(() => process.exit(0))
    .catch((error) => {
        console.error(error)
        process.exit(1)
    })

This is my error log
yarn run v1.22.19
$ npx hardhat run scripts/deploy.ts --network localhost
[Ethernal]  Logged in with<EMAIL_ADDRESS>[Ethernal]  Using default workspace "LOCAL"
HttpsErrorImpl: [syncContractData] Missing parameter.
    at new HttpsErrorImpl (/Users/olivmath/work/olivmath/payments-auto/node_modules/@firebase/functions/src/api/error.ts:66:5)
    at _errorForResponse (/Users/olivmath/work/olivmath/payments-auto/node_modules/@firebase/functions/src/api/error.ts:175:10)
    at Service.<anonymous> (/Users/olivmath/work/olivmath/payments-auto/node_modules/@firebase/functions/src/api/service.ts:276:19)
    at step (/Users/olivmath/work/olivmath/payments-auto/node_modules/tslib/tslib.js:141:27)
    at Object.next (/Users/olivmath/work/olivmath/payments-auto/node_modules/tslib/tslib.js:122:57)
    at fulfilled (/Users/olivmath/work/olivmath/payments-auto/node_modules/tslib/tslib.js:112:62)
    at processTicksAndRejections (node:internal/process/task_queues:96:5) {
  code: 'invalid-argument',
  details: undefined
}
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Hey,
You need to make sure that the "name" parameter of the push function is exactly the same name than the contract name.

I improved the file for this, now it works
my deploy script
import { ethernal, ethers } from "hardhat"

async function main() {
    const [owner] = await ethers.getSigners()

    const Lib = await ethers.getContractFactory("Array")
    const Array = await Lib.deploy()

    const AutoPay = await ethers.getContractFactory("AutoPay", {
        libraries: { Array: Array.address }
    })
    const Pay = await AutoPay.deploy()

    console.log("Library address:", Array.address)
    console.log("Contract address:", Pay.address)
    console.log("Owner address:", owner.address)

    await ethernal.push({
        name: "AutoPay",
        address: Pay.address
    })
}

main()
    .then(() => process.exit(0))
    .catch((error) => {
        console.error(error)
        process.exit(1)
    })


Support for 2019.3 version

I'm submitting a ...

[x] bug report
[ ] feature request
[ ] puppy => You're not submitting a puppy. I already have one and he's adorable

What is the current behavior?

Not supporting for 2019.3

Is this a bug? Sorry about that. If so give me explicit details how to reproduce:

Open Rubymine 2019.3
Error message saying git flow integration does not compatible with current version

What is the expected behavior?

What is the motivation / use case for changing the behavior?

Please tell me about your environment:

Gitflow4idea version: 0.7.0

Gitflow version :1.11.0 (AVH Edition)`

IntelliJ Help -> about > click copy icon and paste here. Should look like this:

 RubyMine 2019.3
 Build #RM-193.5233.108, built on November 28, 2019
 Runtime version: 11.0.4+10-b520.11 amd64
 VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o

Other information (e.g. detailed explanation, stacktrace, related issues, suggestions how to fix, links for me to have context words of praises, pictures of puppies (again with the puppy??) )

 Plugin "Git Flow Integration" is incompatible (target build range is 182.0 to 192.*).

It has already been reported, check https://github.com/OpherV/gitflow4idea/issues/259


feat(editors/later-binding): Provide later-binding subscriber-oriented view

Closes #1025
This PR provides a subscriber-oriented view and allows the user to use a new button in the header to swap between a publisher-oriented view (the default) and the subscriber-oriented view.
The state of this button is saved in local storage to improve user experience.
It also changes the iconography in all plugins to be consistent in using the link and link_off icons for subscriptions which are present or absent.
It changes the way titles are done in the later binding plugin to be (I hope) a little more intuitive.
It innovates slightly by incrementing the selection in the extref list window after a subscription. I think this is a great workflow enhancement. Others may view it as a crime. WDYT?
It fixes one or two (alleged) bugs along the way.
It adds caching for identifying the supervision instances as this appears to be a costly operation.
It's probably usable for initial feedback.
Things Done and Not Done

[x] Fix buggy prefix handling in isSubscribed in subscription/later-binding/foundation.ts. This element is not necessary for a subscription AFAICT. Update relevant tests.

[x] Check for loose imports

[x] Update snapshots

[x] Add the filter for both FCDA and ExtRefs to only those used.

[x] Add disabled to FCDAs on the RHS in the subscriber later binding plugins if pXX attributes are present (similar to what we do existing in the fcda-list)

[x] Update Subscriber Later Binding (GOOSE) plugin

[x] Provide tests

[x] Update icons for showing subscriptions in other subscription plugins

[x] Generally replicate tests for extref-list for the new subscriber list.

[x] Add tests for incrementing, and the change in button

[x] SMVSubscriberLaterBinding.test.ts has an interesting failure, where the same FCDA is in two control blocks Daniel thinks issue is with findControlBlocks and incorrect logic in the unsubscribe function. Not really, I used these functions without due care. The problem was me.

[x] Abstract out subscribe and unsubscribe into foundation functions for reuse by automation and move event handler into classes.

[x] Check that titles are correct between the two extref lists.

[x] Why are pXX bindings not working in existing plugin in my PR? Why is there no failing test. If only a snapshot test then add a test. They are working. They just don't work for partial matches.

[x] XAT Prot2 Later Binding SMV list looks decidedly odd. But I forget why...

[x] ExtRef must not be disabled in subscriber view.

[x] Should the auto-increment have a setting cog adjacent to the filter to disable it?

[x] If you open the same file twice are the ExtRefs updated? Yes, but the FCDA counts were not.

[x] Modify filter as per #1149

[x] Add settings option for auto-increment

[ ] Consider moving common functionality between ext-ref-later-binding-list-subscriber.ts and ext-ref-later-binding-list.ts into foundation (?). My new foundation functions don't feel terribly smooth but I have built on what came before. Perhaps it should be scoped more tightly before FCDAs are processed.

[ ] Gain user feedback

[ ] Try to use something like inline flex to put two side-by-side elements for ExtRef/FCDA in the new subscriber list. Decided not to, instead allowed user to resize the list, but happy to take some reviewer assistance.  My CSS patience has been exhausted for this PR.

[ ] Remove the console logs and try that awful ternary operator again in each later binding plugin (which didn't work for mysterious reasons). Have tried, can't figure out why it doesn't work. I will award 1 :beer: to someone who can explain this to me.

[ ] Can we test local storage? I guess we can, I didn't. But neither did the Substation plugin, so my guilty is not very great.

[x] Check for disabled items working correctly as it does now.

[ ] Offer to the reviewer to go through online to explain choices given monolithic PR.

[ ] File issue relating to alternative ways to show publisher/subscriber

[x] When we moved from Replace to Update I suspect some attributes weren't adequately transferred in my existing code, but we have no test, for example, for pXX attributes. At least checking that a subscription retains these would be nice.

[ ] Highlight to the reviewer possible deficiency in design which uses Update vs. Replace actions and why this was done.

This is now substantially complete.

It would be nice to try and do a better job on the CSS for showing the ExtRef and the subscription as separate visual elements. My current resolution is that the user can resize the ExtRef section as required to deal with the spacing issues we anticipated. However, I will be happy to take some suggestions on how to move forward. Christian suggested that Juan might be able to help here.

I will be very pleased to receive a review and would be happy to meet and go through some of the design decisions if that is desirable, as this is quite a large PR.

There is no particular hurry for this review -- I'm working with a local deployment, and no future work directly depends on this. I hope to get some internal feedback on this plugin soon.

Curiously, in each of the LaterBinding plugin files, if a ternary operator is used instead of the if statement, it appears to not correctly behave between views (especially in event handling?), whereas a normal if statement works fine. I am surprised and confused by this.

Some tests were updated during this PR in the isSubscribed function, which I think required a prefix to exist, which I believe was incorrect, so I fixed it in passing.

A couple of tests are failing, but these are unrelated to this work and may be related to the recent migration to Node 18 (failures don't occur locally on my machine).

It would be better if the ExtRefs were ordered as per the XML file rather than listed alphabetically.

GOOSE and SV should not appear in the ExtRef list if pServT is declared (and serviceType is not).

When I map a SMV input and it increments to the next DA, the "Publisher Sampled Value Messages" view doesn't update for the disabled items (see screenshot):

It would be better if the ExtRefs were ordered as per the XML file rather than listed alphabetically.

Done, perhaps in the fullness of time we can have a sort option here.

GOOSE and SV should not appear in the ExtRef list if pServT is declared (and serviceType is not).

I think done, but may need to add some tests for this.

When I map a SMV input and it increments to the next DA, the "Publisher Sampled Value Messages" view doesn't update for the disabled items (see screenshot):

Done. May also need to add some tests for this

While this PR was mostly finished with tests and awaiting review, Christian has convinced me that for technical reasons and also because we will eventually need to make this a core plugin, we should take a different approach to the structure of this plugin.
So for now, further development will be in https://github.com/danyill/oscd-subscriber-later-binding, and we expect to re-home this within the openscd organisation in the future.
(Technical reasons = especially the use of multiple components for the ExtRef and FCDA list, which is something of an anti-pattern)


Send persisted notification to new users

Hi,
We have a scenario where we'd like to have new user's to our application see some predefined notifications, e.g. some welcome message, t&c etc. How could we go about implementing this with SocketCluster in a way that we pin some notifications with a channel and new users get them delievered when they login the first time.
On a related note, we are also exploring the possibility of having some sort of expiration time with notifications, so that instead of being published and delivered in real time, they are available in the channels till the time they expire. This should allow us to implement the above scenario too by having a potentially large expiry period.
Thanks

Why not have the server send the client data about the notification and when it expires then have the client handle the rest? Such as it checking to see if the notification is passed expiration, and how to handle it. I don't know about 'pinning' something to a channel, because that doesn't really make sense, seems like it would just me handier to on log in check and see if the person is a new user, if so send them some data, whether through a channel or socket it wont matter.