Completing the Etw data collection for performance scenarios.

With these changes the API provides Pmc data for native, .NET, anonymous, unknown, and kernel modules (the important file to look at is SimpleTraceEventParser.cs)
Added comments to classes/methods/file header.
Renamed classes to minimize redundancy (removed the Etw prefix from files/classes as this is already part of the Etw namespace where the classes are defined).

I just want to clarify that renaming the new scenario interface is meant to keep it clean before a new package gets pushed :)

By the way, below there is an example output of JitBench:
-------------------------------------------------------
Setting up data standard output/error process handlers.
-------------------------------------------------------
[10/16/2017 6:55:13 PM][INF] $ cmd.exe /c START "SIMULATOR_PIPE" /I /B /WAIT dotnet.exe MusicStore.dll
[10/16/2017 6:55:21 PM][INF] File saved to: "S:\github.com\jorive\xunit-performance\tests\scenario\bin\debug\netcoreapp1.1\Perf-On-cmd(0).etl"
Server started in 921ms
Request took 1063ms
-------------------------------------------------------
Setting up data standard output/error process handlers.
-------------------------------------------------------
[10/16/2017 6:55:21 PM][INF] $ cmd.exe /c START "SIMULATOR_PIPE" /I /B /WAIT dotnet.exe MusicStore.dll
[10/16/2017 6:55:28 PM][INF] File saved to: "S:\github.com\jorive\xunit-performance\tests\scenario\bin\debug\netcoreapp1.1\Perf-On-cmd(1).etl"
Server started in 853ms
Request took 970ms
-------------------------------------------------------
Setting up data standard output/error process handlers.
-------------------------------------------------------
[10/16/2017 6:55:28 PM][INF] $ cmd.exe /c START "SIMULATOR_PIPE" /I /B /WAIT dotnet.exe MusicStore.dll
[10/16/2017 6:55:35 PM][INF] File saved to: "S:\github.com\jorive\xunit-performance\tests\scenario\bin\debug\netcoreapp1.1\Perf-On-cmd(2).etl"
Server started in 973ms
Request took 1037ms
-------------------------------------------------------
Setting up data standard output/error process handlers.
-------------------------------------------------------
[10/16/2017 6:55:35 PM][INF] $ cmd.exe /c START "SIMULATOR_PIPE" /I /B /WAIT dotnet.exe MusicStore.dll
[10/16/2017 6:55:41 PM][INF] File saved to: "S:\github.com\jorive\xunit-performance\tests\scenario\bin\debug\netcoreapp1.1\Perf-On-cmd(3).etl"
Server started in 813ms
Request took 990ms
-------------------------------------------------------
Setting up data standard output/error process handlers.
-------------------------------------------------------
[10/16/2017 6:55:41 PM][INF] $ cmd.exe /c START "SIMULATOR_PIPE" /I /B /WAIT dotnet.exe MusicStore.dll
[10/16/2017 6:55:49 PM][INF] File saved to: "S:\github.com\jorive\xunit-performance\tests\scenario\bin\debug\netcoreapp1.1\Perf-On-cmd(4).etl"
Server started in 1204ms
Request took 1100ms
-------------------------------------------------------
Setting up data standard output/error process handlers.
-------------------------------------------------------
[10/16/2017 6:55:49 PM][INF] $ cmd.exe /c START "SIMULATOR_PIPE" /I /B /WAIT dotnet.exe MusicStore.dll
[10/16/2017 6:55:56 PM][INF] File saved to: "S:\github.com\jorive\xunit-performance\tests\scenario\bin\debug\netcoreapp1.1\Perf-On-cmd(5).etl"
Server started in 848ms
Request took 983ms
-------------------------------------------------------
  Post-Processing scenario data.
-------------------------------------------------------
Parsing: S:\github.com\jorive\xunit-performance\tests\scenario\bin\debug\netcoreapp1.1\Perf-On-cmd(0).etl
Parsing: S:\github.com\jorive\xunit-performance\tests\scenario\bin\debug\netcoreapp1.1\Perf-On-cmd(1).etl
Parsing: S:\github.com\jorive\xunit-performance\tests\scenario\bin\debug\netcoreapp1.1\Perf-On-cmd(2).etl
Parsing: S:\github.com\jorive\xunit-performance\tests\scenario\bin\debug\netcoreapp1.1\Perf-On-cmd(3).etl
Parsing: S:\github.com\jorive\xunit-performance\tests\scenario\bin\debug\netcoreapp1.1\Perf-On-cmd(4).etl
Parsing: S:\github.com\jorive\xunit-performance\tests\scenario\bin\debug\netcoreapp1.1\Perf-On-cmd(5).etl
[10/16/2017 6:56:33 PM][INF] File saved to: "S:\github.com\jorive\xunit-performance\tests\scenario\bin\debug\netcoreapp1.1\Perf-On-cmd.xml"
[10/16/2017 6:56:33 PM][INF] File saved to: "S:\github.com\jorive\xunit-performance\tests\scenario\bin\debug\netcoreapp1.1\Perf-On-cmd.csv"
[10/16/2017 6:56:33 PM][INF] File saved to: "S:\github.com\jorive\xunit-performance\tests\scenario\bin\debug\netcoreapp1.1\Perf-On-cmd.md"
 JitBench                                              | Metric                | Unit  | Iterations |    Average |    STDEV.S |        Min |        Max
:----------------------------------------------------- |:--------------------- |:-----:|:----------:| ----------:| ----------:| ----------:| ----------:
 dotnet.exe                                            | Duration              |  ms   |     5      |   2552.628 |    206.501 |   2374.719 |   2889.530
 dotnet.exe                                            | Branch Mispredictions | count |     5      | 7.459E+007 | 2.077E+006 | 7.289E+007 | 7.804E+007
 dotnet.exe                                            | Cache Misses          | count |     5      | 1.762E+007 | 2.061E+006 | 1.620E+007 | 2.125E+007
 dotnet.exe                                            | Instructions Retired  | count |     5      | 1.230E+010 | 4.385E+007 | 1.225E+010 | 1.234E+010
 dotnet.exe!Anonymously Hosted DynamicMethods Assembly | Branch Mispredictions | count |     5      |  36864.000 |  12624.720 |  24576.000 |  57344.000
 dotnet.exe!Anonymously Hosted DynamicMethods Assembly | Cache Misses          | count |     5      |  47513.600 |  20191.244 |  28672.000 |  81920.000
 dotnet.exe!Anonymously Hosted DynamicMethods Assembly | Instructions Retired  | count |     4      | 1.750E+006 | 9.574E+005 | 1.000E+006 | 3.000E+006
 dotnet.exe!clrjit.dll                                 | Branch Mispredictions | count |     5      | 2.392E+007 | 2.805E+005 | 2.364E+007 | 2.428E+007
 dotnet.exe!clrjit.dll                                 | Cache Misses          | count |     5      | 2.256E+006 | 6.948E+005 | 1.774E+006 | 3.445E+006
 dotnet.exe!clrjit.dll                                 | Instructions Retired  | count |     5      | 1.661E+009 | 2.263E+007 | 1.637E+009 | 1.687E+009
 dotnet.exe!coreclr.dll                                | Branch Mispredictions | count |     5      | 1.725E+007 | 3.717E+005 | 1.697E+007 | 1.789E+007
 dotnet.exe!coreclr.dll                                | Cache Misses          | count |     5      | 5.047E+006 | 8.625E+005 | 4.411E+006 | 6.545E+006
 dotnet.exe!coreclr.dll                                | Instructions Retired  | count |     5      | 2.025E+009 | 2.875E+007 | 1.977E+009 | 2.054E+009
 dotnet.exe!dotnet.exe                                 | Cache Misses          | count |     1      |   4096.000 |        NaN |   4096.000 |   4096.000
 dotnet.exe!dotnet.exe                                 | Instructions Retired  | count |     1      | 1.000E+006 |        NaN | 1.000E+006 | 1.000E+006
 dotnet.exe!MusicStore.dll                             | Branch Mispredictions | count |     3      |   4096.000 |      0.000 |   4096.000 |   4096.000
 dotnet.exe!MusicStore.dll                             | Cache Misses          | count |     2      |  18432.000 |   2896.309 |  16384.000 |  20480.000
 dotnet.exe!ntoskrnl.exe                               | Branch Mispredictions | count |     5      | 2.115E+007 | 1.196E+006 | 2.014E+007 | 2.312E+007
 dotnet.exe!ntoskrnl.exe                               | Cache Misses          | count |     5      | 4.408E+006 | 4.426E+005 | 3.977E+006 | 5.120E+006
 dotnet.exe!ntoskrnl.exe                               | Instructions Retired  | count |     5      | 7.506E+009 | 4.828E+007 | 7.463E+009 | 7.564E+009
 dotnet.exe!System.Private.CoreLib.dll                 | Branch Mispredictions | count |     5      | 1.864E+006 |  57955.143 | 1.790E+006 | 1.950E+006
 dotnet.exe!System.Private.CoreLib.dll                 | Cache Misses          | count |     5      | 1.027E+006 | 1.090E+005 | 8.643E+005 | 1.126E+006
 dotnet.exe!System.Private.CoreLib.dll                 | Instructions Retired  | count |     5      | 1.680E+008 | 6.964E+006 | 1.570E+008 | 1.750E+008
 dotnet.exe!Unknown                                    | Branch Mispredictions | count |     5      | 1.317E+006 |  38706.658 | 1.249E+006 | 1.343E+006
 dotnet.exe!Unknown                                    | Cache Misses          | count |     5      | 7.045E+005 |  52294.227 | 6.267E+005 | 7.537E+005
 dotnet.exe!Unknown                                    | Instructions Retired  | count |     5      | 9.280E+007 | 3.768E+006 | 8.700E+007 | 9.600E+007
 MusicStore                                            | Duration              |  ms   |     5      |   2580.642 |    206.104 |   2401.352 |   2916.691
 MusicStore/First Request                              | Duration              |  ms   |     5      |   1016.000 |     53.334 |    970.000 |   1100.000
 MusicStore/Startup                                    | Duration              |  ms   |     5      |    938.200 |    160.414 |    813.000 |   1204.000

I have a bunch of other potential asks but I'd like to see this propagate over to CoreCLR and work with it a bit before I come back with particulars.
Changes LGTM but Brian should have the final say.


Fix default nodepool defaults in gke standard module

This fixes the defaults in the default nodepool variable for the GKE standard module introduced in #2175. The default variable value should allow creating a cluster, and needs initial node count set to 1 when default nodepool is the be deleted.
It also changes the variable to adopt a more consistent name vs the rest of Fabric.

LGTM, E2E run


Friendbot intermittently failing to fund account.

I’m getting bad_tx_seq errors intermittently using friendbot.
It’s pretty consistent at this time. I saw it once in the lab, but clicked the button again and it worked.
But a few of my builds have failed in a row. e.g. https://travis-ci.org/Synesso/scala-stellar-sdk/builds/342235034#L817

It was happening because of an error in deployment process of one of our services. Should work correctly now.

still fails now using the nodejs sdk ..
ERROR! { type: 'https://stellar.org/horizon-errors/https://stellar.org/horizon-errors/transaction_failed',
title: 'Transaction Failed',
status: 400,
detail: 'The transaction failed when submitted to the stellar network. The extras.result_codes field on this response contains further details.  Descriptions of each code can be found at: https://www.stellar.org/developers/learn/concepts/list-of-operations.html',

OK, we switched to a new friendbot service and there are some problems with deployment. I created this account with 10M testnet lumens, please use this until friendbot is fixed. Please respect others: don't send more than you need (especially full balance 😉), if you need more accounts use this one only once and then create accounts from your new account (this is to not use each other seqnums):
Public Key    GBW74UVOXKGHO3WX6AV5ZGTB4JYBKCEJOUQAUSI25NRO3PKY5BC7WYZS
Secret Key    SA3W53XXG64ITFFIYQSBIJDG26LMXYRIMEVMNQMFAQJOYCZACCYBA34L

thanks a lot 👍 much appreciated..will only use to send small amounts for testing purposes of course :)

