While building star tree, call flush() explicitly to reduce IO

Add flush() to StarTreeDataTable
Call flush() at most once for each StarTreeDataTable

Codecov Report

Merging #2137 into master will decrease coverage by 20.5%.
The diff coverage is 57.14%.

@@            Coverage Diff             @@
##           master   #2137       +/-   ##
==========================================
- Coverage   69.81%   49.3%   -20.51%
==========================================
  Files         826     826
  Lines       39160   39151        -9
  Branches     5277    5272        -5
==========================================
- Hits        27340   19304     -8036
- Misses      10017   18192     +8175
+ Partials     1803    1655      -148

Impacted Files
Coverage Δ

...inkedin/pinot/core/startree/StarTreeDataTable.java
97.82% <ø> (+3.82%)
:arrow_up:

...in/pinot/core/startree/OffHeapStarTreeBuilder.java
76.18% <57.14%> (-9.09%)
:arrow_down:

...aggregation/function/MaxMVAggregationFunction.java
0% <0%> (-100%)
:arrow_down:

...common/datetime/convertor/EpochToSDFConvertor.java
0% <0%> (-100%)
:arrow_down:

...aggregation/function/SumMVAggregationFunction.java
0% <0%> (-100%)
:arrow_down:

...t/core/query/scheduler/AbstractSchedulerGroup.java
0% <0%> (-100%)
:arrow_down:

...common/datetime/convertor/SDFToEpochConvertor.java
0% <0%> (-100%)
:arrow_down:

...aggregation/function/MinMVAggregationFunction.java
0% <0%> (-100%)
:arrow_down:

...din/pinot/common/restlet/resources/TablesList.java
0% <0%> (-100%)
:arrow_down:

...linkedin/pinot/server/api/resources/ErrorInfo.java
0% <0%> (-100%)
:arrow_down:

... and 397 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 31f9a2b...a573334. Read the comment docs.


Add Java bin into PATH as well

This PR proposes to add Java 11 bins into PATH. Given some tests https://github.com/apache/spark/pull/25447, looks it uses java in Java 8 when it launches local cluster in tests, which leads to test failures. For instance see https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/109096/console

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


Feature/group menu items

Improving UI: Anavel Crud allows to classify models in groups in a simple way.
Related to #11

@ablunier do a review and merge the changes, please.


The key argument to openbrush::upgradeable_storage is confusing

If I understand correctly whether I use #[openbrush::upgradeable_storage(123)] or #[openbrush::upgradeable_storage(500)] makes no difference on how the data is laid out in the contract storage (everything is anyway clumped together in the 0 key). If so, then it's extremely confusing that the argument is even there.
Is my understanding correct?

Yes, you are correct, it was a change in latest ink! versions, so we will rework the macro and remove the argument, we are working on it here: https://github.com/Brushfam/openbrush-contracts/pull/49

Thank you. I'm eagerly waiting for the new release then :) Is there an ETA on this being released?


add docs and examples for otelcol and confluent in kubernetes

This PR adds examples for scraping confluent metrics using open telemetry collector in kubernetes

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Lawrence Agbani seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks for the submission @agbanil.
Unfortunately, I don't think we should not accept this PR. This repository documents common OpenTelemetry usages that we want to highlight, and configuring the collector to scrape confluent with prometheus is one of those. However, there are many container orchestration tools out there (k8s, mesos, helm, docker swarm, rancher, nomad, openshift, etc). It is not within the scope of this repository to describe how to run each of the scenarios in all of the various container orchestration tools our customers may be using. The combinatorial explosion is not manageable and will result in unreliable examples that cause more problems than they solve.
Each example should be demonstrated in a single way. For most of the collector examples, that will be running locally via docker. However, some examples highlight have specific deployment environment dependencies: You can't show the k8sattributesprocessor without running in kubernetes. You can't show the dockerstatsreceiver without running on linux.
The expectation is that users adapt these local deployment patterns to the requirements of their system. Doing so is straight forward. The cost-benefit of supporting all examples with all the different possible deployment scenarios is too unfavorable to accept this.
@agbanil in the future can you open an issue prior to PRs that change the scope of the project? Can hash out questions like this ahead of time and potentially save some effort.


Setting a Attribute without Value

I have a Attribute without a Value wich I'd like to set on a Element:
 element.SetAttribute("readonly", null);

how can I do this?

I would consider this a bug. Intentionally, it was designed to not take null values. But this is wrong. So attributes without a value are not working in AngleSharp. I scheduled it for v0.10.0, but maybe I include it in a HF for v0.9.9.

@FlorianRappl side note:
If the functionality is to match the JS-behavior, then passing null into setAttribute should procude attribute-name="null"
Passing an empty string procudes the expected result.
See my pen: https://codepen.io/MausWorks/pen/QKxBoW

So thinking about it for the second time (thanks at @mausworks to point that out) I think it is not directly an issue. Remark: I am not trying to mimick JS behavior - that behavior comes from the implied cast (any -> string in the JS to native transition).
Every value requires a string. If no value is given (from the HTML source) then its the empty string. Now we can talk about the serialization in such cases, but unless you show me a difference from AngleSharp vs., e.g., Chrome, in that regard I see no issue.

So answer to the question: There is no attribute "without" a value. Every attribute has a value.
element.SetAttribute("readonly", String.Empty);

is what you actually look for (at least that's my opinion). The readonly (as an example) only cares about whether its available or not - not what value it has.

I think the only argument for having an attribute "without" a value, is that it looks prettier in markup.
<input type="text" disabled /> has the exact same behavior as <input type="text" disabled="" />. As far as the DOM is concerned, the value of the disabled-attribute is still an empty string.
I'm aware that the "null" comes from the String(null) call. I just wasn't sure how closely AngleSharp would mimic the behavior. But as calling setAttribute("foo", null) is perfectly valid in JS; one might expect this behavior to work in AngleSharp as well, and if so; one might expect the same result.

Yeah, as I said: The behavior comes from the JS to native transition and the cast to a string. We do not have the JavaScript types and our instance is already a (null) string. So writing "null" would not make sense to me. If you plug in a scripting engine then yes - you get the same behavior as expected from JS.
Similarly, using some arbitrary object in JavaScript will result in its string representation (e.g., [object Object] for a general one), but in C# you'll get a type mismatch exception (if done via reflection; otherwise a compilation error occurs of course). So the exact JS behavior cannot be matched anyway.
Long story short: My aim is not to copy the behavior tied to JS, but the right behavior (i.e., the behavior as defined from the W3C - which is independent of the used language).
Back to the topic: I agree - this is mostly about aesthetics and the serialization of the DOM. So I would say everything is as it should be.

I have a Attribute without a Value wich I'd like to set on a Element:
 element.SetAttribute("readonly", null);

how can I do this?

You can use element.toggleAttribute("readonly").
So if the attribute 'readonly' does exist in the element, it'll be added, otherwise, it'll be removed.


Knex migrations refresh

I was wondering if it's possible to refresh the migrations from the database, cleaning everything and calling migrations again.
Things that would be nice:

refresh - rollback everything and call migrations again
reset - rollback all the migrations

Also if it had a --seed so it would call seed automatically as well, like knex migrate:refresh --seed

@zefexdeveloper This is similar to https://github.com/tgriesser/knex/issues/2844
After that one is implemented, one can have this functionality by simply chaining rollback + migrations + seeds, why have redundant operations for that?

@kibertoad It was just a suggestion, it was nice that the similar issue mentioned Laravel because that was the main reason I suggested --seed and the other functionalities, but chaining would work as well.

Anyone working on this? Will have some free time next week.

Just started using knex and realized migration:reset does not exist like it does in Adonis. Seems like a pretty major thing to not include.

@ffxsam pretty major or pretty trivial and rarely needed. It is usually faster to drop old db and re-create from ground up.

@elhigu "rarely needed" - not during the development phase, when one is still working on the schema. With Adonis, we've run migration:reset several times in the beginning.

@ffxsam if you really run migrations down for resetting your DB I suppose that for you it would be frequently needed operation. Still trivial to to implement in your own npm scripts.
I could never recommend resetting DB like that. It is slow as hell and if there is single poorly written down script it can leave state to database so that next time when you run migrations initial state is different than when running migrations on clean database.
That being said, I'm totally fine if you like to implement it to knex. I never use knex's command line client to anything anyways.

Any news on this?

@MrToxy Is this https://github.com/knex/knex/pull/3187 what you are looking for?

@MrToxy Is this #3187 what you are looking for?

Not really, I don't think  #3187  is actually correct in the "refresh" context.
Taking a look at laravel's artisan, running php artisan migrate:refresh will re-run all of the migrations creating fresh tables with no data, that's exactly what I'm looking for.

@MrToxy Wouldn't you get same thing if you run first rollback:all, and then migrate:all?

@kibertoad can't find any references to migrate:all

@MrToxy Sorry, should actually be migrate:latest

@MrToxy Sorry, should actually be migrate:latest

Alright that did the trick, thanks.
I have another question, let me know if I should open a new issue for this but here it goes.
I'm using strapi which has some issues, mainly it doesnt create migrations and when you delete/rename a table field it doesnt actually delete it from the table, and if you rename it'll just create a new field with the new name but keep the other.
This could be easily fixed if I had a way to create migrations programatically, something like const migration = knex.migratation.make(table_name, schema/options)
knex.migration.run(migration)
This way I could keep my database clean while maintaining a record of the Changes

@MrToxy You can use the knex.mgirate API along with a custom migration source.

@MrToxy You can use the knex.mgirate API along with a custom migration source.

Could you link me an actual working example of a custom migration source?

package.json =>
{
  ...
  "scripts": {
    ...
    "refresh": "npx knex migrate:rollback & npx knex migrate:latest & npx knex seed:run"
    ...
  },
  ...
}

console => npm run refresh

@VsemP2 That should be &&, not &.

@VsemP2 That should be &&, not &.

NP bro, but it works the same for npm

@VsemP2 Additionally you don't need the npx in your scripts.

Posting the script that I wrote to handle this case as I need fresh tables for test etc and just way easier to run a command to drop and migrate. This probably won't work for all databases but should be fine for MySQL based databases.
I've been using this for months now so now that it's somewhat battle tested, should work fine.
import knex from 'knex';
import knexFile from 'root/knexfile';

const freshMigrations = async () => {
  const config = knexFile;
  const database = config.connection.database;
  const charset = config.connection.charset;
  config.connection.database = null;
  const knexConnection = knex(config);

  knexConnection.raw(`DROP DATABASE IF EXISTS ${database}`).finally(() => {
    knexConnection
      .raw(`CREATE DATABASE IF NOT EXISTS ${database} CHARACTER SET ${charset}`)
      .finally(() => {
        config.connection.database = database;
        const migrationKnexConnection = knex(config);
        migrationKnexConnection.migrate.latest().finally(() => {
          knexConnection.destroy();
          migrationKnexConnection.destroy();
          process.exit(0);
        });
      });
  });
};

export default freshMigrations();

package.json
"scripts": {
    "migrate:fresh": "node freshMigrations.js",
}


Fix #930

Pull Request Description
Fix #930 . There might be a misunderstanding.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@jeff-hernandez  Hi, Thanks for trying fixing this up. However, you are missing a point. The feature value on the EXACT cutoff time point should not be included when calculating feature generation for that cutoff time. Let's go back to the issue that I raised:

So, 1 month amount aggregation period: 2012-03-01 ~ 2012-03-31, March, 2012. Let's see SUM(sales.amount) column value of (store_id = 0 & 2012-03-01 cutoff time). The value is 44 by adding up the amounts of 2012-02-05, 2012-02-10, and """2012-03-01"""!!!. It counts """2012-03-01"""  here again, which is a sort of cheating and look-ahead bias`

As I said here, "2012-03-01" should be not counted when calculating features for the cutoff time of "2012-03-01".  But your pull request doesn't solve this problem. Therefore, I've fixed it with a new pull request

Hi @rightx2, thanks for reaching out. Featuretools always includes the feature value on the exact cutoff time. If you want to calculate a one month training window, you can adjust the cutoff times to be the last day of the month instead of the first day of the following month and use a MonthEnd training window.
from pandas.tseries.offsets import MonthEnd

cutoff_time - MonthEnd()

id
0   2012-02-29
1   2012-03-31
2   2012-02-29
3   2012-03-31
4   2012-02-29
5   2012-03-31
6   2012-02-29
7   2012-03-31
Name: cutoff_time, dtype: datetime64[ns]

@jeff-hernandez  Hmm. I don't understand why do you guys make it "includes the feature value on the exact cutoff time"... It doesn't look logically make sense to me...

Let say I have to predict 1month revenue for each store. Then I have to predict the revenue from 2020-03-01 00:00:00 ~ 2020-03-31 23:59:59, using the data from the past ~ 2020-02-29 23:59:59 (This time split is not overlapped), right?

But your instruction is the way of predicting "2020-03-01 00:00:00 ~ 2020-03-31 23:59:59" using "past ~ 2020-03-01 00:00:00" feature data, which seems not logically making sense because it counts the time of future and make time overlapped.

Moreover, if I followed your instruction, using MonthEnd(), I would miss the feature data of "2020-02-29 15:23" or "2020-02-29 22:23", because the cutoff time is "2020-02-29", which is 00:00:00.

Consequently, what I have to do is cutoff_time - pd.Timedelta(seconds=1) to handle above situation, which is so bothering and confusing for the beginner.

Am I missing something? Could you tell me the situation that your instruction, logic works well more generally?

@rightx2 thanks for sharing your feedback. After considering this, we do think it makes sense to let users choose whether data at exact cutoff times should be included in feature calculations. We plan to provide this option as a parameter in DFS. You can find more information about this parameter at #942. Let me know if you have additional feedback. Thanks.

@jeff-hernandez That would be nice :)  Is there any way I can contribute?

