net: nxp_enet: dhcpv4_client sample never finds an IP and doesn't require a cable to be connected for socket functions to pass: mimxrt1050_evk.

Describe the bug

Since the new ENET NXP driver has recently been officially released in Zephyr v3.7, I have been investigating updating from our version which is currently at commit 64f41309d104b161b1960bcc20e2ff6bd58c6355 . On our version, Ethernet works okay in regards to general use with some minor bugs that should be included in another bug report, they are irrelevant to this issue. Moving forward to today, I updated our Zephyr version to the v3.7 commit 36940db938a8f4a1e919496793ed439850a221c2 , this prompted Ethernet to not work at all. Every POSIX network related function seems to pass and return successfully (even with errno's indicating success) when forcefully binding the socket to the Ethernet iface, even when there is no physical cable connected.
Trying the dhcpv4_client example on our RT1050 Development board prompted the PHY driver to detect the Ethernet cable successfully and decide on a MAC address, but even after leaving the board on for up to 30 minutes it never finds an IP address and it also thinks there is a cable connected when there isn't at all. I have confirmed our Ethernet socket is live by plugging it into my Laptop which is able to use it completely fine.
To Reproduce

Steps to reproduce the behavior:

Build dhcpv4_client sample for the mimxrt1050_evk
Flash it
See that it never gets an IP address and there is no need for an Ethernet cable for the POSIX network functions to pass

Expected behavior

I expect it to work like an Ethernet driver should, like It did on v3.6.
Impact

This bug completely breaks our network stack, as we have three different network interfaces on our board with ethernet being the highest priority in the stack. Since the socket functions pass without issue when the Ethernet is very clearly down, this breaks our whole network stack
Logs and console output

[00:00:01.001,000] <dbg> phy_mc_ksz8081: phy_mc_ksz8081_autonegotiate: PHY (0) is entering autonegotiation sequence
[00:00:01.102,000] <dbg> phy_mc_ksz8081: phy_mc_ksz8081_autonegotiate: PHY (0) autonegotiation completed
[00:00:01.103,000] <dbg> phy_mc_ksz8081: phy_mc_ksz8081_get_link: PHY 0 is up
[00:00:01.103,000] <dbg> phy_mc_ksz8081: phy_mc_ksz8081_get_link: PHY (0) Link speed 100 Mb, full duplex

[00:00:01.103,000] <inf> phy_mc_ksz8081: PHY 0 is up
[00:00:01.103,000] <inf> phy_mc_ksz8081: PHY (0) Link speed 100 Mb, full duplex

[00:00:01.104,000] <dbg> eth_nxp_enet_mac: eth_nxp_enet_init: ethernet MAC 02:04:9f:94:78:98
*** Booting Zephyr OS build v3.7.0 ***
[00:00:01.104,000] <inf> net_dhcpv4_client_sample: Run dhcpv4 client
[00:00:01.104,000] <inf> net_dhcpv4_client_sample: Start on ethernet: index=1
uart:~$ net iface

Interface eth0 (0x800004e8) (Ethernet) [1]
===================================
Link addr : 02:04:9F:94:78:98
MTU       : 1500
Flags     : AUTO_START,IPv4
Device    : ethernet (0x6001dd20)
Ethernet capabilities supported:
        TX checksum offload
        RX checksum offload
        10 Mbits
        100 Mbits
        MAC address filtering
IPv4 unicast addresses (max 1):
        <none>
IPv4 multicast addresses (max 2):
        <IP_ADDRESS>
IPv4 gateway : <IP_ADDRESS>
DHCPv4 lease time : 0
DHCPv4 renew time : 0
DHCPv4 server     : <IP_ADDRESS>
DHCPv4 requested  : <IP_ADDRESS>
DHCPv4 state      : selecting
DHCPv4 attempts   : 8
uart:~$

Environment (please complete the following information):

OS: Windows
Toolchain: Zephyr SDK
Commit SHA or Version used: 36940db938a8f4a1e919496793ed439850a221c2

Additional context

I just tried this with my imxrt1050-evkb board, DHCPv4 worked just fine
[00:00:04.012,000] <inf> phy_mc_ksz8081: PHY 0 is up
[00:00:04.012,000] <inf> phy_mc_ksz8081: PHY (0) Link speed 100 Mb, full duplex

*** Booting Zephyr OS build v3.7.0 ***
[00:00:04.013,000] <inf> net_dhcpv4_client_sample: Run dhcpv4 client
[00:00:04.013,000] <inf> net_dhcpv4_client_sample: Start on ethernet: index=1
[00:00:10.604,000] <inf> net_dhcpv4_client_sample: DHCP Option 42: <IP_ADDRESS>
[00:00:10.605,000] <inf> net_dhcpv4: Received: <IP_ADDRESS>
[00:00:10.605,000] <inf> net_dhcpv4_client_sample:    Address[1]: <IP_ADDRESS>
[00:00:10.605,000] <inf> net_dhcpv4_client_sample:     Subnet[1]: <IP_ADDRESS>
[00:00:10.605,000] <inf> net_dhcpv4_client_sample:     Router[1]: <IP_ADDRESS>
[00:00:10.605,000] <inf> net_dhcpv4_client_sample: Lease time[1]: 600 seconds
uart:~$
uart:~$ net iface
Hostname: zperf

Interface eth0 (0x80000540) (Ethernet) [1]
===================================
Link addr : 02:04:9F:6A:2B:CC
MTU       : 1500
Flags     : AUTO_START,IPv4
Device    : ethernet (0x60022754)
Ethernet capabilities supported:
        TX checksum offload
        RX checksum offload
        10 Mbits
        100 Mbits
        MAC address filtering
IPv4 unicast addresses (max 1):
        <IP_ADDRESS>/<IP_ADDRESS> DHCP preferred
IPv4 multicast addresses (max 2):
        <IP_ADDRESS>
        <IP_ADDRESS>
IPv4 gateway : <IP_ADDRESS>
DHCPv4 lease time : 600
DHCPv4 renew time : 300
DHCPv4 server     : <IP_ADDRESS>
DHCPv4 requested  : <IP_ADDRESS>
DHCPv4 state      : bound
DHCPv4 attempts   : 1
uart:~$

Interesting, I have tried again and can get it to work with commit 3bcaa6f8d63136ffc2ae37b6e77ee4e1cda6964f (latest main as of this morning) but still not v3.7.
Additionally, I am having issues with using more than one interface at once with the latest main. I have another interface that is functioning correctly, but ethernet takes priority and is also working by itself. If I have both of them together I get -11 from zsock_getaddrinfo but no errors returned from zsock_socket, zsock_setsockopt or zsock_connect. Any idea? It is breaking our network stack :)

I also tried with latest upstream, and it worked there too for me.

I have REV A1 of the board, dated 2018

About the getaddrinfo error, difficult to know what goes wrong there by just seeing the errno.

Interesting, I have tried again and can get it to work with commit 3bcaa6f (latest main as of this morning) but still not v3.7.
Additionally, I am having issues with using more than one interface at once with the latest main. I have another interface that is functioning correctly, but ethernet takes priority and is also working by itself. If I have both of them together I get -11 from zsock_getaddrinfo but no errors returned from zsock_socket, zsock_setsockopt or zsock_connect. Any idea? It is breaking our network stack :)

it's known that nxp ethernet doesn't work on 3.7 release, because people were wanting to rush a bunch of changes last minute, try with latest main. hopefully 3.7.1 can be released soon with fixed nxp ethernet.

if you need to work on 3.7 try cherry picking this commit 2af4aa8045af37e1a718ed5f166313ac338d70cf to see if it fixes it

it's known that nxp ethernet doesn't work on 3.7 release

I tried the DHCPv4 sample with v3.7 and I could get the IP address, so I was probably just lucky then. I did not try to actively use the Ethernet so it might have failed at that point.

if you need to work on 3.7 try cherry picking this commit 2af4aa8 to see if it fixes it

I have tried latest main with that change in and the behavior is different. I get an IP, i can use ethernet correctly but even without the PHY being up and a cable being plugged in the socket functions pass as i mentioned here

Interesting, I have tried again and can get it to work with commit 3bcaa6f (latest main as of this morning) but still not v3.7.
Additionally, I am having issues with using more than one interface at once with the latest main. I have another interface that is functioning correctly, but ethernet takes priority and is also working by itself. If I have both of them together I get -11 from zsock_getaddrinfo but no errors returned from zsock_socket, zsock_setsockopt or zsock_connect. Any idea? It is breaking our network stack :)

no errors returned from zsock_socket, zsock_setsockopt or zsock_connect

Do you have UDP or TCP socket? If UDP, then those calls do not really send anything to peer, for TCP the connect should fail if it cannot connect.

no errors returned from zsock_socket, zsock_setsockopt or zsock_connect

Do you have UDP or TCP socket? If UDP, then those calls do not really send anything to peer, for TCP the connect should fail if it cannot connect.

They are TCP sockets. For example, we are opening a socket, binding it to Ethernet, connecting to it then closing the socket and this passes fine.

no errors returned from zsock_socket, zsock_setsockopt or zsock_connect

Do you have UDP or TCP socket? If UDP, then those calls do not really send anything to peer, for TCP the connect should fail if it cannot connect.

They are TCP sockets. For example, we are opening a socket, binding it to Ethernet, connecting to it then closing the socket and this passes fine.

I am unsure if this issue is somehow related to the fact that with any other interface active while Ethernet is up, networking related functions like getaddrinfo etc do not work. But when you take one of the interfaces away, it works again.

I am trying to figure out how to replicate your getaddrinfo problem, is the same issue seen for example with dns_resolve sample, @jtlas19 could you try it?

I am trying to figure out how to replicate your getaddrinfo problem, is the same issue seen for example with dns_resolve sample, @jtlas19 could you try it?

I will give it a try this afternoon :)

@jukkar I have just given it a go and I get the same behaviour as I am experiencing! The sample seems to pass with or without an Ethernet cable plugged in with the same result 😆
Result from with the cable plugged in:

[00:00:01.103,000] <inf> phy_mc_ksz8081: PHY 0 is up
[00:00:01.103,000] <inf> phy_mc_ksz8081: PHY (0) Link speed 100 Mb, full duplex

*** Booting Zephyr OS build v3.7.0-309-g6211de87c066 ***
[00:00:01.105,000] <inf> net_config: Initializing network
[00:00:01.105,000] <inf> net_config: IPv4 address: <IP_ADDRESS>
[00:00:01.205,000] <inf> net_config: IPv6 address: 2001:db8::1
[00:00:01.205,000] <inf> net_dns_resolve_client_sample: Starting DNS resolve sample
[00:00:01.206,000] <dbg> net_dns_resolve_client_sample: do_ipv4_lookup: DNS id 27038
[00:00:01.206,000] <dbg> net_dns_resolve_client_sample: do_mdns_ipv4_lookup: Doing mDNS IPv4 query
[00:00:01.206,000] <dbg> net_dns_resolve_client_sample: do_mdns_ipv4_lookup: mDNS v4 query sent
[00:00:01.206,000] <dbg> net_dns_resolve_client_sample: do_ipv6_lookup: DNS id 50170
[00:00:01.206,000] <dbg> net_dns_resolve_client_sample: do_mdns_ipv6_lookup: Doing mDNS IPv6 query
[00:00:01.206,000] <dbg> net_dns_resolve_client_sample: do_mdns_ipv6_lookup: mDNS v6 query sent
[00:00:03.205,000] <inf> net_dns_resolve_client_sample: DNS query was canceled
[00:00:03.206,000] <inf> net_dns_resolve_client_sample: DNS query was canceled
[00:00:03.206,000] <inf> net_dns_resolve_client_sample: mDNS query was canceled
[00:00:03.206,000] <inf> net_dns_resolve_client_sample: mDNS query was canceled
uart:~$
uart:~$
uart:~$ net iface

