Unable to edit rke2 cluster: 500 error on /v1/policy.podsecuritypolicies

Setup

Rancher version: v2.7-head (cca09e4)
Browser type & version: chrome

Describe the bug

when trying to edit an existing rke2 cluster, user gets an error data: EOF. Looking at the console, there is a 500 error for v1/policy.podsecuritypolicies (response: EOF)
To Reproduce

create an rke2 cluster (tested with k8s v1.25)
after the cluster is active, edit the cluster config
Result
user cannot edit cluster
Expected Result

all users with cluster owner scope should be able to edit the cluster.
Screenshots

Additional context

this is not an issue on 2.7.2-rc4
only happens when editing config, not yaml

@cnotv Can you take a look?

This is caused by https://github.com/rancher/dashboard/issues/7553
There's an issue with the response from the server in case of missing PSP, as it should not return for sure 500, but it should not return error either, as it's meant to be an empty list.
Said that, we already have these filters in place, so we need to understand which case needs still to be excluded:
 if (this.mode !== _CREATE && !this.isK3s && this.value.state !== 'reconciling')

@cnotv , we will look into back-end issue but meanwhile I'm seeing this happening on RKE2 clusters while they are in "Provisioning" or "Updating" state following initial creation. This will be tricky with "Updating" state as already created cluster will go into "Updating" state - so we can't simply skip the check if the cluster is in "Updating" stage.
Also, returning 0 when querying PSPs for unavailable cluster is not the right thing as this could be interpreted as confirmation there are no PSPs there while in fact the answer is "we don't know" which API telegraphs as HTTP code 500.

@snasovich
If we are not able to know, we'll just get 500 every single time we open the config editor. It's probably something we do not want to have in place.
About the UI: as I have been already covering some cases, it would be convenient to maybe identify all the remaining one.
Provisioning and Updating states include also changes to the cluster.
Is not the PSPs generated before Provisioning?

@cnotv , thinking more about this, maybe it's possibly to update logic to handle it slightly differently.
Currently, it looks like the request to get PSPs completely blocks "Edit Cluster" screen from being shown until it's completed. However, my understanding is that we only need to know if PSPs exist for the purpose of showing a warning when k8s version is changed from <=1.24 to >=1.25. So, could we send this request only on such dropdown change and if it fails/timeouts, show a more generic warning along the lines of "Unable to check whether PodSecurityPolicy resource(s) exist in this cluster. Pod Security Policies are not available in Kubernetes v1.25 and will be automatically removed if they exist.“. If the call succeeds and returns 0 elements - no warning, if returns >0 elements - show the already implemented warning.
cc: @kwwii @nwmac @jiaqiluo

@nwmac @richard-cox any hint on how to don't break out app with a 500 response at every edit? In this comment they said to keep it like this.
Try/catch seems not working in our architecture, so I ask before tear things apart and not to correct in the PR.

A try/catch block should work when dispatching a request action. I think the section is this one, which needs an await
        try {
          return this.$store.dispatch('cluster/request', { url });
        } catch (error) {
          // PSP may not exists for this cluster and an error is returned without need to handle
        }

🤦

/backport v2.7.2

tested on 2.7-head (23074b5):

editing rke2 cluster via config -> no 500 error -- pass
edit rke2 via yaml -- pass
edit rke1 via config -- pass


py server param handling

Hi!
This is the crazyflie python server with parameter handling as discussed in #44.
It checks the parameter framework and checks if there are any assigned first in crazyflie_server (firmware_params) then in crazyflie_types (crazyflie_types. (...) .firmware_params) and then in crazyflies (crazyflies. (...). firmware_params). So the parameter handling gives the priority order like this:

individual parameter crazyflie parameters
Crazyflie types parameters
Crazyflie server parameters.

Then it converts all the remaining crazyflie parameters to ROS parameters, for now only at startup but I want to add dynamic parameter changing to it as well in the next commits.
Some questions related to this draft PR for @whoenig:

It seems that the ROS2 parameter structure uses dots for paramters instead of dashes so I keep that constant. However, the cpp version of the crazyflie servers uses dashes. What shall we use within Crazyswarm
For dynamic updating the Crazyflie parameters, do we still want to keep the priority list, or change it regardless? For instance, if one crazyflie has stabilizer.controller = 2 at startup but while the node is running, we change the firmware.stabilizer.controller to 1, should all crazyflies regardless of their startup yaml values update the controller to 1?
(Edited) For dynamic updating, do we want to also check for crazyflie parameters updates too or keep the ros2 parameter framework as master. get_value of the cflib is giving some thread handling issues though.

Also currently I'm initializing the node with  allow_undeclared_parameters=True,    automatically_declare_parameters_from_overrides=True,, which is the only way to work with undeclared parameters at this point. Another way is to access the self._parameters property of the node, which doesn't seem like it should be touched either... Not ideal but perhaps okay for now to keep using those flags, I guess they haven't removed those for a reason.
(btw, the commits are suggesting that I worked on this 4 days ago, but I had to rebase it all on the name changes recently :) been working on this for a bit longer than that. )

I would prefer to use whatever is the ROS2 standard. Even in the C++ server it currently seems to be a mix, which I believe I was forced to use because ROS2 itself was inconsistent. For example, declaring parameters uses / (https://github.com/ros2/rclcpp/blob/b953bdddf8de213b4a051ecf2d668dad65ff9f89/rclcpp/test/rclcpp/test_node.cpp), while these overrides required a dot (I can't find an official example at the moment for this.)
In the C++ version we only declare /params//, so it is basically impossible to update using the same hierarchy.
Not sure what you mean exactly. Do you mean if we should request the latest value occasionally or return the local copy we have?

hmmm... alright, in that case I'll make it similar to what it looks like in the cpp link, namely with dashes, and once ROS2 has stabilized their ecosystem on this matter we can change it again
Ahh yes that is different. Right now I just also publish the firmware values per type and server, this makes more sense.
I guess if there is anything within the crazyflie firmware  that changes a parameter that the node will change it accordingly with the ROS2 param framework. Perhaps somebody has an app layer application that sets a parameter internally. However, this might be too much of an corner case to consider.

Hmm this discussion now says that the '.' format is the more common... https://github.com/ros2/geometry2/issues/286
Maybe I should just go ahead and post this on ROS.answers.org, as there is no clear answer on this

But in the mean time, I've tried to make it similar to the crazyflie cpp server now.

I updated it to the latest main and tested it on 2 stationary crazyflies (but its parameters anyway).
The only thing is that the original /robots /all_robots and /robot_type (with the dots) still remain in the parameter list and no clean way to remove them for now. I have some ideas to investigate for future PRs but at least this already works pretty good.
Anyway, let me know what you think! it is ready for merging if it looks good to you.

Oh yeah I got merge rights now! I'll merge it myself now it has been approved. Next up, logging!


Cache graphiql.html

In GraphiQLController the graphiql.html is reloaded from file each time.
Would be better to cache it imo.

👍


Counter should be hidden when is empty

.counter:empty {
  display: none;
}

Inspired by: http://getbootstrap.com/components/#self-collapsing

tracking this over here https://github.com/primer/navigation/issues/1


Remove ezSQL, use PDO

Work in progress
Todo:

[x] remove ezSQL, use PDO functions with the Aura.SQL wrapper lib. Woot.
[ ] make all \YOURLS\Database\YDB properties protected
[ ] write ezSQL compatible functions ($ydb->get_results() and such), mark them deprecated
[ ] rewrite all SQL queries to use PDO
[ ] pay attention to all @todo and @tempnote left in the process

This is not related to PDO, but for the lulz, option function logic was moved to its own class, to leave very simple wrapper functions instead.
In the end, next to /includes/vendor, we should have /includes/YOURLS with a few classes for most complex functions
Regarding wrapper functions vs class functions
The idea is to :

make wrapper functions as small & concise as possible
keep the complex logic (validation, tests...) out of sight, in the class
keep return filters inside wrappers
move internal filters / actions in the class

Typical yourls_ function eventually, in /includes/functions*.php :
function yourls_do_stuff($var) {
    // Allow plugins to short-circuit options
    $pre = yourls_apply_filter( 'shunt_wrapper_for_stuff', false, $var );
    if ( false !== $pre )
        return $pre;

    global $ydb;
    $value = \YOURLS\Do\Stuff($ydb, $var, $bleh);

    return yourls_apply_filter('do_stuff', $value);
}

PDO functions with the Aura.SQL wrapper lib

Why choosing Aura.Sql? 😉

all SQL queries to use PDO

Actually this is why I don't understand your changes: since we're talking about database wrappers refactoring, why not abstracting queries and objects? Then the code could be fully independent of the driver.

move internal filters / actions in the class

You're moving to decorators and observers, right?

@Leo :

Aura.SQL: well, why not. I looked into Doctrine and DBAL, I didn't wanted to add 800 KB of files for features I won't use, I even considered just using plain PDO, but found that Aura has a minimal set of interesting features to make things easier. It's merely PDO + just a few extra things.
Abstraction : at the moment, I'm focusing on making something fully compatible with the existing code to make sure no 3rd party stuff (plugins, public shorteners, whatever tool using YOURLS) will break. So basically I want all the old $ydb->get_row() or any other ezSQL legacy function work (albeit throwing a "deprecated" notice). Then I'll rewrite all YOURLS queries, in particular using PDO binding : at this step yes abstracting things would be nice, although I didn't really think about it yet. If you have any idea or POC on how it could be intelligently done, I'm all ears :)
Decorators and observers: I have no idea what you're talking about... Again, any code piece to illustrate what you mean is welcome.

All unit tests pass, f* yeah.

C'est pas facile de bosser avec toi en collab', j'aurai bien aimé relire avant la merge ! 😉

@LeoColomb arf désolé je pensais pas que tu suivais :)


Allow disabling filter input for selection prompts

Is your feature request related to a problem? Please describe.
Vim mode doesn't work quite well with the input component due to the override of hjkl keys.
For small menus where input filtering is not necessary, it might make sense to disable input altogether to provide a better experience for those who want to use hjkl and don't expect/need to write something.
Describe the solution you'd like
Configuration like .without_filter_input() or something

Fixed by #203


feat: add MDX support for easier React-based blog posts!

Description
This PR introduces the capabilities to use MDX instead of using plain Markdown files for blogging. This should enable more powerful and easier customisability of the blog posts without adding unnecessary hacks to the blog posts.
Fixes #161
Type of change
Please delete options that are not relevant.

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

Closing since this PR became too messy and loads of merge conflicts!


fix: adding back the network host and port to the zeebeGateway config

Which problem does the PR fix?

Related issue: https://github.com/camunda/camunda-platform-helm/issues/1659
What's in this PR?

I'm adding back the network host and port to the zeebe gateway config, and taking out the env vars from the deployment.
Checklist
Please make sure to follow our Contributing Guide.

Before opening the PR:

[ ] In the repo's root dir, run make go.update-golden-only.
[ ] There is no other open pull request for the same update/change.
[ ] Tests for charts are added (if needed).
[ ] In-repo documentation are updated (if needed).

After opening the PR:

[ ] Did you sign our CLA (Contributor License Agreement)? It will show once you open the PR.
[ ] Did all checks/tests pass in the PR?

DO NOT MERGE
Wait for this PR in the zeebe repo to be merged first: https://github.com/camunda/camunda/pull/19132

Removed the env var since this PR will fix the overwrite problems: https://github.com/camunda/camunda/pull/19228

