chore: migrate env to new error handling

Description of changes

refactor env flow to use the new amplify error types and error handling

Description of how you validated changes
Checklist

[x] PR description included
[x] yarn test passes
[ ] Tests are changed or added
[ ] Relevant documentation is changed or added (and PR referenced)
[ ] New AWS SDK calls or CloudFormation actions have been added to relevant test and service IAM policies

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

Merging #11053 (ae763be) into dev (ee29583) will decrease coverage by 0.00%.
The diff coverage is 32.72%.

@@            Coverage Diff             @@
##              dev   #11053      +/-   ##
==========================================
- Coverage   49.61%   49.60%   -0.01%
==========================================
  Files         665      665
  Lines       31840    31849       +9
  Branches     6467     6467
==========================================
+ Hits        15797    15800       +3
- Misses      14565    14571       +6
  Partials     1478     1478

Impacted Files
Coverage Δ

...s/amplify-cli-core/src/errors/amplify-exception.ts
80.00% <ø> (ø)

packages/amplify-cli/src/initialize-env.ts
13.41% <0.00%> (-1.26%)
:arrow_down:

packages/amplify-cli/src/commands/env/list.ts
12.50% <20.00%> (ø)

...kages/amplify-cli/src/commands/helpers/envUtils.ts
15.38% <25.00%> (+7.05%)
:arrow_up:

...nt-parameters/src/environment-parameter-manager.ts
86.79% <33.33%> (ø)

packages/amplify-cli/src/commands/env/add.ts
87.50% <100.00%> (ø)

...xtensions/amplify-helpers/remove-env-from-cloud.ts
100.00% <100.00%> (ø)

...li/src/domain/amplify-usageData/getUsageDataUrl.ts
100.00% <0.00%> (+12.50%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Missing Stub EntityInterface

While running mglaman/drupal-check (1.3.1) against mglaman/phpstan-drupal (1.1.18) the following is registered.
Error: PHPDoc tag @extends has invalid type Drupal\Core\Field\FieldItemListInterface.
Error: Interface Drupal\Core\Entity\FieldableEntityInterface extends unknown interface Drupal\Core\Entity\EntityInterface.
This is in origin attributed to a missing stub for EntityInterface.

The docs specify this error: https://phpstan.org/user-guide/stub-files

Stub files are analysed independently from the rest of your codebase. This means that any type they’re referencing must also be present as a stub, even if you don’t want to override any of its PHPDocs.

But I have no idea why it isn't erroring in the CI :( Sorry about that!

Made a new patch release with this fix: https://github.com/mglaman/phpstan-drupal/releases/tag/1.1.19


Question: Swagger Definition is not generating array type for POST object

Hi,
I have a play project and I am using swagger annotations to generate the swagger docs. When I provide the dataType for a POST object to be a List[Object] reads it as a string type instead of List of Objects.
Example:
If Foo object is present is models package
Foo(id: Long, name: String)
then
@ApiImplicitParams(Array(new ApiImplicitParam(name = "saveFooObjects", value = "Provide list of Foo Objects", required = true, dataType = "List[models.Foo]", paramType = "body")))
This generates the type as string for the post body
parameters: [{
in: "body",
name: "saveFooObjects",
description: "Provide list of Foo Objects",
required: true,
schema: {
type: "string"
}
}]
and throws the following runtime error
Failed to resolve 'List[models.Foo]' into class
java.lang.ClassNotFoundException: List[models.Foo]
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_60]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_60]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_60]
at play.modules.swagger.PlayReader.typeFromString(PlayReader.java:411) [swagger-play2_2.11-1.5.2.jar:1.5.2]
However, if I specify
@ApiImplicitParams(Array(new ApiImplicitParam(name = "saveFooObjects", value = "Provide list of Foo Objects", required = true, dataType = "models.Foo", paramType = "body")))
This generates the $ref as the foo object.
parameters: [{
in: "body",
name: "saveFooObjects",
description: "Provide list of Foo Objects",
required: true,
schema: {
$ref: "#/definitions/Foo"
}
}]
Now how do I get the swagger definition generated as below
parameters: [{
in: "body",
name: "saveFooObjects",
description: "Provide list of Foo Objects",
required: true
schema: {
type: array
items: {
$ref: '#/definitions/Foo'
}
}
}]
Am I doing something wrong or do I need to have any additional attributes added in the annotation?