Interface eth0 (0x80000b10) (Ethernet) [1]
===================================
Link addr : 02:04:9F:22:D1:6D
MTU       : 1500
Flags     : AUTO_START,IPv4,IPv6
Device    : ethernet (0x60024080)
Ethernet capabilities supported:
        10 Mbits
        100 Mbits
        MAC address filtering
Ethernet PHY device: phy@0 (0x6002406c)
Ethernet link speed: 100 Mbits full-duplex
IPv6 unicast addresses (max 3):
        fe80::4:9fff:fe22:d16d autoconf preferred infinite
        2001:db8::1 manual preferred infinite
IPv6 multicast addresses (max 5):
        ff02::1
        ff02::1:ff22:d16d
        ff02::1:ff00:1
IPv6 prefixes (max 2):
        <none>
IPv6 hop limit           : 64
IPv6 base reachable time : 30000
IPv6 reachable time      : 40200
IPv6 retransmit timer    : 0
IPv4 unicast addresses (max 1):
        <IP_ADDRESS>/<IP_ADDRESS> manual preferred infinite
IPv4 multicast addresses (max 2):
        <IP_ADDRESS>
IPv4 gateway : <IP_ADDRESS>

Result from test without the cable plugged in:

[00:00:01.103,000] <inf> phy_mc_ksz8081: PHY 0 is up
[00:00:01.103,000] <inf> phy_mc_ksz8081: PHY (0) Link speed 100 Mb, full duplex

*** Booting Zephyr OS build v3.7.0-309-g6211de87c066 ***
[00:00:01.105,000] <inf> net_config: Initializing network
[00:00:01.105,000] <inf> net_config: IPv4 address: <IP_ADDRESS>
[00:00:01.205,000] <inf> net_config: IPv6 address: 2001:db8::1
[00:00:01.205,000] <inf> net_dns_resolve_client_sample: Starting DNS resolve sample
[00:00:01.206,000] <dbg> net_dns_resolve_client_sample: do_ipv4_lookup: DNS id 61834
[00:00:01.206,000] <dbg> net_dns_resolve_client_sample: do_mdns_ipv4_lookup: Doing mDNS IPv4 query
[00:00:01.206,000] <dbg> net_dns_resolve_client_sample: do_mdns_ipv4_lookup: mDNS v4 query sent
[00:00:01.206,000] <dbg> net_dns_resolve_client_sample: do_ipv6_lookup: DNS id 50992
[00:00:01.206,000] <dbg> net_dns_resolve_client_sample: do_mdns_ipv6_lookup: Doing mDNS IPv6 query
[00:00:01.206,000] <dbg> net_dns_resolve_client_sample: do_mdns_ipv6_lookup: mDNS v6 query sent
[00:00:03.206,000] <inf> net_dns_resolve_client_sample: DNS query was canceled
[00:00:03.206,000] <inf> net_dns_resolve_client_sample: DNS query was canceled
[00:00:03.206,000] <inf> net_dns_resolve_client_sample: mDNS query was canceled
[00:00:03.206,000] <inf> net_dns_resolve_client_sample: mDNS query was canceled
uart:~$ net iface

Interface eth0 (0x80000b10) (Ethernet) [1]
===================================
Link addr : 02:04:9F:09:D0:86
MTU       : 1500
Flags     : AUTO_START,IPv4,IPv6
Device    : ethernet (0x60024080)
Ethernet capabilities supported:
        10 Mbits
        100 Mbits
        MAC address filtering
Ethernet PHY device: phy@0 (0x6002406c)
Ethernet link speed: 100 Mbits full-duplex
IPv6 unicast addresses (max 3):
        fe80::4:9fff:fe09:d086 autoconf preferred infinite
        2001:db8::1 manual preferred infinite
IPv6 multicast addresses (max 5):
        ff02::1
        ff02::1:ff09:d086
        ff02::1:ff00:1
IPv6 prefixes (max 2):
        <none>
IPv6 hop limit           : 64
IPv6 base reachable time : 30000
IPv6 reachable time      : 16960
IPv6 retransmit timer    : 0
IPv4 unicast addresses (max 1):
        <IP_ADDRESS>/<IP_ADDRESS> manual preferred infinite
IPv4 multicast addresses (max 2):
        <IP_ADDRESS>
IPv4 gateway : <IP_ADDRESS>
uart:~$

I am testing with latest main (6211de87c0660a5dfd21b5decc93a67236ec0984)

Right after boot the cable detection does not work but the interface is up even if cable is not connected. After connecting and then disconnecting the cable, the network interface is taken down as expected. @decsny could you take a look at this, this looks like a driver issue.

@jtlas19 is your DNS issue perhaps just related to the fact that the cable detection is not working properly. If you feel it is something else, then I would need a way to replicate the issue, in which case a simple app or code snippet showing the failure would be appreciated.

Hello, I apologise for the late response. You mention about the cable detection not working correctly? Is this a known issue or something similar? I do not think that is my issue at the moment no since I have had the cable detection working correctly. My issue is that all POSIX socket functions return successfully even when no Ethernet cable is connected. But the cable detection works fine as I can plug a cable in and it bring the link up.
Any sample that uses a basic open socket, set socket opts, connect to socket then closure of socket. Please let me know your findings. Thanks!!

Hello, I apologise for the late response. You mention about the cable detection not working correctly? Is this a known issue or something similar? I do not think that is my issue at the moment no since I have had the cable detection working correctly. My issue is that all POSIX socket functions return successfully even when no Ethernet cable is connected. But the cable detection works fine as I can plug a cable in and it bring the link up.
Any sample that uses a basic open socket, set socket opts, connect to socket then closure of socket. Please let me know your findings. Thanks!!

what is the most basic sample with which you can reproduce this behavior

Hello, I apologise for the late response. You mention about the cable detection not working correctly? Is this a known issue or something similar? I do not think that is my issue at the moment no since I have had the cable detection working correctly. My issue is that all POSIX socket functions return successfully even when no Ethernet cable is connected. But the cable detection works fine as I can plug a cable in and it bring the link up.
Any sample that uses a basic open socket, set socket opts, connect to socket then closure of socket. Please let me know your findings. Thanks!!

what is the most basic sample with which you can reproduce this behavior

I will create a sample of what I mentioned about opening a socket etc and test, If I can reproduce the issue with it then I will send it over. 😄

@jtlas19 it's been a while, do you wish to keep this issue open?


[docs] change snippet to 'javascript' for github markdown

github markdown json format doesn't accept comments; but luckily javascript format does. This change makes the docs look nice in github.

Good call, thanks for submitting.


[BUG] Parser error on record type definition - Did you leave a dangling comma?

section Connector;

[DataSource.Kind="Test", Publish="Test.Publish"]
shared Test.Contents = Value.ReplaceType(TestImpl, TestType);

TestType = type function (
        param as (type text meta [
            Documentation.FieldCaption = "Param"
        ]),
        optional options as (type nullable [])
    ) as table meta [
        Documentation.Name = "Test Connector"
    ];

 TestImpl = (param as text) as table => ...;

Parser syntax error at [10,44] - the open bracket in (type nullable [])
[10, 44] Did you leave a dangling comma?

I feel like this might be an actual error, but it doesn't seem to cause an error in Power Query / Visual Studio.

It repros differently since the bug was added. It now parses fine, but then throws an error during validation. This is because according to the spec a parameter-type boils down to as nullable-primitive-type, and a parenthesized-expression obviously isn't a primitive type. Why the change in behavior? At some point the TypeScript parser was changed to match the behavior of the C# parser where it "incorrectly" allowed the parsing of parenthesized expressions in situations like this. The problem is that the type checking needs to be updated to support that "incorrect" behavior.

No longer repros.


chore: release 4.0.0

:robot: I have created a release *beep* *boop*
4.0.0 (2019-07-09)
⚠ BREAKING CHANGES

This commit creates multiple breaking changes. The getToken()
method previously returned Promise<string>, where the string was the
access_token returned from the response.  However, the oauth2 endpoint could
return a variety of other fields, such as an id_token in special cases.

const token = await getToken();
// old response: 'some.access.token'
// new response: { access_token: 'some.access.token'}

To further support this change, the GoogleToken class no longer exposes
a token variable.  It now exposes rawToken, accessToken, and idToken
fields which can be used to access the relevant values returned in the
response.
Bug Fixes