@aabouzaid I want this change to be present only in 8.6 and not 8.5 So do I add this in the alpha folder right?

@hamza-m-masood Exactly.

I remember running the golden files before committing... strange. I will try again

The golden files in the alpha folder are not being updated when running make go.update-golden-only  I will investigate

Ah thanks! I was not aware that you need to specify a variable now.

@hamza-m-masood Try to rebase, we just fixed an issue that could be related to the failed upgrade.

Seems like one pod from the zeebe brokers is failing to start in the alpha upgrade flow

This part of the integration tests in the upgrade workflow is failing:
• Test core functionality of Camunda (./tests/overlay/testsuite-core.yaml)
 	• TEST-Generating-machine-to-machine-token
 		• Tasklist (range=0) FAIL
 		  Testcase "TEST - Generating machine-to-machine token", step #0-0: Assertion "result.statuscode ShouldEqual 200" failed. expected: 200  got: 503 (testsuite-core.yaml:0)
 		• Operate (range=1) FAIL
 		  Testcase "TEST - Generating machine-to-machine token", step #0-1: Assertion "result.statuscode ShouldEqual 200" failed. expected: 200  got: 503 (testsuite-core.yaml:0)
 		• Optimize (range=2) FAIL
 		  Testcase "TEST - Generating machine-to-machine token", step #0-2: Assertion "result.statuscode ShouldEqual 200" failed. expected: 200  got: 503 (testsuite-core.yaml:0)
 		• Connectors (range=3) FAIL
 		  Testcase "TEST - Generating machine-to-machine token", step #0-3: Assertion "result.statuscode ShouldEqual 200" failed. expected: 200  got: 503 (testsuite-core.yaml:0)
 	• helperVenomToken
 		• Get Venom token FAIL
 		  Testcase "helperVenomToken", step #0-0: Assertion "result.statuscode ShouldEqual 200" failed. expected: 200  got: 503 (testsuite-core.yaml:0)
 	• TEST-Interacting-with-Camunda-login-page
 		• Console (range=0) PASS
 		• Keycloak (range=1) FAIL
 		  It's a failure after 4 attempts
 		• Identity (range=2) FAIL
 		  It's a failure after 4 attempts
 		• Operate (range=3) PASS
 		• Optimize (range=4) PASS
 		• Tasklist (range=5) PASS
 		• WebModeler (range=6) PASS
 	• TEST-Interacting-with-Camunda-login-page-Connectors
 		• Check Inbound Connectors PASS
	  	  [info] = Request Method: {{ .value.method }}

I am trying to debug to see why it is failing.

@hamza-m-masood I believe that the fix in Zeebe is not in Alpha3.

I believe that the fix in Zeebe is not in Alpha3.

@aabouzaid Then I am confused on whyi it would work for the main integration flow and not the upgrade.

@aabouzaid
The upgrade flow is working. I am happy for this to be merged. Is this okay with you?

Just realized that the history for this Pr is broken. I'll get it fixed.

@hamza-m-masood, could you please rebase the changes on the main branch?


Overte tutorial, files requiring to be store externally.

Since client entity scripts are not allowed to access files from the local installed directories,
the tutorial needs this external storage for the html of the wizard and for the specialized doppleganger.js module.
This PR will needs to be merged and deployed on more.overte.org
before add the corresponding PR in the overte repository. (detaild will come soon in a comments)

This PR need to be merged and then the repository redeployed on "more.overte.org"
in order to be able to deal with this other PR: https://github.com/overte-org/overte/pull/53
from the overte repository.
There is not too much anything testable for this PR (the real test will be on overte side)
the js and html won't work without this.

Seems to work fine.
The wizard is supposed to turn black once it is finished I assume?

Yes, this is the expected behavior.
Is the avatar viewer works too?

Yes the avatar viewer works.
I noticed that if you jump into the circle, the avatar will be in the air, but I don't think that is much of a concern.


[Backtracing] Add support for looking up paths for auxiliary executables

We need to be able to locate swift-backtrace relative to the current location of the runtime library.
This needs to work:

In a Swift build directory.
On Darwin, where we're installed in /usr/lib/swift and /usr/libexec/swift.
On Linux, where we're in /usr/lib/swift/linux and /usr/libexec/swift/linux.
On Windows, where we may be in a flat directory layout (because of limitations of Windows DLL lookups).

rdar://103071801

This is part of a set of stacked PRs:

PR
Title
Merges Into

apple/swift#63650
[Backtracing] Add support for building target executables into libexec
main

👉
al45tair/swift#8
[Backtracing] Add support for looking up paths for auxiliary executables
apple/swift#63650

al45tair/swift#9
[Backtracing][Runtime][Darwin] Add code to trigger the external backtracer
al45tair/swift#8

al45tair/swift#10
[Backtracing] Add _Backtracing library to the build
al45tair/swift#9

al45tair/swift#11
[Backtracing][Frontend] Add support for implicit import of _Backtracing
al45tair/swift#10

al45tair/swift#12
[Backtracing] Add swift-backtrace to the build
al45tair/swift#11

al45tair/swift#13
[Backtracing][Docs] Add an explanation of the workings of the backtracer
al45tair/swift#12