Look at the javadocs for @ApiImplicitParam - it doesn't specify that you can use that notation to mark it as a list. As far as I recall, you can't describe an array unless you do it explicitly (as in, the actual input).

Encountered same issue.
Find no code about definition in PlayReader.scala

we should add the logic of reading swagger definition in PlayReader.scala

For now I create a abstract classe which extends java.util.List to bypass this pb...not sure if it is appropriate
abstract class ListString extends java.util.List[String]
ApiImplicitParam(dataType = "models.ListString"

@supaggregator I have this problem too, and I tried your solution but it doesn't seem to be working / doing anything, the params are still passed concatenated with a comma and the parameter name is not repeated, therefore Play thinks that:
flow=a&flow=b
is a List with 1 String in it, "a, b", instead of a List with two Strings in it, "a" and "b".
Can you give me more info about your solution to this issue?


[ci] Re-disable mirroring to master

Reverts flutter/plugins#5907 (re-landing https://github.com/flutter/plugins/pull/5874), in preparation for re-attempting archiving master.
https://github.com/flutter/plugins/pull/5912 did the scrubbing of master references that I mistakenly thought I had already done previously, and the recipe change that broke LUCI checkouts has (I believe) landed, resolving the known issues from the last attempt.
Part of https://github.com/flutter/flutter/issues/90476

Shall we plan to archive master tomorrow morning Pacific time, so there's time to monitor for any new breakage and revert if necessary?

Shall we plan to archive master tomorrow morning Pacific time, so there's time to monitor for any new breakage and revert if necessary?

Landing tomorrow morning SGTM.


Build is unknown

And when you click on badge it open travis with not found page.

Fixed in d945c02. Thanks!


--mutually-exclusive-features produces unexpected results

I have four features, for example A, B, X, Y.
I want to express either A,B or X,Y, but never together.
I came up with
--mutually-exclusive-features A,X \
--mutually-exclusive-features A,Y \
--mutually-exclusive-features B,X \
--mutually-exclusive-features B,Y

But I got none of the A, B, X, Y.
I expected:
A, B, AB, X, Y, XY

If my expectation of this command is correct, the fix is straightforward.

diff --git a/src/features.rs b/src/features.rs
index 6e3bb11..a7706a9 100644
--- a/src/features.rs
+++ b/src/features.rs
@@ -209,9 +209,9 @@ pub(crate) fn feature_powerset<'a>(
         .filter(move |fs| {
             // Filter any feature set containing more than one feature from the same mutually
             // exclusive group.
-            let mut count = 0;
-            for f in fs.iter().flat_map(|f| f.as_group()) {
-                for group in mutually_exclusive_features {
+            for group in mutually_exclusive_features {
+                let mut count = 0;
+                for f in fs.iter().flat_map(|f| f.as_group()) {
                     if group.matches(f) {
                         count += 1;
                         if count > 1 {
                            return false;
                        }
                    }
                }
            }

Ping the original contributor @jhpratt

I don't have the time at the moment to think about the correctness of the diff. If it works, though, then it's probably correct?

I can create a PR.


Tooltip component always appears under the element it's attached to

I need to put a TooltipLink at the bottom of my page ; accordingly, i'd like the tooltip to appear above that element. Is there any solution to do so ?
Thanks for all.

We need to refactor this component to be positioned in a similar way to the Dialog. This way it would be easier to customize positioning.


How to use Auth0 with React Router v6.4 Data api

Describe the problem
Hello!
It doesn't exist any documentation on best practise using react Auth0 with the new react router v.6.4 Data api. The main issue is that the acces token can only be retrieved with the useAuth0 hook.
What was the expected behavior?
This is my understanding of how it might be done:
export const App = () => {
    return (
        <Auth0Provider
            domain={import.meta.env.VITE_DOMAIN}
            clientId={import.meta.env.VITE_CLIENTID}
            redirectUri={window.location.origin}
            audience={import.meta.env.VITE_AUDIENCE}
        >
            <Routing />
        </Auth0Provider>
    )
}

const router = (auth0Context: Auth0ContextInterface) =>
    createBrowserRouter([
        {
            path: "/",
            loader: async () => {
                const token = await auth0Context.getAccessTokenSilently()
                const response = await fetch("/api/user", { headers: { Authorization: `Bearer ${token}` } })
                const user = response.json()
                return user
            },
            element:
hello
,
        },
    ])

export const Routing = () => {
    const auth0Context = useAuth0()
    return <RouterProvider router={router(auth0Context)} />
}

Hi @lasseklovstad - thanks for raising this
It looks like you can't use hooks or react context when loading data with the React Router v6.4 Data api. Have a look at this document for how to get the access token outside of the react render lifecycle: https://gist.github.com/adamjmcgrath/0ed6a04047aad16506ca24d85f1b2a5c

Think https://github.com/auth0/auth0-react/issues/442#issuecomment-1346332329 should answer your question, so closing


Remove need for Foundation/Darwin.C

Look for comments referencing this issue number in the code and remove the need for these imports. It will build on iOS or macOS even if you remove it. The method you need to fix is to use Double.rounded(_:) instead of the free function floor in the places you see this. Then, remove these imports.

In MeasureDurationValidator, you will also need to use something instead of pow and log. If there is no equivalent in Swift, then you will have to leave this import. If so, create a new issue to resolve that later when hopefully it's added to Swift.


Scrape vpa-admission-controller metrics with prometheus

How to categorize this PR?

/area auto-scaling
/area monitoring
/kind enhancement
What this PR does / why we need it:
Enable scraping for vpa-admission-controller, such that we can create some dashboards for the admission-controller metics, such asvpa_admission_controller_execution_latency_seconds.
The admission-controller in the Shoot namespaces are scraped by the Shoot's prometheus and the admission-controllers for our Seeds are scraped by the runtime cluster's seed-prometheus.
Which issue(s) this PR fixes:
part of #9954
Release note:

Scrape vpa-admission-controller metrics with prometheus

/invite @ialidzhikov @rickardsjp

/assign

/remove-lifecycle stale

/retest

Hey, @ialidzhikov can you have another look and help getting this in? Thanks!

Hey, @ialidzhikov can you have another look and help getting this in? Thanks!

Sure


Support for configuring scheduled message delay inline in Automatonymous

I'm not sure if this is how you would want this implemented or not, but here's how I went about it.  As Daniel commented, not sure if you want mutable state here - but it felt a little bit cleaner/explicit this way.

I'm going to review this and might submit some additional tweaks to the way the activity/delay interaction takes place. It's a great start, I'll pull it down and review soon.

Rebased, pulled as 52cfb07e42601ac719c4b8463ae92156bbfd5099


Loading of blueprints fails since latest update

Describe the bug
Nullpointer exception when loading blueprints (search and pick), probably because of latest game update.
To Reproduce

Click on search and pick
click on anything, launch a save, etc

Expected behavior
A clear and concise description of what you expected to happen.
Save Files
Mail me if needed
Screenshots
If applicable, add screenshots to help explain your problem.
Version Info:

ToyBox Version: latest 1.4.19 manager 0.23.0
OS: windows
Version 2.0.6l

REsolved as of latest version


[HUDI-7071] Throw exception when clustering/compactin job fail

Change Logs
When jobs throw exeption org.apache.hudi.exception.HoodieException: unable to read next record from parquet file, we do not deal with this exception. This results the job not failing and final state is success.
Impact
none
Risk level (write none, low medium or high below)
If medium or high, explain what verification was done to mitigate the risks.
Documentation Update
Describe any necessary documentation update if there is any new feature, config, or user-facing change

The config description must be updated if new configs are added or the default value of the configs are changed
Any new feature or user-facing change requires updating the Hudi website. Please create a Jira ticket, attach the
ticket number here and follow the instruction to make
changes to the website.

Contributor's checklist

[ ] Read through contributor's guide
[ ] Change Logs and Impact were stated clearly
[ ] Adequate tests were added if applicable
[ ] CI passed

Is it fixed via: https://github.com/apache/hudi/pull/10108 ?

Is it fixed via: #10108 ?

It's good. All services those calling UtilHelpers.retry have similar problems. I fix the clustering/index job like this

plz cc @CTTY @danny0405

cc @CTTY for the review~


create a logo and fav-icon

Hey I an work on this

sure

hey @Azhar221  can you review the pr #19 and merge it with the tag?


cache_limit bottlenecks the performance

Environment

OS: [RHEL]
Hardware (GPU, or instance type): 8x[A100 40gb]
ENV: SLURM single compute node

To reproduce
Steps to reproduce the behavior:

Choose a reasonably large dataset (i.e., OSCAR)
Create a dataloader using StreamingDataset
set appropriate cache_limit (<< the size of the dataset)

Expected behavior
StreamingDataset local cache should be managed in a way that it is always available (for new data) and doesn't affect the data loading performance when downloading from the remote. Currently, once the cache is full, the data loading becomes extremely slow and becomes a bottleneck for the training.

Additional context

Hi @mayankjobanputra , Few questions I have to understand your use-case better in case I can provide any suggestion to improve the throughput.

What is the dataset size?
What is the value of cache_limit are you setting?
Is your dataset compressed ?
What is the shuffle_algo you are using?
What is the predownload value ?

Hey @karan6181,
Thank you for responding :) Here are the answers.

What is the dataset size?

The dataset size is 2B words,

What is the value of cache_limit are you setting?

my cache_limit is 450gb,

Is your dataset compressed ?

yes with zstd level 3 (default)

What is the shuffle_algo you are using?

py1b (default from llm-foundry)

What is the predownload value ?

100_000 (default from llm-foundry)

Thanks for sharing the details. Few suggestions:

Use py1s as a shuffling algorithm (Which is default in StreamingDataset). You can find more information about the different shuffling algorithms here. TLDR is that py1b downloads lots of shard files upfront based on how samples are shuffled in py1b. Although, there are ways to control it, but for now, let use py1s and see if it improves the throughput or not!
Use the streaming predownload default value or set it to 4 * per_gpu_batch_size.

Thanks a lot @karan6181  :) I will give this a go for the next run :)
I am closing the issue right now because it doesn't make sense to keep it open for about 15 days. I will re-open if I need more help :)
I will post my findings anyways :)

@karan6181 I was able to increase my cache_limit to 900gb and now with py1b it worked fine for the entire duration. Everything else was the same as before.
I will try to stick to py1b for now, but I will definitely try py1s in the near future. Right now it might yield a little different results which is not ideal for my experiments. Thanks again for your help :)
P.S. I love Streaming docs :tada:  You guys have put really enough details to infer the right choices. Kudos to the team!