umh @bartekn from stellar lab also payments in the test network seems to fail
{
"type": "https://stellar.org/horizon-errors/transaction_failed",
"title": "Transaction Failed",
"status": 400,
"detail": "The transaction failed when submitted to the stellar network. The extras.result_codes field on this response contains further details.  Descriptions of each code can be found at: https://www.stellar.org/developers/learn/concepts/list-of-operations.html",
"extras": {
"envelope_xdr": "AAAAAG3+Uq66jHdu1/Ar3Jph4nAVCIl1IApJGuti7b1Y6EX7AAAAZABzN+EAAAA2AAAAAAAAAAAAAAABAAAAAAAAAAEAAAAALCZvfp2D7Zrn7uv96tgisRnBDJjxaJEoMuJSosOzmZYAAAAAAAAAF0h26AAAAAAAAAAAAVjoRfsAAABAjeDEMZS/IrDxtz30VxVwmUH9rsAe39cZuNLFgORCH0OnKebUTg0Hyexjh2i3Te4n5zK5igpyrGQlqC5v/PRXCQ==",
"result_codes": {
"transaction": "tx_failed",
"operations": [
"op_no_destination"
]
},
"result_xdr": "AAAAAAAAAGT/////AAAAAQAAAAAAAAAB////+wAAAAA="
}

You have to use create_account operation.

@bartekn my bad, thanks again !!

Sorry for reopening this but apparently this code

var request = require('request');
request.get({
  url: 'https://horizon-testnet.stellar.org/friendbot',
  qs: { addr: pair.publicKey() },
  json: true
}, function(error, response, body) {
  if (error || response.statusCode !== 200) {
    console.error('ERROR!', error || body);
  }
  else {
    console.log('SUCCESS! You have a new account :)\n', body);
  }
});

from the example at https://www.stellar.org/developers/guides/get-started/create-account.html still fails. I have noticed that in stellar lab Friendbot works fine now so I am wondering if the api/example changed recently?
Error
title: 'Transaction Failed',
status: 400,
detail: 'The transaction failed when submitted to the stellar network. The extras.result_codes field on this response contains further details.  Descriptions of each code can be found at: https://www.stellar.org/developers/learn/concepts/list-of-operations.html',
extras:
{ envelope_xdr: 'AAAAABB90WssODNIgi6BHveqzxTRmIpvAFRyVNM+Hm2GVuCcAAAAZABiwhcAAIcyAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAALMt7Y8euYoMuziWEiGDzyf9HSnuC7WFJk4glGUbftXwAAAAXSHboAAAAAAAAAAABhlbgnAAAAED69gVZaoZyDWLq2XhN0kTs6/nTVzUfhjV2lgXMoMwZZxRzMshXdgZHDPKaT8AVXyXr9zv5s4CNtoMMjoqo/ekK',
result_codes: { transaction: 'tx_failed', operations: [Array] },
result_xdr: 'AAAAAAAAAGT/////AAAAAQAAAAAAAAAA/////AAAAAA=' } }
Doctors-MacBook-Pro:stellarjs doctorstrange$

Unfortunately there are still problems connected to Friendbot, we have a fix ready in https://github.com/stellar/go/pull/330. Right now you have to use the solution here: https://github.com/stellar/horizon/issues/427#issuecomment-368336973.

okay @bartekn using it for 25 lumen peer new account so shouldn't be too much :)

@bartekn i notice that the friendbot flag for horizon has changed from "--friendbot-secret" (v0.11) to --friendbot-url" (v0.12prebuilt / version "devel"), which might have caused the matter. Is it better to stay with v0.11 for the moment?
Thanks man

Friendbot is now reporting success, but silently failing.
https://stellar.stackexchange.com/questions/712/funded-account-nothing-showing-up-on-testnet-explorer
I have confirmed the behaviour just now.

still can not get it works here

This friendbot
Public Key    GBW74UVOXKGHO3WX6AV5ZGTB4JYBKCEJOUQAUSI25NRO3PKY5BC7WYZS
Secret Key    SA3W53XXG64ITFFIYQSBIJDG26LMXYRIMEVMNQMFAQJOYCZACCYBA34L

has a balance of 1.05
When I create a new account (with a balance of 0.005), I have an error "op_low_reserve".
anyone ?

 The url is now https://friendbot.stellar.org?addr=
I don't know why or how. Saw it on stellar lab.

I believe this is now solved. Docs has been updated with a correct URL.


trackable is not a Plane

https://github.com/xamarin/XamarinComponents/blob/3c4cffd0409b53444279c345eac31c291ec4115c/Android/ARCore/samples/HelloAR/MainActivity.cs#L258
I tried to deploy the sample, but no anchors are created because of trackable variable isn't an instance of Plane, even if using the debugger I see that it's com.google.ar.core.Plane.
Why?
@moljac

This has affected my team's product. We've had to temporarily degrade the experience for Android users to get things as close to fully working as we can.
I haven't worked with Xamarin Android bindings libraries enough to fully understand the changes in #1184, but at first glance they seem likely to be involved. This PR removed a member of Plane that is defined by the Trackable interface,  commented out the attr for TrackableBase, and removed partials for Point and Plane (both trackables).  https://github.com/xamarin/XamarinComponents/blob/0594e606435d9e7c23d76cbb193a33902ea9ade6/Android/ARCore/source/Transforms/Metadata.xml#L41
Looking at the metadata (through Visual Studio) at 1.26.0, Plane, is defined as an extension of Java.Lang.Object with no reference to ITrackable. The same metadata for 1.23.0 defines Plane as an extension of TrackableBase, which implements ITrackable.


Strange Behavor for Reverse and Forward in Contional NF

I defined my normalizing flow like this:
def subnet_fc(c_in, c_out):
    return nn.Sequential(nn.Linear(c_in, 32), nn.ReLU(),
                         nn.Linear(32,  c_out))

cond_t = Ff.ConditionNode(1, name='condition')#need to condition the NF on x
nodes_t = [Ff.InputNode(2, name='input')]
'''
for i in range(10):
  nodes.append(Ff.Node(nodes[-1],Fm.InvAutoFC,{},
                      name='FC_{}'.format(i)))#make sure to apply nonlinearity if not already applied (check this)

nodes.append(Ff.OutputNode(nodes[-1], name='output'))
'''
for k in range(12):
    nodes_t.append(Ff.Node(nodes_t[-1],
                         Fm.RNVPCouplingBlock,#RNVP has completely wrong output
                         {'subnet_constructor':subnet_fc, 'clamp':2.0},
                         conditions=cond,
                         name=F'coupling_{k}'))
    nodes_t.append(Ff.Node(nodes_t[-1],
                         Fm.PermuteRandom,
                         {'seed':k},
                         name=F'permute_{k}'))
nodes_t.append(Ff.OutputNode(nodes_t[-1], name='output'))

cinn_t = Ff.ReversibleGraphNet(nodes_t + [cond_t])

When I perform a pass data forward through the net via a normal base distribution basedist_t = td.Normal(torch.tensor(0.0), torch.tensor(1.0)), I get that the forward and the reverse transformations don't agree.  As in:
samp_t2 = basedist_t.sample((20,2)).float()

a_1 = cinn_t(samp_t2, c=w_samp, rev=False)
rev1 = cinn_t(a_1, c=w_samp, rev = True)

print(torch.all(torch.eq(rev1,samp_t2)))

Returns False.  Maybe I am doing something incorrectly, but I assume rev = True is the reverse net and rev = True is the forward net.

Actually correction.  It's likely a numerical error because even though: print(torch.all(torch.eq(rev1,samp_t2))) returns false, the numbers are the same up to 3 decimal places.  However when I run the optimization routine in this colab notebook: https://colab.research.google.com/drive/1Ng2TshNYmtloeiUyjQpDeCNxhc_R_2_c?usp=sharing and then forward and reverse, the errors are much more noticeable.

Update 2:  I think the problem is when I pickle and unpickle the model.  When I remove this line the problem goes away (but is no longer the correct optimization routine).
The reason I do this is that I want to backpropagate through the inputs of the reversible net but I don't want to modify the weights of the reversible net in that instance.  It's basically an EM algorithm where the maximization is a minimization of the KL divergence of two distributions and I don't want to modify the weights of the expectation of the model, but I do want to backpropagate through the samples generated by the P distribution.  I'm curious about what my options are to perform this task or if you have a good way to fix the numerical instability that comes with pickling and unpickling repeatedly.

Hmm, I'm not quite sure what level of numerical difference is acceptable.
In deep neural networks in general, and also in INNs, something on the order of 10^-4 relative error is not surprising (which it sounds like you are getting)
I didn't quite get what you did with the pickling and unpickling (i.e. if you just checked the numerical inversion error of an untrained model), but as the weights get larger (more specifically the jacobian determinant), the numerical errors tend to grow.
Here is an interesting read on the topic: https://arxiv.org/pdf/2006.09347.pdf
Otherwise, it might also have to do with tranferring the model and weights from and back to the gpu.
Your application sounds very interesting, but maybe it would still work with the currect level of numerical accuracy?
The inaccuracies have never given us big trouble in practice.
I will close the issue for now, seeing as it is over a year old and it is likely your work has moved on, but don't hesitate to re-open it if you want us to go into more detail!

Thanks.  Yea I don't even remember what this code was for to be honest.  I might have found pyro code that helped with it.


Multiple ingresses for the same host / domain (kube-lego + company application)

Lay out all the resources at the top, and then have some questions down at the bottom for what is the behavior, and what is the expected behavior in contour (Are things bugs to fix vs. implemented as designed and there is a simple workaround)
I have two different ingress specs:

kube-lego for handling the lets encrypt challenges

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    ingress.kubernetes.io/ssl-redirect: "false"
    ingress.kubernetes.io/whitelist-source-range: <IP_ADDRESS>/0
    kubernetes.io/ingress.class: contour
    kubernetes.io/tls-acme-challenge-endpoints: "true"
  creationTimestamp: 2018-01-12T21:38:23Z
  generation: 1
  name: kube-lego-nginx
  namespace: kube-lego
spec:
  rules:
  - host: application-smoke1.example.com
    http:
      paths:
      - backend:
          serviceName: kube-lego-nginx
          servicePort: 8080
        path: /.well-known/acme-challenge
status:
  loadBalancer: {}

One to point all traffic to my app backend using the "default backend" form of the ingress spec

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: stage-application-smoke-1-ingress
  annotations:
    kubernetes.io/tls-acme: "true"
spec:
  tls:
  - hosts:
    - application-smoke1.example.com
    secretName: stage-application-smoke-1-secret
  backend:
    serviceName: stage-application-smoke-1-service
    servicePort: 5117

If i look at envoy's admin ui (port 9001 on the envoy container in the contour pod) I see only one route for the domain for the kube-lego ingress, and none for my default backend
{"name":"application-smoke1.example.com","domains":["application-smoke1.example.com"],"routes":[{"match":{"prefix":"/.well-known/acme-challenge"},"route":{"cluster":"kube-lego/kube-lego-nginx/8080"}}]}