(Only the bottom PR will be able to run PR checks at any time. Please don't wait for the checks before review.)


Can't login into openunison portal

Hello
I (think) i have openunison integrated with AD but whenever i try to login to openunsion i get 403
2021/11/05 13:21:20 [error] 7#7: *268 directory index of "/var/www/html/" is forbidden, client: <IP_ADDRESS>, server: , request: "GET / HTTP/1.1", host: "openunison.k8s-its.test.salt.ch:32000"
<IP_ADDRESS> - - [05/Nov/2021:13:21:20 +0000] "GET / HTTP/1.1" 403 564 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36" "-"
<IP_ADDRESS> - - [05/Nov/2021:13:21:22 +0000] "GET /nginx-health HTTP/1.1" 200 8 "-" "kube-probe/1.22" "-"
<IP_ADDRESS> - - [05/Nov/2021:13:21:22 +0000] "GET /nginx-health HTTP/1.1" 200 8 "-" "kube-probe/1.22" "-"
[mcostach@itsk8s01-cr-test openunison]$ kubectl get all -n openunison
NAME                                                 READY   STATUS    RESTARTS       AGE
pod/openunison-operator-7cd48b58f4-m9f5j             2/2     Running   1 (126m ago)   126m
pod/openunison-orchestra-76cbd994d4-vhwlv            2/2     Running   0              74m
pod/ouhtml-orchestra-login-portal-55ccc56cc6-vwhpr   2/2     Running   0              71m
NAME                                    TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
service/openunison-orchestra            ClusterIP   <IP_ADDRESS>           443/TCP,80/TCP   74m
service/ouhtml-orchestra-login-portal   NodePort    <IP_ADDRESS>           8080:32000/TCP   71m
NAME                                            READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/openunison-operator             1/1     1            1           126m
deployment.apps/openunison-orchestra            1/1     1            1           74m
deployment.apps/ouhtml-orchestra-login-portal   1/1     1            1           71m
NAME                                                       DESIRED   CURRENT   READY   AGE
replicaset.apps/openunison-operator-7cd48b58f4             1         1         1       126m
replicaset.apps/openunison-orchestra-76cbd994d4            1         1         1       74m
replicaset.apps/ouhtml-orchestra-login-portal-55ccc56cc6   1         1         1       71m
NAME                                  SCHEDULE    SUSPEND   ACTIVE   LAST SCHEDULE   AGE
cronjob.batch/check-certs-orchestra   0 2 * * *   False     0                  74m
I am trying to access openunison portal though a NodePort
I am getting the same result if i curl locally
[mcostach@itsk8s01-cr-test openunison]$ curl <IP_ADDRESS>:8080

403 Forbidden

403 Forbidden
nginx/1.18.0 (Ubuntu)

Thanks for any help

Can you share your values.yaml?

It looks like you're trying to access the service/ouhtml-orchestra-login-portal Service directly.  I'm assuming you made that Service a NodePort?  You're getting that message because you're trying to access a static NGINX pod that just hosts the pages for OpenUnison's portal.  That's not OpenUnison (we separate them out to make it easier to customize).
When trying to login, go to https://network.openunison_host/ (where network.openunison_host is what you used for that value in your values.yaml).  That host should point to your load balancer which in turn forwards to your Ingress controller.

Sorry not sure i quite get it ..
I don't have an LB in front and i am using istio. Is just a validation env right now
Is there a way to test it without that LB?
[mcostach@itsk8s01-cr-test openunison]$ kubectl get virtualservice -n openunison
NAME                   GATEWAYS                           HOSTS                                                                  AGE
openunison-orchestra   ["openunison-gateway-orchestra"]   ["openunison.k8s-its.test.salt.ch","dashboard.k8s-its.test.salt.ch"]   106m
[mcostach@itsk8s01-cr-test openunison]$ kubectl get gateway -n openunison
NAME                           AGE
openunison-gateway-orchestra   106m

I see.  the main issue is that openunison expects to be running on standard ports [80/443].  If you don't have a load balancer in front of your istio deployment, the easiest thing is to patch your istio-ingressgateway to run with a hostPort of 8080 and 443:
kubectl patch deployments istio-ingressgateway -n istio-system -p '{"spec":{"template":{"spec":{"containers":[{"name":"istio-proxy","ports":[{"containerPort":15021,"protocol":"TCP"},{"containerPort":8080,"hostPort":80,"protocol":"TCP"},{"containerPort":8443,"hostPort":443,"protocol":"TCP"},{"containerPort":31400,"protocol":"TCP"},{"containerPort":15443,"protocol":"TCP"},{"containerPort":15090,"name":"http-envoy-prom","protocol":"TCP"}]}]}}}}'

once the istio-ingressgateway pod is running, assuming openunison.k8s-its.test.salt.ch points to a node in your cluster, you should be able to login to openunison through your Istio deployment

Thank you for your time
Still not working it seems it reaches the istio proxy on the  node where openunison pods are running
 [2021-11-05T15:14:29.777Z] "GET / HTTP/1.1" 301 - direct_response - "-" 0 0 0 - "<IP_ADDRESS>" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36" "26704365-0ec5-9d8c-ad7a-4a2d899c2e9d" "openunison.k8s-its.test.salt.ch" "-" - - <IP_ADDRESS>:8080 <IP_ADDRESS>:58323 - -
istio-system           istio-ingressgateway-85c6d5d85f-zn4mm                        1/1     Running     0               16m    <IP_ADDRESS>   itsk8s02-cr-test
NAME                                             READY   STATUS    RESTARTS      AGE   IP              NODE               NOMINATED NODE   READINESS GATES
openunison-operator-7cd48b58f4-qv52b             2/2     Running   1 (29m ago)   29m   <IP_ADDRESS>   itsk8s02-cr-test   <none>           <none>
openunison-orchestra-76cbd994d4-6v2bm            2/2     Running   0             27m   <IP_ADDRESS>   itsk8s02-cr-test   <none>           <none>
ouhtml-orchestra-login-portal-55ccc56cc6-h8hs7   2/2     Running   0             26m   <IP_ADDRESS>   itsk8s02-cr-test   <none>           <none>

But then nothing happens  I see no hit in login portal logs
[mcostach@itsk8s01-cr-test ~]$ kubectl logs ouhtml-orchestra-login-portal-55ccc56cc6-h8hs7 -n openunison | grep -v health [mcostach@itsk8s01-cr-test ~]$
Are these all the components for openunison
`[mcostach@itsk8s01-cr-test ~]$ kubectl get all -n openunison
NAME                                                 READY   STATUS    RESTARTS      AGE
pod/openunison-operator-7cd48b58f4-qv52b             2/2     Running   1 (33m ago)   34m
pod/openunison-orchestra-76cbd994d4-6v2bm            2/2     Running   0             32m
pod/ouhtml-orchestra-login-portal-55ccc56cc6-h8hs7   2/2     Running   0             31m

NAME                                    TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
service/openunison-orchestra            ClusterIP   <IP_ADDRESS>   <none>        443/TCP,80/TCP   32m
service/ouhtml-orchestra-login-portal   ClusterIP   <IP_ADDRESS>   <none>        8080/TCP         31m

NAME                                            READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/openunison-operator             1/1     1            1           34m
deployment.apps/openunison-orchestra            1/1     1            1           32m
deployment.apps/ouhtml-orchestra-login-portal   1/1     1            1           31m

NAME                                                       DESIRED   CURRENT   READY   AGE
replicaset.apps/openunison-operator-7cd48b58f4             1         1         1       34m
replicaset.apps/openunison-orchestra-76cbd994d4            1         1         1       32m
replicaset.apps/ouhtml-orchestra-login-portal-55ccc56cc6   1         1         1       31m

NAME                                  SCHEDULE    SUSPEND   ACTIVE   LAST SCHEDULE   AGE
cronjob.batch/check-certs-orchestra   0 2 * * *   False     0        <none>          32m

`
When i run login chart i get this failure but the pods seems ok
failed to create resource: Internal error occurred: failed calling webhook "applications-openunison.tremolo.io": Post "https://openunison-orchestra.openunison.svc:443/k8s/webhooks/v1/applications?timeout=5s": x509: certificate signed by unknown authority

I will install metalLB and get back with the findings after i have also the LB in front . Thank you again

When i run login chart i get this failure but the pods seems ok
failed to create resource: Internal error occurred: failed calling webhook "applications-openunison.tremolo.io": Post "https://openunison-orchestra.openunison.svc:443/k8s/webhooks/v1/applications?timeout=5s": x509: certificate signed by unknown authority

this usually happens with repeated upgrade/installs of the orchestra charts but doesn't trigger the operator to update the certs.  The easiest way to fix this is to add an annotation to the openunison-orchestra OpenUnison object.  that usually resolves that so you can deploy the orchestra-login-portal chart.

You were right about the certificate.
I've destroyed the cluster and redeployed from scratch with no issues deploying login-portal charts
Now I have metalLb that assigns <IP_ADDRESS> to istio ingress gateway .
I have the dns pointing openunison.k8s-its.test.salt.ch  to <IP_ADDRESS>
I see connection attempt in istio logs
[2021-11-05T18:43:44.571Z] "GET / HTTP/1.1" 301 - direct_response - "-" 0 0 0 - "<IP_ADDRESS>" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36" "b8e59d5e-727a-9d19-8945-b2603f1e3faa" "openunison.k8s-its.test.salt.ch" "-" - - <IP_ADDRESS>:8080 <IP_ADDRESS>:54390 - -
In browser I get  "This site can’t be reached"
I still dont see anything in login-portal  pod
[mcostach@itsk8s01-cr-test ~]$ kubectl logs ouhtml-orchestra-login-portal-55ccc56cc6-5smtc -n openunison | grep -v health [mcostach@itsk8s01-cr-test ~]$
istio sidecar seems ok
`[mcostach@itsk8s01-cr-test ~]$ kubectl logs ouhtml-orchestra-login-portal-55ccc56cc6-5smtc -c istio-proxy -n openunison  | tail -4

2021-11-05T18:40:21.993510Z     info    cache   returned workload trust anchor from cache       ttl=23h59m59.006493746s
2021-11-05T18:40:21.993565Z     info    ads     SDS: PUSH for node:ouhtml-orchestra-login-portal-55ccc56cc6-5smtc.openunison resources:1 size:1.1kB resource:ROOTCA
2021-11-05T18:40:23.437824Z     info    Initialization took 1.600175828s
2021-11-05T18:40:23.437854Z     info    Envoy proxy is ready
`

`[mcostach@itsk8s01-cr-test ~]$ kubectl get pods -n openunison -o wide
NAME                                             READY   STATUS    RESTARTS      AGE   IP              NODE               NOMINATED NODE   READINESS GATES
openunison-operator-7cd48b58f4-kjnhk             2/2     Running   1 (29m ago)   29m   <IP_ADDRESS>    itsk8s02-cr-test   <none>           <none>
openunison-orchestra-76cbd994d4-zfnz8            2/2     Running   0             29m   <IP_ADDRESS>    itsk8s02-cr-test   <none>           <none>
ouhtml-orchestra-login-portal-55ccc56cc6-5smtc   2/2     Running   0             26m   <IP_ADDRESS>   itsk8s02-cr-test   <none>           <none>

[mcostach@itsk8s01-cr-test ~]$ kubectl get svc -n openunison -o wide
NAME                            TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE   SELECTOR
openunison-orchestra            ClusterIP   <IP_ADDRESS>   <none>        443/TCP,80/TCP   29m   application=openunison-orchestra
ouhtml-orchestra-login-portal   ClusterIP   <IP_ADDRESS>   <none>        8080/TCP         27m   app=ouhtml-orchestra-login-portal

[mcostach@itsk8s01-cr-test ~]$ kubectl get endpoints -n openunison -o wide
NAME                            ENDPOINTS                             AGE
openunison-orchestra            <IP_ADDRESS>:8080,<IP_ADDRESS>:8443   29m
ouhtml-orchestra-login-portal   <IP_ADDRESS>:8080                    27m
`

I think istio integration is ok
`[mcostach@itsk8s01-cr-test ~]$ kubectl get gateway -n openunison
NAME                           AGE
openunison-gateway-orchestra   29m

[mcostach@itsk8s01-cr-test ~]$ kubectl get virtualservice -n openunison
NAME                   GATEWAYS                           HOSTS                                                                  AGE
openunison-orchestra   ["openunison-gateway-orchestra"]   ["openunison.k8s-its.test.salt.ch","dashboard.k8s-its.test.salt.ch"]   30m
`

Any clue what to do next ?
Thank you

still dont see anything in login-portal pod
[mcostach@itsk8s01-cr-test ~]$ kubectl logs ouhtml-orchestra-login-portal-55ccc56cc6-5smtc -n openunison | grep -v health [mcostach@itsk8s01-cr-test ~]$

Wrong Pod:
kubectl logs -f -l app=openunison-orchestra -n openunison

Can you post  your values.yaml?  Also, have you deployed Kiali?  With istio I find if i'm running into issues kiali with portforwarding in anonymous mode really helps.

I am not having Kiali after redeploy
On openunison pod i only see this
[2021-11-06 07:24:58,183][XNIO-1 task-4] INFO  AccessLog - [AzSuccess] - k8sidp - https://<IP_ADDRESS>:8443/auth/idp/k8sIdp/.well-known/openid-configuration - uid=Anonymous,o=Tremolo - NONE [<IP_ADDRESS>] - [f9ee877e637f4b22c0781073fae0092599e1e8a7c] [2021-11-06 07:24:58,233][XNIO-1 task-4] INFO  AccessLog - [AzSuccess] - k8sidp - https://<IP_ADDRESS>:8443/auth/idp/k8sIdp/.well-known/openid-configuration - uid=Anonymous,o=Tremolo - NONE [<IP_ADDRESS>] - [fb4ed4cac1304734d260fd4e8c48c531397852806]
Here is the values.yaml file content
network:
  openunison_host: "openunison.k8s-its.test.salt.ch"
  dashboard_host: "dashboard.k8s-its.test.salt.ch"
  api_server_host: "api.k8s-its.test.salt.ch"
  session_inactivity_timeout_seconds: 900
  k8s_url: https://api.k8s-its.test.salt.ch:6443
  force_redirect_to_tls: false
  ingress_type: istio
  ingress_certificate: "ou-tls-certificate"
  istio.selectors: "istio: ingressgateway"
  createIngressCertificate: true

cert_template:
  ou: "Kubernetes"
  o: "MyOrg"
  l: "My Cluster"
  st: "State of Cluster"
  c: "MyCountry"

image: docker.io/tremolosecurity/betas:ou-k8s-1024
myvd_config_path: "WEB-INF/myvd.conf"
k8s_cluster_name: kubernetes
enable_impersonation: false

impersonation:
  use_jetstack: false
  jetstack_oidc_proxy_image: quay.io/jetstack/kube-oidc-proxy:v0.3.0
  explicit_certificate_trust: true

dashboard:
  namespace: "kubernetes-dashboard"
  cert_name: "kubernetes-dashboard-certs"
  label: "k8s-app=kubernetes-dashboard"
  service_name: kubernetes-dashboard
certs:
  use_k8s_cm: false

trusted_certs:
  - name: ldaps
    pem_b64: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURORENDQWh5Z0F3SUJBZ0lRYlJOajZSS3F0cVZQdlc2NXFaeFhYakFOQmdrcWhraUc5dzBCQVFVRkFEQWkKTVNBd0hnWURWUVFEREJkQlJFWlRMa1ZPVkRKTE1USXVSRTlOUVVsT0xrTlBUVEFlRncweE5EQXpNamd3TVRBMQpNek5hRncweU5EQXpNalV3TVRBMU16TmFNQ0l4SURBZUJnTlZCQU1NRjBGRVJsTXVSVTVVTWtzeE1pNUVUMDFCClNVNHVRMDlOTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEyczlKa2VOQUhPa1EKMVFZSmdqZWZVd2Nhb2dFTWNhVy9rb0ErYnU5eGJyNHJIeS8yZ04va2M4T2tvUHV3Si9uTmxPSU8rcytNYm5YUwpMOW1VVEM0T0s3dHJrRWppS1hCK0QrVlNZeTZpbVhoNnpwQnROYmVaeXgrcmRCbmFPdjNCeVpSbm5FQjhMbWhNCnZIQSs0Zi90OWZ4LzJ2dDZ3UHgvL1ZnSXE5eXVZWVVRUkxtMVdqeVVCRnJaZUdvU3BQbTBLZXdtK0IwYmhtTWIKZHlDKzNmaGFLQytVazFOUG9kRTI5NzNqTEJaSmVsWnhzWlk0MFd3OHpZUXdkR1lJYlhxb1RjKzFhL3g0ZjFFbgptNEFOcWdnSHR3K05xOHpoc3MzeVR0WStVWUtEUkJJTGRMVlpRaEhKRXhlMGtBZWlzZ014SS9iQndPMUhickZWCit6U25rK252Z1FJREFRQUJvMll3WkRBekJnTlZIU1VFTERBcUJnZ3JCZ0VGQlFjREFRWUlLd1lCQlFVSEF3SUcKQ2lzR0FRUUJnamNVQWdJR0NDc0dBUVVGQndNRE1CMEdBMVVkRGdRV0JCVHlKVWZZNjZ6WWJtOWkweGVZSHVGSQo0TU43dURBT0JnTlZIUThCQWY4RUJBTUNCU0F3RFFZSktvWklodmNOQVFFRkJRQURnZ0VCQU01a3o5T0tOU3VYCjh3NE5PZ25mSUZkYXpkMG5QbElVYnZEVmZRb055OVEwUzFTRlVWTWVrSVBOaVZoZkd6eWE5SXdSdEdiMVZhQlEKQVEyT1JJekhyOEEycjVVTkx4M21GanBKbWVPeFF3bFYwWCtnOHMrMjUzS1ZGeE9wUkU2eXlhZ24vQnh4cHRUTAphMVo0cWVRSkxENDJsZDFxR2xSd0Z0VlJtVkZaelZYVnJwdTdOdUZkM3Zsbm5PL3FLV1hVK3VNc2ZYdHNsMTNuCmVjMWt3MUV3cTJqbks4V0ltS1RRNy85V2JhSVkwZ3g4bW93Q0pTT3NScTBURTd6Sy9ONTVkck4xd1hKVnhXZTUKNE4zMmVDcW90WHk5ajlsemRrTmE3YXdiOXEzOG5XVnhQK3ZhNWpxTklEbGxqQjZ0RXh5NW4zczd0NktLNmc1agpUWmdWcXJaMyttcz0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoK

monitoring:
  prometheus_service_account: system:serviceaccount:monitoring:prometheus-k8s

active_directory:
  base: OU=Domain-Service-Accounts,OU=Salt-Test,DC=salt-test,DC=ch
  host: "<IP_ADDRESS>"
  port: "636"
 # bind_dn: "cn=Administrator,cn=users,dc=ent2k12,dc=domain,dc=com"
  bind_dn: "CN=k8s Service Account,OU=Domain-Service-Accounts,OU=Salt-Test,DC=salt-test,DC=ch"
  con_type: ldap
  srv_dns: "false"

network_policies:
  enabled: false
  ingress:
    enabled: false
    labels:
      app.kubernetes.io/name: ingress-nginx
  monitoring:
    enabled: false
    labels:
      app.kubernetes.io/name: monitoring
  apiserver:
    enabled: false
    labels:
      app.kubernetes.io/name: kube-system

services:
  enable_tokenrequest: false
  token_request_audience: api
  token_request_expiration_seconds: 600
  node_selectors: []

openunison:
  replicas: 1
  non_secret_data:
    K8S_DB_SSO: oidc
    PROMETHEUS_SERVICE_ACCOUNT: system:serviceaccount:monitoring:prometheus-k8s
    SHOW_PORTAL_ORGS: "false"
  secrets: []
  html:
    image: docker.io/tremolosecurity/openunison-k8s-html
  enable_provisioning: false
  #az_groups:
  #- CN=k8s-users,CN=Users,DC=ent2k12,DC=domain,DC=com
```

`

I'm runnig back through the istio instructions now to make sure i didn't miss something.  One thing though

active_directory:
base: OU=Domain-Service-Accounts,OU=Salt-Test,DC=salt-test,DC=ch
host: "<IP_ADDRESS>"
port: "636"

bind_dn: "cn=Administrator,cn=users,dc=ent2k12,dc=domain,dc=com"
bind_dn: "CN=k8s Service Account,OU=Domain-Service-Accounts,OU=Salt-Test,DC=salt-test,DC=ch"
con_type: ldap
srv_dns: "false"
con_type should be ldaps, not ldap.  ldaps uses TLS, ldap doesn't

Are you getting the "cannot connect" in your browser or the "403" in your browser?  Did you copy the ou-tls-certificate Secret from the openunison namespace to istio-system?

Realized I didn't add instructions on copying the ou-tls-certificate to the istio-system namespace.  those instructions are now there

Yeey having the secret in istio namespace did the trick

Thanks for hand holding much appreciated your help and your work. we can close this issue I guess

I get a error on similar lines. The only difference for me is that I am using nginx ingress

@SinghDivneet is this chrome on mac?  does firefox work?

Yes, looks like that was the case @mlbiam
Let me double check my keycloak creds. While I do that any idea why this would be happening?

you don't have your redirect url in keycloak setup correctly.  please open a new issue and we'll be happy to help


Is it possible to change wwwc (brightness/contrast) on a part of the image ?

Hi,
I'm making a cornerstone tools similar to highlight, but instead of setting the alpha to 0.7 outside of the selected rectangle, I would like to change the windowWidth/windowCenter (in my limited understanding of cornerstone, this is the brightness/contrast) of the part of the image selected.
So to make this new tool, for which I've forked cornerstoneTools repo to give back to the community,  I need to know how to change the b/c of a part of the image.
What would be the correct way to implement such a feature ? There seems to be two strategies :

create an overlay canvas, and change its viewport (à la magnify cornerstone tool)
get the pixel on the canvas for the selected rectangle, and change them

Any help appreciated. Thanks.

We've implemented this feature in a private fork of cornerstone tools.

@marcelfalliere, a quick heads up. The latest version of tools should make it easier to "p01


NumOf::txt object needed

Need an object to create number from text

@rultor release, tag is 4.10.0

@rultor release, tag is 4.10.0

@maxonfjvipon Done! FYI, the full log is here (took me 3min)


User Register Broken

When trying to register a new user the following error is stated:

I tested this in our QA env and could reproduce this.
Also relates to @Alexei-Barnes note in discord

Wait, nevermind, I'm bad at docker and didn't actually use the updated software 😭


feat: add auth header if an api token has been provided

Hi @edridudi, I added the possibility to add an api token and make use of the free tier. I tried to keep it close to the koios java client.

Thank you @fabianbormann !
Will Release a version after the Alignment with Koios V1 Endpoints.


Fix diff test

scale parameter can now store an int64 because of this.

@AlekSi PTAL, we can't merge without your review.


chore: release main

:robot: I have created a release beep boop
ui5-cc-excelupload: 0.14.1
0.14.1 (2023-04-18)
Bug Fixes

error message shown twice on listreport (#152) (d0a3d12)
improve UX on upload dialog (#151) (4ca9e1f)

ui5-cc-excelupload-button: 0.2.2
Dependencies

The following workspace dependencies were updated

dependencies

ui5-cc-excelupload bumped from 0.14.0 to 0.14.1

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/marianfoo/ui5-cc-excelUpload/releases/tag/ui5-cc-excelupload-v0.14.1 :sunflower:


SDK 3.24.0 TextField becomes focused on navigator back (pop) action

Steps to reproduce

Run app the app, I did test on real device, iPhone 13
press on text field to open keyboard
scroll list to close keyboard
open dialog by pressing plus icon
close dialog by pressing close button or press at dismiss area
boom, you returned to previous page, keyboard appearing, text field again focused, but shouldn't...

Expected results
You return to page with scrolled list with no keyboard opened.
Actual results
Text field is focused and keyboard appearing
Code sample
Code sample
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
        actions: [
          IconButton(
            onPressed: () {
              showDialog(
                context: context,
                builder: (context) {
                  return Center(
                    child: SizedBox(
                      height: 300,
                      child: Scaffold(
                        backgroundColor: Colors.grey,
                        body: Column(
                          children: [
                            const Row(
                              children: [
                                Text(
                                  'some text',
                                  style: TextStyle(),
                                ),
                              ],
                            ),
                            const Spacer(),
                            TextButton(
                              onPressed: () {
                                Navigator.of(context).pop();
                              },
                              child: const Text('Close'),
                            ),
                          ],
                        ),
                      ),
                    ),
                  );
                },
              );
            },
            icon: const Icon(Icons.add),
          ),
        ],
      ),
      body: Column(
        children: [
          const TextField(),
          Expanded(
            child: ListView(
              keyboardDismissBehavior: ScrollViewKeyboardDismissBehavior.onDrag,
              children: List.generate(
                45,
                (index) => ListTile(
                  title: Text('index: $index'),
                ),
              ),
            ),
          )
        ],
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.24.0, on macOS 14.5 23F79 darwin-arm64, locale en-UA)
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 15.4)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2022.3)
[✓] VS Code (version 1.83.1)
[✓] Connected device (4 available)
[✓] Network resources