expose all fields from response (#218) (d463370)

This PR was generated with Release Please.

Release is at https://github.com/googleapis/node-gtoken/releases/tag/v4.0.0

The release build has started, the log can be viewed here. :sunflower:

:egg: You hatched a release! The release build finished successfully! :purple_heart:


fix: project config compatibility

This backwards-compatible config key was lost when migrating the config package.

Just thought: to match sheriff configuration maybe we should change the project-level config to
[report.to]
slack-channels = ["the-slack-channel"]

instead of currently
report-to-slack-channel = "the-slack-channel"

Just thought: to match sheriff configuration maybe we should change the project-level config to

[report.to]

slack-channels = ["the-slack-channel"]

instead of currently

report-to-slack-channel = "the-slack-channel"

One day we will finish with the config and API redesign


Abstract debugging

This pull request adds abstract debugging support. It also includes some tweaks and additions that are helpful for debugging and/or using abstract debugging. Some changes are accompanied by refactoring of surrounding/related code.
Changes:

Added abstract debugging (all files under abstractdebugging package)
Added description of abstract debugging to readme.
Added some example C programms for demonstrating abstract debugging to folder adb_examples.
Changed and refactored main to include abstract debugging
Removed duplicate definitions of Goblint location type. Moved all usages to GoblintLocation.
Retrofitted CFG HTTP handler to serve ARG instead if the function name is <arg>.
Added show arg code lens to main function. (retrofitted to GoblintCFGAnalysisResult to avoid duplicate code)
Added lots of new methods to GoblintService and renamed some existing ones for consistency.
Tweaked JSON-RPC handler debug logging.
Added Goblint version to debug output (version is checked using goblint --version; command is executed only if debug logging is enabled).

Changes made based on review comments:

Added and documented config option to enable/disable abstract debugging.
Improved HTTP handler error handling (this is necessary to ensure that clicking 'show arg' when ARG generation is disabled shows an error to the user)

TODO

[x] GobPie option to disable abstract debugging, in particular the --enable exp.arg for all analyses.

I found out that Microsoft's Mock Debug actually has fixed the step timing issue and I simply failed to notice the fix last time I looked at it. Unfortunately the fix depends on JavaScripts single-threaded nature and cannot be used in Java.

At least according to the DAP spec the problem is on my end, the fact that it worked before could technically be considered a bug in VSCodes DAP client. I will try to fix this as soon as possible.

I have made changes based on the comments.


refactor: ♻ add substance-combobox.tsx

:rocket: This description was created by Ellipsis for commit bb977762e73bd405d959e5d295c3ba5bbf954a5b

Summary:
Introduced new components (SubstanceCombobox, Combobox, ScrollArea), updated dependencies, and ensured integration and code quality.
Key points:

Introduced SubstanceCombobox for framework selection
Added Combobox component supporting single and multiple selections
Updated dependencies: @radix-ui/react-dialog, @radix-ui/react-popover, cmdk
Added ScrollArea component for scrollable areas
Integrated SubstanceCombobox into CreateIngestionPage
Ensured code quality: no sensitive data logging, adherence to DRY, descriptive naming, and single responsibility principle

Generated with :heart: by ellipsis.dev

Okay... I kinda must spend a lot more time on this, or find another approach for ingestion page.


Feature request: Add shell/bash beautifier.

There appears to be no beautify support for bash on the OSX version (and possibly other versions). Are there any plans to introduce this feature? Perhaps there is a bug and there is already support.
Debugging information.

Looks like a duplicate of https://github.com/Glavin001/atom-beautify/issues/451.


Adding the 'release.openshift.io/architecture' annotation to prow jobs

Introducing the release.openshift.io/architecture annotation to be applied to all the prowjobs created by the release-controller.
This annotation will eventually be used to filter prowjobs, by their respective architecture, prior to inserting data into the upgrade graph.

/assign @smarterclayton

/assign @smarterclayton

/lgtm

/lgtm


Update async-reporting.md

Rephrased some of the sentences.

@rplevka Yeah, didn't notice so many English grammar mistakes. Thank you for fixing!


Format the license in package.json to match the SPDX standard

As documented on the NPM documentation (https://docs.npmjs.com/files/package.json#license). The license field has to comply with the SPDX specification for communicating the licenses and copyrights associated with a software package. This commit changes the license to a valid SPDX value (MIT)

thanks


KVStore Tools

Summary
This PR provides additional KVStore tools available to the user to be configured, including:

Disable
Backup
Oplog and storage engine set at install time
KVStore Storage Engine & Server Version Upgrade

Possible other features to include:

KVStore Restore from backup
KVStore Clean
KVStore Resync
Oplog change in SHC

@arcsector This is a great PR, especially the migration part. As I mentioned in the other comments, the commands need authentication, so we either need to add them, or start the whole task with splunk login so we don't need to set no_log on all the commands. I have not tested the splunk login method, but I assume it would work.

Fixed all the auth issues (sorry it slipped my mind) in https://github.com/splunk/ansible-role-for-splunk/pull/177/commits/ce2c80a4bbd06fedb016c01c403d2b927a4abdf6

After some preliminary testing, there are some issues that need to be addressed here.

I think the adhoc_destructive_resync_kvstore.yml task should be removed from the PR. Some things there do not completely make sense to me. Maybe I'm understanding it wrong, but I don't think you need to remove a member from the SHC to do that.
The kvstore_upgrade.yml does not work on version 8.2.x because the splunk_kvstore_version does not return anything, so it fails on the conditional for the block.
Leaving the splunk_kvstore_storage as undefined, also will not update the engine because of the conditionals on the block level. At least on the 8.2 that I tested.

@jewnix My thoughts:

Destructive resync is something that has been recommended to me through Splunk Support multiple times in order to fix KV issues, so I included it here - it seems that the advantage to it over just a normal clean is that it pulls both a fresh copy of the SH Bundle as well as the KV bundle, so that's the benefit there.
Good call, I'll put a default value in there for versions <= 8.2
That's what I want, I want people to have to specify they're upgrading in order to be able to do so one cluster component at a time.

Destructive resync is something that has been recommended to me through Splunk Support multiple times in order to fix KV issues, so I included it here - it seems that the advantage to it over just a normal clean is that it pulls both a fresh copy of the SH Bundle as well as the KV bundle, so that's the benefit there.

So here is what I think. The destructive resync should be removed from this PR. 1. Because this is a snowflake issue, and destructive KVStore sync is not something that is documented. 2. Because this also destroys the SHC completely.
Even though support sometimes tells you sometimes to do it, does not mean it's something that should be done.

@dtwersky @jewnix Sorry I've been inactive on this, I removed the destructive resync, and I added a default value, though it's not for splunk_kvstore_version, rather for the splunk_current_server_version_out.stdout check, where the former is powered by default vars, and the latter is performed by a CLI call

Updating this with oplog size increase, as well as some helpful tasks to get KVStore-status and SHCluster-status as JSON blobs for ansible consumption.

Hi @arcsector ,
Sorry this was left dormant for so long after so much work has gone in to this. I have been working internally to figure out all of this for a while on a different project, that was more for ephemeral docker instances, but I discovered a lot of things related to this PR that made me look at KVStore upgrades a little differently. There are so many differences between Splunk versions, MongoDB versions and MongoDB engines regarding to upgrade paths. I'm not sure if we should assume that people are still running version 8, and because later versions already automatically migrate and update, there may only be a need to run some of these commands in specific scenarios only.
There are so many amazing things in this PR, and I don't want to close this out and start from fresh, but maybe it needs to be revisited, and think if we want to make this compatible with older versions, or major version jumps.
What are your thoughts?

Thanks so much for the positive comments, glad you like the materials here - I'm definitely open to revisiting this as a PR of optional tasks and then making a playbook that calls all of them to do an all-in-one upgrade. Does that sound like a good plan - I could even put them in a sub-folder roles/splunk/tasks/kvstore/... if that would help to centralize this.
Do you happen to have a good map of those version transitions and what they entail as far as mongod version and engine? I'm having to go through the docs and switch back and forth between versions, as it's not clear what the approach should even be... Thanks!


URL Encoding not decoding properly

I was just wondering if this test case should pass? Right now it fails because the result is "a": "b,c".
It seems like the fact its encoded causes the parsing to not happen correctly, but maybe its a setting that I'm missing.
expect(parse('a=b%2Cc', { comma: true })).toEqual({ a: ['b', 'c'] });

If that exact same line works with qs and not this, then that seems like it would be a bug and not a missing setting. If it behaves exactly as qs does, then it's not a bug.  I wonder if it'd be beneficial to run the code against qs's own test suite.


Feedback for: swarm/install-manual.md

File: swarm/install-manual.md.
I am getting an error saying "No elected primary cluster manager" .. Is there any solution for this..?

Sorry, we don't answer support requests in docs bugs. :(


Add CommandPalette.version property.

Would it be possible to add a version property to CommandPal? Would something like:
class CommandPal {

  version = "0.2.7";

  constructor(options) {
    console.log("CommandPal", { options });
    this.options = options || {};
    this.ps = pubsub.create();
  }

make:
cp = new CommandPal({
         commands: {
              name: "CommandPal version",
              handler = () => (alert("CommandPal version " + CommandPal.version )),
              },
              name:  "Another version method",
              handler = () => (alert("CommandPal version " + cp.version )),
         }
      });

work?
Also in the docs, the handler definition is shown as:
// Callback function of the command to execute
  handler: (e) => {
    // DO SOMETHING
  }

What is e? From my testing it looks like it is undefined.
I assume there is some mechanism driven off of package.json to keep the version identifier up to date?

Since I got the dev environment running I get an error when trying to define a class property. Neither:
class ... {

  version = "0.2.7"
  static myversion = "0.2.7"
}

seem to work. It throws a syntax error on the = sign.
So maybe:
     version() { return "0.2.7"};
}

method is the way to go here if you think it's worthwhile.


Use Kokkos Sparse Matrix for Constraint Assembly

Task:  Use KokkosSparse for large matrix operations in the constraint assembly procedure.
Why:  This will improve the performance of the assembly procedure for medium to large problems by using sparse matrix multiplication.  It is also one step along the path to using sparse matrices for the total system solve.
Done means:  The AssembleConstraints function uses sparse matrices internally and copies the result into the existing dense system matrix.

This has been implemented in #182 .  Here is the new profiing report:
BEGIN KOKKOS PROFILING REPORT:
TOTAL TIME: 31.3758 seconds
TOP-DOWN TIME TREE:
<average time> <percent of total time> <percent time in Kokkos> <percent MPI imbalance> <remainder> <kernels per second> <number of calls> <name> [type]
===================
|-> 2.99e+01 sec 95.3% 7.1% 0.0% 0.3% 9.74e+01 11 Step [region]
|   |-> 2.75e+01 sec 87.8% 1.9% 0.0% 0.0% 5.59e+00 22 Solve System [region]
|   |   |-> 2.71e+01 sec 86.3% 0.3% 0.0% 99.7% 1.62e+00 22 KokkosLapack::gesv[TPL_CUSOLVER,double] [region]
|   |   |   |-> 7.34e-02 sec 0.2% 100.0% 0.0% ------ 22 Kokkos::View::initialization [getrf workspace] via memset [for]
|   |   |-> 4.00e-01 sec 1.3% 100.0% 0.0% ------ 22 PreconditionSt [for]
|   |   |-> 3.67e-02 sec 0.1% 100.0% 0.0% ------ 22 PostconditionSt [for]
|   |-> 1.54e+00 sec 4.9% 80.6% 0.0% 19.3% 7.29e+02 22 Assemble System [region]
|   |   |-> 3.76e-01 sec 1.2% 100.0% 0.0% ------ 22 Kokkos::ViewFill-2D [for]
|   |   |-> 2.37e-01 sec 0.8% 100.0% 0.0% ------ 22 PopulateSparseIndices [for]
|   |   |-> 1.17e-01 sec 0.4% 99.8% 0.0% 0.2% 1.89e+02 22 Assemble Elastic Stiffness Matrix [region]
|   |   |   |-> 1.16e-01 sec 0.4% 100.0% 0.0% ------ 22 IntegrateElasticStiffnessMatrix [for]
|   |   |-> 1.04e-01 sec 0.3% 99.8% 0.0% 0.2% 2.11e+02 22 Assemble Inertial Stiffness Matrix [region]
|   |   |   |-> 1.04e-01 sec 0.3% 100.0% 0.0% ------ 22 IntegrateMatrix [for]
|   |   |-> 1.04e-01 sec 0.3% 99.8% 0.0% 0.2% 2.12e+02 22 Assemble Mass Matrix [region]
|   |   |   |-> 1.04e-01 sec 0.3% 100.0% 0.0% ------ 22 IntegrateMatrix [for]
|   |   |-> 1.03e-01 sec 0.3% 99.8% 0.0% 0.2% 2.13e+02 22 Assemble Gyroscopic Inertia Matrix [region]
|   |   |   |-> 1.03e-01 sec 0.3% 100.0% 0.0% ------ 22 IntegrateMatrix [for]
|   |   |-> 4.46e-02 sec 0.1% 100.0% 0.0% ------ 22 KokkosSparse::SpAdd:Numeric::InputNotSorted [for]
|   |-> 7.34e-01 sec 2.3% 46.9% 0.0% 6.2% 1.32e+03 22 Assemble Constraints [region]
|   |   |-> 3.45e-01 sec 1.1% 0.0% 0.0% 100.0% 0.00e+00 22 KokkosSparse::spmv[TPL_CUSPARSE,double] [region]
|   |   |-> 2.38e-01 sec 0.8% 100.0% 0.0% ------ 22 PopulateSparseIndices [for]
|   |   |-> 3.39e-02 sec 0.1% 100.0% 0.0% ------ 22 UpdateIterationMatrix [for]
|   |   |-> 3.37e-02 sec 0.1% 100.0% 0.0% ------ 22 Kokkos::ViewFill-2D [for]
|-> 4.81e-02 sec 0.2% 100.0% 0.0% ------ 600 Kokkos::ViewFill-3D [for]

KOKKOS HOST SPACE:
===================
MAX MEMORY ALLOCATED: 12035.2 kB
ALLOCATIONS AT TIME OF HIGH WATER MARK:
  35.8% qp_Cstar_mirror
  35.8% qp_Mstar_mirror
  10.9% shape_interp_mirror
  10.9% deriv_interp_mirror
  1.5% node_x0_mirror
  1.5% node_u_mirror
  1.3% node_u_dot_mirror
  1.3% node_u_ddot_mirror
  1.0% qp_weight_mirror

KOKKOS CUDA SPACE:
===================
MAX MEMORY ALLOCATED: 14056997.1 kB
ALLOCATIONS AT TIME OF HIGH WATER MARK:
  25.9% Step/Solve System/KokkosLapack::gesv[TPL_CUSOLVER,double]/getrf workspace
  25.9% St
  21.8% K
  21.8% T
  2.1% Step/Assemble System/CopyIntoSparseMatrix/Kokkos::CudaSpace::TeamScratchMemory
  2.0% gradient_matrix

Ready to go; waiting for review, @deslaughter @faisal-bhuiyan


selection.transition(transition) only considers the first node’s timing.

It’s tempting to replace code like this in 3.x:
d3.selectAll("p")
  .transition()
    .delay(function(d, i) { return i * 20; })
    .duration(750)
    .each(update);

function update() {
  d3.select(this)
    .append("div")
      .text("Hello")
    .transition()
      .style("color", "red");
}

With this in 4.0:
d3.selectAll("p")
  .transition()
    .delay(function(d, i) { return i * 20; })
    .duration(750)
    .call(update);

function update() {
  context
    .selection()
    .append("div")
      .text("Hello")
    .transition(context)
      .style("color", "red");
}

However, the replacement doesn’t work as intended because selection.transition(transition) creates a new transition that inherits timing parameters from the transition’s first node, not from the corresponding parent p of the appended div!
Instead you need to say:
d3.selectAll("p")
  .transition()
    .delay(function(d, i) { return i * 250; })
    .duration(750)
    .call(update);

function update(context) {
  context
    .selection()
    .append("div")
      .text("Hello")
      .each(function() {
        var parent = d3.select(this.parentNode).transition(context);
        d3.select(this).transition(parent).style("color", "red");
      });
}

This seems pretty bogus.

One option would be selection.transition(transition, node), whereby you explicitly specify the node in addition to the transition id you want to inherit from. But that would still require this:
d3.select(this).transition(context, this.parentNode).style("color", "red");

Which is still pretty clumsy.
A different approach would be for selection.transition(transition) to crawl up the parent chain looking for the first node that has the given transition. This approach would imply that you can’t take a transition for an element and apply it to a sibling—you can only take a transition for a parent and apply it to a descendant—but that sounds like a reasonable restriction.
Another approach would be to require that the transition API is a superset of the selection API, such that you never need to re-derive a selection for a given transition. Something like:
d3.selectAll("p")
  .transition()
    .delay(function(d, i) { return i * 20; })
    .duration(750)
  .append("div")
    .text("Hello")
    .style("color", "red");

Though attractive, I don’t think this is a good idea because of the difficulty fitting structural operations into the transitions API. For instance, does the append above happen synchronously when the transition is scheduled, or does it not happen until the transition starts?


tibialyzer.exe

I'm downloading the zip file. but I'm not finding the tibialyzer.exe

Maybe you are accidently downloading the source code. The zip file with the executable can be found here.

thank you

now it worked


About 1.20.4

Is there plans to update this mod to 1.20.4 and beyond?

I am not sure yet. Probably at some point. I am focused on developing my other mod currently.


How to not use environment variables?

First of all I would like to thank you for your wonderful piece of software! It is very helpful.
I am trying to send in json body a string - {{_ingest.timestamp}} and it always is converted to environment variable. Is there any way to avoid the string conversion into variable?

For those who are looking for the answer to the same question, there is an option in request settings "Skip rendering of request body" that prevents rendering of environment variables.

Is there no way to have it both ways ?

For those who are looking for the answer to the same question, there is an option in request settings "Skip rendering of request body" that prevents rendering of environment variables.

This doesn't seem to exist anymore in the new design... Anyone has a workaround?

@iuribtt @sbor23 , I found it. After the latest update at least, you have to go to the request itself in the left-hand column, click the drop down menu next to the request name, and select 'Setting's. You will see the below:

Does anyone know if this is part of the documentation? Could it be added to the docs?
I couldn't find it in the docs and I had to search if there was a related issue here.

I'm unable to open request settings in scratchpad mode. It asks me to login when I try to open it. Anyone else seeing this behavior?

This is not working on

Version: Insomnia 8.6.1
Build date: 2/5/2024
OS: Darwin arm64 23.3.0
Electron: 28.0.0
Node: 18.18.2
Node ABI: 119
V8: 12.0.267.8-electron.0
Architecture: arm64

Despite having removed the checkbox is still converting it

This seems to work on version 9.3.2 for mac. I am just wondering why this can't be done globally?


Get token from response header

Hey, I love the plugin, I've been looking for something like it for a while.
I have a token that is returned in the response headers, with no body. How difficult would it be to catch the header from it ?
I might do it myself if I have some time and understand the code.

Hi @nathani-axis
I just published a new version with the option to get the token from a response header.
Now, you can add the TokenResponseHeader request header with the name of the response header that contains the token, to get it from there.
Thank you for using the plugin.


Warnings as errors makes build fail (CMake)

guid.cpp row 244:
// set all bytes to zero
void Guid::zeroify()
{
	std::fill(_bytes.begin(), _bytes.end(), 0);
}

should be:
// set all bytes to zero
void Guid::zeroify()
{
	std::fill(_bytes.begin(), _bytes.end(), static_cast<unsigned char>(0));
}

so that /WX option on windows doesn't make the build fail.

This is on VS 2017 v15.5.7 btw.

👍 Fixed in dec3a1b908c0a2aa273230ada96211a94da1a9b6


Ingress compatibility

Problem/Motivation
With HA 0.92 receiving the Ingress implementation, it would awesome for the Pi-Hole add-on to support it.

This needs to be tested, but given the admin panel is based on PHP (and my previous experiences with getting a PHP app to work with Ingress), I don't think this will happen.
If you want an alternative, that does support Ingress, I would recommend AdGuard Home (also available on the community add-ons repository).

... given the admin panel is based on PHP (and my previous experiences with getting a PHP app to work with Ingress), I don't think this will happen.

What about PHP made this difficult?  I've worked with PHP, just curious if this is something I might be able to help out with.

@iautom8things I've been a DevOps engineer and a PHP programmer since 1998. I'm certified as well. I'm perfectly capable of configuring a PHP server and (if needed) modifying a PHP code base.
Thanks for your offer.

Didn't realize this was a pissing contest.  Good luck!

Uuhu are you OK @iautom8things?
I did not find it offensive or didn't mean to step on your toes there m8...
My thanks, in the end, was polite and sincere.

I was genuinely curious about what made this task so difficult as you described.  If you can't tell that your response was dismissive then I won't try to help you see it.
I'll see myself out, though 👋

😳 ok, that’s fine.
🤷♂

+1 I would also like to see ingress functionality


jMonth has problem

const m = moment('1367/11/4', 'jYYYY/jM/jD')
m.jMonth(); ==> 10

https://momentjs.com/docs/#/get-set/month/


Slow Model Loading Speed on macOS System

What is the issue?
I am experiencing slow model loading speeds when using Ollama on my macOS system. Here are the specifications of my setup:
macOS Version: 14.5
Processor: M3 Max
Memory: 128GB
Storage: 2TB (with performance on par with the 8TB version)
Ollama version: 0.2.8
Despite having sufficient hardware capabilities, the model loading speed typically hovers around 700MB/s. During the loading process, I do not observe any component (CPU, Disk, Memory, GPU) being fully utilized or experiencing high usage. Could you please help me understand the reason for this bottleneck and suggest any potential solutions or optimizations?
Thank you for your assistance.
OS
macOS
GPU
Apple
CPU
Apple
Ollama version
0.2.8

Hi @Yuhuadi,
I have a MacStation with 192 GB of RAM. When I run llama3:70b in the terminal and check the Activity Monitor app, the average data transfer rate is 920 MB/s.
The speed of 920 MB/s is quite good for an internal SSD on macOS. It indicates that your system is efficiently handling the data transfer requirements for running llama3:70b, which should contribute to smooth performance.

Hi @Yuhuadi,
I have a MacStation with 192 GB of RAM. When I run llama3:70b in the terminal and check the Activity Monitor app, the average data transfer rate is 920 MB/s.
The speed of 920 MB/s is quite good for an internal SSD on macOS. It indicates that your system is efficiently handling the data transfer requirements for running llama3:70b, which should contribute to smooth performance.

As far as I know, the bandwidth of Mac's hard drives far exceeds this number. Even when connected externally via USB-C, speeds can reach several GB/s.

@Yuhuadi Ollama not only read the file from the HardDrive, the data have to be transfered to the GPU and do several tasks. Could be great if it's faster, but limitation can be on llama.cpp
It shloud be interesting to test other app on mac that can run LLM and see if they load LLM faster that Ollama and then improve Ollama.


How can i execute code during the silent renew?

Hi!
I'm using oidc-client-js in a Vue application. I'm having trouble understanding how can i run code during a signinSilentCallback event.
I have a Vue Component for the silent renew

<script>
import authService from "../services/authService";

export default {
  name: "SilentRenew",
  data() {
    return {};
  },
  async created() {
    try {
      await authService.silentRenew();
    } catch (error) {
      console.log(error);
    }

};
</script>

<style>
</style>

await authService.silentRenew() should run this code to update the token in the Vuex store
async silentRenew(){
   await this.isLoggedIn();
   return await this.signinSilentCallback();
 }

 async isLoggedIn() {
   const user = await this.getUser();
   console.log(user);
   console.log(store.state);
   if (user !== null && !user.expired) {
     store.commit("changeIsLoggedIn", true);
     store.commit("changeToken", user.access_token);
   } else {
     store.commit("changeIsLoggedIn", false);
     store.commit("changeToken", "");
   }
 }

but this code seems to never run, despite the silent renew takes place successfully (I've checked the network calls in the browser).
Is there a way to run some code in the moment that the silent renew happens?
Thanks in advance

You mean after it's done?

Hello @brockallen
I'll try to explain my self better
This is my Vue file where i call the silent renew.
 await authService.silentRenew();

 //this code doesn't run
 await authService.updateToken();

after the silent renew i would like to call a method to update the token in the Vuex state, but even in debug mode using the chrome developer tools this code never run.

You might be calling the wrong API. signinSilentCallback is what you'd call from the callback page. signinSilent is what you call to start the silent renew process.

Actually i'm calling signinSilentCallback from the callback page, it is there were i would like to run some code, I don't understand why everything i write after the call to signinSilentCallback is ignored...
if i place a break point there it's never hitten, but i find my self with new tokens any way

signinSilentCallback doesn't do much except take the iframe's URL and pass it up to the parent window, where all the protocol work is finished.


Improve Sortition Documentation

Description
Documentation of the Deterministic Sortition code should be improved.
Files involved:

pkg/core/consensus/user/sortition.go

Branch: doc-sortition-1491
PR: #1493

This is part of #1490

QUESTIONS on extractCommitteeMember
line 165 handles the case in which a Member is missing.
Q: When does/can this occur?
line 167 handles a missing Member by setting the current member 'm' to Member 0.
Q: What's the logic behind this?
line 177 seems similar to line 167.
Q: What's the difference between the two cases?


Fix loading config from second XDG_CONFIG_DIRS path

This fixes loading the pacaur configuration from the later paths in $XDG_CONFIG_DIRS if the pacaur directory does not exist in earlier paths.
Eg, if XDG_CONFIG_DIRS="/tmp/blah:${HOME}/.config", then pacaur will now load ~/.config/pacaur if /tmp/blah/pacaur does not exist.

Thanks, good catch!


Skipping RTCM messages

In the log files I work with there are RTCM3 messages interspersed with UBX and NMEA. This results in broken iteration when those messages are encountered.
I've made this change to skip these RTCM3 messages (and return their raw data)
rtcm3_skip_p2.patch.txt
Message format hint taken from here: https://github.com/tomojitakasu/RTKLIB/blob/71db0ffa0d9735697c6adfd06fdf766d0e5ce807/src/rtcm.c#L254

Hi @flytrex-vadim,
Feedback and contributions always welcome, but if it was your intention to submit a code change for pyubx2, could I ask that you refer to the guidelines in CONTRIBUTING.md and submit a formal Pull Request rather than a code snippet in a .txt file?
That being said, I'm unclear what you mean by 'broken iteration' or your expectations were here?pyubx2 is intended to be a UBX protocol parser, not an RTCM protocol parser. The UBXReader module does - as of v1.2.4 - also parse NMEA messages (via the companion pynmeagps library), but it should simply ignore and discard any incoming data that is not a valid UBX or NMEA message, and either continue with the next valid UBX or NMEA message or terminate if there are no such messages remaining in the input stream.
Are you saying that this is not the case? What actual error message are you getting? Would you be able to provide a copy of the raw binary datalog you're attempting to process so that I can test it at our end?

Hi @semuadmin ,

Submitting a pull request would require me figure out how to do that, a task I'm not sure I have the time for at the moment. So I chose to share the code immediately in a way I'm familiar with, in the hope that it would be useful for somebody :)
Indeed the scenario you described is not the case in the vanilla 1.2.4.  Unknown message types cause a few "Unknown protocol" messages at misc binary locations followed by stop of iteration. I had to make my changes so that it ignores the RTCM messages and continues parsing the UBX and NMEA until the end of the logfile.
What's the best way to send you the logfile privately ?

@flytrex-vadim
Can I confirm what you're setting the optional quitonerror keyword argument to? By default, this is set to 1 (= log errors to terminal and continue), the other options being 0 (= ignore any errors) or 2 (= re-raise errors and terminate).
If you have this set to 2 and your data stream contains (for example) RTCM data, then you will indeed get an error - this is expected behaviour. If you're using the default value of 1, then you will see an 'invalid protocol' error message written to the terminal but the iteration should not terminate at that point unless there happen to be no further UBX or NMEA messages in the data stream. Can you confirm?
You can send a binary data log to my email address semuadmin@semuconsulting. but recommend checking the above first. Cheers.

I can confirm using the default flags. this is also validated by the fact that I see multiple 'invalid protocol' messages as the reader goes over all the bytes of the unknown message, two at a time.
Then at some point it finds a pair that accidentally match the header, goes into the parsing code and fails quietly somewhere (couldn't trace exactly where).
This code seems to not be built for re-synchronization after encountering unknown bytes for several reasons:

two bytes are read at each iteration, so after odd-sized unknown message the reader would not be positioned on header
after accidentally going into parsing and failing due to incorrect CRC or other error, the unparsed bytes are not returned to the stream to be tried again from next valid header.

OK if you could send me a copy of your raw datalog I'll test it at our end and see exactly how and why it's failing. Thanks.

sent. I've trimmed the log to reasonable size while making sure the offending section is close to the beginning

Having seen the problem - thanks for the log and code suggestion - I'm inclined to agree. Accommodating UBX, NMEA and RTCM would seem sensible and proportionate. At some point we may get round to implementing a proper Python RTCM parser, but for now I'll endeavour to at least accommodate a mixed stream (but only actually parse UBX or NMEA). Surprised this hasn't come up before.
Leave it with me - thanks again for the shout.

@flytrex-vadim FYI added branch accommodate-RTCM-mixed-msg-stream with some minor tweaks to your 'patch', including an RTCM protocol filter setting so users can select whether or not to see any RTCM3 data in the stream.
I must confess that it's by no means obvious to me why...
elif byte1 == b"\xd3" and (byte2[0] & ~0x03) == 0:
... works as an RTCM3 data header check (for the 2nd byte at least), but RTKLIB should be a reliable source so reasonably happy to go with it.


Custom table layout

**Figure:  Showing a rendered table on the page in Desktop view**

**Figure:  Showing a rendered table on the page in Mobile view**
URL: Software Aduit Page
closes: #329

@wicksipedia done and description added as per definition of done.


AWS App Runner Integration

Is your feature request related to a problem? Please describe.
Document the ability to trigger AWS App Runner apps in response to Keptn tasks.

https://github.com/keptn-contrib/artifacthub/pull/125


TreeDropdownField: replace onadd by onmatch

Makes TreeDropdownField work in situations where it's moved around in the DOM (e.g. when inside a drag'n'drop container)

@dhensby Do you plan to merge this in the near future? The travis errors look like they are unrelated.

@th3hamm0r I haven't replicated nor tested this issue - in fact there's no linked issue or steps to replicate this - so I'm not confident about merging it right now.
@schellmax Do you have a more detailed issue report / steps to replicate?

@dhensby Oh, that's right, there is no issue.
We've an inline editor where you can drag-and-drop content blocks, that use standard FormFields, like the TreeDropdownField.
All FormFields of SilverStripe have worked out of the box, except the TreeDropdownField, which whenever you move it, duplicates its dropdown field in the frontend (because the "onadd" trigger is called on every drag-and-drop). This commit fixes this issue.


cluster kafka db worker doesnt recognize partitions

Hi,
Im trying to use cluster configuration. I've created topics in kafka and have it up and running.
Im running into trouble starting the database worker.
Tried:
python -m frontera.worker.db --config config.dbw --no-incoming --partitions 0,1
got an error 0,1 not recognized,
tried:
python -m frontera.worker.db --config config.dbw --no-incoming --partitions 0
I was getting the same issue as in #359, but somehow that stopped happening.
Now I'm getting: that kafka partitions are not recognized or iterrable, see error.
Im using python 3.6 and the frontera from the repo (FYI qzm and cachetools still needed to be installed manually).
Any ideas?
File "/usr/lib64/python3.6/runpy.py", line 193, in _run_module_as_main
"main", mod_spec)
File "/usr/lib64/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/usr/lib/python3.6/dist-packages/frontera/worker/db.py", line 246, in
args.no_scoring, partitions=args.partitions)
File "/usr/lib/python3.6/dist-packages/frontera/worker/stats.py", line 22, in init
super(StatsExportMixin, self).init(settings, *args, **kwargs)
File "/usr/lib/python3.6/dist-packages/frontera/worker/db.py", line 115, in init
self.slot = Slot(self, settings, **slot_kwargs)
File "/usr/lib/python3.6/dist-packages/frontera/worker/db.py", line 46, in init
self.components = self._load_components(worker, settings, **kwargs)
File "/usr/lib/python3.6/dist-packages/frontera/worker/db.py", line 55, in _load_components
component = cls(worker, settings, stop_event=self.stop_event, **kwargs)
File "/usr/lib/python3.6/dist-packages/frontera/worker/components/scoring_consumer.py", line 24, in init
self.scoring_log_consumer = scoring_log.consumer()
File "/usr/lib/python3.6/dist-packages/frontera/contrib/messagebus/kafkabus.py", line 219, in consumer
return Consumer(self._location, self._enable_ssl, self._cert_path, self._topic, self._group, partition_id=None)
File "/usr/lib/python3.6/dist-packages/frontera/contrib/messagebus/kafkabus.py", line 60, in init
self._partitions = [TopicPartition(self._topic, pid) for pid in self._consumer.partitions_for_topic(self._topic)]

@danmsf Hi, I have face a similar kafka problem when start db worker.

Would you like to share with me, how did you solved this problem.
I have opened an issue at  #371 .
Thanks in advance!


Location of C API

Hello
After browsing the code and documentation for this project, I'm unable to find a C API / headers for oneDAL, does it exists?
It seems that these C bindings are mentionned on the Intel website, but I can't find them.
Otherwise, if they don't exist, how does daal4py interacts with the native OneDal code?
thanks !

Hi, native part of oneDAL is C++ library, there is no C API. All C++ APIs/implementations are located in /cpp directory. Currently there are two types of supported C++ APIs:

CPU only API, which is called daal by historical reasons;
New API called oneapi, which as part of oneAPI open specification and can run on various hardware including CPU, GPU, ...

At the moment daal4py is based on CPU only API, header files can be found here.
All Python bindings are based on Cython and part of daal4py repository.

Thanks for you answer! for some reason I thought that the python binding could only be done through pure C and not C++


Feat/foundry zksync

[x] fix create2
[x] fix verifier
[ ] some test cases doesn't work correctly in my local due to missing libraries
[x] fix deployment
[x] merge main logic and zksync to unify the code with if statement
[x] clean up
[x] unit testing using foundry
[x] unit testing using foundry-zksync(except for missing library issues)
[x] update README.md
[x]  update integration testing
[ ] e2e testing with deployed into zksync sepolia

About number 3 issue the above, I've created the issue on foundry-zksync.
https://github.com/matter-labs/foundry-zksync/issues/382
Related PR.
https://github.com/zkemail/wax/pull/1

Thank you for your PR!
The third task/issue is finally solved?

It's already merged into main branch. So I close this PR.


xml processor does not support xliff:g elements

It is a common practice to embed elements like this in string files to provide clues to translators:
    <string name="time_range_format"><xliff:g id="startTime" example="1:30 PM">%1$s</xliff:g> - <xliff:g id="endTime" example="3:30 PM">%2$s</xliff:g></string>

But the xml processor does not support them and gives an error:

[ksp] com.gitlab.mvysny.konsumexml.KonsumerException: line 11 column 80 at null file:///Users/dalewking/Downloads/Foo/composeApp/src/strings/values-it/strings.xml, in element : Expected text but got START_ELEMENT: {urn:oasis:names:tc:xliff:document:1.2}g

When you do support these elements it would be nice if the id were used as the function parameter name


Helm is not recognized after installing Kubernetes extension dependencies

Hi,
In VSCode, I have just install the extension Kubernetes and after that I have the message that the Helm binary is not found and I have the possibility to install it by clicking on the button install.
After I select "Install dependencies" in the output I can see :

Already got kubectl...
Installing Helm...
Installing Minikube...
Done

But then If I go to the terminal and I run helm version I have command not found :
E:\wrks\ds-roles>helm version
'helm' is not recognized as an internal or external command,
operable program or batch file.

Is it normal ?
To have Helm working I have to download it manually and add it to the environment path variable manually.
And why it install automatically Minikube ? The message I got only mention that Helm is missing not Minikube...

The extension installs Helm in a private directory, and sets up VS Code configuration with the installed path.  It doesn't modify the global environment to make Helm available in the terminal.  So you should see that Helm features of the extension are working but if you want to use it in the terminal you will need to add it to your PATH as you have found.
I'd welcome feedback on how we can make this smoother for you; I'm just wary about the extension installing programs globally...


Update CSRF doc with cookie option and example

PR:

adds hidden option that allows to read token value from cookie
adds copy-and-paste example of how to use it

thanks


Add #rel_where_not to filter by relationships that do not match conditions

Fixes #1091
This pull introduces/changes:

Adds #rel_where_not to allow filtering by relationships that do not match conditions.

Pings:
@cheerfulstoic
@subvertallchris

Codecov Report

Merging #1446 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #1446      +/-   ##
==========================================
+ Coverage   96.83%   96.83%   +<.01%
==========================================
  Files         205      205
  Lines       12573    12585      +12
==========================================
+ Hits        12175    12187      +12
  Misses        398      398

Impacted Files
Coverage Δ

spec/e2e/query_spec.rb
99.02% <100%> (+0.01%)
:arrow_up:

lib/neo4j/active_node/query/query_proxy_link.rb
100% <100%> (ø)
:arrow_up:

lib/neo4j/active_node/query/query_proxy.rb
94.93% <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 49a558b...6226fc8. Read the comment docs.

Seems great, thank you!  Heading to bed now, but I'll release this shortly as 9.1.0

Released as 9.1.0.  Thanks for the smooth PR!  A+++++, would review again!


Change the behavior of string to bool conversion

This is a breaking change as described in #84 .
Fixes #84 and #134

This test relies on testing.T.Run, which was introduced in Go 1.7. As we discussed in #119, we'll only support Go 1.8 or later after the next version.


My GWAS hits are too significant for LDpred

In a multi protein level GWAS I can use LDpred on 68 of the 92 proteins. But 14 protein fails, in spite of having the same format. Only difference is that these 14 have P-values that are less than 1e-300.  The error message is as above, outputting the acronym W.T.F which is exactly what I thought, well that's funny. It is funny. Gonna re-run with artificially modulated P-values, but maybe nice to know for you.

Hi Lasse, I believe I've now fixed this issue!
Thanks for using LDpred.

Thanks!


Customizable timeout for clip.capture in selected_text

@AndreasArvidsson pointed this out during the Cursorless session today, but clip.capture() has a default timeout of 500ms. This timeout is hit whenever the selection is empty.
This means that commands like "google that" are normally fast when used normally (with a selection), but if you don't have a selection (such as if they are triggered accidentally), you have to wait for this timeout. 500ms feels relatively high.
We theorized that this is to handle sluggish apps or sluggish computers, so this might be a reasonable default to keep, but we should make it a setting so that power users can lower the timeout (under the assumption that they would notice if they have an application that needs a higher timeout), and thus have a better experience.
Here's an example of setting 100ms, although we would obviously use a setting:
@ctx.action_class("edit")
class EditActions:
    def selected_text() -> str:
        with clip.capture(timeout=0.1) as s:
            actions.edit.copy()
        try:
            return s.text()
        except clip.NoChange:
            return ""

For what is worth I have now been using 0.1 for over a year without any problems. I'm definitely for reducing the default and adding a setting.


[Question] Where are stored the RDPConf.exe settings?

Hello !
The title say all.
I would like to know where are stored the RDPConf.exe settings OR maybe the registery entries that modify this program.
As you understood, i whant to modify these settings without the help of RDPConf.exe.
Thank you.
Best regards.

bump

RDPConf manages Registry settings for MS-RDP and Imports INI file settings for RDPWrap.  Source Code reveals what settings it manages in registry.

RDPConf manages Registry settings for MS-RDP and Imports INI file settings for RDPWrap. Source Code reveals what settings it manages in registry.

The Rdpwrap.ini file is not imported by RDPWInst.exe? with -i -o arguments.
RDPConf.exe seems to check if everyhting is fine and working and the only modification come from the registry.
I will run it in sandboxie for see the modification then create a reg file, since no one whant or can't help me...

I've looked in source of rdpconf - it alters 4 registry keys...  They're defined in the source.
You're right.  Conf does not import INI settings - it only reveals if INI supports current termserv.dll in Windows system.
I have been working on a fork and my mgr/conf will be able to update ini from GUI.  That is why I confused momentarily origin rdpconf features.  Apologies.

Closed as not actual


Run coverage job for PRs, but don't upload results

Sorry for the follow-up, realized I overlooked this subtlety. Occasionally the scoverage plugin will break for some otherwise valid code (like the \r\n thing). A PR could do this by mistake and we wouldn't find out till merge.
So actually, we do want to run coverage for PRs, just to make sure it still works. We just don't want to upload the results!

Cool. This PR from my fork also confirms that we won't get a coverage report here.


Scala 2.11 project contains libraries compiled on 2.10

When sbteclipse generates a project on Scala 2.11, it includes libraries compiled with Scala 2.10. This leads to errors in the Eclipse IDE. These libraries have to be manually removed before the project can be compiled.
Specifically, these libraries are added:
jawn-parser_2.10-0.6.0.jar
json4s-ast_2.10-3.2.10.jar
json4s-core_2.10-3.2.10.jar
json4s-native_2.10-3.2.10.jar
json4s-support_2.10-0.6.0.jar
sbinary_2.10-0.4.2.jar

Are these direct dependencies or transitive ones? Can you share your build configuration in order to allow us to reproduce that issue?

These are transitive dependencies.
My build.sbt:
name := "xx"

organization := "xyz.org"

version := "0.1"

scalaVersion := "2.11.6"

publishMavenStyle := false

publishTo := Some(Resolver.file("file",  new File( "C:\\Users\\me\\.ivy2\\local" )) )

libraryDependencies  ++=  Seq(
    "com.opencsv" % "opencsv" % "3.4",
    "uk.co.caprica" % "vlcj" % "3.8.0",
    "org.slf4j" % "slf4j-api" % "1.7.12"
	)

sbtPlugin := true

My project/plugins.sbt:
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "3.0.0")