Is this expected behavior? My expectation was that contour would to make an http route for the domain which points the /.well-known/acme-challenge to the kube-lego pod, and all other paths to my default backend.
Would moving to specifying paths + host rules always fix this (Just making path / point to the app I want)?
Would SSL/SNI with contour work in the "passing to a default backend only" case if the kube-lego container didn't exist?

Sadly i'll have to bump this to 0.5. I'm worried about rushing and half assing the semantics. I think a rewrite pass is the best way to handle this because then we know, in isolation of the ingress -> vhost translation how the ingress object has been mutated -- and can contain the argument to that.


Availability of Full-Sampled Validation and Test Sets

I have recently explored the excellent CMRxRecon dataset and, while I understand the intentional omission of fully-sampled validation and test sets during the challenge to ensure fairness, I am reaching out to inquire about the possibility of releasing the complete full-sampled data for the validation and test sets now that the competition has successfully concluded.
I believe that making the full-sampled data available could significantly contribute to the advancement of the dynamic magnetic resonance imaging reconstruction community. Researchers and practitioners alike would greatly benefit from having access to this additional resource, fostering further exploration, analysis, and improvement of reconstruction techniques.

According to the rules of our challenge, we will share the gold standard data of all the competitions with all fully participating teams (docker submitted) early next month. Last week, we have reached out to the relevant participating teams via email to inquire about their preferred way of data sharing.
For teams that did not participate in the competition in full, we plan to make all data fully available to the public after 6~8 months. We kindly ask for your understanding in this matter.

yes, totally understand. Thanks a lot!


ThreadPool::install and allocation overhead

Background
We are using rayon within a library that is called from game engines in the main loop, at about 90 FPS, depending on the device. From the game engine we receive a number of objects which we transform with some math-heavy calculations.
We have used rayon for some time now, and from a performance / usability perspective it hits a sweep spot where we can simplify our code a lot, and see a good speed up over a single threaded approach.
However, as we are getting into more demanding environments we need to control for allocation, and want to be more-or-less allocation free after initialization.
Problem
I started analyzing our allocation pattern and noticed that ThreadPool::install does about 2 allocations per invocation, at about 10 - 20 bytes each (after the 1st round):
=== Allocation Statistics ===
"()" -- Events: 0, Bytes: 0
"Box::new(1)" -- Events: 1, Bytes: 4
"pool = ThreadPoolBuilder::new().num_threads(4).build()" -- Events: 65, Bytes: 4942
"pool.install(|| {}) -- 1st time" -- Events: 23, Bytes: 5608
"pool.install(|| {}) -- 2nd time" -- Events: 2, Bytes: 24
"pool.install(|| {}) -- next 1000 times" -- Events: 2032, Bytes: 48064
"drop(pool)" -- Events: 0, Bytes: 0

(Source) - rayon 1.1.0
Ideally, ThreadPool::install should be allocation free eventually, and / or there should be an alternative API that allow for allocation free processing. In the other thread #614 a heapless(?) StackJob was mentioned, but I couldn't find anything in the docs.

StackJob isn't in the docs because it's an internal detail, but anyway this is already what install uses. So we're avoiding direct allocation, but there still may be something in the SegQueue which we use to send the job into the thread pool.
cc @stjepang -- is it expected that SegQueue would allocate every time? Is there a better alternative for this use case? e.g. Maybe the crossbeam_deque::Injector when we update to 0.7...

I just did some digging, this is what I found out so far:

ThreadPool::install invokes Registry::in_worker
There the check worker_thread.is_null() constantly fails, so it invokes self.in_worker_cold(op).
That in turn does a LockLatch::new(), which causes the following allocations:

"Mutex::new" -- Events: 1, Bytes: 16
"Condvar::new" -- Events: 1, Bytes: 8

The worker_thread.is_null check fails because WorkerThread::current() always returns 0x0.

Which is a bit puzzling, because I can observe that WorkerThread::set_current(worker_thread); is invoked from main_loop (multiple times), and

println!("main_loop() - before set {:?}", WorkerThread::current());
WorkerThread::set_current(worker_thread);
println!("main_loop() - after set {:?}", WorkerThread::current());

each prints something like:

main_loop() - before set 0x0
main_loop() - after set 0x635feff240

Btw, I used this application
let pool = ThreadPoolBuilder::new().num_threads(4).build().unwrap();

pool.install(|| {});
pool.install(|| {});

println!("Waiting 1 second");
sleep(Duration::new(1, 0));

for i in 0..10 {
    pool.install(|| {})
}

which printed
0x0
0x0
Waiting 1 second
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0

for WorkerThread::current() in Registry::in_worker() when debugging the above.

Oh, indeed -- install from outside the pool does block on a LockLatch, so we'll create a new Mutex and CondVar for that. The worker_thread is a thread-local, which is why it's seeing is_null() when called from outside the pool. Hmm, maybe we could create LockLatch using thread-locals too...

Some more digging:
First Allocation Source (LockLatch)

Putting the LockLatch on TLS technically works, but Condvar doesn't reset, so the variable can't be reused.
I quickly hacked a POC with AtomicBoolean and a hot loop, which seems to work, now I got rid of the allocation related to LockLatch.

However, there is still another allocation source:
Second Allocation Source (SegQueue::push)

Every once in a while (apparently every 32 invocations precisely):

"self.in_worker_cold(op)" -- Events: 1, Bytes: 752
"self.in_worker_cold(op)" -- Events: 0, Bytes: 0
...
... 32 invocations later ...
...
"self.in_worker_cold(op)" -- Events: 0, Bytes: 0
"self.in_worker_cold(op)" -- Events: 1, Bytes: 752

Seems to come from Registry::inject ... self.injected_jobs.push(job_ref), which is SegQueue::push

Putting the LockLatch on TLS technically works, ~but Condvar doesn't reset, so the variable can't be reused~ (I think I got something wrong here, will check tomorrow).

The LockLatch as written today sets its Mutex<bool> to true forever, but that's something we can change if the mutex is to be reused. Condvar itself certainly allows reuse.

The LockLatch as written today sets its Mutex to true forever, but that's something we can change if the mutex is to be reused. Condvar itself certainly allows reuse.

Yes, got it to work now with the original LockLatch + reset().
Do you plan to work on this yourself, or do you want me to clean up and submit a PR for the LockLatch allocation?

I was tinkering a little, but if you want to submit a proper PR, that would be welcome. Note that I think we don't want to affect LockLatch as used in ThreadInfo (primed and stopped), only the one used by install -- that's when we know we'll immediately do a blocking wait in the same thread, so TLS reuse isn't an issue. Maybe this should be a separate latch type, where its wait automatically resets on success, while the mutex is still held.

Ok, I now managed to remove the remaining allocation source. I first looked into crossbeam's SegQueue, but have to admit the allocation / Block shift logic wasn't easy to follow.
I then realized that I could just combine an ArrayQueue to get predictable allocaiton up to a certain point, with the SegQueue for anything that goes beyond that. Due to it's simplicity it loses the FIFO property past a certain point (if you insert more than cap elements ordering might be mixed up at the tranisition zone if multiple threads push / pop at the same time).
However, if I understand it correclty theinjected_jobs inside the Registry don't really mind if that happens, because a job might get injected "randomly" anyway, e.g., from another task.
In any case, I created a PR #670 for you to review and discuss.
If I combine #670 and #668 I'm not seeing any allocation anymore in my test case.


Full-width at half-maximum (fwhm)

Hi, as far as I am aware, full-width at half-maximum (fwhm) is not implemented within the scipy.signal. I can see there is peak_widths function, but I think it's not fwhm since it calculates from relative height instead of maximum.
This function is commonly used, especially in spectroscopy world, so I think it would be great to have this implemented within scipy stack.

So the "full width" for each peak is defined as the width at 50% of the global (not current) peak height? This means it will be zero (or undefined) for some of the peaks, right? Or am I missing something?
This makes me wonder how useful it actually is, but if it is indeed useful in your field, makes me think we could fairly easily get peak_widths return this (especially once we settle #12323, which would allow us to do it in a backward compatible way with no new kwargs).

@larsoner Thanks for your response!
To be honest, I'm not a signal processing expert and my background is mainly data science/IT, but I'm working on a pre-processing library for spectroscopy data for my team (who works in Magnetic resonance spectroscopy) and it seems fwhm is used a lot.
I'm looking for the literature of fwhm calculation, but it's hard to find, people seem to only mention that they use fwhm without describing how fwhm is calculated.
I find an image in this paper and it seems the half maximum is calculated from the baseline/background?

To answer your question, I think it could be undefined if one of the peak's floor > half maximum. But if there is any signal processing expert within scipy organization that could confirm this it would be really appreciated.

I did some spectroscopy work in grad school (https://github.com/all-umass/superman and https://github.com/all-umass/superman-web), and my understanding of FWHM follows your comment: it's defined relative to the baseline of the signal.
That said, I think this may be a bit too domain specific for inclusion in scipy.signal. Defining the baseline itself is often an art, and varies a lot between different types of spectroscopy.


not able to run script from editor

From<EMAIL_ADDRESS>on 2014-04-02T15:19:21Z
Please note that reporting bugs from Spyder's help menu ("?" > "Report
issue...") will fill version details for Spyder, Python and Qt in this description for you.
What steps will reproduce the problem?
1.tried to run a simple print statement from spyder editor
2.i declared a,b=1,2
3.print a,b What is the expected output? What do you see instead? 1,2
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/spyderlib/plugins/externalconsole.py", line 696, in run_script_in_current_shell
"and try again.") % osp.basename(filename), QMessageBox.Ok)
File "/usr/lib/python2.7/posixpath.py", line 112, in basename
i = p.rfind('/') + 1
AttributeError: 'QString' object has no attribute 'rfind' What version of the product are you using? On what operating system? spyder 2.7 on ubuntu 12.04
Please provide any additional information below
.
Original issue: http://code.google.com/p/spyderlib/issues/detail?id=1777

From ccordoba12 on 2015-01-01T15:22:29Z
It seems you were using a too old version of Spyder. I hope by updating to 2.3.2 this problem is fixed for you :-)
Status: WontFix


Support vizio pairing through config flow and update integration name

Proposed change

