CVE-2022-23806 - Critical vulnerability in golang

Describe the bug
Hello !
I am creating a docker image based on ArgoCD image and add latest v1.9.0 argocd-vault-plugin binary. After that I have scanned the image and it returned critical vulnerability. We are using twistlock (Prisma) to scan our images and it seems it does in depth scanning where it checks what version of golang was used to compile the binary.
It identified that 1.17.6 was used to package the binary and as it stands right now there is a Critical vulnerability in this golang version.
Please rebuild the binary with the latest (or vulnerability free) golang version to make it compliant/vulnerability free.
"name": "go",
"version": "1.17.6",
"path": "/usr/local/bin/argocd-vault-plugin",
"layerTime":<PHONE_NUMBER>,
"knownVulnerabilities": 55
CVE-2022-23806 critical go 1.17.6 fixed in 1.17.7, 1.16.14 11-Feb-2022 01:15 15-Mar-2022 12:53
To Reproduce
Steps to reproduce the behavior:
Use twistlock or Prisma to scan the image for vulnerabilities.
Expected behavior
No critical vulnerability to be seen in the binary.

Describe the bug
Hello !
I am creating a docker image based on ArgoCD image and add latest v1.9.0 argocd-vault-plugin binary. After that I have scanned the image and it returned critical vulnerability. We are using twistlock (Prisma) to scan our images and it seems it does in depth scanning where it checks what version of golang was used to compile the binary.
It identified that 1.17.6 was used to package the binary and as it stands right now there is a Critical vulnerability in this golang version. Please rebuild the binary with the latest (or vulnerability free) golang version to make it compliant/vulnerability free.
"name": "go", "version": "1.17.6", "path": "/usr/local/bin/argocd-vault-plugin", "layerTime":<PHONE_NUMBER>, "knownVulnerabilities": 55
CVE-2022-23806 critical go 1.17.6 fixed in 1.17.7, 1.16.14 11-Feb-2022 01:15 15-Mar-2022 12:53
To Reproduce Steps to reproduce the behavior:
Use twistlock or Prisma to scan the image for vulnerabilities.
Expected behavior No critical vulnerability to be seen in the binary.

Hi guys, can this be rebuild to remediate thus vulnerability

Hey guys, on it! Plan is to delete + recreate the release via CI.

On second thought we're just going to release v1.10.0 since we have features ready to release in there

Released here: https://github.com/argoproj-labs/argocd-vault-plugin/releases/tag/v1.10.0. Thanks for bringing this to our attention!

Hi Josh, seems like a sensible thing to do.  We will adopt the latest once it's ready. Thanks for your help and quick response!
We still are waiting for remediation of this on ArgoCD image itself - we have found that multiple binaries on ArgoCD image are built with old versions of golang.

@jkayani I have just scanned the package again. And it seems golang 1.17.7 was used to package it. This version has a high vulnerability as well.
CVE-2022-24921 | high |   | go | 1.17.7 | fixed in 1.17.8, 1.16.15 | 03-Mar-2022 00:00 | 21-Mar-2022 13:11
Would it be possible to release 1.10.1 built with go 1.17.8 ?

@jkayani Hey mate, could this latest release be built with go 1.17.8 to remediate Vulnerability it throwing. It's throwing high severity CVE which blocks the image to push ahead after the scan.

Apologies about the lag time here, been bogged down with things. https://github.com/argoproj-labs/argocd-vault-plugin/pull/326 will update the golang version used for CI and releases. Will aim to release ASAP (tomorrow morning if possible).

Released here: https://github.com/argoproj-labs/argocd-vault-plugin/releases/tag/v1.10.1


Teleport to multiverse portal facing opposite direction doesn't flip carts except front

Info
Please provide the following information:

BkCommonLib Version (/train version): v1.19.3-v1-SNAPSHOT (build: 1272)
TrainCarts Version (/train version): v1.19.3-v1-SNAPSHOT (build: 1435)
Server Type and Version (/version): git-Paper-39 (MC: 1.19)

Bug
Description
A train is heading north. It goes over a sign which teleports the train to a multiverse portal facing south. The order of the carts are reversed, but the individual carts aren't flipped around (except the front one apparently)
Expected behaviour
Since the direction is changed, it should:

be going south out of the portal
reverse the order of the carts (so the front/northmost cart going in is the front/southmost cart coming out)
reverse the direction of all the individual carts (so the side going forward/northward going in, is the side going forward/southward coming out)

Actual behaviour

:+1: The train does come out going south
:+1: The cart order is reversed
:-1: the carts remain the same way around (except the front one), so the front side going in is the back side going out.

I have verified with the attachment editor that the left doors of the train go in facing west, and come out still facing west, so it is that the train is reversed but not the carts (rather than the carts reversed but not the train).
Here's the train before it goes into the tunnel with the teleport sign:

Here's the same train after its come out of the portal from the left. Note how the train is reversed but not all the carts (the front bogie is actually correctly flipped):

Steps to reproduce

create two straight tracks going north-south
create a multiverse portal named SOMETHING at the north end of one track
put a sign under the north end of the other track with:

[+train]
teleport
SOMETHING:s

make a train with multiple carts, with the carts asymmetrical in the forward/backward direction, and push it along the track with the teleport sign
observe that the train gets broken

Additional Information
My attempts to flip the carts on the trains on one side of the portal using:
[+cart]
flip

have been unsuccessful at consistently flipping all the carts. This is apparently because the front cart does get flipped by the teleport.

Can confirm the teleport is rotating carts. I'll check what's going on, but my guess is that the teleport sign is using fairly ancient code lol

https://ci.mg-dev.eu/job/TrainCarts/1287/ give it a try

https://ci.mg-dev.eu/job/TrainCarts/1287/ give it a try

Thanks. This appears to prevent the first cart flipping, so now all of the carts come out backwards (rather than all but the front one).
Doing:
[+cart]
flip

prior to the teleport makes it come out looking right.

Weird, can't make it happen. Though I'm using myworlds portals as I dont use multiverse/know how to use those portals. Functionally they work the same though, just look up the rails and spawn into a direction.
Does the same also break withut specifying :s ?

Did spot one bug that might cause it if you have half of the train reversed and the other half not. https://ci.mg-dev.eu/job/TrainCarts/1288/

Did spot one bug that might cause it if you have half of the train reversed and the other half not. https://ci.mg-dev.eu/job/TrainCarts/1288/

Ooh yes, thats much better. Thanks so much!
I think I may have seen a collision when there was already a train waiting at the other side of the portal, but thats a separate issue.

Did spot one bug that might cause it if you have half of the train reversed and the other half not. https://ci.mg-dev.eu/job/TrainCarts/1288/

Ooh yes, thats much better. Thanks so much!
I think I may have seen a collision when there was already a train waiting at the other side of the portal, but thats a separate issue.

Good! Yeah don't know what can be done against that. You might be able to avoid it by having two named mutex zones at both the point of teleporting and destination, so trains are stopped/wait until the train has teleported over. https://wiki.traincarts.net/p/TrainCarts/Signs/Mutex

Good! Yeah don't know what can be done against that. You might be able to avoid it by having two named mutex zones at both the point of teleporting and destination, so trains are stopped/wait until the train has teleported over. https://wiki.traincarts.net/p/TrainCarts/Signs/Mutex

Good idea. I gave that a try, but it didn't seem to prevent trains entering. I'll have a bit more of a play around to figure out if I'm using them wrong.

Good! Yeah don't know what can be done against that. You might be able to avoid it by having two named mutex zones at both the point of teleporting and destination, so trains are stopped/wait until the train has teleported over. https://wiki.traincarts.net/p/TrainCarts/Signs/Mutex

Good idea. I gave that a try, but it didn't seem to prevent trains entering. I'll have a bit more of a play around to figure out if I'm using them wrong.

It doesnt work between worlds, so that might be an issue.

Good! Yeah don't know what can be done against that. You might be able to avoid it by having two named mutex zones at both the point of teleporting and destination, so trains are stopped/wait until the train has teleported over. https://wiki.traincarts.net/p/TrainCarts/Signs/Mutex

Good idea. I gave that a try, but it didn't seem to prevent trains entering. I'll have a bit more of a play around to figure out if I'm using them wrong.

It doesnt work between worlds, so that might be an issue.

That'll be the problem. Thanks for fast responses.


Add support for tolerations in streams helm charts

https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/#concepts

Fixed by #87

Fixed by #87


CSV Bugfix

When using the reverse iterator on the last column, we must build the string from back to front to avoid reversed output.

Let's wait on this until the maintainer of csv-parser has time to respond

Re-opened and pulled into the testing branch.

Features -> Testing -> Master is the new workflow
Need to verify proper handling of "," present/missing after last field

deconflicted, verified, done. Thanks, ambah!


Add missing dune stuff for blocking producer consumer exercice

Dune entry for src/prod_cons_b.ml was missing.

There is already an entry for prod_cons_b in src/dune
https://github.com/kayceesrk/ocaml5-tutorial/blob/1179f3e3f932d79b3e87cdd4c870c89c1b8b6dc2/src/dune#L41-L44


Type "@ignore_distributor"→"@ignore_distributor"

bold with escape characters
https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-dropdistpublisher-transact-sql?view=sql-server-2017

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


Project packaging is break by MeleeTrace Issue

Hi, so I tried to package my project I am getting this error, I am pretty sure that this is not exactly connected with any programming issue cause code looks good, but still cannot package project UE 5.3.2, any idea how to fix it?

Hi @MateuszDynek, thanks for reaching out. Are you sure you are using latest released version? I have checked the code and I can see that all three properties mentioned in the output log you provided are initialized with appropriate value so there shouldn't be any issue.
	UPROPERTY()
	uint32 TraceHash = TNumericLimits<uint32>::Max();

	UPROPERTY(BlueprintReadOnly, Transient, Category = "Melee Trace Info")
	FVector HitLocation = FVector::ZeroVector;

	UPROPERTY(BlueprintReadOnly, Transient, Category = "Melee Trace Info")
	FVector HitNormal = FVector::ZeroVector;

Can you please confirm that content of your source files look the same? If not, can you get latest release version please and let me know if this fixed it for you? Cheers.


Adds rendering test composing parts and slots

Tests if #1046 has been addressed in the webcomponents polyfills.
Note, this test will pass after @webcomponents/webcomponentsjs is released including https://github.com/webcomponents/polyfills/pull/254.

@sorvell LGTM, but could you just skip the test for now? We'll unskip and bump the dependency when it's released.

@sorvell can you also rebase on master so the tests pass?

@justinfagnani PTAL Rebased and updated the polyfill version dev dependency.


Trafic

/* Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. / /* * @file vhost.c * @brief functions pertaining to virtual host addresses * (configuration and run-time) / #include "apr.h" #include "apr_strings.h" #include "apr_lib.h" #include "apr_version.h" #define APR_WANT_STRFUNC #include "apr_want.h" #include "ap_config.h" #include "httpd.h" #include "http_config.h" #include "http_log.h" #include "http_vhost.h" #include "http_protocol.h" #include "http_core.h" #include "http_main.h" #if APR_HAVE_ARPA_INET_H #include <arpa/inet.h> #endif / we know core's module_index is 0 / #undef APLOG_MODULE_INDEX #define APLOG_MODULE_INDEX AP_CORE_MODULE_INDEX / * After all the definitions there's an explanation of how it's all put * together. / / meta-list of name-vhosts. Each server_rec can be in possibly multiple * lists of name-vhosts. */ typedef struct name_chain name_chain; struct name_chain { name_chain *next; server_addr_rec sar; / the record causing it to be in * this chain (needed for port comparisons) */ server_rec server; / the server to use on a match / }; / meta-list of ip addresses. Each server_rec can be in possibly multiple * hash chains since it can have multiple ips. */ typedef struct ipaddr_chain ipaddr_chain; struct ipaddr_chain { ipaddr_chain *next; server_addr_rec sar; / the record causing it to be in * this chain (need for both ip addr and port * comparisons) */ server_rec server; / the server to use if this matches */ name_chain names; / if non-NULL then a list of name-vhosts * sharing this address */ name_chain initialnames; / no runtime use, temporary storage of first * NVH'es names / }; / This defines the size of the hash table used for hashing ip addresses * of virtual hosts. It must be a power of two. / #ifndef IPHASH_TABLE_SIZE #define IPHASH_TABLE_SIZE 256 #endif / A (n) bucket hash table, each entry has a pointer to a server rec and * a pointer to the other entries in that bucket. Each individual address, * even for virtualhosts with multiple addresses, has an entry in this hash * table. There are extra buckets for default, and name-vhost entries. * * Note that after config time this is constant, so it is thread-safe. */ static ipaddr_chain iphash_table[IPHASH_TABLE_SIZE]; / dump out statistics about the hash function / / #define IPHASH_STATISTICS / / list of the default servers */ static ipaddr_chain default_list; / * How it's used: * * The ip address determines which chain in iphash_table is interesting, then * a comparison is done down that chain to find the first ipaddr_chain whose * sar matches the address:port pair. * * If that ipaddr_chain has names == NULL then you're done, it's an ip-vhost. * * Otherwise it's a name-vhost list, and the default is the server in the * ipaddr_chain record. We tuck away the ipaddr_chain record in the * conn_rec field vhost_lookup_data. Later on after the headers we get a * second chance, and we use the name_chain to figure out what name-vhost * matches the headers. * * If there was no ip address match in the iphash_table then do a lookup * in the default_list. * * How it's put together ... well you should be able to figure that out * from how it's used. Or something like that. / / called at the beginning of the config */ AP_DECLARE(void) ap_init_vhost_config(apr_pool_t p) { memset(iphash_table, 0, sizeof(iphash_table)); default_list = NULL; } / * Parses a host of the form [:port] * paddr is used to create a list in the order of input * **paddr is the ->next pointer of the last entry (or s->addrs) * *paddr is the variable used to keep track of **paddr between calls * port is the default port to assume */ static const char *get_addresses(apr_pool_t *p, const char *w_, server_addr_rec ***paddr, apr_port_t default_port) { apr_sockaddr_t *my_addr; server_addr_rec *sar; char w, host, scope_id; int wild_port; apr_size_t wlen; apr_port_t port; apr_status_t rv; if (w_ == '\0') return NULL; wlen = strlen(w_); / wlen must be > 0 at this point / w = apr_pstrmemdup(p, w_, wlen); / apr_parse_addr_port() doesn't understand ":" so handle that first. / wild_port = 0; if (w[wlen - 1] == '') { if (wlen < 2) { wild_port = 1; } else if (w[wlen - 2] == ':') { w[wlen - 2] = '\0'; wild_port = 1; } } rv = apr_parse_addr_port(&host, &scope_id, &port, w, p); / If the string is "80", apr_parse_addr_port() will be happy and set * host to NULL and port to 80, so watch out for that. / if (rv != APR_SUCCESS) { return "The address or port is invalid"; } if (!host) { return "Missing address for VirtualHost"; } #if !APR_VERSION_AT_LEAST(1,7,0) if (scope_id) { return apr_pstrcat(p, "Scope ID in address '", w, "' not supported with APR " APR_VERSION_STRING, NULL); } #endif if (!port && !wild_port) { port = default_port; } if (strcmp(host, "") == 0 || strcasecmp(host, "default") == 0) { rv = apr_sockaddr_info_get(&my_addr, NULL, APR_UNSPEC, port, 0, p); if (rv) { return "Could not determine a wildcard address ('<IP_ADDRESS>') -- " "check resolver configuration."; } } else { rv = apr_sockaddr_info_get(&my_addr, host, APR_UNSPEC, port, 0, p); if (rv != APR_SUCCESS) { ap_log_error(APLOG_MARK, APLOG_ERR, rv, NULL, APLOGNO(00547) "Could not resolve host name %s -- ignoring!", host); return NULL; } #if APR_VERSION_AT_LEAST(1,7,0) if (scope_id) { rv = apr_sockaddr_zone_set(my_addr, scope_id); if (rv) { ap_log_error(APLOG_MARK, APLOG_ERR, rv, NULL, APLOGNO(10103) "Could not set scope ID %s for %pI -- ignoring!", scope_id, my_addr); return NULL; } } #endif } / Remember all addresses for the host */ do { sar = apr_pcalloc(p, sizeof(server_addr_rec)); **paddr = sar; paddr = &sar->next; sar->host_addr = my_addr; sar->host_port = port; sar->virthost = host; my_addr = my_addr->next; } while (my_addr); return NULL; } / parse the  addresses */ AP_DECLARE(const char *)ap_parse_vhost_addrs(apr_pool_t *p, const char hostname, server_rec s) { server_addr_rec addrs; const char err; / start the list of addresses / addrs = &s->addrs; while (hostname[0]) { err = get_addresses(p, ap_getword_conf(p, &hostname), &addrs, s->port); if (err) { addrs = NULL; return err; } } / terminate the list / addrs = NULL; if (s->addrs) { if (s->addrs->host_port) { / override the default port which is inherited from main_server / s->port = s->addrs->host_port; } } return NULL; } AP_DECLARE_NONSTD(const char )ap_set_name_virtual_host(cmd_parms cmd, void dummy, const char arg) { static int warnonce = 0; if (++warnonce == 1) { ap_log_error(APLOG_MARK, APLOG_NOTICE|APLOG_STARTUP, APR_SUCCESS, NULL, APLOGNO(00548) "NameVirtualHost has no effect and will be removed in the " "next release %s:%d", cmd->directive->filename, cmd->directive->line_num); } return NULL; } / hash table statistics, keep this in here for the beta period so * we can find out if the hash function is ok / #ifdef IPHASH_STATISTICS static int iphash_compare(const void a, const void b) { return ((const int ) b - (const int ) a); } static void dump_iphash_statistics(server_rec main_s) { unsigned count[IPHASH_TABLE_SIZE]; int i; ipaddr_chain src; unsigned total; char buf[HUGE_STRING_LEN]; char p; total = 0; for (i = 0; i < IPHASH_TABLE_SIZE; ++i) { count[i] = 0; for (src = iphash_table[i]; src; src = src->next) { ++count[i]; if (i < IPHASH_TABLE_SIZE) { / don't count the slop buckets in the total / ++total; } } } qsort(count, IPHASH_TABLE_SIZE, sizeof(count[0]), iphash_compare); p = buf + apr_snprintf(buf, sizeof(buf), APLOGNO(03235) "iphash: total hashed = %u, avg chain = %u, " "chain lengths (count x len):", total, total / IPHASH_TABLE_SIZE); total = 1; for (i = 1; i < IPHASH_TABLE_SIZE; ++i) { if (count[i - 1] != count[i]) { p += apr_snprintf(p, sizeof(buf) - (p - buf), " %ux%u", total, count[i - 1]); total = 1; } else { ++total; } } p += apr_snprintf(p, sizeof(buf) - (p - buf), " %ux%u", total, count[IPHASH_TABLE_SIZE - 1]); / Intentional no APLOGNO / / buf provides APLOGNO / ap_log_error(APLOG_MARK, APLOG_DEBUG, main_s, buf); } #endif / This hashing function is designed to get good distribution in the cases * where the server is handling entire "networks" of servers. i.e. a * whack of /24s. This is probably the most common configuration for * ISPs with large virtual servers. * * NOTE: This function is symmetric (i.e. collapses all 4 octets * into one), so machine byte order (big/little endianness) does not matter. * * Hash function provided by David Hankins. / static APR_INLINE unsigned hash_inaddr(unsigned key) { key ^= (key >> 16); return ((key >> 8) ^ key) % IPHASH_TABLE_SIZE; } static APR_INLINE unsigned hash_addr(struct apr_sockaddr_t sa) { unsigned key; / The key is the last four bytes of the IP address. * For IPv4, this is the entire address, as always. * For IPv6, this is usually part of the MAC address. / key = (unsigned )((char )sa->ipaddr_ptr + sa->ipaddr_len - 4); return hash_inaddr(key); } static ipaddr_chain new_ipaddr_chain(apr_pool_t p, server_rec s, server_addr_rec sar) { ipaddr_chain new; new = apr_palloc(p, sizeof(new)); new->names = NULL; new->initialnames = NULL; new->server = s; new->sar = sar; new->next = NULL; return new; } static name_chain new_name_chain(apr_pool_t p, server_rec s, server_addr_rec sar) { name_chain new; new = apr_palloc(p, sizeof(new)); new->server = s; new->sar = sar; new->next = NULL; return new; } static APR_INLINE ipaddr_chain find_ipaddr(apr_sockaddr_t sa) { unsigned bucket; ipaddr_chain trav = NULL; ipaddr_chain wild_match = NULL; / scan the hash table for an exact match first / bucket = hash_addr(sa); for (trav = iphash_table[bucket]; trav; trav = trav->next) { server_addr_rec sar = trav->sar; apr_sockaddr_t cur = sar->host_addr; if (cur->port == sa->port) { if (apr_sockaddr_equal(cur, sa)) { return trav; } } if (wild_match == NULL && (cur->port == 0 || sa->port == 0)) { if (apr_sockaddr_equal(cur, sa)) { / don't break, continue looking for an exact match / wild_match = trav; } } } return wild_match; } static ipaddr_chain find_default_server(apr_port_t port) { server_addr_rec sar; ipaddr_chain trav = NULL; ipaddr_chain wild_match = NULL; for (trav = default_list; trav; trav = trav->next) { sar = trav->sar; if (sar->host_port == port) { / match! / return trav; } if (wild_match == NULL && sar->host_port == 0) { / don't break, continue looking for an exact match / wild_match = trav; } } return wild_match; } #if APR_HAVE_IPV6 #define IS_IN6_ANYADDR(ad) ((ad)->family == APR_INET6 \ && IN6_IS_ADDR_UNSPECIFIED(&(ad)->sa.sin6.sin6_addr)) #else #define IS_IN6_ANYADDR(ad) (0) #endif static void dump_a_vhost(apr_file_t f, ipaddr_chain ic) { name_chain nc; int len; char buf[MAX_STRING_LEN]; apr_sockaddr_t ha = ic->sar->host_addr; if ((ha->family == APR_INET && ha->sa.sin.sin_addr.s_addr == INADDR_ANY) || IS_IN6_ANYADDR(ha)) { len = apr_snprintf(buf, sizeof(buf), ":%u", ic->sar->host_port); } else { len = apr_snprintf(buf, sizeof(buf), "%pI", ha); } if (ic->sar->host_port == 0) { buf[len-1] = ''; } if (ic->names == NULL) { apr_file_printf(f, "%-22s %s (%s:%u)\n", buf, ic->server->server_hostname, ic->server->defn_name, ic->server->defn_line_number); return; } apr_file_printf(f, "%-22s is a NameVirtualHost\n" "%8s default server %s (%s:%u)\n", buf, "", ic->server->server_hostname, ic->server->defn_name, ic->server->defn_line_number); for (nc = ic->names; nc; nc = nc->next) { if (nc->sar->host_port) { apr_file_printf(f, "%8s port %u ", "", nc->sar->host_port); } else { apr_file_printf(f, "%8s port * ", ""); } apr_file_printf(f, "namevhost %s (%s:%u)\n", nc->server->server_hostname, nc->server->defn_name, nc->server->defn_line_number); if (nc->server->names) { apr_array_header_t names = nc->server->names; char name = (char )names->elts; int i; for (i = 0; i < names->nelts; ++i) { if (name[i]) { apr_file_printf(f, "%16s alias %s\n", "", name[i]); } } } if (nc->server->wild_names) { apr_array_header_t names = nc->server->wild_names; char name = (char )names->elts; int i; for (i = 0; i < names->nelts; ++i) { if (name[i]) { apr_file_printf(f, "%16s wild alias %s\n", "", name[i]); } } } } } static void dump_vhost_config(apr_file_t f) { ipaddr_chain ic; int i; apr_file_printf(f, "VirtualHost configuration:\n"); / non-wildcard servers / for (i = 0; i < IPHASH_TABLE_SIZE; ++i) { for (ic = iphash_table[i]; ic; ic = ic->next) { dump_a_vhost(f, ic); } } / wildcard servers / for (ic = default_list; ic; ic = ic->next) { dump_a_vhost(f, ic); } } / * When a second or later virtual host maps to the same IP chain, * add the relevant server names to the chain. Special care is taken * to avoid adding ic->names until we're sure there are multiple VH'es. / static void add_name_vhost_config(apr_pool_t p, server_rec main_s, server_rec s, server_addr_rec sar, ipaddr_chain ic) { name_chain nc = new_name_chain(p, s, sar); nc->next = ic->names; / iterating backwards, so each one we see becomes the current default server / ic->server = s; if (ic->names == NULL) { if (ic->initialnames == NULL) { / first pass, set these names aside in case we see another VH. * Until then, this looks like an IP-based VH to runtime. / ic->initialnames = nc; } else { / second pass through this chain -- this really is an NVH, and we * have two sets of names to link in. / nc->next = ic->initialnames; ic->names = nc; ic->initialnames = NULL; } } else { / 3rd or more -- just keep stacking the names / ic->names = nc; } } / compile the tables and such we need to do the run-time vhost lookups / AP_DECLARE(void) ap_fini_vhost_config(apr_pool_t p, server_rec main_s) { server_addr_rec sar; int has_default_vhost_addr; server_rec s; int i; ipaddr_chain iphash_table_tail[IPHASH_TABLE_SIZE]; / Main host first / s = main_s; if (!s->server_hostname) { s->server_hostname = ap_get_local_host(p); } / initialize the tails / for (i = 0; i < IPHASH_TABLE_SIZE; ++i) { iphash_table_tail[i] = &iphash_table[i]; } / The next things to go into the hash table are the virtual hosts * themselves. They're listed off of main_s->next in the reverse * order they occurred in the config file, so we insert them at * the iphash_table_tail but don't advance the tail. / for (s = main_s->next; s; s = s->next) { server_addr_rec sar_prev = NULL; has_default_vhost_addr = 0; for (sar = s->addrs; sar; sar = sar->next) { ipaddr_chain ic; char inaddr_any[16] = {0}; / big enough to handle IPv4 or IPv6 / / XXX: this treats <IP_ADDRESS> as a "default" server which matches no-exact-match for IPv6 / if (!memcmp(sar->host_addr->ipaddr_ptr, inaddr_any, sar->host_addr->ipaddr_len)) { ic = find_default_server(sar->host_port); if (ic && sar->host_port == ic->sar->host_port) { / we're a match for an existing "default server" / if (!sar_prev || memcmp(sar_prev->host_addr->ipaddr_ptr, inaddr_any, sar_prev->host_addr->ipaddr_len) || sar_prev->host_port != sar->host_port) { add_name_vhost_config(p, main_s, s, sar, ic); } } else { / No default server, or we found a default server but ** exactly one of us is a wildcard port, which means we want ** two ip-based vhosts not an NVH with two names / ic = new_ipaddr_chain(p, s, sar); ic->next = default_list; default_list = ic; add_name_vhost_config(p, main_s, s, sar, ic); } has_default_vhost_addr = 1; } else { / see if it matches something we've already got / ic = find_ipaddr(sar->host_addr); if (!ic || sar->host_port != ic->sar->host_port) { / No matching server, or we found a matching server but ** exactly one of us is a wildcard port, which means we want ** two ip-based vhosts not an NVH with two names / unsigned bucket = hash_addr(sar->host_addr); ic = new_ipaddr_chain(p, s, sar); ic->next = iphash_table_tail[bucket]; iphash_table_tail[bucket] = ic; } add_name_vhost_config(p, main_s, s, sar, ic); } sar_prev = sar; } / Ok now we want to set up a server_hostname if the user was * silly enough to forget one. * XXX: This is silly we should just crash and burn. / if (!s->server_hostname) { if (has_default_vhost_addr) { s->server_hostname = main_s->server_hostname; } else if (!s->addrs) { / what else can we do? at this point this vhost has no configured name, probably because they used DNS in the VirtualHost statement. It's disabled anyhow by the host matching code. -djg / s->server_hostname = apr_pstrdup(p, "bogus_host_without_forward_dns"); } else { apr_status_t rv; char hostname; rv = apr_getnameinfo(&hostname, s->addrs->host_addr, 0); if (rv == APR_SUCCESS) { s->server_hostname = apr_pstrdup(p, hostname); } else { / again, what can we do? They didn't specify a ServerName, and their DNS isn't working. -djg / char ipaddr_str; apr_sockaddr_ip_get(&ipaddr_str, s->addrs->host_addr); ap_log_error(APLOG_MARK, APLOG_ERR, rv, main_s, APLOGNO(00549) "Failed to resolve server name " "for %s (check DNS) -- or specify an explicit " "ServerName", ipaddr_str); s->server_hostname = apr_pstrdup(p, "bogus_host_without_reverse_dns"); } } } } #ifdef IPHASH_STATISTICS dump_iphash_statistics(main_s); #endif if (ap_exists_config_define("DUMP_VHOSTS")) { apr_file_t thefile = NULL; apr_file_open_stdout(&thefile, p); dump_vhost_config(thefile); } } / * run-time vhost matching functions */ static apr_status_t fix_hostname_v6_literal(request_rec *r, char *host) { char *dst; int double_colon = 0; for (dst = host; *dst; dst++) { if (apr_isxdigit(*dst)) { if (apr_isupper(*dst)) { *dst = apr_tolower(dst); } } else if (dst == ':') { if ((dst + 1) == ':') { if (double_colon) return APR_EINVAL; double_colon = 1; } else if ((dst + 1) == '.') { return APR_EINVAL; } } else if (dst == '.') { / For IPv4-mapped IPv6 addresses like ::FFFF:<IP_ADDRESS> / if ((dst + 1) == ':' || *(dst + 1) == '.') return APR_EINVAL; } else { return APR_EINVAL; } } return APR_SUCCESS; } static apr_status_t fix_hostname_non_v6(request_rec *r, char *host) { char *dst; for (dst = host; *dst; dst++) { if (apr_islower(dst)) { / leave char unchanged */ } else if (dst == '.') { if ((dst + 1) == '.') { return APR_EINVAL; } } else if (apr_isupper(*dst)) { *dst = apr_tolower(*dst); } else if (*dst == '/' || dst == '\') { return APR_EINVAL; } } / strip trailing gubbins / if (dst > host && dst[-1] == '.') { dst[-1] = '\0'; } return APR_SUCCESS; } / * If strict mode ever becomes the default, this should be folded into * fix_hostname_non_v6() */ static apr_status_t strict_hostname_check(request_rec *r, char *host) { char *ch; int is_dotted_decimal = 1, leading_zeroes = 0, dots = 0; for (ch = host; *ch; ch++) { if (apr_isalpha(*ch) || *ch == '-' || *ch == '_') { is_dotted_decimal = 0; } else if (ch[0] == '.') { dots++; if (ch[1] == '0' && apr_isdigit(ch[2])) leading_zeroes = 1; } else if (!apr_isdigit(ch)) { / also takes care of multiple Host headers by denying commas / goto bad; } } if (is_dotted_decimal) { if (host[0] == '.' || (host[0] == '0' && apr_isdigit(host[1]))) leading_zeroes = 1; if (leading_zeroes || dots != 3) { / RFC 3986 7.4 / goto bad; } } else { / The top-level domain must start with a letter (RFC 1123 2.1) */ while (ch > host && *ch != '.') ch--; if (ch[0] == '.' && ch[1] != '\0' && !apr_isalpha(ch[1])) goto bad; } return APR_SUCCESS; bad: ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO(02415) "[strict] Invalid host name '%s'%s%.6s", host, ch ? ", problem near: " : "", ch); return APR_EINVAL; } / Lowercase and remove any trailing dot and/or :port from the hostname, * and check that it is sane. * * In most configurations the exact syntax of the hostname isn't * important so strict sanity checking isn't necessary. However, in * mass hosting setups (using mod_vhost_alias or mod_rewrite) where * the hostname is interpolated into the filename, we need to be sure * that the interpolation doesn't expose parts of the filesystem. * We don't do strict RFC 952 / RFC 1123 syntax checking in order * to support iDNS and people who erroneously use underscores. * Instead we just check for filesystem metacharacters: directory * separators / and \ and sequences of more than one dot. */ static int fix_hostname(request_rec *r, const char *host_header, unsigned http_conformance) { const char *src; char *host, *scope_id; apr_port_t port; apr_status_t rv; const char c; int is_v6literal = 0; int strict = (http_conformance != AP_HTTP_CONFORMANCE_UNSAFE); src = host_header ? host_header : r->hostname; / According to RFC 2616, Host header field CAN be blank */ if (!src) { return is_v6literal; } / apr_parse_addr_port will interpret a bare integer as a port * which is incorrect in this context. So treat it separately. */ for (c = src; apr_isdigit(*c); ++c); if (!c) { / pure integer / if (strict) { / RFC 3986 7.4 / ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO(02416) "[strict] purely numeric host names not allowed: %s", src); goto bad_nolog; } r->hostname = src; return is_v6literal; } if (host_header) { rv = apr_parse_addr_port(&host, &scope_id, &port, src, r->pool); if (rv != APR_SUCCESS || scope_id) goto bad; if (port) { / Don't throw the Host: header's port number away: save it in parsed_uri -- ap_get_server_port() needs it! / / @@@ XXX there should be a better way to pass the port. * Like r->hostname, there should be a r->portno / r->parsed_uri.port = port; r->parsed_uri.port_str = apr_itoa(r->pool, (int)port); } if (host_header[0] == '[') is_v6literal = 1; } else { / * Already parsed, surrounding [ ] (if IPv6 literal) and :port have * already been removed. / host = apr_pstrdup(r->pool, r->hostname); if (ap_strchr(host, ':') != NULL) is_v6literal = 1; } if (is_v6literal) { rv = fix_hostname_v6_literal(r, host); } else { rv = fix_hostname_non_v6(r, host); if (strict && rv == APR_SUCCESS) rv = strict_hostname_check(r, host); } if (rv != APR_SUCCESS) goto bad; r->hostname = host; return is_v6literal; bad: ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO(00550) "Client sent malformed Host header: %s", src); bad_nolog: r->status = HTTP_BAD_REQUEST; return is_v6literal; } / return 1 if host matches ServerName or ServerAliases */ static int matches_aliases(server_rec *s, const char *host) { int i; apr_array_header_t names; / match ServerName / if (!strcasecmp(host, s->server_hostname)) { return 1; } / search all the aliases from ServerAlias directive */ names = s->names; if (names) { char **name = (char **) names->elts; for (i = 0; i < names->nelts; ++i) { if (!name[i]) continue; if (!strcasecmp(host, name[i])) return 1; } } names = s->wild_names; if (names) { char **name = (char *) names->elts; for (i = 0; i < names->nelts; ++i) { if (!name[i]) continue; if (!ap_strcasecmp_match(host, name[i])) return 1; } } return 0; } / Suppose a request came in on the same socket as this r, and included * a header "Host: host:port", would it map to r->server? It's more * than just that though. When we do the normal matches for each request * we don't even bother considering Host: etc on non-namevirtualhosts, * we just call it a match. But here we require the host:port to match * the ServerName and/or ServerAliases. */ AP_DECLARE(int) ap_matches_request_vhost(request_rec *r, const char *host, apr_port_t port) { server_rec *s; server_addr_rec sar; s = r->server; / search all the  values / / XXX: If this is a NameVirtualHost then we may not be doing the Right Thing * consider: * * NameVirtualHost <IP_ADDRESS> * <VirtualHost <IP_ADDRESS>> * ServerName v1 *  * <VirtualHost <IP_ADDRESS>> * ServerName v2 *  * * Suppose r->server is v2, and we're asked to match "<IP_ADDRESS>". We'll say * "yup it's v2", when really it isn't... if a request came in for <IP_ADDRESS> * it would really go to v1. / for (sar = s->addrs; sar; sar = sar->next) { if ((sar->host_port == 0 || port == sar->host_port) && !strcasecmp(host, sar->virthost)) { return 1; } } / the Port has to match now, because the rest don't have ports associated * with them. / if (port != s->port) { return 0; } return matches_aliases(s, host); } / * Updates r->server from ServerName/ServerAlias. Per the interaction * of ip and name-based vhosts, it only looks in the best match from the * connection-level ip-based matching. * Returns HTTP_BAD_REQUEST if there was no match. */ static int update_server_from_aliases(request_rec r) { / * Even if the request has a Host: header containing a port we ignore * that port. We always use the physical port of the socket. There * are a few reasons for this: * * - the default of 80 or 443 for SSL is easier to handle this way * - there is less of a possibility of a security problem * - it simplifies the data structure * - the client may have no idea that a proxy somewhere along the way * translated the request to another ip:port * - except for the addresses from the VirtualHost line, none of the other * names we'll match have ports associated with them */ const char *host = r->hostname; apr_port_t port; server_rec *s; server_rec *virthost_s; server_rec *last_s; name_chain src; virthost_s = NULL; last_s = NULL; port = r->connection->local_addr->port; / Recall that the name_chain is a list of server_addr_recs, some of * whose ports may not match. Also each server may appear more than * once in the chain -- specifically, it will appear once for each * address from its VirtualHost line which matched. We only want to * do the full ServerName/ServerAlias comparisons once for each * server, fortunately we know that all the VirtualHost addresses for * a single server are adjacent to each other. */ for (src = r->connection->vhost_lookup_data; src; src = src->next) { server_addr_rec sar; / We only consider addresses on the name_chain which have a matching * port / sar = src->sar; if (sar->host_port != 0 && port != sar->host_port) { continue; } s = src->server; / If we still need to do ServerName and ServerAlias checks for this * server, do them now. / if (s != last_s) { / does it match any ServerName or ServerAlias directive? / if (matches_aliases(s, host)) { goto found; } } / Fallback: does it match the virthost from the sar? * (only the first match is used) / if (virthost_s == NULL) { if (!strcasecmp(host, sar->virthost)) { virthost_s = s; } } last_s = s; } / If ServerName and ServerAlias check failed, we end up here. If it * matches a VirtualHost, virthost_s is set. Use that as fallback / if (virthost_s) { s = virthost_s; goto found; } if (!r->connection->vhost_lookup_data) { if (matches_aliases(r->server, host)) { s = r->server; goto found; } } return HTTP_BAD_REQUEST; found: / s is the first matching server, we're done */ r->server = s; return HTTP_OK; } static void check_serverpath(request_rec *r) { server_rec *s; server_rec *last_s; name_chain src; apr_port_t port; port = r->connection->local_addr->port; / * This is in conjunction with the ServerPath code in http_core, so we * get the right host attached to a non- Host-sending request. * * See the comment in update_server_from_aliases about how each vhost can be * listed multiple times. / last_s = NULL; for (src = r->connection->vhost_lookup_data; src; src = src->next) { / We only consider addresses on the name_chain which have a matching * port */ if (src->sar->host_port != 0 && port != src->sar->host_port) { continue; } s = src->server; if (s == last_s) { continue; } last_s = s; if (s->path && !strncmp(r->uri, s->path, s->pathlen) && (s->path[s->pathlen - 1] == '/' || r->uri[s->pathlen] == '/' || r->uri[s->pathlen] == '\0')) { r->server = s; return; } } } static APR_INLINE const char *construct_host_header(request_rec r, int is_v6literal) { struct iovec iov[5]; apr_size_t nvec = 0; / * We cannot use ap_get_server_name/port here, because we must * ignore UseCanonicalName/Port. */ if (is_v6literal) { iov[nvec].iov_base = "["; iov[nvec].iov_len = 1; nvec++; } iov[nvec].iov_base = (void *)r->hostname; iov[nvec].iov_len = strlen(r->hostname); nvec++; if (is_v6literal) { iov[nvec].iov_base = "]"; iov[nvec].iov_len = 1; nvec++; } if (r->parsed_uri.port_str) { iov[nvec].iov_base = ":"; iov[nvec].iov_len = 1; nvec++; iov[nvec].iov_base = r->parsed_uri.port_str; iov[nvec].iov_len = strlen(r->parsed_uri.port_str); nvec++; } return apr_pstrcatv(r->pool, iov, nvec, NULL); } AP_DECLARE(void) ap_update_vhost_from_headers(request_rec *r) { ap_update_vhost_from_headers_ex(r, 0); } AP_DECLARE(int) ap_update_vhost_from_headers_ex(request_rec *r, int require_match) { core_server_config *conf = ap_get_core_module_config(r->server->module_config); const char host_header = apr_table_get(r->headers_in, "Host"); int is_v6literal = 0; int have_hostname_from_url = 0; int rc = HTTP_OK; if (r->hostname) { / * If there was a host part in the Request-URI, ignore the 'Host' * header. / have_hostname_from_url = 1; is_v6literal = fix_hostname(r, NULL, conf->http_conformance); } else if (host_header != NULL) { is_v6literal = fix_hostname(r, host_header, conf->http_conformance); } if (!require_match && r->status != HTTP_OK) return HTTP_OK; if (conf->http_conformance != AP_HTTP_CONFORMANCE_UNSAFE) { / * If we have both hostname from an absoluteURI and a Host header, * we must ignore the Host header (RFC 2616 5.2). * To enforce this, we reset the Host header to the value from the * request line. / if (have_hostname_from_url && host_header != NULL) { const char repl = construct_host_header(r, is_v6literal); apr_table_setn(r->headers_in, "Host", repl); ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO(02417) "Replacing host header '%s' with host '%s' given " "in the request uri", host_header, repl); } } / check if we tucked away a name_chain / if (r->connection->vhost_lookup_data) { if (r->hostname) rc = update_server_from_aliases(r); else check_serverpath(r); } else if (require_match && r->hostname) { / check the base server config / rc = update_server_from_aliases(r); } return rc; } / * For every virtual host on this connection, call func_cb. */ AP_DECLARE(int) ap_vhost_iterate_given_conn(conn_rec conn, ap_vhost_iterate_conn_cb func_cb, void baton) { server_rec *s; server_rec *last_s; name_chain *src; apr_port_t port; int rv = 0; if (conn->vhost_lookup_data) { last_s = NULL; port = conn->local_addr->port; for (src = conn->vhost_lookup_data; src; src = src->next) { server_addr_rec sar; / We only consider addresses on the name_chain which have a * matching port. / sar = src->sar; if (sar->host_port != 0 && port != sar->host_port) { continue; } s = src->server; if (s == last_s) { / we've already done a callback for this vhost. / continue; } last_s = s; rv = func_cb(baton, conn, s); if (rv != 0) { break; } } } else { rv = func_cb(baton, conn, conn->base_server); } return rv; } / Called for a new connection which has a known local_addr. Note that the * new connection is assumed to have conn->server == main server. */ AP_DECLARE(void) ap_update_vhost_given_ip(conn_rec *conn) { ipaddr_chain trav; apr_port_t port; / scan the hash table for an exact match first / trav = find_ipaddr(conn->local_addr); if (trav) { / save the name_chain for later in case this is a name-vhost / conn->vhost_lookup_data = trav->names; conn->base_server = trav->server; return; } / maybe there's a default server or wildcard name-based vhost * matching this port / port = conn->local_addr->port; trav = find_default_server(port); if (trav) { conn->vhost_lookup_data = trav->names; conn->base_server = trav->server; return; } / otherwise we're stuck with just the main server * and no name-based vhosts */ conn->vhost_lookup_data = NULL; }

set Apache2=true

https://www instagram. com/dakota___blare/profilecard/?igsh=MWc1dGhuajdhZWVlbA==
[Mobile] +52 55 5487 6578Jose Eduardo Fuentes Vazquez Eduardo Fuentes Fuentes Vazquez
[Mobile]<PHONE_NUMBER>97
[Mobile] +5294100001410
[Mobile]<PHONE_NUMBER>
[Other]<EMAIL_ADDRESS>[Home]<EMAIL_ADDRESS>[Work]<EMAIL_ADDRESS>[$!!$]<EMAIL_ADDRESS>[https://console-openshift-console.apps.sandbox-m3.1530.p1.openshiftapps.com/]<EMAIL_ADDRESS>[Home] Juan Maldonado
Queretaro, Queretaro 76118
Mexico
[Organization] STR
[Organization] https://console-openshift-console.apps.sandbox-m3.1530.p1.openshiftapps.com/
[Homepage] https://strcozumel.000webhostapp.com/
[Birthday] 1998-06-29
[Anniversary] 2021-12-07
https://console-openshift-console.apps.sandbox-m3.1530.p1.openshiftapps.com/https://console-openshift-console.apps.sandbox-m3.1530.p1.openshiftapps.com/ https://console-openshift-console.apps.sandbox-m3.1530.p1.openshiftapps.com/
[Mobile]<PHONE_NUMBER>
[https://console-openshift-console.apps.sandbox-m3.1530.p1.openshiftapps.com/] +528000407777
[Mobile] +52<PHONE_NUMBER>
[Work] +52<PHONE_NUMBER>
[https://console-openshift-console.apps.sandbox-m3.1530.p1.openshiftapps.com/] +52<PHONE_NUMBER>
[Home] https://console-openshift-console.apps.sandbox-m3.1530.p1.openshiftapps.com/
[Organization] Banco Azteca
[Other] HomeHome
https://maps.app.goo.gl/ie46mMDgjfrXJVzTA
https://maps.app.goo.gl/ie46mMDgjfrXJVzTA
[Other] https://maps.google.com/?q=Home+Juan+Maldonado+52%2C+Rosendo+Salazar%2C+76118+Santiago+de+Querétaro%2C+Qro.&ftid=0x0:0x16c1532167d0d5b8&entry=gps
https://console-openshift-console.apps.sandbox-m3.1530.p1.openshiftapps.com/


Close Data Set: resulting Settings unavailable

To reproduce:

Open VAPOR, load Katrina.  Note you can go to the Settings tab to change num. of threads, etc.
Close data. Note you can not go to the Settings tab to change num. of threads, etc.
Settings should be independent of if there's an open data set.

Update on 6/11/2018:
This behavior remains the same.

Update on 12/202018:
This behavior remains the same.

Fixed!


BugFix Showing all notDeliveredDonations

BugFix Showing all notDeliveredDonations

[X] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

How has this been tested?

[ ] Unit test(s)
[X] Integration test(s)
[ ] Tested manually

Checklist:

[X] My code follows the style guidelines of this project
[X] I have performed a self-review of my own code
[X] I have commented my code, particularly in hard-to-understand areas
[X] My changes generate no new warnings
[X] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes
[X] I have checked my code and corrected any misspellings
[] I have added frontend code and checked it for mobile & desktop

Task linked: CU-862jc289b Add user id to not-delivered-count


Error about using with GPS

i am using this lio sam for mapping, i using tf between gps and base link, but i can't see anything about odometry/gps. Can you help me to solution

Do you have "imu_correct" topic in your rosbag?

Do you have "imu_correct" topic in your rosbag?

I had only /imu/data. Can i use it instead ?
You can share detail information about topic /imu_correct . It is different from /imu/data ?
Thank you,

I had only /imu/data. Can i use it instead ?
You can share detail information about topic /imu_correct . It is different from /imu/data ?
Thank you,

https://github.com/TixiaoShan/LIO-SAM/issues/137
hi, I think you can find the answer from here.

https://github.com/TixiaoShan/LIO-SAM/issues/137
hi, I think you can find the answer from here.

hello. I want to use GPS factor. I only modify the GPS topic in param.yaml, but it doesn't work. Can you help me ? Thank you !


Trying to get a list of types for a field

In the frontend, I would like to present the user the possibility to choose the type and then the correct polymorphic form will appear.
To get a list of availble types of a field, I was thinking about: https://hexdocs.pm/polymorphic_embed/PolymorphicEmbed.html#types/2
But I am getting an error, because the atoms does not exist:
iex(7)> PolymorphicEmbed.types(MySchema, :a_poly_field)
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: not an already existing atom

    :erlang.binary_to_existing_atom("catalog", :utf8)
    (polymorphic_embed 1.9.0) lib/polymorphic_embed.ex:344: anonymous fn/1 in PolymorphicEmbed.types/2
    (elixir 1.13.4) lib/enum.ex:1593: Enum."-map/2-lists^map/1-0-"/2
    (elixir 1.13.4) lib/enum.ex:1593: Enum."-map/2-lists^map/1-0-"/2

Is there a way around this? I understand String.to_atom is dangerous, is there an alternative?
Thank you

pfff because I was mispelling it. Sorry for the noise :man_facepalming:


change the algorithm to index the transactions

The maxid approach could cause problems if a old wallet has a wrong index

performance improvement - just read listpubcoin one time

tested without problem ?

yes, did some tests and at #testing channel too


Fix Cursor highlights

For some reason, Cursor reverse is set to config.inverse value.
If I change config.inverse cursor stays the same.

reverse = true
reverse = false

But, if reverse is false, noice.nvim cmdline cursor breaks.

reverse = true
reverse = false

But, if reverse is false, noice.nvim cmdline cursor breaks.
Noice's cursor is broken, it fills the char with bg color not fg. I will report it to them.

Although I still don't understand why cursor relies on config.inverse.

Similar issue: rose-pine/neovim#138

@ellisonleao

hey @mrtnvgr not sure about that fix. Why setting only to true will work? In the screenshots you've pasted, are they in GUI environment? Because the default behavior for the cursor highlight is to use the Character under the cursor color for the bg

hey @mrtnvgr not sure about that fix. Why setting only to true will work? In the screenshots you've pasted, are they in GUI environment? Because the default behavior for the cursor highlight is to use the Character under the cursor color for the bg

This is in terminal emulator (st). I believe that cursor is being rendered by terminal itself, but noice.nvim uses (links to) this highlight for rendering "fake" cursor in cmdline. To avoid breakage, I think that better way to fix this will be changing NoiceCursor highlight not Cursor.


postfix-virtual delivery duplicated

Hi, I have configured some virtual addresses, for example:
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>I want to get a copy in<EMAIL_ADDRESS>and another one delivered to<EMAIL_ADDRESS>but, instead of that, I get one copy in junior@ and TWO copies in produccion@, why? maybe some recursive delivery? or am I setting it up wrong?
Thanks

which file did you put that in?

config/postfix-virtual.cf

I need to explain here that junior@ is a real mail account in the container, but I want to receive copies in produccion@, so junior@ receives one copy and produccion@ receives another copy. Instead of that I get one copy in junior@ and two copies in produccion@

Hi @citec, I just tried the following viruals:
<EMAIL_ADDRESS>real-account<EMAIL_ADDRESS><EMAIL_ADDRESS>will receive the same mails<EMAIL_ADDRESS>receives.

By the way, both will work:
# send a copy
account1 account1,account2

# kind of mailing list
alias account1,account2

But recipients have to be accounts, not aliases.


add support for registering to hyperlane

Made several smaller changes to hopefully simplify things by touching less files per update. Also made made several areas more generic so that copy paste errors can't happen in as many places

All the code changes look good! You didn't included the addition to the readme for hyperlane onboarding though

TY for catching


Register the Notification model to Django admin

Register the Notification model to the Django admin

Hi @viggo-devries,
Thank you for reviewing my pull request.
How can I pass the Codecov of this pull request to be merged?
Thank you.


SWIG APIs for Tcl/Python binding with initial practice on Tcl interface

Motivate of the pull request

[x] To address an existing issue. If so, please provide a link to the issue: #915
[ ] Breaking new feature. If so, please describe details in the description part.

Describe the technical details
What is currently done? (Provide issue link if applicable)

What does this pull request change?

This PR improves in the following aspects:

[x] Encapsulate OpenFPGA shell in a class on top of existing general shell class
[x] Added an interface file for existing OpenFPGA commands
[x] Now dynamic linked library libopenfpga.so is created during compilation
[x] Create an example of tcl script loading openfpga apis
[ ] Added a new test case to validate the Tcl interface (using an existing basic test such as configuration chain is o.k.)

Which part of the code base require a change

[ ] VPR
[ ] Tileable routing architecture generator
[ ] OpenFPGA libraries
[ ] FPGA-Verilog
[ ] FPGA-Bitstream
[ ] FPGA-SDC
[ ] FPGA-SPICE
[ ] Flow scripts
[ ] Architecture library
[ ] Cell library
[ ] Documentation
[ ] Regression tests
[ ] Continous Integration (CI) scripts

Impact of the pull request

[ ] Require a change on Quality of Results (QoR)
[ ] Break back-compatibility. If so, please list who may be influenced.

Merge now as the docker image has to be built on master CI. Will follow up on any errors.


v0.13.22 is a breaking change from v0.13.21

After upgrading from v0.13.21 to v0.13.22 via npm update (our package.json has "karma": "^0.13.21") the tests suddenly fail on all our Build environments. This I would class as a breaking change, as a change in the 'hotfix' version (The last part of a version number) should not result in anything breaking in the application it is used. Equally worrying is that there is nothing mentioned in the changelog.md for v0.13.21 to quickly check what has changed.
Expected behavior
The test passed as the "expect" part of the test is commented out. This works fine in v0.13.21
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 2 of 2 SUCCESS (0.004 secs / 0.035 secs)
Actual behavior
The test fails in v0.13.22 with the following error:
[1APhantomJS 2.1.1 (Linux 0.0.0) Controller: XXXXXXXX should attach a list of items to the scope FAILED
	TypeError: undefined is not a function (evaluating 'angular.element.cleanData(cleanUpNodes)') in

Enviroment Details

Karma tests from via grunt using karma and PhantomJS 2.1.1
Karma version: Karma v0.13.22 upgraded from Karma v0.13.21
Relevant part of your karma.config.js file: Let me know if you need any of this, as its project specific content, which you may not need.
package.json: "karma": "^0.13.21",

Steps to reproduce the behaviour
Code in the relevant test.js file:
  it('should attach a list of items to the scope', function () {
    //expect(Items.productItems).toEqual(['Towel', 'Coat']);
  });

I'm very sure this is not Karmas fault. 0.13.22 and 0.13.21 are identical in code, except for a temp file that I accidentally shipped in the npm release. So it's much more likely that some dependency change is responsible for this change which is not directly related to Karma. You can see the code difference here: https://github.com/karma-runner/karma/compare/v0.13.21...v0.13.22

Short answer:
This solved the problem for me about 15 minutes ago: https://github.com/facebook/react-native/issues/6595
They must have put<EMAIL_ADDRESS>back.
Long answer:
Today I ran into this error:
npm ERR! No compatible version found<EMAIL_ADDRESS>npm ERR! Valid install targets:
npm ERR! 0.0.9

At one point changing this from 0.13.22 to 0.13.21 fixed the issue, but after a couple of hours of trying to narrow down (was also eye'ing grunt-karma as a possible problem), my original package.json magically worked with 0.13.22, so maybe a broken dependency somewhere fixed itself.
At the end of the day, latest karma 0.13.22 and latest grunt-karma 0.12.2 worked fine.

thanks @briangershon for the info closing this for now

I am still getting this issue
here is my installed packages:
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>Can you please help ?


Apigee Integration Cloud Logging Enablement Deployment Issue

we are trying to enable google cloud logging in all our integrations part of project.
We have a setting button at the top right corner of integrations where we enable the Local logging(to be updated to async mode) and under log setting Enable Cloud logging field(to be enabled)

In dev since we are doing manual, its working as expected but when we are pushing the code to higher environment even though the src file has config details which is required to enable ,still post deployment it’s not getting enabled in QA

This is a duplicate of issue #180

v0.74.0 should support this


Sync with the upstream

Sync with the upstream(PR https://github.com/microsoft/onnxruntime/pull/22195 and some others)
Update CMakePresets.json to avoid hardcoding LLVM's installation path.
Enable CodeQL

We need to move the MLAS header files to include and move the current headers files in include to src.

We need to move the MLAS header files to include and move the current headers files in include to src.

Will address it in the next PR.


Changes to monitoring

add AUC stuff in place of frequency-dependent trough check
remove HD with goal 10-15 recommendation
add SLED (no text?)

combine with #2


images now display with some info

Images now display, 0th case always has other api's info. Don't know why.

looks great!

...


use preset-env in tests

Wanted to test out using preset-env on a project..
leaving "presets": ["stage-0"] at the top level caused an issue with "missing class properties transform" since I believe the es2015 preset ran before class properties due to env and merging which is unfortunate.
Also means that we're duplicating the config for the different envs

Nvm forgot rollup was node >= 4


feat: add user:write:chat scope

This one isn't in the docs yet, but needed for sending a message. Depends on https://github.com/twitch-rs/twitch_oauth2/pull/138.

We could do a immediate release also with this, just need to update the changelog, commit, then cargo release patch, push

I updated the changelog, but I can't commit to main, so you'd need to do that.

You dont need to commit to main, the ci does the release on merges that bump the version in Cargo.toml :D
https://github.com/twitch-rs/twitch_oauth2/blob/ff18d8e109e5ded004eea4663faba92c84a4a1aa/xtask/src/main.rs#L32

Ah, this should be correct now.


Document redundancy

Please answer these questions before submitting pull request

Why submit this pull request?

[x] Bug fix

[ ] New feature provided

[ ] Improve performance

Related issues

Bug fix

Bug description.

How to fix?

New feature or improvement

Describe the details and related test reports.

Coverage remained the same at 24.56% when pulling ac5402e8ae60692a484b0338a6f59950e10a8060 on WithLin:patch-1 into c34d0561c56b9a43d303ee037898bfb339323577 on apache:5.x.


Inconsistent JaCoCo report directory configured for additional JacocoReport tasks

It turns out this plugin adds a JacocoReport task for each new test set. However, the report destination configuration is inconsistent, see (the module defines one additional 'integrationTest' source set).
$ ls build/reports/jacoco/
jacocoIntegrationTestReport  test

So, the default test task gets a (in my case HTML, but I checked all reports and it is the same) report folder named after the source set/Test task name, but jacocoIntegrationTestReport is named after the additional JaCoCo task name. I guess the 'destination' property of each report should be set to use the additional Test task name, in this case 'integrationTest'. I think the code in the JaCoCo plugin is this: https://github.com/gradle/gradle/blob/master/subprojects/jacoco/src/main/java/org/gradle/testing/jacoco/plugins/JacocoPlugin.java#L190

The test-sets plugin doesn't do anything to set the reports output directory; turns out that the task name is the default.
For the jacocoTestReport task that is auto-generated by the jacoco plugin, the JacocoPlugin configures this "special" task differently. Interestingly, the corresponding Gradle code contains a TODO that mentions this might be changed to the general convention of using the task name soon.
// TODO: Change the default location for these reports to follow the convention defined in #configureReportOutputDirectory

So for now I would refrain in this plugin from mimicking behavior in another plugin that is due to be changed soon. If anyone wants to do this manually, the following code replicates what the JacocoPlugin does to the default report task:
 testSets.all { testSet ->
    tasks[testSet.jacocoReportTaskName].reports.all { ConfigurableReport report ->
        if (report.outputType == Report.OutputType.DIRECTORY) {
            report.destination = file("${jacoco.reportsDir}/${testSet.name}/${report.name}")
        } else {
            report.destination = file("${jacoco.reportsDir}/${testSet.name}/${testSet.jacocoReportTaskName}.${report.name}")
        }
    }
}


Thank you for sharing (2) ⭐

Extending the "thank you" from https://github.com/malaval/aws-orga-deployer/issues/1, fantastic project @malaval!
Picking up what you said in that other thread: "...AWS Orga Deployer is not made to manage AWS Organizations..."
Does that mean you handle it in a different project/tool? I assume Terraform?
I was doing research / POC the last few days on the scenario:
I have a brand new AWS account,
Signup is completed, and I just created my first IAM User with Admin permissions.
Now what?

That's how I landed here =)
It's fair to assume that to enable AWS Organizations, create OUs, AWS accounts, Identity Center/SSO mappings/Permission sets, SCPs, etc.; I should use a different tool, and AWS Orga Deployer would come after this stage to baseline the accounts?

Thanks for sharing feedback :-)
By "AWS Orga Deployer is not made to manage AWS Organizations", I meant that it is not the best tool to create your AWS accounts programmatically, like orgformation or a classical "account vending machine" would do, because it doesn't bring additional value that pure Terraform or CloudFormation.
One of the AWS Orga Deployer "limitations" is that the deployments to create are evaluated at the beginning of an execution, so if one of the deployment consists of creating an account, it won't be able to deploy resources in that account during the same execution, because that account didn't exist yet at the time it evaluated the deployments to create. But you could split that in two packages executed sequentially for example (see below).
In my current company, we "enable AWS Organizations, create OUs, AWS accounts, Identity Center/SSO mappings/Permission sets, SCPs" manually given the small size of our organization and then we use AWS Orga Deployer (I know it is quite bad coming from someone advocating infra-as-code and automation :-).
But if you are able to create organization resources it with Terraform, there is no reason you could not it with AWS Orga Deployer (it is just a multi-account-region wrapper). So you could imagine a pipeline of two sequential AWS Orga Deployer packages:

one package to create AWS accounts, create OUs, etc. But this package would typically be a single Terraform/CloudFormation module that creates the resources, and the benefit of AWS Orga Deployer is low here.

another package executed after the first one to create account resources by assuming the IAM role created by AWS Organizations (the one provided as argument in the CreateAccount). You don't have to edit the "package.yaml" file if the deployments target all accounts in the organization or given OUs. For example, if you want to deploy a specific IAM role in all accounts in the "prod" OU, you just need to specify a deployment once in your "package.yaml". If you create a new account matching these conditions, AWS Orga Deployer will determine that it must deploy the IAM role in this new account the next time you execute this package. Example:

Modules:
  MyProdIAMRole:
    Deployments:
      - Include:
          OUIds: ou-12345
          Regions: ["eu-west-1", "us-east-1"]

Hope that helps understand how it works. Let me know if you have any follow-up questions.


AMD ROCm support

Are there plans to support ROCm? I don't have an NVIDIA GPU so I cannot use CUDA.

Hey, I tried it out and just wanted to let you know that it seems to work fine with AMD GPU and ROCm. Thank you for sharing!


Filters in gaffer.function.simple.filter should have toString(), equals(), hashCode() methods

Logging information about the use / creation of filters isn't very useful as they don't have toString() methods.
They should also have equals() and hashCode() methods as it's possible they may get added to a set, e.g. if someone is deduping a list of filters.
These 3 methods should be added to everything in gaffer.function.simple.filter and probably to other classes under gaffer.function.simple.

As part of this issue, I will also update the existing toString(), equals() and hashCode() methods so that we have a consistent approach across the entire project.

Thanks - other classes that need these methods (or at least some of them) are View and Schema and other classes they use. Can this be done as part of this issue, or should it be a separate issue?

I can add those extra methods as part of this issue too.

Merged into develop.


Not able to use app_review plugin

Steps to reproduce:

create flutter project (with Objective C)
add app_review plugin in pubspeck.yaml
start app (simulator)

Error:
Xcode's output:
↳
=== BUILD TARGET shared_preferences OF PROJECT Pods WITH CONFIGURATION Debug ===
The “Swift Language Version” (SWIFT_VERSION) build setting must be set to a supported value for targets which use Swift. Supported values are: 3.0, 4.0, 4.2. This setting can be set in the build settings editor.

I needed to add SWIFT_VERSION (4.2) in Build Settings for my Flutter project (Objective C)

But when I fixed issue one, now this error:
** BUILD FAILED **
Xcode's output:
↳
=== BUILD TARGET package_info OF PROJECT Pods WITH CONFIGURATION Debug ===
/Users/xx/flutter/.pub-cache/hosted/pub.dartlang.org/app_review-0.0.9/ios/Classes/AppReviewPlugin.m:2:9: fatal error: 'app_review/app_review-Swift.h' file not found
#import <app_review/app_review-Swift.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

You can add ‘use_framework!’ to the podfile of your flutter app to get past the above Swift error

This requires swift for this plugin. Use @Matcho0 answer for compatibity

@Matcho0  answer did not work for me. What worked for me was to add ‘use_frameworks!’. And then add a swift file to the iOS project using Xcode and accepting the create Bridging-Header option. This converted the project to support swift


[Remote Store] Translog fetch logic during replica promotion to primary & other cases

Is your feature request related to a problem? Please describe.
As part of Remote store work, the translogs would be stored in remote store in the following path - Base64UUID/IndexUUID/ShardID/PrimaryTerm. With segment replication, there is a possibility that the replicas can be lagging in terms of the segment generation. Now, given there is no replicas available locally due to storing translogs in the replicas, there is also a need to fetch the translogs given any sequence number. There will also be cases where stale isolated primaries can persist the translog in remote store, but the call would have been unacknowledged or failed during the primary term validation. The discussion to avoid the divergent writes and any overwrite of data is being discussed in #3706.
Describe the solution you'd like
We can determine the min sequence number either by going through the .tlog / .ckp files or by keeping another file per primary term which holds the min sequence number. Using the min sequence number per primary term we can construct a map which can be used for creating the abstraction for fetching the translogs from a certain sequence number.

primary term
min

0
0

1
102

2
207

3
309

4
441

Using the above information, we can create a reverse map and use the same to find the translogs that needs to be fetched. This way we can avoid reading the unacknowledged/failed write requests.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
The same logic can as well be used for translog pruning (#3766 ) on lower levels once we have decided upto what sequence number should the translogs be purged.

Using the above information, we can create a reverse map and use the same to find the translogs that needs to be fetched. This way we can avoid reading the unacknowledged/failed write requests.

I think reading the unacknowledged/failed write requests is fine. But we should not lose the acknowledged writes.

Using the above information, we can create a reverse map and use the same to find the translogs that needs to be fetched. This way we can avoid reading the unacknowledged/failed write requests.

I think reading the unacknowledged/failed write requests is fine. But we should not lose the acknowledged writes.

That's correct. We, however, should make sure that the sequencing happens correctly not leading to inconsistent state.


fix: redux state mutations in reducers

For details see #21
I am sorry for the large diffs, but the code style in previous version seems to be inconsistent with .prettierc

Bonus points if you can add some simple reducer unit tests for the two you've touched. Some simple examples here: https://medium.com/@netxm/testing-redux-reducers-with-jest-6653abbfe3e1
Our test pattern is a side-by-side file:
viewport.js --> viewport.test.js Something like:
import reducer from './viewports.js'
import * as types from './../constants/ActionTypes.js'

describe('viewports reducer', () => {
  it('should return the initial state', () => {
    expect(reducer(undefined, {})).toEqual({
      activeViewportIndex: 0,
      layout: {
        viewports: [
          {
            height: '100%',
            width: '100%',
          },
        ],
      },
      viewportSpecificData: {},
    })
  })
})

Hey, Danny, thanks for the prompt review.
Indeed, as you see, screwing up the state is very easy, especially for an external contributor, who may not necessarily understand the layouts of all objects (plus there are no typings).
I think that for more robust and maintainable redux implementation it is essential to introduce ES6 spread syntax for both, array and object literals.
Please take a look at the new implementation. I've added redux-testkit (immutability checks + other goodies), babel plugin for object spread, and sprinkled some lodash. This results in a significant reduction of the complexity of reducers.
I am not sure if I get the workings of the "extensions" reducer right. Please check the tests carefully to verify that my understanding corresponds with the requirements.
I did not add SERVERS:: and EXTENSIONS:: prefixes in action names. Me, personally, I have no problem with that, but I think this change could break other downstreams.

I really like how redux-teskit reads. I think adding a link to it's docs in a contributing section would be useful for new users. Thank you for your work, and for going above and beyond with this PR ^_^

Thanks @dannyrb.
As a downstream, my goals for this PR are
(1) to fix a bug with mutating reducers
(2) to enable redux-immutable-state-invariant in our repo (which errors out on OHIF reducers for now) to check our own reducers
I feel like we deviated from this line quite a bit. :)
Let me know what's the best way to proceed.
We can fix the servers reducer later on, it's not a biggie at least for me. We don't use multiple servers simultaneously as of right now.

Good points, @ivan-aksamentov.
I'll take a harder look when I start my day and get this merged. Thanks for the additional help, sorry for keeping you around a little longer than I had a right to for this one ^_^

Everything here looks good and like the current functionality is preserved. Love the improvements. Thank you, thank you, thank you for taking the time to contribute back @ivan-aksamentov ^_^

@allcontributors please add @ivan-aksamentov for some high quality code and tests


can ludwig use to estimate time of arrival (eta) ?

the ludwig looks good, and I want to know how to use ludwig to estimate time of arrival (eta), many thanks.

This discussion is better done on Gitq, please reopen it there. (the short answer is yes, you just need to use a numerical output feature).


Things to add to Dockerfile

Several things were suggested in clawpack/doc#141, but not yet implemented.  I'd be happy for some help from someone who knows Docker better than I do for the best way to install some of these...

[x] vim
[ ] lapack
[x] plotly
[x] six
[x] hdf5
[x] h5py

I added vim and plotly in #2.
It seems that six and h5py were already installed as part of the conda distribution, maybe someone can check if this means hdf5 is fully functional as well?
I would think lapack is installed for numpy, but haven't looked into this yet.

To check hdf5, just try to
import clawpack.pyclaw.io.hdf5

(or run the pyclaw tests)

hdf5 and h5py works for me.

I just installed lapack-dev via
apt-get install liblapack-dev

to the docker image and the multi-layer test now passes.  Should I do a PR for this and finish up the above list?

Oh, I forgot to actually test plotly, unchecking.


compose 'done' event

I'm currently in a situation where i would need to know when the compose element is done with processing the instruction.
I would like to be able to do something like:
<compose done.delegate="composeDone()"></compose>

The composeDone function would get called when everything is loaded and the element is displayed.
It would allow me to show a loading indicator while some compose elements on the page are still loading.
I am seeing a not insignificant FOUC when paginating through a repeat that has a <compose> within it.
So i would like to hide the repeat or show a loading until the compose is finished with it.
The fix would be quite easy , it would just be dispatching an event in this function :
https://github.com/aurelia/templating-resources/blob/master/src/compose.js#L131
So it would be :
function processInstruction(composer, instruction){
  composer.currentInstruction = null;
  composer.compositionEngine.compose(instruction).then(next => {
    composer.currentBehavior = next;
    composer.currentViewModel = next ? next.executionContext : null;
    composer.element.dispatchEvent(new Event("done"));
  });
}

I've tested it, it works great, and I would love to submit a PR for it.
just wanted to get an opinion on the naming of the event.
I've named it done now, any suggestions for a different name ? or is done ok ?

Actually what would also be good is to have a start event so i can detect when a compose is going to start loading and show a loader until it is done, and it would be good to know where each event is coming from.
So this would be better :
function processInstruction(composer, instruction){
  if(composer.element) composer.element.dispatchEvent(new CustomEvent("start",{"detail":this}));
  composer.currentInstruction = null;
  composer.compositionEngine.compose(instruction).then(next => {
    composer.currentBehavior = next;
    composer.currentViewModel = next ? next.executionContext : null;
    if(composer.element) composer.element.dispatchEvent(new CustomEvent("done",{"detail":this}));
  });
}

Again not sure about the naming of start and done.

@Aaike have you had a chance to try this solution out?  I remember something like this coming up in the gitter in the past.
What would be the behavior when there is nested composition- ie the template being composed has it's own compose element, or a repeat, and so-on.

Correct, it is when using compose inside a repeat.
I have created a list-composer and a paginator that you can use to paginate through the total items of the repeat. the repeat has a compose in it that pulls in other VMs.
So every time i switch a page it composes 12 items.
When doing that there is about 1-2 seconds where you only see the grid's container , no items within. And that is because the compose is still working.
With the adjustment i showed above i can hide the grid while the compose is still working and show a preloader.
I have it working in a website that i'm making but haven't abstracted it to a skeleton nav so the bug can be shown.

We could probably add these events. The naming probably needs to be more specific though. Maybe "compose-start" and "compose-complete" perhaps? Also, there are some other improvements I'd like to add to composition in the future that are somewhat related, but this might be a decent temporary solution. I need to think on it a bit more.

I think I'm having the same problem. There is some code that I need to run when everything is loaded. So I just hooked up to the attached() method. But it seems this method is called before the composed views are actually loaded.
So I guess having a way for the 'parent' model to know when all the composed views are already rendered would be really nice. For now I will just workaround it by having the html inline instead of using

any update on this?
I have a repeat.for with compose element inside and need to wait until all compose elements activate.

We are planning some improvements for this for Beta 2. I really want to get it done sooner than later, but it will probably be a few weeks out.

@Aaike my workaround for this is adding a compose.ref="composer"
and then using this on a loader element:
if.bind="composer.currentController || !composer.currentController.isBound"

Does the latest aurelia release help with this issue?

so can we expect the events "compose-start" and "compose-complete" to be implemented?

Liefcycle is as follows:

ctor
created
bind

(wait for asynchronous binding/composition to complete)

attached

(wait for something to remove the component)

detached
unbind

@EisenbergEffect I'm not sure I understand how that lifecycle helps with this problem? I am in the same boat where I need to know when a repeat.for over compose elements is done with attaching the DOM elements. Is there still no way to do this (except maybe using a bindable notifier in the composed elements that runs on attached)?

There are a couple of approaches you could take. Can you show some sample markup?

parent.html
<template>

      <compose repeat.for="item of items" view-mode="${item.viewModelPath}">
      </compose>

</template>

I want the parent component to know when all of the compose elements have attached and are in the DOM so I can do things like measure the height of the #container element.

What would you expect happen if you added/removed items from the array at a later point in time?

@EisenbergEffect
Probably some kind of changed event would fire, maybe something like a repeat.for.change delegate. My first attempt at dealing with this whole issue was flushing the microtaskqueue, which I expected to work. If this worked the way I expected, I could use it for the initial collection load as well as any changes.

Any plans to implement this? Or any other way to implement this other than chaining queueTask's until the modelView in the compose is available?

I also require a solution for this.
I have a modal dialog that looks something like this:

  <compose view-model="./my-compose" model.bind="myData"></compose>

The my-compose view peforms some asynchronous loading on activate based on the passed myData. I need a way in the parent component to wait until the loading is done before I display the dialog.

@EisenbergEffect I can take it. If you think this is not redundant just reopen the issue.


add kafka container demo

From my expereince to integrate Kafka with Elasticsearch in your setup  you'd typically use Logstash as the intermediary. Logstash would act as a consumer of Kafka messages process or transform them and send the processed data to Elasticsearch.

[ ] Add Kafka profile  to the compose yaml file examples.yml


remove hash from redirectUrl

https://github.com/SolidOS/solid-logic/issues/60

NSS tested locally with Watch (including PR in solid-logic
Issues seems resolved.


Only fetch a single user when performing operations in the OktaRepository

Currently, many single user-based operations in LiveOktaRepository list out all users and search by username for the correct one. (updateUser, reprovisionUser, updateUserPrivileges, etc.) This is due to a gap in the Okta SDK that only allows getUser operations to be performed with a userId, not a username or login. It's a much more expensive call than we require, but it's the only way in the SDK to get a user's information from their username.
But! There's hope! The Okta API does offer the ability to look up users by their login. In SimpleReport, a user's login is always their email address, so we can use this direct API call to find users. Then, once we have the userId from this request, we can call _client.getUser(userId) (this is done frequently in LiveOktaAuthentication.)
This will require us to make a direct REST request to the Okta backend, but again there is precedent for this in LiveOktaAuthentication.
If for some reason this REST request fails, we can always fall back to the lookup via list operation, but this should hopefully save us from making that more expensive call most of the time.

This ticket is still valid; it's an optimization that would potentially speed up most of our Okta related operations.

This is now a method available in the Okta SDK! Should be able to fix without needing to call the REST API directly.
https://developer.okta.com/okta-sdk-java/development/apidocs/index.html?com/okta/sdk/resource/user/class-use/User.html

This might be fixed with the Okta update to 10.x.x (#5065). There's still no utility for getUser(email), but the listUsers call does have an optimization to use the search parameter instead of query, which should be more efficient.

This has been resolved by #6418 . Okta's getUser api allows both email and user id


MAINT: improve error with SMILES

The error message when processing conventional SMILES strings can be confusing, as observed at:
https://github.com/marrink-lab/polyply_1.0/issues/390#issuecomment-2455472121

For cases like that where there are no polymeric fragments (i.e., no use of braces), this patch improves the error message (and adds a test for it) to nudge the user to BigSMILES or CGSmiles formats.

I pushed a commit that attempts to resolve the first round of review comments.
Also, I noticed that test_syntax_errors wasn't actually verifying that the error message strings matched, so I went ahead and fixed that by using the canonical match=.. syntax, and that now correctly enforces match error strings (I fixed one small issue that slipped through previously because of this).


test: Fix graceful termination test flake

The graceful termination test apps [1] are updated to fix a flake. Specifically, added read and write deadlines while making socket calls on the server side. This way the server doesn't block on the socket calls when SIGTERM event is received on termination.
While at it, also updated the test logic to validate that connectivity between client and server is intact at least for the configured terminationGracePeriodInSeconds duration.
Ran the test locally a few times, and it passed every time.
[1] https://github.com/cilium/graceful-termination-test-apps
Signed-off-by: Aditi Ghag<EMAIL_ADDRESS>Fixes: https://github.com/cilium/cilium/issues/18045

test-only --focus="K8sServicesTest.Checks graceful termination of service endpoints" --k8s_version=1.22 --kernel_version="419"

test-only --focus="K8sServicesTest.Checks graceful termination of service endpoints" --k8s_version=1.22 --kernel_version="419"

test-only --focus="K8sServicesTest.Checks graceful termination of service endpoints" --k8s_version=1.22 --kernel_version="419"

test-only --focus="K8sServicesTest.Checks graceful termination of service endpoints" --k8s_version=1.22 --kernel_version="419"

4/4 Jenkins runs passed.

test-1.22-4.19

test-1.22-4.19

test-only --focus="K8sServicesTest.*" --k8s_version=1.22 --kernel_version="419"

test-only --focus="K8sServicesTest.*" --k8s_version=1.22 --kernel_version="419"

FYI the failing test K8sServicesTest Checks service across nodes Tests NodePort BPF Tests with direct routing Tests NodePort should now be quarantined based on #18051 due to the high incidence of recent failures in the tree. You would need to rebase to pick up the quarantining of that test.

test-only --focus="K8sServicesTest.*" --k8s_version=1.22 --kernel_version="419"

The latest push only contains the reverted commit that quarantined the test (this PR fixes the test).

test-only --focus="K8sServicesTest.*" --k8s_version=1.22 --kernel_version="419"

@cilium/ci-structure wasn't covered with an approving review. I'll review now.

test-only --focus="K8sServicesTest.*" --k8s_version=1.22 --kernel_version="419"

test-only --focus="K8sServicesTest.*" --k8s_version=1.22 --kernel_version="419"

test-only --focus="K8sServicesTest.*" --k8s_version=1.23 --kernel_version="49"


Restore the setup node resgistry-url

During the migration to pnpm the registry-url parameter of the Node set up step was removed. This pull request restores it.

coverage: 100.0%. remained the same
when pulling 7e0c91e1086ea444c071d5e6c0398970cc926108 on restore_registry_url
into e07579db47ba28116e515795c706954d5779a09a on master.


ACT-713 Research IPTT report in MC repo

Marking this card as done since this was a research issue.


Remove redundant React code

Problem Statement
Currently, there is a lot of redundant code present in the React files.
Proposed Solution
It would be great to remove the unnecessary code from one file at a time to keep the code clean. It would also help to format the code correctly and follow the same styling throughout the files (lint).

@jashmehta3300, can you assign me this issue? I would like to work on it.

@jashmehta3300 , Please review the above pull request. Thank You.

@jashmehta3300 , can you please review the pull request?

Hi @sricharan200,
Thank you for submitting a PR! I have reviewed it and left a couple of comments. In general, I think there are 2 issues:

You have imported non-existent CSS files which are breaking the frontend code.
You are replacing in-line styles with custom classNames but I don't see those styles being implemented anywhere.

I would recommend that you look at the scripts folder which has a script to run the code locally. That way you will be able to verify if the code is breaking or not, and if styling is consistent before and after changes.
Additionally, we have a demo video to setup MartianBank at: https://video.cisco.com/detail/videos/outshift-by-cisco/video/6334089243112
Thank you.


sesman: do not hardcode Xorg/X11rdp/Xvnc executables

In RHEL and its clones, /usr/bin/Xorg is set suid-root. To execute
Xorg with user privileges, /etc/pam.d/xserver needs be edited [1],
or suid bit of Xorg binary needs to be dropped.
In order to keep Xorg and /etc/pam.d/xserver untouched, preparing
non-suid version of Xorg as /usr/bin/Xorg.non-suid for example is
the simplest solution. However, Xorg.non-suid cannot be executed
since it is hardcoded to execute Xorg in sesman.
This change makes more flexible to execute Xorg with non-standard
name or not in PATH environment variable.
[1] https://www.centos.org/forums/viewtopic.php?t=21185

What do you think of my idea?  This change will destroy compatibility of sesman.ini.
sesman.ini needs to contain param0=X[11rdp|vnc|org] parameter  after this change.
The motivation of making this change is because I don't want to change anything installed by other packages.

+1
I like this and I even thought about using a script, like startwm.sh but something like startdisplay.sh
With this configurable, someone can always do that.
I don't think that backward compatible is as important anyway, we can default param0 if it's not in the file.

we can default param0 if it's not in the file.

sounds good.


Buildah bud ignores Dockerfile non-keywords by default

Description
A Dockerfile with lines containing syntax errors - lines starting with non-keywords - does not cause an error and halt the build. Instead it skips the offending line.
Also I think a simple change of setting ignoreUnrecognizedInstructions to false is not the fix.
i.e. that would have the same effect as commenting out:
//      if !b.ignoreUnrecognizedInstructions {
//              logrus.Debugf("+(UNIMPLEMENTED?) %#v", step)
//              return nil
//      }
But this means that the error output is too verbose because there is no check for log-level.  We probably need to have a if !debug type of check and just output a simple "Buildah Error: unknown instructions: "
Steps to reproduce the issue:

Create a Dockerfile that has commands that need to be run without the RUN keyword at the start. Or a file to be copied without the COPY keyword.
buildah bud .

Describe the results you received:
Build finishes fast. No instructions are executed. All skipped.
I received empty images because dnf commands were not getting run.
Describe the results you expected:
Build error: Unknown instruction: DNF
Output of rpm -q buildah or apt list buildah:
Built from HEAD

Output of buildah version:
buildah version 0.8 (image-spec 1.0.0, runtime-spec 1.0.0)

Output of cat /etc/*release:
Fedora release 27 (Twenty Seven)

Output of uname -a:
Linux localhost.localdomain 4.13.9-300.fc27.x86_64 #1 SMP Mon Oct 23 13:41:58 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

Output of cat /etc/containers/storage.conf:
# storage.conf is the configuration file for all tools
# that share the containers/storage libraries
# See man 5 containers-storage.conf for more information

# The "container storage" table contains all of the server options.
[storage]

# Default Storage Driver
driver = "overlay"

# Temporary storage location
runroot = "/var/run/containers/storage"

# Primary Read/Write location of container storage
graphroot = "/var/lib/containers/storage"

[storage.options]
# AdditionalImageStores is used to pass paths to additional Read/Only image stores
# Must be comma separated list.
additionalimagestores = [
]

# Size is used to set a maximum size of the container image.  Only supported by
# certain container storage drivers.
size = ""

# OverrideKernelCheck tells the driver to ignore kernel checks based on kernel version
override_kernel_check = "true"

I don't mind trying to fix this one. I just need to understand or be shown how to effectively handle log-level checking in some other part of the code. I'm going to sniff around and see if I can see how it's done elsewhere.

May want to check the log-level and change the output for simple error.
Something like 👍 func (b *Executor) UnrecognizedInstruction(step *imagebuilder.Step) error {
if b.ignoreUnrecognizedInstructions {
logrus.Debugf("+(UNIMPLEMENTED?) %#v", step)
return nil
}
if logrus.GetLevel() == logrus.ErrorLevel {
return errors.Errorf("Unknown instruction: %v", step.Command)
} else if logrus.GetLevel() == logrus.DebugLevel {
logrus.Debugf("Unknown instruction: %#v", step)
return errors.Errorf("Unknown instruction: %#v", step)
} else {
return errors.Errorf("Unknown instruction: %#v", step)
}
????
}

@ipbabble Open a separate PR


[Feature] Add Land Area Calculator

Description
The Land Area Calculator is designed to compute the area of land plots using different shapes and measurements. It allows users to select a shape (e.g., rectangle, triangle, circle), input the necessary dimensions, and receive the calculated area. The calculator is useful for property owners, real estate agents, surveyors, and anyone needing to determine land areas accurately.
Screenshots
Here we can find 3 shapes area

Checklist

[X] I have checked the existing issues.
[X] I follow Contributing Guidelines of this project.
[X] I am a GSSOC'24 contributor.
[ ] I am a IWOC'24 contributor.
[ ] I am a JWOC'24 contributor.
[ ] I am a SWOC'24 contributor.

Code of Conduct

[X] I agree to follow this project's "Code of Conduct".

This is just calculating area, which 2D Shapes Calculator is also doing @Damini2004


Get a JSON definition file

I @marcgibbons,
is there any way to retrieve a Swagger definition JSON file out somewhere?
I'm asking as I would like to use it to generate a Js Client library.
Thanks in advance
Teone

Anybody?

You'll probably need to wait until https://github.com/marcgibbons/django-rest-swagger/issues/250 is done as the current Swagger UI at http://editor.swagger.io/#/ seems to only support version 2.0.
But you can retrieve the definition by clicking the Raw button next to any endpoint in the docs. Or look at https://github.com/marcgibbons/django-rest-swagger/blob/0.3.4/rest_framework_swagger/views.py#L140 and call that manually.

Thanks @soulseekah,
I've used fetch-swagger-schema to programmatically retrieve the schema, and swagger-js-codegen to generate the APIs.


roscpp_core: 0.6.11-0 in 'kinetic/distribution.yaml' [bloom]

Increasing version of package(s) in repository roscpp_core to 0.6.11-0:

upstream repository: git@github.com:ros/roscpp_core.git
release repository: https://github.com/ros-gbp/roscpp_core-release.git
distro file: kinetic/distribution.yaml
bloom version: 0.6.6
previous version for package: 0.6.9-0

cpp_common

No changes

roscpp_serialization
* replace reinterpret_cast with memcpy to avoid undefined behaviour/alignment issues (#83 <https://github.com/ros/roscpp_core/issues/83>)

roscpp_traits

No changes

rostime
* argument to boost microseconds must be integral for Boost 1.67 and newer compatibility (#79 <https://github.com/ros/roscpp_core/issues/79>)
* remove empty destructor of TimeBase (which makes TimeBase, Time and WallTime trivially copyable) (#82 <https://github.com/ros/roscpp_core/issues/82>)

Holding for kinetic sync

Sync is out


GH-15110: [R] [CI] Windows build fails in packaging job

Add new dependencies to windows builds following #14235

Closes: #15110

@github-actions crossbow submit r-binary-packages

@github-actions crossbow submit r-binary-packages

This seems to be the correct fix for the issue but I don't think #14235 or the follow up #15075 are the cause (even if they would be my first guess too)  as the R win  4.2 checks were green as recent as a0d16306229fc08f9dc64361f9459806e02b5932 and only started failing with aac30873fd9b112d236a7359fcc8a60f04ebfead (on merge, within the PR the check was green...) the rtools version used is unchanged  and so is the runner image, so I am unsure what could have caused the change?
I'll test this for HEAD and this PR locally.

Ah yes, sorry I should have updated the description here with that info too. Agreed that that PR is likely not the root cause, but something upstream in mingw dependency land


Typescript is inferring, even if there is an error. Something weird.

I would like to infer the return type of a function as value of a constant object.
The other keys of the object might not be functions.
Therefore I created a type like this:
type MyKeys = 'one' | 'two';

const MyConstObj = {
    one: ():'MyConstantTypeAsString' => {
        return 'MyConstantTypeAsString';
    },
    two: 2
} as const;

type MyType<T extends MyKeys> =
    T extends keyof typeof MyConstObj ?
    typeof MyConstObj[T] extends (...args:any) => any ?
    ReturnType<typeof MyConstObj[T]> :
                // ~~~~~~~~~~~~~~~~
    unknown :
    unknown;

export const myvar_a:MyType<'one'> = 'Something wrong';

export const myvar_b:MyType<'two'> = 'Something else';

Typescript give me an error on
ReturnType<type MyConstObj[T]>

// Type '{ readonly one: () => "MyConstantTypeAsString"; readonly two: 2; }[T]' does not satisfy the constraint '(...args: any) => any'.
//  Type '(() => "MyConstantTypeAsString") | 2' is not assignable to type '(...args: any) => any'.
//    Type 'number' is not assignable to type '(...args: any) => any'.

Since I am using:
typeof MyConstObj[T] extends (...args:any) => any ?

why typescript still doesn't allow me to use it in ReturnType?
Even tho it seems it can correctly infer the types:
if you over on myvar_a the type is inferred correctly. Also myvar_b has the correct type.
Compiler Options
{
  "compilerOptions": {
    "noImplicitAny": true,
    "strictNullChecks": true,
    "strictFunctionTypes": true,
    "strictPropertyInitialization": true,
    "strictBindCallApply": true,
    "noImplicitThis": true,
    "noImplicitReturns": true,
    "alwaysStrict": true,
    "esModuleInterop": true,
    "declaration": true,
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "target": "ES2017",
    "jsx": "react",
    "module": "ESNext",
    "moduleResolution": "node"
  }
}

Playground Link: Provided

You can make this work if you rearrange the types a bit:  TypeScript Playground
I don't know if it's a bug.

It looks like this is a question rather than a bug report. This issue tracker is for tracking bugs and active work on TypeScript itself, rather than a general forum for programmers using TypeScript to get help or ask questions.
You can ask questions on sites like Stack Overflow. We are not able to provide one-on-one support on the issue tracker. Please read the issue template carefully - it has important information on what kinds of reports can be acted on here, as well as links to useful TypeScript resources. Thanks!
To expedite the triage process, we need everyone to follow the issue template and instructions.
When you clicked "Create New Issue", the issue form was pre-populated with a template and some instructions. We need you to read those instructions completely, follow them, and then fill in all the fields in that template.
We are not able to assist with issues that don't follow the template instructions as they represent a significantly larger amount of work compared to issues which are correctly specified. Thank you for understanding.

@RyanCavanaugh yes, sorry. It seems a bug to me, because it is working and giving an error at the same time.


If SUITE_NAME is not specified, default to bundler2

This branch inverts our current default testing behaviour to use bundler2 by default since it is the latest release.
This mostly impacts developer workflows where it is anticipated they won't set the SUITE_NAME flag unless specifically testing a bunder 1-specific change.
This will have no affect on CI but just sets the expectation that in future, the builder1 CI build is a regression test and all new work will focus the latest release.

Seems like that composer spec fails intermittently so probably fine to ignore until we fix it