performance: aws-cdk-lib takes too long to load

Is it because we are loading all submodules before we display the root module?

It seems like this is mostly network-bound. The UI must wait for assembly.json to be downloaded before it can render, and it seems like my slow network is why this is such a horrible experience.

The navigation bar is rendered immediately after the docs markdown is rendered, but information about submodules is only available in the assembly.json file (33MiB).
@RomainMuller  @iliapolo @MrArnoldPalmer @gabewomble @Chriscbr What information do we need from  assembly.json anyway? Besides information about submodules, it seems like we don't really need it and it's a huge file (for aws-cdk-lib it is

OK, basically, it seems to me that a quick win could be to basically remove the types section from the assembly. For aws-cdk-lib, for example, it will reduce the size from 33.1MiB to 1.1MiB.
We can do this without much risk - when we process packages in the backend, store another file for each package (e.g. assembly-slim.json) without the types section and then change our frontend to use this file instead of assembly.json).

The deployment will have to be two phased here, first backend + reprocess and then front end.
Or implement a fallback on the front end

OK, after going through the backend code, it seems like adding another file is going to be a bit of a project, so I am going to just delete types from assembly.json itself.
To verify this, I've patched up the webapp to delete types immediately after assembly.json is downloaded and verified that the experience is not broken, so I believe it is low risk to simply reprocess.


Enable markdwon-link-check on PR

Checks for broken links in files that have been chnaged in the PR.
Update Makefile with markdown-link-check install command

So markdown-link-check is much more restrictive than netlify is.
For example I did some tests with: content/en/docs/guides/image-update.md.
It gave me an error on /use-cases/gh-actions-auto-pr
It should be ../use-cases/gh-actions-auto-pr.md, personally I agree with this, writing the correct path makes it much easier for me as a developer to know exactly where the file is, same thing to be forced to include file extension.
But It will be very annoying for lots of people in the beginning.
It's also possible to do cron jobs where we check all of the markdown files for broken changes: https://github.com/gaurav-nelson/github-action-markdown-link-check#scheduled-runs.
But it will give us so many error in the beginning, personally I don't think it's worth to enable for now.
But if someone takes one for the team and brings up the files to the markdown-link-checks standard then it would be interesting to enable to make sure no links brakes thanks to time.

Another solution might be to use a plugin in netlify: https://github.com/munter/netlify-plugin-checklinks

I  had a look at the netlify plugin in #181 - it wasn't quite clear to me what exactly needed fixing, so I turned it off again as all the builds were ❌.

Can you make the output more verbose? I'd like to see which files and links the GH action actually checks.
Would there be a way to check the generated links in the HTML?

When you hit a error you will see it in the output, bellow you can find a example:
https://github.com/NissesSenap/website/runs/2806263094?check_suite_focus=true
I also updated the PR and set:
 use-quiet-mode: "no"
Here you can find all config variabels:
https://github.com/gaurav-nelson/github-action-markdown-link-check#custom-variables

Not to be pedantic, but I can't quite see which files were checked in https://github.com/fluxcd/website/pull/320/checks?check_run_id=2819502707 (which was the last run).

I triggerd a few new PR:s but it dosen't look like use-quiet-mode: "no" makes any difference on the output :(
I see two ways forward, ether we trust that it checks the files that we can see in the PR since we are running: check-modified-files-only and think this is good enough.
In the error example PR we can see a good error:

We instead go over to running https://github.com/tcort/markdown-link-check from a pure github actions job with npm installed because there we can control the output much easier.
markdown-link-check content/en/docs/guides/image-update.md -v

FILE: content/en/docs/guides/image-update.md
[✓] https://kind.sigs.k8s.io/docs/user/quick-start/ → Status: 200
[✓] https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line → Status: 200
[✓] ../installation/ → Status: 200
[✓] https://github.com/stefanprodan/podinfo → Status: 200
[✓] mozilla-sops.md → Status: 200
[✓] sealed-secrets.md → Status: 200
[✓] ../components/image/imagepolicies.md#examples → Status: 200
[✓] ../use-cases/gh-actions-auto-pr.md → Status: 200
[✓] https://golang.org/pkg/text/template/ → Status: 200
[✓] webhook-receivers.md → Status: 200
[✓] ../components/notification/receiver.md → Status: 200
[✓] https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity → Status: 200
[✓] https://cloud.google.com/container-registry/docs/advanced-authentication#json-key → Status: 200
[✓] https://cloud.google.com/container-registry/docs/advanced-authentication → Status: 200
[✓] https://docs.microsoft.com/en-us/azure/aks/cluster-container-registry-integration → Status: 200
[✓] ../use-cases/azure.md#aad-pod-identity → Status: 200
[✓] https://github.com/fluxcd/flux2/tree/main/manifests/integrations/registry-credentials-sync/azure → Status: 200
[✓] https://docs.microsoft.com/en-us/azure/container-registry/container-registry-auth-kubernetes → Status: 200
[✓] https://docs.microsoft.com/en-us/azure/container-registry/container-registry-repository-scoped-permissions → Status: 200

19 links checked.

The bad thing here is that we have to write some script that notices changes that we changed in the PR + we have to maintain it.
Both works for me, I think that the github action is good enough but I can deferentially see why you want more output.

The output of the latter seems to be more helpful. Maybe we go with that one for now?

I haven't had time to test this PR in a good way. I will do that tomorrow with a few local PR:s in my own repo.
As the PR is setup now it will check for all files, including the ones that we get with make gen-content, so we might get errors that isn't even generated from this repo. I don't want us to not get any broken links errors when linking to external markdown files, I know I do this in the azure docs for example.
It should be noted that not only updated files is checked with the PR pipeline like it was in the previous example. This will most likely create errors in this check for people that update other parts of the homepage and the job can still fail.
It's possible to solve but will need to do some git magic together with forwarding those files in to the lychee part of the PR workflow.
Notice the GITHUB_TOKEN secret that is defined in the PR, it doesn't seem like you need to do anything with it. All we want to achieve is to not get rate limited towards github.com, for more information see: https://docs.github.com/en/actions/reference/authentication-in-a-workflow
I the cronjob I didn't enable any auto creation of issues like i have in the community repo. This due to that we will get allot of issues right now and I don't want it to generate a new set of issues every day.
We still only check in the markdwon files, we could also change over to checking the generated HTML, the good thing with checking the .md is that we will see issues that isn't included on the homepage and It will be easier to check where the actual error comes from.
I hope I have explained why I have maid the choices that I have made. I will give another update when I had time to do some more tests.

I have also started to take a closer look on the actual errors and I will need to include a config file where we exclude a number of endpoints.
So in short more works is needed, but if you already have feedback please share :)

So I have gotten the list of errors down by allot.
Even if I run with a GITHUB_TOKEN it seems like we git the request rate from github and get 429 errors.
I tried fixing this by lowering the number of concurrency requests --max-concurrency=10 but it doesn't help, I guess the requests are still to fast.
I don't know if this works better if you have GitHub pro or if the requests comes from a GitHub action.
The funny thing is that it's doesn't say i hit any limits:
curl \
  -H "Accept: application/vnd.github.v3+json" \
  -u NissesSenap:$GITHUB_TOKEN https://api.github.com/rate_limit

{
  "resources": {
    "core": {
      "limit": 5000,
      "used": 794,
      "remaining": 4206,
      "reset":<PHONE_NUMBER>
    },
    "search": {
      "limit": 30,
      "used": 0,
      "remaining": 30,
      "reset":<PHONE_NUMBER>
    },
    "graphql": {
      "limit": 5000,
      "used": 0,
      "remaining": 5000,
      "reset":<PHONE_NUMBER>
    },
    "integration_manifest": {
      "limit": 5000,
      "used": 0,
      "remaining": 5000,
      "reset":<PHONE_NUMBER>
    },
    "source_import": {
      "limit": 100,
      "used": 0,
      "remaining": 100,
      "reset":<PHONE_NUMBER>
    },
    "code_scanning_upload": {
      "limit": 500,
      "used": 0,
      "remaining": 500,
      "reset":<PHONE_NUMBER>
    }
  },
  "rate": {
    "limit": 5000,
    "used": 794,
    "remaining": 4206,
    "reset":<PHONE_NUMBER>
  }
}

Many on the adopters page seem to have some protection against curl, for example
curl https://www.offerup.com/
error code: 1020

A easy fix is of course to exclude that file but at at the same time it's one of those files where we can see companies diaper and it's kind of boring to have them around if they don't exist any more.
📝 Summary
---------------------
🔍 Total..........898
✅ Successful.....822
⏳ Timeouts.........0
🔀 Redirected.......0
👻 Excluded........65
🚫 Errors..........11

Errors in content/en/adopters.md
✗ https://www.offerup.com/ (HTTP status client error (403 Forbidden) for url (https://www.offerup.com/))
✗ https://yad2.co.il/ (HTTP status client error (403 Forbidden) for url (https://yad2.co.il/))
✗ https://www.loveholidays.com/ (HTTP status client error (403 Forbidden) for url (https://www.loveholidays.com/))
✗ https://apester.com/ (error sending request for url (https://apester.com/): error trying to connect: tcp connect error: Connection refused (os error 111))
✗ https://www.canva.com/ (HTTP status client error (403 Forbidden) for url (https://www.canva.com/))
✗ https://www.yad2.co.il/ (HTTP status client error (403 Forbidden) for url (https://www.yad2.co.il/))
✗ https://www.blablacar.com/ (HTTP status client error (403 Forbidden) for url (https://www.blablacar.com/))

Errors in content/en/docs/components/source/gitrepositories.md
✗ https://github.com/ (HTTP status client error (429 Too Many Requests) for url (https://github.com/))

Errors in content/en/security.md
✗ https://github.com/hiddeco (HTTP status client error (429 Too Many Requests) for url (https://github.com/hiddeco))

Errors in content/en/blog/2021-04-29-may-update.md
✗ https://hopin.com/events/gitops-con (error sending request for url (https://hopin.com/events/gitops-con): error trying to connect: tcp connect error: Connection refused (os error 111))

Errors in content/en/docs/faq/_index.md
✗ https://stefanprodan.github.io/podinfo2/index.yaml (HTTP status client error (404 Not Found) for url (https://stefanprodan.github.io/podinfo2/index.yaml))

Many many tries later I finally manged to get only files changed in a PR to work, you can see the output here. https://github.com/NissesSenap/website/pull/2/checks?check_run_id=2856013440

I see grep: write error: Broken pipe in the logs - not sure if this is an issue?

You mean in the "Run make gen-content step"?
Run make gen-content
hack/generate-adopters-pages.py
hack/gen-content.py
hack/import-flux2-assets.sh

##########################                                                37.4%
######################################################################## 100.0%

######################################################################## 100.0%
grep: write error: Broken pipe
# Git Repositories
...

This is something that is from the hack/import-flux2-assets.sh script.
I had to do some google but my understanding is that we should be okay.
https://superuser.com/questions/554855/how-can-i-fix-a-broken-pipe-error

Thanks for chasing this up. Looks like we can land this now. We won't catch all the links, because we're not checking the generated HTML, but we check almost all. <3


Inconsistency between server_info.complete_ledgers and tx method.

Rippled API documentation of server_info  explains that complete_ledgers is

Range expression indicating the sequence numbers of the ledger versions the local rippled has in its database.

But when I reviewed the complete_ledgers with my 4 nodes (3 validators + 1 trackers, rippled 1.0.1) private Ripple network (not connected with public Ripple network), things were different.
After a few restarts of tracker node, the complete_ledgers from server_info command showed starting(the lowest) ledger index more than 1,000,000  although the tracker is configured to have full ledgers via [ledger_history] of rippled.cfg.
At this time, the other 3 validators also show much less range of complete ledgers. In other words, the starting ledger indexes of validators are much larger than that of  tracker node.
In this situation, calling tx method for a ledger before the starting index of tracker's complete_ledgers is expected to return empty result or error, considering the above definition of complete_ledgers, cause there all complete ledgers are after the ledger containing the queried transaction.
But, with my above 4 node private network, the tx call return normal and full results.  That means it seems that the node or network has ledgers outside(before) the range described by complete_ledgers.
So, at least for rippled 1.0.1, complete_ledgers shows something else considering tx method.

Here's the most important bit of information:

After a few restarts of tracker node,

After restarting a node, rippled has to check which complete ledgers it has in the node store. This is done in the background at low priority. Therefore, it can take quite some time, especially if you're filling a large gap - such as a million ledgers. If you monitor the completed_ledgers for a while, you should see the lower bound gradually decreasing, and if you give it enough time, it should get back down to your starting ledger.
The reason the tx command works is because it can use the transaction hash to go directly into the node store to find the transaction data. Other commands which depend on a ledger index will be more likely to return an error.


Update Kerberos settings

Set hive.server2.authentication.kerberos.keytab to cdap's keytab
Fix setting of cdap's keytab/principal for node['cdap']['kerberos']

LGTM


Can't open files in remote when using git@ urls (ssh)

GitLens Version: 3.6.1
VSCode Version: 1.13.0
OS Version: Ubuntu 16.04

Steps to Reproduce:

git clone ... a repository from github
Open any file
Ctrl-Shift-P -> "Open File in Remote"
You see "There are no entries to pick from"

Am I missing something that GitLens needs to open in GitHub? I'm coming from Sublime Text where I have an extension to do that for me now.

@zmoazeni I can't reproduce this -- is there any special about the repo you are cloning? Or it could possibly be an issue with Ubuntu -- hrm.

It's a private repository, could that be it?
Other than that, no nothing special. I use git all the time locally and I have a GitHubinator in Sublime Text that works just fine.
I have also cloned them via the<EMAIL_ADDRESS>URL (ssh), so not http.

I have also private repositories, but it's working fine.
But I cloned it with https...