The vizio integration currently requires users to pair to their device using pyvizio on the command line. This PR allows the pairing process to be completed through config flow for all source types (this also means the additional custom validation for configuration.yaml entries can be removed because pairing for config imports is also supported). For config imports, a message is now logged anytime the import does not get aborted because aborts typically occur due to a previous import whereas setup failures are silent without the logging.
I also changed the name of the integration since it supports soundbars as well now (this was a minor change so didn't think it would be an issue to include in this PR).
Type of change

[ ] Dependency upgrade
[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New integration (thank you!)
[x] New feature (which adds functionality to an existing integration)
[ ] Breaking change (fix/feature causing existing functionality to break)
[ ] Code quality improvements to existing code or addition of tests

Additional information

This PR fixes or closes issue: N/A
This PR is related to issue: N/A
Link to documentation pull request: home-assistant/home-assistant.io#11988

Checklist

[x] The code change is tested and works locally.
[x] Local tests pass. Your PR cannot be merged unless tests pass
[x] There is no commented out code in this PR.
[x] I have followed the development checklist
[x] The code has been formatted using Black (black --fast homeassistant tests)
[x] Tests have been added to verify that the new code works.

If user exposed functionality or configuration variables are added/changed:

[x] Documentation added/updated for www.home-assistant.io

If the code communicates with devices, web services, or third-party tools:

[x] The manifest file has all fields filled out correctly.
Updated and included derived files by running: python3 -m script.hassfest.
[x] New or updated dependencies have been added to requirements_all.txt.
Updated by running python3 -m script.gen_requirements_all.
[x] Untested files have been added to .coveragerc.

The integration reached or maintains the following Integration Quality Scale:

[ ] No score or internal
[ ] 🥈 Silver
[ ] 🥇 Gold
[x] 🏆 Platinum

A couple questions / comments:

If the user pairs the device through HA, the access token will always be stored, correct? The pairing_complete message states this, I just want to confirm.

The pairing_complete message is very long and wordy. I can think of two ways to improve this:

(Preferred) If a user configured the integration via YAML, try to look up the access token from storage. That way, they don't have to worry about adding it to their configuration.
Use two different "pairing complete" messages, depending on whether the user configured the integration via YAML or config flow.

I thought about adding it to storage, and I can still take that route, but the access token is already in storage in the config entries file, so the value of adding it to configuration.yaml is for when you rebuild your instance, and at that point, your storage is probably wiped. I like your second suggestion though. Commit incoming

I don't know what the difference is between storing it in the config_entries storage file vs. storing it in storage. But ultimately, my question is as follows.
Suppose a user configures their Vizio TV as
vizio:
  host: <IP_ADDRESS>:7345

And suppose they go through the pairing process in HA but they don't add the access token to their configuration. Then every time they restart HA, they'll need to go through the pairing process again, right?

No, they won't have to do that.
By moving to config flow, entities are no longer directly loaded from configuration.yaml. Instead, they are loaded from a ConfigEntry. When you launch HA for the first time with the config you posted, the config gets imported into the vizio config flow and a ConfigEntry gets created, which is then persisted to storage and will survive through restarts. When a user goes through the pairing process, the access token gets stored in the config data for the ConfigEntry. This means it is available on restart to reload the entity even if it hasn't been added to configuration.yaml, and will remain there until you delete the ConfigEntry entirely from the Integrations menu or wipe your storage.
After a config gets imported into a ConfigEntry, the ConfigEntry is independent from configuration.yaml. What happens on restarts is that HA attempts to import the configuration again, but sees that a vizio ConfigEntry for the specified host already exists and aborts the import process. This means that you can remove that piece from your configuration.yaml entirely, restart, and the entity will still be there, and the only way to completely remove it is to both delete it from configuration.yaml and from the Integrations menu in the frontend.
I think I'm overexplaining at this point but just to complete the thought, the only way configuration.yaml affects your vizio entities after the initial startup is if you specify a different name or volume_step in your config, as those changes are detected and get applied to the ConfigEntry before import is aborted.

Thanks for the detailed explanation!

@MartinHjelmare I've learned a lot from your reviews of my past PRs, would you mind reviewing this one as well when you have a moment?


Optimize only once per submap in 2D.

The setting was unintentionally set to optimize twice per submap which
harms parallelism.

lgtm.


Add .arpa to DNS Zone.

There are 753 .arpa files which are zone files.
(There are also 1163 .arpa files with some other content.  This in on par with the .zone file extension: 2698 vs 4,084)

Note: there is also .db, but the numbers are not as favourable: 15k vs 833k.

:+1: thanks @larsbrinkhoff.

.com and the other top-level domain names are also used for zone files, but that's a huge can of worms.

Agreed.


Incorrect link embedded in the "Report Bug" feature

Hello,
In Spyder2, if you use the Help -> Report a Bug feature, you are still taken to the code.google.com...... website.
Should it not be Reporting the bug directly at
https://github.com/spyder-ide/spyder/issues/new
??

Can't reproduce this, on Spyder <IP_ADDRESS>, that menu item takes me to this issue tracker.

@smbergman, please update your Spyder version. This was fixed in 2.3.3 if I recall correctly, so you have to be running an older version.


Enhancing footer with python powered and small acts manifesto

Besides that Heart image, the others can be presented using CSS no? Sorry I am pretty bad at CSS. :)

@mauricioabreu I understand, but, the original icons that Speakerfight uses to vote, for me, it's natural that we use the same icons to explain what each one does. But all this stuff is a bootstrap, after that we can improving through babysteps :smile:

@erichideki I know. This is why I said it.
Take a look at here for example: http://speakerfight.com/events/pythonbrasil11-tutoriais/
Use your browser's inspect tool and check the "emotions" images. They are presented using a CSS class like
flat-icon i.angry.black

Adding more images like you did seems duplicating code for me.

Being a little more positive here, despite the images problem, I vote for this pull request be merged.
:+1:

I understand you, @mauricioabreu. It's great that you always question the propose of everything. This problem with images I understand but it's hard to copy.
In a votation deck, we have a loop to search an image and show, but, separatety each image can't be reproduced like we did in about page. For that reason the about page have redundant images.
Maybe later we can improve this, but, in this moment, this solution attends us.
Thanks.

Those images can be reproduced separately. Actually they are already separated, you would just need to use the class (I am not a CSS expert) I showed you.
Anyways, do what you wish. I am ok with this.

The html identation is just two spaces
You dont need to add all the icons again, you can just use the same style that we use in the Voting:

diff --git a/core/templates/about.html b/core/templates/about.html
index b97ced8..c14564d 100644
--- a/core/templates/about.html
+++ b/core/templates/about.html
@@ -4,6 +4,10 @@

 {% block head_title %}About page{% endblock head_title %}

+{% block head %}
+    <link rel="stylesheet" href="{{ STATIC_URL }}css/flat-icons.css" type="text/css" media="screen" />
+{% endblock head %}
+
 {% block content %}

     {% blocktrans %}
@@ -19,7 +23,7 @@

The system is composed by 5 options of vote:

Angry:

-

+

If you are not satisfied with the propose's talk and don't want this in your event, select this option. This option contains the value -1, causing down vote to the fighter.

diff --git a/core/templates/public_layout.html b/core/templates/public_layout.html
index 9148235..ac36791 100644
--- a/core/templates/public_layout.html
+++ b/core/templates/public_layout.html
@@ -37,6 +37,8 @@

+
+    {% block head %} {% endblock head %}

Use the font awesome for the heart in the footer, the Speakerfight should be in the middle and add some enhancements on the text and html:

diff --git a/core/templates/public_layout.html b/core/templates/public_layout.html
index 9148235..4c62314 100644
--- a/core/templates/public_layout.html
+++ b/core/templates/public_layout.html
@@ -71,21 +71,16 @@

             {% blocktrans %}

-                Proudly made with open source technologies
+                Proudly made with open source technologies
+

-
-
-

-            {% endblocktrans %}
-

-

-

-

-            {% blocktrans %}
-
This project believes that small acts can change the world throughtSmall Acts Manifesto:

+
This project believes that small acts can change the world throughSmall Acts Manifesto:

-

-
+
+
+
+
+
+

             {% endblocktrans %}

@@ -107,6 +102,22 @@

+

+

+            {% blocktrans %}
+

+                This project believes that small acts can change the world throught
+

+                Small Acts Manifesto
+

+

+
+
+
+

+            {% endblocktrans %}
+

+

This Footer should be in the public_layout.html and in the layout.html
I like to keep the chunks of blocktrans smaller, it makes better for translate.

Sorry for the long review.
o/

If you can go for it, I will appreciate a lot your help.
I didn't see that my editor trolls me with the spaces in footer. My bad.
And the images I tried import this way, but I didn't see that it wasn't being imported.
Like this:
{% block head %}
    <link rel="stylesheet" href="{{ STATIC_URL }}css/flat-icons.css" type="text/css" media="screen" />
{% endblock head %}

I don't know why yet, but, here i'm trying to import the images this way and doens't work. Maybe it's better you fix this bugs in your enviroment and, after that, compare my possible mistakes.
Thanks a lot for the patience and help.

Deploy finished, thanks to @erichideki and @mauricioabreu for all the feedbacks and contributions <3
http://speakerfight.com/about/


Unable to set search_strategy_class on index

Elassandra version: <IP_ADDRESS>
JVM version: 1.8
OS version: Ubuntu 14.04
Description of the problem including expected versus actual behavior:
Unable to set the search_strategy_class on an existing index.
Steps to reproduce:

Create index.
Try and update the search_strategy_class setting:

curl -X PUT \
  http://<host>9200/<index>  -d
 '{ "settings" : {
        "index.search_strategy_class" : "RandomSearchStrategy"
    }
  }'

Response:

{
    "error": {
        "root_cause": [
            {
                "type": "illegal_argument_exception",
                "reason": "unknown setting [index.secondary_index_class] please check that any required plugins are installed, or check the breaking changes documentation for removed settings"
            }
        ],
        "type": "illegal_argument_exception",
        "reason": "unknown setting [index.secondary_index_class] please check that any required plugins are installed, or check the breaking changes documentation for removed settings"
    },
    "status": 400
}

This is fixed in <IP_ADDRESS> in this commit. Please upgrade to the last version <IP_ADDRESS>.

After upgrading to the latest version it now fails when trying to update the setting on an existing index with:
{
    "error": {
        "root_cause": [
            {
                "type": "index_already_exists_exception",
                "reason": "index [<index>/qr6Fpf50T6OVLXRyA-Eulw] already exists",
                "index_uuid": "qr6Fpf50T6OVLXRyA-Eulw",
                "index": "<index>"
            }
        ],
        "type": "index_already_exists_exception",
        "reason": "index [<index>/qr6Fpf50T6OVLXRyA-Eulw] already exists",
        "index_uuid": "qr6Fpf50T6OVLXRyA-Eulw",
        "index": "<index>"
    },
    "status": 400
}

It turns out that using the following works as expected:
curl -X PUT  http://<host>:9200/<index>/_settings -d
'{
  "index" : {
    "search_strategy_class" : "RandomSearchStrategy"
  }
}'

However the following fails (which is mentioned in documentation):
curl -X PUT   http://<host>9200/<index>  -d
 '{
  "settings" : {
    "index.search_strategy_class" : "RandomSearchStrategy"
    }
  }'

Hi,
It works as elasticsearch, first is index setting update API, second is the create index API (returns index_already_exists_exception because the index exists).


Undesired modification of original (nested) references.

This issue is a bit of a specific use case, but would be very helpful to have.
I have a use case specifically where I have an array of objects that needs to have a reference to the parent array. The parent in this case is a fleet, and the objects are elements. The elements need to be able to check if they are still in the fleet. I also need to be able to send this object out to a web exposed API (without the circular references).  By using SC to modify the JSON before it goes out, it will actually modify the ORIGINAL object, breaking any functionality the original object has.
const sc = require('smart-circular');

// function to see if this instance of exists in a fleet
Element.prototype.isInFleet = function() {
  return this.fleet.indexOf(this) > -1;
}
// Element constructor
function Element(name,fleet) {
  this.name = name;
  this.fleet = fleet;
}

// fleet array of element instances
const fleet = [];
// create and push two element instances
fleet.push( new Element('foo', fleet) );
fleet.push( new Element('bar', fleet) );

console.log ( fleet[0].isInFleet() ) // true

const json = sc( fleet ); // we are creating a JSON object here by passing fleet

console.log( fleet[0].isInFleet() ); // This is now false because sc has modified fleet
console.log( fleet[0].fleet ) // '$[]'

As you are working primarily with objects, and generally don't want to modify the original one, unless explicitly clobbering the original object (e.g. x = sc(x) ), I propose that this module be modified to return a deep copy of the original, leaving the original untouched.  The best implementation of this would likely be something similar to mapping using an object assign.
    let list = this.printers.map(a => Object.assign({}, a));

Where list is the user's input argument. This should occur right away, and all circular reference removals should be done on this modified copy of "list", and THIS list should be returned as the resulting value of sc()