I'd like to participate in solving this issue as well

@rightx2 yes, any contributions are helpful and greatly appreciated. This page has helpful information and instructions for contributing. You can participate to solve this issue as well. Would you like to submit a pull request for #942?

@jeff-hernandez  Ok, I will try

Okay, sounds good. I will update #942 with any details about the implementation or test cases as they come up.

Closing in favor of other pr #959


php-cs-fixer is not properly pinned

php-cs-fixer is still trying to apply new, breaking changes to the source - in this case it's removing parts of the documentation comments - despite #537 which was explicitly intended to prevent this.
/CC @localheinz

/CC @SignpostMarv also, as you were the last person to touch this in #575.

Is this regarding that annoying habit php-cs-fixer has of removing non-starred lines in multi-line docblock tags ?

@SignpostMarv  Based on a quick look at what it's doing, it seems to be removing argument lines with a technically invalid type - which are deliberately the way they are to be more descriptive (e.g. string|null).

@erayd
Can you give an example?

@erayd this seems to be fine. There'll be rules to configure to change the behaviour. However....
@param tags with no description that are directly match the are redundant.
  10) tests\Constraints\TypeTest.php (no_superfluous_phpdoc_tags, phpdoc_align)
      ---------- begin diff ----------
--- Original
+++ New
@@ -69,8 +69,7 @@
     /**
      * Helper to assert an error message
      *
-     * @param string         $expected
-     * @param TypeConstraint $actual
+     * @param string $expected
      */
     private function assertTypeConstraintError($expected, TypeConstraint $actual)
     {

mid-line indentation is a matter of taste, although additionally I'm going to hazard a guess most of these should be more specific than mixed.
   5) src\JsonSchema\Constraints\UndefinedConstraint.php (no_superfluous_phpdoc_tags, phpdoc_align)
      ---------- begin diff ----------
--- Original
+++ New
@@ -55,10 +55,9 @@
     /**
      * Validates the value against the types
      *
-     * @param mixed       $value
-     * @param mixed       $schema
-     * @param JsonPointer $path
-     * @param string      $i
+     * @param mixed  $value
+     * @param mixed  $schema
+     * @param string $i
      */

As with the single-typed redundant line removal, T|null is a redundant line when the actual parameter matches the specified type, i.e. JsonPointer|null $path
   2) src\JsonSchema\Constraints\Constraint.php (no_superfluous_phpdoc_tags, phpdoc_trim, phpdoc_align)
      ---------- begin diff ----------
--- Original
+++ New
@@ -56,10 +56,9 @@
     /**
      * Validates an array
      *
-     * @param mixed            $value
-     * @param mixed            $schema
-     * @param JsonPointer|null $path
-     * @param mixed            $i
+     * @param mixed $value
+     * @param mixed $schema
+     * @param mixed $i
      */

@SignpostMarv I don't care that they are redundant; I don't want them removed. They will eventually have descriptions (when somebody has the time to finish cleaning up the docs), but in the meantime I still don't want php-cs-fixer removing parameters. Indentation isn't a problem; it seems to be complying with our existing scheme for them.
My main annoyance with this is php-cs-fixer is yet again changing its behavior without warning. That was the whole reason we pinned it in the first place, as in the past some of those changes included logical changes to the code, not just cleanup (i.e. it was making assumptions and changing things in a way that would have caused the validation logic to change and no longer comply properly with the spec). It might be changing "just comments" this time, but it's still making assumptions and changing stuff that it previously left alone - in this case, including the deletion of lines that are there deliberately.


No results when running reviewdog on push event in a GitHub action ?

Hi, thanks for the tool, I would like to run reviewdog when someone push on my project But I don't see any output. Here is and example:
When running on a PR it works fine:

When running on a push with local reporter it displays on STDOUT:

But when I switch to the github-check reporter I got nothing:

I'm using the last version of reviewdog.

I have the same issue:

Also using the latest version (tried with v0.20.1 and v0.20.2)
Does not happen when using on: pull_request
reviewdog failing when using on: push


bosh-agent compile generates broken compiled releases

From the feature introduced in #315
Reproduction Steps
$ ./bin/docker-run-bosh-agent compile --output-directory=/releases-output/ /releases-input/log-cache-release-3.0.7.tgz
...
Finished archiving compiled tarball /releases-output/log-cache-3.0.9-ubuntu-jammy-1.404.tgz

$ bosh upload-release Finished archiving compiled tarball /releases-output/log-cache-3.0.9-ubuntu-jammy-1.404.tgz
...
Task 53 | 14:44:34 | Resolving package dependencies: Resolving package dependencies (00:00:00)
Task 53 | 14:44:34 | Creating new packages: golang-1.20-linux/76dd5f414b535f1efbff10a6573aa715642cc617 (00:00:00)
Task 53 | 14:44:34 | Creating new packages: log-cache/2739aeb4d95738f405bdd62002824c94c991452c (00:00:00)
Task 53 | 14:44:34 | Creating new packages: log-cache-cf-auth-proxy/ed70e2b4a55a28ced0eeb0e7e30de43c0073bcdc (00:00:00)
Task 53 | 14:44:34 | Creating new packages: log-cache-gateway/dadf66c7f4a8a3c6b308b9cc4efd628a5ea40817 (00:00:00)
Task 53 | 14:44:34 | Creating new packages: log-cache-syslog-server/977f3373cd1a243f20c77c69d457bb94b77c3640 (00:00:00)
Task 53 | 14:44:34 | Error: Expected value to be in the format of "{os_name}/{stemcell_version}", but given "ubuntu-jammy-1.404"

$ tar -Oxf releases-output/log-cache-3.0.9-ubuntu-jammy-1.404.tgz ./release.MF | yq '.compiled_packages | map(.stemcell) | unique'
- ubuntu-jammy-1.404