As far as I know sbt plugins need to run with 2.10, that is why you get these dependencies. I wonder why they even allow users to specify a 2.11 version.

Thanks for the information, @sschaef . Interestingly, the 2.10 dependencies are not needed for running my project. Is there a way to prevent the sbteclipse plugin from adding these dependencies?

Not that I know of. Can't you just run it with 2.10?

I wrote a simple shell script to remove all 2.10 dependencies:
#!/bin/sh
sbt eclipse
sed '/\_2\.10/ d' .classpath > temp_cp.txt
mv temp_cp.txt .classpath

@boyangli, scalaVersion := "2.11.6" is wrong for an SBT plugin (since latest SBT builds against Scala 2.10), as also @sschaef suggested. After fixing that, on the latest Eclipse Scala plugin (IIRC 4.1 onwards), you'll then need to make sure Eclipse selects Scala 2.10 (not sure sbteclipse does that on its own).
To all: why does adding an SBT plugin impact the base project? The base project and the one in project are two separate Scala projects, and SBT plugins in project/plugins.sbt should add a dependency to the latter, while sbteclipse does not generate an Eclipse project for project normally. I believe this is the correct behavior even with sbtPlugin := true, but sbteclipse doesn't seem to implement it — any chance I'm missing something?

not sure sbteclipse does that on its own

