statsd container leaking (0.28.0)

Image:          quay.io/datawire/statsd:0.28.0
There are 20 restarts in 3 days, all due to statsd. Luckily Envoy/Ambassador is fine:
po/ambassador-2434898577-662m7   2/2       Running   21         3d
po/ambassador-2434898577-7z156   2/2       Running   22         3d
po/ambassador-2434898577-rp04l   2/2       Running   23         3d
Logs:
13 Mar 11:36:34 - [1] reading config file: config.js
13 Mar 11:36:34 - server is up INFO
<--- Last few GCs --->
[1:0x558e2116c9a0] 18229956 ms: Mark-sweep 1400.0 (1427.0) -> 1400.0 (1428.0) MB, 1484.2 / 11.4 ms  allocation failure GC in old space requested
[1:0x558e2116c9a0] 18231481 ms: Mark-sweep 1400.0 (1428.0) -> 1400.0 (1427.0) MB, 1525.2 / 11.3 ms  last resort
[1:0x558e2116c9a0] 18232971 ms: Mark-sweep 1400.0 (1427.0) -> 1400.0 (1427.0) MB, 1489.8 / 11.0 ms  last resort
<--- JS stacktrace --->
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

Sigh, this should NEVER be the case:
ambassador-2434898577-7z156   statsd       8m           2418Mi
ambassador-2434898577-7z156   ambassador   7m           93Mi
Ambassador (the thing I want) uses 93 MB, and statsd uses 2.5 GB :(

Thanks! What kind of load are you running? If you're in a position to test a few obvious fixes, the statsd container is very simple (source here: https://github.com/datawire/ambassador/blob/develop/statsd/).
We could try to upgrade the base Alpine image to mhart/alpine-node:9?
I looked at the default config.js options (https://github.com/etsy/statsd/blob/master/exampleProxyConfig.js) and it doesn't seem like there are any obvious missing config errors.
Are you actively using the statsd container? Any other ideas?

Sorry, got swamped with other things. I will try new alpine-node (actually I've build the Docker container and had some Python related errors that don't give me warm feeling about this). For now I nuked the statsd container from the deployment because I don't want to pay 2.5 GB in monitoring for 93 MB of useful compute. As horrible as that sounds (not monitoring Envoy), it's the right thing to do until statsd container is stable. Are you able to repro this? I am getting this on a blank Ambassador, no traffic whatsoever...

...wait, which Python errors, and which Docker container?
Ambassador 0.29.0 will be out shortly; it has the upgraded Alpine node, and we'd be very happy if you can try that.

("out shortly" == "I'm running final test on it before shipping".)

statsd Docker container build complains about Python not being set up. It really wanted to rebuild some nodejs code, but could not (did not dive deep into it). Here's the error (which does not fail Docker build, btw):
gyp ERR! configure error
gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.
gyp ERR! stack     at PythonFinder.failNoPython (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:483:19)
gyp ERR! stack     at PythonFinder. (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:397:16)
gyp ERR! stack     at F (/usr/lib/node_modules/npm/node_modules/which/which.js:68:16)
gyp ERR! stack     at E (/usr/lib/node_modules/npm/node_modules/which/which.js:80:29)
gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/which/which.js:89:16
gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/which/node_modules/isexe/index.js:42:5
gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/which/node_modules/isexe/mode.js:8:5
gyp ERR! stack     at FSReqWrap.oncomplete (fs.js:170:21)
gyp ERR! System Linux 4.13.0-32-generic
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /application/node_modules/modern-syslog
gyp ERR! node -v v9.8.0
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
npm WARN saveError ENOENT: no such file or directory, open '/application/package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open '/application/package.json'
npm WARN application No description
npm WARN application No repository field.
npm WARN application No README data
npm WARN application No license field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/modern-syslog):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>install: node-gyp rebuild
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

This is during:
Step 3/5 : RUN npm install https://api.github.com/repos/etsy/statsd/tarball/8d5363c
---> Running in bcd043dcf306

<EMAIL_ADDRESS>install /application/node_modules/modern-syslog
node-gyp rebuild

I'm going to try https://github.com/bitly/statsdaemon. Need a load testing setup (most likely) to repro the memory leak though. @mradmila are there any general stats you can share about your load that would help in repro situation here?

There is no load, which is the sad part. I've used it (Envoy/Ambassador) for 5 mins, verified it routed properly and left the cluster alone. I had 10 routes with gRPC, routing based on custom HTTP header value. I came back after the weekend and saw ~25 restarts, all related to statsd. Every time I looked at top for that container, it was never using less than 900MB. This has a 100% repro for me, as I tried with other clusters. This is on Azure AKS and ACS, if that matters (I doubt it).

I set up a 3 node test cluster in GKE, with 3 HTTP routes. It's been 17 hours, and I see that the statsd container is hovering around 28MB. Will leave it running for another few days to see if it grows.
Note: this is with statsd 0.29 where we've upgraded the base statsd image to alpine-node:9.

Great, I will give it a shot today. If I get different results, I will reply with more specific details on my deployment.

I've tried 0.29.0, and watched statsd container from inside using top. It gains a MB every few seconds. It is currently at ~650 MB. I will send you more details on the deployment, but it may have to be on Monday.

Even without any routes the memory is climbing up. This is just a few seconds after starting up Ambassador:
PID  PPID USER     STAT   VSZ %VSZ CPU %CPU COMMAND
1     0 root     S     625m   1%   1   0% statsd config.js
16     0 root     S     1588   0%   1   0% sh
24    16 root     R     1524   0%   0   0% top

OK, I see how you're getting to this. I get the same thing  (630m for me) when I exec top on the statsd container. I was doing this:
test (⎈ |gke_datawireio_us-central1-a_rdl-amb-lt-test:default)$ kubectl top pod ambassador-79ff548968-9sxrk --containers
POD                           NAME         CPU(cores)   MEMORY(bytes)
ambassador-79ff548968-9sxrk   ambassador   7m           90Mi
ambassador-79ff548968-9sxrk   statsd       28m          29Mi

I haven't seen any restarts, though. Will keep it running.

OK, here is what I see:
test (⎈ |gke_datawireio_us-central1-a_rdl-amb-lt-test:default)$ kubectl top pod ambassador-79ff548968-lvq86 --containers
POD                           NAME         CPU(cores)   MEMORY(bytes)
ambassador-79ff548968-lvq86   ambassador   6m           102Mi
ambassador-79ff548968-lvq86   statsd       30m          28Mi

However, an exec to the pod shows:
Mem: 1587516K used, 2206844K free, 6248K shrd, 150528K buff, 849608K cached
CPU:  10% usr  10% sys   0% nic  80% idle   0% io   0% irq   0% sirq
Load average: 0.20 0.62 0.53 4/302 28
  PID  PPID USER     STAT   VSZ %VSZ CPU %CPU COMMAND
    1     0 root     S     644m  17%   0   0% statsd config.js

Regardless, though, no restarts.

I still can't reproduce, although we've seen other reports of this issue, so I'm sure it occurs ;-). I investigated some different approaches to solving this issue; summarizing below.
The statsd container functions as a UDP repeater, since Envoy can only route statsd packets to a pre-determined IP address. Thus, we flush statsd packets to localhost, and then have the statsd sidecar repeat the UDP packets to statsd-sink.
We can:

Switching to an alternative statsd implementation. The best one I've found is Bitly's golang port, but not sure if it can do the repeater functionality.
Use a plain ol' UDP repeater. I couldn't find one in Google that seemed any good.
Switch to using TCP for statsd, where Envoy does support DNS-addressable routing. This would require a rework of the statistics/monitoring section. I haven't done an exhaustive search, but it seems that TCP-based statsd is not as well supported as UDP.

@mradmila OK, I have an alternative implementation that uses socat. If you're willing to give it a test, I've got a test image up. You should be able to replace the statsd image in the standard deployment YAML with image: richarddli/socat:3.

Thanks... sorry I was quiet, I am heads down on something this week. I will try this on Monday, maybe tomorrow, if all goes well. Thanks for looking into this. I am surprised you are not hitting the same issue? For me this is 100% repro. The only variable perhaps is Azure/K8s version. Will let you know once I try.

Super, thanks. I would really like to try to find a reproducer to get into our test suite. We've also had reports from other users who are not on Azure, so I don't think it's Azure. I'm on GKE, running 1.8.7.

Hi, I have the same problem on Azure/AKS. Ambassador 0.29, statsd container leaking memory and has high CPU on an idle system

The fix is on the develop branch and should be in the next release of Ambassador. If this is an issue for you right now, please try the socat image referenced above (richarddli/socat:3) and let us know how it goes.


ExtensionQuery: Extend functionality for some aggregates

There is currently no way to add an aggregate like:
{maxTimestep(0..(N*N)) : fieldSize(N)} = 1.
It should be expanded to something like:
{query1(maxTimestep(0..(N*N))) : fieldSize(N)} = 1 :- externalquery1.
which is similar to what expandFactModuleProperty does with pure facts, but curly braces are not considered in that method and it requires this kind of construct to be added as a fact instead of a rule.
(expandRuleModuleProperty will currently expand it to
{query1(maxTimestep(0..N)) : fieldSize(N), externalquery1} = 1.
which is a syntactically valid rule but doesn't have the intended behaviour)

I think we fixed it. See f27a3b9 and 2a3fd0c

Tested, seems to work.


fix: Update .travis.yml to fix apk build

Fixes #88 (Probably)
I think this should fix the build

Now failing due to entire play services bundle included in the app. Fixing...

Issue in lint now. Fixing...

Fixed but after disabling checks. Looking like travis has a bug.
Have found the issue. Let's see :crossed_fingers:

Done @niranjan94. :+1:

Let me just test one more thing please
If it works without disabling check for NewApi, it'll be awesome

Working correctly.
You may merge now

Should I squash or let it be?

Done @niranjan94

@iamareebjamal looks good. Feel free to merge once the travis build passes.
And also, never make branches on the main repo. Please fork this into your account and make a branch there in future.

Also, we should consider circle ci as it is faster and supports uploading artifacts which can be easily viewed.
Like release apk, debug apk, and full hosted html of test, lint warning and errors
Travis needs an S3 account for doing so

Yeah, sorry for that. I clicked on edit on my repo, still it created a branch here. Won't happen again

@iamareebjamal what we follow here at fossasia is, we push built apk's onto an apk branch on the repo. We would like to do the same here. For now, we will be staying on Travis CI for uniformity.

@niranjan94 True about the apk build, but it is easier to see the lint and test results as html. Susi Android uses circle ci. I wasn't suggesting moving from Travis, rather having circle ci has well

@niranjan94 I don't have write access to the repo. Please merge :)

@iamareebjamal you do have write access to the repo. (That's why github created a branch for you here when you pressed edit.)

I thought so, but it was showing that I wasn't authorized to make merge on master branch as it was protected

@iamareebjamal lemme check that


type 'GeneratedMessage' can't be returned from method 'copyWith'

so after upgrading to flutter 1.20 now the generated files *.pb.dart have errors when super.copyWith is generated.
example:
Report copyWith(void Function(Report) updates) => super.copyWith((message) => updates(message as Report));
the error says:
A value of type 'GeneratedMessage' can't be returned from method 'copyWith' because it has a return type of 'Report' .dart(return_of_invalid_type)
I'm on  libprotoc 3.12.4
below is my flutter doctor -v if required:
    • Flutter version 1.20.0 at /Users/zaher/flutter
    • Framework revision 840c9205b3 (31 hours ago), 2020-08-04 20:55:12 -0700
    • Engine revision c8e3b94853
    • Dart version 2.9.0

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at /Users/zaher/Library/Android/sdk
    • Platform android-29, build-tools 29.0.3
    • ANDROID_HOME = /Users/zaher/Library/Android/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.3.1, Build version 11C504
    • CocoaPods version 1.8.4

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 46.0.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.47.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.13.2

do you have implicit-casts: false in analysis_options.yaml ?
as a workaround, removing that line worked for me.
this #317 pull request seems like could solve this issue by using generic strongly typed copyWith() alternative

Thanks,
Yeah Removing  implicit-casts: false  did solve the issue as  a workaround.
Hope it can be fixed though

I managed to "fix" this by introducing more explicit casts. I did this the ugly way, but I assume it should be be easy enough by changing the code generation to do this instead. I just couldn't figure out how to make all the package versions line up.
find "lib/protos" -type f -exec sed -r \
    -e 's/as ([^ \)]+)\)\)/\0 as \1/g' \
    -i  \{\} \;

This will change
Settings copyWith(void Function(Settings) updates) => super.copyWith((message) => updates(message as Settings));

into
Settings copyWith(void Function(Settings) updates) => super.copyWith((message) => updates(message as Settings)) as Settings;

This seems to be fixed in 20.0.0.

Fixed with 780bee8c.


Federation background delivery process test fail

Hi, going through your code as ActivityPub learning exercise as this is the nicest ActivityPub code I could find on the web!
Back to the point: I got 2 tests failing. Going through documentation you've warned about possible http-signature issue, but
I didn't get the InvalidHeaderError, so I am raising this as an issue.
The tests were run on Windows 10, Node: v14.5.0, NPM: 6.14.5.
1) federation background delivery process backs off repeated attempts
  - Expected spy deliver to have been called 4 times. It was called 3 times.

2) federation background delivery process can restart delivery while retries are pending
  - Expected spy deliver to have been called 4 times. It was called 2 times.
  - Expected spy deliver to have been called 6 times. It was called 5 times.
  - Expected $[2] = 'https://mocked.com/bob/inbox' to equal 'https://ignore.com/sally/inbox'.

I updated my node to v14.16.0 but the problem persists

Thanks for the kind words. These two tests use timeouts, so they are prone to false positives. They may pass if you re-run the tests. The tests could be improved by replacing the timeouts with a combination of clock mocking (to run out delivery delay timers) and process.nextTick (to allow promises to resolve)

Thanks for the reply - I suspected it must be timeout related and tried different timeout values but haven't been successful in finding the right ones to pass the test - but I am happy to hear it is more of an imprecise test issue rather then a code issue.

I decided to give it a try few more times and I think I've found a sweet spot (for my machine at least). Giving 20ms per each call makes all the tests pass (4 calls: 80, 5 calls: 100, 6 calls: 120). It still passes the tests in 50% of time but at least I have seen all green.
Still seeing that deliveryDequeue().waitUntil.getTime() - Date.now() is different per each call I don't see how it could be tested to be universally correct.


Formatting is removed on save

Before:

After:

Code:
import 'dart:io';
import 'package:path/path.dart';
import 'package:excel/excel.dart';

final String FILE_NAME = 'Book1.xlsx';
final String SHEET_NAME = 'Sheet1';
final File file = File(join(FILE_NAME));
final Excel excel = Excel.decodeBytes(file.readAsBytesSync());

void main(List<String> args) async {
  save();
}

void save() {
  excel.encode().then((onValue) {
    File(join('output.xlsx'))
    ..writeAsBytesSync(onValue);
  });
}

Attachments:
Book1.xlsx
Environment:
Dart VM version: 2.8.1 (stable) (Thu Apr 30 09:25:21 2020 +0200) on "macos_x64"
Excel package version: 1.0.9
MacOS version: 10.15.5

you may need to turn the save into a future and await for the save
void main(List<String> args) async {
  await save();
}

Future<void> save() async{
  await excel.encode().then((onValue) {
    File(join('output.xlsx'))
    ..writeAsBytesSync(onValue);
  });
}

@ialameh unfortunately that does not solve the issue.

We have fixed the issue and it will be available in version excel: ^1.1.0 by tomorrow EOD.


add state & copy number support to specification

Per discussions in Toronto
Board shots: https://photos.app.goo.gl/XOUcdMs2GXvAEJyV2
General idea:

define a new State object. Attributes are something like: location_id, exact: T/F/Unk, copies (interval)
State instance may be used as an Allele state (in addition to current sequence support). This enables an expression of copy number of unknown location

Please use #46 for a consolidated discussion of CNV requirements.


Multi-namespace workflows

Summary
How do you suggest handling multiple namespaces that run Argo workflows in the new version?
The ways I’m thinking about right now are either:
a) workflow controller for each namespace and an Argo server for each namespace.
b) workflow controller for each namespace and a “managing” namespace which has a Argo server for each namespace with the “managed-namespace” patameter.
Is there a better way? Do you think it will be a good idea for you to implement an option to have one Argo server with multiple managed-namespaces for it?
Motivation
We are the MLOps team and we want every DS team to have their own namespace with their own resource limitations and only show in the Argo UI their own workflows.

