Remove deprecated kube-rbac-proxy.

What type of PR is this?

What this PR does / why we need it:
Remove kube-rbac-proxy.
Which issue(s) this PR fixes:

Fixes #3737
Special notes for your reviewer:
Does this PR introduce a user-facing change?

NONE

/test all

/test all

/hold

/lgtm
/assign @mimowo

/hold
I found that project controller-manager running about 2 minutes with new solution. Is it ok?

I found that project controller-manager running about 2 minutes with new solution. Is it ok?

What do you mean by that? That Kueue needs around 2min before starting?

I found that project controller-manager running about 2 minutes with new solution. Is it ok?

What do you mean by that? That Kueue needs around 2min before starting?

Yes, it's very interesting...

Yes, it's very interesting...

It is rather lengthy, but I think it could also happen prior to this change, this is why we have the wait command in installation guide (https://kueue.sigs.k8s.io/docs/installation/#install-a-released-version), and also StartupTime=5min: https://github.com/kubernetes-sigs/kueue/blob/3a73af61a2a200eb0a3afb581fddad63aaa845c3/test/util/constants.go#L33-L38.
So, I think worth trying a couple more rounds (like 5) and compare the distribution of the bootup times to see if there is any difference (maybe you were just unlikely at that attempt).

/lgtm
Thanks!

Yeah, I tried. And I can see that everytime we have about 1.5-2min. With kube-rbac-proxy it takes about 20-25 sec.

This looks relevant. Please do 5 restarts before and after and post the results.

Yeah, I tried. And I can see that everytime we have about 1.5-2min. With kube-rbac-proxy it takes about 20-25 sec.

This looks relevant. Please do 5 restarts before and after and post the results.

With kube-rbac-proxy:

13s
20s
20s
13s
10s

Without kube-rbac-proxy:

100s
2m
95s
2m1s
2m

is the problem also similar to jobset?

Everything seems to be fine on JobSet.

are there any logs, maybe we need to run with V5,  suggesting what controller runtime is doing in this time?

2024-12-09T17:01:42.151568751Z	DEBUG	controller-runtime.healthz	healthz/healthz.go:60	healthz check failed	{"checker": "readyz", "error": "certificates are not ready"}
2024-12-09T17:01:42.152688501Z	INFO	controller-runtime.healthz	healthz/healthz.go:128	healthz check failed	{"statuses": [{}]}
2024-12-09T17:01:42.156583167Z	DEBUG	controller-runtime.healthz	healthz/healthz.go:60	healthz check failed	{"checker": "readyz", "error": "certificates are not ready"}
2024-12-09T17:01:42.158102334Z	INFO	controller-runtime.healthz	healthz/healthz.go:128	healthz check failed	{"statuses": [{}]}
2024-12-09T17:01:52.15068213Z	DEBUG	controller-runtime.healthz	healthz/healthz.go:60	healthz check failed	{"checker": "readyz", "error": "certificates are not ready"}
2024-12-09T17:01:52.150784255Z	INFO	controller-runtime.healthz	healthz/healthz.go:128	healthz check failed	{"statuses": [{}]}
2024-12-09T17:02:02.151573219Z	DEBUG	controller-runtime.healthz	healthz/healthz.go:60	healthz check failed	{"checker": "readyz", "error": "certificates are not ready"}
2024-12-09T17:02:02.151661219Z	INFO	controller-runtime.healthz	healthz/healthz.go:128	healthz check failed	{"statuses": [{}]}
2024-12-09T17:02:12.151301792Z	DEBUG	controller-runtime.healthz	healthz/healthz.go:60	healthz check failed	{"checker": "readyz", "error": "certificates are not ready"}
2024-12-09T17:02:12.151485584Z	INFO	controller-runtime.healthz	healthz/healthz.go:128	healthz check failed	{"statuses": [{}]}
2024-12-09T17:01:52.144536422Z	DEBUG	controller-runtime.healthz	healthz/healthz.go:60	healthz check failed	{"checker": "readyz", "error": "certificates are not ready"}
2024-12-09T17:01:52.145186172Z	INFO	controller-runtime.healthz	healthz/healthz.go:128	healthz check failed	{"statuses": [{}]}
2024-12-09T17:02:02.143216094Z	DEBUG	controller-runtime.healthz	healthz/healthz.go:60	healthz check failed	{"checker": "readyz", "error": "certificates are not ready"}
2024-12-09T17:02:02.143400552Z	INFO	controller-runtime.healthz	healthz/healthz.go:128	healthz check failed	{"statuses": [{}]}
2024-12-09T17:02:12.144509251Z	DEBUG	controller-runtime.healthz	healthz/healthz.go:60	healthz check failed	{"checker": "readyz", "error": "certificates are not ready"}
2024-12-09T17:02:12.144758542Z	INFO	controller-runtime.healthz	healthz/healthz.go:128	healthz check failed	{"statuses": [{}]}
2024-12-09T17:02:22.144655255Z	DEBUG	controller-runtime.healthz	healthz/healthz.go:60	healthz check failed	{"checker": "readyz", "error": "certificates are not ready"}
2024-12-09T17:02:22.145141505Z	INFO	controller-runtime.healthz	healthz/healthz.go:128	healthz check failed	{"statuses": [{}]}
2024-12-09T17:02:22.151279339Z	DEBUG	controller-runtime.healthz	healthz/healthz.go:60	healthz check failed	{"checker": "readyz", "error": "certificates are not ready"}
2024-12-09T17:02:22.151490255Z	INFO	controller-runtime.healthz	healthz/healthz.go:128	healthz check failed	{"statuses": [{}]}
2024-12-09T17:02:32.144042677Z	DEBUG	controller-runtime.healthz	healthz/healthz.go:60	healthz check failed	{"checker": "readyz", "error": "certificates are not ready"}
2024-12-09T17:02:32.144239594Z	INFO	controller-runtime.healthz	healthz/healthz.go:128	healthz check failed	{"statuses": [{}]}
2024-12-09T17:02:32.150959719Z	DEBUG	controller-runtime.healthz	healthz/healthz.go:60	healthz check failed	{"checker": "readyz", "error": "certificates are not ready"}
2024-12-09T17:02:32.151098052Z	INFO	controller-runtime.healthz	healthz/healthz.go:128	healthz check failed	{"statuses": [{}]}
2024-12-09T17:02:36.993336846Z	DEBUG	controller-runtime.healthz	healthz/healthz.go:60	healthz check failed	{"checker": "readyz", "error": "certificates are not ready"}
2024-12-09T17:02:36.993915513Z	INFO	controller-runtime.healthz	healthz/healthz.go:128	healthz check failed	{"statuses": [{}]}
2024-12-09T17:02:42.146086626Z	DEBUG	controller-runtime.healthz	healthz/healthz.go:60	healthz check failed	{"checker": "readyz", "error": "certificates are not ready"}
2024-12-09T17:02:42.146636501Z	INFO	controller-runtime.healthz	healthz/healthz.go:128	healthz check failed	{"statuses": [{}]}
2024-12-09T17:02:42.152003042Z	DEBUG	controller-runtime.healthz	healthz/healthz.go:60	healthz check failed	{"checker": "readyz", "error": "certificates are not ready"}
2024-12-09T17:02:42.152250709Z	INFO	controller-runtime.healthz	healthz/healthz.go:128	healthz check failed	{"statuses": [{}]}
2024-12-09T17:02:47.995087087Z	DEBUG	controller-runtime.healthz	healthz/healthz.go:60	healthz check failed	{"checker": "readyz", "error": "certificates are not ready"}
2024-12-09T17:02:47.995238003Z	INFO	controller-runtime.healthz	healthz/healthz.go:128	healthz check failed	{"statuses": [{}]}
2024-12-09T17:02:52.144417047Z	DEBUG	controller-runtime.healthz	healthz/healthz.go:60	healthz check failed	{"checker": "readyz", "error": "certificates are not ready"}
2024-12-09T17:02:52.144600339Z	INFO	controller-runtime.healthz	healthz/healthz.go:128	healthz check failed	{"statuses": [{}]}
2024-12-09T17:02:52.151415047Z	DEBUG	controller-runtime.healthz	healthz/healthz.go:60	healthz check failed	{"checker": "readyz", "error": "certificates are not ready"}
2024-12-09T17:02:52.151519214Z	INFO	controller-runtime.healthz	healthz/healthz.go:128	healthz check failed	{"statuses": [{}]}
2024-12-09T17:02:59.090393467Z	INFO	cert-rotation	rotator/rotator.go:873	certs are ready in /tmp/k8s-webhook-server/serving-certs
2024-12-09T17:02:59.090521092Z	INFO	cert-rotation	rotator/rotator.go:893	CA certs are injected to webhooks

Looks like waiting for certificates.

there is a bunch of parameters in this PR, maybe some of them could be decreased. If you decrease them by half is there any speedup?

Not sure I understand which parameters you mean?

I'm actually surprised you have so good times with kube-rbac-proxy. I tested locally on kind using the following script:
for i in {1..5}
do
  kubectl apply --server-side -k "github.com/kubernetes-sigs/kueue/config/default?ref=main"
  time kubectl wait deploy/kueue-controller-manager -nkueue-system --for=condition=available --timeout=5m
  kubectl delete -k "github.com/kubernetes-sigs/kueue/config/default?ref=main"
done

and my readings are  (for the main branch)
real	1m50.375s
real	1m50.395s
real	3m30.378s
real	1m50.377s
real	2m0.378s

I'm yet to adjust the script to test on the branch.

I'm syncing on the issue with @mbobrovskyi and I recreated my cluster. After that the results are much faster. Tested on 0.9.1 so far, but the timing is around 25s.

OK, I think I understand what’s happening. The rotator updates the certificates in the secret https://github.com/open-policy-agent/cert-controller/blob/master/pkg/rotator/rotator.go#L484, and this secret is mounted as a volume in the pod https://github.com/kubernetes-sigs/kueue/blob/main/config/default/manager_webhook_patch.yaml#L16. The rotator waits for the volume to be updated https://github.com/open-policy-agent/cert-controller/blob/master/pkg/rotator/rotator.go#L856-L857. After the secret is updated, Kubernetes needs some time to update the volume in the container. That’s why we need to wait for 2 minutes. Once the volume is updated, the container runs successfully https://github.com/open-policy-agent/cert-controller/blob/master/pkg/rotator/rotator.go#L893.

Is there a way to get it back down to 20s as before? Also, do you know how to explain it works fast for JobSet?

Is there a way to get it back down to 20s as before? Also, do you know how to explain it works fast for JobSet?

I tried adding time.Sleep(time.Second) to the main() function of JobSet and encountered the same problem. The only explanation I can think of is that Kueue runs slower because it has more controllers and webhooks.

Ok, let's wait with that post 0.10, it does not seem we need to rush with the change.

@mbobrovskyi please rebase

I think the issue actually lies in the generation itself. The generation of crypto certificates requires CPU, now observe that:

the old kube-rbac-proxy didn't have any limits (see here)
JobSet is fast as it lets to burst to 2000m (see here)

I carried a couple of startup experiments using the script (with tweaking the limits):
KUEUE_DIR="$HOME/go/src/sigs.k8s.io/kueue"
MANIFESTS="$KUEUE_DIR/artifacts/manifests.yaml"

export CPU_LIMITS="1000m"

yq eval '
  (. | select(.kind == "Deployment") | .spec.template.spec.containers[0].resources.limits.cpu) = strenv(CPU_LIMITS)
' -i $MANIFESTS

TIMING_FILE="timing_branch_$CPU_LIMITS.log"

IMAGE=$(cat $MANIFESTS | yq ".spec.template.spec.containers[0].image | select(.)")

for i in {1..20}
do
  kind create cluster --config "$HOME/kind/kind-single-config.yaml" --name kind --image kindest/node:v1.31.2
  kind load docker-image "${IMAGE}" &>/dev/null
  kubectl apply --server-side -f $MANIFESTS
  start=$(date +%s%3N)
  kubectl wait deploy/kueue-controller-manager -nkueue-system --for=condition=available --timeout=5m
  end=$(date +%s%3N)
  echo "$((end - start))" >> "$TIMING_FILE"
  kind delete cluster &>/dev/null
done

Results (after 20 repeats on Kind):

limits 500m (current value): mean 122089s, std dev: 20455
limits 1000m: mean 66004s, std dev: 50550
limits 2000m (as in JobSet): 21123, std dev: 337

The results on GKE seem consistent with that picture (but I didn't do too many repeats).
So basically, I think code-wise this PR is ok, as it implements the same approach as JobSet in https://github.com/kubernetes-sigs/jobset/pull/722.
And, the increase is startup is sort of expected given kube-rbac-proxy is CPU intensive on startup, and didn't have any limits set before.
So the options in Kueue:

keep the current 500m - and accept there is a slowdown of startup (prod and tests)
bump to 1000m which +/- matches the "before" state, probably on the lower end, maybe 1500 is better
bump to 2000m which matches the JobSet config

I'm leaning to 3, setting high limits for CPU should not be a problem as this is a compressible resource. It will give us a littl bit of boost for running tests when the CI machines are not loaded. For production environments the resources (limits and requests) will be adjusted anyway.

WDYT @tenzen-y @dgrove-oss ?

I think the issue actually lies in the generation itself. The generation of crypto certificates requires CPU, now observe that:

the old kube-rbac-proxy didn't have any limits (see here) - I checked on a kind cluster using crictl stats that on startup the kube-rbac-proxy was bursting up to around 700m - which indicates why it is too constrained with 500m (+Kueue)
JobSet is fast as it lets to burst to 2000m (see here)

Agreed, it helps.
0m34.570s
0m32.453s
0m33.257s
0m33.036s
0m33.353s
My only question is: is it possible to force volume rotation? See https://github.com/kubernetes-sigs/kueue/pull/3760#issuecomment-2535979938 for more details.

My only question is: is it possible to force volume rotation?

I don't know, the volume rotation was not forced before. You are free to investigate, but I wouldn't like to change it in this PR.

I carried a couple of startup experiments using the script (with tweaking the limits):
KUEUE_DIR="$HOME/go/src/sigs.k8s.io/kueue"
MANIFESTS="$KUEUE_DIR/artifacts/manifests.yaml"

export CPU_LIMITS="1000m"

yq eval '
  (. | select(.kind == "Deployment") | .spec.template.spec.containers[0].resources.limits.cpu) = strenv(CPU_LIMITS)
' -i $MANIFESTS

TIMING_FILE="timing_branch_$CPU_LIMITS.log"

IMAGE=$(cat $MANIFESTS | yq ".spec.template.spec.containers[0].image | select(.)")

for i in {1..20}
do
  kind create cluster --config "$HOME/kind/kind-single-config.yaml" --name kind --image kindest/node:v1.31.2
  kind load docker-image "${IMAGE}" &>/dev/null
  kubectl apply --server-side -f $MANIFESTS
  start=$(date +%s%3N)
  kubectl wait deploy/kueue-controller-manager -nkueue-system --for=condition=available --timeout=5m
  end=$(date +%s%3N)
  echo "$((end - start))" >> "$TIMING_FILE"
  kind delete cluster &>/dev/null
done

Results (after 20 repeats on Kind):

limits 500m (current value): mean 122089s, std dev: 20455
limits 1000m: mean 66004s, std dev: 50550
limits 2000m (as in JobSet): 21123, std dev: 337

The results on GKE seem consistent with that picture (but I didn't do too many repeats).
So basically, I think code-wise this PR is ok, as it implements the same approach as JobSet in kubernetes-sigs/jobset#722.
And, the increase is startup is sort of expected given kube-rbac-proxy is CPU intensive on startup, and didn't have any limits set before.
So the options in Kueue:

keep the current 500m - and accept there is a slowdown of startup (prod and tests)
bump to 1000m which +/- matches the "before" state, probably on the lower end, maybe 1500 is better
bump to 2000m which matches the JobSet config

I'm leaning to 3, setting high limits for CPU should not be a problem as this is a compressible resource. It will give us a littl bit of boost for running tests when the CI machines are not loaded. For production environments the resources (limits and requests) will be adjusted anyway.

I also agree we could bump it to 2000m. We've been adding more and more controllers without changing it for a while, and it shouldn't be a problem to do so

Ok, I think we are settled on the approach, but it is a bit late in the release cycle.
Let's make this one of the first PRs post 0.10.0

/lgtm
/approve
/hold cancel


About this dataset, can you add depth image in rosbag?

The depth images were not included in the rosbags because with the distances involved, the camera wasn't able to provide any meaningful information


isDefAndNotNull return false for a variable with number 0

0 is a defined number is not null

I don't think so.  Can you provide more details about how you're getting this?

Your right sorry about that, for some reason with closure compiler and an enum of 0 it was giving me false with this function but changing the enum value to 1 fixed it. I'll try to track down the exact cause better.


Removed unused and undefined VRPNMultiserverData::assignName() function.

cc: @rpavlik in case he had plans for this function.

If I did, I don't remember it. assuming travis builds it OK, can merge this with the next batch of PRs.


Add branding for the message in email link expiry page

Is your suggestion related to an experience ? Please describe.
Add branding for the message in email link expiry page
Describe the improvement

Additional context

redundant issue


关于表情符号的解析问题

at XMLStringifier.module.exports.XMLStringifier.assertLegalChar (C:\work\wechat_manager\node_modules\msexcel-builder\node_modules\xmlbuilder\lib\XMLStringifier.js:150:15)

解决办法，
//if (chr) {
// throw new Error("Invalid character (" + chr + ") in string: " + str + " at index " + chr.index);
//}
为何作此判断？

can you at least handle the error please?

ok was able to fix this issue! just add the following line to every Sheet.prototype.toxml = function():
allowSurrogateChars: true


Can't seem to create ConnectedApps

I wrote a class using your apex-mdapi (brilliant work btw, say hi to Nathan Pepper to me) that I could call anonymously whenever we did a sandbox refresh. This way our QA guy didn't have to manually set up the multiple Connected Apps to synchronize our Drupal instance with Salesforce.
When I created this apex class initially, it worked but when I came back to it today, it wasn't working anymore. Calling my class doesn't yield any log files either. Any idea what's going on? Code with contactEmail, callBackURL, consumerKey and consumerSecret blanked out below for your review, any help is greatly appreciated:
public class CreateConnectedApps {
  public static MetadataService.MetadataPort createService() {
      MetadataService.MetadataPort service = new MetadataService.MetadataPort();
      service.SessionHeader = new MetadataService.SessionHeader_element();
      service.SessionHeader.sessionId = UserInfo.getSessionId();
      service.timeout_x = 40000;
      return service;
  }

  public static void createConnectedApps() {
    MetadataService.MetadataPort service = createService();

    //build
    MetadataService.ConnectedApp build = new MetadataService.ConnectedApp();
    build.contactEmail = 'ZZZ';
    build.fullName = 'build';
    build.label = 'build';
    MetadataService.ConnectedAppOauthConfig buildo = new MetadataService.ConnectedAppOauthConfig();
    buildo.consumerKey = 'XXX';
    buildo.consumerSecret = 'YYY';
    buildo.callbackUrl = 'WWW';
    buildo.scopes = new List<String>();
    buildo.scopes.add('Full');
    buildo.scopes.add('RefreshToken');
    build.oauthConfig = buildo;
    List<MetadataService.SaveResult> buildresults = service.createMetadata(
          new MetadataService.Metadata[] { build });

    //qa1
    MetadataService.ConnectedApp qa1 = new MetadataService.ConnectedApp();
    qa1.contactEmail = 'ZZZ';
    qa1.fullName = 'qa1';
    qa1.label = 'qa1';
    MetadataService.ConnectedAppOauthConfig qa1o = new MetadataService.ConnectedAppOauthConfig();
    qa1o.consumerKey = 'XXX';
    qa1o.consumerSecret = 'YYY';
    qa1o.callbackUrl = 'WWW';
    qa1o.scopes = new List<String>();
    qa1o.scopes.add('Full');
    qa1o.scopes.add('RefreshToken');
    qa1.oauthConfig = qa1o;
    List<MetadataService.SaveResult> qa1results = service.createMetadata(
          new MetadataService.Metadata[] { qa1 });

    //qa2
    MetadataService.ConnectedApp qa2 = new MetadataService.ConnectedApp();
    qa2.contactEmail = 'ZZZ';
    qa2.fullName = 'qa2';
    qa2.label = 'qa2';
    MetadataService.ConnectedAppOauthConfig qa2o = new MetadataService.ConnectedAppOauthConfig();
    qa2o.consumerKey = 'XXX';
    qa2o.consumerSecret = 'YYY';
    qa2o.callbackUrl = 'WWW';
    qa2o.scopes = new List<String>();
    qa2o.scopes.add('Full');
    qa2o.scopes.add('RefreshToken');
    qa2.oauthConfig = qa2o;
    List<MetadataService.SaveResult> qa2results = service.createMetadata(
          new MetadataService.Metadata[] { qa2 });

    //qa3
    MetadataService.ConnectedApp qa3 = new MetadataService.ConnectedApp();
    qa3.contactEmail = 'ZZZ';
    qa3.fullName = 'qa3';
    qa3.label = 'qa3';
    MetadataService.ConnectedAppOauthConfig qa3o = new MetadataService.ConnectedAppOauthConfig();
    qa3o.consumerKey = 'XXX';
    qa3o.consumerSecret = 'YYY';
    qa3o.callbackUrl = 'WWW';
    qa3o.scopes = new List<String>();
    qa3o.scopes.add('Full');
    qa3o.scopes.add('RefreshToken');
    qa3.oauthConfig = qa3o;
    List<MetadataService.SaveResult> qa3results = service.createMetadata(
          new MetadataService.Metadata[] { qa3 });

    //stg
    MetadataService.ConnectedApp stg = new MetadataService.ConnectedApp();
    stg.contactEmail = 'ZZZ';
    stg.fullName = 'stg';
    stg.label = 'stg';
    MetadataService.ConnectedAppOauthConfig stgo = new MetadataService.ConnectedAppOauthConfig();
    stgo.consumerKey = 'XXX';
    stgo.consumerSecret = 'YYY';
    stgo.callbackUrl = 'WWW';
    stgo.scopes = new List<String>();
    stgo.scopes.add('Full');
    stgo.scopes.add('RefreshToken');
    stg.oauthConfig = stgo;
    List<MetadataService.SaveResult> stgresults = service.createMetadata(
          new MetadataService.Metadata[] { stg });
  }
}

This looks good to me. I've seen issues with Annonymous Apex executions not showing logs in the past as well, not just with this type of code, but generally. So i think your just getting bit by a general random bug in the platform. Developer Console logging can get stuck at times, so you might want to try enabling Apex Debug logs under Setup (old style) and see if that gives some light. Also try other tools for running Annonymous Apex, just as Developer Workbench, ForceCLI and even MavensMate. I know though these tools are not idea for who you may want to run your script.
BTW, though you cannot see the error at the moment, as a guess, i wonder if since you've refreshed your sandbox, have you remembered to add the Remote Site setting back?

And yes will say allow for you to Nathan! :+1:

So what's weird is that the connected apps don't get created at all. I did
add the remote site too.
It runs, no errors or logs. I'll give the old school way to get a log file
a try and report back if I find anything.
Wes
On Jul 31, 2015 5:18 AM, "Andrew Fawcett"<EMAIL_ADDRESS>wrote:

And yes will say allow for you to Nathan! [image: :+1:]
—
Reply to this email directly or view it on GitHub
https://github.com/financialforcedev/apex-mdapi/issues/97#issuecomment-126673516
.

finally found the error! It was The consumer key is already taken

Excellent glad you got this sorted!
Creating Connected Apps for users is such a cool idea, no matter how carefully this can get documented, it is always something i find folks struggle with. Nice one! :+1:


Unable to edit table data

It seems that edits to table data aren't sticking. Any info I could collect that could help pinpoint what's going wrong?

Nothing is wrong :) The edit feature was never implemented, what you're seeing is a helper functionality to copy the cell contents.


Add new version: Python.Python.3.13 version 3.13.0

Checklist for Pull Requests

[X] Have you signed the Contributor License Agreement?
[ ] Is there a linked Issue?

Manifests

[X] Have you checked that there aren't other open pull requests for the same manifest update/change?

[X] Does your manifest conform to the 1.6 schema?

Note: <path> is the directory's name containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Verify:


Added proxycheck.io to the list

Proxycheck.io now supports software based TFA. https://proxycheck.io/blog/post/introducing-two-factor-authentication

Looks good! I can merge next time I'm at a computer.
Do you want to add a link to the blog post as a howto? No worries if not.

Added it! Thanks again.


Add presence for login_name

Follow-on to https://github.com/studentinsights/studentinsights/pull/2082, now that this is migrated.  There's already a non-null constraint on the database field.

selfie


Item being dragged disappears when the sortable-list is inside a bootstrap modal.

When a list is placed inside a bootstrap modal and an element gets dragged, it disappears temporarily until it's released/dropped. The functionality works as expected with the changes to the sort order performing as normal, just the visual effect of the element being dragged seems to be missing in this situation.
In the test I performed I was using a handle, both the item and the handle disappear.
My gut tells me it might be related to css z-index property interfering, but this is merely a guess.
Cheers.

Hey @David-Neto, it is indeed a z-index issue. See https://github.com/clauderic/react-sortable-hoc/issues/87


FEAT-#4412: Add Batch Pipeline API to Modin

What do these changes do?
Modin is currently optimized for the interactive case; however, users may wish to move from interactively prototyping query pipelines to running query pipelines in batches. Given Modin's eager execution design, this means we are often computing intermediate metadata values like index or columns, or repartitioning into block partitioning instead of staying axis partitioned in this batched workload, which hurts our performance. This PR introduces an experimental API for users to designate a query pipeline that Modin will execute end to end.
Users first call df._build_batch_pipeline which creates a pipeline object that is our internal representation of query pipelines. They add queries using df._add_batch_query, and begin computation by calling df._compute_batch.

[x] commit message follows format outlined here
[x] passes flake8 modin/ asv_bench/benchmarks scripts/doc_checker.py
[x] passes black --check modin/ asv_bench/benchmarks scripts/doc_checker.py
[x] signed commit with git commit -s
[x] Resolves #4412 ?
[ ] tests added and passing
[ ] module layout described at docs/development/architecture.rst is up-to-date
[ ] added (Issue Number: PR title (PR Number)) and github username to release notes for next major release

Maybe I missed but do we need some description of this new API in docs?


Use of ViewModels in session is not transparent

When ViewModels are serialized to the session and then deserialized, the data from ViewModel.extendedViewModel is lost.
Since ViewModel.extendedViewModel works fine in Handlebars, losing this information during session handling was unexpected to me.
We stumbled upon this problem when we wanted to add a boolean field to MiniCartBean. Not using the extended view model but introducing a subclass of MiniCartBean is undoable because

#681
CartInSession having all private fields so a lot of information needs to be duplicated in the subclass
MiniCartBeanFactory.create(Cart) not delegating to a separately overridable method that creates a Bean instance and at the same time being invoked via super.create(...) from TruncatedMiniCartBeanFactory so our subclass of TruncatedMiniCartBeanFactory cannot override MiniCartBeanFactory.create(Cart) in an effective way. Of course we could start copying more of TruncatedMiniCartBeanFactory but code copying has limits, right?

We would like to show a message in the minicart explicating that it has been truncated. We're not able to do that right now due to above limitations.

@selo-ecube I just re-read the last line and realized that you may have needed some action to fix this for your project. Sorry! I understood the issues as just feedback to fix in next releases (which we are working on at the moment). Do you still need help with that?
Regarding the topic itself, we are getting rid of ViewModels, specially in Session, so we are working in the right direction.


Bug in the ingame MVP broadcast at round end

The first round after the server starts/restarts shows that round MVP broadcast properly, but every round after that will show the broadcast from the first round, I'm running the plugin in version V1.0.1, Exiled version 8.2.1 with the dependency Newtonsoft.json versions <IP_ADDRESS>524 and <IP_ADDRESS>09 for discordintegrations, and tried both dependencies by themselves and together without success, if there's any log I can provide just ask.

This was reported on the Discord server as well -- I haven't had time to look into it much. Will look as soon as I can (and have the brain power for it)

Could recompiling the plugin to the latest exiled version, fix the issue?

me too🤔


Hide controller option doesn't working

2 days ago my hide controller option doesn't working. I close every conflict program, but this important option still not working. I'm using DS4Windows on W10 and this is a new problem, I think... Please, need some help

If you have a NV videocard try the following:
Open Task Manager, go to Services tab and Rightclick/Stop the one named NvContainerLocalSystem (Description says: NVIDIA LocalSystem Container). Now start DS4W and enable the Hide DS4 feature, it should work now.
If it works go back to Task Manager and start the just stopped NvContainerLocalSystem.
It should keep working until you restart your PC no matter you restart DS4W.

If you have a NV videocard try the following:
Open Task Manager, go to Services tab and Rightclick/Stop the one named NvContainerLocalSystem (Description says: NVIDIA LocalSystem Container). Now start DS4W and enable the Hide DS4 feature, it should work now.

Thanks for that! For anybody who came here via Google like me, here is a little cmd script to automate this on startup:
:: Run elevated on logon (via Task Scheduler) for good DS4Windows (exclusive access)

@echo off
echo [#] Waiting for NvContainerLocalSystem service...
:WAIT
timeout /t 1 > NUL
for /f "tokens=4" %%s in ('sc query NvContainerLocalSystem ^| find "STATE"') do if NOT "%%s"=="RUNNING" goto WAIT
timeout /t 3 > NUL
echo [#] Stopping NvContainerLocalSystem...
net stop NvContainerLocalSystem
echo [#] Starting DS4Windows and waiting 5 seconds...
START "" /D "%~dp0" "%~dp0\DS4Windows.exe"
timeout /t 5 > NUL
echo [#] Starting NvContainerLocalSystem...
net start NvContainerLocalSystem

Put it in the DS4Windows folder (as e.g. "DS4Windows-Start.cmd") and, as suggested in the opening comment, add a manual Task Scheduler entry for user logon to run it with highest privileges.

It seems that this got renamed. So instead of NvContainerLocalSystem , replace with NVIDIA DISPLAY Container LS


Provide previous value in onItemUpdating

In some cases you may want to do something with the old value before updating the item with the new values. It would be useful to have both in onItemUpdating

Fixed with PR merge df962d0fc6bd1b2b1b3f93d68a5a6eb72f5ad9b7


FINERACT-1716: remove redundant boilerplate code within CommandSource class

Description
Describe the changes made and why they were made.
Ignore if these details are present on the associated Apache Fineract JIRA ticket.
Checklist
Please make sure these boxes are checked before submitting your pull request - thanks!

[ ] Write the commit message as per https://github.com/apache/fineract/#pull-requests

[ ] Acknowledge that we will not review PRs that are not passing the build ("green") - it is your responsibility to get a proposed PR to pass the build, not primarily the project's maintainers.

[ ] Create/update unit or integration tests for verifying the changes made.

[ ] Follow coding conventions at https://cwiki.apache.org/confluence/display/FINERACT/Coding+Conventions.

[ ] Add required Swagger annotation and update API documentation at fineract-provider/src/main/resources/static/legacy-docs/apiLive.htm with details of any API changes

[ ] Submission is not a "code dump".  (Large changes can be made "in repository" via a branch.  Ask on the developer mailing list for guidance, if required.)

FYI our guidelines for code reviews are at https://cwiki.apache.org/confluence/display/FINERACT/Code+Review+Guide.

It is red due to bad test case, but that got fixed: https://github.com/apache/fineract/pull/3988


fix zsh completion in hyprctl

Describe your PR, what does it fix/add?
it fixes hyprctl completion in zsh.
Is there anything you want to mention? (unchecked code, possible bugs, found problems, breaking compatibility, etc.)
No.
Is it ready for merging, or does it need work?
yes its ready.

It works fine on my end though, what's not working properly?

It works fine on my end though, what's not working properly?

its not working in zsh , i have to manually load it . this problem doesnt happen in hyprpm completion because there it is already defined but missing in hyprctl . It is a requirement for zsh-completion to load a completion function.

It works fine on my end though, what's not working properly?

It is a requirement for zsh-completion to autoload a completion function. same as this #5503. it got removed in #6380

Can confirm the issue. Its also not working on my end since these lines got removed.


Added checks for service worker only functions; set minHeight for better compatability with Firefox

When loading the extension in Firefox as a temporary add-on and setting the permissions to allow Access your data for all websites, everything seems to work well. However, to load it as a permanent add-on, the extension must be signed.

LGTM
Thank you for your contribution


Fix X(clear) button being unclickable

Addresses #3809.
The solution is to add z-index starting from the parent select2-container till the select2-selection__clear DOM element.
I also linked http://philipwalton.com/articles/what-no-one-told-you-about-z-index/ in the CSS as a comment since people are probably going to wonder why I set opacity when I want to just modify a z-index.

@ivaynberg  ping.

How well does this compare to https://github.com/select2/select2/pull/3544? I'd rather personally avoid overriding the z-index if possible, it tends to cause other unrelated issues in the long run.

In my opinion it's just a fool-proof approach that won't break. I prefer z-index-es.

We decided to go with https://github.com/select2/select2/pull/3544 after a short discussion about how neither pull request fully fixes the issue, but they both have the same side effect.


Why Ext JS doesn't render to a root node?

This is a generic question, but I'm sure you can my answer question since you thoroughly understand Ext JS and React.
It's a common pattern to render React apps to a root element, not to the body.  However, many Ext JS components render directly to the body element, e.g. renderTo: Ext.getBody()
See this tip: "Don’t Render to Body".
<EMAIL_ADDRESS>Why this could pose a problem for React applications and not Ext JS apps?

The points in that article are valid for Ext JS as well.  Both libraries are responsible for rendering the html inside of their respective contain elements, so inserting additional content into the container without the framework's knowledge may yield unexpected results. (One example I can think of would be the way the classic toolkit does layouts, where Ext JS needs to know the dimensions of each child element).
It's most likely that the difference, in practice, is cultural.  React is commonly used alongside other frameworks and often controls only a small part of the page.  Because of this, users may run into these sort of issues more often.  Ext JS apps, on the other hand tend to be all Ext JS.
BTW, we have a gitter channel.  Questions like these are probably more appropriately posted there:  https://gitter.im/sencha/extjs-reactor


metal -> CPU  Tensor::to_device is slow for model output

When using sentence-transformers/all-MiniLM-L6-v2 on m1 PRO mac (32GB ram) with --features metal on,
attempting to generate embeddings for 1000 sentences and attempting to convert the final tensor to a Vec<Vec> the to_device function of Tensor seems very slow.
I believe to_device is important and must be performant in order to switch from Tensor to Vec and potentially Serialize the output from a model in an application
How to reproduce:
place the following code snipet (below) in candle-examples/examples/bert-metal/main.rs
cargo run --example bert-metal --features metal
use candle_transformers::models::bert::{BertModel, Config, DTYPE};

use anyhow::{Error as E, Result};
use candle::{Device, Tensor};
use candle_nn::VarBuilder;
use hf_hub::{api::sync::Api, Repo, RepoType};
use tokenizers::{PaddingParams, Tokenizer};

fn build_model_and_tokenizer() -> Result<(BertModel, Tokenizer)> {
   let device = candle_examples::device(false)?;
   let repo = Repo::with_revision(
       "sentence-transformers/all-MiniLM-L6-v2".to_string(),
       RepoType::Model,
       "refs/pr/21".to_string(),
   );
   let (config_filename, tokenizer_filename, weights_filename) = {
       let api = Api::new()?.repo(repo);
       let config = api.get("config.json")?;
       let tokenizer = api.get("tokenizer.json")?;
       let weights = api.get("model.safetensors")?;
       (config, tokenizer, weights)
   };
   let config = std::fs::read_to_string(config_filename)?;
   let config: Config = serde_json::from_str(&config)?;
   let tokenizer = Tokenizer::from_file(tokenizer_filename).map_err(E::msg)?;
   let vb = unsafe { VarBuilder::from_mmaped_safetensors(&[weights_filename], DTYPE, &device)? };
   let model = BertModel::load(vb, &config)?;
   Ok((model, tokenizer))
}

pub fn normalize_l2(v: &Tensor) -> Result<Tensor> {
   Ok(v.broadcast_div(&v.sqr()?.sum_keepdim(1)?.sqrt()?)?)
}

fn get_mock_2d_tensor(vec_count: usize, vec_size: usize, d: &Device) -> Tensor {
   let mut data = Vec::with_capacity(vec_count);
   for i in 0..vec_count {
       data.push(vec![i as f32; vec_size]);
   }
   Tensor::new(data, d).expect("failed to generate tensor")
}

fn main() -> Result<()> {
   let (model, mut tokenizer) = build_model_and_tokenizer()?;
   let device = &model.device;
   let sentence_count = 1_000;
   let sentences: Vec<&str> =
       vec!["This is a sample sentence that should be short enough"; sentence_count];
   let pp = PaddingParams {
       strategy: tokenizers::PaddingStrategy::Fixed(128),
       ..Default::default()
   };
   tokenizer.with_padding(Some(pp));
   let tokens = tokenizer.encode_batch(sentences, true).map_err(E::msg)?;
   let mut token_ids = Vec::with_capacity(tokens.len());
   for encoding in tokens {
       token_ids.push(encoding.get_ids().to_vec());
   }
   let token_ids = Tensor::new(token_ids, device)?;
   let token_type_ids = token_ids.zeros_like()?;

   println!("running inference on batch {:?}", token_ids.shape());
   let start = std::time::Instant::now();
   let embeddings = model.forward(&token_ids, &token_type_ids)?;
   println!("model forward timing {:?}", start.elapsed());
   let start = std::time::Instant::now();
   let (_n_sentence, n_tokens, _hidden_size) = embeddings.dims3()?;
   let embeddings = (embeddings.sum(1)? / (n_tokens as f64))?;
   let embeddings = normalize_l2(&embeddings)?;
   println!(
       "pooled embeddings {:?} in {:?}",
       embeddings.shape(),
       start.elapsed()
   );
   let start = std::time::Instant::now();
   embeddings.to_device(&Device::Cpu)?;
   println!(
       "moved embedding tensor back to cpu in {:?}",
       start.elapsed()
   );

   let mock_tensor = get_mock_2d_tensor(1000, 384, device);
   let start = std::time::Instant::now();
   let old_device = mock_tensor.device();
   mock_tensor.to_device(&Device::Cpu)?;
   println!(
       "moved mock tensor of size {:?} from {:?} back to cpu in {:?}",
       mock_tensor.shape(),
       old_device,
       start.elapsed()
   );
   Ok(())
}

output
running inference on batch [1000, 128]
model forward timing 185.251708ms
pooled embeddings [1000, 384] in 233.083µs
moved embedding tensor back to cpu in 18.590362041s
moved mock tensor of size [1000, 384] from Metal(MetalDevice(4294969642)) back to cpu in 517.167µs

I added a sample move of a manually generated tensor at the end to show that the issue might not be related to the size of the tensor.
Investigation

The issue might be related to theMetalStorage.to_cpu, when debugging I added a self.device.wait_until_completed statement at the top of the function and found that most of the time was spent there, could there be commands waiting to be flushed?

Is there a way to generate a new Tensor.storage or Tensor.storage.device that would only contain the [1000, 384] floats  for an existing tensor? with a fresh command_queue, command_buffer and buffersfrom an existing Tensor to maybe bypass this issue?

I'm not a specialist of the metal api but I suspect it's asynchronous so candle schedule commands that run in the background on the gpu and it's blocking when candle tries to access the results and move them back to cpu. So your timings will say that most of the time is spent in to_device but actually this is measuring the whole computation.
That's how things work in the cuda world and tools like nvsys allow you see what is actually running on the gpu. I imagine such tools also exist for metal but I wouldn't know of them (in the cuda world one can also set CUDA_LAUNCH_BLOCKING to get all the calls to be blocking but this has a significant impact on performance).

I am wondering is what are the pending GPU commands are, are they needed for the purpose of extracting the final tensor from the GPU to the CPU (only the dimension we need)? could we ignore these operations or are they part of the work done by model.encode in which case why don't model.encode wait for the GPU operations to complete?
After running the model.encode function my naive expectation is that the final Tensor has been calculated by the GPU and no further calculation should be pending.
This seems to me like a candle specific issue since when running the same model in pytorch (on the same hardware):
from typing import List, Optional
import time
import torch
from sentence_transformers import SentenceTransformer

def best_device():
    """In the following order mps (m1 macs), cuda, cpu (default)
    return the first available device detected

    Returns:
        torch.device: the detected torch device
    """

    if torch.backends.mps.is_available() and torch.backends.mps.is_built():
        print("Using MPS")
        return torch.device("mps")
    if torch.cuda.is_available():
        return torch.device("cuda")
    return torch.device("cpu")

class SentenceTransformerVectorizer:
    __slots__ = "_model", "_device"
    _model: SentenceTransformer
    _device: torch.device

    def __init__(self, model_path: str, device: Optional[torch.device] = None):
        if device is None:
            device = best_device()
        self._device = device
        self._model = SentenceTransformer(model_path, device=device)
        self._model.eval()  # make sure we're in inference mode, not training

    def vectorize(self, batch: List[str]):
        return self._model.encode(
            batch, batch_size=min(1000, len(batch)), device=self._device
        )

texts = ["this is some random text x 1000"] * 1_000
vectorizer = SentenceTransformerVectorizer("all-MiniLM-L6-v2", best_device())
start = time.monotonic()
output = vectorizer.vectorize(texts)
elapsed = time.monotonic() - start
print(f"Elapsed time: {elapsed:.2f} seconds with shape: {output.shape}")

the embeddings does not experience anything close to that 18seconds delay
Output:
Using MPS
Elapsed time: 0.32 seconds with shape: (1000, 384)

After running the model.encode function my naive expectation is that the final Tensor has been calculated by the GPU and no further calculation should be pending.

Which model.encode is this? What I just hinted at (based on how cuda works, again not sure of what metal would do) is that the rust function would mostly return instantaneously until you hit a synchronisation point, at which point you would have to wait for the gpu computations to actually finish. The timings that you would get would not really represent which operations are blocking, for that you may want to use some specialize metal kernel profiler. Again on the cuda side one would use nvsys to get a sense of what the GPU is doing, I don't know what the equivalent for metal is.
That wouldn't explain why the model is so much slower than pytorch, but could help pinpoint which kernel is actually problematic here as it may well not be the one copying data to the cpu.
Also maybe you want to run with --release if it's not already the case, otherwise cpu optimisations are not turned on.

I apologize, I meant model.forward (not model.encode) where model is an instance of candle_transformers::models::bert::BertModel.
So the logical flow is

Load BertModel to GPU
Tokenize some inputs (CPU task)
add tokenization output to GPU as Tensor (A)
apply BertModel::forward to Tensor A (GPU task, that launches a lot of GPU async ops)
-- 18 seconds are spent here
collect output of BertModel Tensor (B) back to GPU (GPU -> CPU transfer)

If i understand what you are saying correctly, step 4 launches a set of tasks asynchronously
and when step 5 is called, in order to collect the final tensor all the tasks launched by step 4, have to be completed.
My question is then:
assuming we NEED to wait for all the tasks launched by step A in order to get the final tensor, why do these tasks take 18 seconds when pytorch can perform similar tasks on metal in ms?
OR
is there a way to open a different GPU command queue to get the final tensor without waiting for all the async operations from step 4 (only wait for the operations required to calculate the final vector)? right after step 4, if i do Tensor B .shape it returns the correct shape (without waiting 18 seconds), so my naive assumption would be that the calculations required to get the final vector have been completed ... but maybe I am wrong, perhaps the tensor shape is calculated before the tensor values are ...

Getting the tensor shape doesn't communicate with the gpu - it's fully handled on the cpu side, only retrieving its content is actually async. If it's like cuda, we would wait only for the necessary task to complete to get the data out, not all the task - that would not be handled at the candle level but rather within cuda.
From here it seems that some kernel is very slow and so we would have to profile what is going on on the gpu side to get a sense of where the time is spent, hence my suggestion to use an equivalent of nvsys. There is a metal performance debugger but I've never tried it.
Also did you re-run with --release just in case cpu optimizations actually help here?

yep i ran with --release, same 18seconds delay.
Ok I will (try to) look into trying to profiling operations, by using xcode, following the steps outlined in metal-rs guide

I was able to generate a GPU trace, the trace is too large (+1G, compressed 125 MB) so if interested you can find it here.
Not sure where to go from here ...
Findings from GPU trace

the amount of memory used is very larged 42GB especially for such a tiny task

the debugger reports 416 insights, most of them being LateMTLBufferCreation with a few Late MTLComputePipelineState creation and Late MTLLibrary creation

When I tried to get the Performance, my computer freezes and eventually runs out of memory so I could not get a timeline,
maybe someone with a better machine can run the performance on the trace

How to reproduce on Mac only
I ran the code below to generate a Metal GPU trace (I followed the step outline here to run the executable in XCode).
note:

the root of the XCode project is the root of the candle repo
Xcode command args build --example bert-metal --release --features metal
I added metal to by adding metal = { workspace = true } in the dependencies in candle-examples/Cargo.toml
don 't forget to set the output path for the gputrace

// candle-examples/examples/bert-metal/main.rs
use candle_transformers::models::bert::{BertModel, Config, DTYPE};

use anyhow::{Error as E, Result};
use candle::{Device, Tensor};
use candle_nn::VarBuilder;
use hf_hub::{api::sync::Api, Repo, RepoType};
use metal::{self, CaptureScope};
use tokenizers::{PaddingParams, Tokenizer};

fn build_model_and_tokenizer() -> Result<(BertModel, Tokenizer)> {
    let device = candle_examples::device(false)?;
    let repo = Repo::with_revision(
        "sentence-transformers/all-MiniLM-L6-v2".to_string(),
        RepoType::Model,
        "refs/pr/21".to_string(),
    );
    let (config_filename, tokenizer_filename, weights_filename) = {
        let api = Api::new()?.repo(repo);
        let config = api.get("config.json")?;
        let tokenizer = api.get("tokenizer.json")?;
        let weights = api.get("model.safetensors")?;
        (config, tokenizer, weights)
    };
    let config = std::fs::read_to_string(config_filename)?;
    let config: Config = serde_json::from_str(&config)?;
    let tokenizer = Tokenizer::from_file(tokenizer_filename).map_err(E::msg)?;
    let vb = unsafe { VarBuilder::from_mmaped_safetensors(&[weights_filename], DTYPE, &device)? };
    let model = BertModel::load(vb, &config)?;
    Ok((model, tokenizer))
}

fn start_metal_debug() -> CaptureScope {
    let capture_scope = metal::CaptureManager::shared()
    .new_capture_scope_with_device(&metal::Device::system_default().unwrap());

    let capture_descriptor = metal::CaptureDescriptor::new();
    capture_descriptor.set_capture_scope(&capture_scope);
    capture_descriptor.set_output_url(std::path::Path::new(
    // you might need to update this value
    // make sure it does not already exist
    // <SET_OUTPUT_PATH_HERE>
    // example: `"~/Users/<YOU>/temp/framecapture.gputrace",
    ));
    capture_descriptor.set_destination(metal::MTLCaptureDestination::GpuTraceDocument);

    metal::CaptureManager::shared().start_capture(&capture_descriptor).unwrap();
    capture_scope.begin_scope();
    capture_scope
}

fn end_metal_debug(capture_scope: CaptureScope) {
    capture_scope.end_scope()
}

fn main() -> Result<()> {
    let scope = start_metal_debug();
    let (model, mut tokenizer) = build_model_and_tokenizer()?;
    let device = &model.device;
    let sentence_count = 1000;
    let pp = PaddingParams {
        strategy: tokenizers::PaddingStrategy::Fixed(128),
        ..Default::default()
    };
    tokenizer.with_padding(Some(pp));
    let sentences: Vec<&str> =
        vec!["This is a sample sentence that should be short enough"; sentence_count];
    let tokens = tokenizer.encode_batch(sentences, true).map_err(E::msg)?;
    let mut token_ids = Vec::with_capacity(tokens.len());
    for encoding in tokens {
        token_ids.push(encoding.get_ids().to_vec());
    }
    let token_ids = Tensor::new(token_ids, device)?;
    let token_type_ids = token_ids.zeros_like()?;

    println!("running inference on batch {:?}", token_ids.shape());
    let start = std::time::Instant::now();
    let embeddings = model.forward(&token_ids, &token_type_ids)?;
    println!("model forward timing {:?}", start.elapsed());

    let start = std::time::Instant::now();
    let old_device = embeddings.device();
    let embeddings = embeddings.to_device(&Device::Cpu)?;
    println!(
        "moved embedding with shape {:?} from {:?} back to cpu in {:?}",
        embeddings.shape(),
        old_device,
        start.elapsed()
    );
    end_metal_debug(scope);
    Ok(())
}


[Test][Topi] Use binary fractions for crop_and_divide unit tests

The crop_and_resize operator uses floating-point arithmetic to determine whether an index is within a view-box.  This can cause the use of extrapolation_value to depend on target-dependent rounding differences.
For example, this issue was initially noticed on Vulkan during debugging of https://github.com/apache/tvm/pull/13530, and was the result of computing 0.2*223.0 + 0.8*223.0 < 223.0.  If all intermediates are cast to float32, the left-hand side evaluates to 223.00002.  If intermediates are kept at a higher precision, the left-hand side evaluates to 223.0.
The floating-point indexing can't be removed, because the operator must match the API defined by TensorFlow's operator implementation. The TensorFlow documentation for CropAndResize does not specify behavior in these cases, nor do the current TensorFlow unit tests check cases of rounding error.  Since the TensorFlow unit tests only use binary fractions for the boxes argument, which largely avoids the rounding issue, this commit updates the TVM unit tests to avoid depending on floating-point precision.

Failure wasn't reproducible locally with 1k repetitions, each with a different random input.  Re-running CI with a fixed seed for random input data.

The errors in the i386 test look like they are due to the same type of rounding issue that this PR was intended to avoid.  That is, when an input pixel falls exactly on the edge of a bounding box, whether the extrapolation_value is used depends entirely on the numerical rounding error.  Rather than trying to reproduce exact errors, updating the PR such that the tests have some epsilon different applied to the bounding boxes.


[SPARK-27021][CORE] Cleanup of Netty event loop group for shuffle chunk fetch requests

What changes were proposed in this pull request?
Creating an Netty EventLoopGroup leads to creating a new Thread pool for handling the events. For stopping the threads of the pool the event loop group should be shut down which is properly done for transport servers and clients by calling for example the shutdownGracefully() method (for details see the close() method of TransportClientFactory and TransportServer). But there is a separate event loop group for shuffle chunk fetch requests which is in pipeline for handling fetch request (shared between the client and server) and owned by the TransportContext and this was never shut down.
How was this patch tested?
With existing unittest.
This leak is in the production system too but its effect is spiking in the unittest.
Checking the core unittest logs before the PR:
$ grep "LEAK IN SUITE" unit-tests.log | grep -o shuffle-chunk-fetch-handler | wc -l
381

And after the PR without whitelisting in thread audit and with an extra await after the
 chunkFetchWorkers.shutdownGracefully():
$ grep "LEAK IN SUITE" unit-tests.log | grep -o shuffle-chunk-fetch-handler | wc -l
0

Can one of the admins verify this patch?

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/8393/
Test PASSed.

Test build #102920 has started for PR 23930 at commit 3f3567d.

Test build #102920 has finished for PR 23930 at commit 3f3567d.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
public class TransportContext implements Closeable

Merged build finished. Test PASSed.

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

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/8515/
Test PASSed.

Test build #103053 has started for PR 23930 at commit 3b469d7.

looks good pending tests.

Test build #103053 has finished for PR 23930 at commit 3b469d7.

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

Merged build finished. Test PASSed.

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

Merging to master.


Memory File DB?

Since the concept is good. Is there any way this could be using php://memory ?

Hi @arunnabraham I don't understand your question.
Would be nice if you could describe your question a little bit better.
Thank you in advance.

I will close this issue for now. Please feel free to reopen it if needed.

Hi. If I am not wrong, SleekDB uses JSON file-based database right? Hope it uses PHP array manipulation in the background.
Since it also uses fopen in the background, could we possibly use php://memory instead of file name?
My thought is to use it along with multiple Sharded DB environments. So I don't want to use joins directly on my RDB but fetching multiple tables which are on different DB instances and pass it to SleekDB for further manipulation. Since I don't like to use JSON file inside the server disk, could we possibly use PHP's memory file option on the existing SleekDB configuration, so effectively
improve the I/O and computation also reduce RDBMS load thereby.
example code reference: https://github.com/nanderoo/php-memory-demo/blob/master/example-01.php

Do I understand it correctly? You want to save all documents/entries in the RAM? What happens if the Server goes down and the RAM is cleared?

The memory is used only for computation which would be a temporary one.


docs: fix relative to absolute links on README.md

This commit fixes the relatives links on README.md, adding absolute
links.
The PyPI renders the README.md as an HTML page on the landing page
of the python-tuf package. If the links are not absolute links to
the files in git repository, they will fail.
Fixes: #1739
Signed-off-by: Kairo de Araujo<EMAIL_ADDRESS>
[ ] The code follows the Code Style Guidelines
[ ] Tests have been added for the bug fix or new feature
[X] Docs have been added for the bug fix or new feature

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 97.689%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
4098

Relevant Lines:
4179

💛  - Coveralls


FATAL ERROR Replace https://localhost:6443 by https://master-ip:6443]

The error I receive is below. It does not matter which node I choose as the Master (I have tried all 6 of my Raspberry Pi's). Or what version of K3s I try and run (I've done 1.19.3+k3s3, 1.19.3+k3s2, 1.18.12+k3s1 etc.)
The crazy thing is I had this up and running 3 days ago with no issues.
TASK [k3s/master : Replace https://localhost:6443 by https://master-ip:6443] *******************************************
Sunday 15 November 2020  19:15:44 -0500 (0:00:01.027)       0:01:28.650 *******
fatal: [<IP_ADDRESS>]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'master' is undefined\n\nThe error appears to be in '/home/ublaptop/k3s-ansible/roles/k3s/master/tasks/main.yml': line 62, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- name: Replace https://localhost:6443 by https://master-ip:6443\n  ^ here\n"}
my hosts.ini looks like below

[master]
<IP_ADDRESS>
[node]
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
[k3s_cluster:children]
master
node

and my group_vars all.yml below
k3s_version: v1.18.12+k3s1
ansible_user: ubuntu
systemd_dir: /etc/systemd/system
master_ip: "{{ hostvars[groups['master'][0]]['ansible_host'] | default(groups['master'][0]) }}"
extra_server_args: ""
extra_agent_args: ""

i have same problem.

fatal: [<IP_ADDRESS>]: FAILED! => {"attempts": 20, "changed": false, "cmd": ["k3s", "kubectl", "get", "--raw", "/api/v1/nodes/"], "delta": "0:00:01.399466", "end": "2020-12-24 13:42:11.263038", "msg": "non-zero return code", "rc": 1, "start": "2020-12-24 13:42:09.863572", "stderr": "The connection to the server <IP_ADDRESS>:6443 was refused - did you specify the right host or port?", "stderr_lines": ["The connection to the server <IP_ADDRESS>:6443 was refused - did you specify the right host or port?"], "stdout": "", "stdout_lines": []}

<IP_ADDRESS> is master node ip

Having the same issue and can't track down the cause. Installation looks like everything works. Kubectl shows a client running fine, no server found. Try to get nodes and it looks for server at localhost

I'm experiencing the same issue.
Running the playbook on a RHEL 7 VM with K3s v1.21.4+k3s1 results in

TASK [k3s/master : Replace https://localhost:6443 by https://master-ip:6443] ****************************************************************************************************************************************************************
Wednesday 15 September 2021  07:44:38 +0200 (0:00:00.647)       0:00:48.477 ***
fatal: [master-ip]: FAILED! => {"changed": true, "cmd": "k3s kubectl config set-cluster default --server=https://master-ip:6443 --kubeconfig /home/dummy/.kube/config", "msg": "[Errno 2] No such file or directory", "rc": 2}

Running the command manually - as the 'dummy' user - on the target host right after the playbook failed works just fine.

Resolved with https://github.com/k3s-io/k3s-ansible/pull/143


⚠ SolarQuery has degraded performance

In 5768bfb, SolarQuery ($SOLARQUERY_URL) experienced degraded performance:

HTTP code: 200
Response time: 950 ms

Resolved: SolarQuery performance has improved in 27c5465 after 10 minutes.


rm: security: Remove misleading machine name

Signed-off-by: Daiane Angolini<EMAIL_ADDRESS>

Docs for f939e4d729afad191c86d033dca014234164cd2b are browesable at: https://ci.foundries.io/projects/fio-docs/builds/1057/docs/artifacts/html/index.html

After the changes from #252 it is not needed any more


Update timeline from 109 to 112 to match upstream

I didn't see this one before I opened #467. Since that had some small metadata updates and just merged, this one can be abandoned.


Activation error on 702 "Unexpected word "EXPORTING" in functional method call"

I found this activation error on abap 702.
"Unexpected word "EXPORTING" in functional method call".
The error occur in zcl_abapgit_object_pdts->get_container_xml method line 91.
The code was added in this pull request
https://github.com/abapGit/abapGit/pull/3711

@jeovax thanks for the bug report
I'll provide a PR for this

long term fix is https://github.com/abaplint/abaplint/issues/1399 to avoid this kind of errors

@jeovax try again, latest version

@jeovax assuming this part worked as you opened https://github.com/abapGit/abapGit/issues/4032
closing


Remove version: SmartSoft.SmartFTP version 10.0.3218.0

[Automated] It returns code over 400 in all urls
Microsoft Reviewers: Open in CodeFlow

URL: https://static.smartftp.com/static/Products/Client/10.0.3218.0/x64/SmartFTP.msi
Response Error: The remote server returned an error: (404) Not Found.
(Automated message - build 911)


Fails to dotnet publish.

I folowwed the instructons from Here It fails to build because it cannot find objwriter
There is a libobjwriter.so in .nuget/packages/runtime.linux-x64.microsoft.dotnet.ilcompiler/1.0.0-alpha-29408-02/tools/ and I copied it to the same dir but with the name objwriter.so and it did not resolve the issue.
EXEC : error : Unable to load shared library 'objwriter' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libobjwriter: cannot open shared object file: No such file or directory [/home/alex/source/repos/robloxility/robloxility.csproj]
  System.DllNotFoundException: Unable to load shared library 'objwriter' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libobjwriter: cannot open shared object file: No such file or directory
     at ILCompiler.DependencyAnalysis.ObjectWriter.InitObjWriter(String objectFilePath, String triple)
     at ILCompiler.DependencyAnalysis.ObjectWriter..ctor(String objectFilePath, NodeFactory factory)
     at ILCompiler.DependencyAnalysis.ObjectWriter.EmitObject(String objectFilePath, IEnumerable`1 nodes, NodeFactory factory, IObjectDumper dumper)
     at ILCompiler.RyuJitCompilation.CompileInternal(String outputFile, ObjectDumper dumper)
     at ILCompiler.Compilation.ILCompiler.ICompilation.Compile(String outputFile, ObjectDumper dumper)
     at ILCompiler.Program.Run(String[] args)
     at ILCompiler.Program.Main(String[] args)
/home/alex/.nuget/packages/microsoft.dotnet.ilcompiler/1.0.0-alpha-29408-02/build/Microsoft.NETCore.Native.targets(231,5): error MSB3073: The command ""/home/alex/.nuget/packages/runtime.linux-x64.microsoft.dotnet.ilcompiler/1.0.0-alpha-29408-02/tools/ilc" @"obj/Release/netcoreapp3.1/linux-x64/native/robloxility.ilc.rsp"" exited with code 1. [/home/alex/source/repos/robloxility/robloxility.csproj]

ok4

Could you please run ldd /home/alex/.nuget/packages/runtime.linux-x64.microsoft.dotnet.ilcompiler/1.0.0-alpha-29408-02/tools/libobjwriter.so ? It will show you any missing dependencies.
The most likely problem is that you are missing some of the prerequisites.


[SPARK-23312][SQL][followup] add a config to turn off vectorized cache reader

What changes were proposed in this pull request?
https://github.com/apache/spark/pull/20483 tried to provide a way to turn off the new columnar cache reader, to restore the behavior in 2.2. However even we turn off that config, the behavior is still different than 2.2.
If the output data are rows, we still enable whole stage codegen for the scan node, which is different with 2.2, we should also fix it.
How was this patch tested?
existing tests.

@sameeragarwal @kiszk  @viirya @gatorsmile

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/609/
Test PASSed.

Merged build finished. Test PASSed.

Test build #87088 has started for PR 20513 at commit 8525b2c.

LGTM pending Jenkins.

Test build #87088 has finished for PR 20513 at commit 8525b2c.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

retest this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/614/
Test PASSed.

Test build #87093 has started for PR 20513 at commit 8525b2c.

Test build #87093 has finished for PR 20513 at commit 8525b2c.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

retest this please.

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

Merged build finished. Test FAILed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/617/
Test PASSed.

LGTM

Test build #87097 has finished for PR 20513 at commit 8525b2c.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/627/
Test PASSed.

Test build #87108 has started for PR 20513 at commit 880412f.

Test build #87108 has finished for PR 20513 at commit 880412f.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

retest this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/631/
Test PASSed.

Test build #87113 has started for PR 20513 at commit 880412f.

Test build #87113 has finished for PR 20513 at commit 880412f.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

java.lang.RuntimeException: [unresolved dependency: com.sun.jersey#jersey-json;1.14: configuration not found in com.sun.jersey#jersey-json;1.14: 'master(compile)'. Missing configuration: 'compile'. It was required from org.apache.hadoop#hadoop-yarn-common;2.6.5 compile]

Seems like some environmental problems, let's try again.

retest this please

Test build #87118 has started for PR 20513 at commit 880412f.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/634/
Test PASSed.

Test build #87118 has finished for PR 20513 at commit 880412f.

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

Merged build finished. Test PASSed.

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

Thanks! Merged to master/2.3


Copying containers failes with error: failed to create mountpoint

When I try to copy an existing container it results in an error. Reading other simular issues did not help me to fix it.
root@dev ~ # lxc copy kasupg5 kasupg3
Error: Create instance from copy: Failed to run: zfs clone tank/containers/kasupg5@copy-47c738fe-5d80-40a7-8d8b-69ec682ab175 tank/containers/kasupg3: cannot mount '/tank/containers/kasupg3': failed to create mountpoint
filesystem successfully created, but not mounted
Same error pops up when I try to launch a fresh container:
root@dev ~ # lxc launch ubuntu:18.04 test
Creating test
Error: Failed instance creation: Create instance from image: Failed to run: zfs clone tank/images/a92eaa65a5c5e53c6bf788b4443f4e5d2afac1665486247c336aa90959522bb6@readonly tank/containers/test: cannot mount '/tank/containers/test': failed to create mountpoint
filesystem successfully created, but not mounted
Some more info:
root@dev ~ # lxc storage list
+------+-------------+--------+--------+---------+
| NAME | DESCRIPTION | DRIVER | SOURCE | USED BY |
+------+-------------+--------+--------+---------+
| tank |             | zfs    | tank   | 20      |
+------+-------------+--------+--------+---------+
root@dev ~ # lxc storage show tank
config:
source: tank
zfs.pool_name: tank
description: ""
name: tank
driver: zfs
used_by:

/1.0/images/a92eaa65a5c5e53c6bf788b4443f4e5d2afac1665486247c336aa90959522bb6
/1.0/images/e4d11d41a2346917567e55493297b0a37fd96d5a78801f85c4c785493e8dc75a
/1.0/instances/kasact
/1.0/instances/kasact2
/1.0/instances/kasdev
/1.0/instances/kasdev2
/1.0/instances/kasdev3
/1.0/instances/kasdev4
/1.0/instances/kasdev5
/1.0/instances/kasdev6
/1.0/instances/kasdev7
/1.0/instances/kasdev8
/1.0/instances/kasedsntest
/1.0/instances/kastest
/1.0/instances/kastest2
/1.0/instances/kasupg2
/1.0/instances/kasupg4
/1.0/instances/kasupg5
/1.0/instances/kasupg7
/1.0/profiles/default
status: Created
locations:
none

This error normally indicates that you have altered the mountpoint property of some of your containers, in this case it's showing /tank.
LXD only supports having datasets mounted where it sets them to be /var/snap/lxd/common/lxd/storage-pools/POOL/....
Showing zfs list -t all -o name,mountpoint should make it quite visible where things have gone wrong.

Thanks that helped! It wasn't the mountpoint for the containers by the 'main' mountpoints.
For unknow reasons their where wrong. As far as I can remember I did not change it manually.
root@dev ~ # zfs list -t all -o name,mountpoint
NAME                                                                                MOUNTPOINT
tank                                                                                /tank
tank/containers                                                                                /tank/containers
Fixed it by using:
root@dev ~ # zfs set mountpoint=none tank
root@dev ~ # zfs set mountpoint=none tank/containers
Result:
root@dev ~ # zfs list -t all -o name,mountpoint
NAME                                                                                MOUNTPOINT
tank                                                                                none
tank/containers                                                                                none

Ah yeah, then they'd get inherited down the tree.


logo

I made a very bad logo so that I would be motivated to fix it before too long. Help. The only time I've made a good logo in my life it was by accident and for a joke project among friends.

does this help

it gave me a much-needed laugh, so yes!


adds nyc option. closes #34

I have added a question at the prompt:
Do you need code coverage (nyc)?
If the answer is Yes, the following occurs:

Adds .nyc_output and coverage to the .gitignore file
Appends && nyc ava to the npm "test" script: "test": "xo && ava && nyc ava"
Adds "nyc" to the devDependencies in package.json

I have also included a unit test for this behavior.
This PR would close issue #34 if it is merged.

"test": "xo && ava && nyc ava"

should be
"test": "xo && nyc ava"

Not sure of adding this in the main generator though.

I was actually thinking about that. It would be nice to have the ability to add nyc anytime after the module has already been initialized using $ nm:nyc, this would encapsulate the nyc option in its own sub-generator, but also provide the nyc option at the prompt with the question:
Do you need code coverage (nyc)?
Also, I initially missed the detail in the comment made by @sindresorhus on issue #34 regarding the sub-generator, and my approach doesn't use sub-generators at the moment.
I am happy to refactor this into a sub-generator if that is the popular vote.

...but then again, adding in a sub-generator would increase the complexity of this generator. The way I have it implemented in this current PR, it only takes a few lines in the templates to get things working, but if we create an entire sub-generator, then suddenly the module doubles in size (because instead of simply embedding <% if %> statements in the templates, we would need to do read/write operations on two different files: package.json, and .gitignore and handle all the reporting/errors. So it's worth considering when weighing the costs of a sub-generator. I have already started working on a sub-generator branch just to get an idea of what it will involve. I am happy to share for comparison.

Ok, so I have created a generator called generator-avanyc which adds nyc automatically to any existing AVA project. So I can independently (or cooperatively) experiment with this as a sub-generator to see what the different experiences are like.
I have typed a lot code, but my feelings won't be hurt if you decide my contributions don't fit the vision.
Free hamburgers! :point_right: :hamburger: :hamburger: :hamburger:

I'm gonna go with the simple solution. This looks good. Can you fix the merge conflict?

merge conflict fixed.

Thank you @radiovisual :)

No problem! Happy to help! :smile:


Rebuild executable from the extracted bitcode.

Hi,
I tried to use wllvm to extract bitcode for nodejs, and then rebuild executable from the extract bitcode.  My step is as follow:
cd node-v10.16.0/
export LLVM_COMPILER=clang
CC=wllvm CXX=wllvm++ ./configure
CC=wllvm CXX=wllvm++ make -j
extract-bc node

Now I get the llvm bitcode node.bc. Then I try to rebuild this node.bc to executable:
llc node.bc --filetype=obj node.bc
gcc node.o -o node_from_bc

I can get a node.o but at the last step, one error accurs:
/usr/bin/ld: node.o: relocation R_X86_64_32S against symbol `_ZTVN4node9AsyncWrapE' can not be used when making a PIE object; recompile with -fPIC

I am confused when to add this flag -fPIC?

So this is not really an issue with wllvm, but rather what you are doing with it.
My guess, and it is just that, is that you should watch carefully how the original node
is linked, paying attention to the flags (wllvm has logging for this sort of thing, though it can be pretty noisy). Then mimic that. Not sure why you would do
the final link with gcc, either. clang or clang++ would be fine for that.
BUT to answer your question. The -fPIC would be done in the configure step.
Either by using a configure argument to enable it (if there is one, try
./configure --help

), or by doing something like:
CFLAGS="-fPIC" CC=wllvm CXX=wllvm++ ./configure

Hope that helps.

Sorry for my pool English, and thanks for your patient to reply me.
I have tried many ways but none of them make sense. I tried to add -fPIC flag when compiling it like this
CLAGS="-fPIC" CC=wllvm CXX=wllvm++ ./configure
CLAGS="-fPIC" CC=wllvm CXX=wllvm++ -j 50

or directly add the flag "-fPIC" to the config file to make sure my executable (compiled by wllvm) is compiled with the "-fPIC" flag.
And I tried to rebuild the executable like this
clang++ node.bc -o node

, or this
llc -filetype=obj node.bc
clang++ node.bc -o node

but both of them gave me the same error:
clang-7: error: linker command failed with exit code 1 (use -v to see invocation)

Lots of undefined references were assert:
undefined reference to `ceil'
undefined reference to `std::__throw_bad_alloc()'
undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
...

It seems that the linker failed to find common library functions?

Forget the -fPIC for a second. You need to know how the node executable was linked in the usual build.  For example the ceil complaint  is most likely fixed just by adding the -lm on the link line. The other complaint looks like a plea for stdlibc++.  Thde linker isn't smart you need to tell it what additional libraries are required.
Try and build node without wllvm and see if you can see the link phase. You may need to turn up the verbosity of the build.

If you give me a link to the tar ball you are trying to build I shall show you.

Thank you very much. I'm working on nodejs and the link is
wget https://nodejs.org/dist/v10.16.0/node-v10.16.0.tar.gz

And if I build it on ubuntu 16.04 linux is that cool?

My environment is ubuntu18.04 but I think it's fine for your test on ubuntu16.04.

Ok 18.04 it is.  It will take me a while, since I don't have the right laptop at home this weekend
so I will have to build the box from scratch.  So don't hold your breath.

Thanks very much for your kindness. Take your time, please.

Not going to happen this weekend.  So ....
Monday.

Hi,
I have solved this problem.
I  first built nodejs in normal way
cd node-v10.16.0
./configure
make

and saved the logs of the make option. And then I found the link option from the logs mentioned before:
 g++ -o /home/zys/download/node-v10.16.0/out/Release/node -pthread -rdynamic -m64 -Wl,--whole-archive,/home/zys/download/node-v10.16.0/out/Release/obj.target/libnode.a -Wl,--no-whole-archive -Wl,--whole-archive,/home/zys/download/node-v10.16.0/out/Release/obj.target/deps/zlib/libzlib.a -Wl,--no-whole-archive -Wl,--whole-archive,/home/zys/download/node-v10.16.0/out/Release/obj.target/deps/uv/libuv.a -Wl,--no-whole-archive -Wl,-z,noexecstack -Wl,--whole-archive /home/zys/download/node-v10.16.0/out/Release/obj.target/deps/v8/gypfiles/libv8_base.a -Wl,--no-whole-archive -Wl,-z,relro -Wl,-z,now -Wl,--whole-archive,/home/zys/download/node-v10.16.0/out/Release/obj.target/deps/openssl/libopenssl.a -Wl,--no-whole-archive -pthread  -Wl,--start-group /home/zys/download/node-v10.16.0/out/Release/obj.target/node/src/node_main.o /home/zys/download/node-v10.16.0/out/Release/obj.target/libnode.a /home/zys/download/node-v10.16.0/out/Release/obj.target/deps/v8/gypfiles/libv8_libplatform.a /home/zys/download/node-v10.16.0/out/Release/obj.target/tools/icu/libicui18n.a /home/zys/download/node-v10.16.0/out/Release/obj.target/deps/zlib/libzlib.a /home/zys/download/node-v10.16.0/out/Release/obj.target/deps/http_parser/libhttp_parser.a /home/zys/download/node-v10.16.0/out/Release/obj.target/deps/cares/libcares.a /home/zys/download/node-v10.16.0/out/Release/obj.target/deps/uv/libuv.a /home/zys/download/node-v10.16.0/out/Release/obj.target/deps/nghttp2/libnghttp2.a /home/zys/download/node-v10.16.0/out/Release/obj.target/deps/brotli/libbrotli.a /home/zys/download/node-v10.16.0/out/Release/obj.target/deps/openssl/libopenssl.a /home/zys/download/node-v10.16.0/out/Release/obj.target/deps/v8/gypfiles/libv8_base.a /home/zys/download/node-v10.16.0/out/Release/obj.target/deps/v8/gypfiles/libv8_libbase.a /home/zys/download/node-v10.16.0/out/Release/obj.target/deps/v8/gypfiles/libv8_libsampler.a /home/zys/download/node-v10.16.0/out/Release/obj.target/tools/icu/libicuucx.a /home/zys/download/node-v10.16.0/out/Release/obj.target/tools/icu/libicudata.a /home/zys/download/node-v10.16.0/out/Release/obj.target/tools/icu/libicustubdata.a /home/zys/download/node-v10.16.0/out/Release/obj.target/deps/v8/gypfiles/libv8_snapshot.a -ldl -lrt -lm -Wl,--end-group

So I followed this option and rebuild my nodejs_from_bc successfully like this:
export LLVM_COMPILER=clang
CC=wllvm CXX=wllvm++ ./configure
CC=wllvm CXX=wllvm++ make -j 50
extract-bc node
llc -filetype=obj node.bc
clang++ -o node_from_bc -Wl,--no-whole-archive -pthread  -Wl,--start-group /home/zys/download/node-v10.16.0/node.o /home/zys/download/node-v10.16.0/out/Release/obj.target/libnode.a /home/zys/download/node-v10.16.0/out/Release/obj.target/deps/v8/gypfiles/libv8_libplatform.a /home/zys/download/node-v10.16.0/out/Release/obj.target/tools/icu/libicui18n.a /home/zys/download/node-v10.16.0/out/Release/obj.target/deps/zlib/libzlib.a /home/zys/download/node-v10.16.0/out/Release/obj.target/deps/http_parser/libhttp_parser.a /home/zys/download/node-v10.16.0/out/Release/obj.target/deps/cares/libcares.a /home/zys/download/node-v10.16.0/out/Release/obj.target/deps/uv/libuv.a /home/zys/download/node-v10.16.0/out/Release/obj.target/deps/nghttp2/libnghttp2.a /home/zys/download/node-v10.16.0/out/Release/obj.target/deps/brotli/libbrotli.a /home/zys/download/node-v10.16.0/out/Release/obj.target/deps/openssl/libopenssl.a /home/zys/download/node-v10.16.0/out/Release/obj.target/deps/v8/gypfiles/libv8_base.a /home/zys/download/node-v10.16.0/out/Release/obj.target/deps/v8/gypfiles/libv8_libbase.a /home/zys/download/node-v10.16.0/out/Release/obj.target/deps/v8/gypfiles/libv8_libsampler.a /home/zys/download/node-v10.16.0/out/Release/obj.target/tools/icu/libicuucx.a /home/zys/download/node-v10.16.0/out/Release/obj.target/tools/icu/libicudata.a /home/zys/download/node-v10.16.0/out/Release/obj.target/tools/icu/libicustubdata.a /home/zys/download/node-v10.16.0/out/Release/obj.target/deps/v8/gypfiles/libv8_snapshot.a -ldl -lrt -lm -Wl,--end-group

Thank you very much for your help.

Excellent.

So I am not sure what you want to do, but if analysis is on your mind, I should point out that
all the archives in that link line, like
/home/zys/download/node-v10.16.0/out/Release/obj.target/libnode.a
/home/zys/download/node-v10.16.0/out/Release/obj.target/deps/v8/gypfiles/libv8_libplatform.a
/home/zys/download/node-v10.16.0/out/Release/obj.target/tools/icu/libicui18n.a
/home/zys/download/node-v10.16.0/out/Release/obj.target/deps/zlib/libzlib.a
/home/zys/download/node-v10.16.0/out/Release/obj.target/deps/http_parser/libhttp_parser.a
/home/zys/download/node-v10.16.0/out/Release/obj.target/deps/cares/libcares.a
/home/zys/download/node-v10.16.0/out/Release/obj.target/deps/uv/libuv.a
/home/zys/download/node-v10.16.0/out/Release/obj.target/deps/nghttp2/libnghttp2.a
/home/zys/download/node-v10.16.0/out/Release/obj.target/deps/brotli/libbrotli.a
/home/zys/download/node-v10.16.0/out/Release/obj.target/deps/openssl/libopenssl.a
/home/zys/download/node-v10.16.0/out/Release/obj.target/deps/v8/gypfiles/libv8_base.a
/home/zys/download/node-v10.16.0/out/Release/obj.target/deps/v8/gypfiles/libv8_libbase.a
/home/zys/download/node-v10.16.0/out/Release/obj.target/deps/v8/gypfiles/libv8_libsampler.a
/home/zys/download/node-v10.16.0/out/Release/obj.target/tools/icu/libicuucx.a
/home/zys/download/node-v10.16.0/out/Release/obj.target/tools/icu/libicudata.a
/home/zys/download/node-v10.16.0/out/Release/obj.target/tools/icu/libicustubdata.a
/home/zys/download/node-v10.16.0/out/Release/obj.target/deps/v8/gypfiles/libv8_snapshot.a

will all have bitcode associated with them. You can extract them out as a bitcode archive in the usual way, or you can extract them out as a module using the -b flag.

Is that possible to use wllvm to generate the whole llvm bitcode (in one module) for node.o and all of the static libraries ? I means that generate a bitcode for the final executable of nodejs, including the static libraries' code.

The short answer is yes, you can use tools like llvm-link to combine modules. The presence
of assembly can cause problems, so you might consider
./configure --openssl-no-asm

I also tried to configure using
--fully-static

but the build SIGSEGV'd which was unfortunate.

I wrote up a quick [gist])https://gist.github.com/ianamason/1c3a54697465436dce2822b80ee364d1) on this.

Awesome！

Sorry to bother you, again.
I try to do some analysis across different modules for nodejs, so I tried to get its whole bitcode. As your gist shows that I can finally get several bitcode files which can then be linked to an executable successfully. But it's still away from my goal to do analysis across these modules.
I tried to use llvm-link to combine these bitcode files to one, but perhaps something wrong happened and I failed it. Since there's someone said llvm-link is just for developler's testing but not for formal use, I'm not sure whether I can achieve my goal with it.
I'm trying to use ld.gold, because someone told me it can link LLVM bitcode files. But I'm not sure whether it would work or not.
I'm here since maybe you can give me some suggestions.

I found your note about wllvm writen several year ago, and it's said that you compile every source module twice time, one for normal ELF file, and another for corresponding bitcode file. Then you insert the bitcode as a section to the ELF file. Sorry that I didn't read your code carefully yet, but is it possible that your code will show me how to link different bitcode to one? But if so, why the bitcode file extrected from the executable "node" doesn't contain those global symbols' declarations from the other bitcode files?

We insert the PATH to the bitcode into a special section in the object file. Not the bitcode itself.
We use llvm_link to merge bitcode modules all the time. It works fine for us. We avoid using ld.gold. We have our own tool here at SRI that people work on called OCCAM.


Use API queries for enrollment, user, and section data

Currently, we are using UDW for gathering enrollment and user info. As I look at completing issue #23, we also want to figure out how to efficiently use API calls to get data about these other entities, so that we are looking at more current data in the report. This will likely make the job significantly longer, but hopefully still less than 3 hours.

Closing this now. Related work continues on this in issue #42.


Setting BSModalContext Size overwrites the dialogClass in some cases

I'm submitting a ...
[ x ] bug report
[   ] feature request
[   ] question about the decisions made in the repository

Do you want to request a feature or report a bug?
bug

What is the current behavior?
When creating a modal just plain-jane with an BSModalContext and you set the size of the modal, the classes of the resulting dialog will not have the modal-dialog class, but only the modal-lg class.

If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem
http://plnkr.co/edit/vV0kJNMWPUP8Nck3lC6e?p=preview

What is the expected behavior?
Either document that you are required to use the context builder class, or make sure that the dialogClass content (or at least the modal-dialog class) is also included in the modal CSS classes.

What is the motivation / use case for changing the behavior?
In previous versions this worked, in the 2.x versions it no longer does :(

Please tell us about your environment:

Angular version: 2.1.2
Browser: all

Happens here as well.


add badges to README

closes: https://github.com/FuelLabs/fuels-ts/issues/139

adding fuels-ts related badges

Poking @AlicanC for review!

Hi @AlicanC could you take a look here, thanks!


fix: Allow HTTP method to be passed as string

According to Excon docs is possible to set the HTTP Method with a string but when using excon instrumentation this fails with the following error [2022-03-22T17:31:14.333447 #85108] ERROR -- : OpenTelemetry error: invalid span attribute value type NilClass for key 'http.method' on span 'HTTP '
On this PR we add a test case for the described scenario and a fix to use the string if no symbol was provided.
Fixes #1158

Thanks so much for the PR @nickrisaro! At first glance, I believe that this should be addressed by @hosamaly's work in https://github.com/open-telemetry/opentelemetry-ruby/pull/1147, which will create a lookup hash with both string and symbol keys.

Thanks for the comment @plantfansam! I didn't find that PR yesterday when looking for this. I agree with you, @hosamaly's solution is better than mine.
I'll close this PR in favor of #1147

Thanks for your contribution @nickrisaro 😄!


feat: add space age exercise

Implementing the space age problem

Lovely! Might I suggest working on getting CI setup correctly? That would involve changing https://github.com/exercism/vlang/blob/main/bin/test to test the exercises using their example implementation.

Yeah can do! Based on the checklist of things to do I was planning on implementing ~20 exercises, then doing CI but I can do the CI stuff before finishing those up


Add cache unit tests

Closes #104

Leave this PR as draft until #95 is merged

commit b3a70fe58900e53e32c2305807516992f14c4b7d closes #106

Commit f79d775a76c153e344e2bc5a99a33eb0da0ca097 closes #109


Add IDE name display option

I didn't find any options to change the displayed IDE name, so I think it would be better to add some options to change it, like the 'JetBrains IDE' and '{IDE name}' options.
I would try to implement this feature if you don't want to.

Hi, Rottenfront!
Unfortunately, this functionality cannot be implemented due to the specific characteristics of Discord activities (for more information, refer to the Activity Struct).
The only possible solution would be to create a new application on the Discord developer portal, but at the moment this cannot be done because of the direct storage of application icons in Discord.


proposal: go/mod: allow go mod to download package that are not exist in vendor

> go mod tidy
> <nothing>, I though go mod tidy was do the job
> go build -trimpath
> main.go:17:2: cannot find package "." in:
>         /path/to/my/file:12:2

I know this are dirty, but..., I don't want to delete vendor to install new package

as written in title, this is a proposal, not a basic question

The error message you presented seems to have little relation to what is proposed in the title. in any case, we need a proper statement of the situation/problem you're trying to solve, why the existing workflows don't work, and why we should support it.


Get two errors when you create a project before restoring

Error       The OutputPath property is not set for project 'ConsoleApplication7.csproj'.  Please check to make sure that you have specified a valid combination of Configuration and Platform for this project.  Configuration='Debug'  Platform='AnyCPU'.  This error may also appear if some other project is trying to follow a project-to-project reference to this project, this project has been unloaded or is not included in the solution, and the referencing project does not build using the same or an equivalent Configuration or Platform.   ConsoleApplication7 C:\Program Files (x86)\Microsoft Visual Studio\VS15Preview\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets 729
Error   MSB3644 The reference assemblies for framework ".NETCoreApp,Version=v1.0" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend.    ConsoleApplication7 C:\Program Files (x86)\Microsoft Visual Studio\VS15Preview\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets 1103

The errors now go away after auto-restore has completed.  However, we should probably hide them until that happens, because it's not a great experience to create a new project and immediately see build errors.

The design time errors have been fixed. Moreover, once https://github.com/dotnet/sdk/issues/415 is done, this won't be an issue


[Bug]: FullRange missing access controls (security bug)

Describe the bug
beforeInitialize should check if it is called by the PoolManager and revert if it isn't
In the current version anyone can override the liquidityToken in the poolInfo
Expected Behavior
only PoolManager should be able to call it
To Reproduce
No response
Additional context
No response

Hi! thanks for flagging -- going to close this issue because:
hook examples no longer live in the main branch
custom accounting will allow for a more v2-style curve with v2 interfaces. reference implementation https://github.com/hensha256/v2-on-v4


add 'get_candidate_genes()' to offline_analysis/commons/phenopolis_utils.py

and a corresponding test

Coverage increased (+1.5%) to 26.148% when pulling 3b5b9d7efd6eb64ce2d1decb1b741ae22e71fe06 on logust79:master into f991cc7e41896b56581c727ca8f56034a7d28c52 on pontikos:master.


no new data

sandwalker isn't reporting any recent rewards, probably due to the 7.0 update

I've been trying to fix it but I can't, it's stuck due to this issue:
https://github.com/pokt-network/pocket-core/issues/1382
On hold for now.

I've upgraded to 0.7.1 which should fix this issue, waiting for the sandwalker node to synchronize from block 0 to confirm it's now fixed.


why loss is always 0.000 in epoch 1  ?

hi，i have the same question，please tell how you solve？

it is not zero，but +- wave, I want to know it is right ？because I'm new to reinforce learning


Rename PyObject.Create to PyObject.Steal or Wrap

Code like
PyObject dict = PyObject.Create(Raw.PyDict_New());
looks like the CPythons PyDictionary would get its refcount increased.
But it is stolen, which should be reflected in the function call:
PyObject dict = PyObject.Steal(Raw.PyDict_New());
While Wrap somehow might imply increasing the reference count:
PyObject dict = PyObject.Wrap(pyObjectToHoldPtr);
PS: already rewriting to the Raw class..

All of these APIs are internal. PyObject.Create is always called with a pointer to an owned reference and is countered by the DecRef in the Dispose method.
Thanks for the suggestion, but I'm happy with the way it's named and it's an internal method and not part of the consumer APIs.

All of these APIs are internal. PyObject.Create is always called with a pointer to an owned reference and is countered by the DecRef in the Dispose method. Thanks for the suggestion, but I'm happy with the way it's named and it's an internal method and not part of the consumer APIs.

OK - different developer, different needs. For me CSnakes is a super exiting C# bridge. And from my experience using Python bridges, developers will have the need to call the CAPI if they are serious about getting the most out of it.
The beauty of CSnakes.Runtime.CAPI is - its usable as C code. And this no shortage of "how to" examples... Even better: SafeHandle makes it BETTER code the C by REDUCING the effort. MAGIC...
But such beauty can only shine if the Bridge is designed the right way. Wording is important - and finding the right one which is understood by CPython AND C# developers can be quite challenging.
I reasearched Scripting languages for some time now (even used SmallTalk - GlamorousToolkit, OMG...), but your bridge seems very, very promising.
If you have different targets for CSnakes - no problem. Its MIT. Just let me know if you want to tackle the "speed problem" too. Otherwise I will rename my fork. But that would be a shame, as I see a chance to change CPythons implementation too. If you're a Python Foundation fellow you might know the right people...
PS: another shame - that this is not a official Microsoft project.


Is it supposed to build and install caddy?

buntu@s1-4-bhs5:~$ xcaddy build \
> --with github.com/dunglas/mercure/caddy
2021/03/04 09:36:54 [INFO] Temporary folder: /tmp/buildenv_2021-03-04-0936.961939135
2021/03/04 09:36:54 [INFO] Writing main module: /tmp/buildenv_2021-03-04-0936.961939135/main.go
2021/03/04 09:36:54 [INFO] Initializing Go module
2021/03/04 09:36:54 [INFO] exec (timeout=10s): /usr/local/go/bin/go mod init caddy
go: creating new go.mod: module caddy
go: to add module requirements and sums:
        go mod tidy
2021/03/04 09:36:54 [INFO] Pinning versions
2021/03/04 09:36:54 [INFO] exec (timeout=0s): /usr/local/go/bin/go get -d -v github.com/caddyserver/caddy/v2
go get: added github.com/caddyserver/caddy/v2 v2.3.0
2021/03/04 09:36:58 [INFO] exec (timeout=0s): /usr/local/go/bin/go get -d -v github.com/dunglas/mercure/caddy
go get: added github.com/dunglas/mercure/caddy v0.0.0-20210301202656-c5ccf9423bf5
2021/03/04 09:37:05 [INFO] Build environment ready
2021/03/04 09:37:05 [INFO] Building Caddy
2021/03/04 09:37:05 [INFO] exec (timeout=0s): /usr/local/go/bin/go mod tidy
2021/03/04 09:37:05 [INFO] exec (timeout=0s): /usr/local/go/bin/go build -o /home/ubuntu/caddy -ldflags -w -s -trimpath
2021/03/04 09:37:07 [INFO] Build complete: ./caddy
2021/03/04 09:37:07 [INFO] Cleaning up temporary folder: /tmp/buildenv_2021-03-04-0936.961939135
ubuntu@s1-4-bhs5:~$ which caddy
ubuntu@s1-4-bhs5:~$ whereis caddy
caddy:
ubuntu@s1-4-bhs5:~$ which xcaddy
/home/ubuntu/go_lang_builds/bin/xcaddy
ubuntu@s1-4-bhs5:~$ whereis xcaddy
xcaddy: /home/ubuntu/go_lang_builds/bin/xcaddy

ubuntu@s1-4-bhs5:~$ caddy vesrions
caddy: command not found

No caddy. What for  this tool if you have to download binary manually anyway?

It outputs a caddy binary in the location you ran it. See the log output, it's located at /home/ubuntu/caddy. You'll need to move it to the appropriate location (often /usr/bin/caddy).


Axis Title overlapping with Axis Labels[Bug]

Version
5.2
Link to Minimal Reproduction
No response
Steps to Reproduce
1.create a basic bar chart
2.add name property to yAxis in options
3.add namePosition as 'middle'
Current Behavior
Axis Title overlapping with Axis Labels
Expected Behavior
Axis title need to take some relative position without overlapping
Environment
- OS:windows
- Browser:chrome
- Framework:typescript

Any additional comments?
No response

You can avoid it by setting name.

@SnailSword, but the width of the axis label will be changing based on the labels length. So, in this case how we will be calculating the nameGap?