Apparently it doesn't (#287).

I don't think scalaVersion := "2.11.6"  is necessarily wrong. Sbt can compile the code using Scala 2.11, while itself runs with Scala 2.10. I tend to think that sbteclipse generates extra dependencies that the project does not need. After removing those, everything works.

But the resulting code must run (hence be compiled) against Scala 2.10. Problems will show up once you try use the resulting plugin in another SBT project.
But I do agree that the sbteclipse dependencies don't belong there.

I'm talking about compiling my own project, but compiling sbteclipse.

@boyangli, I'm talking about using your own plugin that you are developing. We all guessed from sbtPlugin := true that you're developing your own SBT plugin, but it sounds like that's not your intention. Can you clarify? If that's not it, there might be some other miscommunication happening.
If you're not developing a plugin, can you drop sbtPlugin := true from build.sbt? That will remove those dependencies, and also many other dependencies on SBT libraries. Those are also compiled against 2.10, only the Eclipse Scala plugin does not detect the mismatch there because of its heuristic.

To all: why does adding an SBT plugin impact the base project? [...]

That question I retract, it was probably nonsense. Apparently those libraries aren't dependencies of sbteclipse (as I mistakenly assumed), but probably of SBT itself.

I see. I clearly didn't understand the sbtPlugin option. Thanks so much for pointing that out!