I think I made a small blunder. It seems like although I have been passing shuffling_algo all this while, the shuffle was set to False which means no shuffling was going on.
@karan6181 Do you suggest turning on the shuffling? Will it have any benefits? All I am looking for is performance and stability.

@mayankjobanputra Do you care convergence ? If yes, the I would recommend to do shuffle=True !

@karan6181 You are right, I do see not-so-great convergence in my training loss (small spikes everywhere), but I am not sure how that would fix the original performance bottleneck that probably occurs primarily because of the cache_limit.
Would you mind elaborating? I am quite new to large-scale pertaining stuff, so please forgive my naive questions.

How is the convergence performance when shuffle_algo=py1s and shuffle=True vs shuffle_algo=py1b and shuffle=True with cache_limit= 900gb ?

So far I haven't had any model using shuffle=True so I really can't comment on that. So far, I have been using defaults which have shuffle=False and the looks something like this.

Looks like the convergence is kind of the same but this is with shuffle=False though. With shuffle=True, I would recommend shuffle_algo=py1b with default predownload (you can experiment with lowering the predownload to 2 * per_gpu_batch_size or even 1 * per_gpu_batch_size), lower the num_canonical_nodes to 16 * physical nodes or even 4 * physical nodes), lower the shuffle_block_size by a factor of two. The idea behind lower certain parameter is that lower num_canonical_nodes you have with smaller shuffle_block_size then more shards are in common between your workers on different devices which leads to less downloads. However, data diversity might get impacted. Hence, you need to tweak certain parameters to find the best spot based on the dataset you have.