I have similar issue: different team may want to create pods in different namespaces - their individual namespace would have different pods to interact with.
Currently --managed-namespace is a single string: https://github.com/argoproj/argo/blob/69179e72c0872cde9131cc9d68192d5c472d64c9/cmd/argo/commands/server.go#L35

See #3523

See #3523

I was able to achieve this by using the following workaround:

Run workflow-controller and argo-server without the --namespaced flag
Create a cluster role for workflow-controller with read only permissions:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: argo-workflows-controller
rules:
- apiGroups:
  - ""
  resources:
  - pods
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - get
  - watch
  - list
- apiGroups:
  - argoproj.io
  resources:
  - workflows
  - workflows/finalizers
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - argoproj.io
  resources:
  - workflowtemplates
  - workflowtemplates/finalizers
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - argoproj.io
  resources:
  - cronworkflows
  - cronworkflows/finalizers
  verbs:
  - get
  - list
  - watch

Bind the cluster role to the workflow-controller service account.
Provide write access to specific namespaces by creating a role with the appropriate permissions in that namespace and binding it to the workflow-controller service account.

I tried the above steps, been able to create the job in a different namesapce, however the job stucks in pending status forever, any idea
argo list
NAME                STATUS    AGE   DURATION   PRIORITY
sumc-cct-job7s7t9   Pending   15m   0s         0
sumc-cct-job9mphx   Pending   17m   0s         0
sumc-cct-jobbg7xr   Pending   19m   0s         0
sumc-cct-job29btn   Pending   26m   0s         0
sumc-cct-jobzlgpl   Pending   28m   0s         0
sumc-cct-jobdg2np   Pending   28m   0s         0
sumc-cct-jobjvh57   Pending   28m   0s         0
sumc-cct-jobbm6w7   Pending   33m   0s         0
sumc-cct-job9292s   Pending   49m   0s         0
sumc-cct-jobmvpkk   Pending   1h    0s         0

@dudicoco could you elaborate a bit more? I am trying to set this up, but the workflows are not starting. I think I also need to replace, not just add, the cluster role you suggest above.

@tachyus-ryan we are no longer using argo-workflows after our initial POC so I don't really remember the entire configuration.
However, if you post your yaml manifests here perhaps I could help you troubleshoot the problem.

Hi, I have started to test managed-namespace deployment recently and my concern is that the controller requires a ClusterRole to read the ClusterWorkflowTemplates (and probably something else). If not for this one, the deployment would only require normal Roles/bindings in the "master" and "managed" namespaces. Do you think it would be possible to make the "amanged-namespace" deployment not depending on Cluster-scoped CRDs or permissions?

is that the controller requires a ClusterRole to read the ClusterWorkflowTemplates

Do you think it would be possible to make the "managed-namespace" deployment not depending on Cluster-scoped CRDs or permissions?

ClusterWorkflowTemplates are optional. The official Helm Charts have logic for this too

To make multi-namespace Workflows properly support the k8s security model, we'd probably need a ClusterWorkflow CR. A Workflow CR does not suffice as it is namespace-scoped.
Although you can certainly workaround this by using the Workflows of Workflows pattern with sufficient RBAC to create workflows in other namespaces.


Some questions about ex2

I am new to MFEM and a little bit new to C++ , so maybe the question is a little bit stuipid .
In order to compute  then stress sigma(u), strain eps(u) , accroding to #10 ,I have tried that code and I get the postproc.gf file .
I return sigma(0,0) , So it looks like I got a  solution of stress . But in the postproc.gf file, I see three numbers are equal, and there are many groups of such numbers, and the number of groups is equal to the number of cells.As shown in the figure, by the way, the number of elements in the model is 4, I suspect this is the stress value of the integral point, if so, how do I get the stress value of the node
thank you!

sorry，i don't know

Hi @HFH104864,
Where to represent a coefficient (in your case sigma(0,0)) depends on the definition of the FiniteElementCollection.
For example L2_FECollection pp_fec(p); corresponds to discontinuous function which is a polynomial of order p in each element. In your case that order is p=1 ad you can tell from the L2_2D_P1 description in the saved file. For triangles that means three degrees of freedom per element. (In your case sigma(0,0) is a constant on each element, so these three degrees of freedom are the same)
In general, the stress is discontinuous, so it has multiple values in the vertices of the mesh. That's why the example uses a discontinuous space. If you really want a continuous representation, try replacing the L2_FECollection with H1_FECollection.
Hope this helps,
Tzanio

thank you for your anwer . And one more question , whether the stress obtained in that file can represent the true stress value