Excellent, happy we're done here! @sschaef, apparently this can indeed be closed!


Uncaught TypeError: $(...).DataTable is not a function

Solved!

Most likely he discovered he wasn't actually including the Javascript for DataTables   😉


 Runs can take up to 60 minutes.

@timothysc we haven't rolled anything up yet, this just adds the friendly status messages.

I'm ok with just merging this and we can make more modifications l8r.


GKE Autopilot constant re-deployment of pods

I'm running solr operator on GKE Autopilot clust with example from here - the example requires to round-up resource requests to values supported by autopilot. However, operator keeps re-deploying deployments due to change in resource requests, but the 'to' and 'from' valus are exactly the same. This bug is best observable with prometheus exporter which is redeployed couple times per second, the same is happening with cluster but less often - seem like every couple minutes.
Logs, seem like relevant code is this - note the to and from clauses
controller-runtime.manager.controller.solrprometheusexporter Update required because field changed {"reconciler group": "solr.apache.org", "reconciler kind": "SolrPrometheusExporter", "name": "explore-prom-exporter", "namespace": "default", "deployment": "explore-prom-exporter-solr-metrics", "kind": "deployment", "field": "Spec.Template.Spec.Containers[0].Resources", "from": {"limits":{"cpu":"250m","ephemeral-storage":"1Gi","memory":"512Mi"},"requests":{"cpu":"250m","ephemeral-storage":"1Gi","memory":"512Mi"}}, "to": {"limits":{"cpu":"250m","ephemeral-storage":"1Gi","memory":"512Mi"},"requests":{"cpu":"250m","ephemeral-storage":"1Gi","memory":"512Mi"}}}

Error
2022-01-13T21:46:02.884596420Z2022-01-13T21:46:02.884Z INFO controller-runtime.manager.controller.solrcloud Update required because field changed {"reconciler group": "solr.apache.org", "reconciler kind": "SolrCloud", "name": "explore", "namespace": "default", "zookeeperCluster": "explore-solrcloud-zookeeper", "kind": "zookeeperCluster", "field": "Spec.Pod.Resources", "from": {"limits":{"cpu":"250m","ephemeral-storage":"512Mi","memory":"500Mi"},"requests":{"cpu":"250m","ephemeral-storage":"512Mi","memory":"500Mi"}}, "to": {"limits":{"cpu":"250m","ephemeral-storage":"512Mi","memory":"500Mi"},"requests":{"cpu":"250m","ephemeral-storage":"512Mi","memory":"500Mi"}}}