Thanks a lot Karan :) I will try out your advice soon. For now I am closing the issue again :see_no_evil:


sqlite error message should looks like "SQLITE_NOTADB file is not a database"

I just found that the error mesage of sqlite3 "file is encrypted or is not a database"  is change from "file is encrypted or is not a database" (3.15.1) to "file is not a database" (3.21.0) .
but they all have the same sqlite3ErrName "SQLITE_NOTADB".
So I think all the error message should looks like "SQLITE_NOTADB file is not a database" to make error type check from golang code eaiser.
I can check that the error is file corrupt by strings.Contains(err.Error(),"SQLITE_NOTADB")
Only human readable error message is a bad idea too.When that error message is return, it will be more difficult to search that message in google.

go-sqlite3 get message from sqlite3 library. I wonder that should do for this.

@bronze1man The error string is returned from SQLite.
    /* SQLITE_AUTH        */ "authorization denied",
    /* SQLITE_FORMAT      */ 0,
    /* SQLITE_RANGE       */ "column index out of range",
    /* SQLITE_NOTADB      */ "file is not a database",
    /* SQLITE_NOTICE      */ "notification message",
    /* SQLITE_WARNING     */ "warning message",

However you should be able to detect it.
The errors returnd from the lower layer SQLite are wrapped in this package into Error
SQLITE_NOTADB is defined in C with code 26
#define SQLITE_NOTADB      26   /* File opened that is not a database file */