Just got caught by this exact same issue. Not a common scenario by any means, but can be extremely tricky to identify (caused a lot of crazy errors in my case).
A potential solution here would be to grab a utility such as just-clone, and pass the cloned objected over.
All things considered, I prefer the in-place modification in this library if only because it does allow for more flexibility when combined with other libraries. An update to the README noting that this performs in-place mutation would however be appreciated (it may be implied, but is easily overlooked).


Use lowercase in keys

Prefer not using any capitalization in keys. issn over ISSN.
Originally posted by @opoudjis in https://github.com/relaton/relaton-doi/issues/10#issuecomment-1382707031

@ronaldtse this breaks things for me. Now I have to do case insensitive detection.

@opoudjis this is a one off change, and Metanorma is meant to access this information via Relaton methods. Is this not the case?

No, it is not the case, and with ISSN being a value and not a key, relaton methods (which I cannot use in downstream nokogiri processing) are irrelevant. This will break things.


Fix s3 RC_FAST_CLK powerdown

Found by https://matrix.to/#/!LdaNPfUfvefOLewEIM:matrix.org/$FUWqLqPUH-bfGxi0FnjqIz2FsLID0u1wyRVKhSg6tV8?via=matrix.org&via=tchncs.de&via=mozilla.org

Would you mind quoting the Matrix message? Following that link, Element tells me it will disconnect my session and do scary things ....

Right, element's share is how it is. Done.
The point of this PR to enable powerDOWN if the clock source is NOT forced on. The old implementation was a direct reverse of this, I believe.


fix boolean argument warning from thor 0.19.4

Fix this warning coming out of recent versions of thor, by declaring force_sync to be of boolean type:
Expected string default value for '--force-sync'; got false (boolean)

Logs from some additional manual smoke testing confirming this does what it says on the tin:
macpro2:~/projects/socialcast-command-line $ bundle exec socialcast sync_photos --config /path/to/ldap.yml
Option force_sync is nil (NilClass)

macpro2:~/projects/socialcast-command-line $ bundle exec socialcast sync_photos --force-sync=true --config /path/to/ldap.yml
Option force_sync is true (TrueClass)

macpro2:~/projects/socialcast-command-line $ bundle exec socialcast sync_photos --force-sync=false --config /path/to/ldap.yml
Option force_sync is false (FalseClass)

macpro2:~/projects/socialcast-command-line $ bundle exec socialcast sync_photos -f --config /path/to/ldap.yml
Option force_sync is true (TrueClass)

+1 thanks for the fix!


add ZT score normalization

Can you elaborate a bit please?

this is for language recognition with bob.bio.spear


add funcionality to be able log out

i made the funcionality mencioned and add a 3 seconds pause to the transsition to see the loading animation :D.

its not finish yet.

Now its finished, the suggestions by Nahuel was implemented and the conflicts with branch master solved.


[Contract] Consolidate Host-Related Entity Classes under Host Entity Package

This PR tries to refactor host-related entity classes with the following changes

Move host related entity classes under com.futurewei.alcor.web.entity.node package
Remove unused dependencies under Port Mgr and Node Metadata Mgr

This contract change would impact Port Mgr and Host Metadata Mgr.

Codecov Report

Merging #437 into master will decrease coverage by 0.01%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master     #437      +/-   ##
============================================
- Coverage     36.81%   36.79%   -0.02%
+ Complexity     1152     1149       -3
============================================
  Files           447      447
  Lines         10706    10706
  Branches       1367     1367
============================================
- Hits           3941     3939       -2
  Misses         6232     6232
- Partials        533      535       +2

Impacted Files
Coverage Δ
Complexity Δ

...i/alcor/nodemanager/controller/NodeController.java
46.34% <ø> (ø)
10.00 <0.00> (ø)

...uturewei/alcor/nodemanager/dao/NodeRepository.java
14.28% <ø> (ø)
3.00 <0.00> (ø)

.../nodemanager/service/implement/NodeFileLoader.java
0.00% <ø> (ø)
0.00 <0.00> (ø)

...nodemanager/service/implement/NodeServiceImpl.java
1.78% <ø> (ø)
2.00 <0.00> (ø)

...ewei/alcor/portmanager/entity/PortBindingHost.java
0.00% <ø> (ø)
0.00 <0.00> (ø)

...lcor/portmanager/processor/DataPlaneProcessor.java
75.93% <ø> (ø)
29.00 <0.00> (-1.00)

...wei/alcor/portmanager/processor/NodeProcessor.java
83.87% <ø> (ø)
9.00 <0.00> (ø)

...rewei/alcor/portmanager/processor/PortContext.java
67.27% <ø> (-1.82%)
22.00 <0.00> (-1.00)

...ewei/alcor/portmanager/proxy/NodeManagerProxy.java
0.00% <ø> (ø)
0.00 <0.00> (ø)

...ei/alcor/portmanager/request/FetchNodeRequest.java
50.00% <ø> (ø)
3.00 <0.00> (ø)

... and 5 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 290e335...f3a15a3. Read the comment docs.


KinematicBody2D gets stuck when the corner of its rectangular collision shape collides precisely with the corner of another bodies.

Godot version:
3.2.1 and 3.2.2 Beta 1
Issue description:
When using move_and_slide() on a KinematicBody2D that has a rectangular collision shape, if the corner of its collision shape happens to collide with the corner of another body with a rectangular collision shape, the KinematicBody2D will get stuck and return a high get_slide_count().
Here’s a GIF from the attached minimal reproduction project.

In the GIF, the box on the right has been aligned so that its left side has the same x position as the floors right side. This perfect alignment is what causes the bug.
The left boxes right side is not perfectly aligned with the floors left side. It has been placed a single pixel more so to the right, allowing it to avoid the bug.
From what I’ve discovered, changing the safe margin of the falling bodies to very high or very low amounts prevents this bug from occurring but due to the other collision problems that occur with very high or very low safe margins it is not a viable solution.
In my experience this bug is more prevalent in low resolution pixel platforming games. It’s a rare occurrence but when it crops up it can cause the character to get stuck in a permanent falling state.
Minimal reproduction project:
Corner Bug Example.zip

Duplicate of #23140
AFAIK the safe margins will be removed on physics rework coming in Godot 4.0 or 4.1


[WIP] Replace lmdb with libmdbx

[WIP] Replace lmdb with libmdbx.
Since these libraries share a heritage, the replacement process was relatively straightforward.
Is there any perf change? Let's find out.
TODO:

Gracefully handle the case where the destination folder already has an lmdb database.
See if we can write DB files to separate files so there's no collision w/ lmdb so if folks switch between lmdb and libmdbx versions there's no disruption/crashes.

It looks like libmdbx creates folders if they don't exist, so we can have it make a subfolder of the folder passed in and not disrupt lmdb. 👍
Motivation

https://github.com/sorbet/sorbet/issues/3986
Test plan

Covered by existing tests.

We have a policy of testing changes to Sorbet against Stripe's codebase before
merging them. I've kicked off a test run for the current PR.  When the build
finishes, I'll share with you whether or how it failed. Thanks!
Stripe employees can see the build results here:
→ https://go/builds/bui_IvDcxNCvPCQ0zb
→ https://go/builds/bui_IvDdCW3z3V6Bm9

Looks like I need to either port dmitry's patches to lmdb (to avoid routines that invoke glibc malloc) or find a way to configure libmdbx to not use them.


Error: UnauthorizedException: Missing authorization

A few seconds after running sls offline start (no additional action required) the following error occurs:
Error: UnauthorizedException: Missing authorization
    at Object.getAuthorizationMode (/Users/SkiX/www/radvana-api/node_modules/amplify-appsync-simulator/lib/utils/auth-helpers/current-auth-mode.js:56:11)
    at AppSyncSimulatorSubscriptionServer.authorizeRequest (/Users/SkiX/www/radvana-api/node_modules/amplify-appsync-simulator/lib/server/websocket-subscription.js:80:35)
    at AppSyncSimulatorSubscriptionServer.onConnect (/Users/SkiX/www/radvana-api/node_modules/amplify-appsync-simulator/lib/server/websocket-subscription.js:77:19)
    at WebsocketSubscriptionServer.<anonymous> (/Users/SkiX/www/radvana-api/node_modules/amplify-appsync-simulator/lib/server/subscription/websocket-server/server.js:134:59)
    at step (/Users/SkiX/www/radvana-api/node_modules/amplify-appsync-simulator/lib/server/subscription/websocket-server/server.js:63:23)
    at Object.next (/Users/SkiX/www/radvana-api/node_modules/amplify-appsync-simulator/lib/server/subscription/websocket-server/server.js:44:53)
    at /Users/SkiX/www/radvana-api/node_modules/amplify-appsync-simulator/lib/server/subscription/websocket-server/server.js:38:71
    at new Promise (<anonymous>)
    at __awaiter (/Users/SkiX/www/radvana-api/node_modules/amplify-appsync-simulator/lib/server/subscription/websocket-server/server.js:34:12)
    at WebSocketServer.WebsocketSubscriptionServer.onSocketConnection (/Users/SkiX/www/radvana-api/node_modules/amplify-appsync-simulator/lib/server/subscription/websocket-server/server.js:114:71)
    at WebSocketServer.emit (events.js:315:20)
    at WebSocketServer.EventEmitter.emit (domain.js:486:12)
    at WebSocketServer.completeUpgrade (/Users/SkiX/www/radvana-api/node_modules/ws/lib/websocket-server.js:330:5)
    at WebSocketServer.handleUpgrade (/Users/SkiX/www/radvana-api/node_modules/ws/lib/websocket-server.js:246:10)
    at Server.upgrade (/Users/SkiX/www/radvana-api/node_modules/ws/lib/websocket-server.js:92:16)
    at Server.emit (events.js:315:20)
    at Server.EventEmitter.emit (domain.js:486:12)
    at onParserExecuteCommon (_http_server.js:695:14)
    at onParserExecute (_http_server.js:608:3)

Here's my serverless.yml:
service: radvana-api
frameworkVersion: ^2.34.0
variablesResolutionMode: 20210326
useDotenv: True

plugins:
    - serverless-appsync-plugin
    - serverless-appsync-simulator
    - serverless-offline

provider:
    name: aws
    region: eu-central-1
    runtime: nodejs14.x
    stage: ${opt:stage, 'local'}
    lambdaHashingVersion: '20201221'
    iam:
        role:
            statements:
                - Effect: Allow
                  Action:
                      - lambda:*
                  Resource:
                      - arn:aws:lambda:${self:provider.region}:*:*
    environment:
        REGION: '${self:provider.region}'
        STAGE: '${self:provider.stage}'
        APPSYNC_NAME: '${self:custom.defaultPrefix}-appsync'
        MYSQL_HOST: ${env:MYSQL_HOST, ssm:mysql_host}
        MYSQL_DB: ${env:MYSQL_DB, ssm:mysql_db}
        MYSQL_USER: ${env:MYSQL_USER, ssm:mysql_user}
        MYSQL_PASSWORD: ${env:MYSQL_PASSWORD, ssm:mysql_password}

custom:
    appSync:
        name: '${self:provider.environment.APPSYNC_NAME}'
        authenticationType: AMAZON_COGNITO_USER_POOLS
        serviceRole: ' AppSyncCognitoUserPool'
        dataSources: ${file(resources/data-sources.yml)}
        mappingTemplates: ${file(resources/resolvers.yml)}
        userPoolConfig:
            defaultAction: DENY
            userPoolId: eu-central-REDACTED
    appsync-simulator:
        port: 4000
        watch:
            - 'schema.graphql'
            - ['match', 'mapping-templates/**/*.vtl', 'wholename']
            - ['match', 'dist/**/*.js', 'wholename']

    defaultPrefix: ${self:service}-${self:provider.stage}