I already reported this issue here
but, unfortunately it still valid and I also can reproduce it on stable branch Flutter (Channel master, 3.24.0-1.0.pre.509)

Thanks for the report @Korpyc
Can you provide a short video of the reported behavior ?
I tried this scenario on iPhone 13 pro max simulator and also on iPhone 6s device but couldn't replicate. The keyboard didn't open and textfield didn't get focus as expected.
https://github.com/user-attachments/assets/f7493883-c0ae-4e77-9ef5-2d0ed483c6c7

Hi, @darshankawar, I'm, so sorry, did wrong testing last week. So, problem is really solved with this example, but I found workaround when it still persist broken behaviour.
To see wrong behaviour just remove:
keyboardDismissBehavior: ScrollViewKeyboardDismissBehavior.onDrag,
and wrap body with:
NotificationListener<ScrollNotification>(
      onNotification: (_) {
        if (FocusScope.of(context).hasFocus) {
          FocusScope.of(context).unfocus();
        }
        return true;
      },

Thanks for the update. Using below runnable code, I was able to replicate the reported behavior on latest versions.

 code sample

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          backgroundColor: Theme.of(context).colorScheme.inversePrimary,
          title: Text(widget.title),
          actions: [
            IconButton(
              onPressed: () {
                showDialog(
                  context: context,
                  builder: (context) {
                    return Center(
                      child: SizedBox(
                        height: 300,
                        child: Scaffold(
                          backgroundColor: Colors.grey,
                          body: Column(
                            children: [
                              const Row(
                                children: [
                                  Text(
                                    'some text',
                                    style: TextStyle(),
                                  ),
                                ],
                              ),
                              const Spacer(),
                              TextButton(
                                onPressed: () {
                                  Navigator.of(context).pop();
                                },
                                child: const Text('Close'),
                              ),
                            ],
                          ),
                        ),
                      ),
                    );
                  },
                );
              },
              icon: const Icon(Icons.add),
            ),
          ],
        ),
        body: NotificationListener<ScrollNotification>(
          onNotification: (_) {
            if (FocusScope.of(context).hasFocus) {
              FocusScope.of(context).unfocus();
            }
            return true;
          },
          child: Column(
            children: [
              const TextField(),
              Expanded(
                child: ListView(
                  //   keyboardDismissBehavior: ScrollViewKeyboardDismissBehavior.onDrag,
                  children: List.generate(
                    45,
                    (index) => ListTile(
                      title: Text('index: $index'),
                    ),
                  ),
                ),
              )
            ],
          ),
        ));
  }
}

https://github.com/user-attachments/assets/7f2a417b-0ba8-4e40-80ac-faf7c8d7f226