So the Autopilot re-writes the resources for the pod correct? Are there any other fields we should stop syncing/updating if autopilot is enabled?

As far as I know only the resources are overwritten by Autopilot.
Autopilot requires requests / limits divisible by 512Mi for ram, and there are similar requirements for disk and cpu as well, however what I found more surprising even if you follow requirements the solr operator keeps redeploying the pods even if old and updated resource requests  by autopilot are exactly the same. I've added the diff in the description

Ok so given your logs, the first thing to fix is that the operator isn't treating the same resource amounts as actually equal. This isn't actually related to GKE Autopilot, but it should be fixing that part of your system. We will need to introduce a separate PR to not actually sync resources for the pods. (Note, I don't think this will work with the Zookeeper pods managed by the Zookeeper Operator).
To be clear, you are using the VerticalPodAutoscaler that is a part of the GKE Autopilot correct? That's what is changing the resource amounts for the pods?

Hi @HoustonPutman thanks for taking a look.
I'm not using VerticalPodAutoscaler at least not knowingly, however the autopilot changing resources is based on this documentation. Whenever the resources outside of limit / allowed combination autopilot changes it to the closest allowed value. It's definitely possible to figure right values on your own - but even then I hit the issues where equal diffs are not treated as equal


M3-1740 Responsive Tabs

Coverage remained the same at 27.746% when pulling a410d875419d1372a356a14ffe49817af3ec533e on alioso:M3-1740 into fcf89dbc6bc551f4a892026d19566a7df79e49a7 on linode:develop.

This LGTM, only callout is the right arrow on dark theme is a little difficult to see:

@WilkinsKa1 added a fix for DT

@rjstires since the left button is on top of text we need some kind of background treatment. the right button is floated right so it does not need one


Report datasource describe incorrectly represents multi value columns

The response of the describe endpoint doesn't set the multivalue or the multivalueDelimiter fields.

They should be set and respect the configs provided in module fields.

The multivalue flag was set with 8f5e71845a3fabd1a5b8044bbe9ba80a01238f4c the delimiter is still fixed and I'll be addressing it in a later sprint


Input schema hierarchy visualization is not optimal

Describe the Bug with repro steps
It has been a design choice of the Data Mapper, to by default show only the input properties of the source schema that are being used. While it think this is a good decision, we loose track of the hierarchy with the current implementation. Please consider the screen recording below.

The default behavior shows us two countryCodes. However, we do not know from where in the input hierarchy the country codes originate, unless we explicitly click on them.

It would be great to change the default behavior and always show all parents nodes in the input schema, so we do not loose track of the input hierarchy. The end of the recording show the desired default behavior.

Screenshots or Videos
No response
Version
v4.44.8 (however, not linked to this particular version, is general feedback)
Additional context
No response

I'm going to close this issue, but it's not because we don't care or aren't fixing it, more as a sort of duplicate. We're currently in the process of overhauling the Data Mapper to address a lot of feedback like this and we expect it to be ready soon(it'll be in private preview in just a couple weeks). You can learn more here if you're interested: https://techcommunity.microsoft.com/t5/azure-integration-services-blog/upcoming-data-mapper-improvements/ba-p/4143271


Question about license

Hi there,
Amazing work! I have a question, what kind of type is this license?

Hey mate! It's MIT.

Bet! U da MVP! blessed asf, tyvm!


Trixi displays local, and not global, number of elements / DOFs

When doing parallel computations with Trixi, I noticed that the local number of elements or degrees of freedom, and not the global number, is printed.
For example:
mpiexec() do cmd
  run(`$cmd -n 2 $(Base.julia_cmd()) -e 'using Trixi; trixi_include("Trixi.jl/examples/p4est_2d_dgsem/elixir_euler_sedov.jl")'`)
end

runs a 2D P4est example with 256 elements and 6400 DOFs on 2 processes, and the output is:
[...]
│ SemidiscretizationHyperbolic                                                                     │
[...]
│ total #DOFs: ……………………………………………… 3200                                                             │
[...]
│ P4estMesh{2, Float64}                                                                            │
[...]
│ current #cells: ……………………………………… 128                                                              │

Likewise the analysis callback prints:
[...]
 #DOF:                     3200                alloc'd memory:        343.208 MiB
 #elements:                 128
[...]

I would have expected to see the global number. So, this is just a question whether displaying the local number is intended.

@sloede?

I have stumbled across this issue before as well. Thus I agree, it would be great if we could show the global counts instead of the rank 0 counts in the aforementioned locations. Would you be willing to create a PR for this, @bgeihe? I'd be happy to assist in case of questions.

Sure!
But to clarify:
Show global numbers instead of local ones?
OR
Show global and local numbers?

To me, showing only the global numbers makes more sense. I am not sure exactly how much information one can gain from only knowing the local number of elements/DOFs on rank 0 🤷♂


Higher-order advection schemes

Use the same way as Oceananigans.Advection.
WENO-5 passive tracer advection of a square:

WENO-5 on the shock tube problem


renewExpiration not working when manually delete key