functions:
    - ${file(resources/lambda-functions.yml)}

resources:
    - ${file(resources/user-pool.yml)}

This error keeps occurring every few seconds.
Note that the API works correctly and I'm able to make graphql requests and receive results.

It is weird that you are able to execute queries with that error.
The Exception is thrown here, I believe.
It might be worth debugging to try to find what is going on around these lines.
Looks like you are using Cognito. Do you send an Authorization header with the request?

Looks like you are using Cognito. Do you send an Authorization header with the request?
Yes, authorization header with jwt.

But it's not about Cogito, the same error occurs with API_KEY method

I've found that headers is an empty object here, causing this error. But the question is - what is trying to connect for the subscription? I don't have any client running.

Well... it turned out I had a frontend project running in my browser that wanted to make a websocket connection with the API 🙈


tmux don't delete text

tmux don't delete text instead the prompt is moved to right until stop to move it.
I've a short video where this behavior can appreciate it, how can I share it with?

@gsbuosi Hello 👋
Are you sure this is related to Oh My Tmux?
Do you reproduce the problem if you launch tmux with
$ tmux -L test -f /dev/null

?

Hi Gregory,
With this command sequence the error is not reproduced.

Can you please make sure TERM is set to xterm-256color outside of tmux?
Also can you please tell me what's your OS and terminal emulator?

My .zshrc haven't xterm-256color.
My OS is Linux | ElementaryOS, running io.elementary.terminal as terminal emulator

Try setting TERM outside of tmux then. xterm-256color is a good default in nearly all terminal emulators

Thanks for the support Gregory, this ticket could be closed.

You're welcome


Reconciling Fig 3a with code.

Hi Danijar,
Thanks for releasing this tf2 implementation!
I was curious about how to reconcile the lines here:
https://github.com/danijar/dreamer/blob/1e38b1d80e11335883108720e671d35cc34de96e/dreamer.py#L159-L163
with the figure

In particular, the figure shows that the reconstruction observation (o_hat_1) is made from the rssm state obtained from encoding the true image (o_hat). However, the code above seems to suggest that the reconstruction is created by doing a single step of the RRSM?
Can you clarify how to reconcile these two things?
Thanks,

The image is reconstructed from the state at the current time step, so it is not a forward prediction. The RSSM.observe() function integrates the previous state, previous action, and current CNN features into the current state that is returned.


feat: scaffold release workflows

@wbt @DABH Spent some time over the past week or so really refining the interactions and process between these workflows. From a practical example perspective you can look at this PR & Repo. If y'all want to play around with it I can make that happen.
@DABH I sent you an email regarding the "Secret" requirements for these workflows. Just to re-iterate them here for context they are the following:
Secrets:

RELEASE_OPS_PRIVATE_KEY - Private key of a key/pair generated for the GitHub app that is used to generate a token.
PUBLISH_TOKEN - NPM access token with publish permissions

Non Secret Variables (allow for easier migration between repos):

RELEASE_OPS_APP_ID - This I believe this is a static value. Currently it's 291962 (GitHub app developed by me, requested to install to this repo). This is subject to the app that is leveraged though.

Will be updating the overall PR description to describe the process that this supports in the next day or so. Probably won't get to it tonight as it's late for me.


Update hockey.rb

Thanks for contributing to fastlane! Before you submit your pull request, please make sure to check the following boxes:

[x] Run bundle exec rspec from the subdirectory of each tool you modified. Alternatively, run rake test_all from the root directory.
[x] Run bundle exec rubocop -a to ensure the code style is valid
[x] Read the Contribution Guidelines
[x] We currently don't accept new actions, please publish a plugin instead, more information in Plugins.md

Before submitting a pull request, we appreciate if you create an issue first to discuss the change :+1:

Fixes: https://github.com/fastlane/fastlane/issues/7495

This is great, thanks @RishabhTayal 👍

Nice!


Multilanguage support

Multilanguage support for several languages

@engel-b I've update some changes so that there is no additional unnecessary content being loaded (jquery and fontawesome are too large files).
If this looks fine to you as well, I'm fine to merge it :)


add generic type to FetchCatsBackend stub method

Before submitting pull request:

[x] Check if the project compiles by running sbt compile
[x] Verify docs compilation by running sbt compileDocs
[x] Check if tests pass by running sbt test
[x] Format code by running sbt scalafmt

This PR adds a generic type to stub method in FetchCatsBackend companion object.
Reasoning for this change is, when you have SttpBackend defined as a dependency like this
 val catsBackend: SttpBackend[IO, capabilities.WebSockets] = FetchCatsBackend[IO]()

it is not possible to mock it using this code
val stubedBackend: SttpBackendStub[IO, Any] = FetchCatsBackend.stub[IO]

adding a type resolves this issue 😃
val stubedBackend: SttpBackendStub[IO, WebSockets] = FetchCatsBackend.stub[IO, WebSockets]

Thanks! :)


Creating MSIX without having an installer

all the instructions assumes to have an existing installer pass to MsixPackagingTool.
Is there a way to create MSIX with just raw application files/contents?

@ssrakesh - There are a few ways you can get create MSIX package.

Use MSIX Packaging Tool

Providing an insaller is optional in the UI. Keep it blank and in the monitoring phase, perform the actions with your raw application. The tool should pick up all the artifacts and package them into a MSIX package.

Use Visual Studio Packaging Project
Use makeappx.exe(tool in the Windows 10 SDK) to create the package

You will need to construct a manifest file to use makeappx

If you can share more information regarding your scenario, we can provide a recommendation on which option is the best one for you.


feat: Add Score as Sandbox

Signed-off-by: Mathieu Benoit<EMAIL_ADDRESS>Pre-submission checklist:
Please check each of these after submitting your pull request:

[ ] Are you only including a repo_url if your project is 100% open source? If so, you need to pick the single best GitHub repository for your project, not a GitHub organization.
[ ] Is your project closed source or, if it is open source, does your project have at least 300 GitHub stars?
[ ] Have you picked the single best (existing) category for your project?
[ ] Does it follow the other guidelines from the new entries section?
[ ] Have you added your SVG to hosted_logos and referenced it there?
[ ] Does your logo clearly state the name of the project/product and follow the other guidelines?
[ ] Does your project/product name match the text on the logo?
[ ] Have you verified that the Crunchbase data for your organization is correct (including headquarters and LinkedIn)?

As part of https://github.com/cncf/toc/issues/1374, ready for your review, thanks!


Unable to use with msw to mock requests

Environment

Operating System: Darwin
Node Version:     v18.19.1
Nuxt Version:     3.10.3
CLI Version:      3.10.1
Nitro Version:    2.9.3
Package Manager<EMAIL_ADDRESS>Builder:          -
User Config:      devtools
Runtime Modules:  -
Build Modules:    -

Reproduction
https://stackblitz.com/~/github.com/rinux55/nuxt-fetch
See app.test.ts. In the test/setup.ts and test/server.ts there is an msw server being set up with a mocked endpoint.
Describe the bug
To mock requests made using $fetch and useFetch, I expect to be able to use a utility like msw.
Unfortunately, this doesn't seem to work in combination with @nuxt/test-utils.
I've created a reproduction where you can see that globalThis.fetch is mocked just fine, but useFetch or fetch is not:
https://stackblitz.com/~/github.com/rinux55/nuxt-fetch
Any help with this would be greatly appreciated.
Additional context
No response
Logs
No response

Linking https://github.com/unjs/ofetch/issues/295 here as well

As a workaround you can try to use registerEndpoint function.

Just a shot in the dark, but it seems that the addition on vi.resetModules() in @nuxt/test-utils/dist/runtime/entry.mjs is breaking my MSW setup. I'm unable to upgrade past 3.10 due to that change. Commenting out that line makes all of my tests pass as expected.

let mockApi
// Nuxt Vitest environment clears modules after setup, so we're saving a global reference to the first mockApi instance
if (window.mockApi) {
    mockApi = window.mockApi
} else {
    mockApi = setupServer()
    window.mockApi = mockApi
}

@bcorey85 Where would you add that workaround?

@david-mears-2 It's ultimately in my Vitest setupFiles. I have it wrapped in a function that I call when my test environment spins up:
export const setupMockApi = () => {
    let mockApi

    // Nuxt Vitest environment clears modules after setup, so we're saving a global reference to the first mockApi instance
    if (window.mockApi) {
        mockApi = window.mockApi
    } else {
        mockApi = setupServer()
        window.mockApi = mockApi
    }

    const DEBUG = false

    mockApi.events.on('request:start', ({ request }) => {
        if (DEBUG) {
            console.log('Outgoing:', request.method, request.url)
        }
    })

    // Establish API mocking before all tests.
    beforeAll(() =>
        mockApi.listen({
            // Change this to 'warn' if you need to debug a missing API route.
            // Otherwise leave it on 'bypass' so it doesn't spam warnings when we don't add unnecessary routes
            onUnhandledRequest: DEBUG ? 'warn' : 'bypass'
        })
    )
    // Reset any request handlers that we may add during the tests,
    // so they don't affect other tests.
    afterEach(() => {
        mockApi.resetHandlers()
    })
    // Clean up after the tests are finished.
    afterAll(() => mockApi.close())
}

Hello, I have created a Nuxt module called nuxt-msw that can be used with Nuxt 3 and @nuxt/test-utils to work with msw. You can give it a try and see if it solves your problem.

This is now working. You only need to overwrite nuxt's $fetch instance:
import { createFetch } from 'ofetch'

// your msw server
import { server } from './mocks/server'

beforeAll(() => {
  server.listen()
  globalThis.$fetch = createFetch()
})


process.memoryusage gives EMFILE

Looks like a problem in nodejs since winston had a similar problem. Lets calculate Ram usage only when required or remove support of RAM for now. Use something else to monitor Ram of the process.

Have put this in try catch and also fetching ram only when required. But still keeping this issue open


fix: port allocation race

Description
Theoretically, it should fix sporadic issues on CI when there's a high number of workers (currently we've got around 6 for iOS).

In this pull request, I have brought almost together two events: when the port number is allocated and when the web socket server starts.

@noomorph thanks 🚀  I saw the change - could you please explain in a few words what that solves the problem?


Default http and r2 rest request builders/response handlers

Rename RestliR2Client to R2Client, buildRequest to buildWriteRequest
HttpRequestBuilder builds a HttpUriRequest from a http operation GenericRecord
R2RestRequestBuilder builds a RestRequest from a http operation GenericRecord

@abti @ibuenros Please review.


feat: added create-new-workflow button in call modal

Description
As a UO I want to be able to create stub Workflow so that I can quickly create new call
Motivation and Context
Currently filling out the call after filling our first few fields turns out you can not continue because you have no Workflow created.
A solution is to add a new button "Create new workflow" which when created will create a new empty workflow and you can start using it but fill out it later.
How Has This Been Tested

manual test

Fixes
https://user-images.githubusercontent.com/78078898/210516322-f28d6c41-7aea-4d78-915e-b38f7559bef8.mp4
Changes
apps/user-office-frontend/src/components/call/CallGeneralInfo.tsx
Tests included/Docs Updated?

[ ] I have added tests to cover my changes.
[ ] All relevant doc has been updated

