Integration Testing for ConfigResources

Problem Description

Fixes #235.
Solution
Implements integration testing against OpenTSDB.
how you tested the change
Integration tests included.
Where the following done:

[ ] Tests. Check all that apply:

[ ] Unit tests created or modified that run during ant test.
[x] Integration tests created or modified that run during integration testing
(Formerly called regression tests.)
[ ] Test procedure descriptions for manual testing

[ ] Was relevant documentation updated?
[x] Were relevant config element (e.g. XML data) updated as appropriate

If you aren't sure leave unchecked and we will help guide you to want needs changing where.

The current implementation of readConfig returns an empty DTO, which is under investigation


Define SaaSi services and respective APIs

operator
exporter, 2 containers:
crane (export of apps)
infra-exporter
deployer (infra + apps)
console/dashboard
Define shared resource storage using Vault
Define encrypted resource storage using Vault

CR examples published here
Miroboard diagram here


Polling configuration does not persist

I am trying to poll an older node.  I setup polling as described here: https://zwave-js.github.io/zwave-js-ui/#/device-support/polling
I select the device and the value.  I toggle the poll option and set 30 seconds in the poll interval.  I click save and it shows in the list.  However, if I navigate away from the settings page and go back, the polling configuration is now gone and my node is never polled.  There is nothing in the zwave log I can find about the config not saving or any other error.
RPi0W
zwave-js-ui container v9.6.2
6ft USB extension cable to Aeotec Gen5 (ZW090 from ~2018) which is running v1.2 firmware
My docker run command:
docker create --name=zwavejsui --restart always --device=/dev/serial/by-id/usb-0658_0200-if00:/dev/zwave -v ~/Docker/zwavejsui/config:/usr/src/app/store -v /etc/localtime:/etc/localtime:ro -e TZ=America/Chicago -p 8091:8091 -p 3000:3000 zwavejs/zwave-js-ui:9.6.2

I have confirmed permissions on the mapped volume/folder as all other files are read/created just fine.

It would appear I never clicked on "Save" on the bottom of the page.  After clicking on save, the polling configuration persists.


Unable to cast object of type on netcore