Analysis
The problem appears to be in this apparently untested line of code.
This change seems to resolve the stemcell issue:
--- a/main/compile.go
+++ b/main/compile.go
@@ -5,7 +5,6 @@ import (
        "fmt"
        "log"
        "os"
-       "strings"

        "github.com/cloudfoundry/bosh-agent/app"
        "github.com/cloudfoundry/bosh-agent/releasetarball"
@@ -39,7 +38,7 @@ func compileTarball(command string, args []string) {
        if err != nil {
                log.Fatal(err)
        }
-       compiledReleaseFileSuffix := strings.Join([]string{stemcellOS, stemcellName, stemcellVersion}, "-")
+       compiledReleaseFileSuffix := fmt.Sprintf("%s-%s/%s", stemcellOS, stemcellName, stemcellVersion)
        for _, releaseTarballPath := range options.SourceReleases {
                compiledReleaseTarballPath, err := releasetarball.Compile(compiler, releaseTarballPath, dirProvider.BlobsDir(), options.OutputDirectory, compiledReleaseFileSuffix)
                if err != nil {

For future reference, the spike script had this string constructed correctly. https://github.com/pivotal/gleipnir/blob/f84aa4a0a46941381d1adcfa9d1db53593c73c7f/scripts/compile_release.sh#L166
I messed it up when I was translating it. I suspect I was just looking at the file name output and thought I'd pass it in the same way. Oops my bad.


App doesn't work with GPS disabled in Android <11 (Exposure Notifications System bug)

Avoid duplicates

[ ] Bug is not mentioned in the FAQ
[x] Bug is specific for Android only, for general issues / questions that apply to iOS and Android please raise them in the documentation repository
[ ] Bug is not already reported in another issue

It is described in the FAQ and was reported here https://github.com/corona-warn-app/cwa-wishlist/issues/160 but it is not solved
Technical details

Device name:
Android version:
App version: 2.21.1

Describe the bug
The app's contract tracing doesn't work if GPS if disabled if Android <11 is used.
According to info such as what can be found in the FAQ this is because of issues of the Exposure Notifications System / Android of Alphabet Inc / Google.
This needs to be solved somehow. Just because it's a current limitation of the Exposure Notifications System doesn't mean that the problem is solved. It's still there and should be solved.
There are many reasons for why you may not want to have your GPS turned on all the time. Not just the battery drain. For example, the Corona Warn App itself can respect users' privacy all it wants...but if it requires GPS to be switched on, all other apps that run in the background (or in the foreground) that have permissions to use GPS can then also make use of it (a clear privacy violation).
Steps to reproduce the issue

Run the latest version of the CWA on Android <11
Turn on Bluetooth (with GPS remaining off)

Expected behaviour
The app's contact tracing should work with GPS disabled.
Possible Fix
It may or may not be necessary to put pressure on Google or to implement code changes in other Android code or to at least create an issue in another repository (please link it here).
Please do not close this issue before it's actually solved (and it may be important to solve this for the future).
Additional context

Suggestion to add the https://github.com/corona-warn-app/cwa-app-android/labels/google label to this issue if this is valid.

@prototyperspective
In your title you write:

App doesn't work with GPS disabled in Android <11 (Exposure Notifications System bug)

It's not the whole app which is affected, only the Exposure Logging, and this depends on the Location setting being enabled for Android version 6 - 10 inclusive. Location is not necessarily the same as GPS. Depending on the device, it may be possible to disable GPS and enable the Location setting at the same time.
The FAQ https://www.coronawarn.app/en/faq/results/#android_location (or https://www.coronawarn.app/de/faq/results/#android_location for the German version) contains links to articles which explain about this.
This isn't a bug in the Corona-Warn-App and it is not even a restriction coming from the Google Play services implementation of the Exposure Notifications Service. It is a restriction of the Android operating system in Android 10 and earlier versions which requires Location to be enabled in order to have access to Bluetooth Low Energy (BLE). So, if anything, this issue could be considered an enhancement request against the Android operating system.
I doubt very much that Google would be able to change Android versions 10 and earlier due to compatibility constraints with device vendors and existing apps.

It's not the whole app which is affected, only the Exposure Logging,

Yes, that's why I wrote "The app's contract tracing" in the description. However this functionality is a main purpose of the app and initially was the only purpose for which the app was created so if it stops working, core functionality of the app is broken so basically one can say the app isn't working.

Depending on the device, it may be possible to disable GPS and enable the Location setting at the same time.

Most people running Android < 11 don't have this option or if they have aren't aware of it. It's interesting and relevant here but at the very least it's not the full solution.

It is a restriction of the Android operating system in Android 10 and earlier versions which requires Location to be enabled in order to have access to Bluetooth Low Energy (BLE). So, if anything, this issue could be considered an enhancement request against the Android operating system.

Thanks for elaborating, making this clearer. In this case the issue to close this bug in Android should be linked here. I would consider this CWA issue then as an issue dependent on (resolution of) an external issue. In terms of coding as long as it is fixed nothing can be done so it's different from other 'Open' apps...however devs can still help fix the external issue and the project could let people know why this issue exists and put a public spotlight onto it so Google devs or somebody else solves this. Android shouldn't require Location to be enabled in order to have access to Bluetooth Low Energy (BLE) and this seems like either intentional or a sloppy workaround on their part.

I doubt very much that Google would be able to change Android versions 10 and earlier due to compatibility constraints with device vendors and existing apps.

This would need to be clarified in external issue/s in the appropriate repo/s. If somebody knows of them, please link them here. At worst case, I'll create them. For example, they could include it in an upgrade or it may be vendor devs that would be most responsible or capable at this point to solve this or it could be solved in some other way that we haven't thought of so far.

The issue described here is not a CWA bug, it's the way that Android works. It cannot be changed by the Android Corona-Warn-App, so I suggest to close the issue, since the purpose of this repository is to track issues which are under the control of the app itself.

@prototyperspective As already mentioned by the community members, it is an Android thing.


Spacing changes, added templates.json

This fixes some spacing and string array structure issues with spells.json. Further, it adds a new file templates.json to a templates folder in the root directory.
Testing was done with a json validator.
Here's a fun image for your troubles

Thanks for spaces fix and the templates.json.
However I would strongly have them separated in two different issues: I have remarks on templates.json but none on the spaces fix.
My remarks about the templates.json are the following:

Why does it exist? What is the goal you expect from having that file? To me, it makes no sense having it now that most of the job is done, now that we're more likely to fine-tune the data rather than describing it. This looks like a template to add new stuff. We've kind of already proven that the data is complete. Not entirely structured, but everything is in there. So I don't get why this is useful. Maybe you have some explanation that I have not thought of, but at this point, I believe new data shouldn't be added to the SRD as data. As usual, I try to keep my point of view as open as possible, so please convince me it's useful.
Assuming you convinced me above, why is it only one file? I would rather have one file per type. That's easier than having to look in one unique file where everything is stored.
Why is the template inconsistent? I see that sometimes, the placeholder data is ${class.name}, sometimes it's 0 (such as in spell slots). I don't get why the placeholders simply exist. If you want to validate, why not use appropriate tools such as JSON Schema Validator (the first result when I googled for "how to validate a JSON structure"). To me this templates.json file looks like the wrong tool for the job. Plus, a tool such as a schema validator can sometimes be reversed to add new elements to the structure. Not always but often.

I would strongly suggest these questions are answered before we merge this PR. Also, I would much prefer the space fix to be in a separate PR.

@ogregoire many of these questions are answered in our discussion about this PR on the project's Discord server.
templates.json is designed to facilitate the addition of new content, including non-core materials, homebrew, and new SRD content, should there ever be any.
There could be a case made for providing seperate template files for each resource, I agree.
In some cases, such as url fields, values need to be interpolated into a specific format. This is why the implementation uses the JavaScript format string notation, which is both human and machine friendly. Numerical placeholder values are 0. This is so that it is clear that the required value is numeric, and harder than most other numbers to be confused with an actual value that should remain untouched.
These are all things discussed in the Discord server prior the the PR being opened. If you have any better ideas, I'm sure they'd be welcome.

If things are discussed elsewhere, it might be a good idea to summarize them in the PR when dropped here, and to provide a link to the full discussion.
Also it doesn't change the fact that PR should be atomic and that fixing text and spells shouldn't be done at the same place as providing an entire new feature. So splitting should still occur. So that one discussion doesn't block the other texts.

@ogregoire Does have a very good point in keeping these separate.


Component: Masthead L0 - Change the design specs to include the grouped custom typeahead results

User story

As a [user role below]:
developer on the DDS Squad

I need to:
have the Masthead L0 design specs

so that I can:
correctly change the Masthead L0 component

Additional Information

This work is in response to a KC Feature Request.  The details and corresponding decisions are documented in issue (#4845 )
Development issue / KC Feature Request  (#4845 )
Functional spec change issue (#4944 )
Visual Designs & Functional Design Specs Box folder link
link to the KC adopter meeting notes
Wonil will provide design input by EOD Friday, Jan 22.

Acceptance Criteria

[ ] A Sketch file is updated with the Masthead L0 design and specs
[ ] The design specs and pdf version are added to the Box folder included above

Task updates:

Confirmed with Wonil - This task will be for Andrée, designer on the Knowledge Center Team, to complete with my support.

I shared the Design Spec Kit and the Components contribution website page with her on Friday 01/22/2020. She asked to join the Design Office hour tomorrow for further discussion as the next step.

Note for additional resources to share with her:

Final design (see screenshot below) is provided by Wonil and the work file can be found here.

Masthead design spec file (masthead--L0--design-specs--v2.3.0) for her to add the Typeahead specing detail can be found here.

For the Design Spec file, things to be included are interactive states, responsive layouts, color tokens (do not use # or RGB color numbers), spacing tokens.

Task updates:

Confirmed with Wonil - This task will be for Andrée, designer on the Knowledge Center Team, to complete with my support.

I shared the Design Spec Kit and the Components contribution website page with her on Friday 01/22/2020. She asked to join the Design Office hour tomorrow for further discussion as the next step.

Note for additional resources to share with her:

Final design (see screenshot below) is provided by Wonil and the work file can be found here.

Masthead design spec file (masthead--L0--design-specs--v2.3.0) for her to add the Typeahead specing detail can be found here.

For the Design Spec file, things to be included are interactive states, responsive layouts, color tokens (do not use # or RGB color numbers), spacing tokens.

@RobertaJHahn Based on the Sprint Planning conversation, we will continue the work in the next sprint and need to update the milestone to be Sprint 20-03. Thank you.

@RobertaJHahn Based on the Sprint Planning conversation, we will continue the work in the next sprint and need to update the milestone to be Sprint 20-03. Thank you.

The latest spec file from Andree (KC Team) is attached and the work file can be found here.https://app.zenhub.com/files/193129061/5404db1d-d81a-4507-bfd1-80abf869bf43/download


Incorrect(?) type inferred for type parameter that is only used in an irrelevant union branch of a function parameter's type

Bug Report
🔎 Search Terms
type parameter inferred union branch
🕗 Version & Regression Information
TS >=4.4.4
⏯ Playground Link
Workbench link with relevant code
💻 Code
type Foo<Value> = {
  readonly type: 'Foo';
  readonly value: Value;
};

type Bar<Value> = {
  readonly type: 'Bar';
  readonly value: Value;
};

type FooBar<FooValue, BarValue> = Foo<FooValue> | Bar<BarValue>;

const getValue = <FooValue = never, BarValue = never>(fooBar: FooBar<FooValue, BarValue>): FooValue | BarValue =>
  fooBar.value;

// ---

getValue({ type: 'Foo', value: 42 } as Foo<number>);
// Actual instantiation: `<number, number>(fooBar: FooBar<number, number>) => number`
// Expected instantiation: `<number, never>(fooBar: FooBar<number, never>) => number`

getValue({ type: 'Bar', value: 'a string' } as Bar<string>);
// Actual instantiation: `<string, string>(fooBar: FooBar<string, string>) => string`
// Expected instantiation: `<never, string>(fooBar: FooBar<never, string>) => string`

🙁 Actual behavior

getValue({ type: 'Foo', value: 42 } as Foo<number>)

is instantiated as
<number, number>(fooBar: FooBar<number, number>) => number

getValue({ type: 'Bar', value: 'a string' } as Bar<string>)

is instantiated as
<string, string>(fooBar: FooBar<string, string>) => string

🙂 Expected behavior

getValue({ type: 'Foo', value: 42 } as Foo<number>)

should be instantiated as
<number, never>(fooBar: FooBar<number, never>) => number

because, given only a Foo<number>, there is no Bar<T> branch to infer from, so BarValue should fall back to its default of never

getValue({ type: 'Bar', value: 'a string' } as Bar<string>)

should be instantiated as
<never, string>(fooBar: FooBar<never, string>) => string

because, given only a Bar<string>, there is no Foo<T> branch to infer from, so FooValue should fall back to its default of never

📰 Remarks
This is some unexpected behaviour that I found a little while ago. I think it's a bug? But it's possible I'm just missing some intuition here. 😅
Strangely, if I change the definitions of Foo and Bar to use distinct names for their "value" fields, the calls are instantiated as I expected:
Workbench link with relevant code

When we're collecting inference candidates for BarValue in the first call, for example, the value properties line up, and a candidate is collected. The nonmatching discriminant doesn't factor into candidate collection; we don't check for those during that process.
I can't immediately construct an example of why we would need to, though? The instantiation is sound. If you can come up with examples of where we would need to check for a nonmatching discriminant, we can take this as a suggestion.

@RyanCavanaugh

When we're collecting inference candidates for BarValue in the first call, for example, the value properties line up, and a candidate is collected. The nonmatching discriminant doesn't factor into candidate collection; we don't check for those during that process.

Ahh, I see. Yeah that makes sense.

I can't immediately construct an example of why we would need to, though? The instantiation is sound. If you can come up with examples of where we would need to check for a nonmatching discriminant, we can take this as a suggestion.

If you add non-overlapping constraints to getValue's type parameters, FooValue and BarValue get instantiated with distinct types, and you ultimately end up with a problematic return-type:
type Foo<Value> = {
  readonly type: 'Foo';
  readonly value: Value;
};

type Bar<Value> = {
  readonly type: 'Bar';
  readonly value: Value;
};

type FooBar<FooValue, BarValue> = Foo<FooValue> | Bar<BarValue>;

const getValue = <FooValue extends number = never, BarValue extends string = never>(fooBar: FooBar<FooValue, BarValue>): FooValue | BarValue =>
  fooBar.value;

// ---

getValue({ type: 'Foo', value: 42 } as Foo<number>);
// Actual instantiation: `<number, string>(fooBar: FooBar<number, string>) => number | string`
// Expected instantiation: `<number, never>(fooBar: FooBar<number, never>) => number`

Workbench link with relevant code
Is that something like what you're looking for?

That's at least still sound, but yeah, unfortunate. I'm not sure how practical it would be to add discriminant checks here but it would be cool if it worked.

Turns out we tried this at #43853 and it was a performance nightmare (+43% to material-ui)


Build a NuGet Package for ConPTY

This pull request introduces a packaging phase that emits
Microsoft.Windows.Console.ConPTY, a nuget package that contains the
pseudoconsole API as well as the requisite copies of conhost.

winconpty learned to load a version of OpenConsole.exe specific to the
processor architecture on its hosting machine
the package, as well as its contents, is signed properly and is nearly
ready for distribution via nuget.org
the API in conpty-static.h has been adjusted to expose
CreatePseudoConsoleAsUser and stamp out the correct DLL import/export
annotations.
getting .NET to play right was somewhat challenging, but I tested this
against .NET 6.0 and it seemed to work properly; it shipped conpty.dll
in the right places, and it shipped OpenConsole.exe next to the
published application.

In the future, we could provide an interop assembly for C# consumers;
that is, unfortunately, out of scope today.
Closes #3577
Obsoletes #1130

Doing a "fully loaded" build here: https://microsoft.visualstudio.com/Dart/_build/results?buildId=48515923&view=results
We'll see if it pans out!

I was worried that the extra link step for OpenConsole.exe would introduce "torn symbols", where the version in the package could not be debugged because it didn't have a file hash that matched the PDB. I tested this, and the EXE file is identical. WinDbg did not complain about it at all, and loaded the right symbols.


Simplify emoji code

This pull requests contains the squashed changes from #894 (thanks
@bakonydraco!) and provides some simplifications so that we have a base set of
features to work with and can subsequently make additions or modifications as
necessary.

Awesome! So it sounds like the features that aren't there currently, but were in #894 that could be added in a future PR include:

A caching layer for emoji
The ability to retrieve site-wide emoji
The ability for endusers to access data from an emoji intuitively.

The first 2 are self-explanatory, but I think it would be very useful for a user to get the url or created_by , which you'd currently have to do: emoji._data['url'] to get.
The only actual bug here I see here is in fetch. Since emoji are case sensitive, this will cause issues when two emoji have the same case insensitive name. Leaving a comment on that line.

Personally, I don't think we need a caching layer. If someone actually has a use-case where the current solution is inefficient, we can talk about it then, but until such a time there's no need to over-optimize for it.

I'm not terribly concerned about the site-wide emoji unless there's reason to think they'll eventually add more. If needed we could hardcode them rather than try to fetch them dynamically.

Actually emoji.url does work. The attributes are lazily loaded (that's what the _fetch method does). And the behavior is now consistent with all other attributes.

Since emoji are case sensitive

Oops, I thought you previously mentioned they were not. Can you fix that? And can we add a unit test to ensure that case-sensitivity is maintained?

Good point on 1.
On 2., the sitewide emoji are fetched anyway with every API call to pull the subreddit emoji, so I figured might as well add that functionality in.
3. Oh wow that's cool! I didn't realize that about _fetch
Yeah that was my mistake, I simply misspoke and said case insensitive when I meant case sensitive. I'll submit a quick PR with a small change to emoji.py and the unit test.

I like what you're thinking there. There are a few other endpoints which I think we don't return all the data simply because from an information architecture point of view it doesn't make a ton of sense to. I'd like to wait on this to understand the use-case people might want to have for getting the site-wide emoji.

Looking forward to the update PR.


make Popper#update sync + make scheduleUpdate return promise

CodePen Demo
https://codepen.io/anon/pen/NwZQwK
What is the expected behavior?
In the CodePen, the popper should incorrectly be positioned if the update was sync. But because it's not, the last transform line is what Popper knows about, not the first one.
Any other comments?
The asynchronous popper.update() can cause some issues if the next line of code assumes the popper's position has been updated. The onUpdate() callback can't really be used depending on the code structure.
I've been able to remedy this for a while with setTimeout() defer calls (not sure if this is 100% reliable though), but it would be easier just to have a sync update method.
That, or update is sync while scheduleUpdate is async.
Is there a case where this wouldn't be appropriate?

I don't think Popper#update can become synchronous, it relies on DOM read/write that is by nature asynchronous.

Really? I thought that was sync behavior..
I thought it was because you debounce update():
    // make update() debounced, so that it only runs at most once-per-tick
    this.update = debounce(this.update.bind(this));

Good catch, still I'm not sure that's the only non-sync code we have 🤔

Well I got rid of the debounce() wrap and the async behavior disappears and becomes fully sync! So I don't think there is.

Wow cool, good to know.
I think we can plan this change in the next major version, along with a promise-based API for scheduleUpdate.

Unfortunately I came across a pretty huge issue. On Samsung Internet and UC Browser, for whatever reason the defer call doesn't work and the tooltip ends up transitioning from the top of the document each update because the popper update is async. I didn't know this was happening since I couldn't test on these browsers..
I've also tried doing this (and also wrapping it in requestAnimationFrame too):
function defer(fn) {
  if (window.Promise) {
    Promise.resolve().then(() => {
      setTimeout(fn)
    })
  } else {
    setTimeout(fn)
  }
}

// I call popper.update(), then run the show call wrapped in the defer function.

but the issue still occurs in those browsers. After removing the debounce wrap, the issue stops.
Would it be possible to make a temporary addition for v1, Popper#updateSync, while noting that it is a temporary method that will become update() in v2? I REALLY need sync behavior right now... unless you can suggest how to fix the defer call.

That looks like a browser bug, I'm not sure how am I supposed to avoid it..

It seems like using a timeout of 50-60ms fixes it... Not ideal, but eh.. Will have to detect those browser user agents I guess?

Probably we need to add them here:
https://github.com/FezVrasta/popper.js/blob/master/packages/popper/src/utils/debounce.js#L2
They don't support Promise right?

They do. https://caniuse.com/#feat=promises
Also, they need at least 50ms, 40ms doesn't work, so 1ms with your code wouldn't work?
Also I thought browsers enforced a minimum of 4ms anyway?

the setTimeout is used just to schedule the update to the next tick, most browsers will do it with 0, some need at least 1.
But if UC supports Promises then it's not using setTimeout at all

But if UC supports Promises then it's not using setTimeout at all

That's what I was thinking... maybe the code needs to be deferred after the "microtask"(?) finishes? I'm not actually sure what a microtask is, or how that piece of code works.

You can't do:
popper.update();
somethingAfter();

This is not how Popper.js works, you have to run the code in the onUpdate callback.

Yes, which is why deferring it appears to work for most browsers bar a few
I had the idea of modifying onUpdate() before the call, then setting it back to its original configuration. That's why a few months ago I suggested adding a callback which you can supply as the argument to .update() which runs after the update (overriding onUpdate()). Or the sync method as mentioned here.

Alright, so I was able to solve the issue without any timeouts, but it's somewhat hackish. This is what I mean.
const _onCreate = this.popperInstance.options.onCreate
const _onUpdate = this.popperInstance.options.onUpdate

this.popperInstance.options.onCreate = this.popperInstance.options.onUpdate = () => {
  this.popper.offsetHeight // we need to cause reflow... THIS was getting me hung up.
  callback()
  this.popperInstance.options.onUpdate = _onUpdate
  this.popperInstance.options.onCreate = _onCreate
}

As you can see, I want to run the callback (which sets the class to begin the transition) onUpdate()... but I have some default stuff that happens there specifically for the event listeners. So I need to save it as a reference then set it back once finished.
This is why:

I suggested supplying a callback to onUpdate/onCreate, to mitigate this.
Suggested sync behavior (which works, I just needed to cause document reflow, which was tripping me up.)

Hey @FezVrasta im writing a library that uses popper but I cannot assume that the environment my code runs in will support Promises. How do you feel about scheduleUpdate supporting both callbacks and Promises, similar to Vue's $nextTick. The code could look like:
function scheduleUpdate(cb) {
  requestAnimationFrame(() => this.debouncedUpdate(cb));
  if (!cb && typeof Promise !== 'undefined') {
    return new Promise(resolve => cb = resolve);
  }
}

Id be happy to submit a PR with this code and tests to along with it

I work on a project utilizing Material-UI's Tooltip. We have a table whose rows can contain 10-20 tooltips each. Once the total number of tooltips goes over ~100, render times become perceptibly slow — coming to a near halt once there are hundreds or thousands. Profiling revealed what appeared to be death by a thousand cuts originating with Popper.js — whenever react-popper's Tooltip got mounted, 1-5ms was spent positioning the tooltip. Along with React's housekeeping (which is more pronounced in dev, of course), this contributed to a ~15000ms render time.
I came across Wilson Page's Preventing layout thrashing while researching, and with a "fuck it, let's see what happens" attitude, I had a go introducing fastdom to popper.js. Mainly, runModifiers was made async (with Promises), and the preventOverflow modifier was updated to batch DOM reads and writes.
Before
The request ends around 4000ms, and completes rendering around 19000ms.
Frame duration: 15016ms

After
The request ends around 3700ms, and completes rendering around 8700ms.
Frame duration: 5041ms

I was gonna clean up the code and have a go at a PR. Then I saw the voluminous tests and realized it might be more effort than I'm willing to throw away if it's unwanted, or duplicated.
Is there any desire to make more things async, with the intention of batching DOM reads and writes, so's us nincompoops shoving thousands of Tooltips onto one screen can continue our buffoonery?

@theY4Kman have you tried deferring the creation of the popper instance until it's needed (when hovered over)?

Yeah, I tried out the new React context business, which made it really easy to "opt-in" to rendering the tooltips only after first hover. Scrolling through the table was pretty laggy. I suppose it could be debounced and made more manageable — guess I don't know till I try. Tuning around reflows for performance strikes me as ugly... but then, I'm half-man, half-ugly, so whose that conscience sticking on the sole of my shoe?

Maybe you have the event listeners enabled for every single tooltip even when they are hidden, which is performing DOM calcs on each scroll event. They should be enabled only when the tooltip is visible

Oh, I was unclear: I organized it so once a row was hovered over, all its 10-20 tooltips would be positioned. Scrolling itself wasn't inherently slow, but having the mouse over the rows while scrolling through was slow — at least the first time.  Either way, I'm giving it a go now. We'll see what happens.

Regardless, I'm gonna assume no one is working on async'ing it up. I don't presume anyone wants it, or that it has anyone's support — but I'll presume I'm not duplicating effort :P

Sorry for the delay @theY4Kman the work for the async API is on the v2 branch, since this would be a breaking change and can't be shipped in the current codebase.

Closing because it has been implemented in the next branch, we now have Popper#update which runs asynchronously and returns a promise, and Popper#forceUpdate which runs synchronously.


Magento2: use setup:upgrade --keep-generated

Q
A

Bug fix?
No

New feature?
No

BC breaks?
No

Deprecations?
No

Fixed tickets
N/A

http://devdocs.magento.com/guides/v2.2/config-guide/deployment/single-machine.html
Suggest to just update setup:upgrade. As noted here you can keep generated code, which saves time for deploying. This is essentially the same but with one command.

Ok, cool.


Sending errors in multiple calls

OpenSSL 1.1.1c-dev
I have an SSL object with a BIO pair in a server and a client application with deliberately different cipher suites set to make the handshake between them fail.
During the handshake a no shared cipher error occurs at the server as expected, which then must be sent to the client in a non-application alert record if I understand it correctly.
However, if the alert cannot be sent in a single call (in this case because of a ridiculously small write buffer set for the BIO pair), then no further calls (to SSL_do_handshake or others) are possible to send the remainder of the error.
I would be expecting an SSL_ERROR_WANT_WRITE until the entire record is out, and then set the error, or perhaps I'm missing something?

I would be expecting an SSL_ERROR_WANT_WRITE until the entire record is out, and then set the error, or perhaps I'm missing something?

We don't support that. Nor do I feel it is really needed. Alerts are so small that if we really fail to send them in one go then giving up seems like a reasonable thing to do.


personalized_eye_gaze.csv has not been generated

Hello Team Aria,
I recently attempted to generate the personalized eye gaze CSV file following the steps outlined on this page: https://facebookresearch.github.io/projectaria_tools/docs/ARK/mps/eye_gaze_calibration
Despite following the instructions, I encountered an issue where the expected file was not generated. Upon inspecting the summary.json file, I found only the following line:{"GazeInference": {"status": "SUCCESS", "message": ""}, "version": "3.0"} This differs from what is described on the documentation page.
Thank you for your patience.

Did your vrs file contain in-session calibration?
In order to be able to generate personalized eye gaze, the vrs file needs
to have calibration information.
https://facebookresearch.github.io/projectaria_tools/docs/ARK/mps/eye_gaze_calibration
Sent from Gmail Mobile
On Wed, Apr 17, 2024 at 6:06 PM HaoYu @.***> wrote:

Hello Team Aria,
I recently attempted to generate the personalized eye gaze CSV file
following the steps outlined on this page:
https://facebookresearch.github.io/projectaria_tools/docs/ARK/mps/eye_gaze_calibration
Despite following the instructions, I encountered an issue where the
expected file was not generated. Upon inspecting the summary.json file, I
found only the following line:{"GazeInference": {"status": "SUCCESS",
"message": ""}, "version": "3.0"} This differs from what is described on
the documentation page.
Thank you for your patience.
—
Reply to this email directly, view it on GitHub
https://github.com/facebookresearch/projectaria_tools/issues/79, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ACZ6FDZFZIVVQDNMB6JBSFDY5ZUEXAVCNFSM6AAAAABGLHL5ISVHI2DSMVQWIX3LMV43ASLTON2WKOZSGI2DQMJZGA2DENA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Hello Hao,
If you followed the instructions and there is no personalized eye gaze, it
usually means that the calibration data was not good or missing.
Can you please do a new recording and run aria_mps cli on it and then share
the log file with me?
This would help with next steps of debugging.
You can also reach out to us on Discord for a quicker turn around time.
On Thu, Apr 18, 2024 at 11:19 AM HaoYu @.***> wrote:

Hello vijay609,
Thanks for the immediate response.
Yes, I followed the tutorial on the same page that you provided.
On Wed, Apr 17, 2024 at 7:55 PM vijay609 @.***> wrote:

Did your vrs file contain in-session calibration?
In order to be able to generate personalized eye gaze, the vrs file
needs
to have calibration information.

https://facebookresearch.github.io/projectaria_tools/docs/ARK/mps/eye_gaze_calibration

Sent from Gmail Mobile
On Wed, Apr 17, 2024 at 6:06 PM HaoYu @.***> wrote:

Hello Team Aria,
I recently attempted to generate the personalized eye gaze CSV file
following the steps outlined on this page:

https://facebookresearch.github.io/projectaria_tools/docs/ARK/mps/eye_gaze_calibration

Despite following the instructions, I encountered an issue where the
expected file was not generated. Upon inspecting the summary.json
file,
I
found only the following line:{"GazeInference": {"status": "SUCCESS",
"message": ""}, "version": "3.0"} This differs from what is described
on
the documentation page.
Thank you for your patience.
—
Reply to this email directly, view it on GitHub
https://github.com/facebookresearch/projectaria_tools/issues/79, or
unsubscribe
<

https://github.com/notifications/unsubscribe-auth/ACZ6FDZFZIVVQDNMB6JBSFDY5ZUEXAVCNFSM6AAAAABGLHL5ISVHI2DSMVQWIX3LMV43ASLTON2WKOZSGI2DQMJZGA2DENA>

.
You are receiving this because you are subscribed to this
thread.Message
ID: @.***>

—
Reply to this email directly, view it on GitHub
<
https://github.com/facebookresearch/projectaria_tools/issues/79#issuecomment-2061890379>,

or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/BENXFFEG7EOR7L7VGCIN37TY52ZR3AVCNFSM6AAAAABGLHL5ISVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANRRHA4TAMZXHE>

.
You are receiving this because you authored the thread.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub
https://github.com/facebookresearch/projectaria_tools/issues/79#issuecomment-2064829497,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACZ6FD7MP6345OHVBJNUCNTY6AFEVAVCNFSM6AAAAABGLHL5ISVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANRUHAZDSNBZG4
.
You are receiving this because you commented.Message ID:
@.***>

Hello,
Thanks for the reply. The log is as follows.
I hope you have a nice weekend.
On Fri, Apr 19, 2024 at 11:53 AM vijay609 @.***> wrote:

Hello Hao,
If you followed the instructions and there is no personalized eye gaze, it
usually means that the calibration data was not good or missing.
Can you please do a new recording and run aria_mps cli on it and then
share
the log file with me?
This would help with next steps of debugging.
You can also reach out to us on Discord for a quicker turn around time.
On Thu, Apr 18, 2024 at 11:19 AM HaoYu @.***> wrote:

Hello vijay609,
Thanks for the immediate response.
Yes, I followed the tutorial on the same page that you provided.
On Wed, Apr 17, 2024 at 7:55 PM vijay609 @.***> wrote:

Did your vrs file contain in-session calibration?
In order to be able to generate personalized eye gaze, the vrs file
needs
to have calibration information.

https://facebookresearch.github.io/projectaria_tools/docs/ARK/mps/eye_gaze_calibration

Sent from Gmail Mobile
On Wed, Apr 17, 2024 at 6:06 PM HaoYu @.***> wrote:

Hello Team Aria,
I recently attempted to generate the personalized eye gaze CSV file
following the steps outlined on this page:

https://facebookresearch.github.io/projectaria_tools/docs/ARK/mps/eye_gaze_calibration

Despite following the instructions, I encountered an issue where the
expected file was not generated. Upon inspecting the summary.json
file,
I
found only the following line:{"GazeInference": {"status":
"SUCCESS",
"message": ""}, "version": "3.0"} This differs from what is
described
on
the documentation page.
Thank you for your patience.
—
Reply to this email directly, view it on GitHub
https://github.com/facebookresearch/projectaria_tools/issues/79,
or
unsubscribe
<

https://github.com/notifications/unsubscribe-auth/ACZ6FDZFZIVVQDNMB6JBSFDY5ZUEXAVCNFSM6AAAAABGLHL5ISVHI2DSMVQWIX3LMV43ASLTON2WKOZSGI2DQMJZGA2DENA>

.
You are receiving this because you are subscribed to this
thread.Message
ID: @.***>

—
Reply to this email directly, view it on GitHub
<

https://github.com/facebookresearch/projectaria_tools/issues/79#issuecomment-2061890379>,

or unsubscribe
<

https://github.com/notifications/unsubscribe-auth/BENXFFEG7EOR7L7VGCIN37TY52ZR3AVCNFSM6AAAAABGLHL5ISVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANRRHA4TAMZXHE>

.
You are receiving this because you authored the thread.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub
<
https://github.com/facebookresearch/projectaria_tools/issues/79#issuecomment-2064829497>,

or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/ACZ6FD7MP6345OHVBJNUCNTY6AFEVAVCNFSM6AAAAABGLHL5ISVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANRUHAZDSNBZG4>

.
You are receiving this because you commented.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub
https://github.com/facebookresearch/projectaria_tools/issues/79#issuecomment-2066230163,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BENXFFA4WCMQ4NRGSAMT4ETY6DSTJAVCNFSM6AAAAABGLHL5ISVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANRWGIZTAMJWGM
.
You are receiving this because you authored the thread.Message ID:
@.***>

@haoyulee95
I don't see the log file attached. Can you please upload it to google drive and share it here ?

@haoyulee95
Are you able to submit the request again?

Is the issue solved? I've also submitted yesterday a calibrated (following the tutorial) VRS but the output contains only the general eye gaze...


v3 incorrectly strips out GET params [?]

Example code, use Node 13.2+:
index.mjs
import express from "express";
import f from "node-fetch";
const fetch = f.default; // Native ESM

const app = express();
app.get("*", (req, res) => {
    console.log("srv", req.url)
    res.send("yo");
});
app.listen(5001);

(async () => {
    const res = await fetch("http://<IP_ADDRESS>:5001/api/getStuff?a=tra").then(r => r.text())
    console.log(res);
})().catch(e => {
    console.error(e);
});

With 3.0.0-beta.4 version of node-fetch you'll see just srv /api/getStuff in the console
With 2.6.0 you will see srv /api/getStuff?a=tra - as expected
So it looks like somehow GET query params gets stripped out.

Can't reproduce on Windows 10/Node v13.9.0 with your example code. Tried it a bit and then modified the script to run a couple thousand times. ->
(node:7816) ExperimentalWarning: The ESM module loader is experimental.
srv /api/getStuff?a=tra
yo

I have prepared a repository:
https://github.com/dzek69/node-fetch-bug-demo
Use yarn to keep the same versions as me.
Run yarn start to test on your local node version
Run yarn docker to run in docker with node 13.10.1
Run yarn docker:12 to run in docker with node 12
I have also built and published images on docker hub:
dzek69/node-fetch-bug:12 -- node-fetch v3 + node 12
dzek69/node-fetch-bug:13 -- node-fetch  + node 13
dzek69/node-fetch-bug:v2 -- node-fetch  + node 13 -- this works correctly, because it's v2 version
In every environment this behaves the same for me (that's why I've build docker images so you can see it too if this somehow runs correctly on your machine)
If I run docker images on my Linux machine it behave the same as when run from windows:
dzek@srv:~$ docker run dzek69/node-fetch-bug:12
Unable to find image 'dzek69/node-fetch-bug:12' locally
12: Pulling from dzek69/node-fetch-bug
c9b1b535fdd9: Pull complete
6ad7c27326e7: Pull complete
968d8b4948da: Pull complete
a1ec837a6331: Pull complete
f462b809bd5c: Pull complete
bc393c91984a: Pull complete
Digest: sha256:5fdeca44d4d8a8e75b8ea6e90625357be8e6e1992c332599cdea030784953c59
Status: Downloaded newer image for dzek69/node-fetch-bug:12
v12.16.1
yarn run v1.22.0
$ node index.js
server /api/getStuff INCORRECT URL
client this is the result
Done in 0.17s.
dzek@srv:~$ docker run dzek69/node-fetch-bug:13
Unable to find image 'dzek69/node-fetch-bug:13' locally
13: Pulling from dzek69/node-fetch-bug
c9b1b535fdd9: Already exists
8488f113df73: Pull complete
09953e135439: Pull complete
b1863e3df3d5: Pull complete
4225ec739664: Pull complete
7ed84526c057: Pull complete
Digest: sha256:0d0b8d45fdcd20e57c133efa10b1045d11907ce905b0789b0969a40ef563a22f
Status: Downloaded newer image for dzek69/node-fetch-bug:13
v13.10.1
yarn run v1.22.0
$ node index.js
server /api/getStuff INCORRECT URL
client this is the result
Done in 0.19s.
dzek@srv:~$ docker run dzek69/node-fetch-bug:v2
Unable to find image 'dzek69/node-fetch-bug:v2' locally
v2: Pulling from dzek69/node-fetch-bug
c9b1b535fdd9: Already exists
8488f113df73: Already exists
09953e135439: Already exists
b1863e3df3d5: Already exists
4225ec739664: Already exists
033c42270e9e: Pull complete
Digest: sha256:da39a56fd3c2b75673096795ad7fbfa7324db3f5b55ab69de0db105a70e7d2e5
Status: Downloaded newer image for dzek69/node-fetch-bug:v2
v13.10.1
yarn run v1.22.0
$ node index.js
server /api/getStuff?a=tra this is OK
client this is the result
Done in 0.18s.

Please take another look at it

node-fetch does not consider query strings
https://api.exchangeratesapi.io/latest?base=USD&symbols=EUR
will result to
https://api.exchangeratesapi.io/latest

Fixed by #759


New statuscolumn option modifies the cmdline popup

Nightly just merged the statuscolumn option, allowing users to customize the gutter and line number columns. I found that, at least with the settings I'm currently using for the statuscolumn, the cmp-cmdline popup window is modified and, in this particular case, runs off the right of the popup.
In the below GIF, I use the cmdline popup before the statuscolumn option is set and then after. Before, you can see proper functioning but, after, line numbers appear, the type of the item in the list runs off the edge, etc. It appears to adopt whatever settings are given for statuscolumn.

Update your nvim - it has been fixed upstream.

@gegoune Thanks. I'll update my neovim in my local environment.

Update your nvim - it has been fixed upstream.

Thank you, I wasn't aware and appreciate the correction!


[FEATURE REQUEST] wget backend instead of curl

How do I force Homebrew to use wget instead of curl?
My network connection is unstable (though rather fast, I can download 2-3 megabytes per second with a download manager), and curl gets stuck a LOT in the middle of a download and I have to cancel the command manually and rerun it. Sometimes curl cancels it itself with errors like curl: (56) Unexpected EOF.

This is not possible and we're not interested in having it implemented, sorry. Please always fill out the feature request template in future.


How ramsey/uuid be unique world wide

hi i used ramsey/uuid in my laravel project. i want to get a unique id for non registered member to track their activities. but uuid1() and uuid4() generates random id for same member with same pc. on the other side  uuid3() and uuid5() generate same id of my different testing pc. have any idea can make the unique identifier machine  based for each end user. thanks

There are four types of UUIDs supported by ramsey/uuid:

Version 1 is not random. It is based on time. However, it should be unique world-wide, but each time you generate it, you're going to get a new value.
Versions 3 and 5 are not random, nor do they generate unique values. They are based on a namespace and will give you the same UUID each time for the same namespace and value. Version 3 uses MD5 to create a hash and version 5 uses SHA1.
Version 4 is random and unique world-wide. Each time you generate one, you get a new random and unique value.

It sounds like you want each user to have the same UUID generated for them, based on their machine? I'm not sure exactly how you'd do this with full certainty, but you could generate a UUID, store that value in your database, and then set the UUID as a cookie in the user's browser. This is pretty much the same as using session cookies.
You could also generate a random UUID and call it your namespace, and then use the user's IP address to generate a version 5 UUID for them. If they visit from the same IP address each time, then you know it's the same user (unfortunately, offices and homes share the same IP address across multiple users, so this isn't exactly ideal).
It would look something like this:
define('MY_APP_NAMESPACE', '17ed68de-cf8f-450f-b28c-aa533fddaeee');
$userUuid = \Ramsey\Uuid\Uuid::uuid5(MY_APP_NAMESPACE, $_SERVER['REMOTE_ADDR']);

Does this help?

With regard to the choice of UUID for namespace, the common choice is often a version 1 UUID where the UUID library was able to correctly determine the systems ethernet address. An alternative to that and the method I personally prefer is to use a version 5 UUID with the DNS namespace and a DNS host name under a domain name I own, that represents the custom namespace.

you can check here http://dev.shopavision.com/uid
and is my test data
ramsey uuid1: 3ac490ba-8181-11e8-97f5-002590e0bbe0
ramsey uuid3: 45a113ac-c7f2-30b0-90a5-a399ab912716
ramsey uuid4: 3933b0f7-cebc-4709-9416-c34c4ef8871b
ramsey uuid5: 26f68e65-670a-5cbb-bb36-77eb2297aa2f
every reload uuid1 and uuid4 returns same,
@ramsey actually i want an id like, when i visit my site first time it will generate an id for me and this id will be always same for me when i back next time again. like a registered member.  it will be fixed unique for me, different id for other. it be always same until i not use different pc.
``
define('MY_APP_NAMESPACE', '17ed68de-cf8f-450f-b28c-aa533fddaeee');
        // Generate a version 1 (time-based) UUID object
        $uuid1 = Uuid::uuid1();
        echo 'ramsey uuid1: '.$uuid1->toString() . "
"; // i.e. e4eaaaf2-d142-11e1-b3e4-080027620cdd

        // Generate a version 3 (name-based and hashed with MD5) UUID object
        $uuid3 = Uuid::uuid3(MY_APP_NAMESPACE, $_SERVER['REMOTE_ADDR']);
        echo 'ramsey uuid3: '.$uuid3->toString() . "
"; // i.e. 11a38b9a-b3da-360f-9353-a5a725514269
    ```

        // Generate a version 4 (random) UUID object
        $uuid4 = Uuid::uuid4();
        echo 'ramsey uuid4: '.$uuid4->toString() . "
"; // i.e. 25769c6c-d34d-4bfe-ba98-e0ee856f3e7a

        // Generate a version 5 (name-based and hashed with SHA1) UUID object
        $uuid5 = Uuid::uuid5(MY_APP_NAMESPACE, $_SERVER['REMOTE_ADDR']);
        echo 'ramsey uuid5: '.$uuid5->toString() . "
"; // i.e. c4a760a8-dbcf-5254-a0d9-6a4474bd1b62

`

actually i want an id like, when i visit my site first time it will generate an id for me and this id will be always same for me when i back next time again. like a registered member. it will be fixed unique for me, different id for other.

You should probably use a cookie for functionality like this.

Maybe you're looking in the wrong direction? If you would ask me, I would advise you to look at an Javascript package that generates an unique browser fingerprint based on different browser properties. I hope this bring you some step further in your goals/needs.

https://browserleaks.com
https://github.com/Valve/fingerprintjs2/blob/master/README.md


Is there a link for the latest stable build for the CLI client?

We use this fantastic tool in our pipelines and would like to avoid having to update the link every time there is a new release.
We current download from:
https://dl.bintray.com/jeremy-long/owasp/dependency-check-5.3.1-release.zip
And I was hoping to get the URL as something like:
https://dl.bintray.com/jeremy-long/owasp/dependency-check-LATESTSTABLE.zip
Is there such a thing already available?

The way most people do this is to call something like:
current=`curl https://jeremylong.github.io/DependencyCheck/current.txt` \
&& curl -O https://dl.bintray.com/jeremy-long/owasp/dependency-check-$current-release.zip

I suppose we should document that somewhere...


Reduce logging noise

I just demoted the log level to DEBUG1, which seems like the correct level anyways...

👍🏿


[Bug] Autoscaler doesn't support TLS

Why are these changes needed?
This PR adds the ability to mount volumes in AutoscalerOptions to enable TLS in Autoscaler.  At the moment, if you enable TLS and the autoscaler, the autoscaler is unable to connect to the Ray head because the certificates doesn't exist and there was no way to mount volumes where the certs reside like what you can do in the other containers for example
This PR adds the ability to mount volumes in the AutoscalerOptions so we can mount the TLS volumes.
Related issue number
No github issue but here's the Slack chat for more context - https://ray-distributed.slack.com/archives/C02GFQ82JPM/p1684511397156609
Checks

[x] I've made sure the tests are passing.
Testing Strategy

[x] Unit tests
[x] Manual tests
[ ] This PR is not tested :(

Thank you for your contribution! Would you be able to provide a sample YAML file in this directory? Additionally, I have added you to the Slack channel for KubeRay contributors, #kuberay-discuss. We have a bi-weekly community sync meeting, and you are welcome to join.

@kevin85421 - Thank you!  I've added the sample YAML file now.  Also, looks like 1 check is failing due to the same issue on this PR https://github.com/ray-project/kuberay/pull/1096

I will draft a follow-up PR to address my comments (https://github.com/ray-project/kuberay/pull/1119#discussion_r1208664681, https://github.com/ray-project/kuberay/pull/1119#discussion_r1208675769). Merge this PR.


Crash when changing wifi hotspot using "Wi-Fi Settings"

The steps are,

I installed taiHEN, restarted the Vita
Turn it on, initiate taiHEN.
Launch "Setting"
Press on "Wi-Fi Settings", and it crashed.

Can't recreate the problem now.

Did the settings app crash or the entire vita?

The entire Vita.
Need to long press power button to restart

I wonder if this is similar to something I've experienced without henkaku. Sometimes wifi settings freeze but it's not a crash if you wait like half a minute it resumes.

I believe this is resolved with https://github.com/henkaku/henkaku/issues/32


Add support for Python 3.11.6

Release announcement:
https://blog.python.org/2023/10/python-3116-is-now-available.html
https://www.python.org/downloads/release/python-3116/
https://docs.python.org/release/3.11.6/whatsnew/changelog.html#python-3-11-6
Binary builds:
https://github.com/heroku/heroku-buildpack-python/actions/runs/6383755199
GUS-W-12345424.

Updated versions on:
https://devcenter.heroku.com/articles/python-support#specifying-a-python-version
https://devcenter.heroku.com/articles/python-runtimes#selecting-a-runtime
Published on changelog:
https://devcenter.heroku.com/changelog-items/2696


API Gateways timeout errors with Ocelot

Expected Behavior / New Feature
We are using OCELOT gateway in .NetCore 3.1. When there are many requests going throw gateway we are getting the below timeout errors. We have already increased timeout in QOS options but it is getting failed even after 50 milliseconds where as micro service is returning the response but gateway not waiting and getting timeout.
"HttpHandlerOptions":
{
"AllowAutoRedirect": true,
"UseCookieContainer": true,
"UseTracing": true,
"MaxConnectionsPerServer": 5000
},
"QoSOptions": {
"ExceptionsAllowedBeforeBreaking":99999,
"DurationOfBreak":10000,
"TimeoutValue":600000
}
Steps to Reproduce the Problem
Category: Ocelot.Responder.Middleware.ResponderMiddleware
EventId: 0
RequestId: 80000b57-0005-ef00-b63f-84710c7967bb
RequestPath: /gw/api/test/GetInformation
SpanId: |7fde51f5-4f4d84f09af1eb1c.
TraceId: 7fde51f5-4f4d84f09af1eb1c
ParentId:
requestId: 80000b57-0005-ef00-b63f-84710c7967bb, previousRequestId: no previous request id, message: Error Code: RequestTimedOutError Message: Timeout making http request, exception: System.Threading.Tasks.TaskCanceledException: The operation was canceled.
---> System.IO.IOException: Unable to read data from the transport connection: The I/O operation has been aborted because of either a thread exit or an application request..
---> System.Net.Sockets.SocketException (995): The I/O operation has been aborted because of either a thread exit or an application request.
--- End of inner exception stack trace ---
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.GetResult(Int16 token)
at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithNtConnectionAuthAsync(HttpConnection connection, HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.DiagnosticsHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at Polly.Timeout.AsyncTimeoutEngine.ImplementationAsync[TResult](Func3 action, Context context, CancellationToken cancellationToken, Func2 timeoutProvider, TimeoutStrategy timeoutStrategy, Func5 onTimeoutAsync, Boolean continueOnCapturedContext)    at Polly.Timeout.AsyncTimeoutEngine.ImplementationAsync[TResult](Func3 action, Context context, CancellationToken cancellationToken, Func2 timeoutProvider, TimeoutStrategy timeoutStrategy, Func5 onTimeoutAsync, Boolean continueOnCapturedContext)
at Polly.AsyncPolicy.ExecuteAsync[TResult](Func3 action, Context context, CancellationToken cancellationToken, Boolean continueOnCapturedContext)    at Polly.Wrap.AsyncPolicyWrapEngine.<>c__DisplayClass3_01.<b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at Polly.CircuitBreaker.AsyncCircuitBreakerPolicy.<>c__DisplayClass8_01.<<ImplementationAsync>b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown ---    at Polly.CircuitBreaker.AsyncCircuitBreakerEngine.ImplementationAsync[TResult](Func3 action, Context context, CancellationToken cancellationToken, Boolean continueOnCapturedContext, ExceptionPredicates shouldHandleExceptionPredicates, ResultPredicates1 shouldHandleResultPredicates, ICircuitController1 breakerController)
at Polly.CircuitBreaker.AsyncCircuitBreakerPolicy.ImplementationAsync[TResult](Func3 action, Context context, CancellationToken cancellationToken, Boolean continueOnCapturedContext)    at Polly.AsyncPolicy.ExecuteAsync[TResult](Func3 action, Context context, CancellationToken cancellationToken, Boolean continueOnCapturedContext)
at Polly.Wrap.AsyncPolicyWrapEngine.ImplementationAsync[TResult](Func3 func, Context context, CancellationToken cancellationToken, Boolean continueOnCapturedContext, IAsyncPolicy outerPolicy, IAsyncPolicy innerPolicy)    at Polly.AsyncPolicy.ExecuteAsync[TResult](Func3 action, Context context, CancellationToken cancellationToken, Boolean continueOnCapturedContext)
at Ocelot.Provider.Polly.PollyCircuitBreakingDelegatingHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.FinishSendAsyncBuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
at Ocelot.Requester.HttpClientHttpRequester.GetResponse(DownstreamContext context) errors found in ResponderMiddleware. Setting error response for request path:/api/test/GetInformation, request method: POST
Category: Ocelot.Requester.Middleware.HttpRequesterMiddleware
EventId: 0
RequestId: 80000b57-0005-ef00-b63f-84710c7967bb
RequestPath: /gw/api/test/GetInformation
SpanId: |7fde51f5-4f4d84f09af1eb1c.
TraceId: 7fde51f5-4f4d84f09af1eb1c
ParentId:
requestId: 80000b57-0005-ef00-b63f-84710c7967bb, previousRequestId: no previous request id, message: Timeout making http request, exception: System.Threading.Tasks.TaskCanceledException: The operation was canceled.
---> System.IO.IOException: Unable to read data from the transport connection: The I/O operation has been aborted because of either a thread exit or an application request..
---> System.Net.Sockets.SocketException (995): The I/O operation has been aborted because of either a thread exit or an application request.
--- End of inner exception stack trace ---
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.GetResult(Int16 token)
at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithNtConnectionAuthAsync(HttpConnection connection, HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.DiagnosticsHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at Polly.Timeout.AsyncTimeoutEngine.ImplementationAsync[TResult](Func3 action, Context context, CancellationToken cancellationToken, Func2 timeoutProvider, TimeoutStrategy timeoutStrategy, Func5 onTimeoutAsync, Boolean continueOnCapturedContext)    at Polly.Timeout.AsyncTimeoutEngine.ImplementationAsync[TResult](Func3 action, Context context, CancellationToken cancellationToken, Func2 timeoutProvider, TimeoutStrategy timeoutStrategy, Func5 onTimeoutAsync, Boolean continueOnCapturedContext)
at Polly.AsyncPolicy.ExecuteAsync[TResult](Func3 action, Context context, CancellationToken cancellationToken, Boolean continueOnCapturedContext)    at Polly.Wrap.AsyncPolicyWrapEngine.<>c__DisplayClass3_01.<b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at Polly.CircuitBreaker.AsyncCircuitBreakerPolicy.<>c__DisplayClass8_01.<<ImplementationAsync>b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown ---    at Polly.CircuitBreaker.AsyncCircuitBreakerEngine.ImplementationAsync[TResult](Func3 action, Context context, CancellationToken cancellationToken, Boolean continueOnCapturedContext, ExceptionPredicates shouldHandleExceptionPredicates, ResultPredicates1 shouldHandleResultPredicates, ICircuitController1 breakerController)
at Polly.CircuitBreaker.AsyncCircuitBreakerPolicy.ImplementationAsync[TResult](Func3 action, Context context, CancellationToken cancellationToken, Boolean continueOnCapturedContext)    at Polly.AsyncPolicy.ExecuteAsync[TResult](Func3 action, Context context, CancellationToken cancellationToken, Boolean continueOnCapturedContext)
at Polly.Wrap.AsyncPolicyWrapEngine.ImplementationAsync[TResult](Func3 func, Context context, CancellationToken cancellationToken, Boolean continueOnCapturedContext, IAsyncPolicy outerPolicy, IAsyncPolicy innerPolicy)    at Polly.AsyncPolicy.ExecuteAsync[TResult](Func3 action, Context context, CancellationToken cancellationToken, Boolean continueOnCapturedContext)
at Ocelot.Provider.Polly.PollyCircuitBreakingDelegatingHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.FinishSendAsyncBuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
at Ocelot.Requester.HttpClientHttpRequester.GetResponse(DownstreamContext context)
Specifications

Version: .NETCoreApp 3.1
Platform:
Subsystem:

Hi @maruthi18081983 ,
I've done load testing, when I set timeout in Ocelot.Json  to 5000ms, my error rate stays 0% cause average response time comes to 1213ms, with total 9243 requests sent in 5 minutes(Considering ramp of 2 minutes).
Which is approx 2.6 Million request per day, if its the case.. Ocelot is able to handle it.
When you say you get many requests, can you suggest rough Idea about how much, what is response time you get from hitting downstream API?

Following is observation when I reduced  timeout in Ocelot.Json  to 500ms, my error reached to 7.63% and which is expected cause response increases and QoS is working fine in this case.

@raman-m For me QoS is working as expected we just need to hear from @maruthi18081983 what he is doing, is he using any loadbalancer too (cause he claim he is getting many requests)?

Tanmay, I'm sorry, but author's repos are empty 👎
You talk to ghost... 👻  There is no sense to talk to ghosts... 🤣

@ks1990cn commented on Nov 26

Thank you for this research!
Unfortunately I cannot view your pictures! Cannot open them when clicking!... Could you re-upload them once again plz?

@raman-m For me QoS is working as expected we just need to hear from @maruthi18081983 what he is doing, is he using any loadbalancer too (cause he claim he is getting many requests)?

He is doing that: Websockets (ws or wss scheme) with Follow Redirects aka HttpHandlerOptions
Look at the routing JSON:
The author tried QoS vs HttpHandlerOptions !!
Moreover, look at exception logs:
   at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
   at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.GetResult(Int16 token)
   at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken)

It seems the downstream services are Websocket ones! 🤣
Isn't it idiotic to try QoS + Websockets + HttpHandlerOptions ? 👶  🤣

@ks1990cn  Your load testing is awesome! We want more! 😉

"ExceptionsAllowedBeforeBreaking":99999,

Why not to assign 1 billion value? 🤣

Your pics have JWT token in links! Sometimes I can open them, sometimes they are broken...
Could you re-upload them?
Did you save these pics?

Pic1

Pic2


Issue connecting to node running on localhost

When running 2 nodes on same computer, they don't connect one to another. First node has remote peers, while second has only first node as peer.
When following query is ran on graphql interface:
query MyQuery {
  syncStatus
}

First node gets to BOOTSTRAP and later to SYNCED, while second node is stuck at LISTENING
Steps to reproduce:
In one terminal run:
export OPENMINA_DISCOVERY_FILTER_ADDR=false
cargo run --bin openmina -- node -s 5KgwoC4tGKNE4G3XP6JDYXKPSMyzjyEfKxdACsnqwTXBaSD75y4

In second terminal run:
export OPENMINA_DISCOVERY_FILTER_ADDR=false
cargo run --bin openmina -- node -P /ip4/<IP_ADDRESS>/tcp/8302/p2p/12D3KooWJDihKQfdBUgbRQpMUyUj7avdaJUqin1hJGGQKE8oGF72 --libp2p-port 4001 -p 4903

This same issue also happens when node is ran on another computer on local network.

@akoptelov @vlad9486 Could you take a look?

@0xMimir thanks for posting this issue.
I can see following problems:

Connection to the Rust node. The second node constantly disconnects from the first one with the reason transition frontier RPC timeout. Looks like we don't handle that properly.
Peers disovery. With the current implementation, a peer can have only one IP address, while Kademlia provides multiple addresses. The OPENMINA_DISCOVERY_FILTER_ADDR is rather a workaround for this issue, as when connecting to a public network we want to filter out local addresses, while in testing we should use localhost ones. In other words, with that variable set to true the node will inaccessible addresses for peers outside of the local network. Also I can see some errors regarding Kademlia in the log. The test suite for Kademlia currently is under construction.

@binier FYI


chore: updating ingestion-api domain for prod

Only the uptimerc.yml  needs adjustment, rest is auto-generated historical data.

Only the uptimerc.yml needs adjustment, rest is auto-generated historical data.

interesting - I only updated uptimerc.yml and the rest added automatically to my PR, so will have to play around with this a bit


import working in dev but not production

Hey there, I'm pretty new to wasm, and I don't know if this is an issue with vite-plugin-wasm or something to do with my setup, but this problem has been driving me crazy. In dev mode everything works perfectly fine, here is my vite.config.js:
import wasm from 'vite-plugin-wasm';
import topLevelAwait from 'vite-plugin-top-level-await';

export default {
    base: "/Halationify/",
    plugins: [
        wasm(),
        topLevelAwait()
    ],
    worker: {
        rollupOptions: {
            output: {
                format: "iife",
                inlineDynamicImports: true,
            }
        },
        plugins: () => {
            return [wasm(), topLevelAwait()]
        }
    },
};

I am using vite and runnning @silvia-odwyer/photon in a webworker to do some image processing. I simply import with const photon = await import('@silvia-odwyer/photon'); in the webworker.
Unfortunately, when building for production the import doesn't seem to work correctly and photon is undefined when the webworker executes, I think the wasm library isn't being bundled correctly. My project can be found here and the webworker where photon is imported can be found here. Thank you for making this plugin, and I hope somebody has a solution.

Me either .


Request to delete pull request #216

Hello,
I'm so sorry, just created pull request by accident trying to do the same in my fork of this project.
I'm really sorry about that. Would you be so kind and delete the pull request please?
Thank you very much in advance :)

np! Done.


HTTPCache: Added compatiblity for JSP includes, although this only su…

Same as master branch request.

I think this is dependent upon #1010. Copying from an InputStream to a Writer without a character set is not a good idea (the copy method used has been deprecated in Commons IO 2.5)

Should I do it then like :
IOUtils.copy(cacheContent.getInputDataStream(), response.getWriter(), response.getCharacterEncoding());
?

IOUtils.copy(cacheContent.getInputDataStream(), response.getWriter(), response.getCharacterEncoding());

Possibly, although I thought there was a larger issue discussed in #1010 where the character set of the cached data wasn't being stored.

Alright I adjusted it for now.

merged with some formatting changes.
@Sc0rpic0m do you need a 6.0 compatible release for this? I'm hoping to release 3.13.0 soon with the change you submitted in #1191

If the new release of 6.0 in the distant future would include this, it would be good for my current client so they can continue upgrading, but for now I have a custom version installed which includes this fix. Cheers!

@Sc0rpic0m thanks. this will be in the next 2.x version, but if you don't need one right now, I'm going to focus on releasing the 3.13.0 version.