I wonder if it'd be better to instead add a database patch that sets up a default workflow? We already have one in place for adding a default template so I don't think it'd be unprecedented.
I suggest this as it seems to me like there being no workflows would only be an issue the first time a call is created after the system is initialised, but if we present a "create workflow" button like this we introduce the risk of a user officer creating an empty workflow for any call, and if they don't go back to repopulate it or set it up properly, it would result in missed events and processing.

Our team discussed about your suggestion @ACLay. You made good point there, plus considering UI consistency this PR is closed.


Output checking module/wrapper

output checking functions combined in a module
wrapper for output checking functions

Closing merge request as testing incomplete.


Remove legacy spring-cloud-azure-keyvault project

Description
Remove the legacy spring-cloud-azure-keyvault project, which is not published and deprecated.

Codecov Report

Merging #286 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #286   +/-   ##
=========================================
  Coverage     49.14%   49.14%
  Complexity      234      234
=========================================
  Files            86       86
  Lines          1107     1107
  Branches         49       49
=========================================
  Hits            544      544
  Misses          531      531
  Partials         32       32

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 52fc51c...437825f. Read the comment docs.


Fixing the side effects in Django < 1.10

As request.user.is_authenticated was no longer a method it was changed to use as boolean.
But this has a side effect for Django < 1.10 where it is a method. Hence added 'is_user_authenticated' which works conditionally and fixes the side effect.

Are there any plans to merge this or is it a better option to close this?


Test cases failures ( npm test ) on powepc

Hi All,
I am part of team officially porting node-sass on power-pc ( ppc64le - Ubuntu/Rhel ) . I am getting test case failures while trying out the test case on both ubuntu/rhel using below..
$ git clone https://github.com/sass/node-sass.git && cd node-sass
$ git submodule update --init --recursive
$ npm install
$ node scripts/build -f
$ npm test

My set up details are as below ( ubuntu/rhel )
[root@p006vm11 ~]# lscpu
Architecture:          ppc64le
Byte Order:            Little Endian
CPU(s):                16
On-line CPU(s) list:   0-15
Thread(s) per core:    1
Core(s) per socket:    1
Socket(s):             16
NUMA node(s):          1
Model:                 IBM pSeries (emulated by qemu)
L1d cache:             64K
L1i cache:             32K
NUMA node0 CPU(s):     0-15

node version details
jenkins@fcbcd185e28f:~$ node --version
v6.2.1
jenkins@fcbcd185e28f:~$ npm --version
3.9.3

Attaching both error logs for ubuntu/rhel .
Any pointers on resolve the test case failures. ?
node-sass-rhel.txt
node-sass-ubuntu.txt

Error log snippet , missed in above post
$ npm test
1165 passing (16s)
  7 pending
  2 failing

  1) api binding missing error should be useful:
     Error: Node Sass does not yet support your current environment: Unsupported platform (Windows) Unsupported architecture (ppc64) with Node.js 6.x
For more information on which environments are supported please see:
https://github.com/sass/node-sass/releases/tag/v3.8.0
      at Object.<anonymous> (lib/index.js:13:11)
      at require (internal/module.js:20:19)
      at test/api.js:1807:24
      at _tryBlock (assert.js:318:5)
      at _throws (assert.js:337:12)
      at Function.assert.throws (assert.js:367:3)
      at Context.<anonymous> (test/api.js:1806:16)

  2) api binding missing error should list currently installed bindings:
     Error: Node Sass does not yet support your current environment: Unsupported platform (Windows) Unsupported architecture (ppc64) with Node.js 6.x
For more information on which environments are supported please see:
https://github.com/sass/node-sass/releases/tag/v3.8.0
      at Object.<anonymous> (lib/index.js:13:11)
      at require (internal/module.js:20:19)
      at test/api.js:1814:24
      at _tryBlock (assert.js:318:5)
      at _throws (assert.js:337:12)
      at Function.assert.throws (assert.js:367:3)
      at Context.<anonymous> (test/api.js:1813:16)

npm ERR! Test failed.  See above for more details.
Build step 'Execute shell' marked build as failure

@ghatwala on the bright side, these failures aren't anything to worry to about. Unfortunately I'm not completely sure how to go about working around it atm.
We maintain a whitelist of supported environments so we can provide useful errors to users having installation issues. These specs could maybe be smarter.
I'd love to talk more about what you're doing seeing if we could move it upstream, if you could jump into our slack that'd be great - https://libsass-slack.herokuapp.com/

@xzyfer -  Thanks for the quick reply .I understand that these test case failures are not critical , however since we are officially porting package to ppc64le , we would expect the build + test cases succeed .
I have joined your slack , having known that "ppc64le" is not supported , i would want to know the way ahead on how to enable the same ( or adding new arch ) . Let me know if they are any steps to adding a new arch type to this code.

@ghatwala depending on the scope of changes required supporting a new environment can be quite straightforward. The minimum requirement is that someone from the community come on board to take on responsibility of maintaining support for that environment.
This involves organising or maintaining

CI
PRs / issues
Building release binaries.

We would prefer these be as automated as possible.

@xzyfer - if adding new environment can be quite straightforward  , please do let me know which files will need changes/what changes , i can try this if it works on my ppc64le environment.
Please do share more information about support to new arch/environment

Resolved via Slack.

@xzyfer : Thanks for all your help , should i upload the changes to the main branch ?

Sure thing. If you could open a PR so I can see the changes that'd be great. As discussed we wouldn't merge the PR at this time but I'm curious as to what was involved.

@xzyfer - have raised a PR as above


Metadata and docs cleanup (add note about crate being unmaintained)

Just some cleanup before releasing the next version. Found some metadata and docs that could be better.
Also adding a note about this crate not being maintained, because it isn't. Maybe that helps a few people migrate off of it.

I sadly can't merge these myself :facepalm:. According to the github repo rules a maintainer other than myself must approve them before they are merged. Is @yoshuawuyts maybe available?
Otherwise we can do a bit of a trick. Maybe someone else who would like to see a release of miow can just copy my open PRs and open identical ones. Then I can approve and merge those :sweat_smile:  Ping @ehuss & @klensy

Superseded by #66


Migration tool doesn't handle overrides with function typed parameters well

The migration tool doesn't seem to correctly add nested nullability annotations inside the parameters of function type parameters in overrides, resulting in invalid overrides.
// opted_in.dart
class B {
  void bar(int? x) {}
  void foo(List<int?> Function(List<int?>) f) {}
}

// opted_out.dart
import "opted_in.dart";
class A extends B {
  void bar(int x) {}
  void foo(List<int> Function(List<int>) f) {}
}

Running the migration tool on opted_out.dart results in:
class A extends B {
  void bar(int? x) {}
  void foo(List<int?> Function(List<int>) f) {}
}

Note that the parameter type of f has been left as List<int> instead of List<int?>, resulting in an invalid override.
Function types in general seem problematic to handle, but for the specific case of overrides, it seems pretty straightforward to just merge in the required non-nullability annotations.
cc @stereotype441 @MichaelRFairhurst

Unassigning myself because I'm not actively working on the migration tool right now.

As of 1c7fe7196dd7a542f7f91cd6ea2ac81e1a13146c, the null safety migration tool has been removed from active development and retired. No further work on the tool is planned.
If you still need help, or you believe this issue has been closed in error, please feel free to reopen.


Container pauses on error

When an error occurs in a container with a node
 [error ] Task exited: {'code': -32000, 'message': 'One of the blocks specified in filter (fromBlock, toBlock or blockHash) cannot be found.'} [__main__].
The container throws an error only to the log, which causes it to go into pending and nothing happens. It would be correct to either terminate the process completely (so that the docker restarts the container itself) or just ignore the error =)

hi @seronly, what do you mean by

causes it to go into pending and nothing happens
? What do you observe after this error, do the chain listener or processor stop processing requests? What logs do you see after? This error need not  be fatal and sounds like something the node could recover from. Hard to tell without a stack trace and more log details though.

Since this is not directly related to this repo, but to Infernet Node, I am closing this but feel free to open the issue there.


Toggle event is being fired twice

Hello,
I wonder why the toggle event is being fired twice when clicked. This is my code and it outputs the console.log twice each case:
$('.toggle').on('toggle', function(e, active) {
        if(active)
          console.log("Aktiv!" + active);
        else
          console.log("Inaktiv!" + active);
      })

I noticed that if the user completely swipes the toggle element it is only being fired once. I just want to do ONE MySQL query once the state has changed, how would I do so?

set click: false and still click it --> goes on and off doing nothing. bug!


Outdated description?

Added in v2.6.6:
Armor bonuses are now calculated more correctly (this cannot be disabled due to too many dependencies)

    Enchantments now correctly increase armor bonuses instead of applying an unrelated bonus

However the description still says:
You can however disable any feature of the mod at will without breaking saves.

All changes are configurable and can be disabled via the unity mod manager menu.

Technically this change is not part of vase at all and is in TTT-Core due
to how it has to be implemented. It is non toggleable, but not save
breaking.
On Sun, Aug 25, 2024, 05:54 derickso @.***> wrote:

Added in v2.6.6:
Armor bonuses are now calculated more correctly (this cannot be disabled due to too many dependencies)
Enchantments now correctly increase armor bonuses instead of applying an unrelated bonus

However the description still says:
You can however disable any feature of the mod at will without breaking saves.
All changes are configurable and can be disabled via the unity mod manager menu.
—
Reply to this email directly, view it on GitHub
https://github.com/Vek17/TabletopTweaks-Base/issues/733, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAWSQPHOTRK5YRLABB6VK6DZTGZX3AVCNFSM6AAAAABNCN5BHWVHI2DSMVQWIX3LMV43ASLTON2WKOZSGQ4DKMJXHAZDENQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Disable auto-loading of Sidekiq web-ui-extension

This allows to use sidekiq-cron without the web-ui-integration.
Now you need to explicitly load the cron extension in your routes:
require 'sidekiq/web'
require 'sidekiq/cron/web'
mount Sidekiq::Web => '/sidekiq'

resolved in #9


Change retry behaviour for deleting SQS messages

Attempt to delete SQS message up to 5 times, with requests 1500ms apart
Add message ID to logged information when delete attempt fails

Signed-off-by: Steffan Westcott<EMAIL_ADDRESS>

There are no unit test changes/coverage for changes. Also it would be good if we can add new unit test classes where they are missing. Thanks.

@clicktravel-steffan This looks like a good PR to me.  Feel free to merge when ready.


This commit adds tests for the executor.

Initial scaffolding and some basic tests for the executor
Add test for Shutdown.
Add some tests for LaunchTask, KillTask, FrameworkMessage.
General code cleanup.
Improve FrameworkMessage test.
Fix argument ordering of calls to assert.Equal.
Fix double-close issue that results from abstracting our call to Exit.
Add test for sendFrameworkMessage, remove broken code.
Beginnings of scaffolding to eventually hit the *launchTask methods
Clean up unused functionality.
Test the *launchTask functions.
Update ExitFunc signature.
Address @jdef's feedback.
Add Source to PodUpdate.

xref xref mesosphere/kubernetes-mesos#293

some final review comments, otherwise LGTM

LGTM, will merge after squashed

:ship:


⚠ Bofrost.si has degraded performance