Hi @HFH104864,
Where to represent a coefficient (in your case sigma(0,0)) depends on the definition of the FiniteElementCollection.
For example L2_FECollection pp_fec(p); corresponds to discontinuous function which is a polynomial of order p in each element. In your case that order is p=1 ad you can tell from the L2_2D_P1 description in the saved file. For triangles that means three degrees of freedom per element. (In your case sigma(0,0) is a constant on each element, so these three degrees of freedom are the same)
In general, the stress is discontinuous, so it has multiple values in the vertices of the mesh. That's why the example uses a discontinuous space. If you really want a continuous representation, try replacing the L2_FECollection with H1_FECollection.
Hope this helps,
Tzanio
Thank you for your answer , and one more question. Whether the stress obtained in that file can represent the true stress value

And how can I get the VTK file about stress  , because I am trying to make a corresponding stress nephogram

Sorry I didn't see the question above (I modified your post to make it clear).
Yes, that is the exact stress for the given discretization.

thank you !


Can't clone template across resource pools

Within our datacenter we have two resources pools (DRS/HA clusters), DevQA and Production.  All of our templates reside within the DevQA resource pool.  I am not able to clone from the template with the destination pool being Production.
This works:
knife vsphere vm clone toddtest -f Templates --template RHLinux664 --vshost c3pivcenter1.corp.premierinc.com -u tcampbel  --vsinsecure --resource-pool DevQA --dest-folder "DEVQA Linux Servers" --verbose --cips <IP_ADDRESS>/24 --cgw <IP_ADDRESS> --chostname toddtest --ccpu 1 --cram 2 --cspec RHEL --cvlan "10.32.32 VM Net" --start
But when atttempting to use the Production resource pool (and Folder as well):
knife vsphere vm clone toddtest -f Templates --template RHLinux664 --vshost c3pivcenter1.corp.premierinc.com -u tcampbel  --vsinsecure --resource-pool Production --dest-folder "Production Linux Servers" --verbose --cips <IP_ADDRESS>/24 --cgw <IP_ADDRESS> --chostname toddtest --ccpu 1 --cram 2 --cspec RHEL --cvlan "10.32.32 VM Net" --start
It generates the error:
ERROR: RbVmomi::Fault: CannotAccessVmComponent: A component of the virtual machine is not accessible on the host.
This is our pool list:
knife vsphere pool list --vshost c3pivcenter1.corp.premierinc.com -u tcampbel  --vsinsecure
Enter your password:
Folder:
ClusterComputeResource: DevQA
VirtualApp: DevQA/Resources/ProSphere
Unknown type VirtualApp, not enumerating
ClusterComputeResource: Production
ClusterComputeResource: StackTest
ClusterComputeResource: VDI

Hi, I'm just seeing this issue and I'm very sorry you haven't received a response.
Is this still happening?

Hi, I'm going to close this to try and clean up our backlog of inactive issues. If you are still having this problem, please make sure you're running the latest version of the gem (gem install knife-vsphere) first, and then open a new issue so that it goes to the top of the list. Thanks.


flake8: made more files flake8 compliant

As title,

numba/core/dispatcher.py
numba/core/funcdesc.py
numba/core/postproc.py

@gmarkall thank you for looking at this PR. Is it now ready for merge or will it need a CUDA smoketest?

@esc I think it's good to merge - it's not CUDA specific, but I had a few minutes spare over the weekend so I thought I'd review this.

Okay, I'll give a smoketest to make sure it's alright.

numba_smoketest_cpu_yaml_2

Build farm passed!


Don't hide assertion stack trace when reporting test failures

In the released 0.4 version, all assertion failures come with a stacktrace that starts at AbstractSuiteRunner:63, since that's where a TestFailure is new-ed up, which is an Exception subclass that is reported as the error.
By reporing spec.getCause() instead, we get the real line number in the test where the actual assertion is, which is much more valuable.

Thanks a lot for this pull request.

Thanks a lot for merging it! Are snapshots for 0.5 published somewhere, or should we build our own?

The snapshots aren't built anywhere at the moment. Release versions are obviously uploaded to maven central.


Feature: Python support for pocketbase

Hi, this might be a bit out of topic but I would like to make Extend with python funtionality in pocketbase. I looked though your feature roadmap and it is not there. But I would like to make it.
If pocketbase is open to it, I would like to contribute with it.
Thanks,
Nirjal Paudel

Feel free to work on it. It doesn't need to be part of the main repo and can exist as separate plugin in its own repo.


Feature/store

Adds structured options for two reasons:

Simplify params/env management
Preparation for additional implementation of stores and cache

Coverage decreased (-0.1%) to 84.368% when pulling a287df02339f077992804a6cd05e3e9a10cc999c on feature/store into 835606c5cf7b08da2ca2aa3ce7b785c58e842c72 on master.


Update mark as read stream and topic to use /messages/flags/narrow endpoint.