Hello.
We have been transferring our projects to netcore 3.1 and netstandard 2.0 and now we are experiencing an issue with generating MessagePackSerializer for our messages. We are receiving such exception:
Unable to cast object of type 'MsgPack.Serialization.EmittingSerializers.Generated.Parent_ParentClassSerializer3' to type 'MsgPack.Serialization.MessagePackSerializer1[Parent.ParentClass]'.`
We are loading libraries in runtime. We have two libs with messages. One lib has enum and message which uses this enum, and the second lib has only one message which uses enum from first. If serializers for the types in the second library is created first, then serializers for types in the first library can't be created and we are receiving the exception. All libs with messages and lib that performing serialization using netstandard2.0 and only lib with entry point using netcore3.1.

Bug disappears if we change loading order (lib with enum load first) or use net472 for the entry point library.
MsgPackExceptionExample.zip

tried netcore2.0 - same bug


css file keeps recreating itself back to default whenever i run npm start

hi i am new to coding so this might not be a bug, but for some reason whenever i make changes to the css file and run npm start it deletes my changes and goes back to the default css template. any help with this would be very much so appreciated!
thank you!

it was because i was editing the css file instead of the scss file


Documentation on Grid section needs to be corrected

[ ] bug
[ ] feature request
[x ] enhancement

Expected behavior
Documentation on Grid has a small change, like in Horizontal Alignment in Rows, Space Around has an example with clr-justify-content-between and Space Between has an example with clr-justify-content-around.
Environment details

Angular version: 6

Clarity version: 0.12

OS and version: windows 10

https://vmware.github.io/clarity/documentation/v0.12/grid

Closed via #2507


Add ability to see email in browser after it is generated

After thinking about this more, I don't think that it is a good idea. One can always check their email.


Add test webapp module for quickstart

Create a /tests/test-war-quickstart that tests the quickstart facility of jetty.
The sample project should be sufficiently complex.   Perhaps either the spring petclinic, or the cdi/weld petclinic.

Since the existing spring petclinic is broken (due to Dandelion bug) we'll have to build our own spring petclinic.
We could include a known slow (to scan) jar file org.webjars:extjs:5.1.0.jar to be sure that the quickstart actually works.
I think we'll have to dig into the logs to test if this startup was truly "quick" or not.

Issue #33 is also a spring petclinic testcase (non-quickstart version)

I think this is only useful to test if the gcloud sdk offers quickstart as an option during the deploy step. Is this the case @meltsufin or @aslo ?

As quickstart support is not directly supported by the SDK, let's close this one for now.


Unexpected behavior with unions of string literals (enums)

When you define a union type of string literals like this
type A = 'a1' | 'a2' ;
assignment is checked as expected in an enum:
let a: A;
// ok
a = 'a1';
// ok
a = 'a2';
// error as expected
a = 'a3';

But when ckecking for values that are not in the enum, there is no error:
switch (a) {
    case 'a1': console.log('a1'); break;
    case 'a2': console.log('a2'); break;
    case 'a3': console.log('why is this legal code???'); break;
    default: console.log('and why this?');
}

Other type systems supporting enums would forbid this and also would report an error if I did not have case for each literal in the enum.
flow accepts both cases. Any explanation why this is so?

The technical reason is that the first case is unsound—i.e., could cause a runtime error later since we're breaking an assumption about what a contains. The latter will never cause a runtime error, so technically it's perfectly acceptable.
However, it's definitely dead code and we should error on this code. There are a number of open issues about this and closely related behaviors. Future versions of Flow will likely have this behavior, either directly or through an integration with a linter.
Thanks for opening the issue. Going to file under documentation because it'll be a lot easier for me to point someone to a prewritten explanation next time this comes up :)

I agree that this is not technically an error, but most likely a programming mistake. A classic would be to forget one option of an enum (which might have been added later) or misspelling one option.
Would there be any drawback or general objection to implement this behavior or did it just not happen, yet?

No objection. Like I said, future versions of Flow will likely have this behavior.

I think OCaml has a pretty reasonable way of handling this case. Just tried this out
type action = Make | Delete;;

let reduce = function
  | Make -> 1
(*  | Delete -> 2 *)
  ;;

and not matching all constants of that type leads to this warning
Warning 8: this pattern-matching is not exhaustive.
Here is an example of a value that is not matched:
Delete

You could enforce type constraints at the case level to induce the desired error:
switch (a) {
    case ('a1': A):  // OK
       console.log('a1');
       break;

    case ('a2': A): // OK
       console.log('a2');
       break;

    case ('a3': A): // Flow error - incompatible type
       console.log('why is this legal code???');
       break;

    default: // OK - harmless
       console.log('and why this?');
       break;
}

Thanks for the hint @greghe! Seems weird, to state the type (A) again, right? Additionally, this will not help if you only check for 'a1', forgetting about option 'a2'. But still helpful!

A classic would be to forget one option of an enum (which might have been added later) or misspelling one option.

I couldn't find a separate issue for this, but I just wanted to pile on and say that this would be very nice to have. (Should I file a separate issue for this?)

Just to clarify, this is about having a similar error to what typescript provides?
declare var u: "a" | "b";
if (u === "c") {}
// error TS2365: Operator '===' cannot be applied to types '"a" | "b"' and '"c"'.

This would help immensely with refactoring when you are just changing/renaming the tag of a disjoint union.

This is already fixed ;)
https://flow.org/try/#0C4TwDgpgBAglC8UDkBDAjEqAfZKBMmA3AFDEA2EwUKAXLCQPQNQD2A1sSgrho8+526oCJAM4B3AJbAAxgAsoAChQBKKAG9iUbVBkpR0VBjoyWAO1EsKAOjIsA5oqNIVhKACMAThBRsSO3X1DfCQTc0sbO0dhFzcvHz8tHT0DXABmUN1wqwhbBydxORAoSVEoYDlSqAp7FDIsgBMIAH5W2I9vX38dJoAzFABXMmAwixy86JQzBqhC4orS5tjiAF8gA


Visualize the lattice how-to guide needs removal

How to guide https://covalent.readthedocs.io/en/latest/how_to/orchestration/visualize_lattice.html references draw functionality which is currently not working.
Acceptance Criteria

The Visualize Lattice guide is to be removed until the draw functionality is supported
Remove reference to lattice.draw() in RTD (Astronomy tutorial)

Waiting to hear back from @Prasy12 if a hotfix can be given for this.

@AlejandroEsquivel The hotfix for the lattice.draw() will be issued in a few hours time.
cc: @mshkanth


'response to extracellular stimulus' is weird

definition "Any process that results in a change in state or activity of a cell or an organism (in terms of movement, secretion, enzyme production, gene expression, etc.) as a result of an extracellular stimulus."
Why does it only have these children:

?
consider obsoleting term or properly populating it.
It probably doesn't belong under 'response to external stimulus', which otherwise deals with exogenous stimuli.

Progress:
Have moved up to under 'response to simulus'


Fix events "since" query parameter description

The "since" query parameter can be useful
for polling (in combination with "until"), but
doesn't actualy stop the endpoint from streaming
events.
This patch updates the description to better
clarify that "since" does not make the endpoint
non-streaming.
fixes https://github.com/docker/docker/issues/25579
ping @vieux PTAL

LGTM

author LGTM

currently in #25581


Puppeteer slow execution on Cloud Functions

I am experimenting Puppeteer on Cloud Functions.
After a few tests, I noticed that taking a page screenshot of https://google.com takes about 5 seconds on average when deployed on Google Cloud Functions infrastructure, while the same function tested locally (using firebase serve) takes only 2 seconds.
At first sight, I was thinking about a classical cold start issue. Unfortunately, after several consecutive calls, the results remain the same.
Is Puppeteer (transitively Chrome headless) so CPU-intensive that the best '2GB' Cloud Functions class is not powerful enough to achieve the same performance as a middle-class desktop?
Could something else explain the results I am getting? Are there any options that could help to get an execution time that is close to the local test?
Here is the code I use:
import * as functions from 'firebase-functions';
import * as puppeteer from 'puppeteer';

export const capture =
    functions.runWith({memory: '2GB', timeoutSeconds: 60})
        .https.onRequest(async (req, res) => {

    const browser = await puppeteer.launch({
        args: ['--no-sandbox']
    });

    const url = req.query.url;

    if (!url) {
        res.status(400).send(
            'Please provide a URL. Example: ?url=https://example.com');
    }

    try {
        const page = await browser.newPage();
        await page.goto(url, {waitUntil: 'networkidle2'});
        const buffer = await page.screenshot({fullPage: true});
        await browser.close();
        res.type('image/png').send(buffer);
    } catch (e) {
        await browser.close();
        res.status(500).send(e.toString());
    }
});

Deployed with Firebase Functions using NodeJS 8.

@ebidel I saw you have written some experiments for Puppeter on Cloud Functions recently. Did you experience the same behaviour? do you have an idea about what could explain such a difference?
I noticed your nice try Puppeteer example deployed using a custom Docker environment does not suffer from this issue. Taking a screenshot takes about 2 seconds only, as with my local environment.

I have similar results on GCF. Most of the slowdown seems to happen on screenshot and pdf calls for me. Similar code with modified Chrome for lambda environment runs fine on AWS Lambda with same resources so it's not related to memory.
BTW, things I tried;

setting pipe: true - no effect
disabling shm - no effect
using the base64 encoded output directly (maybe decoding is slow somethow?) - no effect
different regions - nah
older puppeteer versions - nope

Maybe GCF CPU allocation is this bad. That would require benchmarking other stuff.

@eknkc Thanks for sharing your experiments.
Here are the options I tried too. None are helping:
const browser = await puppeteer.launch({
            headless: true,
            args: [
                '--disable-gpu',
                '--disable-setuid-sandbox',
                '--no-sandbox',
                '--proxy-server="direct://"',
                '--proxy-bypass-list=*'
            ]
        });

As a quick test, I switched the function memory allocation to 1GB from 2GB. Based on the pricing documentation, this moves the CPU allocation to 1.4 GHz from 2.4 GHz.
Using 1GB function, taking a simple screenshot on Cloud Functions take about 8s! The time increase seems to be a direct function of the CPU allocation :x
Maybe there is a magic option to get better timing and have Puppeteer really usable on production with Cloud Functions?

@ebidel Thanks. Is there a public link for the issue so that I can track the progress/discussion?

Unfortunately, not one I'm aware of. Will post updates here when I hear something.

OK. Thanks :)

Thanks @ebidel for the investigation.
Speaking for my case though, the performance issue is not related to the startup but rather happen during runtime so inlining would not change that I assume?
It seems like the chrome instance that is already running struggles with large viewports or simply capturing the page. That operation happens to use a lot of shared memory which might be causing the issue.
Anyway, hope we can have it resolved. Thanks again.

That's been my experience as well.
Capturing full page screenshots, on large viewports, at DPR > 1 is intensive. It appears to be especially bad on Linux: https://github.com/GoogleChrome/puppeteer/issues/736

This combination improves a little the speed:
    const browser = await puppeteer.launch({args: [
        '--disable-gpu',
        '--disable-dev-shm-usage',
        '--disable-setuid-sandbox',
        '--no-first-run',
        '--no-sandbox',
        '--no-zygote',
        '--single-process', // <- this one doesn't works in Windows
    ]});

I'm getting loading times of 3 seconds in local and 13 seconds in GCF.

I guess some improvements are made, I don't see long waiting times. I did use @wiliam-paradox options though.

I'm experiencing the same but at AWS Lambda, where requests are reaching the timeout while the same requests from my local are fine and under expected time.

Are you guys running puppeteer in HEADFUL mode on Cloud Functions? Running in headless mode is working fine but I need to run headful to be able to download PDF files. =/
Error: function execution failed. Details:
Failed to launch chrome!
[12:12:0913/012114.601900:ERROR:browser_main_loop.cc(596)] Failed to put Xlib into threaded mode.

(chrome:12): Gtk-WARNING **: 01:21:14.702: cannot open display:

Thanks for the report. I've passed this info off to the Cloud team since it's really their bug.
There's a known bug with GCF atm where the first few requests always hit cold starts. That could be causing a lot of the slowdown. But generally, GCF does not have the same performance characteristics that something like App Engine Standard or Flex have (my try puppeteer demo). Since you can only change the memory class, that also limits headless Chrome.
Another optimization is to launch chrome once and reuse it across requests. See the snippet from the blog post: https://cloud.google.com/blog/products/gcp/introducing-headless-chrome-support-in-cloud-functions-and-app-engine

I'm trying to launch chrome just once exactly the way on snippet but I'm getting Function execution took 54 ms, finished with status: 'connection error' on the second run. Also running my tests with Jest the process doesn't exit the process.  Closing and opening the browser between requests work fine.

I don't have much to offer, but if folks are looking for alternatives browserless typically starts Chrome in <100ms on small instances. Link is to the debugger, which also acts as a nice way to see what Chrome is up to when running puppteer scripts.
Other than that I do recommend the launch flags posted above, but --disable-dev-shm-usage shouldn't be required anymore.

Any update on this? GCF is executing any given Puppeteer action at perhaps 25% ~ 50% of my local desktop speed.

@DimaFromCanada none that I've seen. To be clear, are you talking about total time (cold start + execution) or just running your handler code?

Cold start adds time of course, but I'm talking about handler code running
very slowly as well. Particularly page.goto() calls.
Compared to a local machine or a VPS, I'm finding Puppeteer on GCF to be 2x

4x slower.

On Fri, Sep 28, 2018 at 1:00 AM Eric Bidelman<EMAIL_ADDRESS>wrote:

@DimaFromCanada https://github.com/DimaFromCanada none that I've seen.
To be clear, are you talking about total time (cold start + execution) or
just running your handler code?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/GoogleChrome/puppeteer/issues/3120#issuecomment-425147806,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AK5OkHJU8n7tNz8OaVNbLhAI2UJOm3ATks5ufPYxgaJpZM4WHOhH
.

--
DimaVolo.ca http://DimaVolo.ca?ref=email_sig
<EMAIL_ADDRESS>(917) 512-3119 <9175123119>

Any URL you can share? I can pass that along to the Cloud team.

Response time in seconds with the same code running with Puppeteer on AWS Lambdas vs GCP Functions with twice more memory:

In this measurement, the code uses one goto() and one evaluate() to read the DOM.

@lpellegr Very nice to see this brought up.
I've been facing the same pain for a while but always thought it would be closed as "won't fix".
I have a quite extensive puppeteer setup on AWS Lambda and I've been playing around with running puppeteer on Firebase/Google Cloud Functions for a while, even before support for Node 8.10 was announced. You can check the hack I did back then here (unmaintained).
A run a proxyfied authentication service (user logs in into my website, that in turn uses puppeteer to check if he can authenticate with the same credentials on a third-party website), where execution speed of puppeteer will directly affect the user experience. Nothing fancy like screenshots or PDF, just a login flow.
Most of my architecture lives on Firebase, so it would be very convenient for me to run everything there, puppeteer included - this would help with the spaghetti-like fan-out architecture I'm forced to adopt due to Lambda limitations. However, the performance of GCF/FCF is so inferior compared to AWS Lambda that I cannot bring myself to make the switch.
Even after support for specifying closer regions and Node 8.10 was released on FCF, a 2GB Cloud Function will still be less performant than a 1GB Lambda: ~4s vs 10+ seconds! And Lambda even has the handicap of having to decompress the chromium binary (0.7 seconds, see chrome-aws-lambda), and FCF doesn't.
And from my extensive testing I can tell this is not due to cold-starts.
I suspect the problem is more related in the differences between AWS and Google in the way the CPU shares and bandwidth are allocated in proportion to the amount of RAM defined. I can't be sure obviously, but I read a blog post a few months ago (can no longer find it) with very comprehensive tests on the big three (AWS, Google, Azure) that seem to reflect this suspicion - AWS is more "generous" in allocation.
Obviously, this doesn't seem to be a problem of puppeteer itself, but since Google is trying hard to scale up it's serverless game (and still playing catch-up it seems) it would be awesome if you could nudge some colleague at Google to look into this @ebidel - my current AWS infrastructure relies on hundreds of lines of Ansible and Terraform code as well as a couple Makefiles to keep everything together.
Switching to the no-frills approach of just writing triggers for Cloud Functions and listing dependencies (amazing work on this BTW) would make my life a lot easier. If only the performance was (a lot) better...

Google Cloud PM here.
Part of the slowness comes from the fact that the filesystem on Cloud Functions is read only.
We noticed that Chrome tries a lot to write in different places, and failures doing so results in slowness.
We confirm that by enabling a writable filesystem, performances improve. However, at this time, we are not planning to enable a writable filesystem on GCF apart from /tmp.
We asked the Chromium team for help to better understand how we could configure Chrome for it to not try to write outside of /tmp, as of now, we are pending guidance.

@steren AWS has the same limitation, you only get a fixed 500MB on /tmp regardless of how much memory you allocate to Lambda.
On the other hand GCF/FCF is memory-mapped:

This is a local disk mount point known as a "tmpfs" volume in which data written to the volume is stored in memory. Note that it will consume memory resources provisioned for the function.

So even if GCF was running on HDDs and Lambda on SSDs, it still wouldn't explain the huge discrepancies in performance we are seeing.

@steren @ebidel
So I just cooked up the simplest possible benchmark to test only the CPU (no disk I/O or networking).
Here's what I came up with:
const sieveOfErathosthenes = require('sieve-of-eratosthenes');

console.time('sieve');
console.log(sieveOfErathosthenes(33554432).length === 2063689);
console.timeEnd('sieve');

I deployed this function on both AWS Lambda, and Firebase Cloud Functions (both using Node 8.10).
Then I serially called the Lambda/Cloud Function and noted down the times. No warm-up was done.

FCF 2GB
AWS 2GB
FCF 1GB
AWS 1GB

1
5089
2519
6402
4036

2
5089
2693
ERROR
4278

3
5089
2753
4283
4525

4
4236
2554
ERROR
4430

5
3954
2671
4379
4417

6
ERROR
2717
ERROR
4409

7
3931
2726
4331
4447

8
ERROR
2725
ERROR
4393

9
4132
2714
4015
4456

10
ERROR
2723
ERROR
4405

11
3771
2730
4123
4389

12
ERROR
2722
ERROR
4431

13
4235
2725
4397
4445

14
4051
2732
ERROR
4418

15
4427
2707
4681
4452

16
4006
2715
ERROR
4442

17
ERROR
2732
4422
4289

18
3685
2725
ERROR
4401

19
ERROR
2718
4585
4379

20
3890
2719
ERROR
4402

21
ERROR
2797
4220
4415

22
4073
2795
ERROR
4452

MEDIAN
4073
2722.5
4379
4416

AVERAGE
4243.867
2709.636
4530.727
4395.955

STDEVP
458.620
61.097
618.645
93.646

STDEVPA
2012.616
61.097
2307.213
93.646

The 1GB Lambda is on-par with the 2GB FCF - although with much more consistent timings and no errors.
Similar results are reported on papers such as (there are quite a few!):

Benchmarking Heterogeneous Cloud Functions
Performance Evaluation of Parallel Cloud Functions

@alixaxel For sure CPU plays an important part. However, as Google team members said, CPU is not the cause of the issue here. If you look at /proc/cpuinfo for a 2GB function/lambda allocated with Firebase function/Amazon you will see that Google allocates 4 CPU whereas Amazon uses 2 only. Even if the frequency of the CPUs is a bit higher on Amazon it does not explain the time difference. I would even expect better timing with GCP since more CPU allows more parallelism which seems highly used by Chrome (correct me if I am wrong).
To convince me I also made a test some weeks ago by creating a Docker image with a read/write filesystem and the puppeteer NPM dependency pre-installed, all, running in GCP kubernetes with nodes having a similar CPU allocation as a 2GB function. The results show acceptable times.
Hope we can get a guidance soon about how to configure chrome headless to write to /tmp only with Cloud functions.
Another solution seems to get access to the alpha container as a service feature on Cloud functions. In that case a simple solution could be to use a Docker image similar to the one I used with Kubernetes. Currently, it's my dream. Hope it can become a reality.

As I mentioned, we observed that the slowness observed with Headless Chrome are different from traditional CPU/memory benchmarks.
I would be glad to invite you to the Alpha of serverless containers on the Cloud Function infrastructure so that you could perform more testing. Please fill in this form http://g.co/serverlesscontainers and mention "Headless Chrome" in the "use case" field. I should be able to invite you next week.

@steren Thanks a lot for the invite, looking forward to it.
@lpellegr I was referring to CPU shares, as in --cpu-shares Docker flag:

Set this flag to a value greater or less than the default of 1024 to increase or reduce the container’s weight, and give it access to a greater or lesser proportion of the host machine’s CPU cycles. This is only enforced when CPU cycles are constrained. When plenty of CPU cycles are available, all containers use as much CPU as they need. In that way, this is a soft limit. --cpu-shares does not prevent containers from being scheduled in swarm mode. It prioritizes container CPU resources for the available CPU cycles. It does not guarantee or reserve any specific CPU access.

 But given that the read-only FS is equally present on Lambda, it seems like a weird source to justify the for the discrepancy we see.

@ebidel I was under the impression that if used with --disable-dev-shm-usage and userDataDir was pointing to /tmp (as PPTR does), then Chromium wouldn't create any additional files outside of /tmp?

That I'm not sure of. I would assume since the chromium distro/deps that's installed on the GCF machines lives outside of /tmp, Chrome is probably writing other stuff there unrelated to user data.
So just because you write user data to /tmp doesn't mean that's the only thing that's being stored there.
It would be nice if someone could confirm where writes are happening.

@ebidel So if I would run the standalone headless binary I compile for Lambda (it's compatible with GCF) under /tmp should I expect that it only writes to /tmp and therefore shouldn't have the IO performance penalty?

Or actually... I can just install puppeteer on my local and watch which files it touches with strace or something right?

Any news on this ? It would be nice if GCF cloud run puppeteer correctly.

I tried to copy the whole chromium folder to the  /tmp  directory and launch it from there.
if (!fs.existsSync('/tmp/chrome-linux')) {
    let chromeFolder = fs.readdirSync(__dirname + '/node_modules/puppeteer/.local-chromium')[0];
    fs.copySync(
        __dirname + '/node_modules/puppeteer/.local-chromium/' + chromeFolder + '/chrome-linux',
        '/tmp/chrome-linux')
}

if (!browser) {
    console.warn('Launching browser.');
    browser = await puppeteer.launch({
        userDataDir: '/tmp/testing',
        executablePath: '/tmp/chrome-linux/chrome',
        args: ['--no-sandbox']
    });
}

From the performance mesurments I made, this changes nothing, GCF is still at least two times slower than AWS Lambda.

@TimotheeJeannin I also ran the Chromium I compile for AWS with the exact same approach / paths and everything. And, all things being equal, GCF is way slower. I don't know why Google devs are trying to dismiss this issue as a disk I/O issue, if that was the case the Sieve of Eratosthenes I shared before would have no justification for being so slow as well.

@lpellegr /proc/cpuinfo is always shows 4 CPUs on GCF, and os.cpus() always shows the 8 hyperthreads, regarless of "instance size".
A bit annoying actually since some apps will use this to decide how many threads they'll create for a CPU intensive job, and a 128 MB function for sure won't be allowed to tax all 8 of the host's hyperthreads.
In situations where I launch a CPU/memory intensive sub-process, I've got to a point where I can't even kill the sub-process. Then my function eventually times out, container is "suspended", and when another request comes in, container is "reused", old process is still running, and I still can't kill it.

@ebidel Any updates on this problem?
We want to move our project from AWS Lambda to Google Cloud functions. Actually, we completed migration. But we are waiting for this issue.

Same here. We wanted to migrate from AWS Lambda to GCF because the underlying linux distribution used by AWS Lambda is a pain to work with. We did quite extensive stress tests on GCF and we experienced extremly slow functions compared to AWS Lambda. It's so much slower than it's currently not possible for us to migrate even if we would prefer to work with the underlying linux distribution GCF uses.

@steren I assume you were the one who marketed this back in August with this blog post: https://cloud.google.com/blog/products/gcp/introducing-headless-chrome-support-in-cloud-functions-and-app-engine
Isn't it a bit awkward to push a product to masses without actually testing performance aspect of it, especially in a product (Cloud Functions) that people would like to use it at scale?

Many customers are successfully using puppeteer on Cloud Functions or App Engine.
We tested performances and were them before publishing the blog post. To sum up: let's say that this is part of the tradeoff of our pay-for-usage fast-scaling managed products.
Google Cloud Platform has many other compute options that allow you to run puppeteer with better performances (take a look at the App Engine flexible environment or Google Kubernetes Engine)

I ran some benchmarks again with chrome-aws-lambda and I noticed some improvements on Firebase.
The average timings I got with multiple URLs and warmed up functions were:

puppeteer (2684 ms on Firebase 1GB)
chrome-aws-lambda (1675 ms on Firebase 1GB)
chrome-aws-lambda (1154 ms on AWS Lambda 1GB)

With chrome-aws-lambda, FCFs are "only" 45% slower than Lambdas (compared to 130%+ when using puppeteer). In light of this, I've added support for GCFs to my package, if anyone wants to try it out:
npm i chrome-aws-lambda ilotorb puppeteer-core

Sample code (you need Node 8 runtime for it):
const chromium = require('chrome-aws-lambda');
const puppeteer = require('puppeteer-core');
const functions = require('firebase-functions');

const options = {
  memory: '2GB',
  timeoutSeconds: 300,
};

exports.chrome = functions.runWith(options).https.onRequest(async (request, response) => {
  let result = null;
  let browser = null;

  try {
    browser = await puppeteer.launch({
      args: chromium.args,
      defaultViewport: chromium.defaultViewport,
      executablePath: await chromium.executablePath,
      headless: chromium.headless,
    });

    let page = await browser.newPage();

    await page.goto(request.query.url || 'https://example.com');

    result = await page.title();
  } catch (error) {
    throw error;
  } finally {
    if (browser !== null) {
      await browser.close();
    }
  }

  return response.send(result);
});

Thank you for the tip on speeding up Puppeteer on FCF.
Is there a way to test this function locally using firebase serve --only functions on a MAC?
I am getting the following error:
`UnhandledPromiseRejectionWarning: Error: Failed to launch chrome!
/tmp/chromium: /tmp/chromium: cannot execute binary file
TROUBLESHOOTING: https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md`
which lists troubleshooting for Linux.
How are people using MAC OS testing this implementation?

https://github.com/GoogleChrome/puppeteer/issues/3120#issuecomment-450575911
I can confirm that this works.
Before using chrome-adw-lambdamy screenshots were rendered in about 12 second after it went down to about 2 seconds. That's about 500% faster!

I'm curious as to why chrome-aws-lambda is giving better results; are the chrome binaries compiled differently to those that Puppeteer downloads?

@Robula Besides shipping with less resources, chrome-aws-lambda is a headless-only build. That by itself should already explain some gains, but if you read the discussion above, making /tmp it's home should also be beneficial in GCF context. But I'm just guessing here, I don't have any concrete data to back it up.

Just wanted to add some details on how to run that kind of code locally (on Ubuntu, in my case).
executablePath: await chromium.executablePath

First, install Chromium, with your usual package manager.
Then, check where did it installed with whereis chromium-browser, it should be something like /usr/bin/chromium-browser.
Create a .runtimeconfig.json into your app_folder_repo/functions like that one
{
  "app": {
    "firebase_chromium_exe_path": "/usr/bin/chromium-browser"
  }
}

Then in your code, you can run
const local_vars = functions.config()
[...]
executablePath: local_vars.app.firebase_chromium_exe_path || await chromium.executablePath

Try it with firebase emulators:start --only functions.
It will work locally and on Firebase that way ! :confetti_ball:

followed above trick, but getting this on Mac OS
i  functions: Beginning execution of "export-chrome"
>  { app: { firebase_chromium_exe_path: '/Applications/Chromium.app' } }
⚠  functions: TypeError: input.on is not a function
    at new Interface (readline.js:207:11)
    at Object.createInterface (readline.js:75:10)
    at Promise (/Users/rakhi/Documents/Office/cloud-functions/functions/node_modules/puppeteer-core/lib/Launcher.js:333:25)
    at new Promise (<anonymous>)
    at waitForWSEndpoint (/Users/rakhi/Documents/Office/cloud-functions/functions/node_modules/puppeteer-core/lib/Launcher.js:332:10)
    at Launcher.launch (/Users/rakhi/Documents/Office/cloud-functions/functions/node_modules/puppeteer-core/lib/Launcher.js:176:41)
⚠  Your function was killed because it raised an unhandled error.

For Mac OS
visit, chrome://version/ & see the Executable Path path field to get the Chromium path.
It would be something like /Applications/Chromium.app/Contents/MacOS/Chromium
so, this makes it work locally on Mac
executablePath: '/Applications/Chromium.app/Contents/MacOS/Chromium'

Here are my benchmarks using Cloud Run, Cloud Functions and the Kubernetes/Any other server.
Cloud run is 2x slower, Cloud functions are 6-10x slower compared to a normal always-on server.
Tasks performed:

Open browser
Load example.com
Get title

Benchmarks:
Kubernetes/Server
Mainly this would mean high availability, no cold start, though it defeats the purpose of serverless, the comparison is just to show how Cloud Functions are doing compared to this.

Cloud Run
It's slower, and understandable. Got much more flexibility than Cloud Functions as well.

Cloud Functions
Never mind the cold start, it was extremely painful to watch. No matter what kind of optimizations are put, just opening the browser takes most of the time.

If anyone runs a test with chrome-aws-lambda, it will be nice.

@entrptaher pass me the test script and I'll see what I can do. I run https://checklyhq.com and run a ton of AWS Lambda based Puppeteer runs.

I tested with puppeteersandbox (which is the one you have on aws lambda), and that reported me around 1000ms (endTime - startTime). A benchmark with ./curl-benchmark.py would be much nicer :D to look.
I will also mention, All of them were allocated 512MB ram and at most 250-280MB were used. At first it were using less ram, but then started to increase on further deployments.
Here you go, the code. I removed as many things as I could to keep it simple.
index.js
const puppeteer = require("puppeteer");

const scraper = async () => {
  const browser = await puppeteer.launch({args: [
    '--no-sandbox',
    '--disable-setuid-sandbox',
    '--disable-dev-shm-usage'
  ]});

  const page = await browser.newPage();
  await page.goto("https://example.com");
  const title = await page.title();
  await browser.close();
  return title
};

exports.helloWorld = async (req, res) => {
  const title = await scraper();
  res.send({ title });
};

package.json
{
  "name": "helloworld",
  "version": "1.0.0",
  "description": "Simple hello world sample in Node",
  "main": "index.js",
  "scripts": {
    "start": "functions-framework --target=helloWorld"
  },
  "dependencies": {
    "@google-cloud/functions-framework": "^1.3.2",
    "puppeteer": "^2.0.0",
  }
}

Without functions-framework
Cloud Functions
On the previous benchmark, I was using functions-framework, which is a small overhead for handling requests on port 8080.
Once again, here are the results,

The benchmark doesn't change much even if you remove functions-framework. It gets 2 second faster. However this still does not justify the 4 second response, which is 4x time the normal aws response.

Cloud Run
I removed functions-framework and added express, which is a lower overhead. We can try vanilla js as well.
Code:
const express = require('express');
const app = express();

app.get("/", async (req, res) => {
  const title = await scraper();
  res.send({ title });
});

const port = process.env.PORT || 8080;
const server = app.listen(port, () => {
  const details = server.address();
  console.info(`server listening on ${details.port}`);
});

Result:

@entrptaher Great that you used https://puppteersandbox.com
Even without the curl benchmark, this shows a sub 1000ms execution on most runs.
Note, puppeteer sandbox uses 1478MB's of RAM on each run, so that will have an effect.
For those who want to give it a try, I saved this script with added timing:
https://puppeteersandbox.com/p5T1zfKM

I used 512mb on my run. Having 1500mb will definitely have a greater effect but that kinda defeats the purpose of the whole benchmark thing. Can you try to benchmark with 512mb limit ? 😁

For Mac OS
visit, chrome://version/ & see the Executable Path path field to get the Chromium path.
It would be something like /Applications/Chromium.app/Contents/MacOS/Chromium
so, this makes it work locally on Mac
executablePath: '/Applications/Chromium.app/Contents/MacOS/Chromium'

In order to get this to work locally on my mac, and on deploy i had to check for the "local_vars.app" first or it would crash on production. Hope this helps someone else...
    const browser = await puppeteer.launch({
      args: chromium.args,
      defaultViewport: chromium.defaultViewport,
      executablePath: local_vars.app
        ? local_vars.app.firebase_chromium_exe_path
        : await chromium.executablePath,
      headless: chromium.headless
    });

I didn't do any deep profiling but at least in my case the bottleneck seems to be the CPU. I used Cloud Run, when deployed with single CPU duration was around 20 seconds, and once I allocated 2 CPUs, it was reduced to around 10 seconds, and on my computer (i7 with 4 cores) I get around 5 seconds.
I published like this:
gcloud run deploy test --image gcr.io/test/test --memory 1G --cpu 2
Unfortunately, seems you cannot increase Cloud Run containers allocated CPUs beyond 2. And for Cloud Functions I did not find any to control the number of the CPUs allocated.

Any updates on this from the Google Team or has anyone cracked this?  I'm a first time user of puppeteer and trying to glue up puppeteer-core, puppeteer-extra, puppeteer-cluster, (and apparently now chrome-aws-lambda) in Firebase Functions and the performance is disappointing to say the least...

So I nowhere saw any minimum system requirements or anything for running puppeteer in cloud function. So I tried running this in a 256MB memory cloud function for a simple HTML.
But it almost always throws memory limit exception.
Sample code:
const puppeteer = require('puppeteer')
const html=`<html><body>Hello</body></html>`;

async function printPDF(req, res) {
  const {format = "png"} = req.body;
  const browser = await puppeteer.launch({ headless: true, args: [ '--full-memory-crash-report', '--no-sandbox', '--disable-setuid-sandbox'] });
  const page = await browser.newPage();
  await page.setContent(htmlString, { waitUntil: "networkidle0" });
  const label = format === "png" ? await page.screenshot({ fullPage: true }): await page.pdf({ format: 'A4' });
  res.set('Content-Type', format === "png"? 'image/png':'application/pdf');
  res.set('Content-Length', label.length);
  res.send(label);
  await browser.close();
};

module.exports = {
  printPDF,
}

It rarely gave response in ~8s and most of the time it throw error saying
Error: memory limit exceeded. Function invocation was interrupted.
So I debug this with logs and the memory issue always happens when page.setContent is triggered.
1> So what is a minimum system, req for puppeteer in cloud function (It's working in 150MB memory using docker in local)
2> Why it always happens at setContent command?
Any leads?

This combination improves a little the speed:
    const browser = await puppeteer.launch({args: [
        '--disable-gpu',
        '--disable-dev-shm-usage',
        '--disable-setuid-sandbox',
        '--no-first-run',
        '--no-sandbox',
        '--no-zygote',
        '--single-process', // <- this one doesn't works in Windows
    ]});

I'm getting loading times of 3 seconds in local and 13 seconds in GCF.

This combination has worked the best for me! Running backstopJS on AWS ec2 free tier wouldn't complete the reference job until I added these parameters.


Get Accounts - remove unused encryption key parameter and update internal calls to it

Closed by merging PR: https://github.com/getsafle/safle-vault/pull/254


fix(ci): sonar frontend reporting - DO NOT MERGE!

Description
Closes #1000

This demonstrates how to get Cypress reporting coverage
DO NOT MERGE!

How was this tested?

[x] 🧠 Not needed
[x] 👀 Eyeball
[ ] 🤖 Added tests

What gif/image best describes this PR or how it makes you feel?

Testing done!  PR not needed.


Transform on image is ignored

https://github.com/RazrFalcon/resvg/blob/8a838f776aa0f1642a61d8becd802efffeb55b19/usvg/src/convert/image.rs#L50
A very obvious bug...

It's was actually correct.


Upgrade to Angular 17

Upgrade to Angular 17:

upgrade Angular dependencies to 17.1.0
update rollup version and replace deprecated rollup-plugin-terser with @rollup/plugin-terser
use ES2022
safe-check if ngDevMode exists in @angular/router in order to fix ngDevMode is not defined error

Hello, are you upgrade angular 17 done???
I have the error ngdevMode not defind 🥲


Regarding Manually selecting Needed Performance Metrics

Is there any way to manually add percentiles(performance metrics like p70,p50 and more metrics).Using that metrics to generate the report

@Lavan08 any comment on this?

closing due to inactivity, feel free to re-open it.


Option to remove internal links when exporting to HTML

When exporting to HTML, internal links remain. This is an unneeded feature because no one can access the links to MD files stored locally.

Check the settings, there is an option to turn [[internal links]] links into text.


when can add rc4-md5 chcha20 salsa20

please add rc4-md5 chcha20 salsa20 thanks

Actually, I would fix bugs if I get time on it.
Adding new encryption is low priority, as you know, there has already been a factory design in code.
#1

i have implement chacha20 use bouncycastle jar ,bouncycastle jar have rc4Engine but i dont know how to imlement rc4-md5,can you tell me how to implement ,my qq is 355969727 you can add me discuss it,if you have time ,hope you implemnt rc4-md5 thanks

Why not submit your code then?

ive already added rc4-md5 and chacha20....and change my layout...but i have problem in ui mainactivity..

can you give me code the implment of  rc4-md5?

you have poly?

My qq is 355969727 you can add me discuss it

https://github.com/lihaolanlhl/shadowsocks-android-java
here it is...what changes you made?

can you help me?

Now i dont change anything,first i learn it，then if possible i can help you，And when you can add salsa20?

help me with this im trying to create clear button and setText("");   when i press recent button on my phone the deleted text comes back..what  should i add after settext?

1.You only set Text but the value of java code is not change,please checkout the value is "";
2.when i press recent button on my phone the deleted text comes back ,I think the value is not null，so back  again set the value，Check out the 1

The code value you must clear
spf = getSharedPreferences(PREF_NAME, MODE_PRIVATE);
String name = spf.getString(SERVER_NAME, "");
String port = spf.getString(REMOTE_PORT, "");
String password = spf.getString(PASSWORD, "");
String[] methods = getResources().getStringArray(R.array.encrypt);
int methodId = spf.getInt(ENCRYPT_METHOD, 0);
    if (!name.isEmpty()) {
        mEditServer.setText(name);
    }
    if (!port.isEmpty()) {
        mEditPort.setText(port);

already fixed

you know some code to turn off and on this vpn? with time interval?

i want to make a button of that

You can use a time task to control turn on or off vpn ,see LocalVpnService.java ,by  IsRunning = false; and disconnectVPN() method ,if you hava some problems ,you can send mail to me<EMAIL_ADDRESS>

新发布已加入


enhancement: allow file control to delete and update selected file

Type:
Able to select, update and delete file are basic behaviour that must be supported by file control.

Fixed and tested with version 2.0.1


Need cmdlet to generate Docker.DotNet.Models.AuthConfig object

Currently I need to instantiate an AuthConfig object myself and then specify username and password.
$DockerAuth = [Docker.DotNet.Models.AuthConfig]::new()
$DockerAuth.Username = 'bgelens'
$DockerAuth.Password = 'mypassword'

Normally in the PowerShell world, there would be a wrapper cmdlet which would instantiate the object for me. Cmdlets are easier to discover for most users.
The class has no constructors. It would be nicer (in the current context) to have a constructor so we can pass in a pscredential or username and password during instantiation.

@swernli - I think the cmdlet would have to do the conversion before Docker.DotNet otherwise AuthConfig would have to understand code like PSCredential.


Http2 header 5780 v1

Complex to merge for 6 and 7.
Should we just get rid of these rules ? Or use full http.header

Replaced by https://github.com/OISF/suricata-verify/pull/1232


Windows 10: Random Font Blurring

When working with the editor sometimes the fonts will become blurry randomly for one of the editor items (tabs). When this happens the only way to fix it is to close the item and reopen it, Editing it or changing focus does not help.
Blurry version:

Normal Text:

This also happens to me when I scroll through the file by selecting text and dragging the cursor slightly outside the editor.
Scrolling with the mouse wheel or dragging the scrollbar fixes the issue for me though.

This seems to be a duplicate of #8979, so closing in favor of that issue.


FR: include autoflagging weight in Metasmoke JSON search result

The JSON blob I get back from something like https://metasmoke.erwaysoftware.com/search.json?body=pcsupremo.com does not include the autoflagging weight of each hit. This would be nice to obtain; it is displayed for each post in the corresponding interactive (non-JSON) search result https://metasmoke.erwaysoftware.com/search?body=pcsupremo.com

If adding this to the existing schema is challenging, at least offer some way of obtaining this information programmatically.

The /posts/:id API call includes a reason_weight member for each item. I'm happy with this, but leaving this open for now in case we would like to document this in more detail somewhere.

 The interface, and JSON alternatives to the interface like search.json, don't.
There's a slightly tamer version of search available in the API, which you can use if it has enough criteria for you in the meantime.

I'm planning to update the /posts/:id documentation in the wiki to reflect what this interface actually currently returns. I was scouring the API wiki pages over the weekend and couldn't find the reason weight anywhere, but there are apparently several other things which have changed since December. Anyway, if you have other or different plans, maybe we should coordinate here.

No plans on that front. I just haven't updated the docs in a long time.

I updated the API doco now.

New ticket: https://github.com/Charcoal-SE/metasmoke/issues/226


Consider reordering the topics in the essentials class

Hi All,
I was a mentor for 2 sessions this past spring, once on zoom and once in person at jLab. I think you should reconsider the order of the topics for the essentials class.  I'll use the order on slide 5.  1. And 2. Are good where they are but then I would do:
6. Useful tools so that they can debug their exercises.
4. Core modern C++ so that they are not tired out by the time they reach what are in my opinion some of the most important topics, const correctness, RAII, and how to use the STL.
3. Object orientation it's still great material and good to know the memory layout the compiler uses but it is lighter for the last day.

Usual comments on this kind of topic :

very welcome if you manage but...
already attempted and failed. What we have is the best we've managed
as we say in french : "the better is the enemy of the good". Not sure the translation makes sense, but basically too much improvements usually leads to degradation rather than improvements

The main issue you will face is "dependencies" in concepts which won't be fulfilled, which will lead to "we will see that later" type of explanations, which I personally hate as a student.
But worth a try if you find the time (although there is also a long list of issue if you do have time)

It's fine for me personally. I think it's more work than you think, though, so it would have to be distributed quite well.
Just going through the first few subsections of core modern, we use (without discussing):

member function constness
overloading
exceptions (which use inheritance)
move semantics (it's part of the advanced course, so not an issue for essentials), but it's pretty OO

I think we need a little OO, but maybe it can be shortened to objects/classes, inheritance basics, constructors/destructors?
The rest of OO such as static, allocating, advanced OO, type casting, operator overloading, function objects, name lookup could be moved to a later stage.

Yes. Very very hard to swap parts in a such long cooked bible, without breaking many things. That's one of the reasons we tried to start a less ambitious new course from scratch, few years ago. But this died of lacking time and human resources.


Confusing information of Tetragon in cncf.io/projects

It appears that Tetragon listed in cncf.io/projects as an incubating project[1] and with description "Tetragon was accepted to CNCF on October 13, 2021 and is at the Incubating project maturity level."[2]
Tetragon was launched in May, 2022[3], as a subproject[4] of Cilium and didn't go through CNCF project donation/accpetance process.
AFAIK, subprojects don't listed in the cncf.io/projects list. Am I missing anything?
Ref:
[1] https://www.cncf.io/projects/#incubating
[2] https://www.cncf.io/projects/tetragon/
[3] https://isovalent.com/blog/post/2022-05-16-tetragon/
[4] https://github.com/cilium/tetragon

Hi @kevin-wangzefeng 👋
This was done in #2734 for landscape v1.
In landscape v2, subprojects are not displayed when filtering by CNCF projects either. When displaying the details of a subproject, we show the parent project though.


Is it possible to match LinearExpressions conditionally?

I want to have my target function to be dependent on the amount of true decisions made by the model and instead of applying a certain factor (i.e. * 3) to it, want to assign certain values for differing amount of true decisions.
For example instead of
for week in tf do
       (sum booleanDecision.[All,week,All]) * 3.0

to something like this
for week in tf do
    match sum booleanDecision.[All,week,All] with
    | 1.0<'u> -> 1.0
    | 2.0<'u> -> 2.5
    ...
    | _ -> 100.0

Or is there a principality of LP I'm missing that doesn't allow something akin to this

I think you would have to match on the count of decisions which were 1.0 to do that.


Investigate slow execution of commands

Describe the bug
@klieret brought this up and I wanted to open an issue about this.
When running a replay or when using the 'human' model, the agent seems to run slow, much slower than it should. Are we missing something here? Is there some inefficiency we could improve on?
Steps/commands/code to Reproduce
Run a replay or open a session with the --model set to human
Error message/results
The agent seems to run slow
System Information
mac m2
Checklist

[X] I have copied the full command/code that I ran
[X] I have copied the full log file/error message that was the result (if applicable)
[X] I have enclosed code/log messages in triple backticks (docs)

This doesn't affect just replay/human model, this certainly affects all runs.
Here's a small snippet to collect information:
_LAST_TIME = datetime.datetime.now()

def debug_time():
    """Display time delta at line number"""
    cf = currentframe()
    line_no = cf.f_back.f_lineno
    global _LAST_TIME
    time_delta = datetime.datetime.now() - _LAST_TIME
    _LAST_TIME = datetime.datetime.now()
    logger.debug(f"Time: {time_delta} at line {line_no}")

then just add debug_time() in the code at various places.

INFO     🎬 ACTION (primary)
         ls
DEBUG    Time: 0:00:00.003451 at line 674 (name='reset before postproc')
DEBUG    Time: 0:00:00.000472 at line 677 (name='guard multiline')
DEBUG    Time: 0:00:01.638950 at line 692 (name='got observation')
INFO     Saved trajectory to trajectories/fuchur/human__klieret__swe-agent-test-repo__default_from_url__t-0.00__p-0.95__c-3.00__install-1/klieret__swe-agent-test-repo-i1.traj
DEBUG    Time: 0:00:00.007787 at line 706 (name='traj saved')
DEBUG    Time: 0:00:00.001074 at line 667 (name='')
DEBUG    Time: 0:00:01.698880 at line 669 (name='state cmd')
DEBUG    Time: 0:00:00.003122 at line 390 (name='')
DEBUG    Time: 0:00:00.002390 at line 411 (name='')
INFO     🤖 MODEL INPUT
         README.md
         tests

         (Open file: n/a)
         (Current directory: /klieret__swe-agent-test-repo)
         bash-$

so it's this (1.6s)
for sub_action in self.split_actions(run_action):
      if sub_action['agent'] == self.name or sub_action['cmd_name'] == self.config.submit_command:
          obs, _, done, info = env.step(sub_action['action'])
          observations.append(obs)
          if sub_action['cmd_name'] == self.config.submit_command:
              done = True
          if done:
              break
      else:
          agent_name = sub_action['agent']
          sub_agent_output = self.call_subroutine(agent_name, sub_action, env)
          observations.append(sub_agent_output)

and (~1.7s)
state = env.communicate(self.state_command) if self.state_command else None

the latter is just
    state_command: Command = Command(
        name="state",
        code="""state() {
            echo '{"working_dir": "'$(realpath --relative-to=$ROOT/.. $PWD)'"}';
        };""",
    )

performance in docker on apple m2 can be very slow if you don't use native apple virtualization and rosetta. Rancher desktop provide it but it turned off in default settings

An alternative way was tested in speedup-abort-condition, but apparently this was tried before and resulted in rare issues of incomplete communication.


Bad toJSON override breaks one-to-many associations

Sails: v. 0.11.2
Waterline: v. 0.10.26
Adapter: only tested on sails-postgresql v.0.10.16
Overriding a model's toJSON method with a function that has no return value results in a partial failure populating associated model instances (on the many side).
For example:
User.js
module.exports = {
  attributes: {
    pets: {
      collection: 'Pet',
      via: 'owner'
    }
  }
};

Pet.js
module.exports = {
  attributes: {
    owner: {
      model: 'User'
    },
    toJSON: function(){
    	console.log('I am inattentive!');
    }
  }
};

This will result in Pets who's  owners can be populated but Users who's pets key have value [null] upon attempting to populate the field.
Obviously, people should write proper toJSON() overrides but I didn't expect this behavior therefore spent hours debugging.  @particlebanana, is this expected behavior? Should it throw? Should it use a private toJSON() method? If this is expected, I'll close this issue out and add a note to the docs.  Otherwise, let me know and I'll gladly submit a patch. :hankey:

Nice find there.  I don't think that toJSON should be called on these records.  I think the place to look is here: https://github.com/balderdashy/waterline/blob/abd20f792d095a80655ce944839dfe7686d08c91/lib/waterline/model/lib/defaultMethods/toObject.js#L173-L174
I understand that when transmitting these associated records over the wire, you'd want the toJSON method to be used.  But that can be achieved in a different way.  Perhaps it could call toObject instead, and let the object returned by toObject inherit the model instance's toJSON method?  If objects within an object have toJSON methods, stringifying the parent object will call toJSON on the child objects.

Interesting. I agree that conversation to JSON is not something Waterline should care about. That's a framework/Sails issue. I would just return the model object to the framework which then can call toJSON()?

So the toJSON isn't anything special here. It's actually a part of JSON.stringify. So when you are overriding it you are overriding the function that will be called whenever JSON.stringify is used.

If an object being stringified has a property named toJSON whose value is a function, then the toJSON() method customizes JSON stringification behavior: instead of the object being serialized, the value returned by the toJSON() method when called will be serialized.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
It's probably best to use .toObject somewhere in you code and edit this value manually there.

He's like the Hercules of javascript only pi times sexier
[]=={:::::::::::::>


Tooltips inside Wizards has wrong overlapping

Select one ...  (check one with "x")
[x] bug
[ ] feature request
[ ] enhancement

Expected behavior

Tooltips should be displayed over wizard title (tooltip text should overlap any wizard layout content)
Actual behavior

Tooltip (if placed at the start of wizard page) can't show full content due to overlapping by wizard title
see screenshot:

Reproduction of behavior

Get example code of wizard from clarity doc webside
Place Tooltip (XL size) to any wizard page (top of page)
Check hover text overlapping

Environment details

Angular version: 5.2.1
Clarity version: v 0.11.1
OS and version: Mac OS latest
Browser: Chrome 63

@pumano: I was looking into this issue but found that this works without any issues when you use the Angular component like @youdz suggested above. Please take a look at this StackBlitz: https://stackblitz.com/edit/clarity-light-theme-v11-o9kwbx?file=app/app.component.html
Let us know if this works for you. Closing the issue based on the above info. Please feel free to reopen the issue if you have any additional questions.


RedisTimeoutException following RedisLoadingException

In our setup, we have sharded mode cluster consisting of 6 shares, 2 nodes per shard.
Our redisson client interacts with only the MASTER node in each shard.
Recently we experienced the following exception: "org.redisson.client.RedisLoadingException: LOADING Redis is loading the dataset in memory". Following that exception, we had been getting RedisTimeoutException on majority of the calls until we finally restarted our application services and the problems went away.
Any clue as to what might be the cause of this? I am suspecting this is a problem with the redisson client itself.
Redisson version: 3.11.6-3

This error reported by Redis. https://bobcares.com/blog/error-loading-redis-is-loading-the-dataset-in-memory/

Thanks @mrniko . We reached out to AWS and they were suggesting upgrading to bigger instance size which supports higher network bandwidth. I'd like to confirm if upgrading to latest Redisson client will resolve the stale Redisson connection.

I'd like to confirm if upgrading to latest Redisson client will resolve the stale Redisson connection

Can you provide more details about that?

... we experienced the following exception: "org.redisson.client.RedisLoadingException: LOADING Redis is loading the dataset in memory". Following that exception, we had been getting RedisTimeoutException on majority of the calls until we finally restarted our application services and the problems went away.

RedisTimeoutException occurs if data loading process didn't complete in time. Which is defined by timeout and retry attempts + retry intervals.

Right, but the problem is that it continued throwing RedisTimeoutException forever until we force the application server to restart and the problem went away. So i am suspecting the connection managed by Redisson became unusable whenever RedisTieoutException occurs; and a restart is needed.

Can you provide logs?


[Feature Request] Google Assistant Control

I absolutely love Koel as a functional and good-looking alternative to Spotify, but the one thing that I miss the most is the ability to control my music using Google Assistant, like when I'm driving in my car and cannot be distracted. I am not the best at development at the moment, but I will attempt to make some progress on this in my free time. Could this be similar to how the existing remote feature works? Thanks to anyone with input on this.

I've never coded for Google Assistant before, but if you want to give it a try then by all means :)


map_on_gpu

Does this function work?
Where is the manual for this function?
tensorflow/python/data/experimental/ops/prefetching_ops.py: 264 def map_on_gpu(map_func):

@zhaozheng09 Could you please have a look at the map_func and let us know if it helps? Thanks!


let -g option behave the way ag does

when -g option is enabled, there is no need to specify the pattern.
So possible cmdline likes this:
pt -g filepattern [roots]
find all the matched files in the appointed root directories
(current directory if not set).
fix #51 issue.
Signed-off-by: Tw<EMAIL_ADDRESS>

@monochromegane ping?

LGTM ! Thanks !!


Add project board

Move issues and PRs between boards to automatically change status.

Does not transfer well on a template.


Convert to stripe elements

If we are able to merge this, it fixes #28.

All URLs have been tested with this version. We're good to merge it when I get back from vacation.


CSX - Intellisense not showing constructor parameters

VSCode - In a CSX script enter the following:
new System.IO.MemoryStream(
Expected results:
Intellisense displays the list of parameters of the constructor for anyof the overloads
Actual results:
Intellisense does not display the list of parameters of the constructor for any of the overloads.
Note that intellisense shows the correct information when hovering over the constructor.
version: omnisharp-roslyn-dev from Dec 5 US EST

This is a known issue and is the same for other C# files. We're tracking it with the C# extension for VS Code here: https://github.com/OmniSharp/omnisharp-vscode/issues/36.


task ':google_api_headers:compileDebugKotlin'.

AppData\Local\Pub\Cache\hosted\pub.dartlang.org\google_api_headers-1.2.0+1\android\src\main\kotlin\io\github\zeshuaro\google_api_headers\GoogleApiHeadersPlugin.kt: (58, 68): Type mismatch: inferred type is String? but String was expected
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':google_api_headers:compileDebugKotlin'.

Compilation error. See log for more details

same issue

same issue as well

same issue

me too

Yo encontre este articulo que dice como solucionar pero aun siguiendo los pasos no me funciona
https://serveanswer.com/questions/after-upgrade-flutter-to-version-3-my-exist-project-is-not-building

as a temporarily solution
you open this file producing error GoogleApiHeadersPlugin.kt (cmd + click on it in console for macOS)
and cut all the try catch part
    try {
                val info: PackageInfo
                if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.P) {
                    info = context!!.packageManager.getPackageInfo(call.arguments<String>(), PackageManager.GET_SIGNING_CERTIFICATES)
                    for (signature in info.signingInfo.apkContentsSigners) {
                        parseSignature(signature, result)
                    }
                } else {
                    @Suppress("DEPRECATION")
                    info = context!!.packageManager.getPackageInfo(call.arguments<String>(), PackageManager.GET_SIGNATURES)
                    @Suppress("DEPRECATION")
                    for (signature in info.signatures) {
                        parseSignature(signature, result)
                    }
                }

            } catch (e: Exception) {
                result.error("ERROR", e.toString(), null)
            }

so  if method is empty and doing nothing
if (call.method == "getSigningCertSha1") {}
I don't have enough knowledge to say what are the consequences of this but my app is working and all the google APIs are working too (google maps, google sign in, Firebase)
I suggest you save the code you cut somewhere.

it worked for me

Please avoid commenting me too or same issue and instead please upvote original issue for better visibility.
@gustavorozolin
Is this happening after you upgraded to 3.0 ?  Do you get this error while trying to compile your app ? Can you provide flutter doctor -v and complete error log in verbose mode ?

@darshankawar Yes, it happened after the upgrade to 3.0. I downgrade flutter immediately without changing anything now it's working.

In my project I use flutter_google_places so I needed add
dependency_overrides:
  google_api_headers: ^1.3.0-dev.0

@darshankawar Yes, it happened after the upgrade to 3.0. I downgrade flutter immediately without changing anything now it's working.

I upgrade flutter 3.0 again and upgrade all firebase plugins, now it's working.
cloud_firestore to 3.1.15
firebase_auth to 3.3.18
firebase_core to 1.17.0
firebase_crashlytics to 2.8.0
firebase_messaging to 11.4.0
firebase_remote_config to 2.0.7
firebase_storage to 10.2.16

@darshankawar Yes, it happened after the upgrade to 3.0. I downgrade flutter immediately without changing anything now it's working.

@darshankawar I upgraded flutter 3.0 again and upgrade all firebase plugins, now it's working.
cloud_firestore to 3.1.15
firebase_auth to 3.3.18
firebase_core to 1.17.0
firebase_crashlytics to 2.8.0
firebase_messaging to 11.4.0
firebase_remote_config to 2.0.7
firebase_storage to 10.2.16

works for me


fix(live-codeblock): render static codeblock server-side

Motivation
Resolve #5747. I think a static code block pretty closely resembles the live code block, so we can just use that.
Have you read the Contributing Guidelines on pull requests?
Yes
Test Plan
With JS disabled:

Before
After

This is not a fix to make live editor any more functional without JS though, so I don't think differentiating it from the static code block is worthwhile. As long as we get the code block server-side rendered, it should be good.

This is a good improvement. I think in addition to this it may be desirable to put the wrapper that says 'live editor' and such so the layout doesn't jitter too much.

Test link: https://deploy-preview-5754--docusaurus-2.netlify.app/docs/next/markdown-features/code-blocks#interactive-code-editor
IMHO we should render the whole live layout on the server, with the playground showing a temp spinner (we don't have a spinner comp yet, but ... would be fine temporarily)

https://github.com/facebook/docusaurus/issues/2986 🧐
We even have a dogfood test here: https://deploy-preview-5754--docusaurus-2.netlify.app/tests/pages/markdownPageTests#test


REST API

Hello
It's great if you create an API to create/modify/remove users and else
Thank you

yes , now mode has this also, but im not sure if im going to enable it right now or next version(s)
it needs some ui design and docs to be written


[SSH connection] Implement Cancel Functionality

Is your feature request related to a problem? Please describe.
We need to support/implement cancel functionality for ssh connection type
Describe the solution you'd like
Implement behavior for handling cancel button for ssh
Describe alternatives you've considered
Not much of an alternative, users need the ability to cancel long running executions if desired.
Additional context
For SSH, we'll need to be clever and find a way to "cancel submitted statements" via whatever support interactive line mode has for it.
See here for info on cancelling in interactive line mode. It seems like we might want to pursue the "cancel submitted statements" option.

Any update on this feature?

Any updates on this?
Currently, when I run the following code (note that I forgot to include a %mend statement):
%macro foo;
proc print data=work.bar;
run;

The SAS extension will continue to run indefinitely, with no way to kill the running code.
A fix for this particular issue might be to include the %mend statement in the code that gets appended to the end of the submitted code:
  ;*';*";*/;run;quit;ods html5(id=vscode) close;

But a cancel functionality would be even better.


Bug: Pod hangs for hours after successful completion, then gets deleted

Is this a BUG REPORT or FEATURE REQUEST?:
Bug report
What happened:
During a workflow, some pods finished. "wait" container ran and did what it needed to, but the pod is then deleted.
E.g.
 | |   | └---✔ process-step
 | |   |     ├-⚠ process-step(0)                                                                                ix-ckst8-1885268358  5h        pod deleted
 | |   |     ├-⚠ process-step(1)                                                                                ix-ckst8-207359363   4h        pod deleted
 | |   |     ├-⚠ process-step(2)                                                                                ix-ckst8-2355335880  4h        pod deleted
 | |   |     ├-⚠ process-step(3)                                                                                ix-ckst8-2556520213  4h        pod deleted
 | |   |     ├-⚠ process-step(4)                                                                                ix-ckst8-409529434   3h        pod deleted
 | |   |     └-✔ process-step(5)                                                                                ix-ckst8-4100355351  17m

As you can see, the pod actually takes 17m to run, but in the first 4 retries show as running for a few hours. Looking in the pod logs shows nothing wrong.
Also weird is that the argo get command shows the pod running for hours, while actually it got delete and restarted immediately after it finished (as seen in the workflow-controller logs).
What you expected to happen:
The pod to finish and mark the step as successful.
How to reproduce it (as minimally and precisely as possible):
Not sure.
Anything else we need to know?:
Environment:

Argo version:

$ argo version
argo: v2.3.0
  BuildDate: 2019-05-20T22:12:06Z
  GitCommit: 88fcc70dcf6e60697e6716edc7464a403c49b27e
  GitTreeState: clean
  GitTag: v2.3.0
  GoVersion: go1.11.5
  Compiler: gc
  Platform: windows/amd64

Kubernetes version :

$ kubectl version -o yaml
clientVersion:
  buildDate: 2018-11-26T14:38:32Z
  compiler: gc
  gitCommit: 637c7e288581ee40ab4ca210618a89a555b6e7e9
  gitTreeState: clean
  gitVersion: v1.10.11
  goVersion: go1.9.3
  major: "1"
  minor: "10"
  platform: windows/amd64
serverVersion:
  buildDate: 2019-06-19T20:48:40Z
  compiler: gc
  gitCommit: f53039cc1e5295eed20969a4f10fb6ad99461e37
  gitTreeState: clean
  gitVersion: v1.12.8-gke.10
  goVersion: go1.10.8b4
  major: "1"
  minor: 12+
  platform: linux/amd64

Other debugging information (if applicable):

workflow result:

$ argo get <workflowname>

executor logs:

$ kubectl logs <failedpodname> -c init
$ kubectl logs <failedpodname> -c wait

workflow-controller logs:

$ kubectl logs -n kube-system $(kubectl get pods -l app=workflow-controller -n kube-system -o name)

we also have this problem，have any fix?

@kalugny you can check --terminated-pod-gc-threshold too small, we set 10.


remove notification to the arrow dev mail list

Is your feature request related to a problem or challenge? Please describe what you are trying to do.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
(This section helps Arrow developers understand the context and why for this feature, in addition to  the what)
each action in this repo will trigger a mail to the arrow dev mail list, can we remove this action?
@andygrove
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

Really?
We're use issues@ not dev@:

https://github.com/apache/arrow-ballista-python/blob/main/.asf.yaml#L38-L42
<EMAIL_ADDRESS>

Really? We're using issues@ not dev@:

https://github.com/apache/arrow-ballista-python/blob/main/.asf.yaml#L38-L42
<EMAIL_ADDRESS>

yes, i received in 2023-02-03.
Did not receive email from 2023-02-03

Ah, I've changed the configuration by #2.


blockchain: Remove fmt.Println used for testing

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
16 unchanged lines in 4 files lost coverage.
Overall coverage decreased (-0.03%) to 53.244%

Files with Coverage Reduction
New Missed Lines
%

addrmgr/network.go
2
73.58%

integration/rpctest/blockgen.go
2
83.67%

btcec/signature.go
3
92.76%

peer/peer.go
9
74.75%

Totals

Change from base Build<PHONE_NUMBER>:
-0.03%

Covered Lines:
27800

Relevant Lines:
52212

💛  - Coveralls


How to import plugins, e.g. ConvertNetlistToCircuit

So when I run the project, these plugins have been loaded? But I do not see plugins in my browser page deployed in local. How can I find them?

Hi @RaymondMeng, Could you clarify what you mean by importing plugins? These plugins should be generally available for the deployment
https://github.com/symbench/electric-circuits/blob/466f7ca5344d130235709ea9f2a35c859bf94d39/webgme-setup.json#L9-L23


On branch edburns-msft-verisonid-20 Apply timestamp to inconspicuous URL

modified:   weblogic-azure-aks/pom.xml
modified:   weblogic-azure-aks/src/main/arm/createUiDefinition.json
Signed-off-by: Ed Burns<EMAIL_ADDRESS>

The change makes it so when you hover over this link, you see the version of the offer in the query string of the URL.

This technique was innovated by @majguo .


edit playlist page stylng

form changes have resulted in scrolling issues. Fix stcky positioning.

Closed by pull request #141


change my download source

Can I change the download icon from downloading another attribute like 'url' from the object instead of 'big' (preview Image)?
Since I am showing a default icon as my preview image('big') and I need to download the corresponding link for that item.

@lukasz-galka Can you help me out?

I did it using actions . Thanks! Great repository


[ERROR] Moveit package error

I tried to use your moveit package following instructions provided but faced error after running
$ ros2 launch moveit_config_m1013 m1013.launch.py

terminal output below  :
yh99@yh99-ThinkPad-E15-Gen-3:~$ cd ros2_ws
yh99@yh99-ThinkPad-E15-Gen-3:~/ros2_ws$ . install/setup.bash
yh99@yh99-ThinkPad-E15-Gen-3:~/ros2_ws$ ros2 launch moveit_config_m1013 m1013.launch.py
[INFO] [launch]: All log files can be found below /home/yh99/.ros/log/2022-08-16-16-15-30-726717-yh99-ThinkPad-E15-Gen-3-25714
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [rviz2-1]: process started with pid [25720]
[INFO] [static_transform_publisher-2]: process started with pid [25722]
[INFO] [robot_state_publisher-3]: process started with pid [25724]
[INFO] [move_group-4]: process started with pid [25726]
[INFO] [fake_joint_driver_node-5]: process started with pid [25728]
[INFO] [mongo_wrapper_ros.py-6]: process started with pid [25730]
[static_transform_publisher-2] [INFO] [1660634131.243883986] [static_transform_publisher]: Spinning until killed publishing transform from 'base' to 'base_0'
[fake_joint_driver_node-5] Parsing robot urdf xml string.
[robot_state_publisher-3] Parsing robot urdf xml string.
[robot_state_publisher-3] Link base_0 had 1 children
[robot_state_publisher-3] Link link1 had 1 children
[robot_state_publisher-3] Link link2 had 1 children
[robot_state_publisher-3] Link link3 had 1 children
[robot_state_publisher-3] Link link4 had 1 children
[robot_state_publisher-3] Link link5 had 1 children
[robot_state_publisher-3] Link link6 had 0 children
[robot_state_publisher-3] [INFO] [1660634131.250386621] [robot_state_publisher]: got segment base_0
[robot_state_publisher-3] [INFO] [1660634131.250486612] [robot_state_publisher]: got segment link1
[robot_state_publisher-3] [INFO] [1660634131.250499958] [robot_state_publisher]: got segment link2
[robot_state_publisher-3] [INFO] [1660634131.250510928] [robot_state_publisher]: got segment link3
[robot_state_publisher-3] [INFO] [1660634131.250521549] [robot_state_publisher]: got segment link4
[robot_state_publisher-3] [INFO] [1660634131.250532380] [robot_state_publisher]: got segment link5
[robot_state_publisher-3] [INFO] [1660634131.250543839] [robot_state_publisher]: got segment link6
[robot_state_publisher-3] [INFO] [1660634131.250554460] [robot_state_publisher]: got segment world
[fake_joint_driver_node-5] [INFO] [1660634131.256978695] [controller_manager]: Loading controller 'fake_joint_state_controller'
[fake_joint_driver_node-5]
[fake_joint_driver_node-5] [INFO] [1660634131.264792254] [controller_manager]: Loading controller 'dsr_joint_trajectory_controller'
[fake_joint_driver_node-5]
[fake_joint_driver_node-5] [INFO] [1660634131.271731257] [dsr_joint_trajectory_controller]: Controller state will be published at 50Hz.
[fake_joint_driver_node-5] [INFO] [1660634131.272138768] [dsr_joint_trajectory_controller]: Action status changes will be monitored at 20Hz.
[fake_joint_driver_node-5] [WARN] [1660634131.274090655] [rcl_lifecycle]: No transition matching 1 found for current state inactive
[fake_joint_driver_node-5] [ERROR] [1660634131.274113644] []: Unable to start transition 1 from current state inactive: Transition is not registered., at /tmp/binarydeb/ros-foxy-rcl-lifecycle-1.1.13/src/rcl_lifecycle.c:350
[fake_joint_driver_node-5] [WARN] [1660634131.274140686] [rcl_lifecycle]: No transition matching 1 found for current state inactive
[fake_joint_driver_node-5] [ERROR] [1660634131.274151307] []: Unable to start transition 1 from current state inactive: Transition is not registered., at /tmp/binarydeb/ros-foxy-rcl-lifecycle-1.1.13/src/rcl_lifecycle.c:350
[move_group-4] [WARN] [1660634131.285118463] [move_group.move_group]: MoveGroup launched without ~default_planning_pipeline specifying the namespace for the default planning pipeline configuration
[move_group-4] [WARN] [1660634131.285179533] [move_group.move_group]: Falling back to using the the move_group node namespace (deprecated behavior).
[move_group-4] Parsing robot urdf xml string.
[move_group-4] [INFO] [1660634131.288034974] [moveit_rdf_loader.rdf_loader]: Loaded robot model in 0.000857924 seconds
[move_group-4] [INFO] [1660634131.288072846] [moveit_robot_model.robot_model]: Loading robot model 'm1013'...
[move_group-4] [INFO] [1660634131.288084166] [moveit_robot_model.robot_model]: No root/virtual joint specified in SRDF. Assuming fixed joint
[move_group-4] [WARN] [1660634131.288126650] [moveit_robot_model.robot_model]: Link base_0 has visual geometry but no collision geometry. Collision geometry will be left empty. Fix your URDF file by explicitly specifying collision geometry.
[move_group-4] [WARN] [1660634131.288188280] [moveit_robot_model.robot_model]: Link link3 has visual geometry but no collision geometry. Collision geometry will be left empty. Fix your URDF file by explicitly specifying collision geometry.
[move_group-4] [WARN] [1660634131.288206028] [moveit_robot_model.robot_model]: Link link6 has visual geometry but no collision geometry. Collision geometry will be left empty. Fix your URDF file by explicitly specifying collision geometry.
[move_group-4] terminate called after throwing an instance of 'std::bad_alloc'
[move_group-4]   what():  std::bad_alloc
[mongo_wrapper_ros.py-6] [INFO] [1660634131.376432259] [mongodb]: Starting mongodb with db location /tmp/db listening on localhost:33829
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.411+0900 I CONTROL  [initandlisten] MongoDB starting : pid=25811 port=33829 dbpath=/tmp/db 64-bit host=yh99-ThinkPad-E15-Gen-3
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.411+0900 I CONTROL  [initandlisten] db version v3.6.8
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.411+0900 I CONTROL  [initandlisten] git version: 8e540c0b6db93ce994cc548f000900bdc740f80a
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.411+0900 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.1.1f  31 Mar 2020
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.411+0900 I CONTROL  [initandlisten] allocator: tcmalloc
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.411+0900 I CONTROL  [initandlisten] modules: none
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.411+0900 I CONTROL  [initandlisten] build environment:
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.411+0900 I CONTROL  [initandlisten]     distarch: x86_64
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.411+0900 I CONTROL  [initandlisten]     target_arch: x86_64
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.411+0900 I CONTROL  [initandlisten] options: { net: { port: 33829 }, storage: { dbPath: "/tmp/db" } }
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.411+0900 I -        [initandlisten] Detected data files in /tmp/db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.411+0900 I STORAGE  [initandlisten]
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.411+0900 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.411+0900 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.411+0900 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=6894M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),cache_cursors=false,compatibility=(release="3.0",require_max="3.0"),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),statistics_log=(wait=0),verbose=(recovery_progress),
[ERROR] [move_group-4]: process has died [pid 25726, exit code -6, cmd '/home/yh99/ros2_ws/install/moveit_ros_move_group/lib/moveit_ros_move_group/move_group --ros-args --params-file /tmp/launch_params_0j_coqes --params-file /tmp/launch_params_okey37ea --params-file /tmp/launch_params_ejk2bojx --params-file /tmp/launch_params_fy3saj46 --params-file /tmp/launch_params_d_s7ykpi --params-file /tmp/launch_params_i8jiz2j3 --params-file /tmp/launch_params_ta1y747e'].
[rviz2-1] [INFO] [1660634131.558657092] [rviz2]: Stereo is NOT SUPPORTED
[rviz2-1] [INFO] [1660634131.558871748] [rviz2]: OpenGl version: 4.6 (GLSL 4.6)
[rviz2-1] [INFO] [1660634131.580654711] [rviz2]: Stereo is NOT SUPPORTED
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.657+0900 I STORAGE  [initandlisten] WiredTiger message [1660634131:657373][25811:0x7fd368f0cac0], txn-recover: Main recovery loop: starting at 6/4992
[rviz2-1] Warning: class_loader.impl: SEVERE WARNING!!! A namespace collision has occured with plugin factory for class rviz_default_plugins::displays::InteractiveMarkerDisplay. New factory will OVERWRITE existing one. This situation occurs when libraries containing plugins are directly linked against an executable (the one running right now generating this message). Please separate plugins out into their own library or just don't link against the library and use either class_loader::ClassLoader/MultiLibraryClassLoader to open.
[rviz2-1]          at line 253 in /opt/ros/foxy/include/class_loader/class_loader_core.hpp
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.695+0900 I STORAGE  [initandlisten] WiredTiger message [1660634131:695410][25811:0x7fd368f0cac0], txn-recover: Recovering log 6 through 7
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.724+0900 I STORAGE  [initandlisten] WiredTiger message [1660634131:724934][25811:0x7fd368f0cac0], txn-recover: Recovering log 7 through 7
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.747+0900 I STORAGE  [initandlisten] WiredTiger message [1660634131:747163][25811:0x7fd368f0cac0], txn-recover: Set global recovery timestamp: 0
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.755+0900 I CONTROL  [initandlisten]
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.755+0900 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.755+0900 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.755+0900 I CONTROL  [initandlisten]
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.755+0900 I CONTROL  [initandlisten] ** WARNING: This server is bound to localhost.
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.755+0900 I CONTROL  [initandlisten] **          Remote systems will be unable to connect to this server.
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.755+0900 I CONTROL  [initandlisten] **          Start the server with --bind_ip <address> to specify which IP
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.755+0900 I CONTROL  [initandlisten] **          addresses it should serve responses from, or with --bind_ip_all to
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.755+0900 I CONTROL  [initandlisten] **          bind to all interfaces. If this behavior is desired, start the
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.755+0900 I CONTROL  [initandlisten] **          server with --bind_ip <IP_ADDRESS> to disable this warning.
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.755+0900 I CONTROL  [initandlisten]
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.765+0900 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/tmp/db/diagnostic.data'
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:31.765+0900 I NETWORK  [initandlisten] waiting for connections on port 33829
[rviz2-1] [ERROR] [1660634134.701846639] [moveit_ros_visualization.motion_planning_frame]: Action server: /recognize_objects not available
[rviz2-1] /opt/ros/foxy/lib/rviz2/rviz2: symbol lookup error: /home/yh99/ros2_ws/install/moveit_ros_visualization/lib/libmoveit_trajectory_rviz_plugin_core.so.2.2.3: undefined symbol: _ZN10rdf_loader9RDFLoaderC1ERKSt10shared_ptrIN6rclcpp4NodeEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
[ERROR] [rviz2-1]: process has died [pid 25720, exit code 127, cmd '/opt/ros/foxy/lib/rviz2/rviz2 -d /home/yh99/ros2_ws/install/dsr_description2/share/dsr_description2/rviz/moveit.rviz --ros-args -r __node:=rviz2 --params-file /tmp/launch_params_d9jzcwzi --params-file /tmp/launch_params_7tceyydl --params-file /tmp/launch_params_k5huissi --params-file /tmp/launch_params_jleqte1e'].
^C[WARNING] [launch]: user interrupted with ctrl-c (SIGINT)
[robot_state_publisher-3] [INFO] [1660634142.937700682] [rclcpp]: signal_handler(signal_value=2)
[fake_joint_driver_node-5] [INFO] [1660634142.937746098] [rclcpp]: signal_handler(signal_value=2)
[static_transform_publisher-2] [INFO] [1660634142.937761260] [rclcpp]: signal_handler(signal_value=2)
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:42.937+0900 I CONTROL  [signalProcessingThread] got signal 2 (Interrupt), will terminate after current cmd ends
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:42.937+0900 I NETWORK  [signalProcessingThread] shutdown: going to close listening sockets...
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:42.938+0900 I NETWORK  [signalProcessingThread] removing socket file: /tmp/mongodb-33829.sock
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:42.938+0900 I FTDC     [signalProcessingThread] Shutting down full-time diagnostic data capture
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:42.942+0900 I STORAGE  [signalProcessingThread] WiredTigerKVEngine shutting down
[INFO] [static_transform_publisher-2]: process has finished cleanly [pid 25722]
[INFO] [robot_state_publisher-3]: process has finished cleanly [pid 25724]
[INFO] [fake_joint_driver_node-5]: process has finished cleanly [pid 25728]
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:42.974+0900 I STORAGE  [signalProcessingThread] shutdown: removing fs lock...
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:42.974+0900 I CONTROL  [signalProcessingThread] now exiting
[mongo_wrapper_ros.py-6] 2022-08-16T16:15:42.974+0900 I CONTROL  [signalProcessingThread] shutting down with code:0
[mongo_wrapper_ros.py-6] Traceback (most recent call last):
[mongo_wrapper_ros.py-6]   File "/home/yh99/ros2_ws/install/warehouse_ros_mongo/lib/warehouse_ros_mongo/mongo_wrapper_ros.py", line 131, in <module>
[mongo_wrapper_ros.py-6]     check_call("mongod --dbpath {} --port {}".format(dbpath, port.value).split())
[mongo_wrapper_ros.py-6]   File "/usr/lib/python3.8/subprocess.py", line 359, in check_call
[mongo_wrapper_ros.py-6]     retcode = call(*popenargs, **kwargs)
[mongo_wrapper_ros.py-6]   File "/usr/lib/python3.8/subprocess.py", line 342, in call
[mongo_wrapper_ros.py-6]     return p.wait(timeout=timeout)
[mongo_wrapper_ros.py-6]   File "/usr/lib/python3.8/subprocess.py", line 1083, in wait
[mongo_wrapper_ros.py-6]     return self._wait(timeout=timeout)
[mongo_wrapper_ros.py-6]   File "/usr/lib/python3.8/subprocess.py", line 1806, in _wait
[mongo_wrapper_ros.py-6]     (pid, sts) = self._try_wait(0)
[mongo_wrapper_ros.py-6]   File "/usr/lib/python3.8/subprocess.py", line 1764, in _try_wait
[mongo_wrapper_ros.py-6]     (pid, sts) = os.waitpid(self.pid, wait_flags)
[mongo_wrapper_ros.py-6] KeyboardInterrupt
[ERROR] [mongo_wrapper_ros.py-6]: process has died [pid 25730, exit code -2, cmd '/home/yh99/ros2_ws/install/warehouse_ros_mongo/lib/warehouse_ros_mongo/mongo_wrapper_ros.py --ros-args --params-file /tmp/launch_params_3it9dbfq --params-file /tmp/launch_params_kr7wwn21 --params-file /tmp/launch_params_17i0qxrn'].
yh99@yh99-ThinkPad-E15-Gen-3:~/ros2_ws$

I am also getting the same error...


Add 1% tolerance to visual tests

Summary
In the recently merged #9961 the visual comparison tests were re-added to run a visual diff on the visualization output against a known reference image. These improved tests provide us missing coverage and have already found potential bugs in proposed changes, see:
https://github.com/Qiskit/qiskit-terra/pull/10208#discussion_r1260234421
However, the comparison were looking for a 100% match between the reference image and the generated output. In an ideal world we'd be able to rely on this. But in practice an exact comparisons of the images are quite flaky. This is because the actual visualization output is a function of not only our python code in Qiskit, but also upstream python dependencies (such as matplotlib, seaborn, etc) and more importantly those libraries leverage many system libraries and packages. This includes the C libraries for image formats (e.g. libpng), but also things like fonts. A version bump in our CI image's package versions can cause subtle differences in the output of visualizations. The CI images are controlled by Microsoft/Github and isn't something we we can't really depend on being constant forever (even if we used docker for a base test image the upstream images we would build off of that aren't 100% fixed either and could cause similar issues). We've had numerous issues with this in the past with image comparison tests (especially when you start running them cross-platform which isn't the case here) and is why we've oscillated between having them in the test suite and not throughout the development history of Qiskit.
This commit adds a 1% tolerance to the comparison ratio so instead of needing  a 100% match a 99% match is good enough. While this does technically reduce the coverage and a potentially invalid image could slip in that 1% difference, the chance of that happening are fairly unlikely especially weighed against the likelihood of a system change causing a CI blockage (which happened within one day of merging #9961). The only other option is to disable these tests as voting in the CI job, which would all but remove their utility because they will likely go stale (as the testing harness before this did). We may still end up making them non-voting anyway despite the coverage gains if we can't reliably run the tests in CI.
Details and comments

Unfortunately the Azure and GHA webhooks seem to have got lost in the aether - if Matt hasn't had chance to push an empty commit to retrigger them before I'm online tomorrow then I'll re-push his, to avoid screwing up the authorship (since Matt's gpg signature will be lost by the merge anyway).

Never mind - I remembered you can retrigger webhooks by a cycle of close/re-open on the PR.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
7 unchanged lines in 4 files lost coverage.
Overall coverage increased (+0.08%) to 86.026%

Files with Coverage Reduction
New Missed Lines
%

crates/accelerate/src/sabre_swap/mod.rs
1
99.77%

qiskit/circuit/tools/pi_check.py
1
91.23%

crates/qasm2/src/lex.rs
2
90.63%

qiskit/pulse/library/waveform.py
3
93.75%

Totals

Change from base Build<PHONE_NUMBER>:
0.08%

Covered Lines:
71903

Relevant Lines:
83583

💛  - Coveralls

I know this has merged, but just for your info, I found 3 bugs yesterday that were .999 or greater but were visually evident. I suppose we can change the 1% locally by doing global replace every time we use it. Might be nice to parameterize the tolerance for local development use, while maintaining the 1% for CI.


Phaser.GameObjects.Blitter.Bob.setFrame() does not work

I tried to set bob's frame via bob.setFrame("frame_from_bobs_texture") and it doesn't work and the bob had still the same frame.

Thank you for submitting this issue. We have fixed this and the fix has been pushed to the master branch. It will be part of the next release. If you get time to build and test it for yourself we would appreciate that.


Revision year for standard IEC-2001

IEC standardizes COMTRADE 1999 only in 2001.
IEC-60255-24-Electrical-relays-Common-format-for-transient
I have some file with rev-year: 2001.
So the time factor is not read.
Is it possible to:

add 2001 rev-year in comtrade module.
add an equivalence in Comtrade constructor (2001=>1999)
use version just below read rev-yead (2001 will set rev-year to 1999)
other ideas ?

Here is a exrtact of the IEC std:

rev-year - COMTRADE file version is defined by the year of the standard revision, e.g.
2000. Critical, numeric, minimum length = 4 characters, maximum length =
4 characters. This field will identify whether the file structure differs from the
original C37.111-1991 COMTRADE standard. Absence of the field or an
empty field is interpreted to mean that the file complies with the 1991 version
of the standard

Regards,
Vicnet

Hello,
0001-add-iec-60255-24-revision-2001.patch.txt
I have a patch that add 2001 as an available revision, in attached file.
This change the main file and doc file also...
I can push a pull-request my branche if you add me in contributors.
Regards,
Vicnet

Hi @vicnet sorry for the long wait. This IEC doc is new for me. Since its an standard, I guess I must add it to the module. I expect that anyone can contribute here. Let me know if you can create pull requests.

Revision 2001 added at commit e5163ed or release 0.0.13.


[CI] Get Frank working with Azure pipelines

Get Jake replacement, Frank, FPGA runner working with CI build system.

@GregAC has managed to configure Frank to work with Azure pipelines. Currently not in the full FPGA pool, but residing in FPGA2.