Error Implementation
You should be able to cast your received error to Error of this package and then check if Code is 26.
Hope this helps.


[stable/postgresql] Fix "iptables: Permission Denined" error when installing on Istio-enabled cluster.

What this PR does / why we need it:
Only define the securityContext on the main container instead of defining it on the top level spec which results into injected containers by Istio inheriting this definition (i.e. istio-init).
Which issue this PR fixes

fixes istio-init fails with "can't initialize iptables table 'nat': Permission denied #316

Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped

The same bug affects mongo chart

The same bug affects mongo chart

Checkout #11367.

Same issue affects prometheus-operator chart as well on GKE.
Had to modify below context for prometheus-operator,kube-state-metrics and grafana pods.
securityContext:
      privileged: true
      runAsUser: 0
      runAsNonRoot: false

istio-init image: gcr.io/gke-release/istio/proxy_init:1.0.3-gke.3
Couldnt get the options in default values.yaml for grafana and kube-state-metrics. plz add the same to values.yaml


feat(userspace/falco): print version at startup

What type of PR is this?
/kind feature
Any specific area of the project related to this PR?
/area engine
What this PR does / why we need it:
See #1302
Which issue(s) this PR fixes:
Fixes #1302
Special notes for your reviewer:
/milestone 0.24.0
/cc @fntlnz
/cc @leodido
/cc @kris-nova
Does this PR introduce a user-facing change?:
new(userspace/falco): print the Falco and driver versions at the very beginning of the output.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To complete the pull request process, please assign leogr
You can assign the PR to them by writing /assign @leogr in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

SGTM!
Anyway, I have a question.
Why do not stick with the usual two-line version (line 626-627) logs we use for the --version flag in order to be more consistent?
There's a particular reason to print Falco version and driver version this way when Falco runs?

Lines 626-627 uses printf, here I use the initialized logger. Moreover, I have found just one-line output briefer.
No other reasons.
Let me know if you prefer a two-line, and I will change it shortly.

I don't have particular preferences honestly.
I was just asking if there was a ratio behind putting both versions on the same line. That's all!

LGTM label has been added.  Git tree hash: b0db7668fb16d54f0db4053d64d0e429d0647fc0

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: leodido
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [leodido]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Moving this to next release because it hasn't reached 2 approvals
/milestone 0.25.0

@poiana: You must be a member of the falcosecurity/maintainers GitHub team to set the milestone. If you believe you should be able to issue the /milestone command, please contact your Falco maintainers and have them propose you as an additional delegate for this responsibility.

In response to this:

Moving this to next release because it hasn't reached 2 approvals
/milestone 0.25.0

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Moving this to next release because it hasn't reached 2 approvals
/milestone 0.25.0

/hold

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: fntlnz, leodido
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [fntlnz,leodido]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Approved, I think we can get this in now!

/hold cancel


horizontal scaling broken without podAntiAffinity rules.

Horizontal scaling is broken, because kubernetes attempts to scale multiple containers on the same machine, thus each of the manifest files should include podAntiAffinity rules e.g.
  affinity:
    podAntiAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
      - labelSelector:
          matchLabels:
            app.kubernetes.io/name: redis-vector-db
            app.kubernetes.io/instance: redis-vector-db
        topologyKey: "kubernetes.io/hostname"

will add them in next release

I just checked, pod antiaffinity is already supported in helm chart, just define the affinity.podAntiAffinity in the helm chart values will do.
@endomorphosis  how did you deploy the workload?

I wasn't using the helm chart but the manifests

Please use helm chart to deploy for podAntiAffinity rules. Since this rules are depends on each user's specific requirements, there is no way to hard code it into manifest.
I'll close this bug for now. Please feel free to reopen it is needed.


diag_testport.php: set verbose

Hi!
if "Show Remote Text" (no -z flag) set and there is no text to display, nc may not output the result at all.
can we add -v option to display the connection result in this case?
thanks!

@kulikov-a sure, it shouldn't hurt.

thanks!


Shows team stats info which were json encoded

seems good to me, next update will be send a field to slack for each stats fields 👍


Add support for directly displaying FlameGraphs.jl graphs.

Add support for directly displaying FlameGraphs.jl graphs.
This makes PProf fit into the standard julia profiling infrastructure.
For example:
julia> using Profile, FlameGraphs, PProf, Serialization

julia> @profile peakflops()
1.1991880148053252e11

julia> fg = FlameGraphs.flamegraph()
Node(FlameGraphs.NodeData(ip:0x0, 0x00, 1:670))

julia> pprof(webport=11111, fg)
"profile.pb.gz"

julia> Main binary filename not available.
Serving web UI on http://localhost:11111

Unfortunately, PProf doesn't retain the ordering information that the FlameGraphs have, so it's not as good of a format for FlameGraphs directly.
But the graph view and source views are still useful, even when building from FlameGraphs.

Also, after my last rewrite, i have checked and confirmed that it does indeed produce almost exact same results whether building directly from Profile or going through FlameGraphs - so maybe we want to simplify our code and always go through FlameGraphs? I'm not sure! I kind of like having to separate implementations to validate in case either one gets an error, but ALSO i feel like FlameGraphs has many more eyes on it, and is therefore much more vetted 😅
I guess there are some inefficiencies of going through FlameGraphs, though, since we have to essentially deconstruct the aggregated view back into the samples view, so that's a bit disappointing. Oh, and also we lose individual samples, and can only report a span.
This reminds me:

[ ] TODO: the span in FlameGraphs.jl is in samples, not nanoseconds. So either we need to multiply by the period to get actual nanoseonds, or switch to reporting the duration in samples, if it will let us.

Here's the only one weird difference i found when comparing data from peakflops() that went through FlameGraphs vs the data that built went directly off of Profile (it's probably easier to see if you pull up the images side-by-side):
pprof(fg):

pprof():

I'm not sure if this is another instance of us incorrectly duplicating a frame or something weird? But when we build off of Profile directly we duplicate the next frame down, instead of having the correct frame there.

I don't really have sufficient experience with FlameGraphs.jl. It's a shame that you have to "unprocess" the graph. So I would definitly have both versions.

Yeah, agreed. But it does seem like this contains all of the same information we need, so it might be worth it to go this hop through FlameGraphs just to have a single, consistent transformation from Profile, which gets more eyes? 🤷

Also, I think the issue I showed in the images above is the only remaining issue before this is ready to merge!

I totally understand wanting to render FlameGraph data, especially since you can use it for other data sources.
In the long run I always wanted to include the JIT_PROFILE output for perf.

Okay, methinks this is good to go! :)
Thanks for the suggestions