As part of deprecating legacy unread endpoints (#23598), the web-app frontend code for marking a stream and topic as read should be updated to use the new /messages/flags/narrow endpoint.
Current use of legacy unread endpoints in unread_ops.js, CODE LINK
export function mark_stream_as_read(stream_id, cont) {
    channel.post({
        url: "/json/mark_stream_as_read",
        data: {stream_id},
        success: cont,
    });
}

export function mark_topic_as_read(stream_id, topic, cont) {
    channel.post({
        url: "/json/mark_topic_as_read",
        data: {stream_id, topic_name: topic},
        success: cont,
    });
}

It likely makes sense to reuse/refactor some of the work done for mark_as_unread_from_here to use the new endpoint (see this commit) for these functions.
CZO thread

@zulipbot claim

@zulipbot claim

Hi @lata-11 sorry to bother you. Speaking on the zulip-chat related thread with the founders i found out how to resolve this issue and actually started working. In fact i am ready to do the first commit to fix the mark stream as read function. If you didn't start working on it yet, can i please claim it?

Hi @marco-zan, I am still trying to figure out but it seems you had already figured it out. So you can claim it.

@zulipbot abandon

Thank you

@zulipbot claim

@zulipbot claim


Make progress bars useful again

An attempt to make the progress bars more friendly than they appear to be now:

determinate progress only for downloads, now includes downloaded / total sizes
waiting and installing switches to animated indeterminate progress
failed components' progress bar turns red
completed progress bar turns green
restarting downloads resets the downloading progress

Comments, criticism, issues, etc. welcome

Does it handle re-download of one file from CDK? It seems just reset counters to 0, but it should decrease downloaded by actual amount downloaded before failure.
What if progress is shown only for setup, when vagrant and virtualbox were detected?

From design point of view I think we should keep it as close as possible to document attached here https://patternfly.atlassian.net/browse/RHUAP-26. There is no colored progress bars in design UX team suggested.

Could you separate progress for download,  waiting/installing switches to animated indeterminate progress and coloring failed/completed progress and submit them as separated PR's?

A quick answer compilation:

restarting doesn't work on a per file basis - will definitely look into that
setup bars look the same as installation ones
colouring can be omitted / separated from the rest no problem
splitting download/wait/install etc. could make a mess of things

Fixed up the damn error - now it should correctly add up the download size for multiple files, plus restarting download now works properly if some file already finished downloading.
Also removed the colouring for now, so it's all blue (downloading, finished) or striped blue (waiting, installing, setting up).

That is awesome! Thanks! Just in time for next PR with download-manager links for testing.
Released to master as  707a1e2 after re-base.


foldx objective functions could be under a common interface

Currently, we have plenty of code repetition between foldx_stability, foldx_sasa, and foldx_stability_and_sasa. We could easily move most of the methods to either the FoldxInterface, or to a different class the black boxes could inherit from.

Some progress has been done in this front, with the implementation of the FoldxBlackBox, but there's still plenty of code repetition in the problem factories.


Search Plugin option to search from beginning of node text

Hi there,
I need a search which searches exactly for a string from the beginning of a nodes text. For example when I search for "he" it should find nodes like "HEll" and "HEllo" but not "sHE" or "wHEn". Is this possible right now?
I am using a a ajax search and when my server returns for example one node, the search plugin still searches for other cached nodes if the search query is available in one of those. That way the search plugin may show different search results, than my search engine is returning :( Is it possible to limit rhe results to only those which came from the server?
Thanks in advice!

Okay, after going through the issues-list I found one solution, by calling the search_callback:
search_callback: function(str, node) {
   if (node.text.toLowerCase().indexOf(str.toLowerCase()) === 0) {
      return true;
   }
   return false;
}

Regards!

No, using server results are not possible and I do not plan to add such functionality - sorry. You can however make sure that you implement exactly what you need using search_callback.


python3Packages.modeled: fix build

Description of changes
ZHF: #199919

Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

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

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

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

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

[X] Fits CONTRIBUTING.md.

After applying the suggestion, I could not get to build. I was too happy to pass nixpkgs-review wip (no packages were built) and create this PR. I was investigating a little further
after disabling tests, it builds. However, zetup is required at runtime and its version check occurs when module medeled is imported. The check needs __version__ variable in __init__.py of path package which fails.


Update overview.rst

fix a broken link

Is the skip_release_notes broken for this PR?

Is the skip_release_notes broken for this PR? @sklam

Is the skip_release_notes broken for this PR? @sklam

I was under the impression you needed to close and open the PR to get the check to actually skip.


Fcu has two definitions

In GitLab by @schislet on Mar 25, 2021, 12:03
Summary
For LTS materials fcu = copper fraction of the cable conductor. For HTS materials fcu = copper fraction of the cable conductor NOT including the copper within the REBCO tapes themselves.
We should introduce a second variable for HTS, fcu_HTS, to make this distinction more clear.
@mkovari @skahn
Checklist
After implementing issue do the following

[ ] Run test suite
[ ] Does it change the output? If so, give justifications.
[ ] Does it change the baseline 2019 run? (you may need to run on Freia)
[ ] Merge request created

fcu is used as an input (fcutfsu, fcupfsu and fcuohsu) so the copper fraction would not include REBCO for HTS materials as REBCO variables are handled separately. Have made slight change to wording for the copper fraction within the documentation to make this clearer.


[BUG] Can't build with XF 4.0 Stable

Describe the bug
Error		The "LinkAssemblies" task failed unexpectedly.
Mono.Linker.MarkException: Error processing method: 'System.Void Xamarin.Forms.IShellControllerEvents::<get_HeaderChanged>b__3_0(System.EventHandler)' in assembly: 'ReactiveUI.Events.XamForms.dll' ---> Mono.Cecil.ResolutionException: Failed to resolve System.Void Xamarin.Forms.IShellController::add_HeaderChanged(System.EventHandler)
at Mono.Linker.Steps.MarkStep.HandleUnresolvedMethod(MethodReference reference)
at Mono.Linker.Steps.MarkStep.MarkMethod(MethodReference reference)
at Mono.Linker.Steps.MarkStep.MarkInstruction(Instruction instruction)
at Mono.Linker.Steps.MarkStep.MarkMethodBody(MethodBody body)
at Mono.Linker.Steps.MarkStep.ProcessMethod(MethodDefinition method)
at Mono.Linker.Steps.MarkStep.ProcessQueue()
--- End of inner exception stack trace ---
at Mono.Linker.Steps.MarkStep.ProcessQueue()
at Mono.Linker.Steps.MarkStep.ProcessPrimaryQueue()
at Mono.Linker.Steps.MarkStep.Process()
at MonoDroid.Tuner.MonoDroidMarkStep.Process(LinkContext context)
at Mono.Linker.Pipeline.Process(LinkContext context)
at MonoDroid.Tuner.Linker.Process(LinkerOptions options, ILogger logger, LinkContext& context)
at Xamarin.Android.Tasks.LinkAssemblies.Execute(DirectoryAssemblyResolver res)
at Xamarin.Android.Tasks.LinkAssemblies.Execute()
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
at Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext()
Environment

OS: Windows
Vs version: 16.0.4
Version of XF:  <IP_ADDRESS>5677
Version of RxUI: 9.15.9

Our events library is always one behind the latest. We just had a checkin for 3.6 go in this morning and I will do a release later today for that.
Part of the pain will go away once I get Pharmacist finalized https://github.com/reactiveui/pharmacist
Basically it's going to replace the .Events packages with a msbuild task.
So that way it'll scan your NuGet references and generate Observables for you.

thanks @glennawatson

Resolving this, you can do something similar to what we do in our ReactiveUI.Events.XamForms project now.
https://github.com/reactiveui/ReactiveUI/blob/ee5d742751d5d1226fcce68714880955f3be6c78/src/ReactiveUI.Events.XamForms/ReactiveUI.Events.XamForms.csproj#L12
Include a PackageReference to "Pharmacist.MsBuild", which is a ReactiveUI project which generates observables for events for whatever PackageReference's are inside the current project.
Make sure it's in the project with XamarinForms.


assresschanged

Closes
Closes #1558
Description
i have changed the contact us section attractive
Screenshots

Note to reviewers

Checklist:

[x] I have linked the PR to the correct issue.
[x] I have read the Contribution Guidelines
[x] I have built and tested the changes, and they do not break or show any errors.

can you please review my pr @Vaishnavi-Patil2211 and kindly add level3 issue for it

can you please review my pr @Divesh2003 and kindly add level3 issue

can you please review my pr @Divesh2003 and kindly add level3 label

can you please review my pr @Divesh2003 and kindly add level3 label

can you please review my pr @Divesh2003 and kindly add level3 label

can you please review my pr @Divesh2003 and kindly add level3 label

can you please review my pr @Divesh2003 and kindly add level3 label

@khadar1020 Hello. For enhancement, Level 2 is added. For new functionality, Level 3 is added

ok @Divesh2003 thanks for merging


support a more generic ipxe installer

Description
Allows more generic support for ipxe installers for installation of an OS which cannot be modified to work with the OSIE installation method.
The new ipxe installer works similar to custom_ipxe however differs in that it is selected earlier in the process for different handling of data and which is used for any os which has the installer set to ipxe.
Why is this needed
Some os installation processes have unique installation environments which do not lend themselves easily to osie liveos / workflow setup as seen with other installers in boots like vmware and coreos. However instead of hard coding a new OS into boots, this method allows for those dynamic configurations to be handled separately by allowing the installer to be set to ipxe which supports chaining or injecting a script to boot the installer.
The model has changed for packet.OperatingSystem to now have two additional optional fields Installer and InstallerData.
The ipxe installer is configurable through the InstallerData field which it expects to be a string encoded JSON blob of which two fields may be specified chain which should be a full URL to a valid iPXE script and script which allows for injecting an ipxe script directly.
Example of both configurable fields:
{
  "chain": "https://boot.example.com/unique_os_installer.ipxe",
  "script": "echo Welcome to unique os installer\nshell\n"
}

Example using iPXE installer with chain loading:
{
  "distro": "Unique OS",
  "os_slug": "unique_os",
  "slug": "unique_os_7",
  "version": "7",
  "installer": "ipxe",
  "installer_data": "{\"chain\": \"https://boot.example.com/unique_os_installer.ipxe\"}"
}

How are existing users impacted? What migration steps/scripts do we need?
No changes to existing functionality, only adding additional support.

Hey @mikemrm, I'm not seeing how this is different than the existing custom_ipxe? custom_ipxe can already handle ipxe scripts via a URL to chain load or just a custom IPXE script.

Correct @jacobweinstock however this differs in how it is triggered. The custom_ipxe is only used when an OperatingSystem distro is set to custom_ipxe which it then looks at a field attached to the instance ipxe_script_url.
The trouble is that this process is only triggered due to the distro being custom_ipxe so if we needed to support a new OS which would have a distro of My OS (my_os) which needed to chain load an ipxe script. We would have to overwrite the distro field sent to cacher/tink with custom_ipxe which is undesireable.
This change makes this path more direct by not relying faking / overriding a field.

Also, I've put out a proposal  that includes deprecating all installers besides a default. I believe there has been an unofficial desire amongst the community to deprecate all installers too.

I agree with that desire and I believe this functionality would allow us to remove the other installers leaving only this method.

@mikemrm , there are actually 2 fields that can trigger a Boots Installer. metadata.instance.operating_system.slug and metadata.instance.operating_system.distro. slug is checked first and then distro is checked.
If I understand the use-case correctly, if the slug is set to be custom_ipxe, the distro can be anything (my_os) for example.

Correct, it does appear custom_ipxe is actually only being registered for a slug. Meaning slug is the field that would need to be set.
This however doesn't change the issue, as slugs are typically understood as a unique string. Which in this case is the Operating System Version slug which an OS may have many OSVs.

chaining and script can both be done with custom_ipxe, why do we need this instead of custom_ipxe?

well I should refresh before commenting it seems

@mikemrm and I talked offline. (@mikemrm correct me if I misspeak here at all!) Here's the synopsis. There is a desire to add an additional hardware data field metadata.instance.operatiing_system.Installer that will be checked before slug and distro. Also, there is a desire to add another new add hardware data field: metadata.instance.operatiing_system.IntallerData. This field would be a string but expected to be a JSON string of {"chain": "", "script":""}.
The reasoning behind this is that it makes sense for the custom business logic internal to Equinix metal that interacts with hardware data via tink/cacher. As the hardware data model in Tink is arbitrary and not enforced, I don't see why this shouldn't be allowed. I did ask Mike to compromise and not create a new Boots Installer but to modify custom_ipxe without breaking backwards compatibility. Mike said he will see what he can do and update this PR.

Do we really need support for both chain and script fields? Chain can already by done by filling into script.

Do we really need support for both chain and script fields? Chain can already by done by filling into script.

Script was included to make it easier to push an exact script rather than relying on an externally hosted one. This is just a beneficial addition I can see useful for many things including testing without relying on external services.

I think it's important to note the following. This functionality can already be accomplished via the existing custom_ipxe Installer. In my opinion, what this PR does do is create a more clear mapping from hardware data to Boots installer.
New:
metadata.instance.operating_system.installer -> Boots Installer
Existing:
metadata.instance.operating_system.slug -> Boots Installer
metadata.instance.operating_system.distro -> Boots Installer

Do we really need support for both chain and script fields? Chain can already by done by filling into script.

Script was included to make it easier to push an exact script rather than relying on an externally hosted one. This is just a beneficial addition I can see useful for many things including testing without relying on external services.

Right, so why don't we just support only script and if the use wants to chain they can provide the script that does so.

Besides the fact that it supports the two code paths of the original custom_ipxe method. I think it also makes an easy way to do the chain loading and adds minimal code. However if you feel this cannot be, I can remove.

Do we really need support for both chain and script fields? Chain can already by done by filling into script.

Script was included to make it easier to push an exact script rather than relying on an externally hosted one. This is just a beneficial addition I can see useful for many things including testing without relying on external services.

Right, so why don't we just support only script and if the use wants to chain they can provide the script that does so.

Besides the fact that it supports the two code paths of the original custom_ipxe method. I think it also makes an easy way to do the chain loading and adds minimal code. However if you feel this cannot be, I can remove.

Yeah I think this makes sense, it also makes explicit what was implicit before (either you feed in an ipxe script or we'll chainload what is presumably a url).

I'm late to the party, but I have brought up previously that a data uri should be supported as a way to offer ipxe scripts. #110
This would be a minimal change that introduces added functionality within the existing spec.
Thoughts, @mikemrm?

That is an interesting idea @displague however I'm not sure how common it is for someone to want to data uri encode a script and would be interested to see others thoughts about supporting it.

however I'm not sure how common it is for someone to want to data uri encode a script

I imagine users are not writing templates by hand and would use CLIs and APIs to get the value in place.
We have a URL field and data URLs are an established pattern for providing any data as a URL. Rather than fetch the resource over HTTP, ftp, nntp, gopher, we have the data contained in the URL and the field can be said to support HTTP, HTTPS, and data URLs.
Existing APIs and CLIs that wrap the Tinkerbell API and pass the IPXE URL to Tinkerbell will get this functionality for free.


Azure.Template.UseVariables stumbles on variables with weird names like: $fxv#0

Description of the issue
The Azure.Template.UseVariables is incorrectly failing on auto-generated variables associated with bicep's loadTextContent function.
The variables are all named like $fxv#n where n is a number starting at 0 and "fxv" apparently means "function variable" 🤷🏽
I am pretty sure it's the name of the variable (that $ character, most likely 😉) and not the way that it's being used that's at fault. We have these loadTextContent functions scattered around for a couple of different use cases, and they are all failing this way.
To Reproduce
Steps to reproduce the issue:
Take a sample bicep file, Repro.bicep:
@description('Optional. A different location to deploy to. Default is the resource group location.')
param location string = resourceGroup().location

@description('Just a repro test case')
resource deploymentScript 'Microsoft.Resources/deploymentScripts@2020-10-01' = {
  location: location
  name: 'appGatewayIPLookup'
  kind: 'AzurePowerShell'
  identity:{
    type:'UserAssigned'
    userAssignedIdentities:{
      'Some-Id' : {}
    }
  }
  properties: {
    scriptContent: 'Write-Host'
    arguments:'@"\n${loadTextContent('Repro.bicep')}\n"@'
    azPowerShellVersion: '7.1'
    retentionInterval: 'P1D'
    timeout: 'PT30M'
    cleanupPreference: 'OnSuccess'
  }
}

Build it:
bicep build .\Repro.bicep

You'll get:
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "<IP_ADDRESS>",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "<IP_ADDRESS>646",
      "templateHash": "17505893753649058170"
    }
  },
  "parameters": {
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Optional. A different location to deploy to. Default is the resource group location."
      }
    }
  },
  "variables": {
    "$fxv#0": "@description('Optional. A different location to deploy to. Default is the resource group location.')\r\nparam location string = resourceGroup().location\r\n\r\n@description('Just a repro test case')\r\nresource deploymentScript 'Microsoft.Resources/deploymentScripts@2020-10-01' = {\r\n  location: location\r\n  name: 'appGatewayIPLookup'\r\n  kind: 'AzurePowerShell'\r\n  identity:{\r\n    type:'UserAssigned'\r\n    userAssignedIdentities:{\r\n      'Some-Id' : {}\r\n    }\r\n  }\r\n  properties: {\r\n    scriptContent: 'Write-Host'\r\n    arguments:'@\"\\n${loadTextContent('Repro.bicep')}\\n\"@'\r\n    azPowerShellVersion: '7.1'\r\n    retentionInterval: 'P1D'\r\n    timeout: 'PT30M'\r\n    cleanupPreference: 'OnSuccess'\r\n  }\r\n}\r\n"
  },
  "resources": [
    {
      "type": "Microsoft.Resources/deploymentScripts",
      "apiVersion": "2020-10-01",
      "name": "appGatewayIPLookup",
      "location": "[parameters('location')]",
      "kind": "AzurePowerShell",
      "identity": {
        "type": "UserAssigned",
        "userAssignedIdentities": {
          "Some-Id": {}
        }
      },
      "properties": {
        "scriptContent": "Write-Host",
        "arguments": "[format('@\"\n{0}\n\"@', variables('$fxv#0'))]",
        "azPowerShellVersion": "7.1",
        "retentionInterval": "P1D",
        "timeout": "PT30M",
        "cleanupPreference": "OnSuccess"
      },
      "metadata": {
        "description": "Just a repro test case"
      }
    }
  ]
}