Expected behavior
renewExpiration  normal
Actual behavior
1.Multiple spring boot services have been started
2.Get the lock every 2 seconds
3.After the lock is acquired, the lock key is removed through the redis client
4.After deletion, the first few times can be normal, or it may not update the expiration event
Steps to reproduce or test case
 @Override
    public void run() {
        try {
            if (!isMaster) {
                isMaster = lock.tryLock(2, TimeUnit.SECONDS);
                if (isMaster) {
                    System.out.println("i am master");
                }
            } else {
                if (!lock.isLocked()) {
                    //when manual delete lock key
                    System.out.println("give up master");
                    isMaster = false;
                    TimeUnit.SECONDS.sleep(2);
                }
            }
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

Redis version
2.8
Redisson-spring-boot-starter
3.11.1
Redisson configuration
default

when manual delete lock key ,unlockAsync(long threadId)  opStatus and e  is null  throw  IllegalMonitorStateException.
next time  same threadId  trylock(key,unit)  ,put  EXPIRATION_RENEWAL_MAP fail ,renewExpiration not work
is this a bug ?
i think Before throwing IllegalMonitorStateException, you should do a cancelExpirationRenewal as well

lock can't be unlocked if it was manually deleted. You need to unlock or delete it only through RLock methods.


Update not working (as Hugo module)

What happened?
Update not working (as Hugo module).
hugo mod get -u
go: module github.com/jpanther/congo/v2: git ls-remote -q origin in /var/folders/gs/m9z38b6d7w9bdp6tgt0r82bh0000gn/T/hugo_cache/modules/filecache/modules/pkg/mod/cache/vcs/066af87f3ece5bb7d6b6b53ce98f8b34566e9be8285986a3e33bbfe82661fac4: exit status 128:
	fatal: 'origin' does not appear to be a git repository
	fatal: Could not read from remote repository.

	Please make sure you have the correct access rights
	and the repository exists.
Error: failed to get ["-d" "-u" "github.com/jpanther/congo/v2"]: failed to execute 'go [get -d -u github.com/jpanther/congo/v2]': failed to execute binary "go" with args [get -d -u github.com/jpanther/congo/v2]: go: module github.com/jpanther/congo/v2: git ls-remote -q origin in /var/folders/gs/m9z38b6d7w9bdp6tgt0r82bh0000gn/T/hugo_cache/modules/filecache/modules/pkg/mod/cache/vcs/066af87f3ece5bb7d6b6b53ce98f8b34566e9be8285986a3e33bbfe82661fac4: exit status 128:
	fatal: 'origin' does not appear to be a git repository
	fatal: Could not read from remote repository.

	Please make sure you have the correct access rights
	and the repository exists.
 *errors.errorString

If you click on the link github.com/jpanther/congo/v2 - Error 404.
How to update now?
Theme version
2.2.3
Hugo version
0.101.0
What browsers are you seeing the problem on?
Safari
Relevant Hugo log output
No response

I suspect this is an issue either with your local git configuration or Go. Have you tried running hugo mod clean? This will empty out any caches in case something has gone amiss.
I would expect github.com/jpanther/congo/v2 to 404 as that is the location that go is using to find the module, not what git is using to locate the repo.

Hmm... I just entered command hugo mod clean and it worked, BUT it didn't work yesterday. 🤔

I would expect github.com/jpanther/congo/v2 to 404 as that is the location that go is using to find the module, not what git is using to locate the repo.

Interesting. Read something about it (how it works).
Thank you!


[SPARK-12788][SQL] Simplify BooleanEquality by using casts.

LGTM, pending test

Test build #49278 has started for PR 10730 at commit 26e1ab5.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/49274/
Test FAILed.

Merged build finished. Test FAILed.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/49277/
Test FAILed.

Test build #49278 has finished for PR 10730 at commit 26e1ab5.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/49278/
Test PASSed.


Refactoring and simplifying of variables related to power plant specifications

This PR is a reimplementation of parts of the (stale) PR #67 - it simply refactors the definition of variables related to power plant specifications to use the shorthand-definition of <Fuel> rather than specifying all possible permutations of variables and technologies.
The questions raised in #67 will be discussed (again) in a subsequent PR.

@openENTRANCE/modellers unless there are any objections, I'll merge this PR tomorrow at 10am to proceed with other changes


Add option to select desired fiat currency

After https://github.com/MutinyWallet/mutiny-node/pull/736 we should be able to choose any currency we want
currently the number format (Not the currency choice) is determined by their browser's default language.
TODO

Amount Editable screen

[x] correct fiat formatting (JPY and KRW do not have decimals)
[x] BTC formatting (works differently than other currencies)
[x] think of how to choose fixed amounts for different currencies (hardcoded ATM)

Currency Chooser screen

[x] Get feedback for form design
[x] Decide where to put it
[ ] Decide what currencies we should make available to the user (what's chosen at the moment is to cover format edge cases)
[x] Error catch if coingecko is unreachable

[ ] Tests?
[ ] Choose better currency-loading design (If we even really want it)

oh btw before I forget, these overflow on mobile:

So for the overflow I changed it from being a simple .toFixed(8) to using maximumFractionalDigits: 8

The support locale formats commit allows for people with their browser language to view the numbers as they expect to see them in their country. Should not impact how any sats <-> fiat logic works


Rendering Text more efficient

When dispaling around 10 lines of text, the game already has framedrops and wont run smothly.
The RenderText() function is very inefficient (it's still based on the Tutorial from learnopengl). For every character aney quad is created and directly send to OpenGL via glDrawArrays().
It would propably be more efficient to store the vertices in a vector and preloading the capacity so it doesn't need to be reallocated so often and then dawing all quads at once. Additionally a monospace Font could be used so the quad wont need to be recalculated each time.
Another idea is to create one inctance of each ASCII character and then using GLs instancing functionality to display the text.

has been solved with a hacky work around. The used ASCII characters are now all in Texture Atlas. Each char in a sentence will be added as Quad to a TextMesh and the whole mesh is rendered with one call.

.


Fix exporter to avoid data file transfer timeout error

Issues in the current exporting:

All exporter instances waits too long for the data file transfer job to finish
The exporter can timeout after the maximum timeout period.

Instead of exporter doing retries with exponential backoff, we could make it more event driven by doing the file transfer first before starting to export the metadata.

Could also try to increase the timeout and make the retries more frequent but need to be cautious in hitting the quota on requesting the status of the state transfer https://cloud.google.com/storage-transfer/quotas

2021-02-18 14:17:39,215  - exporter.terra.gcs - INFO in gcs.py:151 _assert_job_complete(): Awaiting complete transfer for job transferJobs/602e56f891708e06ec032959. Waiting 8192 seconds.(total time waite
d: 8190, max wait time: 10800 seconds)
 2021-02-18 16:34:11,318  - exporter.terra.terra_listener - ERROR in terra_listener.py:116 _experiment_message_handler(): Failed to export experiment message with body: {"bundleUuid":"7d004dec-d050-4f89-8
5af-3f951f2d04bb","versionTimestamp":"2020-09-08T09:32:18.641Z","messageProtocol":null,"exportJobId":"602e56f891708e06ec032959","documentId":"5f574fa2db657458f1bdaedb","documentUuid":"7d004dec-d050-4f89-8
5af-3f951f2d04bb","callbackLink":"/processes/5f574fa2db657458f1bdaedb","documentType":"Process","envelopeId":"5f574f9cdb657458f1bdae64","envelopeUuid":"dfb86fe3-ef1f-42ed-b559-d74f4b3b3a11","index":2,"tot
al":30}
 2021-02-18 16:34:11,318  - exporter.terra.terra_listener - ERROR in terra_listener.py:117 _experiment_message_handler(): Timeout waiting for transfer job to succeed for job transferJobs/602e56f891708e06e
c032959
Traceback (most recent call last):
  File "/app/exporter/terra/gcs.py", line 90, in transfer_upload_area
    self.client.transferJobs().create(body=transfer_job.to_dict()).execute()
  File "/usr/local/lib/python3.7/site-packages/googleapiclient/_helpers.py", line 134, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/googleapiclient/http.py", line 915, in execute
    raise HttpError(resp, content, uri=self.uri)
googleapiclient.errors.HttpError: <HttpError 409 when requesting https://storagetransfer.googleapis.com/v1/transferJobs?alt=json returned "Requested entity already exists">

https://app.zenhub.com/files/299258791/b8fe2e89-d25a-421a-bc77-494427593736/download

I replicated the issue with the same submission metadata that caused the issue but with dummy (small) data files and reduced the timeout of the exporter to 1 second.
Submission:https://dev.contribute.data.humancellatlas.org/submissions/detail?uuid=3c3df123-3d61-4e0b-8e75-a6f30c0d13bc
Error:
 2021-03-08 16:26:49,366  - exporter.terra.terra_listener - INFO in terra_listener.py:132 _experiment_message_handler(): Received experiment message for process 2aaf2bc4-a83f-471f-8ff5-fe7391ce073e (index 0 for submission 3c3df123-3d61-4e0b-8e75-a6f30c0d13bc)
 2021-03-08 16:26:51,216  - exporter.terra.gcs - INFO in gcs.py:161 _assert_job_complete(): Awaiting complete transfer for job transferJobs/604650430b033d68b6a96bf1. Waiting 2 seconds.(total time waited: 0, max wait time: 1 seconds)
 2021-03-08 16:26:53,217  - exporter.terra.terra_listener - ERROR in terra_listener.py:145 _experiment_message_handler(): Failed to export experiment message with body: {"bundleUuid":"2aaf2bc4-a83f-471f-8ff5-fe7391ce073e","versionTimestamp":"2021-03-08T16:21:44.334Z","messageProtocol":null,"exportJobId":"604650430b033d68b6a96bf1","documentId":"60464f180b033d68b6a96bbf","documentUuid":"2aaf2bc4-a83f-471f-8ff5-fe7391ce073e","callbackLink":"/processes/60464f180b033d68b6a96bbf","documentType":"Process","envelopeId":"60464f130b033d68b6a96b49","envelopeUuid":"3c3df123-3d61-4e0b-8e75-a6f30c0d13bc","index":0,"total":30}
 2021-03-08 16:26:53,217  - exporter.terra.terra_listener - ERROR in terra_listener.py:146 _experiment_message_handler(): Timeout waiting for transfer job to succeed for job transferJobs/604650430b033d68b6a96bf1
Traceback (most recent call last):
  File "/app/exporter/terra/terra_listener.py", line 133, in _experiment_message_handler
    self.terra_exporter.export(exp.process_uuid, exp.submission_uuid, exp.experiment_uuid, exp.experiment_version, exp.job_id)
  File "/app/exporter/terra/terra_exporter.py", line 24, in export
    self.dcp_staging_client.transfer_data_files(submission, project.uuid, export_job_id)
  File "/app/exporter/terra/dcp_staging_client.py", line 67, in transfer_data_files
    self.gcs_xfer.transfer_upload_area(bucket_and_key[0], bucket_and_key[1], project_uuid, export_job_id)
  File "/app/exporter/terra/gcs.py", line 101, in transfer_upload_area
    self.assert_job_complete(transfer_job.name)
  File "/app/exporter/terra/gcs.py", line 145, in assert_job_complete
    return self._assert_job_complete(job_name, 2, 0, 1)
  File "/app/exporter/terra/gcs.py", line 170, in _assert_job_complete
    return self._assert_job_complete(job_name, new_wait_time, time_waited + wait_time, max_wait_time_secs)
  File "/app/exporter/terra/gcs.py", line 149, in _assert_job_complete
    raise Exception(f'Timeout waiting for transfer job to succeed for job {job_name}')
Exception: Timeout waiting for transfer job to succeed for job transferJobs/604650430b033d68b6a96bf1


make data padding more better

Proposed Changes

Take randomness out of export padding and just clone every key at least once
Makes some paths less complicated, but makes many paths more complicated (see before and after)

Using the same source data:
Before:

After

Release Note
Export padding will clone every key at least once to better obscure TEK links.

"complify" is the word of the day

I try to hide Easter eggs in my branch names


If clause overwrites number like class type on variable

How are you using the lua-language-server?
Visual Studio Code Extension (sumneko.lua)
Which OS are you using?
Windows
What is the issue affecting?
Type Checking
Expected Behaviour
I wouldn't expect doing an if check on a variable to change its type.
I am using this with the Factorio game API which includes a lot of number or integer like types for subsets of these. I have included an example typedef for one of these.
In 3.5.x this code wasn't warned about, but in 3.6.1 it is.
Actual Behaviour
The type of my variables are being overwritten by the type that they are compared to in an if statement. The work around I found was to type all of these comparison values, but it feels a bit clunky.
Reproduction steps
---@class ASmallNumber # A double type number between 0 and 1 inclusive.

---@param aSmallNumber1 ASmallNumber
---@param aSmallNumber2 ASmallNumber
local aFunc = function(aSmallNumber1, aSmallNumber2)
    ---@type ASmallNumber, ASmallNumber, ASmallNumber
    local aNumber1, aNumber2, aNumber3

    if aSmallNumber1 == 0.25 or aSmallNumber1 == 0.5 then
        aNumber2 = aSmallNumber1 -- This is complained about: This variable is defined as type `ASmallNumber`. Cannot convert         its type to `number`.Lua Diagnostics.(cast-local-type)
        -- aSmallerNumber1 has a type of `number` here, but I explicitly defined it in the function param as being type `ASmallNumber`.
    end

    if aSmallNumber2 == (0.25) --[[@as ASmallNumber]] or aSmallNumber2 == (0.5) --[[@as ASmallNumber]] then
        aNumber3 = aSmallNumber2
        -- As I typed the `if` comparison values this is fine as the `aSmallNumber2` variable still has a type of `ASmallNumber`.
    end
end

The same occurs with just a locally defined variable that has its type and value set as type ASmallNumber. When comparing with an equivilent if the explicitly defined type is overridden.
local aSmallNumber = 0.5 --[[@as ASmallNumber]] ---@type ASmallNumber

Additional Notes
Fuller local variable example:
---@type ASmallNumber
local aNumber = 0.5 --[[@as ASmallNumber]]
---@type ASmallNumber
local aSecondNumber = 0.5 --[[@as ASmallNumber]]

---@param smallNumberValue ASmallNumber
local funcRequiringASmallNumber = function(smallNumberValue) end

if aNumber == 0.25 or aNumber == 0.5 then
    funcRequiringASmallNumber(aNumber)
end

if aSecondNumber == (0.25) --[[@as ASmallNumber]] or aSecondNumber == (0.5) --[[@as ASmallNumber]] then
    funcRequiringASmallNumber(aSecondNumber)
end

Log File
No response

If your class is defined by ---@class ASmallNumber: number?

---@class SmallNumber: number
---@class Integer: number

---@type SmallNumber, Integer
local x, y

if x == 0.1 and y == 0.1 then
    print(x, y) --> What are the types for x and y here?
end


WIP: feat: Sidebar infinite scroll (pagination)

wip: ironing out some bugs before this pr is ready
Changelog Entry
Description
This pr adds scroll pagination to the sidebar chat list.
This will improve first-load performance, and increase ui responsiveness in cases where there are many items in the chat history.
#2078
Added

sidebar now infinitely scrolls

Changed

chat list endpoint uses query params skip and limit
database query function uses skip as offset and limit as limit
default values for skip and limit in the backend are changed to 0 and -1 to ensure that this change does not impact other users of this endpoint, as the frontend api function has been changed to include these default values as well. limit -1 with no offset would work as if those arguments were not passed.
all rehydration calls which update the chats store now use the pageSkip and pageLimit  to determine how much of the chat actually needs to be rehydrated.

for example, creating a new chat causes the sidebar to rehydrate (to get the new chat in the list), at this point, we only need to re fetch the chats that are visible. So if the user has 40 chats loaded, and they create a new chat, only 40 chats are loaded.

instances where the full chat is required to be loaded (eg: search, import), pagination is disabled, and all components that query the backend will load all the chats (since all the chats are visible)
feature: sidebar uses scroll event to load more chats into the sidebar

Fixed

TBD --- found some bugs related to the chat state when adding or deleting tags from a chat. fixes planned in this PR.

Additional Information

this has a very large number of edge cases, which ive made a valiant attempt at resolving.
additional independent testing recommended.
this may become very unresponsive in poor network conditions. Loading the chats still takes some time. this is a tradeoff, we move initial load time to the scroll load time across the full duration of the scroll.
threshold for loading a new set: 60% of the scroll height
number of items loaded on each poll: 20

Screenshots or Videos
basic functionality
https://github.com/user-attachments/assets/513b601c-b60c-40e3-94ed-3e18be4a9f44
apply filter loads all chats and disabled pagination
https://github.com/user-attachments/assets/ea5c3586-f9f2-4ac6-9354-2570b0f68b9f
search bar focus disables pagination and loads all chats
https://github.com/user-attachments/assets/39bf4a89-adec-4435-8b34-e0fca388ad46
deleting or archiving a chat only rehydrates up to the current page
https://github.com/user-attachments/assets/35dbac2e-3faa-46b5-b52f-21fc5b477e80
attempt chat list refetch while pagination disabled (fetches all chats)
https://github.com/user-attachments/assets/5d1fd869-00fe-41a8-ac94-d8a41c1d8b03
new chat, title gen, and subsequent messages only rehydrates up to the current page
https://github.com/user-attachments/assets/209b99a0-bb6e-4bbf-9066-c35702bb73b9

LFGGGG 🚀 love this PR!

I loved