[TW#23627] no output from make monitor, but platformio's monitor works.

[x] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[x] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[x] I have searched the issue tracker for a similar issue and not found a similar issue.

Environment

Development Kit:      [dfrobot firebeetle esp32]
Core (if using chip or module): [ESP-WROOM32]
IDF version: 9a55b42f
Development Env:		[Make]
Operating System:		[Linux]
Power Supply:         [USB | Battery]

Problem Description
I just got a new board, which connect to /dev/ttyACMx, in the past I've only used esp32 modules that uses ttyUSBx.  Uploading and flashing works fine, but when trying to monitor with make monitor the only output is:
MONITOR --- idf_monitor on /dev/ttyACM0 115200 --- --- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
This didn't happen when I'm using the other boards. I'm has chmod the device and are in the dialout group. The strange thing is that the platformio monitor works, using the same baudrate.
I've added the relevant section of the sdkconfig file.
CONFIG_ESPTOOLPY_PORT="/dev/ttyACM0" CONFIG_ESPTOOLPY_BAUD_115200B=y CONFIG_ESPTOOLPY_BAUD_230400B= CONFIG_ESPTOOLPY_BAUD_921600B= CONFIG_ESPTOOLPY_BAUD_2MB= CONFIG_ESPTOOLPY_BAUD_OTHER= CONFIG_ESPTOOLPY_BAUD_OTHER_VAL=115200 CONFIG_ESPTOOLPY_BAUD=115200 CONFIG_ESPTOOLPY_COMPRESSED=y CONFIG_FLASHMODE_QIO= CONFIG_FLASHMODE_QOUT= CONFIG_FLASHMODE_DIO=y CONFIG_FLASHMODE_DOUT= CONFIG_ESPTOOLPY_FLASHMODE="dio" CONFIG_ESPTOOLPY_FLASHFREQ_80M= CONFIG_ESPTOOLPY_FLASHFREQ_40M=y CONFIG_ESPTOOLPY_FLASHFREQ_26M= CONFIG_ESPTOOLPY_FLASHFREQ_20M= CONFIG_ESPTOOLPY_FLASHFREQ="40m" CONFIG_ESPTOOLPY_FLASHSIZE_1MB= CONFIG_ESPTOOLPY_FLASHSIZE_2MB= CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y CONFIG_ESPTOOLPY_FLASHSIZE_8MB= CONFIG_ESPTOOLPY_FLASHSIZE_16MB= CONFIG_ESPTOOLPY_FLASHSIZE="4MB" CONFIG_ESPTOOLPY_FLASHSIZE_DETECT=y CONFIG_ESPTOOLPY_BEFORE_RESET=y CONFIG_ESPTOOLPY_BEFORE_NORESET= CONFIG_ESPTOOLPY_BEFORE="default_reset" CONFIG_ESPTOOLPY_AFTER_RESET=y CONFIG_ESPTOOLPY_AFTER_NORESET= CONFIG_ESPTOOLPY_AFTER="hard_reset" CONFIG_MONITOR_BAUD_9600B= CONFIG_MONITOR_BAUD_57600B= CONFIG_MONITOR_BAUD_115200B=y CONFIG_MONITOR_BAUD_230400B= CONFIG_MONITOR_BAUD_921600B= CONFIG_MONITOR_BAUD_2MB= CONFIG_MONITOR_BAUD_OTHER= CONFIG_MONITOR_BAUD_OTHER_VAL=115200 CONFIG_MONITOR_BAUD=115200

I don't think we have a dfrobot firebeetle board here to check this, but my guess is that idf_monitor sets both DTR and RTS low (active), which might cause the USB MCU on the firebeetle board to keep ESP32 in reset. If you have some terminal program which allows controlling the state of DTR and RTS separately, please try different combinations (DTR/RTS on/off) and see which one allows the ESP32 to run. Then perhaps a configuration option for idf_monitor can be added to set such state of DTR and RTS.

The esp module is active and not resetting (basically displaying the boot-count on a external display).  I tried the different combinations with pio (platformIOs monitor):

DRT off / RST off -> no output
DRT on/ RST off -> output
DRT off / RST on ->  no output
DRT on/ RST on -> crash

DTR off / RST off -> no output
DTR on/ RST off -> output
DTR off / RST on -> no output
DTR on/ RST on -> crash

I found a schematic for the Firebeetle and see that it's a STM32F042 with two GPIOs wired directly to GPIO0 and EN.
There are some soft USB/serial firmwares around which use DTR as the "enable serial" signal, so my guess is that's also what is happening here.
Out of interest, is esptool.py able to flash this board successfully? Does it auto-reset the board into flashing more successfully? Reason I ask is that DTR & RTS should both also be de-asserted (set False) during flashing, so I can't explain why this would work in esptool but fail in idf_monitor.

DTR on/ RST on -> crash

What crashes, the ESP32 or idf_monitor.py? (or both!)
Angus

@projectgus
I can flash the board using esptool.py, and it does reset the board after completion.
Regarding the crash, it seemed like it was the platformIO's (the monitored i used to test the options), which was at fault. When trying with both DTR and RTS option enabled, idf_monitor.py operate normally. So it seems like the board only need the DTR to be pulled up for it to work.

Sorry for the lack of update in so long.
I'm going to Close as this is a problem with the fireBeetle CDC firmware behaviour, not ESP-IDF. Please raise the issue with DFRobot.

I am experiencing this issue as well, but I am only using idf.py. I have disabled RST and DTR as recommended and implemented the changes found in this pull request by another user experiencing the problem. The fix worked one-time and then I am again faced with zero output from the monitor.

Hello,
I recently started working on ESP-LAUNCHER (ESP8266) and I have the same porblem described before. I tried to solve it using the recommended solutions, but unfortunately I still have no output when running idf.py monitor.
Do anyone have an idea about this error ?


refactor(utils): rename debug utils files

Description

🤖 Generated by Copilot at b8a3d5b
Renamed and refactored the marker_util namespace and directory to marker_utils for consistency and clarity. Updated the header guard macros and the include directives in all the files that use the debug utilities from this namespace.

Tests performed

[ ] PASS TIER IV INTERNAL SCENARIOS

Effects on system behavior

Not applicable.
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

@zulfaqar-azmi-t4 Thanks!

Merge main branch to run build-and-test-differential (humble, -cuda) with self-hosted runner


[BUG] Standard collections as type hints are not subscriptable (PEP 585)

Describe the bug
When using the standard collections dict or list as a type hint in Python 3.10 (PEP 585 released in Python 3.9) the cythonized code breaks with TypeError: 'type' object is not subscriptable
To Reproduce
Code to reproduce the behaviour:
def do_something(self, foo: list[tuple[str, float]], bar: dict[str, float]) -> list[tuple[str, float]]:
  return foo

Expected behavior
A clear and concise description of what you expected to happen.
Environment (please complete the following information):

OS: Linux
Python version 3.10.4
Cython version 0.29.32

Works for me in Cython 3.0. Will not be backported to the legacy stable 0.29.x series.

It's to do with __class_getitem__ which is a Cython 3 only feature. The other difference with Cython 3 is that annotations are converted to strings rather than evaluated (so it probably doesn't even use __class_getitem__).
Note that Cython 3 doesn't currently understand subscripted list[...], dict[...] etc as type annotations. It understands typing.List[...] but not the plain types.

Works for me in Cython 3.0. Will not be backported to the legacy stable 0.29.x series.

@scoder It seems that Python 3.0 has not yet released? The latest build is 0.29.34


feat: ResultBytes

Add ResultBytes to sqlitex to support one-result BLOB queries
Export ErrNoResults/ErrMultipleResults so the user can react to these
conditions programmatically.
(ref: #85)

Oh, and mind adding a small test for this function?


new ets

fixes #71
I'm going to leave some comments inline explaining the changes.

Hi! Thanks for opening this PR, and sorry we haven't seen it until now. I'll try to look at this soon, probably over the winter break.

cc @epinault

Wow yes sorry I ll take a look at it this week but same I never got a notification on this either . I ll have to check my settings cause I usually get notified

@egeersoz
Thank you for the comments! I'm going to split this PR into multiple non-breaking ones, some to update CI, some to update ETS backend without the breaking changes, and then a few with the breaking changes.

It seems like no matter where I start: removing application.ex, removing runtime config and runtime app env lookups, removing poolboy -- it results in breaking changes :) So I'm thinking of just resuming this PR now.

sure!


[Bug] Maintain Backpack wallet connection on page refresh or revisit

Currently, refreshing or revisiting the Marginfi website disconnects the Backpack wallet. I've tested with the Phantom wallet and this behavior doesn't happen, ie. Phantom wallet remains connected through refreshes and revisits. It gets annoying to connect whenever visiting the Marginfi website.
"Sign in with Backpack" resets on refreshes or revisits.

I'm unable to reproduce this - are you still experiencing this?

The issue has been fixed, I believe. Works fine now.


Ensure mtl_basedir ends with a directory separator

Currently, if mtl_basedir doesn't end with a separator character (/ on *nix or \\ on Windows) the loader will neither raise any warning nor correctly load the materials.
With this commit, LoadObj will automatically insert a separator at the end of the basedir if needed.

Super awesome!
I'll check appveyor failure and merge as soon as possible.

I didn't check this yet on Windows; the only issue I can think of is, if you pass a /-separated path on Windows (which is sometimes legal I think?) it will end up being mixed \\ and /

Ok, tested on Windows and apparently it works for whichever combination of separators.

Merged!
Build failure was another reason. I have fixed it by another commit.


add timestamps to upstart logs and remove color