Test it:
Invoke-PSRule -InputPath .\Repro.json -Format File -Module 'PSRule.Rules.Azure' -Outcome Fail | Format-List

Expected behaviour
There are no problems in this template, I should get no output. You can clearly see the variable is used on line 38.
Error output
The Azure.Template.UseVariables rule fails:
Recommendation : Consider removing unused variables from Azure template files.
Reason         : {The variable '$fxv#0' was not used within the template.}

Module in use and version:

Module: PSRule.Rules.Azure
Version: ** 1.15.2**

Captured output from $PSVersionTable:
Name                           Value
----                           -----
PSVersion                      7.2.3
PSEdition                      Core
GitCommitId                    7.2.3
OS                             Microsoft Windows 10.0.19042
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

@Jaykul Thanks for reporting the issue. We will take a look.

@Jaykul Thanks for the repo. You are correct there is an issue with the use of $ in the variable name.


URL whitelist error

Trying to open a website on button click. It gives me an error as below eventhough I have whitlisted the url in manifest file. Please let me know How can I fix this issue.
URL (https://login.salesforce.com/) does not match any of the prefixes whitelisted for use in the add-on.
Whitelist:
Original:

https://mail.google.com/
Effective:
https://mail.google.com/

This issue tracker is for the OAuth library, and this seems to be a problem with Gmail add-ons:
https://developers.google.com/gmail/add-ons/concepts/manifests#whitelisting_urls
That said, I tested it out and I'm able to successfully whitelist URLs used in the OAuth flow. If you aren't using a HEAD deployment you'll need to deploy a new version of your script for the whitelist change to take effect.

I tested with HEAD deployment and a new version It did not work. It does not give any error with google website urls
var buttonSet = CardService.newButtonSet();
var button = CardService.newTextButton()
.setText("This button opens a link in an overlay window")
.setOpenLink(CardService.newOpenLink()
.setUrl('https://login.salesforce.com/')
.setOpenAs(CardService.OpenAs.FULL_SIZE)//setOpenAs(CardService.OpenAs.FULL_SIZE)
.setOnClose(CardService.OnClose.RELOAD_ADD_ON));
buttonSet.addButton(button);
code in manifest file
"urlFetchWhitelist": [
"https://login.salesforce.com/", "https://fm1--sandbox01.cs47.my.salesforce.com/",
"https://en.wikipedia.org/wiki/"
],
"openLinkUrlPrefixes": [
"https://login.salesforce.com/",
"https://mail.google.com/",
"https://script.google.com/a/google.com/d/",
"https://drive.google.com/a/google.com/file/d/",
"https://en.wikipedia.org/wiki/",
"https://www.example.com/"
],

Made te same mistake. It should be like gmail.openLinkUrlPrefixes
"gmail": {
...
"openLinkUrlPrefixes": [
"https://login.salesforce.com/",
"https://mail.google.com/",
"https://script.google.com/a/google.com/d/",
"https://drive.google.com/a/google.com/file/d/",
"https://en.wikipedia.org/wiki/",
"https://www.example.com/"
]
}


[opentitantool] Remove eprint during legacy_rescue

When OTT is used in scripts, the stderr is typically mapped to stdout. If we print something to stderr for every progress iteration, it breaks the progress bar updating in place, and instead each progress bar update will print on a newline instead of replacing itself.
With this change, the progress bar can update in place.

Ping. Can we merge please?


npm ERR! Unsupported URL Type "workspace:": workspace:*

version: 8.0.0
npm install @svgr/webpack@latest --save-dev
npm ERR! code EUNSUPPORTEDPROTOCOL
npm ERR! Unsupported URL Type "workspace:": workspace:*
probably related to this lerna issue https://github.com/lerna/lerna/issues/3671
@svgr/plugin-jsx and @svgr/plugin-svgo have in package.json
"peerDependencies": {
    "@svgr/core": "workspace:*"
  },

@alexeymolchan thanks for reporting it. I published a new one with "*" as peer dependency. It should work.

@gregberge thanks. tested it out - works fine.


Fix reset is called before submitted

Currently in the _submitForm function grecaptcha.reset() is called before the _submitAction check and subsequent _captchaForm.submit() call, hence when the form is submitted as a normal form (not using the captcha trigger) the g-recaptcha-response is empty/null.
May be related to #81 and may be a similar issue causing #86 (The script seems a bit different and I was only interested in the multi-forms implementation)
I haven't looked yet but I think _captchaCallback should loop through the ._g-recaptcha elements and call render on each. Also grecaptcha.execute and grecaptcha.reset should pass the opt_widget_id paramter but I haven't figured out how to adapt it yet.

Hi @mnightingale ,
Thanks for your pull request.


ORC-2054: [C++] fix return wrong result if lack of hasnull

What changes were proposed in this pull request?
This pr fix the bug that if the column statistics in a orc file is not fully written, and lack of hasnull field, user may get a wrong result using c++ to read it.
For example, a file struct<string col1, string col2>, has 10 lines, col1 all has value, col2 all is null. the column 1's stat written by trino may be
numberOfValues: 10
stringStatistics {
minimum: "10"
maximum: "100"
sum: 565
}. col2's stat is  numberOfValues: 0. They all have no hasnull field. When we want to get where col2 is null, we will get nothing.
Why are the changes needed?
User may get a wrong result with this bug.
How was this patch tested?
Add unit tests.
Was this patch authored or co-authored using generative AI tooling?
No

Thanks for the fix! It makes sense ti me. Please make the CI happy.
BTW, has Trino fixed this issue on its writer side?

Thanks for the fix! It makes sense to me. Please make the CI happy.
BTW, has Trino fixed this issue on its writer side?

The ci is fixed, it seems need approval to rerun. We are trying to fix it on Trino.

Please fix the format check. Thanks!

Please fix the format check. Thanks!

Done, CI passed.

What is the target version for this fix, @shuai-xu and @wgtmac ?

I think we can backport this to 1.9 and 1.8?

I just merged it and backported it to branch-2.0. The backport to branch-1.9 failed due to our code style change since 2.0.

+1 for backporting decision. Thank you!

Sorry that I didn't check the JIRA id in title. :(

@dongjoon-hyun sorry, I open the issue on github https://github.com/apache/orc/issues/2054, need I open one on jira?

It's recoverable if we do reset those branches, master and branch-2.0. Although it could affect the downstream, do you mind resetting them, @wgtmac and @shuai-xu ?

BTW, I also missed this. So, you don't need to feel sorry about this. We can recover this in a correct way.

I have created https://issues.apache.org/jira/browse/ORC-1796 and fix the commits in both main and branch-2.0 branches.


Sync eng/common directory with azure-sdk-tools for PR 1366

Sync eng/common directory with azure-sdk-tools for PR https://github.com/Azure/azure-sdk-tools/pull/1366  See eng/common workflow

/check-enforcer override


Re-evaluate usage of encoding throughout the package

Right now many things internally are coerced to using UTF-8. This may be fine!  Occurrences of encoding collisions may be infrequent enough that it might as well be a YAGNI to do this.
But, it would be a good opportunity to strengthen understanding of when to handle encodings in which way(s).

Sphinx specifically encodes the compressed objects.invs using Python's default encoding of UTF-8.  Thus, import of compressed inventories should always work with UTF-8, and the code does not need to be changed on the compressed inventory side.

The big question is then the encoding used for read/write of decompressed inventories.
Currently, looks like the code is based around read/write of UTF-8 encoded plaintext (see here and here). The big change would be to add arguments allowing the user to specify whatever desired encoding for read/write, including adding an option to the CLI.


[Functions] Prevent connection name mistake

Summary
The focus of these changes is to guard against a common error made when configuring a trigger.  With these changes, if the trigger's connection property is set to a valid connection string instead of an
informational name, the mistake will be detected and sensitive information will be redacted from the error message to avoid accidental capture in logs and similar mechanisms.
References and related

[Functions] Logging sanitization for common configuration mistake (#45108)

API change check
API changes are not detected in this pull request.

/azp run net - eventhub-functions - tests

/azp run net - eventhub - functions - tests

/azp run net - servicebus - functions - tests


Is there any way to present DFG as a picture?

I want to output DFG explicit as a graph, is there a encapsulated class to do this?

Currently there is no way to output the DFG as a picture. I made an effort to have the toString methods human readable, hopefully that helps. If someone makes an effort in converting the DFG to a picture I'll be more than happy to assist in getting it to work.

PS: This is the example project. For future issues, please add them to https://github.com/daanvdh/JavaDataFlow/issues/ instead.


Add description to the examples

What this PR does / why we need it:
Which issue(s) this PR fixes:
Fixes #
Does this PR introduce a user-facing change?:

NONE

Nice catch!
/lgtm

Nice improvement 👍
/approve


Can't connect with Wallet Connect or Coinbase Wallet using the openConnectModal

Describe the bug
Can't connect with Wallet Connect or Coinbase Wallet using the openConnectModal
To Reproduce

Go to Homepage
Click on 'Sign in With Ethereum'
Click on 'Wallet Connect' or 'Coinbase Wallet'
Nothing happens

Expected behavior
A pop up to sign a sign-in transaction
Screenshots

Technologies (please complete the following information):

openConnectModal

Additional context

Hi @aguzmant103 ! Could you assign me this issue? I would love to collaborate on the project

Assigned to you @armandocodecr
Additionally, if you can check adding Rabby wallet as an additional provider that'd be great. Otherwise feel free to keep this task with the current scope


[Bug] Public resume is blank until refresh

Is there an existing issue for this?

[X] Yes, I have searched the existing issues and none of them match my problem.

Product Variant
Cloud (https://rxresu.me)
Current Behavior
When accessing the resume via the public link, the page is blank until it is refreshed. This issue apparently occurs only for first-time visitors to the URL.
Expected Behavior
The page should display the resume without the need to refresh.
Steps To Reproduce

Go to the sharing section.
toggle the public radio button.
copy the public URL.
Open an incognito window in Chrome or Edge.
navigate to the url.

What browsers are you seeing the problem on?
Chrome, Microsoft Edge
What template are you using?
None
Anything else?
I am using the Gengar template.

I have same issue. I don't understand how "Reactive Resume has helped people land jobs at these great companies". Too many weirdo bugs..

I have the same problem

I have the same issue. It is a self-hosted running behind trafiek

I'd like to report that I'm encountering the same issue.

Same. In edit it's also blank until I change the template, but a refresh always gets it back to blank (with the template set to whatever I changed it to)


build: update to support BETA releases

Alaska Airlines Pull Request
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Resolves: https://github.com/orgs/AlaskaAirlines/discussions/556
Summary:
This code diff represents changes made to multiple files in a Git repository. Let's break it down:

.github/settings.yml:

Line 38: The branches section is modified. The name field for the master branch is removed, and a new field &default_protection is added.
Line 59: The contexts field under required_status_checks is modified. The duplicate word contexts is removed.
Line 67: Two new branches, master and beta, are added with the same &default_protection settings.

.github/workflows/testPublish.yml:

Line 29: The condition for the release job is modified. It will now trigger on a push event to either the master branch or the beta branch.

package.json:

Line 71: The release section is modified. The branch field is replaced with an array of branches. The main branch is added, and the beta branch is added as a prerelease branch.

These changes include modifications to branch protection settings, the addition of new branches, and changes to the release workflow configuration.
Changes to be committed:
modified:   .github/settings.yml
modified:   .github/workflows/testPublish.yml
modified:   package.json
Type of change:
Please delete options that are not relevant.

[x] New capability
[ ] Revision of an existing capability
[ ] Infrastructure change (automation, etc.)
[ ] Other (please elaborate)

Checklist:

[x] My update follows the CONTRIBUTING guidelines of this project
[x] I have performed a self-review of my own update

By submitting this Pull Request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
Pull Requests will be evaluated by their quality of update and whether it is consistent with the goals and values of this project. Any submission is to be considered a conversation between the submitter and the maintainers of this project and may require changes to your submission.
Thank you for your submission!
-- Auro Design System Team

:tada: This PR is included in version 5.1.2 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


WebSockets don't report the correct state after closing due to "message too big".

Tested versions
Godot v4.4.dev2 - supports only TLS1.2 and fails because of lack of 1.3
Godot v4.4.dev (506d6e427) - a newly complied version that is supposed to add support for 1.3 but fails
System information
Ubuntu 24.04.1 LTS 24.04 - X11 - OpenGL 3 (Compatibility) - NVIDIA GeForce RTX 2060 (nvidia; 550.107.02) - AMD Ryzen 9 5900X 12-Core Processor (24 Threads)
Issue description
Can't load information from a server using WSS due to bad TLS1.3 support.
It doesn't work in any version, but this issue is intended for the latest attempts at adding full TLS1.3 support (issue, issue).
So the problem now (as I understand it) is that server sends a lot of data, but Godot can't handle it all. After a short working period it shows errors of ZeroWindow and sometimes others. It means that the client (Godot app) can't receive data fast enough. A browser and Postman still loading the same data perfectly fine.
I think it has something to do with the buffers or maybe something else. How it happens is shown on the screenshot from Wireshark log. Otherwise it's probably working for smaller amount of data, but it's not enough.
.
It's not a problem on the server side, as the loading is working perfectly fine in the browser and in Postman tests.

Creator of the server allowed to use it

Steps to reproduce
Try to use WSS in any version in any way to load data from https://aoe2lobby.com/spectate.
WSS address: wss://aoe2lobby.com/ws/spectate/
Must have headers: var arrayHeaders = PackedStringArray([
"Origin: https://aoe2lobby.com/ws/spectate",
])
Also, an alternative is not working in the same way - wss://aoe2recs.com/dashboard/api/
Minimal reproduction project (MRP)
bad WSS.zip

The default URL (wss://aoe2lobby.com/ws/spectate) returns a 500 during the handshake, so there is something wrong with the server.
Trying the other url (wss://aoe2recs.com/dashboard/api/) I see it's sending a huge message (172108) which is more than the default max packet / buffer size (65535 bytes).
After changing the inbound_buffer_size to something bigger (e.g. 1 MiB, socket.inbound_buffer_size = (1 << 20) - 1) it seems to work correctly.
In this scenario wslay (the library we use) should send WSLAY_CODE_MESSAGE_TOO_BIG (1009) to the server and close the connection. It appears that we are not correctly updating the internal state to transition to STATE_CLOSING or STATE_CLOSED.
In any case, the problem is that the inbound buffer is smaller than what the server sends. You should increase the inbound buffer of the socket.

nice, after I increased the buffer to 1 MiB it's working now. Huge thanks, I never set it so large before

@Faless sorry, does it support more than 1 MiB? I Increased it to hundreds of MB bit it's skipping the big load. It's just not disconnecting anymore and then periodically can recieve small updates.


Nitpick: possible unnecessary use of &mut Config in connect/accept

Checking the code, it seems that connect and accept both take a &mut Config instead of a &Config ultimately because tls::Context::new_handshake takes a &mut self in order to provide a mut pointer to OPENSSL_EXPORT SSL *SSL_new(SSL_CTX *ctx); which, incidentally, doesn't seem to change ctx at all.
tls::Context::as_ptr() is defined as
    fn as_ptr(&self) -> *mut SSL_CTX {
        self.0
    }

This means that it would be possible to remove all those mut everywhere; however this is a change to the public interface which may cause warnings emitted on calling code which previously weren't (plus, it would not reflect the state of SSL_new which has no const qualifier for the pointer, even if no changes seem to be made to the contents).
If you think such a change would be welcome, I can work a PR; if for compatibility or other reasons you think it's not, feel free to move this issue to the recycle bin :)

This is on purpose actually, in the sense that while using raw pointers allows us to work-around Rust's mutability restrictions, we shouldn't abuse it, so reflecting the fact that we will end up modifying the underlying structures seems to be the correct thing to do here.

we will end up modifying the underlying structures

Is the code modifying the underlying structures of Config though? As far as I can see it doesn't (SSL_new(SSL_CTX *ctx) doesnt change ctx) but I might be missing some change.
The main reason for the doubt is that at a code review stage it feels very weird to reuse a &mut over several connections; the expectation being that either a connection takes a read-only ref to the configuration, or takes ownership of a copy/clone of the configuration.

SSL_CTX is reference counted, so SSL_new() updates the count. In quiche basically we are just following the convention from the BoringSSL and requiring &mut when BoringSSL requires a non-const pointer (though we are not very consistent about this in the internal APIs...).
I mean, it's not a big deal or anything, it just seemed the most logical thing to do at the time.

Makes totally sense now, I didn't see the refcounting.
Thanks for the clarifications!
Closing this.

rust-openssl Ssl::new take &self but convert to *mut T,the discussion still can't decide whether is ub or not.
https://github.com/sfackler/rust-openssl/blob/538a5cb737e8d83085553cac01643820dc7ff205/openssl/src/ssl/mod.rs#L2311
https://github.com/sfackler/foreign-types/issues/24
yes, &mut Config can solve this, but has less flexibility, we may consider use UnsafeCell so that we can use &Config instead


fix type mismatch error and fix broken functionality

Problem
If someone tries to use the Dropdown component described in the documentation, they will get a compilation error. And after fixing it, the component will still not work correctly: Dropdown will close before the button is pressed.
        viewDropdownMenuItem : item -> Html msg
        viewDropdownMenuItem item =
            button
                [ class "dropdown__menu-item"
                , onClick onMenuItemClick
                ]
                [ text (settings.toLabel item)
                ]

Solution
The blur event is fired before the click event, so the dropdown buttons will be hidden before the click event is fired. To make everything work as expected, it is necessary to use preventDefaultOn "mousedown".
        viewDropdownMenuItem item =
            button
                [ class "dropdown__menu-item"
                , onMouseDownPreventDefault
                , onClick (onMenuItemClick item)
                ]
                [ text (settings.toLabel item)
                ]

        onMouseDownPreventDefault : Attribute msg
        onMouseDownPreventDefault =
            preventDefaultOn "mousedown" (Json.succeed ( settings.toMsg NoOp, True ))

Notes
I apologize I messed up my previous PR (#149 ). In this one I took into account the comment from @peteygao and corrected my solution.

Hey, I think I'm going to leave the onClick as-is for now.
My priority with that doc is to make the advanced components pattern clear for beginners, I don't want to get to into the nuance of mousedown/click correctness
I appreciate the time you took to improve things, though. Hope the priorities makes sense, ultimately I might choose a different example for the docs in the future!


Tab should simple support route link

I'm submitting a...

[ ] Bug report
[x] Feature request
[ ] Documentation issue or request
[ ] Regression (a behavior that used to work and stopped working in a new release)
[ ] Support request => Please do not submit support request here

Current behavior

tab support route link must be wrapped in the template.
Expected behavior

support [tab] attribute selector. because <a> is used for router link
Minimal reproduction of the problem with instructions

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

Environment

Angular version: X.Y.Z

ng-zorro-antd version: X.Y.Z

Browser:
- [ ] Chrome (desktop) version XX
- [ ] Firefox version XX
- [ ] Safari (desktop) version XX
- [ ] IE version XX

For Tooling issues:
- Node version: XX
- Platform:

Others:

not in plan, routerLink is quite easy to implements.


[Auto Scheduler]add task name during printing table info

This PR intends to add task name within the PrintTableInfo callback function of auto_scheduler to improve the readability of related logs.
cc: @zxybazh @junrushao1994

Might need some tweak arounds aesthetically but sure I like this change :-)
CC @Hzfengsy @merrymercy

Overall LGTM. One miner suggestion is using "desc" instead of "name" to align with the attribute name. After all this is not an official task name but just a human readable hint.

Thanks for the contribution! Could you please fix the CI and also attached an example of the printed table in the introduction?


Force frame rate & detelecine works best; still some artifacts; conflict with --cvbr?

Hi Don,
Your suggestion to force output frame rate to match input, plus detelecine, worked very well. Here's the options I used to generate sample output:
--mp4 --target big -H start-at=duration:240 -H stop-at=duration:300 -H _markers -H detelecine  --force-rate 29.970
It's by far the best deinterlacing result for problematic videos. There are still some artifacts on very close inspection: I've found looking at the curved roof line of moving cars is a good place to hunt them down. My guess is this is the best result possible, at least for a reasonable amount of experimentation per video. If I put too much time into various options it can get to the point where it's not worth my time and I just revert to the original MKV.
All that said, --target big --cvbr does conflict with --force-rate, right? The result is not good, and I can see that the frame rate is not what was forced.
Oh, one other question: when matching output frame rate to input frame rate, which input frame rate do I use in the case where more than one is shown in MediaInfo? I guess NOT the Original frame rate; right?
Frame rate mode                          : Variable
Frame rate                               : 24.576 FPS
Original frame rate                      : 29.970 (30000/1001) FPS
Thanks,
Mark M

@markmarz I'm glad that worked out! :)
There's no conflict with those options, but --cvbr is an advanced and experimental ratecontrol system designed to stabilize x264 VBV behavior. And it will sometimes produce lower quality even with --target big added.
My recommendation is that you use the default rate control system instead and avoid --cvbr for now.
As to your frame rate question, you are correct -- that's not the original value. Bonus points for using MediaInfo to check, but realize it doesn't always get that right. Which is a pity.
Unfortunately, I can't give you absolute guidelines on this. You just have to experiment. My apologies. The good news is that for most DVDs, the right answer is 23.976 FPS.

Okay, I have to follow up, sorry. It's a darn shame that MediaInfo isn't accurate, because I incorporated it into my batch process to plug in the input (and therefore --force-rate value) frame rate. But if I look at the Handbrake log, it appears that he's determining the rate as well. For the video I'm looking at, it happens to be 29.970, which happens to match MediaInfo.
[09:25:54] scan: decoding previews for title 1
[09:25:54] scan: audio 0x1: ac3, rate=48000Hz, bitrate=224000 English (AC3) (2.0 ch)
[09:25:54] scan: 10 previews, 720x480, 29.970 fps, autocrop = 0/0/2/0, aspect 16:9, PAR 32:27
I accept I can't trust MediaInfo, but can I trust Handbrake? Perhaps I'll cludge up a way to use Handbrake to give me the correct frame rate.
Thanks,
Mark

@markmarz Actually, MediaInfo is accurately reporting on the attributes and metadata in your source file. However, that information, especially for DVDs, can be misleading and MediaInfo is not "interpreting" that correctly. HandBrake doesn't do any better at this either. I'm not sure any piece of software alone can get this right. That's why you have to experiment.

Ah, okay. So sad!!
Hah-hah! Should this be my biggest problem! Hah!
Thanks Don, you've been terrific.

@markmarz You are very welcome, sir!
I'll close this now but feel free to continue commenting.


Inherited methods allow shadowing

Summary
Name shadowing does not take into account inherited methods.
Example
https://playground.ponylang.io/?gist=d0ce1bc307123f60d556e858fa75c66c
use "debug"

interface Foo
  fun apply(): USize => 42

class Bar is Foo
  new create(apply: {(): USize}) =>
    Debug(apply())

class Baz is Foo
  new create() =>
    Debug(apply())

actor Main
  new create(env: Env) =>
    let a: Foo = Bar({(): USize => 10})
    let b: Foo = Baz

Expected Results
A compiler error on line 7 forbidding name reuse.
Actual Results
The code compiles.

This happens because the "can't reuse" errors are raised in the scope pass, which happens before the traits pass where trait implementations are copied. We can't move the scope pass to be after the traits pass because the scope pass generates symbol tables that are needed for passes that the traits pass needs
There are three basic approaches we could do:

remove the "can't reuse" error check from the scope pass and add a similar check to the refer pass.
keep the "can't reuse" error check in the scope pass and also add a similar check to the refer pass.
strip symbol tables from method bodies copied in the traits pass, and run catch_up_passes to make the scope pass run again.

Whatever we chose to fix this, we should keep the logic for doing the "shadowing" checks in one place.
When we add functions from traits, we change the symbol table of the whole entity, and must re-check for shadowing again.
What we could do, and what seems reasonable to me, is to descend into each function/behaviour of the entity, into each symbol table and check for clashes between local names and function names. This can happen just at the end of the traits pass, or more specific: when all inherited methods/functions have been added. Consider this my option 4 to @jemc s list above.
While the above case demonstrates a local on a class shadowing a method on an interface, it is also possible the other way around: A class method/field conflicting with a local from an interface:
interface ShadowWarrior
  fun boo(): String =>
    let name: {(): String} = {() => "abc"}
    name()

class X is ShadowWarrior
  fun name(): String => "X"

actor Main
  new create(env: Env) =>
    env.out.print(X.boo()) // outputs "abc"

I think this might be ok, as a trait/interface method cannot/should not reference anything from the implementing class, and it seems that resolution works correctly. But it still seems a little bit confusing.
I brought that up because if this is a problem we want to avoid, then the method of checking for clashes between method/field-names and local symbol-tables should check all function/field-names against all symbol tables within functions/behaviours.
Also lambdas and object literals cannot mess things further up, right? Because they represent their own entity and thus their own scope which does not directly interfere with the entity scope it has been declared in, right?

Of the three alternatives I suggested, @sylvanc says the third ("run catch_up_passes") is the best.
He also likes @mfelsche's idea better, but says a separate pass after the traits pass might be the cleanest way to do that.


a question about labeled data

Hi,dear. I read your paper says  "Percentage of labeled data"，but I see your code is "the number label of per people". Are they referring to the same, do they only have 100 labels each?

Hi @liyunlongaaa,
Yes, they are referring to the same thing. In the dataset a speaker can have more than 100 labels but in my experiment "the number of labels per speaker" is set to a value between 0 and 100. Thus, 100% is 100 labels, 20% is 20 labels...


update terraform provider to 6.12.0

Submission Checklist
Updating to the latest terraform provider version as part of post release process.
NOTE: Community submissions can take up to 2 weeks to be reviewed.
Please take the following actions before submitting this pull request.

Fork your PR branch from the Toolkit "develop" branch (not main)
Test all changes with pre-commit in a local branch #
Confirm that "make tests" passes all tests
Add or modify unit tests to cover code changes
Ensure that unit test coverage remains above 80%
Update all applicable documentation
Follow Cluster Toolkit Contribution guidelines #

Need this for updating gke-cluster module to enable parallelstore_csi_driver_config through addons_config
PR #3357

/gcbrun


bug to fix chat and ratings

what does this pr do

protect chat route
return name of client who rated a product

how can be tested manually
open this link and test it

@FabCode67  remove conflicts


update contents of gemspec

add MIT license
add lib as the standard require path
don't put lib on the load path if it's already there
make the bundler and rake dependencies explicit

Coverage remained the same at 99.169% when pulling 7d31c3bc8b209da843fa1341d4f59e92e6fa4031 on scrollytelling:gemspec-update into b2c5e5316a8d93eddf88db103b24af332d155bec on codevise:master.

Coverage remained the same at 99.169% when pulling 7d31c3bc8b209da843fa1341d4f59e92e6fa4031 on scrollytelling:gemspec-update into b2c5e5316a8d93eddf88db103b24af332d155bec on codevise:master.

Coverage increased (+0.004%) to 99.172% when pulling 28b942f00ca13031a1b425cf9dffaadfc97e9f7d on scrollytelling:gemspec-update into b2c5e5316a8d93eddf88db103b24af332d155bec on codevise:master.


feat!: Proper environment usage enforced

EnvironmentContext.isValid method added to validate provided environment name is allowed
ProjectContect.tryGetEnvironment modified to return undefined if in the scope of AccountWrapper
EnvironmentWrapper modified to throw an error if passed scope specifies an invalid environment (undefined or name does not match accepted patterns)
Tests added to cover these cases
npm run test passes
npm run eslint passes
npm run build passes and updated API.md

This feature will be address in upcoming V2/V3 major versions, as the whole account/environment handling will be redesigned.
See roadmap: https://github.com/alma-cdk/project/issues/36
Leaving this issue still open for reference.


⚠ Bofrost.be has degraded performance

In a5dce93, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1759 ms

Resolved: Bofrost.be performance has improved in 0531056.


Add GenerateAlphaNumericID for test-proxy to recording package

Add GenerateAlphaNumericID function.
Store random seed in each recording file.
This change is to move the similar function under sdk/resourcemanger/internal as it should be part of our recording system.

Part of #19984

@tadelesh can you please try running the recorded tests for azblob with this change to ensure that nothing is broken?

@tadelesh can you please try running the recorded tests for azblob with this change to ensure that nothing is broken?

I've tested azblob and all tests passed.


send-link-to-chat 1: components and storyshots

I haven't done anything for mobile yet; will do it in a follow-up PR.

Hmm I'm realizing mobile is actually a lot different from desktop design. So will do that in a separate ticket, maybe after attachment flow is done too.

@chrisnojima PTAL thanks!


Update expect

Summary of the Pull Request
https://github.com/microsoft/PowerToys/commit/9a906d427a6adc53de74bfebe467d09c4ee9b78d#commitcomment-44915485
PR Checklist

[x] Applies to #8473
[x] CLA signed. If not, go over here and sign the CLA
[x] Tests added/passed
[ ] Requires documentation to be updated
[ ] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx

Info on Pull Request
Update expect list.
Validation Steps Performed
How does someone test & validate?

@jsoref
thanks!


In sign-up, emails should not be considered case-sensitive.

Right now you can sign up the same user twice with:
<EMAIL_ADDRESS>and again with
<EMAIL_ADDRESS>We need to make this unique regardless the case.

Here is what we got in the database:

Another issue arose, found by @diegoaad :
Some users are created without having a user.identity. Apparently when we created user i1, we set the email without @ (we specified i1€ecologicalstrategies.de) and this bypassed the required email validation, but never really created an identity.
We need ot tighten up the whole process of initially creating valid users or we will end up with issues in the app later.

In the PostgreSQL db defintion, we could declare the email columns as 'citext' for case insensitivity.
http://www.postgresql.org/docs/current/static/citext.html

This is not quite working as intended. A user can have their own way of entering their email address when registering, and it should be stored as such. However, we need to enforce uniqueness on the lower case based version.
Example:
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>should all log me in into the same account. However a user might prefer to enter it in a specific way and it should not be blocked from logging in (it looks like we think<EMAIL_ADDRESS>is not valid when we store ralf@lale.help).


fn to expire checkout sessions

Summary

Fixes #331
Checklist

[x] ran cargo make fmt
[x] using conventional commits to hightlight user-facing fixes and features

Looking at CONTRIBUTING.md. I ran
cargo test --features runtime-blocking the 25 unit tests passed. But tests/account.rs failed with
Running tests/account.rs (target/debug/deps/account-b392d7dfeb7da677)

running 1 test
test is_account_listable ... FAILED

failures:

---- is_account_listable stdout ----
thread 'is_account_listable' panicked at 'error communicating with stripe: error trying to connect: tcp connect error: Connection refused (os error 111)', tests/account.rs:9:25
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread 'is_account_listable' panicked at 'assertion failed: result.is_ok()', tests/mock/mod.rs:13:5

failures:
    is_account_listable

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

error: test failed, to rerun pass `--test account`

I am not sure if I am supposed to put a stripe token somewhere so it will let the test talk to it.
===
I also ran cargo +nightly clippy --all --all-targets -- -D warnings
But it seemed to give back a whole bunch of existing warnings that were not related to my change. So I am not sure if that is actively being followed now.

I'm not sure if taking a mutable reference to a full CheckoutSession and replacing the value with the CheckoutSession returned from POST, would be better here. As that would entirely prevent mistakenly using the old CheckoutSession variable with outdated information. But it is not how the rest of the library functions I have seen here have been doing it.

You raise a cool idea. I am interested in maybe supporting a trait that allows the id but consumes the object. Raise an issue and we can track it! :)

Could you prefix your commit message with feat:? We pull those out automatically to generate the change logs.

@arlyon This should be fixed now.

All green, thanks!


What does it mean to see "Section [name] is not aligned!" on the console when importing PE executables?

I opened Ghidra to import a PE file that I modified by hand on a hex editor, in which I included a hand-made section. The executable had header values for a initialized data size of 0x852400 and image size (both in memory) of 0xD7D000, which I increased to 0x853400 and 0xD7E000 respectively. Following the values of section alignment in file and in memory, the section had sizes in that way of 0x200 and 0x1000, and was placed at 0x84AE00 in the file (with a virtual address of 0xD7C200), which was the size of the original unmodified exe.

This is what I get when importing it. In the CodeBrowser tool's Listing window, it looks like a normal executable, but this does give a clue as to why it doesn't work. I'd like more elaboration on it however, because I tried to align the section correctly; in fact, trying the same technique with another PE executable worked, and Ghidra didn't give me the "Section is not aligned" warning with it. That file had initialized data and image size values of 0x317000 and 0x3D2000, although it also had equal in-memory and in-file section alignments (0x1000).
In both executables, the section also had read-only and "contains initialized data" characteristics if that helps with anything. The header value for the amount of sections was of course also increased (the main file being talked about here had 6 sections, while the other file where putting in the additional section worked originally had 4).

Have you examined our code yet?  Also #327 and #418 are worth reading for some background on why this code was changed to what it currently is.
https://github.com/NationalSecurityAgency/ghidra/blob/0bd1c24b944d77f811bc009a6763ff576779bb1f/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/pe/FileHeader.java#L334-L363


rename symbol support on vue

Suggestion
it seems currently tsserver is not able to rename symbols located in vue

I'm not sure if this should be in tsserver or vetur, ideally both... If you feel it should be on vetur side, please just close this

This would have to be on the Vetur side. As someone mentioned in that linked issue, a TypeScript LS plugin would have to communicate the request to the Vue LS. If there is some specific functionality missing from TypeScript that needs to be added to make that work, we’d probably be able to help with that. But from the issue it doesn’t look like anyone has tried it yet.


Loading Files Embedded as Resources

Error in section "Loading Files Embedded as Resources".
Instead of code:
WorkingWithFiles.PCLTextResource.txt
It must be:
WorkingWithFiles.Resources.PCLTextResource.txt
I added "Resources" after namespace
P.S. There is easier way to read resources:
Properties.Resources.YourResourceName;

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

ID: 51f9e390-1b2e-fe0b-3969-8feb203d9fb8
Version Independent ID: 714d5991-0577-4d86-3585-bed8788e73cf
Content: File Handling in Xamarin.Forms - Xamarin
Content Source: docs/xamarin-forms/data-cloud/data/files.md
Product: xamarin
Technology: xamarin-forms
GitHub Login: @davidbritch
Microsoft Alias: dabritch

Hi @Delog-ru
The code in this article is from the sample the doc links to, and having checked it, is accurate.
I guess that your resources are in a Resources folder, which is why you had to add that to the resource ID (as explained at https://docs.microsoft.com/xamarin/xamarin-forms/data-cloud/data/files?tabs=windows#organizing-resources).


NavBar as={Link} (next/link; next.js) doesn't collapses the NavBar.Collapse

[x] I have searched the Issues to see if this bug has already been reported
[x] I have tested the latest version

Summary
When I do a
import Link from "next/link";
<Navbar.Collapse >
<Navbar.Link as={Link}  active={pathname == "/privacy"} href="/privacy">
Privacy Policy
</Navbar.Link>
</Navbar.Collapse >
I'm expecting the navbar to collapse. I use the Link from next/link because Next.js downloads those links in the background and do optimizations.
I also tried
const [open, setOpen] = useState(false);

<Navbar.Link as={Link}  onClick={() => setOpen(false)} active={pathname == "/privacy"} href="/privacy">
Privacy Policy
</Navbar.Link>
but it doesn't work.
Context
https://nextjs.org/docs/pages/api-reference/components/link
is a React component that extends the HTML  element to provide prefetching and client-side navigation between routes. It is the primary way to navigate between routes in Next.js.
Any help appreciated 🙌

Same applies to react-router-dom, would be great if isOpen state could be controlled manually

Agreed, that intuitively makes sense and we can use the existing API by just closing the collapse whenever a link is clicked.

It is possible to control collapsing via useNavbarContext(). It's just a bit tricky though. 🙂
In my setup, I created a "root component" that returns the Navbar component:
function MyNavbarRoot(props: Props) {
  return (
    <Navbar>
      <MyNavbarInner {...props} />
    </Navbar>
  );
}

Then I created an "inner component", which can use useNavbarContext() provided by the Navbar component.
function MyNavbarInner(props: Props) {
  const { setIsOpen } = useNavbarContext();

  return (
    <>
        // Navbar content components, e.g. Navbar.Brand, Navbar.Toggle and Navbar.Collapse
    </>
  );
}

In this inner component, I can simply close the menu by adding onClick={() => setIsOpen(false)} onto each Navbar.Link components. This works fine even with Next/Link, e.g.:
<Navbar.Link
  as={Link}
  href={"some href"}
  onClick={() => setIsOpen(false)}
>
  Look at that!
</Navbar.Link>

Hmm it helped, but after clicking a couple of times I get this error:
import { createContext, useContext } from 'react';
^^^^^^

SyntaxError: Cannot use import statement outside a module

Thanks for getting us this far. This is a shame.


[BUG]: Gobrick does not clean wwids from /etc/multipath/wwids after removing multipath devices

Bug Description
Gobrick executes the following set of commands for removing a multipath device:
multipath -f /dev/dm-2
echo 1 > /sys/class/block/sdf/device/delete
multipathd del path /dev/sdf

These commands do not remove entries from the /etc/multipath/wwids file, resulting in stale entries being left behind. The growing count of entries could potentially impact the performance of multipath if the file becomes exceptionally large.
To address this issue, Gobrick should be enhanced to remove a device from the wwids file using below command:
multipath -w mpathX (or WWID)

Logs
N/A
Screenshots

Additional Environment Information
No response
Steps to Reproduce
Using any CSM Driver:

Create a PVC.
Create a POD that consumes the PVC.
Note the WWIDs on the worker node where the POD is scheduled:wc -l /etc/multipath/wwids

Delete the POD.
Check the WWIDs again:wc -l /etc/multipath/wwids

Observation: The count will not decrease.

Expected Behavior
Stale devices from wwids file should be removed
CSM Driver(s)
All CSM drivers
Installation Type
No response
Container Storage Modules Enabled
No response
Container Orchestrator
N/A
Operating System
N/A

link: 27849

@AkshaySainiDell, please add labels for all impacted CSM components.  Thanks.


[vpj] Enforce Record Size Limit on Batch Push Jobs

Summary

When users try to push Venice records larger than 10MB, the Batch Push Job will fail, reporting a RecordSizeTooLarge error. This is the same error when chunkingEnabled=false and a record surpassing the 1MB Kafka event size limit is pushed.
10MB is the default, but the store-level config maxRecordSizeBytes can be adjusted on the store itself as implemented in #1027.

Changes

[Functional] Added feature flag large.records.allowed to the VeniceWriter which is true by default (consistent with existing behavior) for better control of the handling large records project across batch vs nearline jobs and across components. We absolutely do not want nearline jobs to fail yet because it will result in data loss, and the feature flag will help limit the behavior to only batch push jobs.
[Functional] VeniceWriter will now throw RecordTooLargeException if largeRecordsAllowed=false and it tries to put() a record which has a size that is larger than the store-level setting maxRecordSizeBytes. This is currently only intended for batch push jobs, and the feature flag will help contain the behavior.
[Functional] VenicePushJob added support for the maxRecordSizeBytes and largeRecordsAllowed settings and will pass these settings down to the DataWriterJob who is the one that actually touches the data.
[Unit Test] Added unit tests for test coverage:

testGetVeniceWriter() and testUpdatePushJobDetailsWithJobDetailsRecordTooLarge() in VenicePushJobTest
testPutTooLargeRecord() in VeniceWriterUnitTest

[Integration Test]  Added integration tests which should hopefully mean that the changes are working:

testValuesThatAreTooLarge() in TestBatch
testPushJobDetailsRecordTooLarge() in PushJobDetailsTest

How was this PR tested?
Added integration tests and unit tests.
Does this PR introduce any user-facing changes?

[X] Yes. Make sure to explain your proposed changes and call out the behavior change.

See the Summary section.

Hi @KaiSernLim . I haven't gone through the changes, but I would like to call out one edge case we should handle - repush jobs should probably still allow writing large records

Hi @KaiSernLim . I haven't gone through the changes, but I would like to call out one edge case we should handle - repush jobs should probably still allow writing large records

Just a side question, do we need to cover the repush from ETL as well?