In 4fdb1b5, Bofrost.si (https://www.bofrost.si) experienced degraded performance:

HTTP code: 200
Response time: 3017 ms

Resolved: Bofrost.si performance has improved in fa2ca32.


added documentation for wallet storage databases

[x] SQlite
[x] PostgreDB
[x] Link in other documentation
[x] Docker Compose example

Codecov Report

Merging #1523 (8071013) into main (2960c51) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main    #1523   +/-   ##
=======================================
  Coverage   95.79%   95.79%
=======================================
  Files         509      509
  Lines       30985    30985
=======================================
  Hits        29683    29683
  Misses       1302     1302

Is wallet-key used in storage type postgres?

Is wallet-key used in storage type postgres?

Yes!

@swcurran / @ianco might be good to extract all markdown docs into a separate directory to make it a bit more neatly arranged

Agreed... I'll open a separate issue on that and take it on. I'll combine it with the ability to review the docs on the read-the-docs site.  A good chance for a docs review.


Multiple Scheduler Bugs: Deployment Update Resource Allocation and GPU Utilization

Environment
Kubernetes version: v1.27.9
HAMi version: v2.3.9
Bug 1: Possible Scheduler Bug When Updating Deployment with Insufficient Resources
Encountered a scheduler bug when updating a Deployment's resource requirements beyond the available capacity in a Kubernetes cluster with heterogeneous memory and GPU resources
Steps to reproduce the issue

Pre-conditions:

Node 1: 4GiB Memory, 1 GPU
Node 2: 4GiB Memory, 1 GPU
Node 3: 16GiB Memory, 2 GPUs (each GPU with 16GiB)

Create Deployment A:

Replicas: 1
Memory requirement: 16GiB
GPU requirement: 2

Create Deployment B:

Replicas: 1
Memory requirement: 4GiB
GPU requirement:  1

Delete Deployment A
Modify Deployment B

Change replicas to 3
Change memory requirement to 8GiB
Change GPU requirement to 2

Expected Behavior
The update should fail because there is not enough memory and GPUs available in the cluster to satisfy the requirements of 3 replicas of Deployment B with the specified resources.

Node 1: 4GiB Memory occupied by the pre-existing resources of Deployment B
Node 2: Unchanged (idle)
Node 3: 2 replicas of Deployment B fully occupied the memory of two GPUs

Actual Behavior
The update fails, but the node resource allocation is incorrectly reported:

Node 1: 4GiB Memory
Node 2: Unchanged (idle)
Node 3: Resources are reported as 8GiB and 12GiB, which is inconsistent with the expected result of having all GPUs with full memory

Prometheus Metrics

Bug 2: Incorrect GPU Utilization
Encountered a scheduler bug when updating a Deployment's resource requirements beyond the available capacity in a Kubernetes cluster with heterogeneous memory and GPU resources
Steps to reproduce the issue

Pre-conditions:

Node 1: 4GiB Memory, 1 GPU (Max Utilization: 100%)
Node 2: 4GiB Memory, 1 GPU (Max Utilization: 100%)
Node 3: 16GiB Memory, 2 GPUs (each GPU with 16GiB Memory and Max Utilization: 100%)

Create Deployment A:

Replicas: 1
Memory requirement: 4GiB
GPU requirement: 1
GPUcores requirement: 120 (which implies a requirement of more than 100% GPU utilization if taking "100" as the maximum)

Expected Behavior
The deployment should fail to be scheduled due to the GPU utilization requirement exceeding the maximum limit of 100%.

Node 1: Memory should remain unallocated (4GiB)
Node 2: Memory should remain unallocated (4GiB)
Node 3: Both GPUs should remain unallocated (16GiB + 100%, and 16GiB + 100%)

Actual Behavior
The deployment is incorrectly scheduled with the following resource allocation:

Node 1: Unchanged (4GiB Memory idle)
Node 2: Unchanged (4GiB Memory idle)
Node 3: Resources are reported incorrectly:

First GPU: Appears as if 4GiB Memory + 100% Utilization has been allocated to Deployment A (should be no allocation)
Second GPU: Unallocated (16GiB Memory and 100% Utilization idle)

@michael-nammi It would be great if you could provide the yaml of each test process deployment, which would speed up our troubleshooting.


Service architecture

The different part of authentication/session management processes does not always require all dependencies. For example the session check does not require the authentication part.
Possible services:

Login/Authentication
SessionResume/Check
Logout

In practice it seems that services are usually NOT used on their own (for example logout is never used on its own), thus the unnecessary dependency argument is not valid anymore. The three classes could be merged into one.
It also turned out that these services are heavily tied to the usual user-password authentication used in web applications which makes me think that these classes should go elsewhere.
@TamasBarta thoughts?

Actually everything related to user-password authentication could be moved into a separate package:
UserPassword authenticator
User caller
etc
It would make more sense to keep those in one package rather than moving only the current services.
Or they could all remain in the core package, but that would mean that guardian has more focus on that type of authentication (which is not true, it tries to be general).

I originally suggested the three service to be merged, since they all share a login flow responsibility. They are also very small in size, so separating them means unnecessary complication, IMHO.
What I also suggested is the merged class to be included in the base package. I believe it's not necessary to create tons of packages. We need an aim with this framework, and that could be "a very flexible framework that can be easily used for any purpose of authentication", but that does not imply it shouldn't work out of the box for the most common scenarios (eg: web application authentication). Also It doesn't have any bad impact to simply include classes for the most common case.

Makes sense.
What I am concerned about is to make the package as general as possible. I am afraid that if we include too much "common use case" stuff, the development will go in an unwanted direction.
But for now, I will just merge the three.
Any idea for a name? (SOmething differemt )

@TamasBarta renamed to SessionAuth and RequestAuth. It is subject of change if we can pick a better name.

I'm fine with that too.
2015-04-20 20:43 keltezéssel, Márk Sági-Kazár írta:

@TamasBarta https://github.com/TamasBarta renamed to SessionAuth and
RequestAuth. It is subject of change if we can pick a better name.
—
Reply to this email directly or view it on GitHub
https://github.com/indigophp/guardian/issues/5#issuecomment-94535874.


JSR imports are failing in test files

I have a test file, let's call it MyModule.test.ts.
It is passing deno test, but the type checking in DNT fails to recognize the imports.
I am adding JSR imports via deno add and the entries are inside deno.json.
Here is the DNT output with errors.
[dnt] Transforming...
[dnt] Running npm install...

added 3 packages, and audited 4 packages in 571ms

found 0 vulnerabilities
[dnt] Building project...
[dnt] Type checking ESM...
src/MyModule.test.ts:1:30 - error TS2307: Cannot find module '@std/assert' or its corresponding type declarations.

1 import { assertThrows } from "@std/assert";
                               ~~~~~~~~~~~~~
src/MyModule.test.ts:2:30 - error TS2307: Cannot find module '@std/testing/bdd' or its corresponding type declarations.

2 import { describe, it } from "@std/testing/bdd";
                               ~~~~~~~~~~~~~~~~~~
src/MyModule.test.ts:3:52 - error TS2307: Cannot find module '@std/testing/mock' or its corresponding type declarations.

3 import { assertSpyCall, assertSpyCalls, spy } from "@std/testing/mock";
                                                     ~~~~~~~~~~~~~~~~~~~

error: Uncaught (in promise) Error: Had 3 diagnostics.
          throw new Error(`Had ${diagnostics.length} diagnostics.`);
                ^
    at getProgramAndMaybeTypeCheck (https://jsr.io/@deno/dnt/0.41.1/mod.ts:468:17)
    at build (https://jsr.io/@deno/dnt/0.41.1/mod.ts:354:17)
    at eventLoopTick (ext:core/01_core.js:168:7)
    at async file:///Users/vicary/my-module/dnt.ts:7:1

Should test files be ignored from type checks when the specified entrypoints and their import trees do not include them?
If they are meant to be included, how should I config DNT to resolve JSR imports?

It's probably this. You need to provide it manually as an import map atm: https://github.com/denoland/dnt/issues/399

Thanks for the quick reply, adding importMap: "./deno.json" does build!
But the resulting package not includes all the testing dependencies that I really want to exclude from NPM, is it possible to skip the test files in DNT?

But the resulting package now includes all the testing dependencies that I really want to exclude from NPM, is it possible to skip the test files in DNT?

They should be marked as "devDependencies". Can you open a separate issue that reproduces and shows the problem?


hub pr list should allow you to show all merged Pull Requests since

It would be very nice if you could get a list of all the merged pull requests since a given date.
This would make generating change logs very easy!

For sure, that would be useful! Duplicate of https://github.com/github/hub/issues/2085


Remove JHU branding from sandbox UI

We'll need a placeholder logo to swap in for the JHU logo.

Remove Hopkins logo?
Find something to put in place of logo


feat!: add blake3 opcode to brillig

This PR adds the blake3 opcode to brillig and updates the serialisation logic.

Benchmark results
Metrics with a significant change:

node_database_size_in_bytes (10): 3,725,868 (-30%)

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
Values are compared against data from master at commit 1fd135cb and shown if the difference exceeds 1%.
L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
8 txs
32 txs
128 txs

l1_rollup_calldata_size_in_bytes
45,444
179,588
716,132

l1_rollup_calldata_gas
223,044
868,196
3,448,232

l1_rollup_execution_gas
936,377
3,970,859
24,791,957

l2_block_processing_time_in_ms
1,325 (-12%)
5,108
21,101 (-1%)

note_successful_decrypting_time_in_ms
329 (-5%)
998
3,668 (-3%)

note_trial_decrypting_time_in_ms
49.1 (-12%)
126 (+2%)
139 (-1%)

l2_block_building_time_in_ms
14,967 (-1%)
59,648
239,052

l2_block_rollup_simulation_time_in_ms
10,638 (-1%)
42,478
170,519

l2_block_public_tx_process_time_in_ms
4,298 (-1%)
17,080
68,104

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 16 txs.

Metric
5 blocks
10 blocks

node_history_sync_time_in_ms
15,272 (+1%)
29,162

note_history_successful_decrypting_time_in_ms
2,389 (+1%)
4,691 (-3%)

note_history_trial_decrypting_time_in_ms
80.3 (+2%)
186 (-2%)

node_database_size_in_bytes
3,620,495
:warning: 3,725,868 (-30%)

pxe_database_size_in_bytes
29,923
59,478

Circuits stats
Stats on running time and I/O sizes collected for every circuit run across all benchmarks.

Circuit
circuit_simulation_time_in_ms
circuit_input_size_in_bytes
circuit_output_size_in_bytes

private-kernel-init
210
44,709
25,561

private-kernel-ordering
137 (-1%)
30,953
14,809

base-rollup
1,080
128,374
881

root-rollup
82.4 (-1%)
4,088
889

private-kernel-inner
287
71,236
25,561

public-kernel-private-input
203
31,891
25,561

public-kernel-non-first-iteration
200
31,933
25,561

merge-rollup
9.71 (-1%)
2,608
881

Tree insertion stats
The duration to insert a fixed batch of leaves into each tree type.

Metric
1 leaves
2 leaves
8 leaves
16 leaves
32 leaves
64 leaves
128 leaves
512 leaves
1024 leaves
2048 leaves
8192 leaves

batch_insert_into_append_only_tree_ms
11.0 (-2%)
84.0 (-5%)
13.7 (-2%)
17.8
23.8
49.7 (-1%)
91.3 (+3%)
242 (-1%)
468
912
3,569

batch_insert_into_indexed_tree_ms
N/A
N/A
N/A
64.1 (-1%)
N/A
59.4
110 (-1%)
358 (-1%)
758 (+2%)
1,406
5,568 (-3%)

Miscellaneous
Transaction sizes based on how many contracts are deployed in the tx.

Metric
0 deployed contracts
1 deployed contracts

tx_size_in_bytes
15,487
31,905

Transaction processing duration by data writes.

Metric
0 new commitments
1 new commitments

tx_pxe_processing_time_ms
345
963

Metric
1 public data writes

tx_sequencer_processing_time_ms
529