This request is very similar to what was done with docker with the "--raw-logs" flag in this ticket https://github.com/docker/docker/pull/18621.
When you look at the logs (/var/log/upstart/docker.log) in less you see
ESC[34mINFOESC[0m[305786] containerd: <msg>
ESC[33mWARNESC[0m[305788] containerd: <msg>

The color adds nothing but confusion, and not having timestamps makes debugging difficult.
Version info:
$ docker --version
Docker version 1.12.6, build 78d1802
$ docker-containerd --version
containerd version 0.2.4 commit: 2a5e70cbf65457815ee76b7e5dd2a01292d9eca8
$ docker info
Containers: 9
 Running: 9
 Paused: 0
 Stopped: 0
Images: 10
Server Version: 1.12.6
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 125
 Dirperm1 Supported: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: host bridge null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options:
Kernel Version: 3.13.0-55-generic
Operating System: Ubuntu precise (12.04.4 LTS)
OSType: linux
Architecture: x86_64
CPUs: 3
Total Memory: 8.782 GiB
Name: <name>
ID: <ID>
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Insecure Registries:
 <IP_ADDRESS>/8

Timestamps are already included, I'll add a --raw-log flag

@mlaventure This should be fixed with the logrus fix, no?

@stevvooe would have to check, but I think so

@stevvooe It does, I'll vendor the new version in, thanks

This was resolved with the logrus update.


Remove deprecated rel="external" styling

As part of https://github.com/alphagov/govuk_frontend_toolkit/pull/293
we removed external link icon styles as there is not an obvious
user need.
However frontend still has spacing with these icons in mind.

Looks like ruby linting failures, I don't know why since no ruby code has been touched.

Might need a rebase.

Okay I've rebased this, let's see if it fancies going green this time. 👍


3.3.5 broke GetPreSignedURL

the format of the URL generated by GetPreSignedURL was changed in release 3.3.5.
the new style of URL no longer work against S3 - it returns a "SignatureDoesNotMatch" error.
pre-3.3.5 generated URLs that looked like this:
https://mybucket.s3-us-west-2.amazonaws.com/mykey?AWSAccessKeyId=<MyKeyID>&Expires=1489619417&Signature=<Signature>&x-amz-meta-download=140&branch=development&machine=something

post-3.3.5 URLs look like this:
https://mybucket.s3-us-west-2.amazonaws.com/mykey?X-Amz-Expires=86400&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=<Signature>%2F20170314%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20170314T231800Z&X-Amz-SignedHeaders=host%3Bx-amz-meta-download&X-Amz-Signature=<Signature>&x-amz-meta-download=140&branch=development&machine=something

notice how the parameters passed are completely different.

looks like it's an issue with the switch to using v4 signatures by default.
commit 615992ac8dd2aff2a917ae638423d7b19d88249d

Can you provide sample code that reproduces this issue? I've tested this using the below code and did not encounter issues. The test code prints out the calculated presigned url before using and it matches the post-3.3.5 URL that you specified, but this URL appears to work.
var key = "test.txt";
var testContent = "test";
var expires = DateTime.Now.AddDays(1);
using (var client = new AmazonS3Client(pavelCreds, RegionEndpoint.USWest2))
{
    await client.PutObjectAsync(new PutObjectRequest
    {
        BucketName = bucketName,
        Key = key,
        ContentBody = testContent
    });

    var presignedUrl = client.GetPreSignedURL(new GetPreSignedUrlRequest
    {
        BucketName = bucketName,
        Key = key,
        Expires = expires,
        Verb = Amazon.S3.HttpVerb.GET,
        Protocol = Amazon.S3.Protocol.HTTPS,
    });
    Console.WriteLine("Presigned url = {0}", presignedUrl);
    using (var httpClient = new HttpClient())
    {
        var content = await httpClient.GetStringAsync(presignedUrl);
        Console.WriteLine(string.Equals(content, testContent, StringComparison.Ordinal));
    }
}

why was this closed?

The question I posted 12 days ago was not replied to, so I assumed this issue was abandoned.
Reopening. Please provide more information about how the URLs are being created, as we currently are not able to reproduce this.

@Spongman we still do not have enough information to proceed with this issue and will be closing it in the next few days. If this is still impacting you, please provide us with the repro code I requested earlier.

It's been 2 weeks since last update and we still do not have enough information to do anything about this issue, so I am closing it.
If anyone is encountering this problem with S3 GetPreSignedURL, please provide a complete repro and we will re-open this issue and try to fix it.

This isn't working for me either - if I follow the url generated I get a 301 "The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.".  Other requests (normal downloads/uploads) are working fine - so seems as though the uri generated is incorrect.  An example is https://api.s3.eu-west-2.amazonaws.com/2a546baa-77ad-4c87-af83-e67b548b44c8/content/0?X-Amz-Expires=86400&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJEULX23DA26N3RWA/20170710/eu-west-2/s3/aws4_request&X-Amz-Date=20170710T135815Z&X-Amz-SignedHeaders=host&X-Amz-Signature=281fb252d5da8bae2a702492243e8ea1d2506c0c7427b0dfef97f4670fac5052/Building_Real-Time_Data_Platforms_MemSQL.pdf

Interestingly, I'm always seeing this in the headers

I've created a new bucket on us-east-1 and I get different behaviour.
Instead of the 301, I get a 403 with the message "The request signature we calculated does not match the signature you provided. Check your key and signing method" (the signed url is https://api.s3.amazonaws.com/17aa45d8-6c97-43a0-88aa-f861a075c044/content/0?AWSAccessKeyId=AKIAJEULX23DA26N3RWA&Expires=1499785513&Signature=y5hl6htjSfy6ZTgc9LGFkxqHQ2c%3D/11.jpg)
This is generated by using the .NET SDK
 var request = new GetPreSignedUrlRequest()
                    {
                        BucketName = itemPath.BucketName,
                        Key = itemPath.ItemName,
                        Verb = HttpVerb.GET,
                        Expires = DateTime.UtcNow.AddDays(1)
                    };

                    return s3.GetPreSignedURL(request);


useLocalePath return an empty string for already localized path

Environment
Local environment
Reproduction
Try to pass already localized path to the useLocalePath and it will return an empty string.
const localePath = useLocalePath()
const localizedPath = localePath('en/homepage')
const repeatedLocalizedPath = localePath(localizedPath)
// repeatedLocalizedPath will be: `' '`

Describe the bug
Try to pass already localized path to the useLocalePath and it will return an empty string.
The expected behavior is to return the already localized path that is sent.
Additional context
No response
Logs
No response

Paths should start with a /, so en/homepage is not a valid (localized) path, try passing /en/homepage.
When passing strings that do not start with a / such as en/homepage, localePath will try to find a route with the name en/homepage.
Passing path:
const localizedPath = localePath('/en/homepage')
const repeatedLocalizedPath = localePath(localizedPath)
// repeatedLocalizedPath will be: `'/en/homepage'`

Passing name:
const localizedPath = localePath('homepage', 'en')
const repeatedLocalizedPath = localePath(localizedPath, 'en')
// repeatedLocalizedPath will (likely) be: `'/en/homepage'`

Please let me know if you have any more questions! I'll close this as it is expected behaviour.

Paths should start with a /, so en/homepage is not a valid (localized) path, try passing /en/homepage.
When passing strings that do not start with a / such as en/homepage, localePath will try to find a route with the name en/homepage.
Passing path:
const localizedPath = localePath('/en/homepage')
const repeatedLocalizedPath = localePath(localizedPath)
// repeatedLocalizedPath will be: `'/en/homepage'`

Passing name:
const localizedPath = localePath('homepage', 'en')
const repeatedLocalizedPath = localePath(localizedPath, 'en')
// repeatedLocalizedPath will (likely) be: `'/en/homepage'`

Please let me know if you have any more questions! I'll close this as it is expected behaviour.

I wrote a wrong description (I tried it with the / at the frist place and it still return an empty string)

I'm unable to reproduce this behaviour, can you provide a minimal reproduction project? You can use this starter if that helps.

I'm unable to reproduce this behaviour, can you provide a minimal reproduction project? You can use this starter if that helps.

@BobbieGoede Oh I figure it out. Somebody used router.resolve before sending it to the locale path.
Nvm it should work than if I remove it


upgrade uses of nomnom to use commander.js

In the process of responding to code review comments in #882, it was discovered that nomnom is deprecated.  The suggested replacement is https://github.com/tj/commander.js.  Since we use nomnom in a few places it's probably best to upgrade everything at the same time.

https://npmcompare.com/compare/commander,minimist,nomnom,optimist,yargs

npmcompare.com is awesome!

We're using nomnom now.


Impossible to upgrade docker-engine non-interactively

Docker install does not respect apt -y install or DEBIAN_FRONTEND=noninteractive - this is rather frustrating since it means I can't get the right version of docker installed during CI
$ export DEBIAN_FRONTEND=noninteractive
$ sudo apt-get -y install docker-engine
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  libsystemd-journal0
Recommended packages:
  yubico-piv-tool
The following NEW packages will be installed:
  libsystemd-journal0
The following packages will be upgraded:
  docker-engine
1 upgraded, 1 newly installed, 0 to remove and 228 not upgraded.
Need to get 8,746 kB of archives.
After this operation, 14.9 MB of additional disk space will be used.
Get:1 http://us-central1.gce.archive.ubuntu.com/ubuntu/ trusty-updates/main libsystemd-journal0 amd64 204-5ubuntu20.18 [49.9 kB]
Get:2 https://apt.dockerproject.org/repo/ ubuntu-trusty/main docker-engine amd64 1.10.1-0~trusty [8,696 kB]
Fetched 8,746 kB in 0s (18.9 MB/s)
Selecting previously unselected package libsystemd-journal0:amd64.
(Reading database ... 135346 files and directories currently installed.)
Preparing to unpack .../libsystemd-journal0_204-5ubuntu20.18_amd64.deb ...
Unpacking libsystemd-journal0:amd64 (204-5ubuntu20.18) ...
Preparing to unpack .../docker-engine_1.10.1-0~trusty_amd64.deb ...
docker stop/waiting
Unpacking docker-engine (1.10.1-0~trusty) over (1.8.2-0~trusty) ...
Processing triggers for man-db (<IP_ADDRESS>-1ubuntu1) ...
Not building database; man-db/auto-update is not 'true'.
Processing triggers for ureadahead (0.100.0-16) ...
Setting up libsystemd-journal0:amd64 (204-5ubuntu20.18) ...
Setting up docker-engine (1.10.1-0~trusty) ...
Installing new version of config file /etc/init/docker.conf ...
Configuration file '/etc/default/docker'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** docker (Y/I/N/O/D/Z) [default=N] ?

Trying to get this going here: https://github.com/yarpc/yarpc-go/pull/30/files#diff-354f30a63fb0907d4ad57269548329e3R24

If you are reporting a new issue, make sure that we do not have any duplicates already open. You can ensure this by searching the issue list for this repository. If there is a duplicate, please close your issue and add a comment to the existing issue instead.
If you suspect your issue is a bug, please edit your issue description to include the BUG REPORT INFORMATION shown below. If you fail to provide this information within 7 days, we cannot debug your issue and will close it. We will, however, reopen it if you later provide the information.
For more information about reporting issues, see CONTRIBUTING.md.
You don't have to include this information if this is a feature request
(This is an automated, informational response)

BUG REPORT INFORMATION
Use the commands below to provide key information from your environment:
docker version:
docker info:
Provide additional environment details (AWS, VirtualBox, physical, etc.):
List the steps to reproduce the issue:
1.
2.
3.
Describe the results you received:
Describe the results you expected:
Provide additional info you think is important:
----------END REPORT ---------
#ENEEDMOREINFO

Trying:
yes Y | sudo apt-get -y install docker-engine

See https://raphaelhertzog.com/2010/09/21/debian-conffile-configuration-file-managed-by-dpkg/, especially the section about "Avoiding the conffile prompt":
 apt-get -o Dpkg::Options::="--force-confnew" install -y ...

trying that...

Actually.. wonder if apt-get -yf install ... will work...

ok, -yf didnt work

this worked:
 apt-get -o Dpkg::Options::="--force-confnew" install -y ...

@tianon thx dude :)

:metal:

Also, a little late, but
$ export DEBIAN_FRONTEND=noninteractive
$ sudo apt-get -y install docker-engine

^ won't work because sudo strips environment variables.
Try
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install docker-engine

@phemmer I tried sudo DEBIAN_FRONTEND=noninteractive apt-get -y install ..., but that did not bypass the prompt.  @tianon's suggestion worked.


feat(storage): flexible KeyPrefix encoding for Block

I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?
Introduce flexible length encoding for hummock Block

Introduce the LenType enum to define different data lengths
Implement LenType-based encoding for KeyPrefix
Based on the assumption that the keys under each restart_point are of the same length type, introduce restart_point_index to record the type to avoid storing the type for each restart_point and reduce the space occupation.
block_iteartor adapts to the new KeyPrefix

Checklist For Contributors

[ ] I have written necessary rustdoc comments
[x] I have added necessary unit tests and integration tests
[ ] I have added fuzzing tests or opened an issue to track them. (Optional, recommended for new SQL features #7934).
[ ] I have demonstrated that backward compatibility is not broken by breaking changes and created issues to track deprecated features to be removed in the future. (Please refer to the issue)
[x] All checks passed in ./risedev check (or alias, ./risedev c)

Checklist For Reviewers

[ ] I have requested macro/micro-benchmarks as this PR can affect performance substantially, and the results are shown.

Documentation

[ ] My PR DOES NOT contain user-facing changes.

Click here for Documentation
Types of user-facing changes
Please keep the types that apply to your changes, and remove the others.

Installation and deployment
Connector (sources & sinks)
SQL commands, functions, and operators
RisingWave cluster configuration changes
Other (please specify in the release note below)

Release note

mirco_bench for block_iterator

branch cost

main cost

new micro bench for block_iterator
restart_point_interval = 16

main cost

I simulated several scenarios to evaluate the performance

switch len type every 8 k-v

branch cost

switch len type every 16 k-v

switch len type every 32 k-v

In a real-world usage scenario, we expect that the len type of k-v will not switch frequently. In the above test, there is no significant performance difference when the frequency of type switching is consistent with the restart_point_interval.

Good Job!
I will review this PR ASAP.

new micro bench for block_iterator
restart_point_interval = 16

main cost

I simulated several scenarios to evaluate the performance
switch len type every 8 k-v

branch cost

switch len type every 16 k-v

branch cost

switch len type every 32 k-v

branch cost


Refactored Firebase library

As discussed in issue #41
Refactored to provide result and not depend on class state for error reporting, conform to Google C++ style.
Also broke FirebaseEventStream out from Firebase. When this is connected I believe any other calls (push,fetch,etc..) to the class would break it. For that reason it really seems like this should be its own focused class. Or you need large comments explaining this gotcha.

Also should note this is based on the other pull request so ignore that one here and only accept this one when that one is in.

Also broke FirebaseEventStream out from Firebase. When this is connected I believe any other calls (push,fetch,etc..) to the class would break it. For that reason it really seems like this should be its own focused class. Or you need large comments explaining this gotcha.

If we make sendRequest call _http.stop() that should allow the user to do a post() and then resume stream(), as I commented on #41: I'm not sure we should make it easy for the user to do multiple thing at a time with the same client. If they want to do streaming and post update they could create multiple instance of the Firebase object, if they want to reuse the same object they have to call stream() again if they want to resume streaming, the idea was that stream() was at the same level than other HTTP methods like post(), get() etc but long running: #43 try to make it more obvious by decoupling "getting the result" from "making the request", ideally I like to converge in a direction where there the only difference between get() and stream() is that you can call read() or data() multiple time after stream()

I did a major change over to a different paradigm. Let me know what you think of this one. This pushes more of the logic into the returned object a FirebaseCall. This allows the optional rawResponse() call or the library to not read the response if the user is not interested in it. It reuses the http object for all calls except the streaming one.
I still kept the streaming impl pretty separate but accessable through the main Firebase interface. It just feels really disjoint to me.  It holds the http object for a while, the others are all immediate. It allows multiple reads, it has events.
I am off until next week so we can discuss more then, just wanted to post this up. I am not sure the streaming example works for me either.

I did a major change over to a different paradigm. Let me know what you think of this one. This pushes more of the logic into the returned object a FirebaseCall. This allows the optional rawResponse() call or the library to not read the response if the user is not interested in it. It reuses the http object for all calls except the streaming one.

Made a few more comments, I like the separation of the logic but I'd like to find a way not to push the FirebaseCall type and its lifetype to the user.

I still kept the streaming impl pretty separate but accessable through the main Firebase interface. It just feels really disjoint to me. It holds the http object for a while, the others are all immediate. It allows multiple reads, it has events.

I feel like the streaming impl is a call that can yield multiple result, all the other methods also hold the http object in a way since they don't re-inialize the connection between each call.

I feel we should hold on the refactoring until we merge #43: json will likely warrant returning JsonObject or a FirebaseResult wrapper and affect the way we split "making the request", "checking for errors" and "consuming result".
@ed7coyne @aliafshar does that sound OK with you?

Updated to reflect changes decided in #41

Just some nits, I'd be happy to send a PR addressing them.

Let's merge this once we fix the streaming sample.


docs(Overview): Change Get Started to Point To Introduction

Description:
This changes the href from the api to the overview guide/introduction.
Related issue (if exists):
closes #4148

Coverage remained the same at 96.806% when pulling 0e0977206b7f6746f50775d2c038f975230ca664 on pertrai1:getting-started-introduction into d2f7083baada8edf0696969aad7390e46ac99235 on ReactiveX:master.

I'm really sorry but I will close this in favor of  #4167 to avoid redundancy.


Is there a way to reveive multiple byte   data  like float and int64

As the title, I'm trying to receive data consisting of several bytes. But I've found that if I send a float then the phone receive data with different length from 1 to 8 bytes....

Hello, No you can't with one byte, 8-bit are from 0 to 255 in Decimal, 00 to FF in Hexadecimal, 00000000 to 11111111 in binary. 7-bit are from 0 to 127 etc.
You can send a macro of bytes but your phone (or receptor) need to know read it.
If you want send 1.234, the ASCII code decimal will be : 49 46 50 51 53
49 for 1, 46 for . etc.
So your phone receive these 4 bytes.

@RicoLewis Thanks for your answer.  But I've tried a new way to receive float data through serial port and success.
Since the length of each received data frame is fixed, I set a counter to record the number of bytes which the phone has received. If the counter reaches the length, I'll set the counter to zero and read float from those bytes.
However, there's still a risk. If the serial port receives an unexpected byte, all of the data will be stored in wrong positions and the float value read from those bytes will be wrong.


[tool_crash] FileSystemException: Cannot open file, OS Error: The system cannot find the file specified., errno = 2

Command
flutter

Steps to Reproduce

...
...
...

Logs
FileSystemException: Cannot open file, OS Error: The system cannot find the file specified.
, errno = 2
#0      _File.throwIfError (dart:io/file_impl.dart:675:7)
#1      _File.openSync (dart:io/file_impl.dart:490:5)
#2      _File.writeAsBytesSync (dart:io/file_impl.dart:644:31)
#3      _File.writeAsStringSync (dart:io/file_impl.dart:668:5)
#4      ForwardingFile.writeAsStringSync (package:file/src/forwarding/forwarding_file.dart:150:16)
#5      ErrorHandlingFile.writeAsStringSync.<anonymous closure> (package:flutter_tools/src/base/error_handling_io.dart:279:22)
#6      _runSync (package:flutter_tools/src/base/error_handling_io.dart:600:14)
#7      ErrorHandlingFile.writeAsStringSync (package:flutter_tools/src/base/error_handling_io.dart:278:5)
#8      Cache.setStampFor (package:flutter_tools/src/cache.dart:673:35)
#9      VersionCheckStamp.store (package:flutter_tools/src/version.dart:798:30)
#10     FlutterVersion._getLatestAvailableFlutterDate (package:flutter_tools/src/version.dart:338:31)
<asynchronous suspension>
#11     FlutterVersion.checkFlutterVersionFreshness (package:flutter_tools/src/version.dart:285:47)
<asynchronous suspension>
#12     FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:383:11)
<asynchronous suspension>
#13     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
<asynchronous suspension>
#14     FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:364:5)
<asynchronous suspension>
#15     run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:130:9)
<asynchronous suspension>
#16     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
<asynchronous suspension>
#17     main (package:flutter_tools/executable.dart:93:3)

[✓] Flutter (Channel stable, 3.24.5, on Microsoft Windows [Version 10.0.22635.4515], locale en-US)
    • Flutter version 3.24.5 on channel stable at C:\Users\ninin\Documents\flutter\flutter_windows_3.24.5-stable\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision dec2ee5c1f (2 weeks ago), 2024-11-13 11:13:06 -0800
    • Engine revision a18df97ca5
    • Dart version 3.5.4
    • DevTools version 2.37.3

Closing this as a duplicate of https://github.com/flutter/flutter/issues/68958


Fix iMC initialization params for 0.50

This PR updates the initialization for Interactive Media Controller (iMC) to account for some 0.50/0.51 changes. In my experience, the current dev build of MC cannot boot iMC. The minor tweaks in this PR allow iMC to boot and, from what I can tell, function properly.

Unfortunately this thing breaks from time to time because we are missing tests for it. Maybe we could just start it in a test?


WIP: KAFKA-14561: Improve transactions experience for older clients by ensuring ongoing transaction

Added check for ongoing transaction
Thread to send and receive verify only add partition to txn requests
Code to send on request thread courtesy of @artemlivshits
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

TODO:

config for the feature
request handling optimizations
confirm compatibility --> we may need Ibp

fyi I found this: https://issues.apache.org/jira/browse/KAFKA-14896

^ Seems like this still may be initially caused by my change so I'm investigating.

I realized I didn't push sorry :(
Just pushed now. I will also look at that failure some more today.

I found the issue. I will fix.
java.lang.NullPointerException: Cannot invoke "org.apache.kafka.common.requests.AddPartitionsToTxnResponse.data()" because the return value of "org.apache.kafka.clients.ClientResponse.responseBody()" is null
	at kafka.server.AddPartitionsToTxnManager$AddPartitionsToTxnHandler.onComplete(AddPartitionsToTxnManager.scala:95)

Found the issue -- we didn't correctly handle disconnects which would cause NPEs and force close the producer. Pushed the code to handle disconnects -- locally I did not see the issue after running 40 times (typically would see it in the first two runs before the fix)

Here are errors on the latest build on trunk I could find:
https://ci-builds.apache.org/job/Kafka/job/kafka/job/trunk/1754/#showFailuresLink
Seems to roughly correlate with the failures I see.
I think the only suspicious one is Build / JDK 8 and Scala 2.12 / kafka.api.TransactionsBounceTest.testWithGroupId() which was failing before without my fix. This error is slightly different and related to endTxn. I did see this flake one time when I was repeatedly testing on my branch. I can look on trunk as well.


ci: stop github actions running on a forked repo

Which issue(s) this PR fixes:

Issue https://github.com/longhorn/longhorn/issues/8039
What this PR does / why we need it:
stop github actions running on a forked repo
Special notes for your reviewer:
Additional documentation or context

ref: https://github.com/prisma/prisma/issues/3539

@longhorn/qa Remember to disable github action of your own forked repo manually to avoid failed build false alarm.


Replace /install/* proxy_pass with a 301 redirect

TL;DR
We should either replace the proxy_pass entries with redirects (as proposed in this PR) or configure nginx to re-resolve them to avoid broken installer links when bin.equinox.io changes IPs.
Details
We have two proxy_pass entries in _config/nginx.conf:
-location /install/osx.zip   { proxy_pass https://bin.equinox.io/c/jewmwFCp7w9/convox-stable-darwin-amd64.zip; }
 -location /install/linux.zip { proxy_pass https://bin.equinox.io/c/jewmwFCp7w9/convox-stable-linux-amd64.zip; }

nginx resolves proxy_pass targets at start and doesn't re-resolve them unless configured to do so. This stale DNS situation was the underlying cause of the inaccessibility of https://convox.com/install/osx.zip and https://convox.com/install/linux.zip today, because the target bin.equinox.io changed IPs.
From the nginx logs:
`2017/03/12 22:09:52 [error] 11#11: *96148 upstream timed out (110: Connection timed out) while connecting to upstream, client: <IP_ADDRESS>, server: convox.com, request: "HEAD /install/osx.zip HTTP/1.1", upstream: "https://<IP_ADDRESS>:443/c/jewmwFCp7w9/convox-stable-darwin-amd64.zip", host: "localhost:4001"`

From my host:
bin.equinox.io is an alias for wakayama-8830.herokussl.com.
wakayama-8830.herokussl.com is an alias for elb074459-590231390.us-east-1.elb.amazonaws.com.
elb074459-590231390.us-east-1.elb.amazonaws.com has address <IP_ADDRESS>
elb074459-590231390.us-east-1.elb.amazonaws.com has address <IP_ADDRESS>
elb074459-590231390.us-east-1.elb.amazonaws.com has address <IP_ADDRESS>

A simple convox ps --rack convox/production --app site-production stop <pid> on both site-production web processes resolved (heh) the issue.

Release Playbook

[x] Rebase against master
[x] Code review
[x] Merge into master
[ ] Verify changes at http://site-staging.convox.com
[ ] Promote release on site-production in the convox/production Rack

 Replace /install/* proxy_pass with a 301 redirect #639


Type inference for binary operators has inconsistent output

The order of the elements in the output of infer_binary_op_type_sub isn't consistent across the various operators. For example, OpLt returns Some (Bool, Nat, Nat), i.e. (output, input, input) (source), whereas OpFloatCompare returns Some (Float, Float, Bool), i.e. (input, input, output) (source). This makes it hard to extract the output type of a binary operator in Ergo, a language we're building using QCert.
(cc @jeromesimeon)

That bug's traced back to https://github.com/querycert/qcert/commit/970b735f126e887d35107689653c8923fa5846e8#diff-82edd685eaa31ee967ad91b372aa89d3


Cleans up version selection logic

This removes an api for acknowledgement of the initial state. Doing so
also reduces file IO when environment variables select the version, as
in this case no default version file will be created.
This also fixes a bug where we had a false-positive on version selection.
Versions are platform-specific so we need to only be ok when the
current platform's tarball is available.
Next, this alerts the user when a remote lookup is happening. This was
missed before as we didn't let users know we are remotely resolving the
latest version.
Finally, this ensures there's enough information in warnings and errors
to troubleshoot a missing release. Particularly, there are cases where a
version is available, but not across the board. For example, linux exists,
but darwin does not.

thanks for noticing the import glitch @mathetake!


'Deploy application to AKS using Kubernetes' part 2 - parameters not editable

Out of the box the parameters for the build definition are not editable. They just contain informational links.

Yes, can anyone help us on this?

Hi, @xerosum did you figure out a way to get those options of Azure subscription and Azure Container Registry?

Hi @visheshbalani It looks like a mismatch between the VSTS that was used to create the tutorial and what's currently available -- even with all relevant preview options turned on, there is no option to hook in process parameters for the agent (there should be a 'link' option when you click the 'i' next to Agent queue).
Also, the documentation page for this feature https://docs.microsoft.com/en-us/vsts/pipelines/archive/preview/2017-user-experience?view=vsts#parameters has broken image links.
Any ideas @sriramdasbalaji or @SrivatsaMarichi?

Hi @xerosum and @visheshbalani ,
Sorry for the delay in response.  You will get those options( AzureSubscription and  Azure Container Registry) when you select Docker tasks in the build definition. Earlier we used to get these options at process level  which will be linked to all relevant tasks.  Now may be mismatch of VSTS version or REST API version we are not getting. We will check this out.
Thanks
Balaji


Tag v0.5.2

@JuliaRegistrator register()

Error while trying to register: "Error parsing project file"

For me, Project.toml looks just fine. Any ideas what is going on here?

@JuliaRegistrator register()

Error while trying to register: "Error parsing project file"

There were two [extra] sections in Project.toml file. Thanks for pointing this out, @KristofferC.
@JuliaRegistrator register()

Error while trying to register: Error in (Julia)Project.toml: Package 'FEMSparse' with UUID: 55713501-a877-5f50-80b5-148fff7ff4b3 not found in registry or stdlib


Add basic UI

For this PR, I created a console app for the school library project.

Thank you :v:


(maint) update version.rb for 4.9.1

In anticipation of an upcoming bug-fix release.
Signed-off-by: Moses Mendoza<EMAIL_ADDRESS>

CLA signed by all contributors.


UN 730 record revealed image gallery heading styling

Ticket URL: Ticket UN 730
About these changes
Added container and text align (center) for gallery heading
Local link to test
How to check these changes
Where possible, provide guidance to help your reviewer
Before assigning to reviewer, please make sure you have

[x] Checked things thoroughly before handing over to reviewer.
[x] Checked PR title starts with ticket number as per project conventions to help us keep track of changes.
[x] Ensured that PR includes only commits relevant to the ticket.
[ ] Waited for all CI jobs to pass before requesting a review.
[ ] Added/updated tests and documentation where relevant.

Merging PR guidance
Follow docs\developer-guide\contributing.md
Deployment guidance
Follow docs\infra\environments.md

I'm being picky with spacing I know - could we tighten up the bottom margin and increase the top margin a bit to better match the designs please?
See comparison below:
Local:

Design:

Thanks!!


Create UBI8 DockerStatic images

Red Hat UBI is a minimal version of RHEL which is available as docker images. These form an ideal basis for cloud deployments, and are free to use, so it would make sense for us to test and support running on them, so we should include them in the DockerStatic image set. They can be pulled from https://hub.docker.com/u/redhat (or docker pullregistry.access.redhat.com/ubi8/ubi)
There is also a ubi8-minimal which we could try as well, but it will need to be tested to see if it's good enough for running tests on.

I shall investigate this.

Merged via https://github.com/adoptium/infrastructure/pull/2557


[Request] Add Intel ISPC to Scoop

Intel's ISPC (Implicit SPMD Program Compiler) is an LLVM-based OSS (BSD-3) compiler for a C-like language designed to be used in conjunction with standard C/C++ programs to provide a reliable and clean means of optimizing programs using appropriate vector processing hardware instructions on the CPU as an alternative to the potentially more cumbersome approaches of inline assembly and compiler intrinsics.
ISPC already has a package in Chocalatey but I personally would really prefer one for Scoop. Binary releases are available on their website:
https://ispc.github.io/
https://github.com/ispc/ispc/

I realized I should add this to the Main Bucket repo instead, closing.


Feature/sdl 0238 keyboard enhancements

Implements 0238
This PR is ready for review.
Testing Plan
Will be tested manually
Summary
Implementation of keyboard enhancements proposal
CLA

[x] I have signed the CLA

Closed and sent to open


Support the Mithril adapter

Is your feature request related to a problem? Please describe.
Currently, the plugin doesn't work with my Mithril adapter
Describe the solution you'd like
Support my Mithril adapter
Describe alternatives you've considered
I've tried setting the path in settings but didn't work

Hi @maicol07,
Thanks for giving the plugin a go :) Can you please expand on what's not working?
From what I can see Mithril is just standard JS files so should be supported out of the box.
I downloaded your pingcrm-mithril repository and it all appears to be working after updating the path in settings
Ctrl+Click support

Go to usages support

Autocomplete support

Settings used

Cheers,
Matt

@hailwood you are using the outdated Mithril adapter. I've forked the original one and updated it to the latest Inertia. With my fork none of the features of the plugin work

Currently I don't actually check for what adapter we're using (I will eventually as I want to add a quick intention to create a missing page), so the adapter that it's using shouldn't really matter.
Can you please create a reproduction repository that I can download? Doesn't need to be complex, even just one Mithril page should be enough.

@hailwood you can check the project I'm working on, since it's pretty empty at the moment: Dasc3er/openstamanager@rewrite

Ah I see,
I had forgotten Route::inertia was a thing.
I'll add support for that.


Carthage support

Here's a new dependency manager for Cocoa: https://github.com/Carthage/Carthage, which is not a replacement for CocoaPods. We should check if ConnectSDK is built fine and can be used from Carthage. And publish a config file for the project if necessary.

0 Carthage requires a shared dynamic framework scheme in the project (created here: https://github.com/eunikolsky/Connect-SDK-iOS/tree/feature/carthage_support).
1 The built dynamic framework should be embedded into the app in project's target settings => General => Embedded Binaries section.
Issues so far:
0 Build warnings like:

/Users/q/proj/csdk-sampler-carthage/ConnectSDKSampler/ControlFlow/SamplerViewController.m:18:2: warning: missing submodule 'ConnectSDK.AirPlayService' [-Wincomplete-umbrella]
#import <ConnectSDK/AirPlayService.h>
 ^      ~
In file included from /Users/q/proj/csdk-sampler-carthage/ConnectSDKSampler/ControlFlow/SamplerViewController.m:18:
/Users/q/proj/csdk-sampler-carthage/Carthage/Build/iOS/ConnectSDK.framework/Headers/AirPlayService.h:25:2: warning: missing submodule 'ConnectSDK.AirPlayServiceHTTP' [-Wincomplete-umbrella]
#import "AirPlayServiceHTTP.h"
 ^      ~~~~~~~~~~~~~~~~~~~~~~

1 Cast and FireTV devices are not discovered (after manually linking them with the app (there was no warning that they were required (which is another issue))).

Re 1: I forgot to include those classes in the framework — fixed now. However, the user should now build the framework differently:
carthage update
rsync frameworks
carthage build

You still don't get linker errors if you don't link those frameworks with the app — the app crashes at runtime.
I suppose, we could link them weakly, that would require extra checks.

I've made a few project changes and fixed all compiler warnings. The framework now can be used in a swift project as a module.
I included all public headers in the umbrella header, and made a few others private:

CastServiceChannel because it has to import GoogleCast/GCKCastChannel.h;
FireTVMediaControl because it has to import AmazonFling/MediaPlayerStatus.h;
all ASIHTTPRequest classes because one of them requires zlib.h, and it's an outdated library anyway.

So the important question is to figure out what headers should really be public and hide everything else.


sidecar injector - GetAppID does not work as expected

In what area(s)?

/area k8s-injector
What version of Dapr?

1.8.x

Expected Behavior

The function used by the sidecar injector to get the app id behaves as expected
https://github.com/dapr/dapr/blob/master/pkg/injector/sidecar/utils.go#L30
Actual Behavior
The function used by the sidecar injector to get the app id it's coded to pick the pod's name as the default app id but in reality that's impossible and will never occur making the sidecar injector code confusing.
Because that logic runs when creating a pod, the pod name is not available, because it's not defined yet, however the function in the sidecar injector to get the app id fallback to the pod name for choosing an app id, in reality it will never be possible that the pod name is used as the dapr app id.

Steps to Reproduce the Problem

Create an application in k8s without the annotation "dapr.io/app-id"
Check the logs for the sidecar injector

{"instance":"dapr-sidecar-injector-57979f5f95-rk78n","level":"info","msg":"AdmissionReview for Kind=/v1, Kind=Pod, Namespace=crud-app Name= () UID=92038e80-f46d-48e8-b532-74cf96f12f14 patchOperation=CREATE UserInfo={system:serviceaccount:kube-system:replicaset-controller f47b6ec6-8498-4784-aa42-0be8b128696e [system:serviceaccounts system:serviceaccounts:kube-system system:authenticated] map[]}","scope":"dapr.injector","time":"2022-09-07T05:52:16.332681919Z","type":"log","ver":"1.8.2"}
{"instance":"dapr-sidecar-injector-57979f5f95-rk78n","level":"error","msg":"Sidecar injector failed to inject for app ''. Error: value for the dapr.io/app-id annotation is empty","scope":"dapr.injector","time":"2022-09-07T05:52:16.333064633Z","type":"log","ver":"1.8.2"}
{"instance":"dapr-sidecar-injector-57979f5f95-rk78n","level":"error","msg":"Admission succeeded, but pod was not patched. No sidecar injected for ''","scope":"dapr.injector","time":"2022-09-07T05:52:16.333197325Z","type":"log","ver":"1.8.2"}

Release Note

RELEASE NOTE:

/assign

Hi @artursouza. Does defaulting it to an empty string sound reasonable?

First, it cannot default to pod's name. That logic should be gone.
Then, we do the following:

Default to trying to fetch Deployment's name and Statefulset's name.
If no app-id is found, then we fail since app-id is mandatory.

/cc @yaron2

I recommend to not default to anything. app-id is a required annotation and the injector should log it and fail the injection.

/assign