Ah -- ssh url -- that's got to be it. my parsing of that url must be wrong :(

Ahh yeah, I think that it's. I just tested on an open source project I have already cloned using https and it works fine there.

@zmoazeni can you post the format of the url you are using?

Should be somewhat like git@github.com:eamodio/vscode-gitlens.git

Ok great -- just wanted to make sure there wasn't anything else in there for a private repo. :)

no, it's exact the same.

Can one of you check -- is the url in the .git/config file in the [remote "origin"] the same?

I didn't set it up properly, I just got the link from the tool here:

Yeah, I just want to make sure that is the same url that git puts into the config file for the repo. It definitely is for https, but not sure about ssh -- I thought it had something like ssh: at the start.

Yeah @jens1o is onto it. Here's some better steps to reproduce on one of my OSS projects

Clone https://github.com/zmoazeni/harvested via SSH git@github.com:zmoazeni/harvested.git
Open it in VS Code
Open the README.md
Try to open the file remotely

This is the blurb in .git/config
[remote "origin"]
	url = git@github.com:zmoazeni/harvested.git
	fetch = +refs/heads/*:refs/remotes/origin/*

~/projects/harvested (master) ∴ git remote -v
origin	git@github.com:zmoazeni/harvested.git (fetch)
origin	git@github.com:zmoazeni/harvested.git (push)

@zmoazeni please re-open if you are still having issues in v4.0.1

Awesome! Verified it works. Thanks!

I'm having this issue in 4.3.3, was there any sort of special configuration I need to do to get this to work with ssh?

@eamodio @zmoazeni I am having the same issue as well.
I have a ssh cloned repo and it is not parsing the url correctly.
It opens the url in my browser as:
[my repo]/blob/Command%20failed:%20/usr/bin/git%20-c%20core.quotepath=false%20-c%20color.ui=false%20rev-parse%20--abbrev-ref%20--symbolic-full-name%20@%20@%7Bu%7D/[my file]
Is there something I need to configure to make this parse correctly (besides changing the git repo url to https)?

@protoEvangelion In this case it looks like GitLens is failing to find the name of the current branch. Can you open a new issue for this, and follow the instructions to attach the output logging.
Also from your repo -- please try running git rev-parse --abbrev-ref --symbolic-full-name "@" "@{u}" and post the output

@eamodio will do thanks for the guidance :smile:

@eamodio Did some more debugging and figured it out.
I work in a really large repo and only need one of the folders so I was opening a folder in VS Code that was nested deeper than the git config file.
So I am guessing that it couldn't find the git file because it is not at the same level as the folder in Code.
That being said, this sounds a feature more than a bug so if this is something that you think would be good to support let me know and I will open up a ticket. If not I totally understanding :smile:
Thanks for all your hard work I am really enjoying Git Lens!

@protoEvangelion Thanks for the investigation. Yes, please open a new issue for that -- I thought I had that scenario working, but I can dig more into it.

I'm not sure if I am doing something different or if it was fixed in the meantime, but either way it seems to handle having VS Code open in a nested folder correctly now :smile: Thanks!


Refs with schema keys used in addSchema are not resolved

It working. The issue was caused by the order in which schemas are added - will be addressed in v0.5.0


Fix background on Wagtail inverse Readme logo

Relates to #11756
Remove black box behind SVG logo so that dark mode Readme uses the GitHub background.
Small fix & will merge in if it works.

Working well.


[BUG]It's not fair

When I started plot, there was no SIT, so I had to buy it. Unfortunately, I found it on Coinstore , where you can only buy and can't withdraw . So I had to plot without stake, there was no SIT at all for a month, how to start was a very big problem.There is no way to buy SIT - no SIT to stake - get 0 SIT - no SIT to stake.It feels like a dead circle.

https://trade.citex.info/trade/SIT_USDT
You can buy there and transfer to your wallet.

You can find our discord channel in website: https://www.sitnetwork.org. You can get more help in our community.


Feature Request: Docker image

Include a Dockerfile
Create and supply a Docker image (available via Docker Hub)

Posting here per your request to help test this

Available in 0.0.1


Upgrade to Swagger 3.x for Casdoor API docs: https://door.casbin.com/swagger/

Casdoor uses Beego, which helps automatically generate API docs at /swagger path (https://beego.me/docs/advantage/docs.md) like: https://door.casbin.com/swagger/

Based on a user request: https://v2ex.com/t/803669#r_11042731 , we are still using Swagger 2.x and we need to upgrade to Swagger 3.x to have more advanced features enabled. It seems that Beego already supports Swagger 3.x: https://github.com/beego/swagger/issues/4 . We need to find a way to upgrade to it.
I have raised an issue here: https://github.com/beego/bee/issues/809
Here's an example of Swagger 3.x: http://petstore.swagger.io/

What I learnt from this issue is Swagger.json follows version2 and version3 is the Swagger UI. So our UI version is already 3.

@seriouszyx I misunderstood the Swagger version and Swagger UI version previously. Now the issue looks OK.

@seriouszyx can you work on this issue?

@seriouszyx great, the PR has been merged. Can we also group the APIs in Swagger UI like this?

@hsluoyz I'm looking for some ways... But it seems Beego does not support using @Tags annotations. And our API does not use URLs for classification like in the Beego documentation.
func init() {
    ns :=
        web.NewNamespace("/v1",
            web.NSNamespace("/customer",
                web.NSInclude(
                    &controllers.CustomerController{},
                    &controllers.CustomerCookieCheckerController{},
                ),
            ),
            web.NSNamespace("/catalog",
                web.NSInclude(
                    &controllers.CatalogController{},
                ),
            ),
            web.NSNamespace("/newsletter",
                web.NSInclude(
                    &controllers.NewsLetterController{},
                ),
            ),
            web.NSNamespace("/cms",
                web.NSInclude(
                    &controllers.CMSController{},
                ),
            ),
            web.NSNamespace("/suggest",
                web.NSInclude(
                    &controllers.SearchController{},
                ),
            ),
        )
    web.AddNamespace(ns)
}

@seriouszyx we can change our init() code to use NSNamespace and NSInclude. But we will not change the API path. Is this possible?

@hsluoyz I will have a try.

@seriouszyx is busy with other issue. @ComradeProgrammer can you have a try for this? It should not be very difficult I think.


Could not determine the dependencies of task ':release'

Hi
I've added your plugin to my build.gradle file:
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath "com.github.jengelman.gradle.plugins:shadow:1.2.3"
        classpath 'ch.netzwerg:gradle-release-plugin:1.1.0'
    }
}

plugins {
    //Gradle release plugin from: https://github.com/netzwerg/gradle-release-plugin
    id 'ch.netzwerg.release' version '1.1.0'
}

subprojects {
    group 'myGroup'

    version '<IP_ADDRESS>-SNAPSHOT'

    apply plugin: 'java'

    apply plugin: 'com.github.johnrengelman.shadow'
    apply plugin: 'maven'

    // Use Java 8
    sourceCompatibility = 1.8

    repositories {
        mavenLocal()
        jcenter()
        maven {
             // Repositories we use
        }
    }

    dependencies {

        // Dependencies we use
    }

}

When I run:
gradle tasks

I get the following error:

FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':tasks'.

Could not determine the dependencies of task ':release'.

In a multi-project setup like yours, the root project must specify the release dependencies explicitly (see special note in README). You should thus add the following configuration e.g. at the very end of your build.gradle file:
release {
    dependsOn subprojects.build
}

You also might want to upgrade to the latest plugin release 1.2.0 (you are using 1.1.0).

Thanks, it works :-)


os ee bigquery

Migrating ee commits starting with big query change

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.5 out of 9 committers have signed the CLA.:white_check_mark: paul-aiyedun:white_check_mark: misiugodfrey:white_check_mark: yoonminnam:white_check_mark: mattpulver:white_check_mark: jack-mapd:x: steveblackmon-mapd:x: AndrewVDo:x: brenocfg:x: guilhermeleobasYou have signed the CLA already but the status is still pending? Let us recheck it.


Pin version of azure-devops-extension-api

The "api-version" number was set to 5.1, but client Api Services also maintains a version of the required Api. In effect this meant that Azure DevOps Server 2019.1 would not work with the extension.
See https://github.com/gustavobergamim/azdevops-pipeline-approval/issues/3 for additional details.

Hello @BoSorensen,
I'm really sorry for the delay to get back to you. With this change, were you able to use within Azure DevOps (Cloud)?
I will test also from my side to ensure it will not break anything for the Cloud version and I'll get back to you as soon as possible.

Related to #45

Hello @BoSorensen,
I'm merging your changes with the other PR #47 I'm working on. Hope this fix the issue you are facing.
Thanks


Issue/2698 support archive button width (#2756)

Pull request opened by the merge tool on behalf of #2756

Merged into branches iso4 in bc475079e9d521075573d74393b4950173de898b


Subsume part of System inside State

For domain randomization it is not particularly easy to vmap over different System values. For example the gravity values, or the elasticity. Preferably you should be able to do this in env.reset but right now this is not possible as self.sys is a global variable in the Env namespace.
Right now my hacky workaround is to Mock the Brax environment with my custom PyTree-like dataclass so I can modify the env.sys values in a functionally pure way inside the reset function.
It would be nice if brax could expose part of the sys dict/ namespace as a pure argument to env.reset and env.step (e.g., as part of the state).

Wanted to add an example of another workaround: https://github.com/automl/CARL.
In this library for meta-RL, instead of batching environments on the GPU which Brax should support, the CARL-brax environments create VectorizedWrappers from Gymnasium in order to run multiple System variations simultaneously. Which kind of defeats the purpose of GPU parallelization....

Hi @joeryjoery , I believe we considered passing around sys as part of the env state, but IIRC we managed to squeeze out better performance using the current implementation.
https://github.com/google/brax/blob/a89322496dcb07ac5a7e002c2e1d287c8c64b7dd/brax/envs/wrappers/training.py#L199
Feel free to implement a version of the base env class and wrapper which passes the sys in a functional way (e.g. as part of the state.info).  If you manage to get the same training performance out of it, please send it our way!

Hi @joeryjoery , I believe we considered passing around sys as part of the env state, but IIRC we managed to squeeze out better performance using the current implementation.
https://github.com/google/brax/blob/a89322496dcb07ac5a7e002c2e1d287c8c64b7dd/brax/envs/wrappers/training.py#L199
Feel free to implement a version of the base env class and wrapper which passes the sys in a functional way (e.g. as part of the state.info). If you manage to get the same training performance out of it, please send it our way!

Hey thanks for the reply. A big obstacle right now in trying to implement something like this is that the pipeline.init and pipeline.step functions are quite rigid. They only receive self, q, qd, _debug as arguments.
So I'm trying to work around this by doing dependency injection for self by converting it into a PyTree such that I can do jax-transforms on pipeline.init etc.. But mocking this object is causing quite a few problems since I'm running into unforeseen dependencies. For this reason I think this approach is not great as this will definitely lead to problems later on.
@btaba Could the pipeline.init and pipeline.apply functions perhaps  be extended to receive an optional options dictionary? This would require the API to propagate the options in reset and step from wrappers to base (i.e., like the Gymnasium implementation).
In principle, if these are none then the performance stays the same, and if I want to provide it with options then I can wrap the pipeline module with my custom function that modifies the self.sys.
What do you think?

Hi @joeryjoery ,
I'm not quite following why you want to add extra args to pipeline.init and pipeline.step. Does something like this not work: jax.vmap(pipeline.init, in_axes=[custom_in_axes, None, None])(sys, q, qd) ?

Hey, yes this works. But it's not the problem.
The issue is that I have no easy way to propagate sys variations to that point (at least not in a way that is jittable). So for example, the Ant environment has a reset which looks something like this,
def reset(self, rng: jax.Array) -> State:
  """Resets the environment to an initial state."""
  rng, rng1, rng2 = jax.random.split(rng, 3)

  ...

  pipeline_state = self.pipeline_init(q, qd)
  obs = self._get_obs(pipeline_state)
  ...

Now suppose I want to wrap Ant I do not have direct access to the self.pipeline_init call. So I cannot modularly jax.vmap(pipeline.init, ...
A way to solve this is to allow options, for example,
def reset(self, rng: jax.Array, *, options: dict | None = None) -> State:
  """Resets the environment to an initial state."""
  rng, rng1, rng2 = jax.random.split(rng, 3)

  ...

  pipeline_state = self.pipeline_init(q, qd, options=options)  # Pass along here
  obs = self._get_obs(pipeline_state)
  ...

In this way, I can wrap env._pipeline with a function like,
my_env.pipeline_init = my_wrapped_init

def my_wrapped_init(self, q, qd, *, options: dict | None = None):
  sys = self.sys

  if options is not None:
    variations = some_sampling_function(options)  # returns dict
    sys = self.sys.replace(**variations)
    return jax.vmap(self._pipeline.init, in_axes=(0, None, None, None))(sys, q, qd, self._debug)

  return self._pipeline.init(self.sys, q, qd, self._debug)

Comments and questions on the proposed changes:
[1] Subsume part of System inside State: You can do this already by adding System to state.info, and re-writing your env code to use state.info['sys'] instead of self.sys. How performant is that implementation for RL workloads? Then we can discuss a potential API change
[2] Add Options to reset: Strong preference here to add your logic to a wrapper, and to split out the vmap case from the non-vmap case into distinct wrappers. It looks like your proposal is similar to the DomainRandomizationVmapWrapper except you want to do the sys.replace at pipeline.init/pipeline.step time? Does this mean that the env.reset and env.step logic won't be accessing the same randomized version of sys?

Hey thanks a lot for continuing the discussion.
TLDR; I was overthinking this, and the easy solution is indeed a slight modification of DomainRandomizationVmapWrapper.

The problem with the current DomainRandomizationVmapWrapper is that the randomization is done in the __init__ and not in the reset. If I want to resample variations at every call to reset I instead have to reinstantiate the class, which would mean recompiling reset and step which is costly.

What I did now is make randomization_fn dependent on a random key and call it inside reset, the sampled variations are then replaced inside System and stored inside State.info. These only contain the varied fields so that we don't redundantly pass around data.

In my implementation I also do not include vmap as I think it is much easier to just vmap over the DomainRandomization wrapper. I have not tested performance, but the code is much more readable.
This is what I propose:
class DomainRandomization(brax.envs.Wrapper):
    """Wrapper for Procedural Domain Randomization."""

    def __init__(
        self,
        env: Env,
        randomization_fn: Callable[[System, jax.Array], System]
    ):
        super().__init__(env)
        self.randomization_fn = randomization_fn

    def env_fn(self, sys: System) -> Env:
        env = self.env
        env.unwrapped.sys = sys
        return env

    def reset(self, rng: jax.Array) -> State:
        key_reset, key_var = jax.random.split(rng)

        sys = self.env.unwrapped.sys
        variations = self.randomization_fn(sys, key_var)

        new_sys = sys.replace(**variations)
        new_env = self.env_fn(new_sys)

        state = new_env.reset(key_reset)
        state = state.replace(info=state.info | {'sys_var': variations})

        return state

    def step(self, state: State, action: jax.Array) -> State:

        variations = state.info['sys_var']

        sys = self.env.unwrapped.sys
        new_sys = sys.replace(**variations)

        new_env = self.env_fn(new_sys)
        state = new_env.step(state, action)

        state = state.replace(info=state.info | {'sys_var': variations})

        return state

example usage,
def viscosity_randomizer(system: System, key: jax.Array) -> dict[str, Any]:
    return {'viscosity': jax.random.uniform(key, system.viscosity.shape)}

env = envs.create(
    env_name='ant',
    episode_length=1000,
    action_repeat=1,
    auto_reset=True,
    batch_size=None,
)

wrap = DomainRandomization(env, viscosity_randomizer)

s0 = jax.jit(wrap.reset)(jax.random.key(0))
s1 = jax.jit(wrap.reset)(jax.random.key(321))

print(s0.info['sys_var'], s1.info['sys_var'])
>> {'viscosity': Array(0.10536897, dtype=float32)} {'viscosity': Array(0.3906865, dtype=float32)}

print(w.unwrapped.sys.viscosity)
>> Traced<ShapedArray(float32[])>with<DynamicJaxprTrace(level=1/0)>
print(w.default_sys.viscosity)
>> 0.0

Or composing with the VmapWrapper,
sbatch = jax.jit(brax.envs.wrappers.training.VmapWrapper(wrap).reset)(
    jax.random.split(jax.random.key(0), 5)
)
print(sbatch.info['sys_var'])
>> {'viscosity': Array([0.6306313 , 0.5778805 , 0.64515114, 0.95315635, 0.24741197],      dtype=float32)}

It's not really easy to show that this implementation works here, but if you visualize the results using the code shown in the Colab, you can see that it indeed randomizes the System variables per random key.
https://colab.research.google.com/github/google/brax/blob/main/notebooks/training.ipynb#scrollTo=4hHuDp53e4VJ
I also haven't tested performance for RL training. But it's guaranteed faster than using the current DomainRandomizationVmapWrapper due to its non-pure implementation for randomization_fn if your goal is to randomize at every reset call.

Hey!
For 1) I was working on something like this, but didn't quite finish today, will update it later. What do you mean with tree_replace is it a private brax api? I was more thinking along the lines of mocking System with a nested dictionary.
For 2), I don't think there is a way around this, we are passing around more data. If the variations are small (like just the viscosity or gravity), then I'd imagine that this is negligible really, but this can grow yes for something like Humanoid and mass or geoms variations. Though, there are some optimizations here I'd imagine.
I'm not suggesting that the other DomainRandomizationVmapWrapper is wrong, if this works well for sim2real that's amazing.
However, for me, I'm specifically looking at fulfiling my research assumptions as well as I can. This assumes random environments at every sampled trajectory, which makes learning a good policy also severely more difficult. Also, In my experiments the data-collection is rarely the bottleneck and moreso the learner I've found (at least for my very specific use-case; meaning PPO with a recurrent network architecture that also does internal matrix inversions).
If I find the time I'll try run the default agent with the current domain-randomization and the one I posted.

Hi @joeryjoery , tree_replace can be found here:
https://github.com/google/brax/blob/f9a4d73181d699db0fa38b07c5a651f5dc8ee231/brax/base.py#L114
Thanks for the context on [2], I recommend using your own wrapper, looks like you're pretty close with the implementation above! Let us know if you have any trouble


OEO Import Structures

Description of the issue
Currently, which file in the OEO imports which is a little confusing, with some files even being imported into multiple different other ones.
The structure currently looks like this:
oeo-import-structure.pdf
Ideas of solution
There should be some agreement over where each file should be imported into the OEO, so that the structure can be more intuitively understood and redundant imports can be avoided. Ideally, the diagram in the wiki under Modules of the OEO should also reflect the import structure.
Workflow checklist

[ ] I discussed the issue with someone else than me before working on a solution
[x] I already read the latest version of the workflow for this repository
[x] The goal of this ontology is clear to me

I agree that the current structure is confusing. The file readme.md contains this diagram after our large restructuring in issue #1592 for release 2.0.0:

This is much cleaner and should work, too. I don't see a reason why a module is imported multiple times.
Also imho oeo-physical-axioms should be imported directly to oeo-physical as it extends that module, but is irrelevant for the other modules.

This is much cleaner and should work, too. I don't see a reason why a module is imported multiple times.
Also imho oeo-physical-axioms should be imported directly to oeo-physical as it extends that module, but is irrelevant for the other modules.

@l-emele unfortunately, the figure in README / wiki is currently not the actual state, but the one prepared by @h-spinde.
I started testing an untangling process (see figure below) by importing oeo-import-edits into oeo-shared directly and by deleting omo-extracted (since redundant, based on #1755) in #1754.
@l-emele @h-spinde @nelekoehler @areleu could someone please check the current PR for inconsistencies?

@l-emele unfortunately, the figure in README / wiki is currently not the actual state, but the one prepared by @h-spinde.

Ys, I know. But it depicts very well how the import structure should be. That is why I referenced it.

@l-emele @h-spinde @nelekoehler @areleu could someone please check the current PR for inconsistencies?

I checked: In the PR branch OMO-defined annotations do not exist anymore. But we did not use them anyway.

As you are updating the import structure, this seems also the right time to harmonise prefixes across ontology files, see issue #1651.

I now also removed the redundant BFO import.

Partially solved by #1754
I move it to the next milestone for the remaining parts.

@areleu can we implement a test for imports that checks whether a certain class was already imported before (by another ontolotgy import), to avoid duplicate imports?


Add RangeSlider Docs

TBD
Part of #12
Docs for Toolkit PR #
What changes to the docs does this PR provide?

PR Checklist
Please check if your PR fulfills the following requirements:

[ ] For new pages, used the provided template.
[ ] For new features, added an entry in the Table of Contents.
[ ] Ran against a spell and grammar checker.
[ ] Contains NO breaking changes.

Other information

Docs Build status updates of commit da41454:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/TOC.yml
:white_check_mark:Succeeded
View

docs/views/rangeslider.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit bc6b19d:
:clock10: Pending: waiting for processors (5 builds ahead of you)
:warning: Docs Build is busy, currently there are 5 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit bc6b19d:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/TOC.yml
:white_check_mark:Succeeded
View

docs/views/rangeslider.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 74427d6:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/TOC.yml
:white_check_mark:Succeeded
View

docs/views/rangeslider.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


fix(writer): Add missing write-retry handling

This adds write-retries and handling of potentially temporary errors,
as well as errors due to device disconnection.
Connects To: https://github.com/resin-io/etcher/issues/1881
Change-Type: patch
Changelog-Entry: Fix handling of temporary write errors

Can we write tests, at lest for the EIO errors on the writer side?

We shouldn't merge this as it is. We're adding a massive error handler covering way more than we need to cover, potentially leading to non-sense error messages as a result of unrelated error messages that happen to have the same error code. We should limit the scope of the error handler.

I added a comment a few days ago, but GitHub is now helpfully "auto-hiding" it, so I dunno if you saw it? https://github.com/resin-io/etcher/pull/1885#discussion_r154167695


chore: resolve pylint unsubscriptable object issue

For some reason, pylint suddenly started to report the following issue, which is causing our CI to fail.
src/macaron/slsa_analyzer/checks/provenance_l3_check.py:360:39: E1136: Value 'provenance_payload.statement' is unsubscriptable (unsubscriptable-object)

I am pretty sure this is a false positive. I have simplified the code causing the issue to resolve it.

This error seems to be related to a regression in Astroid 2.15.7. See this issue.


[HW] Rajkumar Palani

Name: Rajkumar Palani
Email<EMAIL_ADDRESS>Linkedin Profile: https://www.linkedin.com/in/rajkumarpalani/
Attach the homework screenshots below for both step II and step III:

Looks good Raj, thank you.

Well done! https://api.badgr.io/public/assertions/7OPabay7RB6NiI3xNcwEww?identity__email=rajkumarpalani07%40gmail.com


[Backend-Dev-Python]: Introduction to Django

Description
Give a short note of Django and advantages of using Django in projects
Domain
Backend Dev (Python)
Type of Contribution
Video, Documentation
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of this project.

/assign
I would like to contribute with documentation

/assign

/assign

@AVS18  please check this PR https://github.com/girlscript/winter-of-contributing/pull/4375

I have resolved both issues that were assigned to be in a single PR.


Fix error message when incorrect option typed (#91)

I changed a Trace output to a new GitTfsException so the real error is shown at the command line instead of only when the debug switch is used.

Thanks!


Building a wasm library without needing to define a main()

I'm new to wasm, so I may be misunderstanding things. I'm using the wasi-sdk.cmake file to build a library that I will load as a plugin into a native program using WAMR.
However, in order to get a .wasm file out (and not a .a file) I need to use add_executable(mylib.wasm src/test.cpp) in cmake, which complains about missing the main entrypoint. I could of course provide a dummy, but that seems pointless.

If I use add_library(mylib.wasm src/test.cpp) I get a .a archive instead.
If I use add_library(mylib.wasm SHARED src/test.cpp) I get:clang-16: error: argument unused during compilation: '-shared' [-Werror,-Wunused-command-line-argument]

(and it tries to create mylib.wasm.so which is not what I want, I think?)
If I do allow errors (which is against the policy at my workplace), it still claims to need a main:wasm-ld: error: /opt/wasi-sdk/bin/../share/wasi-sysroot/lib/wasm32-wasi/libc.a(__main_void.o): undefined symbol: main

What is the proper way to create a plugin style library using wasi-sdk (using cmake)? I will be calling functions from the host, I do not need a main as far as I know (I wouldn't need this in a native loadable library for sure).

maybe using exec-model.
target_link_options(reactor
  PRIVATE
    -mexec-model=reactor
)

Yes, that worked in the end (discovered a few weeks ago, but forgot to update this bug report). Perhaps the documentation should be a bit better though, especially for people who are new to WASM (it was not at all clear to me that "reactor" had anything to do with "library")

The problem is that the term "library" in a build system normally means just a part of a program (either as a static or dynamic library).   What a reactor is is a full (statically linked) program without a main function.   There was no existing term for that so WASI invented the term "reactor".    I believe in future versions that term will actually be dropped, but that is the history of the term.
If what you really want is a dynamically loaded library (which is how most plugin systems are built) then WASI doesn't currently support that, but there are efforts to port/standardize the dynamic linking system used by emscripten, so it maybe be possible in the future.
One way to tell if you need to use DSOs if that if your plugins share memory with each other or with some "main" program or with other shared libraries.    With "reactors" each module has own complete copy of libc, along with all its global data, which makes calling across the program boundaries more like an RPC to completely separate program.

One way to tell if you need to use DSOs if that if your plugins share memory with each other or with some "main" program or with other shared libraries. With "reactors" each module has own complete copy of libc, along with all its global data, which makes calling across the program boundaries more like an RPC to completely separate program.

My plugins are completely separate, though sharing libc (and thus reducing memory usage) would be nice.

It seems there are different ways, please correct me if I was wrong @sbc100

add an embedded as a bridge between libc-module-instance and plugin-main-module-instance. It is a shared-nothing model. both libc-module-instance and plugin-main-module-instance have their own linear memory. Embedded should copy/transfer data between two memories(RPC). libc-module-instance like a service to respond requests from variant plugins. there will be only one libc-module-instances in the system.

another one likes shared-everything model. Treat libc as a separate module instance and let every plugin-main-module-instance import libc-module-instance. Every plugin-main-module-instance has its owned libc-module-instance. And two instances share a linear-memory. Since both plugin-main and libc are in language C or C++, it is able to share data layout in this case

It seems there are different ways, please correct me if I was wrong @sbc100

add an embedded as a bridge between libc-module-instance and plugin-main-module-instance. It is a shared-nothing model. both libc-module-instance and plugin-main-module-instance have their own linear memory. Embedded should copy/transfer data between two memories(RPC). libc-module-instance like a service to respond requests from variant plugins. there will be only one libc-module-instances in the system.
another one likes shared-everything model. Treat libc as a separate module instance and let every plugin-main-module-instance import libc-module-instance. Every plugin-main-module-instance has its owned libc-module-instance. And two instances share a linear-memory. Since both plugin-main and libc are in language C or C++, it is able to share data layout in this case

Basically yes.  Note that wasi-sdk does not currently support shared-everything linking or any kind of runtime linking.   The only implementation that I know of today is in emscripten.
In the emscripten model the main module includes libc and the side module(s) import all the libc symbols from the main module: https://emscripten.org/docs/compiling/Dynamic-Linking.html

In the emscripten model the main module includes libc and the side module(s) import all the libc symbols from the main module: https://emscripten.org/docs/compiling/Dynamic-Linking.html

Reading this, it doesn't look like emscripten supports this model for it's WASI support? Only in the web case? Or at least WASI not not explicitly mentioned on that page.

In the emscripten model the main module includes libc and the side module(s) import all the libc symbols from the main module: https://emscripten.org/docs/compiling/Dynamic-Linking.html

Reading this, it doesn't look like emscripten supports this model for it's WASI support? Only in the web case? Or at least WASI not not explicitly mentioned on that page.

Yes, that is correct.


Soundcloud commands do not work

Describe the bug
Nothing from soundcloud is able to be played,
To Reproduce
Steps to reproduce the behavior:

play any soundcloud link or do the search soundcloud command

Expected behavior
expected to play the requested song link/result
Debug Info
System Properties:
  java.version = 1.8.0_291
  java.vm.name = Java HotSpot(TM) 64-Bit Server VM
  java.vm.specification.version = 1.8
  java.runtime.name = Java(TM) SE Runtime Environment
  java.runtime.version = 1.8.0_291-b10
  java.specification.version = 1.8
  os.arch = amd64
  os.name = Windows 10

JMusicBot Information:
  Version = 0.3.4
  Owner =<PHONE_NUMBER>53400075
  Prefix = $
  AltPrefix = null
  MaxSeconds = 500
  NPImages = false
  SongInStatus = true
  StayInChannel = false
  UseEval = false
  UpdateAlerts = true

Dependency Information:
  JDA Version = 4.2.1_253
  JDA-Utilities Version = 3.0.5
  Lavaplayer Version = 1.3.75

Runtime Information:
  Total Memory = 380
  Used Memory = 88

Discord Information:
  ID =<PHONE_NUMBER>23264552
  Guilds = 2
  Users = 2

Additional context
Youtube works fine but any soundcloud link or search result is unable to be played by the bot.

This will be fixed in the next release


Crash on certain youtube embeds (test case)

Hello! I'm using phantomjs 1.9.1 to generate PDF from a HTML page that can contain embedded youtube iframes. In some constellation, phantomjs crashes.
Test HTML is here:
http://jsfiddle.net/QLXG3/
HTML Content:

Test Script:
var page = require('webpage').create(),
system = require('system'),
address, output, size;

address = system.args[1];
output = system.args[2];

size = system.args[3].split('*');
page.viewportSize = { width: size[0], height: size[1], margin: '0px' };
page.paperSize = { width: size[0], height: size[1], margin: '0px' };

page.zoomFactor = 1;

page.open(address, function (status) {
    if (status !== 'success') {
        console.log('Unable to load the address!');
        phantom.exit();
    } else {
        window.setTimeout(function () {
            page.render(output);
            phantom.exit();
        }, 200);
    }
});

Crashing Command:
phantomjs phantom-pdf.js "http://jsfiddle.net/QLXG3/embedded/result/" ./test.pdf "1000*1000"

Crash Walk:
Operating system: Linux
0.0.0 Linux 3.2.0-39-generic #62-Ubuntu SMP Thu Feb 28 00:28:53 UTC 2013 x86_64
CPU: amd64
family 6 model 58 stepping 9
8 CPUs
Crash reason:  SIGSEGV
Crash address: 0x110
Thread 0 (crashed)
0  phantomjs!WebCore::RenderView::getRetainedWidgets [RenderView.cpp : 587 + 0x0]
rbx = 0x0000000000000000   r12 = 0x0000000000000100
r13 = 0x00007f2b38f36718   r14 = 0x00007fffa2a50100
r15 = 0x0000000000000000   rip = 0x0000000000a96aba
rsp = 0x00007fffa2a4fc90   rbp = 0x00007fffa2a4fcc0
Found by: given as instruction pointer in context
1  phantomjs!WebCore::RenderView::updateWidgetPositions [RenderView.cpp : 615 + 0x4]
rbx = 0x00007f2b38f36600   r12 = 0x0000000000000000
r13 = 0x00007f2b38f36718   r14 = 0x00007fffa2a50100
r15 = 0x0000000000000000   rip = 0x0000000000a9ab3d
rsp = 0x00007fffa2a4fcc0   rbp = 0x0000000000000000
Found by: call frame info
2  phantomjs!WebCore::FrameView::performPostLayoutTasks [FrameView.cpp : 2011 + 0x4]
rbx = 0x00007f2b38f36600   r12 = 0x00007f2b38f36600
r13 = 0x00007f2b38f36718   r14 = 0x00007fffa2a50100
r15 = 0x0000000000000000   rip = 0x00000000008edb75
rsp = 0x00007fffa2a4fd00   rbp = 0x0000000000000000
Found by: call frame info
3  phantomjs!WebCore::FrameView::layout [FrameView.cpp : 843 + 0x7]
rbx = 0x00007f2b34c86a58   r12 = 0x00007f2b38f36600
r13 = 0x00007f2b35199c00   r14 = 0x00007fffa2a50100
r15 = 0x0000000000000000   rip = 0x00000000008f36b3
rsp = 0x00007fffa2a4fd60   rbp = 0x0000000000000001
Found by: call frame info
4  phantomjs!WebCore::RenderFrameBase::layoutWithFlattening [RenderFrameBase.cpp : 49 + 0xc]
rbx = 0x00007f2b34c86a58   r12 = 0x00007f2b38f36600
r13 = 0x0000000000000000   r14 = 0x00007fffa2a50100
r15 = 0x0000000000000000   rip = 0x000000000116e8d4
rsp = 0x00007fffa2a4fe50   rbp = 0x00007f2b34c86a58
Found by: call frame info
5  phantomjs!WebCore::RenderBlock::layoutInlineChildren [RenderObject.h : 539 + 0xb]
rbx = 0x00007f2b34c86a58   r12 = 0x0000000000000008
r13 = 0x00007f2b34c86420   r14 = 0x00007fffa2a50100
r15 = 0x00007f2b34c86878   rip = 0x00000000009ef57c
rsp = 0x00007fffa2a4fec0   rbp = 0x00007f2b34c86878
Found by: call frame info
6  phantomjs!WebCore::RenderBlock::layoutBlock [RenderBlock.cpp : 1260 + 0x1c]
rbx = 0x00007f2b38f0be60   r12 = 0x0000000000000008
r13 = 0x00007f2b34c86420   r14 = 0x00007fffa2a50100
r15 = 0x0000000000000000   rip = 0x00000000009da573
rsp = 0x00007fffa2a4ff90   rbp = 0x00007f2b34c86878
Found by: call frame info
7  phantomjs!WebCore::RenderBlock::layout [RenderBlock.cpp : 1158 + 0xf]
rbx = 0x00007f2b34c86878   r12 = 0x00007f2b34c86878
r13 = 0x00007f2b34c86688   r14 = 0x00007fffa2a501cc
r15 = 0x0000000000000008   rip = 0x00000000009b909d
rsp = 0x00007fffa2a500d0   rbp = 0x0000000000000000
Found by: call frame info
8  phantomjs!WebCore::RenderBlock::layoutBlockChild [RenderBlock.cpp : 2009 + 0xc]
rbx = 0x0000000000000008   r12 = 0x00007f2b34c86878
r13 = 0x00007f2b34c86688   r14 = 0x00007fffa2a501cc
r15 = 0x0000000000000008   rip = 0x00000000009d3040
rsp = 0x00007fffa2a500e0   rbp = 0x0000000000000000
Found by: call frame info
9  phantomjs!WebCore::RenderBlock::layoutBlockChildren [RenderBlock.cpp : 1947 + 0x16]
rbx = 0x00007f2b34c86878   r12 = 0x00007f2b34c86688
r13 = 0x00007fffa2a501c0   r14 = 0x0000000000000000
r15 = 0x0000000000000000   rip = 0x00000000009d90a1
rsp = 0x00007fffa2a501b0   rbp = 0x0000000000000000
Found by: call frame info
10  phantomjs!WebCore::RenderBlock::layoutBlock [RenderBlock.cpp : 1262 + 0x14]
rbx = 0x00007f2b38f0be60   r12 = 0x0000000000000000
r13 = 0x00007f2b34c86420   r14 = 0x00007fffa2a50400
r15 = 0x0000000000000000   rip = 0x00000000009db152
rsp = 0x00007fffa2a50210   rbp = 0x00007f2b34c86688
Found by: call frame info
11  phantomjs!WebCore::RenderBlock::layout [RenderBlock.cpp : 1158 + 0xf]
rbx = 0x00007f2b34c86688   r12 = 0x00007f2b34c86688
r13 = 0x00007f2b34c86420   r14 = 0x00007fffa2a5044c
r15 = 0x0000000000000000   rip = 0x00000000009b909d
rsp = 0x00007fffa2a50350   rbp = 0x0000000000000000
Found by: call frame info
12  phantomjs!WebCore::RenderBlock::layoutBlockChild [RenderBlock.cpp : 2009 + 0xc]
rbx = 0x0000000000000000   r12 = 0x00007f2b34c86688
r13 = 0x00007f2b34c86420   r14 = 0x00007fffa2a5044c
r15 = 0x0000000000000000   rip = 0x00000000009d3040
rsp = 0x00007fffa2a50360   rbp = 0x0000000000000000
Found by: call frame info
13  phantomjs!WebCore::RenderBlock::layoutBlockChildren [RenderBlock.cpp : 1947 + 0x16]
rbx = 0x00007f2b34c86688   r12 = 0x00007f2b34c86420
r13 = 0x00007fffa2a50440   r14 = 0x0000000000000000
r15 = 0x0000000000000000   rip = 0x00000000009d90a1
rsp = 0x00007fffa2a50430   rbp = 0x0000000000000000
Found by: call frame info
14  phantomjs!WebCore::RenderBlock::layoutBlock [RenderBlock.cpp : 1262 + 0x14]
rbx = 0x0000000000000000   r12 = 0x0000000000000000
r13 = 0x00007f2b34c86420   r14 = 0x00007f2b34c86500
r15 = 0x0000000000000000   rip = 0x00000000009db152
rsp = 0x00007fffa2a50490   rbp = 0x00007f2b34c86420
Found by: call frame info
15  phantomjs!WebCore::RenderBlock::layout [RenderBlock.cpp : 1158 + 0xf]
rbx = 0x00007f2b34c86420   r12 = 0x00000000000003e8
r13 = 0x00007f2b34a1a800   r14 = 0x00007f2b34c86550
r15 = 0x00007f2b34c86420   rip = 0x00000000009b909d
rsp = 0x00007fffa2a505d0   rbp = 0x00007f2b34c86420
Found by: call frame info
16  phantomjs!WebCore::RenderView::layout [RenderView.cpp : 130 + 0x7]
rbx = 0x0000000000000000   r12 = 0x00000000000003e8
r13 = 0x00007f2b34a1a800   r14 = 0x00007f2b34c86550
r15 = 0x00007f2b34c86420   rip = 0x0000000000a9b050
rsp = 0x00007fffa2a505e0   rbp = 0x00007f2b34c86420
Found by: call frame info
17  phantomjs!WebCore::FrameView::layout [FrameView.cpp : 964 + 0xb]
rbx = 0x00007f2b34c86688   r12 = 0x00007f2b38f35580
r13 = 0x00007f2b34a1a800   r14 = 0x00007f2b34c86550
r15 = 0x00007f2b34c86420   rip = 0x00000000008f393c
rsp = 0x00007fffa2a50650   rbp = 0x0000000000000000
Found by: call frame info
18  phantomjs!WebCore::ScrollView::updateScrollbars [ScrollView.cpp : 456 + 0x5]
rbx = 0x00007f2b38f3563c   r12 = 0x00000000048a5410
r13 = 0x0000000000000001   r14 = 0x00007f2b351c17b0
r15 = 0x00007f2b35147400   rip = 0x000000000098b069
rsp = 0x00007fffa2a50740   rbp = 0x00007f2b38f35580
Found by: call frame info
19  phantomjs!WebCore::ScrollView::setBoundsSize [ScrollView.cpp : 838 + 0xe]
rbx = 0x00007fffa2a50ad0   r12 = 0x00000000048a5410
r13 = 0x0000000000000001   r14 = 0x00007f2b351c17b0
r15 = 0x00007f2b35147400   rip = 0x000000000098b550
rsp = 0x00007fffa2a50980   rbp = 0x00007f2b38f35580
Found by: call frame info
20  phantomjs!WebCore::RenderWidget::setWidgetGeometry [RenderWidget.cpp : 188 + 0x9]
rbx = 0x00007f2b351c1720   r12 = 0x00000000048a5410
r13 = 0x0000000000000001   r14 = 0x00007f2b351c17b0
r15 = 0x00007f2b35147400   rip = 0x0000000000a9c531
rsp = 0x00007fffa2a509a0   rbp = 0x00007fffa2a50a90
Found by: call frame info
21  phantomjs!WebCore::RenderWidget::updateWidgetPosition [RenderWidget.cpp : 356 + 0x2e]
rbx = 0x00007fffa2a50a90   r12 = 0x00000000000003e8
r13 = 0x0000000000000000   r14 = 0x0000000000000000
r15 = 0x0000000000000000   rip = 0x0000000000a9d05e
rsp = 0x00007fffa2a50a20   rbp = 0x00007f2b351c1720
Found by: call frame info
22  phantomjs!WebCore::RenderFrameBase::layoutWithFlattening [RenderFrameBase.cpp : 55 + 0x7]
rbx = 0x0000000000000000   r12 = 0x00007f2b38f35580
r13 = 0x00007f2b34c86420   r14 = 0x00007fffa2a50c7c
r15 = 0x0000000000000001   rip = 0x000000000116e912
rsp = 0x00007fffa2a50b20   rbp = 0x00007f2b351c1720
Found by: call frame info
23  phantomjs!WebCore::RenderBlock::layoutBlockChild [RenderBlock.cpp : 2009 + 0xc]
rbx = 0x0000000000000000   r12 = 0x00007f2b351c1720
r13 = 0x00007f2b351c1258   r14 = 0x00007fffa2a50c7c
r15 = 0x0000000000000024   rip = 0x00000000009d3040
rsp = 0x00007fffa2a50b90   rbp = 0x0000000000000000
Found by: call frame info
24  phantomjs!WebCore::RenderBlock::layoutBlockChildren [RenderBlock.cpp : 1947 + 0x16]
rbx = 0x00007f2b351c1720   r12 = 0x00007f2b351c1258
r13 = 0x00007fffa2a50c70   r14 = 0x0000000000000000
r15 = 0x0000000000000024   rip = 0x00000000009d90a1
rsp = 0x00007fffa2a50c60   rbp = 0x0000000000000000
Found by: call frame info
25  phantomjs!WebCore::RenderBlock::layoutBlock [RenderBlock.cpp : 1262 + 0x14]
rbx = 0x00007f2b38f0be60   r12 = 0x0000000000000000
r13 = 0x00007f2b35395320   r14 = 0x00007fffa2a50e00
r15 = 0x0000000000000000   rip = 0x00000000009db152
rsp = 0x00007fffa2a50cc0   rbp = 0x00007f2b351c1258
Found by: call frame info
26  phantomjs!WebCore::RenderBlock::layout [RenderBlock.cpp : 1158 + 0xf]
rbx = 0x00007f2b351c1258   r12 = 0x00007f2b351c1258
r13 = 0x00007f2b35396148   r14 = 0x00007fffa2a50efc
r15 = 0x0000000000000000   rip = 0x00000000009b909d
rsp = 0x00007fffa2a50e00   rbp = 0x0000000000000000
Found by: call frame info
27  phantomjs!WebCore::RenderBlock::layoutBlockChild [RenderBlock.cpp : 2009 + 0xc]
rbx = 0x0000000000000000   r12 = 0x00007f2b351c1258
r13 = 0x00007f2b35396148   r14 = 0x00007fffa2a50efc
r15 = 0x0000000000000000   rip = 0x00000000009d3040
rsp = 0x00007fffa2a50e10   rbp = 0x0000000000000000
Found by: call frame info
28  phantomjs!WebCore::RenderBlock::layoutBlockChildren [RenderBlock.cpp : 1947 + 0x16]
rbx = 0x00007f2b351c1258   r12 = 0x00007f2b35396148
r13 = 0x00007fffa2a50ef0   r14 = 0x0000000000000000
r15 = 0x0000000000000000   rip = 0x00000000009d90a1
rsp = 0x00007fffa2a50ee0   rbp = 0x0000000000000000
Found by: call frame info
29  phantomjs!WebCore::RenderBlock::layoutBlock [RenderBlock.cpp : 1262 + 0x14]
rbx = 0x00007f2b38f0be60   r12 = 0x0000000000000000
r13 = 0x0000000000000000   r14 = 0x0000000000000000
r15 = 0x0000000000000000   rip = 0x00000000009db152
rsp = 0x00007fffa2a50f40   rbp = 0x00007f2b35396148
Found by: call frame info
30  phantomjs!WebCore::RenderBlock::layout [RenderBlock.cpp : 1158 + 0xf]
rbx = 0x00007f2b35396148   r12 = 0x00007f2b35396148
r13 = 0x00007f2b35395830   r14 = 0x00007fffa2a5117c
r15 = 0x0000000000000001   rip = 0x00000000009b909d
rsp = 0x00007fffa2a51080   rbp = 0x0000000000000000
Found by: call frame info
31  phantomjs!WebCore::RenderBlock::layoutBlockChild [RenderBlock.cpp : 2009 + 0xc]
rbx = 0x0000000000000001   r12 = 0x00007f2b35396148
r13 = 0x00007f2b35395830   r14 = 0x00007fffa2a5117c
r15 = 0x0000000000000001   rip = 0x00000000009d3040
rsp = 0x00007fffa2a51090   rbp = 0x0000000000000000
Found by: call frame info
32  phantomjs!WebCore::RenderBlock::layoutBlockChildren [RenderBlock.cpp : 1947 + 0x16]
rbx = 0x00007f2b35396148   r12 = 0x00007f2b35395830
r13 = 0x00007fffa2a51170   r14 = 0x0000000000000000
r15 = 0x0000000000000001   rip = 0x00000000009d90a1
rsp = 0x00007fffa2a51160   rbp = 0x0000000000000000
Found by: call frame info
33  phantomjs!WebCore::RenderBlock::layoutBlock [RenderBlock.cpp : 1262 + 0x14]
rbx = 0x00007f2b38f0be60   r12 = 0x0000000000000000
r13 = 0x00007f2b35395320   r14 = 0x00007fffa2a51300
r15 = 0x0000000000000000   rip = 0x00000000009db152
rsp = 0x00007fffa2a511c0   rbp = 0x00007f2b35395830
Found by: call frame info
34  phantomjs!WebCore::RenderBlock::layout [RenderBlock.cpp : 1158 + 0xf]
rbx = 0x00007f2b35395830   r12 = 0x00007f2b35395830
r13 = 0x00007f2b35395778   r14 = 0x00007fffa2a513fc
r15 = 0x0000000000000000   rip = 0x00000000009b909d
rsp = 0x00007fffa2a51300   rbp = 0x0000000000000000
Found by: call frame info
35  phantomjs!WebCore::RenderBlock::layoutBlockChild [RenderBlock.cpp : 2009 + 0xc]
rbx = 0x0000000000000000   r12 = 0x00007f2b35395830
r13 = 0x00007f2b35395778   r14 = 0x00007fffa2a513fc
r15 = 0x0000000000000000   rip = 0x00000000009d3040
rsp = 0x00007fffa2a51310   rbp = 0x0000000000000000
Found by: call frame info
36  phantomjs!WebCore::RenderBlock::layoutBlockChildren [RenderBlock.cpp : 1947 + 0x16]
rbx = 0x00007f2b35395830   r12 = 0x00007f2b35395778
r13 = 0x00007fffa2a513f0   r14 = 0x0000000000000000
r15 = 0x0000000000000000   rip = 0x00000000009d90a1
rsp = 0x00007fffa2a513e0   rbp = 0x0000000000000000
Found by: call frame info
37  phantomjs!WebCore::RenderBlock::layoutBlock [RenderBlock.cpp : 1262 + 0x14]
rbx = 0x00007f2b38f0be60   r12 = 0x0000000000000000
r13 = 0x00007f2b35395320   r14 = 0x00007fffa2a51600
r15 = 0x0000000000000000   rip = 0x00000000009db152
rsp = 0x00007fffa2a51440   rbp = 0x00007f2b35395778
Found by: call frame info
38  phantomjs!WebCore::RenderBlock::layout [RenderBlock.cpp : 1158 + 0xf]
rbx = 0x00007f2b35395778   r12 = 0x00007f2b35395778
r13 = 0x00007f2b35395588   r14 = 0x00007fffa2a5167c
r15 = 0x0000000000000000   rip = 0x00000000009b909d
rsp = 0x00007fffa2a51580   rbp = 0x0000000000000000
Found by: call frame info
39  phantomjs!WebCore::RenderBlock::layoutBlockChild [RenderBlock.cpp : 2009 + 0xc]
rbx = 0x0000000000000000   r12 = 0x00007f2b35395778
r13 = 0x00007f2b35395588   r14 = 0x00007fffa2a5167c
r15 = 0x0000000000000000   rip = 0x00000000009d3040
rsp = 0x00007fffa2a51590   rbp = 0x0000000000000000
Found by: call frame info
40  phantomjs!WebCore::RenderBlock::layoutBlockChildren [RenderBlock.cpp : 1947 + 0x16]
rbx = 0x00007f2b35395778   r12 = 0x00007f2b35395588
r13 = 0x00007fffa2a51670   r14 = 0x0000000000000000
r15 = 0x0000000000000000   rip = 0x00000000009d90a1
rsp = 0x00007fffa2a51660   rbp = 0x0000000000000000
Found by: call frame info
41  phantomjs!WebCore::RenderBlock::layoutBlock [RenderBlock.cpp : 1262 + 0x14]
rbx = 0x00007f2b38f0be60   r12 = 0x0000000000000000
r13 = 0x00007f2b35395320   r14 = 0x00007fffa2a51800
r15 = 0x0000000000000000   rip = 0x00000000009db152
rsp = 0x00007fffa2a516c0   rbp = 0x00007f2b35395588
Found by: call frame info
42  phantomjs!WebCore::RenderBlock::layout [RenderBlock.cpp : 1158 + 0xf]
rbx = 0x00007f2b35395588   r12 = 0x00007f2b35395588
r13 = 0x00007f2b35395320   r14 = 0x00007fffa2a518fc
r15 = 0x0000000000000000   rip = 0x00000000009b909d
rsp = 0x00007fffa2a51800   rbp = 0x0000000000000000
Found by: call frame info
43  phantomjs!WebCore::RenderBlock::layoutBlockChild [RenderBlock.cpp : 2009 + 0xc]
rbx = 0x0000000000000000   r12 = 0x00007f2b35395588
r13 = 0x00007f2b35395320   r14 = 0x00007fffa2a518fc
r15 = 0x0000000000000000   rip = 0x00000000009d3040
rsp = 0x00007fffa2a51810   rbp = 0x0000000000000000
Found by: call frame info
44  phantomjs!WebCore::RenderBlock::layoutBlockChildren [RenderBlock.cpp : 1947 + 0x16]
rbx = 0x00007f2b35395588   r12 = 0x00007f2b35395320
r13 = 0x00007fffa2a518f0   r14 = 0x0000000000000000
r15 = 0x0000000000000000   rip = 0x00000000009d90a1
rsp = 0x00007fffa2a518e0   rbp = 0x0000000000000000
Found by: call frame info
45  phantomjs!WebCore::RenderBlock::layoutBlock [RenderBlock.cpp : 1262 + 0x14]
rbx = 0x0000000000000000   r12 = 0x0000000000000000
r13 = 0x00007f2b35395320   r14 = 0x00007f2b35395400
r15 = 0x0000000000000000   rip = 0x00000000009db152
rsp = 0x00007fffa2a51940   rbp = 0x00007f2b35395320
Found by: call frame info
46  phantomjs!WebCore::RenderBlock::layout [RenderBlock.cpp : 1158 + 0xf]
rbx = 0x00007f2b35395320   r12 = 0x00000000000003e8
r13 = 0x00007f2b3519b400   r14 = 0x00007f2b35395450
r15 = 0x00007f2b35395320   rip = 0x00000000009b909d
rsp = 0x00007fffa2a51a80   rbp = 0x00007f2b35395320
Found by: call frame info
47  phantomjs!WebCore::RenderView::layout [RenderView.cpp : 130 + 0x7]
rbx = 0x00000000000003e8   r12 = 0x00000000000003e8
r13 = 0x00007f2b3519b400   r14 = 0x00007f2b35395450
r15 = 0x00007f2b35395320   rip = 0x0000000000a9b050
rsp = 0x00007fffa2a51a90   rbp = 0x00007f2b35395320
Found by: call frame info
48  phantomjs!WebCore::FrameView::layout [FrameView.cpp : 964 + 0xb]
rbx = 0x00000000000003e8   r12 = 0x00007f2b38f35dc0
r13 = 0x00007f2b3519b400   r14 = 0x00007f2b35395450
r15 = 0x00007f2b35395320   rip = 0x00000000008f393c
rsp = 0x00007fffa2a51b00   rbp = 0x0000000000000000
Found by: call frame info
49  phantomjs!WebCore::Document::updateLayout [Document.cpp : 1580 + 0xc]
rbx = 0x00007f2b38f35dc0   r12 = 0x00007f2b3519b400
r13 = 0x00007f2b35611108   r14 = 0xffff000000000000
r15 = 0x00007fffa2a51e10   rip = 0x0000000000605c15
rsp = 0x00007fffa2a51bf0   rbp = 0x00007f2b34a1a800
Found by: call frame info
50  phantomjs!WebCore::Document::updateLayoutIgnorePendingStylesheets [Document.cpp : 1573 + 0x8]
rbx = 0x00007f2b350fe000   r12 = 0x0000000000000000
r13 = 0x00007f2b35611108   r14 = 0xffff000000000000
r15 = 0x00007fffa2a51e10   rip = 0x000000000060f7a7
rsp = 0x00007fffa2a51c30   rbp = 0x00007f2aef02a1e8
Found by: call frame info
51  phantomjs!WebCore::HTMLBodyElement::scrollLeft [HTMLBodyElement.cpp : 308 + 0x7]
rbx = 0x00007f2b350fe000   r12 = 0x0000000000000200
r13 = 0x00007f2b35611108   r14 = 0xffff000000000000
r15 = 0x00007fffa2a51e10   rip = 0x000000000075a0cd
rsp = 0x00007fffa2a51c60   rbp = 0x00007f2aef02a1e8
Found by: call frame info
52  phantomjs!WebCore::jsElementScrollLeft [JSElement.cpp : 380 + 0x8]
rbx = 0x00007f2aee047a98   r12 = 0x0000000000000200
r13 = 0x00007f2b35611108   r14 = 0xffff000000000000
r15 = 0x00007fffa2a51e10   rip = 0x0000000000c25931
rsp = 0x00007fffa2a51c70   rbp = 0x00007f2aef02a1e8
Found by: call frame info
53  phantomjs!JSC::cti_op_get_by_val [PropertySlot.h : 75 + 0xc]
rbx = 0x00007f2aee047a98   r12 = 0x0000000000000200
r13 = 0x00007f2b35611108   r14 = 0xffff000000000000
r15 = 0x00007fffa2a51e10   rip = 0x0000000000f67409
rsp = 0x00007fffa2a51c80   rbp = 0x00007f2aef02a1e8
Found by: call frame info
54  0x7f2af0076353
rbx = 0x00007f2af007615f   r12 = 0x0000000000000200
r13 = 0x00007f2b35611108   r14 = 0xffff000000000000
r15 = 0xffff000000000002   rip = 0x00007f2af0076354
rsp = 0x00007fffa2a51e10   rbp = 0x00007fffa2a51eb0
Found by: call frame info
55  phantomjs!JSC::Interpreter::executeCall [JITCode.h : 77 + 0x16]
rip = 0x0000000000f2e376   rsp = 0x00007fffa2a51ec0
Found by: stack scanning
56  phantomjs!JSC::call [CallData.cpp : 38 + 0x21]
rbx = 0x00007f2b38f1f850   r12 = 0x0000000000000002
r13 = 0x00007f2b34cedcf0   r14 = 0x00007f2b38f86b88
r15 = 0x00007f2b38ed0dd0   rip = 0x0000000000f7291d
rsp = 0x00007fffa2a51f90   rbp = 0x00007f2b350fe0d0
Found by: call frame info
57  phantomjs!WebCore::JSEventListener::handleEvent [JSMainThreadExecState.h : 48 + 0xc]
rbx = 0x00007f2b38f1f850   r12 = 0x0000000000000002
r13 = 0x00007f2b34cedcf0   r14 = 0x00007f2b38f86b88
r15 = 0x00007f2b38ed0dd0   rip = 0x00000000010041c3
rsp = 0x00007fffa2a51fa0   rbp = 0x00007f2b350fe0d0
Found by: call frame info
58  phantomjs!WebCore::EventTarget::fireEventListeners [EventTarget.cpp : 360 + 0x1b]
rbx = 0x00007f2b34cedcf0   r12 = 0x00007f2b38f86b88
r13 = 0x00007f2b34c8ddc0   r14 = 0x00007f2b34c8dea8
r15 = 0x00007f2b34cf2820   rip = 0x000000000063c3e1
rsp = 0x00007fffa2a52210   rbp = 0x0000000001003a30
Found by: call frame info
59  phantomjs!WebCore::EventTarget::fireEventListeners [EventTarget.cpp : 329 + 0x11]
rbx = 0x00007f2b34c8ddc0   r12 = 0x0000000002af5b08
r13 = 0x00007f2b34c8ddc0   r14 = 0x0000000000000001
r15 = 0x000000000476dff0   rip = 0x000000000063d563
rsp = 0x00007fffa2a52290   rbp = 0x00007f2b38f86b88
Found by: call frame info
60  phantomjs!WebCore::DOMWindow::dispatchEvent [DOMWindow.cpp : 1591 + 0xa]
rbx = 0x00007fffa2a523b0   r12 = 0x0000000002af5b08
r13 = 0x00007f2b34c8ddc0   r14 = 0x0000000000000001
r15 = 0x000000000476dff0   rip = 0x00000000008b7de8
rsp = 0x00007fffa2a522b0   rbp = 0x00007f2b38f86b88
Found by: call frame info
61  phantomjs!WebCore::FrameLoader::stopLoading [FrameLoader.cpp : 394 + 0x20]
rbx = 0x0000000000000000   r12 = 0x00007f2b38f86b88
r13 = 0x0000000000000000   r14 = 0x0000000000000000
r15 = 0x000000000476dff0   rip = 0x000000000085e1c3
rsp = 0x00007fffa2a52320   rbp = 0x00007f2b3539e978
Found by: call frame info
62  phantomjs!WebCore::FrameLoader::detachFromParent [FrameLoader.cpp : 463 + 0x22]
rbx = 0x00007f2b3539eae0   r12 = 0x00007f2b3539e978
r13 = 0x00007f2b3539e900   r14 = 0x0000000000000001
r15 = 0x000000000476dff0   rip = 0x000000000085ea14
rsp = 0x00007fffa2a52400   rbp = 0x00007f2b38f0d200
Found by: call frame info
63  phantomjs!WebCore::FrameLoader::detachChildren [FrameLoader.cpp : 2614 + 0xb]
rbx = 0x00007f2b38f0d1f8   r12 = 0x00007f2b3502bb78
r13 = 0x00007f2b3502bb00   r14 = 0x0000000000000001
r15 = 0x000000000476dff0   rip = 0x000000000085ee30
rsp = 0x00007fffa2a52440   rbp = 0x00007f2b38f0d200
Found by: call frame info
64  phantomjs!WebCore::FrameLoader::detachFromParent [FrameLoader.cpp : 2700 + 0x7]
rbx = 0x00007f2b3502bce0   r12 = 0x00007f2b3502bb78
r13 = 0x00007f2b3502bb00   r14 = 0x0000000000000001
r15 = 0x000000000476dff0   rip = 0x000000000085ea3c
rsp = 0x00007fffa2a524a0   rbp = 0x00007f2b38fed238
Found by: call frame info
65  phantomjs!WebCore::FrameLoader::detachChildren [FrameLoader.cpp : 2614 + 0xb]
rbx = 0x00007f2b38fed230   r12 = 0x00007f2b3539f278
r13 = 0x00007f2b3539f200   r14 = 0x0000000000000001
r15 = 0x000000000476dff0   rip = 0x000000000085ee30
rsp = 0x00007fffa2a524e0   rbp = 0x00007f2b38fed238
Found by: call frame info
66  phantomjs!WebCore::FrameLoader::detachFromParent [FrameLoader.cpp : 2700 + 0x7]
rbx = 0x00007f2b3539f3e0   r12 = 0x00007f2b3539f278
r13 = 0x00007f2b3539f200   r14 = 0x0000000000000001
r15 = 0x000000000476dff0   rip = 0x000000000085ea3c
rsp = 0x00007fffa2a52540   rbp = 0x000000000477e990
Found by: call frame info
67  phantomjs!QWebPage::~QWebPage [qwebpage.cpp : 1988 + 0x4]
rbx = 0x000000000477ea60   r12 = 0x0000000000000001
r13 = 0x0000000000000078   r14 = 0x000000000477f630
r15 = 0x000000000476dff0   rip = 0x000000000049102b
rsp = 0x00007fffa2a52580   rbp = 0x000000000477e990
Found by: call frame info
68  phantomjs!CustomPage::~CustomPage [webpage.cpp : 90 + 0x7]
rbx = 0x000000000477e990   r12 = 0x0000000000000001
r13 = 0x0000000000000078   r14 = 0x000000000477f630
r15 = 0x000000000476dff0   rip = 0x0000000000421120
rsp = 0x00007fffa2a525a0   rbp = 0x000000000476dff0
Found by: call frame info
69  phantomjs!QObjectPrivate::deleteChildren [qobject.cpp : 1907 + 0xe]
rbx = 0x000000000476e008   r12 = 0x0000000000000001
r13 = 0x0000000000000078   r14 = 0x000000000477f630
r15 = 0x000000000476dff0   rip = 0x0000000001cf0627
rsp = 0x00007fffa2a525c0   rbp = 0x000000000476dff0
Found by: call frame info
70  phantomjs!QObject::~QObject [qobject.cpp : 926 + 0x7]
rbx = 0x00000000047756e0   r12 = 0x0000000000000000
r13 = 0x00000000047acde0   r14 = 0x000000000477f630
r15 = 0x000000000476dff0   rip = 0x0000000001cf8eb3
rsp = 0x00007fffa2a525f0   rbp = 0x000000000477e7c0
Found by: call frame info
71  phantomjs!WebPage::~WebPage [webpage.cpp : 398 + 0x7]
rbx = 0x000000000477e700   r12 = 0x0000000000000000
r13 = 0x000000000000000e   r14 = 0x0000000000000000
r15 = 0x0000000001d5f220   rip = 0x0000000000411b4e
rsp = 0x00007fffa2a52660   rbp = 0x00007fffa2a526b0
Found by: call frame info
72  phantomjs!qDeleteAll<QList<QPointer >::const_iterator> [qalgorithms.h : 322 + 0xa]
rbx = 0x00007fffa2a526a0   r12 = 0x0000000000000000
r13 = 0x000000000000000e   r14 = 0x0000000000000000
r15 = 0x0000000001d5f220   rip = 0x000000000040d8d5
rsp = 0x00007fffa2a52680   rbp = 0x00007fffa2a526b0
Found by: call frame info
73  phantomjs!Phantom::doExit [qalgorithms.h : 330 + 0x4]
rbx = 0x0000000004754060   r12 = 0x0000000000000000
r13 = 0x000000000000000e   r14 = 0x0000000000000000
r15 = 0x0000000001d5f220   rip = 0x00000000004080ee
rsp = 0x00007fffa2a526a0   rbp = 0x0000000004754010
Found by: call frame info
74  phantomjs!Phantom::exit [phantom.cpp : 400 + 0x9]
rbx = 0x0000000004754010   r12 = 0x0000000004754010
r13 = 0x000000000000000e   r14 = 0x0000000000000000
r15 = 0x0000000001d5f220   rip = 0x000000000040927f
rsp = 0x00007fffa2a526e0   rbp = 0x0000000000000000
Found by: call frame info
75  phantomjs!Phantom::qt_static_metacall [moc_phantom.cpp : 124 + 0x6]
rbx = 0x00007fffa2a52ee0   r12 = 0x0000000004754010
r13 = 0x000000000000000e   r14 = 0x0000000000000000
r15 = 0x0000000001d5f220   rip = 0x000000000046950f
rsp = 0x00007fffa2a52710   rbp = 0x00007fffa2a52ee0
Found by: call frame info
76  phantomjs!Phantom::qt_metacall [moc_phantom.cpp : 169 + 0xe]
rbx = 0x0000000000000000   r12 = 0x0000000004754010
r13 = 0x000000000000000e   r14 = 0x0000000000000000
r15 = 0x0000000001d5f220   rip = 0x00000000004697ef
rsp = 0x00007fffa2a52740   rbp = 0x00007fffa2a52ee0
Found by: call frame info
77  phantomjs!JSC::Bindings::QtRuntimeMetaMethod::call [qt_runtime.cpp : 1455 + 0x17]
rbx = 0x00007fffa2a52cb0   r12 = 0x00007fffa2a52ee0
r13 = 0x00007fffa2a53080   r14 = 0x0000000000000000
r15 = 0x0000000001d5f220   rip = 0x0000000000552f07
rsp = 0x00007fffa2a527e0   rbp = 0x0000000000000001
Found by: call frame info
78  phantomjs!JSC::cti_op_call_NotJSFunction [JITStubs.cpp : 2191 + 0x3]
rbx = 0x0000000000000000   r12 = 0x00007f2b35611078
r13 = 0x00007f2aeef945b0   r14 = 0x00007fffa2a535e8
r15 = 0x00007f2b35611038   rip = 0x0000000000f5d075
rsp = 0x00007fffa2a53590   rbp = 0x00007fffa2a535f0
Found by: call frame info
79  0x7f2af00c2825
rbx = 0x00007f2b35611038   r12 = 0x0000000000000200
r13 = 0x00007f2b35611038   r14 = 0xffff000000000000
r15 = 0xffff000000000002   rip = 0x00007f2af00c2826
rsp = 0x00007fffa2a535f0   rbp = 0x00007fffa2a53690
Found by: call frame info
80  phantomjs!JSC::Interpreter::executeCall [JITCode.h : 77 + 0x16]
rip = 0x0000000000f2e376   rsp = 0x00007fffa2a536a0
Found by: stack scanning
81  phantomjs!JSC::call [CallData.cpp : 38 + 0x21]
rbx = 0x0000000002af8d10   r12 = 0x00007f2b3504dae8
r13 = 0x00007f2b3504dae0   r14 = 0x00007f2b38ed0150
r15 = 0x00007fffa2a537c0   rip = 0x0000000000f7291d
rsp = 0x00007fffa2a53770   rbp = 0x0000000000000000
Found by: call frame info
82  phantomjs!WebCore::ScheduledAction::executeFunctionInContext [JSMainThreadExecState.h : 48 + 0xb]
rbx = 0x0000000002af8d10   r12 = 0x00007f2b3504dae8
r13 = 0x00007f2b3504dae0   r14 = 0x00007f2b38ed0150
r15 = 0x00007fffa2a537c0   rip = 0x00000000010130f9
rsp = 0x00007fffa2a53780   rbp = 0x0000000000000000
Found by: call frame info
83  phantomjs!WebCore::ScheduledAction::execute [ScheduledAction.cpp : 132 + 0x29]
rbx = 0x00007f2b38f15400   r12 = 0x00007f2b3504dae0
r13 = 0x00007f2b38f38800   r14 = 0x0000000000000001
r15 = 0x00007f2b38f388d0   rip = 0x00000000010137cd
rsp = 0x00007fffa2a538f0   rbp = 0x00007f2b38ed0150
Found by: call frame info
84  phantomjs!WebCore::DOMTimer::fired [DOMTimer.cpp : 148 + 0xa]
rbx = 0x00007f2b34faf6e8   r12 = 0x00007f2b3504dae0
r13 = 0x0000000002af5b08   r14 = 0x0000000000000003
r15 = 0x00007fffa2a53990   rip = 0x00000000008b46e9
rsp = 0x00007fffa2a53950   rbp = 0x00007f2b38f388d0
Found by: call frame info
85  phantomjs!WebCore::ThreadTimers::sharedTimerFiredInternal [ThreadTimers.cpp : 112 + 0x8]
rbx = 0x00007f2b34faf6e8   r12 = 0x0000000000000000
r13 = 0x0000000004526ab0   r14 = 0x000000000001ddf8
r15 = 0x00007fffa2a54120   rip = 0x0000000000993983
rsp = 0x00007fffa2a539e0   rbp = 0x00007f2b38f347a8
Found by: call frame info
86  phantomjs!QObject::event [qobject.cpp : 1156 + 0x8]
rbx = 0x0000000004763f70   r12 = 0x00007fffa2a54120
r13 = 0x0000000004526ab0   r14 = 0x000000000001ddf8
r15 = 0x00007fffa2a54120   rip = 0x0000000001cefba4
rsp = 0x00007fffa2a53a20   rbp = 0x0000000004763f70
Found by: call frame info
87  phantomjs!QApplicationPrivate::notify_helper [qapplication.cpp : 4562 + 0xc]
rbx = 0x00007fffa2a543a0   r12 = 0x00007fffa2a54120
r13 = 0x0000000004526ab0   r14 = 0x000000000001ddf8
r15 = 0x00007fffa2a54120   rip = 0x00000000015decaf
rsp = 0x00007fffa2a53bc0   rbp = 0x0000000004763f70
Found by: call frame info
88  phantomjs!QApplication::notify [qapplication.cpp : 4423 + 0x17]
rbx = 0x00007fffa2a543a0   r12 = 0x00007fffa2a54120
r13 = 0x00007fffa2a543a0   r14 = 0x000000000001ddf8
r15 = 0x00007fffa2a54120   rip = 0x00000000015e793b
rsp = 0x00007fffa2a53bf0   rbp = 0x0000000004763f70
Found by: call frame info
89  phantomjs!QCoreApplication::notifyInternal [qcoreapplication.cpp : 946 + 0x2]
rbx = 0x00000000045241c0   r12 = 0x00007fffa2a54120
r13 = 0x00007fffa2a543a0   r14 = 0x000000000001ddf8
r15 = 0x00007fffa2a54120   rip = 0x0000000001cde3b4
rsp = 0x00007fffa2a540c0   rbp = 0x0000000004763f70
Found by: call frame info
90  phantomjs!QTimerInfoList::activateTimers [qcoreapplication.h : 231 + 0x14]
rbx = 0x0000000004528898   r12 = 0x0000000000000000
r13 = 0x0000000000000000   r14 = 0x000000000001ddf8
r15 = 0x00007fffa2a54120   rip = 0x0000000001d07ead
rsp = 0x00007fffa2a54110   rbp = 0x00000000007bf52f
Found by: call frame info
91  phantomjs!QEventDispatcherUNIX::processEvents [qeventdispatcher_unix.cpp : 941 + 0x7]
rbx = 0x0000000000000000   r12 = 0x00007fffa2a541f0
r13 = 0x0000000004523560   r14 = 0x0000000000000001
r15 = 0x00000000045242d8   rip = 0x0000000001d080c0
rsp = 0x00007fffa2a541a0   rbp = 0x0000000004528030
Found by: call frame info
92  phantomjs!QEventDispatcherQPA::processEvents [qeventdispatcher_qpa.cpp : 246 + 0x4]
rbx = 0x000000000477bfa0   r12 = 0x0000000000000000
r13 = 0x0000000004523560   r14 = 0x00007fffa2a54230
r15 = 0x00000000045242d8   rip = 0x000000000163a6a4
rsp = 0x00007fffa2a541f0   rbp = 0x0000000004528030
Found by: call frame info
93  phantomjs!QEventLoop::processEvents [qeventloop.cpp : 149 + 0x1]
rbx = 0x000000000477bfa0   r12 = 0x00007fffa2a542c0
r13 = 0x00007fffa2a542d0   r14 = 0x0000000004524230
r15 = 0x00000000045242d8   rip = 0x0000000001cdd495
rsp = 0x00007fffa2a54230   rbp = 0x00007fffa2a54270
Found by: call frame info
94  phantomjs!QEventLoop::exec [qeventloop.cpp : 200 + 0x4]
rbx = 0x000000000477bfa0   r12 = 0x00007fffa2a542c0
r13 = 0x00007fffa2a542d0   r14 = 0x0000000004524230
r15 = 0x00000000045242d8   rip = 0x0000000001cdd8f8
rsp = 0x00007fffa2a54260   rbp = 0x00007fffa2a543a0
Found by: call frame info
95  phantomjs!QCoreApplication::exec [qcoreapplication.cpp : 1218 + 0x4]
rbx = 0x00000000045241c0   r12 = 0x00007fffa2a543a0
r13 = 0x00007fffa2a54568   r14 = 0x00007fffa2a54310
r15 = 0x0000000000000000   rip = 0x0000000001cdf7ab
rsp = 0x00007fffa2a542c0   rbp = 0x00000000045241c0
Found by: call frame info
96  phantomjs!main [main.cpp : 121 + 0x4]
rbx = 0x0000000004754010   r12 = 0x00007fffa2a543a0
r13 = 0x00007fffa2a54568   r14 = 0x00007fffa2a54310
r15 = 0x0000000000000000   rip = 0x0000000000427cb2
rsp = 0x00007fffa2a54300   rbp = 0x00007fffa2a54538
Found by: call frame info
97  libc-2.15.so + 0x2176c
rbx = 0x0000000000000000   r12 = 0x0000000000407cc0
r13 = 0x00007fffa2a54530   r14 = 0x0000000000000000
r15 = 0x0000000000000000   rip = 0x00007f2b3776476d
rsp = 0x00007fffa2a54460   rbp = 0x0000000000000000
Found by: call frame info
98  phantomjs + 0x27a5f
rip = 0x0000000000427a60   rsp = 0x00007fffa2a54480
Found by: stack scanning
Thread 1
0  libc-2.15.so + 0xbf83d
rbx = 0x00007f2b36a11cf0   r12 = 0x0000000002ad0160
r13 = 0x00007f2b36a129c0   r14 = 0x0000000000000000
r15 = 0x0000000000000003   rip = 0x00007f2b3780283d
rsp = 0x00007f2b36a11c40   rbp = 0x00000000ffffffff
Found by: given as instruction pointer in context
1  libc-2.15.so + 0xbf6db
rip = 0x00007f2b378026dc   rsp = 0x00007f2b36a11c50
Found by: stack scanning
2  phantomjs + 0x18b5c4f
rip = 0x0000000001cb5c50   rsp = 0x00007f2b36a11c58
Found by: stack scanning
3  libc-2.15.so + 0x109f7
rip = 0x00007f2b377539f8   rsp = 0x00007f2b36a11c70
Found by: stack scanning
4  ld-2.15.so + 0xa522
rip = 0x00007f2b38e19523   rsp = 0x00007f2b36a11cc8
Found by: stack scanning
5  libc-2.15.so + 0xbf848
rip = 0x00007f2b37802849   rsp = 0x00007f2b36a11cd8
Found by: stack scanning
6  libpthread-2.15.so + 0xfcaf
rip = 0x00007f2b38323cb0   rsp = 0x00007f2b36a11ce8
Found by: stack scanning
7  ld-2.15.so + 0xe773
rip = 0x00007f2b38e1d774   rsp = 0x00007f2b36a11d80
Found by: stack scanning
8  libc-2.15.so + 0xe54f
rip = 0x00007f2b37751550   rsp = 0x00007f2b36a11d98
Found by: stack scanning
9  ld-2.15.so + 0x15234
rip = 0x00007f2b38e24235   rsp = 0x00007f2b36a11dd0
Found by: stack scanning
10  libpthread-2.15.so + 0xe9f9
rip = 0x00007f2b383229fa   rsp = 0x00007f2b36a11de0
Found by: stack scanning
11  phantomjs!WTF::TCMalloc_PageHeap::scavengerThread [FastMalloc.cpp : 2499 + 0x4]
rip = 0x00000000004dda2e   rsp = 0x00007f2b36a11e20
Found by: stack scanning
12  phantomjs!WTF::TCMalloc_PageHeap::runScavengerThread [FastMalloc.cpp : 1618 + 0x4]
rbx = 0x0000000000000000   r12 = 0x00007f2b38325880
r13 = 0x00007f2b36a129c0   r14 = 0x0000000000000000
r15 = 0x0000000000000003   rip = 0x00000000004ddc99
rsp = 0x00007f2b36a11ea0   rbp = 0x0000000000000000
Found by: call frame info
13  libpthread-2.15.so + 0x7e99
rbx = 0x0000000000000000   r12 = 0x00007f2b38325880
r13 = 0x00007f2b36a129c0   r14 = 0x0000000000000000
r15 = 0x0000000000000003   rip = 0x00007f2b3831be9a
rsp = 0x00007f2b36a11eb0   rbp = 0x0000000000000000
Found by: call frame info
14  libpthread-2.15.so + 0x1187f
rip = 0x00007f2b38325880   rsp = 0x00007f2b36a11f58
Found by: stack scanning
15  libc-2.15.so + 0xf3cbc
rip = 0x00007f2b37836cbd   rsp = 0x00007f2b36a11fc0
Found by: stack scanning
Thread 2
0  libc-2.15.so + 0xed023
rbx = 0x0000000000000000   r12 = 0x00007f2b36210d80
r13 = 0x0000000000000008   r14 = 0x00007f2b30000a98
r15 = 0x00007f2b30000d30   rip = 0x00007f2b37830023
rsp = 0x00007f2b36210b50   rbp = 0x00007f2b300008e0
Found by: given as instruction pointer in context
1  phantomjs!qt_safe_select [qcore_unix.cpp : 83 + 0x15]
rip = 0x0000000001d06307   rsp = 0x00007f2b36210b60
Found by: stack scanning
2  phantomjs!QEventDispatcherUNIXPrivate::doSelect [qeventdispatcher_unix.cpp : 223 + 0xd]
rbx = 0x00007f2b300012b0   r12 = 0x00007f2b36210d80
r13 = 0x00007f2b300008e0   r14 = 0x0000000000000000
r15 = 0x00007f2b30000d30   rip = 0x0000000001d075c7
rsp = 0x00007f2b36210bf0   rbp = 0x00007f2b300008e0
Found by: call frame info
3  phantomjs!QEventDispatcherUNIX::processEvents [qeventdispatcher_unix.cpp : 937 + 0x4]
rbx = 0x00007f2b300012b0   r12 = 0x00007f2b36210d80
r13 = 0x00007f2b300008c0   r14 = 0x0000000000000001
r15 = 0x0000000004579fd8   rip = 0x0000000001d08072
rsp = 0x00007f2b36210d30   rbp = 0x00007f2b300008e0
Found by: call frame info
4  phantomjs!QEventLoop::processEvents [qeventloop.cpp : 149 + 0x1]
rbx = 0x00007f2b300012b0   r12 = 0x00007f2b36210e10
r13 = 0x00007f2b36210e20   r14 = 0x0000000004524230
r15 = 0x0000000004579fd8   rip = 0x0000000001cdd495
rsp = 0x00007f2b36210d80   rbp = 0x00007f2b36210dc0
Found by: call frame info
5  phantomjs!QEventLoop::exec [qeventloop.cpp : 200 + 0x4]
rbx = 0x00007f2b300012b0   r12 = 0x00007f2b36210e10
r13 = 0x00007f2b36210e20   r14 = 0x0000000004524230
r15 = 0x0000000004579fd8   rip = 0x0000000001cdd8f8
rsp = 0x00007f2b36210db0   rbp = 0x00007fffa2a543a0
Found by: call frame info
6  phantomjs!QThread::exec [qthread.cpp : 542 + 0xc]
rbx = 0x0000000004579f50   r12 = 0x0000000004579fd8
r13 = 0x0000000000000001   r14 = 0x0000000000000000
r15 = 0x0000000000000003   rip = 0x0000000001bdfdd6
rsp = 0x00007f2b36210e10   rbp = 0x0000000004579fd8
Found by: call frame info
7  phantomjs!QThreadPrivate::start [qthread_unix.cpp : 338 + 0x9]
rbx = 0x0000000004579fd8   r12 = 0x000000000457a020
r13 = 0x0000000000000001   r14 = 0x0000000000000000
r15 = 0x0000000000000003   rip = 0x0000000001be2ca2
rsp = 0x00007f2b36210e60   rbp = 0x000000000472e040
Found by: call frame info
8  libpthread-2.15.so + 0x7e99
rbx = 0x0000000000000000   r12 = 0x00007fffa2a53880
r13 = 0x00007f2b362119c0   r14 = 0x0000000000000000
r15 = 0x0000000000000003   rip = 0x00007f2b3831be9a
rsp = 0x00007f2b36210eb0   rbp = 0x0000000000000000
Found by: call frame info
Thread 3
0  libc-2.15.so + 0xed023
rbx = 0x00007f2b3481bd30   r12 = 0x00000000007bf52e
r13 = 0x0000000000000017   r14 = 0x00007f2ae8000a98
r15 = 0x00007f2ae8000d30   rip = 0x00007f2b37830023
rsp = 0x00007f2b3481bb50   rbp = 0x00000000000d6a00
Found by: given as instruction pointer in context
1  phantomjs!qt_safe_select [qcore_unix.cpp : 93 + 0x16]
rip = 0x0000000001d06208   rsp = 0x00007f2b3481bb60
Found by: stack scanning
2  phantomjs!QEventDispatcherUNIXPrivate::doSelect [qeventdispatcher_unix.cpp : 223 + 0xd]
rbx = 0x00007f2ae80012b0   r12 = 0x00007f2b3481bd80
r13 = 0x00007f2ae80008e0   r14 = 0x00007f2b3481bd30
r15 = 0x00007f2ae8000d30   rip = 0x0000000001d075c7
rsp = 0x00007f2b3481bbf0   rbp = 0x00007f2ae80008e0
Found by: call frame info
3  phantomjs!QEventDispatcherUNIX::processEvents [qeventdispatcher_unix.cpp : 937 + 0x4]
rbx = 0x00007f2ae80012b0   r12 = 0x00007f2b3481bd80
r13 = 0x00007f2ae80008c0   r14 = 0x0000000000000001
r15 = 0x00000000047b2528   rip = 0x0000000001d08072
rsp = 0x00007f2b3481bd30   rbp = 0x00007f2ae80008e0
Found by: call frame info
4  phantomjs!QEventLoop::processEvents [qeventloop.cpp : 149 + 0x1]
rbx = 0x00007f2ae80012b0   r12 = 0x00007f2b3481be10
r13 = 0x00007f2b3481be20   r14 = 0x0000000004524230
r15 = 0x00000000047b2528   rip = 0x0000000001cdd495
rsp = 0x00007f2b3481bd80   rbp = 0x00007f2b3481bdc0
Found by: call frame info
5  phantomjs!QEventLoop::exec [qeventloop.cpp : 200 + 0x4]
rbx = 0x00007f2ae80012b0   r12 = 0x00007f2b3481be10
r13 = 0x00007f2b3481be20   r14 = 0x0000000004524230
r15 = 0x00000000047b2528   rip = 0x0000000001cdd8f8
rsp = 0x00007f2b3481bdb0   rbp = 0x00007fffa2a543a0
Found by: call frame info
6  phantomjs!QThread::exec [qthread.cpp : 542 + 0xc]
rbx = 0x00000000047b24a0   r12 = 0x00000000047b2528
r13 = 0x0000000000000001   r14 = 0x0000000000000000
r15 = 0x0000000000000003   rip = 0x0000000001bdfdd6
rsp = 0x00007f2b3481be10   rbp = 0x00000000047b2528
Found by: call frame info
7  phantomjs!QThreadPrivate::start [qthread_unix.cpp : 338 + 0x9]
rbx = 0x00000000047b2528   r12 = 0x00000000047b25e0
r13 = 0x0000000000000001   r14 = 0x0000000000000000
r15 = 0x0000000000000003   rip = 0x0000000001be2ca2
rsp = 0x00007f2b3481be60   rbp = 0x00000000047b2480
Found by: call frame info
8  libpthread-2.15.so + 0x7e99
rbx = 0x0000000000000000   r12 = 0x00007fffa2a50030
r13 = 0x00007f2b3481c9c0   r14 = 0x0000000000000000
r15 = 0x0000000000000003   rip = 0x00007f2b3831be9a
rsp = 0x00007f2b3481beb0   rbp = 0x0000000000000000
Found by: call frame info
Thread 4
0  libpthread-2.15.so + 0xc0fe
rbx = 0x00007f2ae80053d0   r12 = 0x0000000000000009
r13 = 0x00007f2aefffedc0   r14 = 0xffffffffffffff92
r15 = 0x0000000000000000   rip = 0x00007f2b383200fe
rsp = 0x00007f2aefffed40   rbp = 0x00007f2ae80056f0
Found by: given as instruction pointer in context
1  phantomjs!QWaitCondition::wait [qwaitcondition_unix.cpp : 84 + 0x7]
rip = 0x0000000001be39b7   rsp = 0x00007f2aefffeda0
Found by: stack scanning
2  phantomjs!QThreadPoolThread::run [qthreadpool.cpp : 141 + 0x1d]
rbx = 0x00007f2ae80052f0   r12 = 0x00007f2ae8005379
r13 = 0x0000000000000002   r14 = 0x00007f2ae8092320
r15 = 0x0000000000000003   rip = 0x0000000001bd781d
rsp = 0x00007f2aefffee20   rbp = 0x00007f2ae80056f0
Found by: call frame info
3  phantomjs!QThreadPrivate::start [qthread_unix.cpp : 338 + 0x9]
rbx = 0x00007f2ae40012b0   r12 = 0x00007f2ae8005890
r13 = 0x0000000000000001   r14 = 0x0000000000000000
r15 = 0x0000000000000003   rip = 0x0000000001be2ca2
rsp = 0x00007f2aefffee60   rbp = 0x00007f2ae80056f0
Found by: call frame info
4  libpthread-2.15.so + 0x7e99
rbx = 0x0000000000000000   r12 = 0x00007f2b3481a590
r13 = 0x00007f2aeffff9c0   r14 = 0x0000000000000000
r15 = 0x0000000000000003   rip = 0x00007f2b3831be9a
rsp = 0x00007f2aefffeeb0   rbp = 0x0000000000000000
Found by: call frame info
Thread 5
0  libpthread-2.15.so + 0xbd84
rbx = 0x0000000004919e20   r12 = 0x004189374bc6a7ef
r13 = 0xffffffffffffffff   r14 = 0x0000000004919e48
r15 = 0x000000000490f6c0   rip = 0x00007f2b3831fd84
rsp = 0x00007f2aeef2ad10   rbp = 0x00007f2b34c515d0
Found by: given as instruction pointer in context
1  phantomjs!QWaitCondition::wait [qwaitcondition_unix.cpp : 86 + 0xa]
rip = 0x0000000001be39d5   rsp = 0x00007f2aeef2ad40
rbp = 0x00007f2b34c515d0
Found by: stack scanning
2  phantomjs!WTF::ThreadCondition::timedWait [ThreadingQt.cpp : 253 + 0x12]
rbx = 0x00007f2b34c515c8   r12 = 0x0000000000000001
r13 = 0x00007f2b34c515c8   r14 = 0x00007f2b34c515d0
r15 = 0x00007f2aeef2ae20   rip = 0x00000000004e70ea
rsp = 0x00007f2aeef2adc0   rbp = 0x00007f2b34c515d0
Found by: call frame info
3  phantomjs!WTF::MessageQueueWebCore::LocalStorageTask::waitForMessage [MessageQueue.h : 137 + 0x12]
rbx = 0x0000000000000001   r12 = 0x0000000000000001
r13 = 0x00007f2b34c515c8   r14 = 0x00007f2b34c515d0
r15 = 0x00007f2aeef2ae20   rip = 0x0000000001185269
rsp = 0x00007f2aeef2ade0   rbp = 0x00007f2b34c515d8
Found by: call frame info
4  phantomjs!WebCore::LocalStorageThread::threadEntryPoint [LocalStorageThread.cpp : 68 + 0xa]
rbx = 0x00007f2b34cf50a0   r12 = 0x0000000004919fd0
r13 = 0x0000000000000001   r14 = 0x0000000000000000
r15 = 0x0000000000000003   rip = 0x0000000001185493
rsp = 0x00007f2aeef2ae20   rbp = 0x00007f2b34c515c8
Found by: call frame info
5  phantomjs!WTF::ThreadPrivate::run [ThreadingQt.cpp : 66 + 0x6]
rbx = 0x000000000483ecc0   r12 = 0x0000000004919fd0
r13 = 0x0000000000000001   r14 = 0x0000000000000000
r15 = 0x0000000000000003   rip = 0x00000000004e68fb
rsp = 0x00007f2aeef2ae50   rbp = 0x000000000483ecc0
Found by: call frame info
6  phantomjs!QThreadPrivate::start [qthread_unix.cpp : 338 + 0x9]
rbx = 0x0000000004919f18   r12 = 0x0000000004919fd0
r13 = 0x0000000000000001   r14 = 0x0000000000000000
r15 = 0x0000000000000003   rip = 0x0000000001be2ca2
rsp = 0x00007f2aeef2ae60   rbp = 0x000000000483ecc0
Found by: call frame info
7  libpthread-2.15.so + 0x7e99
rbx = 0x0000000000000000   r12 = 0x00007fffa2a52b10
r13 = 0x00007f2aeef2b9c0   r14 = 0x0000000000000000
r15 = 0x0000000000000003   rip = 0x00007f2b3831be9a
rsp = 0x00007f2aeef2aeb0   rbp = 0x0000000000000000
Found by: call frame info
Loaded modules:
0x00400000 - 0x026e7fff  phantomjs  ???  (main)
0x7f2aedd6f000 - 0x7f2aedf86fff  libnsl-2.15.so  ???
0x7f2aedf94000 - 0x7f2aee031fff  DejaVuSansCondensed.ttf  ???
0x7f2aef001000 - 0x7f2aef012fff  n019004l.pfb  ???
0x7f2aef013000 - 0x7f2aef026fff  n019003l.pfb  ???
0x7f2aef1ce000 - 0x7f2aef3d5fff  libnss_dns-2.15.so  ???
0x7f2aef3d6000 - 0x7f2aef5e2fff  libnss_files-2.15.so  ???
0x7f2aef5e3000 - 0x7f2aef7fcfff  libresolv-2.15.so  ???
0x7f2b36a13000 - 0x7f2b36c6ffff  libssl.so.1.0.0  ???
0x7f2b36c71000 - 0x7f2b37034fff  libcrypto.so.1.0.0  ???
0x7f2b37039000 - 0x7f2b37301fff  locale-archive  ???
0x7f2b37302000 - 0x7f2b3752bfff  libexpat.so.1.5.2  ???
0x7f2b3752c000 - 0x7f2b37742fff  libz.so.<IP_ADDRESS>  ???
0x7f2b37743000 - 0x7f2b37afcfff  libc-2.15.so  ???
0x7f2b37b02000 - 0x7f2b37d17fff  libgcc_s.so.1  ???
0x7f2b37d18000 - 0x7f2b38013fff  libm-2.15.so  ???
0x7f2b38014000 - 0x7f2b382fefff  libstdc++.so.6.0.16  ???
0x7f2b38314000 - 0x7f2b3852cfff  libpthread-2.15.so  ???
0x7f2b38531000 - 0x7f2b38738fff  librt-2.15.so  ???
0x7f2b38739000 - 0x7f2b3893cfff  libdl-2.15.so  ???
0x7f2b3893d000 - 0x7f2b38b72fff  libfontconfig.so.1.4.4  ???
0x7f2b38b73000 - 0x7f2b38e0efff  libfreetype.so.6.8.0  ???
0x7f2b38e0f000 - 0x7f2b38e30fff  ld-2.15.so  ???
0x7f2b39013000 - 0x7f2b3901bfff  945677eb7aeaf62f1d50efc3fb3ec7d8-le64.cache-3  ???
0x7f2b39026000 - 0x7f2b3902efff  6d41288fd70b0be22e8c3a91e032eec0-le64.cache-3  ???
0x7fffa2b7c000 - 0x7fffa2b7cfff  linux-gate.so  ???

Please upgrade to PhantomJS 2.0. 1.9.x is no longer supported, and known to have many crasher bugs that are fixed in 2.0.


Documentation website is returning a 502 Bad Gateway error

Description
The following areas of the website are all currently returning a 502 page.
There are likely more as well, but this is what I've come across so far. This began happening around 9:30AM CST/MST
https://apexcharts.com/docs/angular-charts/
https://apexcharts.com/docs/vue-charts/
https://apexcharts.com/angular-chart-demos/area-charts/

Steps to Reproduce

Visit one of the links provided in the description
See 502 - Bad Gateway page

Expected Behavior
The documentation page works.
Actual Behavior
The server is having issues returning the requested pages.
Screenshots

Reproduction Link
https://apexcharts.com/docs/angular-charts/
https://apexcharts.com/docs/vue-charts/
https://apexcharts.com/angular-chart-demos/area-charts/

This is still occurring as of 12:13 PM pacific on August 2, 2024...

Also seems to be more than just the listed URLs above. These are the ones that I'm getting 502 for:
https://apexcharts.com/embedded-analytics
https://apexcharts.com/javascript-chart-demos/*
https://apexcharts.com/angular-chart-demos
https://apexcharts.com/vue-chart-demos
https://apexcharts.com/react-chart-demos/*
https://apexcharts.com/docs/* (except for docs/installation)

Temporary workaround is to just view the latest cached version of the site (June 28, 2024) on the Wayback Machine:
https://web.archive.org/web/20240628113829/https://apexcharts.com/docs/installation/#

Sorry for the trouble everyone, the website is up again.


Is this related to a problem? Please describe.

Is this related to a problem? Please describe.

Describe the solution you'd like

Describe alternatives you've considered

Additional context

Originally posted by @Red530 in https://github.com/psf/black/issues/3517

Yeah I've been having problems with my pictures being deleted off my iPhone and computer and settings are changing and some times we can sit there and watch it move itself?maybe remotes?


Fix #5347

🚀 Pull Request
Description
Fixes #5347.

Consult Iris pull request check list

@stephenworsley Awesome :+1:
Could you please target the v3.6.x release feature branch instead. Looks like we're going to be making an iris v3.6.1 release soon, and it makes sense for this fix to be available to the community ASAP.
Thanks :beers:

very many thanks @stephenworsley and @bjlittle :beer: x2


COMPENF-35v2 / COMPENF-37 HWCR/ERS details

Description
Please provide a summary of the change and the issue fixed. Please include relevant context. List dependency changes.
Story # COMPENF-35
Type of change
Please delete options that are not relevant.

[x] New feature (non-breaking change which adds functionality)

Checklist

[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] My changes generate no new warnings
[x] Any dependent changes have already been accepted and merged

Thanks for the PR!
Any successful deployments (not always required) will be available below.
Backend available
Frontend available
Once merged, code will be promoted and handed off to following workflow run.
Main Merge Workflow

Thanks for the PR!
Any successful deployments (not always required) will be available below.
Backend available
Frontend available
Once merged, code will be promoted and handed off to following workflow run.
Main Merge Workflow

@afwilcox we're ready for a review now of both COMPENF-35 and COMPENF-37


Add documentation for certification process.

You can just remove LICENSE_HEADER.txt file as LICENSE_HEADERS.txt has already been added to master branch with proper content.