After looking at the above discrepancy in the two images I posted, I think the FlameGraphs image is more likely to be right, and the PProf one is simply a dropped frame due to the inlining bug. It's maybe just that i ran this on an old commit (maybe on this branch) without merging in #27.


can not install

detail:
root@default:~# go get -u github.com/hidu/proxy-manager
# github.com/hidu/proxy-manager/manager
go/src/github.com/hidu/proxy-manager/manager/client.go:74: client.Timeout undefined (type *http.Client has no field or method Timeout)
go/src/github.com/hidu/proxy-manager/manager/proxyPool.go:368: client.Timeout undefined (type *http.Client has no field or method Timeout)

what's you golang version?
pls try with go 1.5.1 and enable vender:
export GO15VENDOREXPERIMENT=1

my os is windows.
I have posted a question at here http://stackoverflow.com/questions/33142490/go-install-third-part-package-unrecognized-import-path/33143265#33143265

ok
and  enable  vender  can solve the third party dep,
don't need to change any code.

enable vender?
I do not fimiliar go ,could you git me a guide?

download binary here:  http://pan.baidu.com/s/1c0dALWk

linux go 1.5.1 :
root@default:~# go get -u github.com/hidu/proxy-manager
warning: code.google.com is shutting down; import path code.google.com/p/go.net/proxy will stop working

Windows:
 C:\Users\eromoe\Downloads\proxy-manager_windows_amd64.exe 的目录

2015/10/16  09:43    <DIR>          .
2015/10/16  09:43    <DIR>          ..
2015/10/16  08:14         9,096,192 proxy-manager.exe
               1 个文件      9,096,192 字节
               2 个目录 55,645,765,632 可用字节

C:\Users\eromoe\Downloads\proxy-manager_windows_amd64.exe>proxy-manager -conf ./conf/proxy.conf
2015/10/16 09:46:13 manager.go:29: loading...
2015/10/16 09:46:13 config.go:53: load config failed: open C:\Users\eromoe\Downloads\proxy-manager_windows_amd64.exe\conf
\proxy.conf: The system cannot find the path specified.

on linux host:
export GOPATH=~/go_pkg/
mkdir $GOPATH
#if GOPATH has already setted pls ignore the above

export GO15VENDOREXPERIMENT=1
go get -u github.com/hidu/proxy-manager

there is no warning.

export GO15VENDOREXPERIMENT=1  worked.
But proxy-manager not found....
root@default:~# echo $GOPATH
/root/go
root@default:~# proxy-manager
-bash: proxy-manager: command not found

PS: Do you use a go package manager ? Unlike python[pip] , ruby[gem] or node[npm], go seems having a lot of package managers .... is there any suggestion?

this project using godep and go vender.
binary is here:   /root/go/bin/proxy-manager

export GOPATH=~/go
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin

OK, all error solved. Thanks you!


[YUNIKORN-1228] Fix race condition when serializing K8s objects

What is this PR for?
Fixes a race condition that occurs when K8s objects are serialized for transmission. If the 1version1 component of the GroupVersionKind element (which is part of every K8s object) is not set, the serializer sets it, causing race conditions with concurrent reads. This patch ensures that we defensively copy objects that are sent over the wire.
What type of PR is it?

[x] - Bug Fix
[ ] - Improvement
[ ] - Feature
[ ] - Documentation
[ ] - Hot Fix
[ ] - Refactoring

Todos

[ ] - Task

What is the Jira issue?
https://issues.apache.org/jira/browse/YUNIKORN-1228
How should this be tested?
No functional changes, so all existing unit and e2e tests apply.
Screenshots (if appropriate)
Questions:

[ ] - The licenses files need update.
[ ] - There is breaking changes for older versions.
[ ] - It needs documentation.

Implementation note: I realize there are instances in this patch where an object is cloned twice in a single method (once per I/O call). This is due to the fact that many of the I/O methods are async in nature and so this ensures that we have completely independent copies for events in flight.


Swift 4.1 Support

Another try at this with updated dependencies.

Hi @jseibert , @paulofaria please see https://github.com/GraphQLSwift/GraphQL/issues/37 regarding an issue with the use of the new reflection library. Many thanks.