.createEach([x, y, x])

Node version: Any
Sails version (sails): Any
Waterline adapter (any): Any compatible adapter and version.
ORM hook version (sails-hook-orm): 4.0.2

There's a problem with createEach() and multiple references.

Details:
  Could not use one of the provided new records: Could not use specified `id`.  Invalid primary key value.  Instead of a number (the expected pk type), got: null
 [?] See https://sailsjs.com/support for help.
    at REPL7:1:10
    at Script.runInThisContext (vm.js:132:18)
    at REPLServer.defaultEval (repl.js:484:29)
    at bound (domain.js:430:14)
    at REPLServer.runBound [as eval] (domain.js:443:12)
    at REPLServer.onLine (repl.js:817:10)
    at REPLServer.emit (events.js:327:22)
    at REPLServer.EventEmitter.emit (domain.js:486:12)
    at REPLServer.Interface._onLine (readline.js:337:10)
    at REPLServer.Interface._line (readline.js:666:8)
    at REPLServer.Interface._ttyWrite (readline.js:1010:14)
    at REPLServer.self._ttyWrite (repl.js:907:9)
    at ReadStream.onkeypress (readline.js:213:10)
    at ReadStream.emit (events.js:315:20)
    at ReadStream.EventEmitter.emit (domain.js:486:12)
    at emitKeys (internal/readline/utils.js:345:14)
    at emitKeys.next (<anonymous>)
    at ReadStream.onData (readline.js:1144:36)
    at ReadStream.emit (events.js:315:20)
    at ReadStream.EventEmitter.emit (domain.js:486:12)
    at addChunk (_stream_readable.js:309:12)
    at readableAddChunk (_stream_readable.js:284:9) {
  code: 'E_INVALID_NEW_RECORDS',
  details: 'Could not use one of the provided new records: Could not use specified `id`.  Invalid primary key value.
To get it in your Sails app, make sure you're on the latest sails-hook-orm and you should be good!
npm i sails-hook-orm@latest

Fix: https://github.com/balderdashy/waterline/commit/2d965708a5f115a4a770b6299f5fe46874eee499


Protect spaces in julia path on windows

@twadleigh this tests fine, can it be merged?

Sorry for the delay. I started a new job this month and in the process of buying a new house, getting the house I live in now ready to be let to tenants and moving my family across the country--all while trying to make a good impression with my new employer as I work remotely.

@twadleigh no explanation required, thanks for merging, and good luck!


[19.09 unblock] grafana: Drop Frostman from maintainers

@Frostman is not in maintainers-list.nix on 19.09.
This fails the build of the channel and tarball jobs on the small
jobset.
Follow-up of #83102

cc @Ma27

@GrahamcOfBorg eval

Oof... sorry for the broken backport! :/

@GrahamcOfBorg eval

I assume that the eval here fails since the current state of 19.09 doesn't evaluate.
Running e.g. nix-instantiate --eval --strict -A grafana.meta confirms that the meta-section of pkgs.grafana is unbroken now -> merging.

@dasJ - thanks for fixing this and sorry, those kind of errors shouldn't happen :/


Can't pull images from registry when there's a period in the URL

Description
I have an on-premises GitLab install with the image registry enabled and working, and that registry is configured into Portainer. After several tests, it seems as if images with periods somewhere in their URLs can't be imported into the Docker host where Portainer is running.
For instance, clicking on the Pull the image button of the Images action with the image quay.io/carlos.carnero/hello-world:2.0 will report an error:

Pulling the image via docker image pull... works correctly, and once the image is downloaded, it is perfectly usable to start containers; so it is not a connectivity or access control issue.
Using the browser's console it is apparent that an HTTP 500 status is the response to the request. Following the example above, the URL associated with the POST request was /api/endpoints/1/docker/images/create?fromImage=quay.io%2Fhello-world&tag=2.0 which seems to have a path component, carlos.carnero, missing.
Technical details:

Portainer version: 1.15.2
Target Docker version (the host/cluster you manage): 17.09.0-ce
Platform (windows/linux): linux (CentOS 7, current)
Command used to start Portainer (docker run -p 9000:9000 portainer/portainer): docker service create --name portainer --publish 9000:9000 --constraint 'node.role == manager' --mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock portainer/portainer -H unix:///var/run/docker.sock
Target Swarm version (if applicable): 17.09.0-ce
Browser: Google Chrome 62 on Fedora Linux

Anything in the container logs?

The only thing I see is Starting Portainer 1.15.2 on :9000. Is there a way to increase the verbosity? I could not find any option to do so.

Since quay.io allows me to create a namespace with a period, I went ahead and pushed the Docker getting started project there. The resulting image URL is quay.io/carlos.carnero/hello-world:1.0 which can be used to duplicate the issue.

The "bug" lies in app/helpers/imageHelper.js#L7-L26 . I said "bug" because the function assumes that any prepending "word" with a period is the registry name that the user forgot to remove. Please, try to pull quay.io/carlos.carnero/hello-world:2.0, although it may seem redundant to put "quay.io" there.
These are the lines to blame:
// assume valid DNS name or IP (contains at least one '.')
     if (_.countBy(registry)['.'] > 0) {
       image = repository.substr(repository.indexOf('/') + 1);
     } else {
       registry = null;
     }

I am not sure about what the solution should be. Might just a note in the docs to let the users know about it. I think that rewriting the function itself to tell apart DNS names and user names that include periods is not an easy task, unless we actually query for it.

I can confirm that prepending quay.io to carlos.carnero/hello-world:2.0 will pull the image; and I also consider it redundant, UI-wise.

Some information I retrieved about image naming:
Some details about what compose a valid docker image name: https://docs.docker.com/engine/reference/commandline/tag/
Used by moby in https://github.com/moby/moby/blob/6672ffa566936dc7dc6e10b494b2a1567c536ddc/client/image_tag.go
Reference available at: https://github.com/docker/distribution/tree/master/reference
The regexps defined in https://github.com/docker/distribution/blob/master/reference/regexp.go
show that the registry is using the DomainRegexp and the image name the NameRegexp. They're aggregated in the anchoredNameRegexp.
As we can see here, it's actually quite complex to determine all the components (registry, repository, tag) from an image input.

I'm trying to understand the behavior from the UI point of view. Why shouldn't the Registry and image Name inputs be blindly concatenated (with / as separator) when pulling the image?
Suppose I enter nginx:latest on the image name and select DockerHub on the registry. That's equivalent to docker pull nginx:latest on the CLI (in this case, that registry should be null or the empty string).
If I had defined other registry, say quay.io, the result would be quay.io/nginx:latest (whether that exists or not, it's besides the point). Using that registry with the name user.name/hello-world:1.0 would yield quay.io/user.name/hello-world:1.0, which is still valid. It would seem that simple concatenation works.
However, according to the previous link provided by @deviantony the image name could contain the registry hostname (and maybe the port). That means that a user could potentially set quay.io/user.name/hello-world:1.0 as the name and set quay.io as the registry, so concatenating would yield quay.io/quay.io/user.name/hello-world:1.0 which is obviously wrong.
Why is there a separate registries definitions? To keep authentication data for each one of them?
I was thinking that the separate registry definition is superfluous, and maybe just provide an input field for the image name, which would recreate the experience of the CLI. But then, how would authentication would be managed? As @deviantony and @1138-4EB have remarked, parsing the image name into components is complex (for an image name like user.name/hello-world, how would the parser easily know that image.name is not a domain name and should interpret it as a path component?)
Unless I'm grossly missundertanding something (a common ocurrence, BTW) my take would be:

Keep the separate registry definitions, but remove the authentication data from that form, because...
The authentication data is moved to the user settings of the logged in user of the web application. One record (?) per globally defined registry, if needed.
Use simple concatenation of the selected registry domain name with the user provided image name, with / as a separator.

Let me repeat that I'm thinking only from the UI/UX point of view, so the above could be completely wrong.

I'm trying to understand the behavior from the UI point of view. Why shouldn't the Registry and image Name inputs be blindly concatenated (with / as separator) when pulling the image?

Because we want to support the users copying and pasting the full name (including the domain). This is propably useless for those images belonging to a registry that is present in the select list. However, it is required in order to allow pulling an image from any remote server. Note that this is not available ATM, because of this "buggy simplification". It will be a feature with no cost if we achieve a "not so simple, but neither complex" solution.

Suppose I enter nginx:latest on the image name and select DockerHub on the registry. That's equivalent to docker pull nginx:latest on the CLI (in this case, that registry should be null or the empty string).

It is. It is also equivalent to docker pull library/nginx:latest, docker pull docker.io/nginx:latest and docker pull docker.io/library/nginx:latest. There are four options because the space is defined by two binary variables:

Dockerhub.URL can be " " or "docker.io".
These "library" images can be composed of one or two single path-components.

However, I do think that the spec accepts single path-component images, which are not "double tagged" with two variations. That is case 5b in #1439.

Why is there a separate registries definitions? To keep authentication data for each one of them?

I think that the main feature is to allow the user not to remember the URL (and probably port number) of each registry, because it effectively provides an alias. For example, I can create registry "dev-registry" which points o a.rather.long.and.12345678-zyx.complex.domain:0000000, and none of the developers in my group needs to worry about what the URL is. Potentially, it would also allow me to change that URL "transparently" (not a supported feature ATM).
Keeping authentication is also a feature, but I believe that the select box can be removed and have authentication handled silently. Note that I don't know if this is desirable. Just drawing the line between technical limitations and design decissions.

I was thinking that the separate registry definition is superfluous, and maybe just provide an input field for the image name, which would recreate the experience of the CLI.

I think that Portainer should not "just" recreate the experience of the CLI. It should be easier, if possible. Yet, I agree on the importance of being able to "easily" see which the resulting command will be.

As @deviantony and @1138-4EB have remarked, parsing the image name into components is complex (for an image name like user.name/hello-world, how would the parser easily know that image.name is not a domain name and should interpret it as a path component?)

We can be more specific about where the complexity lies, and it is exactly this case you pointed: how do you decide if the string before the first slash is a path-component or a domain component?
name                := [domain '/'] path-component ['/' path-component]*
path-component      := alpha-numeric [separator alpha-numeric]*
alpha-numeric       := /[a-z0-9]+/
separator           := /[_.]|__|[-]*/

domain              := domain-component ['.' domain-component]* [':' port-number]
domain-component    := /([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])/
port-number         := /[0-9]+/

Keep the separate registry definitions, but remove the authentication data from that form, because...
The authentication data is moved to the user settings of the logged in user of the web application. One record (?) per globally defined registry, if needed.

I might be misunderstanding the point, but aren't these modifications independent from actually parsing the image name? Although I have not thoroughly thought about it, I feel this is a separate issue. I mean I have not considered modifying how authentication is handled at all. I am just focusing on image name variations considering I have unlogged access to several registries.

Use simple concatenation of the selected registry domain name with the user provided image name, with / as a separator.

This the behaviour right now. If you write quay.io/username/hello-world:1.0, quay.io is identified as being a domain and it is removed: { registry: "quay.io", image: "username/hello-world:1.0"}. But, and this is the important part, "registry" is not used, it is ignored. Instead, the URL field of the option in the select box is used.
Note that the workaround you are using quay.io/carlos.carnero/hello-world:2.0 won't work if you take "Dockerhub" in the select box, because it will try carlos.carnero/hello-world:2.0, i.e. docker.io/carlos.carnero/hello-world:2.0. You need an option in the select box whose URL matches the domain you typed/wrote in the name input box.

Indeed, if #1439 was merged now, these would be the constraints:

Every image name MUST be composed of, at least, two path-components separated with a slash ([domain/]<image/name>[:tag]). Opposed to docker, with allows a single one ([domain/]<imagename>[:tag]), although I have never seen it used, as commented above.
IF more than two path-components are used, the domain MUST be included: domain/<image/with/lots/of/path/components>[:tag]
If the domain is used, either because it is required or because it is desired, it MUST match the URL field of the option in the registry select box. See proposed solution at #1441.

These constraints allow us not to explicitly tell domain-components and path-components apart, but just count the number of slashes. However, I fint them not so easy to remember.
Optionally, we can support a special character, not allowed by docker, to relax these constraints.

Option 1: do not allow to add the domain by default. Require + to explicitly set it.
Option 2: keep the domain optional and prepend + when the number of path-components of the name is different from 2:  +<imagename>[:tag] and +<image/with/lots/of/path/components>[:tag], where + is replaced with the URL of the registry option in the select box.

I like the first one, because is easy to remember, and really simplifies this task.

Let me elaborate on the UI/UX point of view if Option 1 and #1441 are merged.
The context is a registries list with two entries:

{ Name: 'Dockerhub', URL:' ' }
{ Name: 'myalias', URL:'myregistry.mydomain.tld' }

Say we want to pull myregistry.mydomain.tld/myrepo/image:latest. The user has three options:

myrepo/image:latest (requires option myalias in the select box)
These two ignore the option in the registry select box, automatically set the select box option to myalias and (optional) show a notification to tell the user know about the change:

+myregistry.mydomain.tld/myrepo/image:latest
+myalias/myrepo/image:latest

Note that:

It does not matter if my.repo is used instead of myrepo. Both are supported.
It dows not matter if the image has a single component: image:latest, +myalias/image:latest, +myregistry.mydomain.tld/image:latest.
Pulling from any external/unknown registry is allowed: +a.remote.registry.otherdomain.tld/myrepo/image:latest (a notification is shown to let the user know that the registry is not in the list, and (optional) a dialog is shown to add it).

The most important part of this approach is that it is so easy for the user to remember:

If you want to type the registry/domain, prepend + to the image name.
If you don't prepend +, the URL of the option in the select box is prepended.
Do not use periods in aliases (aka registry names).

Technically, it is reduced to:

If the first char is +, split to typedregistry (before the first slash) and image (rest). I.e. replace (_.countBy(repository)['/'] > 1) ? with (repository[0] === '+') ? in  app/helpers/imageHelper.js #1439.
If typedregistry is not null, see #1441.

Let me elaborate on the UI/UX point of view if Option 1 and #1441 are merged.
The context is a registries list with two entries:

{ Name: 'Dockerhub', URL:' ' }
{ Name: 'myalias', URL:'myregistry.mydomain.tld' }

Say we want to pull myregistry.mydomain.tld/myrepo/image:latest. The user has three options:

myrepo/image:latest (requires option myalias in the select box)
These two ignore the option in the registry select box, automatically set the select box option to myalias and (optional) show a notification to let the user know about the change:

+myregistry.mydomain.tld/myrepo/image:latest
+myalias/myrepo/image:latest

Note that:

It does not matter if my.repo is used instead of myrepo. Both are supported.
It dows not matter if the image has a single component: image:latest, +myalias/image:latest, +myregistry.mydomain.tld/image:latest.
Pulling from any external/unknown registry is allowed: +a.remote.registry.otherdomain.tld/myrepo/image:latest (a notification is shown to let the user know that the registry is not in the list, and (optional) a dialog is shown to add it).

The most important part of this approach is that it is so easy for the user to remember:

If you want to type the registry/domain, prepend + to the image name.
If you don't prepend +, the URL of the option in the select box is prepended. Use alias or URL (known or external).
Do not use periods in aliases (aka registry names).

Technically, it is reduced to:

If the first char is +, split to typedregistry (before the first slash) and image (rest). I.e. replace (_.countBy(repository)['/'] > 1) ? with (repository[0] === '+') ? in  app/helpers/imageHelper.js #1439.
If typedregistry is not null, see #1441.

I think that the main feature is to allow the user not to remember the URL (and probably port number) of each registry, because it effectively provides an alias. For example, I can create registry "dev-registry" which points o a.rather.long.and.12345678-zyx.complex.domain:0000000, and none of the developers in my group needs to worry about what the URL is.

Not really, the alias was just an extra, the main feature here is to be able to associate credentials to a registry so that we can authenticate to private registries. You'll always find the registry URL in the tags anyway (a.rather.long.and.12345678-zyx.complex.domain:0000000).

Keeping authentication is also a feature, but I believe that the select box can be removed and have authentication handled silently. Note that I don't know if this is desirable

Due to the current implementation, users may use multiple credentials to the same registry.

It is. It is also equivalent to docker pull library/nginx:latest, docker pull docker.io/nginx:latest and docker pull docker.io/library/nginx:latest. There are four options because the space is defined by two binary variables

Indeed, this is why it can be quite complex to parse this.
I'm thinking that maybe we should review the entire UX for the image selection and authentication here...
At the moment, the select box gives access to an alias, an implicit registry URL and implicit credentials as well... It does not makes sense in some case as well where you can put my.registry.com/myname/myimage:latest in the image field and use DockerHub in the select box... (thus the creation of #1441 I believe).
Maybe we should just replace the whole form part with only one text input, where the user would be able to put the full image name (that is, registry, repo, name and tags. e.g. docker.io/library/nginx:latest for example) and then give an optional ability to the user to use credentials?
This way, we do not need to parse the the entered text anymore (which makes it simpler on our end) and give the ability to the user to specify ANY of the following formats:  nginx:latest, library/nginx:latest, docker.io/nginx:latest, docker.io/library/nginx:latest.
So instead of storing/managing registries, we could just be storing/managing registries credentials.
Here is a quick WIP:

Maybe we should just replace the whole form part with only one text input, where the user would be able to put the full image name (that is, registry, repo, name and tags. e.g. docker.io/library/nginx:latest for example) and then give an optional ability to the user to use credentials?

This way, we do not need to parse the the entered text anymore (which makes it simpler on our end) and give the ability to the user to specify ANY of the following formats: nginx:latest, library/nginx:latest, docker.io/nginx:latest, docker.io/library/nginx:latest.

So instead of storing/managing registries, we could just be storing/managing registries credentials.

I think this is a great idea, and it's even simpler than what I was suggesting earlier. It is very close to the CLI, and while I perfectly understand @1138-4EB's point of view:

I think that Portainer should not "just" recreate the experience of the CLI. It should be easier, if possible.

this whole image name parsing can get hairy real quickly.
Besides, if a user is used to docker image pull a.long.registry.name:5000/namespace/sub/image:tag why take that away from them? :wink:

It does not makes sense in some case as well where you can put my.registry.com/myname/myimage:latest in the image field and use DockerHub in the select box... (thus the creation of #1441 I believe).

Indeed...

Maybe we should just replace the whole form part with only one text input, where the user would be able to put the full image name (that is, registry, repo, name and tags. e.g. docker.io/library/nginx:latest for example) and then give an optional ability to the user to use credentials?

I like the idea of spliting credentials from registries, because it makes more explicit that the same credentials can be used for multiple registries.

This way, we do not need to parse the the entered text anymore (which makes it simpler on our end) and give the ability to the user to specify ANY of the following formats: nginx:latest, library/nginx:latest, docker.io/nginx:latest, docker.io/library/nginx:latest.

However, we are dropping the feature to write nginx:latest or library/nginx:latest and pull from myregistry.mydomain.tld, without writing the full domain every time. I do think that adding a single optional first character does not require "parsing", just conditional spliting.
Anyway, since you are already working on it, the list of registry aliases/shortcuts can be added afterwards, as a complementary feature.

I'm not really working on this at the moment, just made a quick POC to showcase a potential UX. But I think this is the way to go.


Ros2 v0.8.0 object range splitter

[x]  Build passed
Package: object range splitter
[x] ros2 run success.
Node : object range splitter_node
[x] Test  passed


(cleanup) Remove redundant files

Summary:
Remove following duplicated folders:
apps/
common/
contrib/
hack/
Removed or updated following files:
Kptfile
env.sh
pull_upstream.sh
cfg.mk
Makefile
The packages/ folder hasn't been removed yet, there are some files which haven't been moved to kubeflow/ yet.

/lgtm
/approve
Can you make a PR to add yourself to OWNERS?

/lgtm
/approve
Can you make a PR to add yourself to OWNERS?

Missed that message, sounds good and created https://github.com/kubeflow/gcp-blueprints/pull/218 for the action. Thank you Yuan!


Deletions and other errors at start of utterance

(sorry, I'm keeping track of this in an issue on github but this is not something accessible off our servers right now).
Guys,
As you know I've been working on some optimization ideas,
Right now was having a version of the model showing some unexpectedly  poor WER performance (on test-clean, it's giving around 11% or 12% WER, vs. around 6.5% in the baseline, at epcoh 19 of train-clean-100), while optimization performance on train and valid looked fine.
The issue is not one related to model averaging (it exists even without averaging, e.g.  /ceph-dan/icefall/egs/librispeech/ASR/pruned_transducer_stateless7/exp_pradam_exp1d/greedy_search/errs-test-other-greedy_search-epoch-19-avg-1-context-2-max-sym-per-frame-1.txt)
The search method doesn't seem to have a strong influence, e.g. changing greedy_search to modified_beam_search changes WER from 11.83 to 10.72 on test-clean at --epoch 19 --avg 7, but does not affect the preponderance of errors at the start of the utterance.
The --max-sym-per-frame doesn't have a strong influence, e.g. increasing it from 1 to 2 with greedy_search changed WER from 11.83 to 11.78.
The models are very similar in terms of validation and training loss.

Now, the first thought would obviously be, it's something to do with the optimizer, the optimizer is not good, but the fact that the errors are disproportionately at the start of utterances makes me think that this may be a more specific issue, e.g. something to do with the left-context at the start of the utterance, either the acoustic model's left-context or the symbol left-context.
Note, I am not super up-to-date with master code.  Actually I don't want to be 100% up-to-date because I have json.gz, not jsonl.gz, manifests on disk and I want things to be comparable with my previously-run experiments so I don't want to change this.
Does anyone have any ideas?  Could it be a previously-solved issue?

Note, I am not super up-to-date with master code. Actually I don't want to be 100% up-to-date because I have json.gz, not jsonl.gz, manifests on disk and I want things to be comparable with my previously-run experiments so I don't want to change this.

If you need to update, you can do lhotse copy manifest.json.gz manifest.jsonl.gz to have identical manifests in a different format.

I tried debugging this by extending all utterances with silence on both sides, to match the longest utterance, as in
 load_manifest(self.args.manifest_dir / "cuts_test-clean.json.gz").pad(direction='both').fill_supervisions()

(I know this is not ideal).
The WER on test-clean degraded from about 11.7 to 12.3.
So it's definitely something to do with acoustic left-context.

I tried using the training dataloader, including SpecAugment, using
    test_clean_dl = librispeech.train_dataloaders(test_clean_cuts)
(was test_dataloaders()), but the same pattern of errors persists, with of course even worse WERs.

I think I have found the issue.
In decoder.py https://github.com/k2-fsa/icefall/blob/385645d5333058d728bed5f8845d598d5f34dae0/egs/librispeech/ASR/pruned_transducer_stateless2/decoder.py#L96
there is code like this:
            if need_pad is True:
                embedding_out = F.pad(
                    embedding_out, pad=(self.context_size - 1, 0)
                )
            else:

... this pads the decoder embeddings on the left with 0.  IMO this isn't quite right, it would only be
guaranteed correct if the embedding for blank was zero.  Instead, IMO we should be padding the labels y
with an extra blank-id (since we use blank-id for SOS context), which is also zero of course.

I am trying a fix like this fix to beam_search.py:
@@ -381,7 +382,7 @@ def greedy_search_batch(
         dtype=torch.int64,
     )  # (N, context_size)

-    decoder_out = model.decoder(decoder_input, need_pad=False)
+    decoder_out = model.decoder(decoder_input[:,-1:], need_pad=True)

...  it helps the WER by about 2% absolute, which is half what I was hoping for, and, oddly, it does not completely get rid of the deletions at start of utterance.  About half of them are still there:
(HE->*) WAS SOFT HEARTED AND IMPETUOUS SAID BETH AND BEING IN LOVE HE DIDN'T STOP TO COUNT THE COST
HE CRIED IN (*->A) HIGH DUDGEON JUST AS IF HE OWNED THE WHOLE OF THE PEPPERS AND COULD DISPOSE OF THEM ALL TO SUIT HIS FANCY
(BUT THE->*) MORE FORGETFULNESS HAD THEN PREVAILED THE MORE POWERFUL WAS THE FORCE OF REMEMBRANCE WHEN SHE AWOKE
(I DID NOT MEAN->TEN) SAID CAPTAIN (BATTLEAX->BATTLEX) TO TOUCH UPON PUBLIC SUBJECTS AT SUCH A MOMENT AS THIS
THEY POINTEDLY DREW BACK FROM JOHN (JAGO->YAGO) AS HE APPROACHED THE EMPTY CHAIR NEXT TO ME AND MOVED ROUND TO THE OPPOSITE SIDE OF THE TABLE
(IF IT ONLY->FING) WERE NOT SO DARK HERE AND SO TERRIBLY LONELY
(WELL->LE) SAID (MADEMOISELLE DE TONNAY CHARENTE->MAUD MUSELLE TO IN A SHAHALENT) I ALSO THINK A GOOD DEAL BUT I TAKE CARE
WITHOUT HIS (SCRAPBOOKS->SCRAP BOOKS) HIS CHEMICALS AND HIS HOMELY (UNTIDINESS->ENTITINESS) HE WAS AN UNCOMFORTABLE MAN
EITHER HE CALLS MINISTERS THROUGH THE AGENCY OF MEN OR HE CALLS THEM DIRECTLY AS HE CALLED THE PROPHETS (AND->IN) APOSTLES
OH SHE'S ALWAYS AT THE PIANO SAID (VAN->ANNE) SHE MUST BE THERE NOW SOMEWHERE AND THEN SOMEBODY LAUGHED

Also, if I make a similar fix to greedy_search(), by providing --max-sym-per-frame 2, which stops the decode.py from using greedy_search_batch(), it fully resolves the issue -- likely because it doesn't recompute the decoder context inside the loop until it sees a new symbol.  WER goes from 11.78% to 6.34.
index ce8b04a..b49f46e 100644
--- a/egs/librispeech/ASR/pruned_transducer_stateless2/beam_search.py
+++ b/egs/librispeech/ASR/pruned_transducer_stateless2/beam_search.py
@@ -282,7 +282,7 @@ def greedy_search(
         [blank_id] * context_size, device=device, dtype=torch.int64
     ).reshape(1, context_size)

-    decoder_out = model.decoder(decoder_input, need_pad=False)
+    decoder_out = model.decoder(decoder_input[:,-1:], need_pad=True)
     decoder_out = model.joiner.decoder_proj(decoder_out)

@csukuangfj I think the right "temporary patch" to fix the decoding issue, would be to pass in a negative id to the Decoder module at the start of utterances; this will fix the loop issue.  We can modify the Decoder module to use that negative id as a mask (we can do .clamp(min=0) before the nn.Embedding forward and then multiply the result by (label >= 0)).  Perhaps you or Kangwei could work with Zhehuai on this if he is at work?  I'd like to have you showing the others to do things, so we spread out the knowledge a bit.

this pads the decoder embeddings on the left with 0. IMO this isn't quite right, it would only be
guaranteed correct if the embedding for blank was zero.

Indeed, the embedding for the blank is always 0.
https://github.com/k2-fsa/icefall/blob/385645d5333058d728bed5f8845d598d5f34dae0/egs/librispeech/ASR/pruned_transducer_stateless2/decoder.py#L60
note that we have set padding_idx to the blank_id, which ensures that the embedding for the blank is always 0.

AH.  OK.  I didn't realize (or I forgot) that nn.Embedding has this option.  The optimization method I was working with doesn't guarantee that parameters with zero grads will have zero update, hence the issue ...

Anyway, next time we refactor for some other reason, let's do the padding on the symbol level, and remove the
'padding_dim' option, just to simplify it slightly and not rely on this property.

Yes - My issue can be described exactly as random occasional deletions that get triggered at the beginning of the utterance. Will check out the fixes.

I see a similar phenomenon (deletions in the beginning or the end of
sentence) in kaldi also but only for certain models (not always). We never
figured out why it's so concentrated to either the beginning or the end.
DNN raw outputs seemed to suggest bad training and changing the training
changed things slightly but didn't totally fix the problem.
On Wed, Jul 27, 2022, 4:08 AM Fangjun Kuang @.***>
wrote:

this pads the decoder embeddings on the left with 0. IMO this isn't quite
right, it would only be
guaranteed correct if the embedding for blank was zero.
Indeed, the embedding for the blank is always 0.
https://github.com/k2-fsa/icefall/blob/385645d5333058d728bed5f8845d598d5f34dae0/egs/librispeech/ASR/pruned_transducer_stateless2/decoder.py#L60
note that we have set padding_idx to the blank_id, which ensures that the
embedding for the blank is always 0.
—
Reply to this email directly, view it on GitHub
https://github.com/k2-fsa/icefall/issues/499#issuecomment-1196399653,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACDHE6CTGYKOAYIMXVHDHVTVWDVBDANCNFSM54XKK2VA
.
You are receiving this because you were mentioned.Message ID:
@.***>

Hm, perhaps we always have more padding silence during training, at the start of the utterance, and the model isn't expecting the speech to start right away?
My issue turned out to be something quite specific to the optimizer I was using.

In a decode that I did using sherpa, substitution is 7% Insertion 2% but deletion 17%. So I see the deletion issue quite prominently. At the moment it could be sherpa specific, or could be specific to the nature of my test data. I am still looking but clearly, if I can get deletion under control, things will be much better. If you have suggestions please advise what all to try. The basic recipe is pruned_transducer_stateless3 _ fast_beam_search (no HLG).

@ngoel17
Could you describe which decoding method and which file from sherpa are you using?
Also, are the deletions at the end of an utterance most of the time?

I plan to decode several different ways and report but basically focusing
on streaming and pruned_transducer_statelessX, fast_beam_search
On Sun, Nov 6, 2022, 12:00 AM Fangjun Kuang @.***>
wrote:

@ngoel17 https://github.com/ngoel17
Could you describe which decoding method and which file from sherpa are
you using?
Also, are the deletions at the end of an utterance most of the time?
—
Reply to this email directly, view it on GitHub
https://github.com/k2-fsa/icefall/issues/499#issuecomment-1304709277,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACDHE6A2JSWJSYT5QP74P73WG4UMBANCNFSM54XKK2VA
.
You are receiving this because you were mentioned.Message ID:
@.***>

@csukuangfj Sorry about the slowness on my end. I need to segment the audio files as they are too long for k2 to decode without segmentation (OOM even on large CPU). However it made me think that maybe what is happening (as sherpa is endpointing internally) that after certain number of endpoints, maybe one complete segment sees a very high deletion, and then the next segment onwards the things are normal again. That would probably explain what I am seeing. As another side question, is there a way to make the server handle more throughput? I could push 50 channels on a T4, but if I do more, the CPU is not hitting 100% and the GPU is not hitting 100% but some channels start dropping out because of timeout. Did you make feature extraction truly multithreaded? Where is the parameter to control feature extraction threads?

Could you please try the c++ websocket server? I have tested that it can handle hundreds of concurrent connections.

I think the c++ server needs the following improvements:
Client: Add sampling rate option, add packet size option (preferably don't send floats but 16 bit integers instead), don't send the entire file in one shot because for 1/2 hr long files packet size is too big.
Server: Start decoding the moment any audio is received.   If the client forcefully disconnects, stop decoding even if there is a lot of pending audio, as the client_is_gone, and destroy the decoding task.

@ngoel17 Could you describe which decoding method and which file from sherpa are you using? Also, are the deletions at the end of an utterance most of the time?
Do all the decoding methods have such a high deletion rate?

fast-beam-search has a high deletion rate. Deletions happen in bursts.  modified-beam-search is a much lower deletions rate; the substitutions increase (i guess some deletions are becoming substitutions), but the overall WER is pretty decent. Greedy search has slightly higher WER compared to beam-search but only slightly higher. fast-beam-search is always significantly worse mainly due to the deletion problem.


Harinas Rural Municipality Added

Please combine #34, #39, #40, #41, #42 and #44 into one pull request please.


Tflite benchmark app build issues

Click to expand!
Issue Type
Bug
Have you reproduced the bug with TF nightly?
Yes
Source
source
Tensorflow Version
2.8
Custom Code
Yes
OS Platform and Distribution
macos
Mobile device
No response
Python version
3.8
Bazel version
No response
GCC/Compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current Behaviour?
Trying to build the android benchmark app from source using bazel

I did the configuration setup as follow:

➜  tensorflow git:(master) ✗ ./configure
You have bazel 5.3.0 installed.
Please specify the location of python. [Default is /Library/Frameworks/Python.framework/Versions/3.8/bin/python3]: /Library/Frameworks/Python.framework/Versions/3.8/bin/python3

Found possible Python library paths:
  /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages
Please input the desired Python library path to use.  Default is [/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages]

Do you wish to build TensorFlow with ROCm support? [y/N]: n
No ROCm support will be enabled for TensorFlow.

Do you wish to build TensorFlow with CUDA support? [y/N]: n
No CUDA support will be enabled for TensorFlow.

Do you wish to download a fresh release of clang? (Experimental) [y/N]: n
Clang will not be downloaded.

Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -Wno-sign-compare]:

Would you like to interactively configure ./WORKSPACE for Android builds? [y/N]: y
Searching for NDK and SDK installations.

Please specify the home path of the Android NDK to use. [Default is /library/Android/Sdk/ndk-bundle]: /Library/Android/sdk/ndk/21.4.7075529

Please specify the (min) Android NDK API level to use. [Available levels: ['16', '17', '18', '19', '21', '22', '23', '24', '26', '27', '28', '29', '30']] [Default is 26]: 21

Please specify the home path of the Android SDK to use. [Default is /library/Android/Sdk]: /library/Android/Sdk

Please specify the Android SDK API level to use. [Available levels: ['23', '28', '33', '33-ext5']] [Default is 33-ext5]: 28

Please specify an Android build tools version to use. [Available versions: ['28.0.3', '30.0.0', '33.0.2']] [Default is 33.0.2]: 30.0.0

Do you wish to build TensorFlow with iOS support? [y/N]: n
No iOS support will be enabled for TensorFlow.

Preconfigured Bazel build configs. You can use any of the below by adding "--config=<>" to your build command. See .bazelrc for more details.
	--config=mkl         	# Build with MKL support.
	--config=mkl_aarch64 	# Build with oneDNN and Compute Library for the Arm Architecture (ACL).
	--config=monolithic  	# Config for mostly static monolithic build.
	--config=numa        	# Build with NUMA support.
	--config=dynamic_kernels	# (Experimental) Build kernels into separate shared objects.
	--config=v1          	# Build with TensorFlow 1 API instead of TF 2 API.
Preconfigured Bazel build configs to DISABLE default on features:
	--config=nogcp       	# Disable GCP support.
	--config=nonccl      	# Disable NVIDIA NCCL support.
Configuration finished

Standalone code to reproduce the issue
bazel build -c opt --config=android_arm64 tensorflow/lite/tools/benchmark/android:benchmark_model --verbose_failures

Relevant log output
# Execution platform: @local_execution_config_platform//:platform
tensorflow/lite/delegates/gpu/delegate.cc:796:7: error: use of undeclared identifier 'AHardwareBuffer_acquire'; did you mean 'AHardwareBuffer_Plane'?
      AHardwareBuffer_acquire(ahwb);
      ^
external/androidndk/ndk/sysroot/usr/include/android/hardware_buffer.h:320:3: note: 'AHardwareBuffer_Plane' declared here
} AHardwareBuffer_Plane;
  ^
tensorflow/lite/delegates/gpu/delegate.cc:804:9: error: use of undeclared identifier 'AHardwareBuffer_release'; did you mean 'AHardwareBuffer_Plane'?
        AHardwareBuffer_release(b);
        ^
external/androidndk/ndk/sysroot/usr/include/android/hardware_buffer.h:320:3: note: 'AHardwareBuffer_Plane' declared here
} AHardwareBuffer_Plane;
  ^
tensorflow/lite/delegates/gpu/delegate.cc:812:7: error: use of undeclared identifier 'AHardwareBuffer_describe'
      AHardwareBuffer_describe(uptr_ahwb.get(), &desc_ahwb);
      ^
tensorflow/lite/delegates/gpu/delegate.cc:1194:18: error: use of undeclared identifier 'AHardwareBuffer_lock'
          return AHardwareBuffer_lock(buffer, this->usage_, -1 /* fence */,
                 ^
tensorflow/lite/delegates/gpu/delegate.cc:1221:24: error: use of undeclared identifier 'AHardwareBuffer_unlock'
                return AHardwareBuffer_unlock(buffer, nullptr /* fence */);
                       ^
5 errors generated.
Target //tensorflow/lite/tools/benchmark/android:benchmark_model failed to build
INFO: Elapsed time: 306.142s, Critical Path: 27.97s
INFO: 648 processes: 17 internal, 631 local.
FAILED: Build did NOT complete successfully

Hi @mescoulan-gpsw Thanks for reporting the issues.
I was able to successfully build the benchmark model with r2.12 version on MacOS with Bazel 5.3.0 as per the instructions given here. Please find the screenshot below.

The configure options are given for your reference.

Can you try you using r2.12 and using this and let us know if the issue still exists?
Thanks.

Hello @pjpratik , sorry for late reply.
By using r2.12, bazel 5.3.0 and the exact same configure options as you I was able to build successfully. Thank you !


nnictl tensorboard start failed!

I tried the mnist experiment as demo provided. The webui was started successful as followed:

But, I wanna view the visualization by the nnctl tensorboard command!
The info is that the process was started successfully!

But I try to access the url unavailably.

NNI use tensorboard --logdir {log path} --port {port} command to start the tensorboard process. Could you please use the command in your own terminal to check if  tensorboard  could work normally in your machine? the {log path} is show in NNI's INFO information.

I try the command tensorboad for other programs not nni. It works on my computer. But it still doesn't work via the comand nnictl tensorboard.

Hi @Steffy-zxf , could you please try if your data used in tensorboard is under the path listed in nnictl? Could you please offer the log content in /tmp/nni/{experimentId}/tensorboard_stdout and /tmp/nni/{experimentId}/tensorboard_stderr?

Hi @Steffy-zxf , had you got a chance try what @SparkSnail suggest? would you mind to update it here? thanks.

Hi @Steffy-zxf , could you please try if your data used in tensorboard is under the path listed in nnictl? Could you please offer the log content in /tmp/nni/{experimentId}/tensorboard_stdout and /tmp/nni/{experimentId}/tensorboard_stderr?

I’m closing this issue as it has no updates from customer for 3 months, please feel free to reopen if you are still seeing it an active issue.


Added -t to ssh for logs

-t : Force pseudo-terminal allocation.
This fixes https://github.com/dokku/dokku/issues/1533

Pull request for #20

Thanks for the fix! 🚀


Map caching not working for some class methods

Describe the bug
The cache loading is not working as expected for some class methods with a model stored in an attribute.
The new fingerprint for _map_single is not the same at each run. The hasher generate a different hash for the class method.
This comes from dumps function in datasets.utils.py_utils which generates a different dump at each run.
Steps to reproduce the bug
from datasets import load_dataset
from transformers import AutoConfig, AutoModel, AutoTokenizer

dataset = load_dataset("ethos", "binary")
BASE_MODELNAME = "sentence-transformers/all-MiniLM-L6-v2"

class Object:
    def __init__(self):
        config = AutoConfig.from_pretrained(BASE_MODELNAME)
        self.bert = AutoModel.from_config(config=config, add_pooling_layer=False)
        self.tok = AutoTokenizer.from_pretrained(BASE_MODELNAME)

    def tokenize(self, examples):

        tokenized_texts = self.tok(
            examples["text"],
            padding="max_length",
            truncation=True,
            max_length=256,
        )
        return tokenized_texts

instance = Object()
result = dict()
for phase in ["train"]:
    result[phase] = dataset[phase].map(instance.tokenize, batched=True, load_from_cache_file=True, num_proc=2)

Expected results
Load cache instead of recompute result.
Actual results
Result recomputed from scratch at each run.
The cache works fine when deleting bert attribute.
Environment info

datasets version: 2.5.3.dev0
Platform: macOS-10.16-x86_64-i386-64bit
Python version: 3.9.13
PyArrow version: 7.0.0
Pandas version: 1.5.0

The hash used for caching is computed by pickling recursively the function passed to map. Maybe some objects don't have the same hash across sessions.  In particular you can check the hash of your model using
from datasets.fingerprint import Hasher
obj = AutoModel.from_config(config=config, add_pooling_layer=False)
print(Hasher.hash(obj))

You can find mode info here: https://huggingface.co/docs/datasets/about_cache

Indeed, the hash is changing. The dumps function serialize the model object in different ways because the model object is not deterministic
from datasets.utils.py_utils import dumps
obj1 = AutoModel.from_config(config=config, add_pooling_layer=False)
obj2 = AutoModel.from_config(config=config, add_pooling_layer=False)

dumps(bert) == dumps(bert2). # False

You can find mode info here: https://huggingface.co/docs/datasets/about_cache
You can also provide your own unique hash in map if you want, with the new_fingerprint argument

Thanks, the doc is so helpful. Indeed, we can fix the hash and get cache hit using new_fingerprint. Closing the issue.


Unpin shapely version once pyinstaller issue is fixed

Shapely is pinned due to a pyinstaller issue
See https://github.com/shapely/shapely/issues/1385

Shapely has been unpinned since we aren't using pyinstaller anymore


CRC start needs admin permissions mid script

General information

OS: Windows
Hypervisor: Hyper-V
Did you run crc setup before starting it (Yes/No)? Yes

CRC version
# Put the output of `crc version`
crc version: 1.8.0+0a318dc
OpenShift version: 4.3.8 (embedded in binary)

CRC status
# Put the output of `crc status`
ERRO error: CreateFile C:\Users\jlynch\.crc\machines\crc\kubeconfig: The system cannot find the file specified.
 - exit status 1

CRC config
# Put the output of `crc config view`
- http-proxy                            : ### corp proxy ###
- https-proxy                           : ### corp proxy ###

Host Operating System
Host Name:                 JLYNCH10
OS Name:                   Microsoft Windows 10 Enterprise
OS Version:                10.0.17763 N/A Build 17763
OS Manufacturer:           Microsoft Corporation
OS Configuration:          Member Workstation
OS Build Type:             Multiprocessor Free
Registered Owner:          Micron
Registered Organization:   Micron Technology, Inc.
Product ID:                00329-00000-00003-AA175
Original Install Date:     11/12/2019, 12:22:10 PM
System Boot Time:          4/20/2020, 2:26:03 PM
System Manufacturer:       HP
System Model:              HP EliteDesk 800 G3 SFF
System Type:               x64-based PC
Processor(s):              1 Processor(s) Installed.
                           [01]: Intel64 Family 6 Model 94 Stepping 3 GenuineIntel ~3192 Mhz
BIOS Version:              HP P01 Ver. 02.31, 10/15/2019
Windows Directory:         C:\WINDOWS
System Directory:          C:\WINDOWS\system32
Boot Device:               \Device\HarddiskVolume2
System Locale:             en-us;English (United States)
Input Locale:              en-us;English (United States)
Time Zone:                 (UTC-07:00) Mountain Time (US & Canada)
Total Physical Memory:     32,647 MB
Available Physical Memory: 17,104 MB
Virtual Memory: Max Size:  37,511 MB
Virtual Memory: Available: 20,028 MB
Virtual Memory: In Use:    17,483 MB
Page File Location(s):     C:\pagefile.sys
Domain:                    na.micron.com
Logon Server:              \\WDCNABO3
Hotfix(s):                 11 Hotfix(s) Installed.
                           [01]: KB4537490
                           [02]: KB4465065
                           [03]: KB4470788
                           [04]: KB4489907
                           [05]: KB4494174
                           [06]: KB4521862
                           [07]: KB4523204
                           [08]: KB4537759
                           [09]: KB4539571
                           [10]: KB4549947
                           [11]: KB4538461
Network Card(s):           2 NIC(s) Installed.
                           [01]: Intel(R) Ethernet Connection (5) I219-LM
                                 Connection Name: Ethernet
                                 DHCP Enabled:    Yes
                                 DHCP Server:     <IP_ADDRESS>
                                 IP address(es)
                                 [01]: <IP_ADDRESS>
                                 [02]: fe80::ad41:64ba:f17b:2cf8
                           [02]: Hyper-V Virtual Ethernet Adapter
                                 Connection Name: vEthernet (Default Switch)
                                 DHCP Enabled:    No
                                 IP address(es)
                                 [01]: <IP_ADDRESS>
                                 [02]: fe80::1532:b455:f0d0:be27
Hyper-V Requirements:      A hypervisor has been detected. Features required for Hyper-V will not be displayed.

Steps to reproduce

crc setup
crc start -p C:\Users\jlynch\Programs\crc-windows-amd64\crc-windows-1.8.0-amd64\pull-secret.txt --log-level debug

Expected
Successfully start crc in Hyper-V.
Actual
Script needs admin permission in middle of script which I cannot elevate in due to corporate antivirus block or permissions issue.  I can either start powershell as admin or normal user, past that, I do not know how to elevate permissions once powershell is started as normal user.
INFO Will run as admin: add dns server address to interface vEthernet (Default Switch)
Logs
PS C:\Users\jlynch\Programs\crc-windows-amd64\crc-windows-1.8.0-amd64> crc start -p C:\Users\jlynch\Programs\crc-windows-amd64\crc-windows-1.8.0-amd64\pull-secret.txt --log-level debug
DEBU HTTP-PROXY: http://proxy-web.micron.com:80, HTTPS-PROXY: http://proxy-web.micron.com:80, NO-PROXY: <IP_ADDRESS>,localhost,localhost,<IP_ADDRESS>,.micron.com,addmmsi
DEBU No new version available. The latest version is 1.8.0
INFO Checking if oc binary is cached
DEBU oc binary already cached
INFO Checking if podman remote binary is cached
DEBU podman remote currently not supported on this platform
INFO Checking if running as normal user
INFO Checking Windows 10 release
INFO Checking if Hyper-V is installed and operational
INFO Checking if user is a member of the Hyper-V Administrators group
INFO Checking if Hyper-V service is enabled
INFO Checking if the Hyper-V virtual switch exist
INFO Found Virtual Switch to use: Default Switch
Checking file: C:\Users\jlynch\.crc\machines\crc\.crc-exist
INFO Loading bundle: crc_hyperv_4.3.8.crcbundle ...
INFO Checking size of the disk image C:\Users\jlynch\.crc\cache\crc_hyperv_4.3.8\crc.vhdx ...
INFO Creating CodeReady Containers VM for OpenShift 4.3.8...
Found binary path at C:\Users\jlynch\Programs\crc-windows-amd64\crc-windows-1.8.0-amd64\crc.exe
Launching plugin server for driver hyperv
Plugin server listening at address <IP_ADDRESS>:51669
() Calling .GetVersion
Using API Version  1
() Calling .SetConfigRaw
() Calling .GetMachineName
(crc) Calling .GetMachineName
(crc) Calling .DriverName
Running pre-create checks...
(crc) Calling .PreCreateCheck
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive @(Get-Module -ListAvailable hyper-v).Name | Get-Unique
(crc) DBG | [stdout =====>] : Hyper-V
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive @([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole(([System.Security.Principal.SecurityIdentifier]::new("S-1-5-32-578")))
(crc) DBG | [stdout =====>] : True
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive [Console]::OutputEncoding = [Text.Encoding]::UTF8; (Hyper-V\Get-VMSwitch).Name
(crc) DBG | [stdout =====>] : Default Switch
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) Calling .GetConfigRaw
Creating machine...
(crc) Calling .Create
(crc) Downloading C:\Users\jlynch\.crc\cache\crc.vhdx from file://C:/Users/jlynch/.crc/cache/crc_hyperv_4.3.8/crc.vhdx...
(crc) Creating VM...
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive [Console]::OutputEncoding = [Text.Encoding]::UTF8; (Hyper-V\Get-VMSwitch).Name
(crc) DBG | [stdout =====>] : Default Switch
(crc) DBG |
(crc) Using switch "Default Switch"
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive Hyper-V\New-VM crc -Path 'C:\Users\jlynch\.crc\machines\crc' -SwitchName 'Default Switch' -MemoryStartupBytes 8192MB
(crc) DBG | [stdout =====>] :
(crc) DBG | Name State CPUUsage(%) MemoryAssigned(M) Uptime   Status             Version
(crc) DBG | ---- ----- ----------- ----------------- ------   ------             -------
(crc) DBG | crc  Off   0           0                 00:00:00 Operating normally 9.0
(crc) DBG |
(crc) DBG |
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive Hyper-V\Set-VMMemory -VMName crc -DynamicMemoryEnabled $false
(crc) DBG | [stdout =====>] :
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive Hyper-V\Set-VMProcessor crc -Count 4
(crc) DBG | [stdout =====>] :
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive Hyper-V\Add-VMHardDiskDrive -VMName crc -Path 'C:\Users\jlynch\.crc\machines\crc\crc.vhdx'
(crc) Starting VM...
(crc) DBG | [stdout =====>] :
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive Hyper-V\Start-VM crc
(crc) DBG | [stdout =====>] :
(crc) DBG | [stderr =====>] :
(crc) Waiting for host to start...
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive ( Hyper-V\Get-VM crc ).state
(crc) DBG | [stdout =====>] : Running
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive (( Hyper-V\Get-VM crc ).networkadapters[0]).ipaddresses[0]
(crc) DBG | [stdout =====>] :
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive ( Hyper-V\Get-VM crc ).state
(crc) DBG | [stdout =====>] : Running
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive (( Hyper-V\Get-VM crc ).networkadapters[0]).ipaddresses[0]
(crc) DBG | [stdout =====>] :
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive ( Hyper-V\Get-VM crc ).state
(crc) DBG | [stdout =====>] : Running
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive (( Hyper-V\Get-VM crc ).networkadapters[0]).ipaddresses[0]
(crc) DBG | [stdout =====>] :
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive ( Hyper-V\Get-VM crc ).state
(crc) DBG | [stdout =====>] : Running
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive (( Hyper-V\Get-VM crc ).networkadapters[0]).ipaddresses[0]
(crc) DBG | [stdout =====>] :
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive ( Hyper-V\Get-VM crc ).state
(crc) DBG | [stdout =====>] : Running
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive (( Hyper-V\Get-VM crc ).networkadapters[0]).ipaddresses[0]
(crc) DBG | [stdout =====>] :
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive ( Hyper-V\Get-VM crc ).state
(crc) DBG | [stdout =====>] : Running
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive (( Hyper-V\Get-VM crc ).networkadapters[0]).ipaddresses[0]
(crc) DBG | [stdout =====>] :
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive ( Hyper-V\Get-VM crc ).state
(crc) DBG | [stdout =====>] : Running
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive (( Hyper-V\Get-VM crc ).networkadapters[0]).ipaddresses[0]
(crc) DBG | [stdout =====>] :
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive ( Hyper-V\Get-VM crc ).state
(crc) DBG | [stdout =====>] : Running
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive (( Hyper-V\Get-VM crc ).networkadapters[0]).ipaddresses[0]
(crc) DBG | [stdout =====>] :
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive ( Hyper-V\Get-VM crc ).state
(crc) DBG | [stdout =====>] : Running
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive (( Hyper-V\Get-VM crc ).networkadapters[0]).ipaddresses[0]
(crc) DBG | [stdout =====>] :
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive ( Hyper-V\Get-VM crc ).state
(crc) DBG | [stdout =====>] : Running
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive (( Hyper-V\Get-VM crc ).networkadapters[0]).ipaddresses[0]
(crc) DBG | [stdout =====>] :
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive ( Hyper-V\Get-VM crc ).state
(crc) DBG | [stdout =====>] : Running
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive (( Hyper-V\Get-VM crc ).networkadapters[0]).ipaddresses[0]
(crc) DBG | [stdout =====>] :
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive ( Hyper-V\Get-VM crc ).state
(crc) DBG | [stdout =====>] : Running
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive (( Hyper-V\Get-VM crc ).networkadapters[0]).ipaddresses[0]
(crc) DBG | [stdout =====>] :
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive ( Hyper-V\Get-VM crc ).state
(crc) DBG | [stdout =====>] : Running
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive (( Hyper-V\Get-VM crc ).networkadapters[0]).ipaddresses[0]
(crc) DBG | [stdout =====>] :
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive ( Hyper-V\Get-VM crc ).state
(crc) DBG | [stdout =====>] : Running
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive (( Hyper-V\Get-VM crc ).networkadapters[0]).ipaddresses[0]
(crc) DBG | [stdout =====>] :
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive ( Hyper-V\Get-VM crc ).state
(crc) DBG | [stdout =====>] : Running
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive (( Hyper-V\Get-VM crc ).networkadapters[0]).ipaddresses[0]
(crc) DBG | [stdout =====>] :
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive ( Hyper-V\Get-VM crc ).state
(crc) DBG | [stdout =====>] : Running
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive (( Hyper-V\Get-VM crc ).networkadapters[0]).ipaddresses[0]
(crc) DBG | [stdout =====>] :
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive ( Hyper-V\Get-VM crc ).state
(crc) DBG | [stdout =====>] : Running
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive (( Hyper-V\Get-VM crc ).networkadapters[0]).ipaddresses[0]
(crc) DBG | [stdout =====>] : <IP_ADDRESS>
(crc) DBG |
(crc) Calling .GetConfigRaw
(crc) DBG | [stderr =====>] :
(crc) Calling .DriverName
(crc) Calling .DriverName
Waiting for machine to be running, this may take a few minutes...
(crc) Calling .GetState
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive ( Hyper-V\Get-VM crc ).state
(crc) DBG | [stdout =====>] : Running
(crc) DBG |
Machine is up and running!
(crc) DBG | [stderr =====>] :
Machine successfully created
Created C:\Users\jlynch\.crc\machines\crc\.crc-exist
(crc) Calling .GetState
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive ( Hyper-V\Get-VM crc ).state
(crc) DBG | [stdout =====>] : Running
(crc) DBG |
(crc) DBG | [stderr =====>] :
Found binary path at C:\Users\jlynch\Programs\crc-windows-amd64\crc-windows-1.8.0-amd64\crc.exe
Launching plugin server for driver hyperv
Plugin server listening at address <IP_ADDRESS>:51695
() Calling .GetVersion
Using API Version  1
() Calling .SetConfigRaw
() Calling .GetMachineName
DEBU Waiting until ssh is available
(crc) Calling .GetSSHHostname
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive ( Hyper-V\Get-VM crc ).state
(crc) DBG | [stdout =====>] : Running
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive (( Hyper-V\Get-VM crc ).networkadapters[0]).ipaddresses[0]
(crc) DBG | [stdout =====>] : <IP_ADDRESS>
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) Calling .GetSSHPort
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHUsername
Using SSH client type: native
&{{{<nil> 0 [] [] []} core [0x7bb780] 0x7bb750 <nil>  [] 0s} <IP_ADDRESS> 22 <nil> <nil>}
DEBU About to run SSH command:
exit 0
DEBU SSH cmd err, output: <nil>:
INFO Verifying validity of the cluster certificates ...
(crc) Calling .GetSSHHostname
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive ( Hyper-V\Get-VM crc ).state
(crc) DBG | [stdout =====>] : Running
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive (( Hyper-V\Get-VM crc ).networkadapters[0]).ipaddresses[0]
(crc) DBG | [stdout =====>] : <IP_ADDRESS>
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) Calling .GetSSHPort
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHUsername
Using SSH client type: native
&{{{<nil> 0 [] [] []} core [0x7bb780] 0x7bb750 <nil>  [] 0s} <IP_ADDRESS> 22 <nil> <nil>}
DEBU About to run SSH command:
date --date="$(sudo openssl x509 -in /var/lib/kubelet/pki/kubelet-client-current.pem -noout -enddate | cut -d= -f 2)" --iso-8601=seconds
DEBU SSH cmd err, output: <nil>: 2020-04-26T15:41:22+00:00
(crc) Calling .GetIP
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive ( Hyper-V\Get-VM crc ).state
(crc) DBG | [stdout =====>] : Running
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive (( Hyper-V\Get-VM crc ).networkadapters[0]).ipaddresses[0]
(crc) DBG | [stdout =====>] : <IP_ADDRESS>
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) Calling .DriverName
(crc) Calling .GetSSHHostname
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive ( Hyper-V\Get-VM crc ).state
(crc) DBG | [stdout =====>] : Running
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive (( Hyper-V\Get-VM crc ).networkadapters[0]).ipaddresses[0]
(crc) DBG | [stdout =====>] : <IP_ADDRESS>
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) Calling .GetSSHPort
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHUsername
Using SSH client type: native
&{{{<nil> 0 [] [] []} core [0x7bb780] 0x7bb750 <nil>  [] 0s} <IP_ADDRESS> 22 <nil> <nil>}
DEBU About to run SSH command:
echo 'dXNlcj1yb290CnBvcnQ9IDUzCmJpbmQtaW50ZXJmYWNlcwpleHBhbmQtaG9zdHMKbG9nLXF1ZXJpZXMKc3J2LWhvc3Q9X2V0Y2Qtc2VydmVyLXNzbC5fdGNwLmNyYy50ZXN0aW5nLGV0Y2QtMC5jcmMudGVzdGluZywyMzgwLDEwCmxvY2FsPS9jcmMudGVzdGluZy8KZG9tYWluPWNyYy50ZXN0aW5nCmFkZHJlc3M9L2FwcHMtY3JjLnRlc3RpbmcvMTkyLjE2OC4yMDIuOTIKYWRkcmVzcz0vZXRjZC0wLmNyYy50ZXN0aW5nLzE5Mi4xNjguMjAyLjkyCmFkZHJlc3M9L2FwaS5jcmMudGVzdGluZy8xOTIuMTY4LjIwMi45MgphZGRyZXNzPS9hcGktaW50LmNyYy50ZXN0aW5nLzE5Mi4xNjguMjAyLjkyCmFkZHJlc3M9L2NyYy00NW5zay1tYXN0ZXItMC5jcmMudGVzdGluZy8xOTIuMTY4LjIwMi45Mgo=' | openssl enc -base64 -d | sudo tee /var/srv/dnsmasq.conf > /dev/null
DEBU SSH cmd err, output: <nil>:
(crc) Calling .GetSSHHostname
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive ( Hyper-V\Get-VM crc ).state
(crc) DBG | [stdout =====>] : Running
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive (( Hyper-V\Get-VM crc ).networkadapters[0]).ipaddresses[0]
(crc) DBG | [stdout =====>] : <IP_ADDRESS>
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) Calling .GetSSHPort
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHUsername
Using SSH client type: native
&{{{<nil> 0 [] [] []} core [0x7bb780] 0x7bb750 <nil>  [] 0s} <IP_ADDRESS> 22 <nil> <nil>}
DEBU About to run SSH command:
sudo podman rm -f dnsmasq
DEBU SSH cmd err, output: Process exited with status 1: Error: Failed to evict container: "": Failed to find container "dnsmasq" in state: no container with name or ID dnsmasq found: no such container
(crc) Calling .GetSSHHostname
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive ( Hyper-V\Get-VM crc ).state
(crc) DBG | [stdout =====>] : Running
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive (( Hyper-V\Get-VM crc ).networkadapters[0]).ipaddresses[0]
(crc) DBG | [stdout =====>] : <IP_ADDRESS>
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) Calling .GetSSHPort
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHUsername
Using SSH client type: native
&{{{<nil> 0 [] [] []} core [0x7bb780] 0x7bb750 <nil>  [] 0s} <IP_ADDRESS> 22 <nil> <nil>}
DEBU About to run SSH command:
sudo rm -f /var/lib/cni/networks/podman/<IP_ADDRESS>
DEBU SSH cmd err, output: <nil>:
(crc) Calling .GetSSHHostname
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive ( Hyper-V\Get-VM crc ).state
(crc) DBG | [stdout =====>] : Running
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive (( Hyper-V\Get-VM crc ).networkadapters[0]).ipaddresses[0]
(crc) DBG | [stdout =====>] : <IP_ADDRESS>
(crc) DBG |
(crc) DBG | [stderr =====>] :
(crc) Calling .GetSSHPort
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHUsername
Using SSH client type: native
&{{{<nil> 0 [] [] []} core [0x7bb780] 0x7bb750 <nil>  [] 0s} <IP_ADDRESS> 22 <nil> <nil>}
DEBU About to run SSH command:
sudo podman run  --ip <IP_ADDRESS> --name dnsmasq -v /var/srv/dnsmasq.conf:/etc/dnsmasq.conf -p 53:53/udp --privileged -d quay.io/crcont/dnsmasq:latest
DEBU SSH cmd err, output: <nil>: a7a158e79bcb36f717fa446f31b04b2909f2e74e28a939a609e36413b8b627d2
INFO Will run as admin: add dns server address to interface vEthernet (Default Switch)
ERRO Nameserver not successfully set
ERRO Error running post start: Nameserver not successfully set
Making call to close driver server
(crc) Calling .Close
Successfully made call to close driver server
Making call to close connection to plugin binary
Making call to close driver server
(crc) Calling .Close
(crc) DBG | Closing plugin on server side
Successfully made call to close driver server
Making call to close connection to plugin binary
(crc) DBG | Closing plugin on server side
PS C:\Users\jlynch\Programs\crc-windows-amd64\crc-windows-1.8.0-amd64>

Invalid: this is needed to setup DNS configuration.
INFO Will run as admin: add dns server address to interface vEthernet (Default Switch)
ERRO Nameserver not successfully set

If not possible, you would need to set entries in the hosts file. Do you have permissions for this? If not, make sure an exception is made inside the anti-virus tool or permissions for this file are granted

See:

Issue #1132 Use /etc/hosts instead of dnsmasq #1136
[spike] Remove dns dependency on the host #1132

I think I should have permissions to edit the "hosts" file within the crc VM as long as I know the root password for getting into the VM.  I don't think editing anything within the VM would conflict with my Windows permission issues.
I am a little confused on what I should be adding to the "hosts" file though based on the issues you linked.  What needs to be added or edited?

I think I should have permissions to edit the "hosts" file within the crc VM

No, DNS is resolved from the host C:\Windows\System32\Drivers\etc\hosts. The VM uses a dns server that handles the patterns for crc.testing and crc-apps.testing.

@gbraad sorry for the delayed response.  I tried running C:\Windows\System32\netsh.exe interface ip set dns "vEthernet (Default Switch)" static <IP_ADDRESS> primary as an admin in a separate shell when I ran into this problem running "crc start" as a regular user, but I would get this error Your computer is trying to use a DNS server that is incorrect or doesn't exist.  At this point it is starting to look like too much trouble for me trying to get this set up on a corporate Windows machine.  I think I will try this again on one of our Linux boxes that I can get admin permissions on to see if I have any more luck with that.

Hi @gbraad , I have not been able to get my hands on a Linux box yet, but I did try to install crc again with version 1.13.0 of the program.  Sad to report that it still seems like my privilege escalation issue for the "netsh" command still exists.  I would suggest that for the installation documentation for this software to add that admin permissions are required for proper crc cluster setup. I do not see this explicitly mentioned anywhere in the installation requirements (https://code-ready.github.io/crc/#installation_gsg).  It would be a good red flag for anyone working on corporate machines that do not have admin permissions on their machines (such as myself).

On second inspection, it looks like there is some mention of the need for admin permissions, just in the linux "sudo" terms, not windows "admin" terms.  When reading this the first time, I thought the sudo only applied to within the crc VM.
"Prerequisites
Your user account has permission to use the sudo command.
Do not run the crc binary as root (or Administrator). Always run the crc binary with your user account.
If you are setting up a new version, capture any changes made to the virtual machine before setting up a new CodeReady Containers release."

@jlynchMicron Thanks for pointing that out -- we could definitely be more clear there that sudo applies for Linux and macOS. The ability to escalate to administrator privileges is required on Windows. (I'm not sure how we should phrase this using the terminology of Windows.)

@gbraad Are Administrator privileges only required on Windows for crc start? I don't recall needing sudo permissions on Linux when starting the VM.

Fixed by #1457.

Sorry for edits on this issue.  Had to remove some information with "### redacted ###" due to security concerns.


爬虫市场报错： tls: handshake failure

Bug 描述
爬虫市场连接失败，报错: tls: handshake failure

Bug 描述
爬虫市场连接失败，报错: tls: handshake failure

+1

Bug 描述
爬虫市场连接失败，报错: tls: handshake failure

+1

The same issue still exists in the latest version as I writing this comment today.


Some tables' numbers extracted wrong from pdf

Step to reproduce:

Import the attached problem.pdf file.
Extract the tables from it (By auto-detect or manually).
Some numbers are wrong.
e.g: Line 6 : 3,797 -> 3,777, 5,317 -> 5,337 and there are some more...

Tested Tabula:

tabula v1.1.1
tabula-java v1.01
command:
java -jar tabula-1.0.1-jar-with-dependencies.jar problem.pdf -o problem.csv
tabula-py v1.0.0
command:
read_pdf('problem.pdf')

Details:
File:
problem.pdf
OS: Windows 10
Computer languages: English \ Hebrew

closing in favor of https://github.com/tabulapdf/tabula-java/issues/180; will comment there soon.


Critical error: streamHeap and streamMap are not the same length

I didn't actually notice anything wrong but I saw this in my terminal. Feel free to remove this bug report if it's nothing.
BUG REPORT
goroutine 2887318 [running]:
runtime/debug.Stack(0x445e67, 0x0, 0xc45824dd68)
/usr/local/go/src/runtime/debug/stack.go:24 +0xa7
runtime/debug.PrintStack()
/usr/local/go/src/runtime/debug/stack.go:16 +0x22
github.com/NebulousLabs/Sia/build.Critical(0xc45824de10, 0x1, 0x1)
/home/luke/go/src/github.com/NebulousLabs/Sia/build/critical.go:16 +0x93
github.com/NebulousLabs/Sia/modules/renter.(*streamCache).pruneCache(0xc42032af90, 0x1)
/home/luke/go/src/github.com/NebulousLabs/Sia/modules/renter/streamcache.go:108 +0x18b
github.com/NebulousLabs/Sia/modules/renter.(*streamCache).Add(0xc42032af90, 0xc44ef76120, 0x8, 0xc49f75a000, 0x27ffee8, 0x3bffe5c)
/home/luke/go/src/github.com/NebulousLabs/Sia/modules/renter/streamcache.go:80 +0x92
github.com/NebulousLabs/Sia/modules/renter.(*unfinishedDownloadChunk).threadedRecoverLogicalData(0xc467940000, 0x0, 0x0)
/home/luke/go/src/github.com/NebulousLabs/Sia/modules/renter/downloadchunk.go:226 +0x78b
created by github.com/NebulousLabs/Sia/modules/renter.(*worker).managedDownload
/home/luke/go/src/github.com/NebulousLabs/Sia/modules/renter/workerdownload.go:60 +0x42a
Critical error: streamHeap and streamMap are not the same length
Environment

Sia version: 1.3.3
OS: Ubuntu 16.04

Hey @pdxwebdev can you try checking out the branch i just created stream-cache-bug and try recreating the error?  I updated the build critical error message to show the lengths of the Heap and Map to help with debugging

Just got it built, tested it, then I come back here... Aaaaand it's closed. lol
FWIW, the issue did not occur again on stream-cache-bug.


Start week with Sunday

Is it possible to start the week with Sunday instead of Monday?

This is a feature request, will have to be added as a method or xml attribute. Probably a boolean flag.

Can you pls tell by example how it can be achieved ?

Hi, sorry for the delayed reply. I have been very busy these past few weeks. However, I plan to get started on this by the weekend. Currently, however, this isn't supported.

Hello SundeepK, I just started learning Android Studios about 4 weeks ago. I found your Calendar View very useful. I was toying around with the built in calendar view, but I read on stackflow that I can't add events unless I make a custom one. Anyways, I'm here to say thanks and to tell you that I am using your work.

@chaosxeras :thumbsup:

Almost done with this issue, have a look at branch and commit 9a1aae0 if you want to test things out.

Available in:
 dependencies {
    compile 'com.github.sundeepk:compact-calendar-view:1.7.9'
}

Setting this variable does nothing for me. Is there an extra step?

@jaytj95 what version are of android and the library are you using? It should be simple as calling something like compactCalendarView.setShouldShowMondayAsFirstDay(false); It works in the sample app provided in the main repo running nexus 6p.


Vim: support gn command

Check for existing issues

[X] Completed

Describe the feature
I'm enjoying Zed and the vim mode has really come a long way since the last I tried it. I've attempted switching to this as my full-time editor and finding that apparently my muscle-memory leverages vim's gn command extensively.
I am happy to elaborate, but VimCasts can do it more justice than I... http://vimcasts.org/episodes/operating-on-search-matches-using-gn/
Perhaps this is supported somehow in Zed of which I'm not aware. Regardless, as of now it appears the default vim keymap in Zed assigns g n already as documented at https://docs.zed.dev/general/vim#zed-specific-features...
g n   Add a visual selection for the next copy of the current word

If the intent is to eventually, as noted in the documentation, "do what you expect", the gn command is one I'd expect to be present.
If applicable, add mockups / screenshots to help present your vision of the feature
No response

@baldwindavid perhaps dangerously I made this do something slightly different in zed. It currently selects the next copy of the word under the cursor and puts you in Zed's multi-cursor mode.
I had not intended to overwrite an existing vim keybinding though, so we should probably make gn work as it does in vim; and use something else (maybe g. for the zed behavior as it's another nod to "same again")

@ConradIrwin Good to know that the intention is to try to work towards "standard vim".
My two cents is that anything that is an "addition" should be under the leader key. My understanding of the Leader key has always been that it's a namespace for customization. Placing it there should remove concerns of stepping on standard vim keybindings.
Personally, I also think that most vim folk are going to customize their keybindings anyway, so just set a reasonable default under the Leader and devs can use it or map their own.
This is with the understanding that Zed doesn't actually yet have the concept of a Leader key. Even so, I think you could choose one now (I'd vote for "space"), write it into the defaults, and then update to use an actual configurable Leader at such time as it's developed in Zed.

Hm, suppose if I'm talking about "standard vim" I should be suggesting \ as the leader key since that's vim's out of the box default.

Hey! Also ran into the same issue as @baldwindavid :) I think we could get a long way and not conflict with standard (Neo)vim keybindings if we take the nvim-lspconfig suggested keybindings as inspiration: https://github.com/neovim/nvim-lspconfig?tab=readme-ov-file#suggested-configuration
Example: g. is already taken in Zed to do code actions, so we can't use that as a replacement for gn, but if we use the suggested <space>ca it would work. (I also remember that at some point ga was the suggested keybinding). Quick Sourcegraph search suggests that people use wildly different bindings though: https://sourcegraph.com/search?q=context:global+lang:lua+vim.lsp.buf.code_action&patternType=standard&sm=1

Makes sense. My goal was to use keybindings that feel vim-native for zed-native stuff (though maybe a fools errand because there's not a lot of room left!).  In particular I wanted to avoid binding to common <leader> keys (, and space) because that seems like what plugins/user config should do.
For something as useful as multicursor, it still seems nice to have a two-character binding. We could try riffing in a few directions:

g z, g x, g c are all open (though I type g with my left hand so on a standard keyboard they're fiddly), as are g y, g p and g l (easier to type).

g s is "sleep" in vim mode; and I'd feel comfortable overwriting that...

<option-v> and <option-shift-v> (it's a new visual mode that vim doesn't have, though it's a bit of a pain to type)
https://github.com/mg979/vim-visual-multi uses <ctrl-n>

My preference would probably be gs or gl, and then implement gn like vim. But open to other ideas.

My vote for gl -- that seems really nice to type.
(Note: g s is already taken for opening the document's symbols, right?)

TIL about gs ("sleep") ha
gl sounds good to me.
I'd just mention that maybe someday it'd be real nice if someone could choose a mode that is not "vim". For instance, my preferred mode is actually Helix (which is mostly Kakoune). One could argue if Helix is a "mode" or a pre-configured editor; I'd say it's a mode because that's the only one they have.
Zed's job is tougher because it's trying to support at least two modes: vim and, uh, not-vim. It will only get tougher if attempting to support more modes. Anyway, part of me thinks that the more clearly a distinction can be drawn between a stock "mode" (vim, helix, kak) and Zed-specific keybindings perhaps the easier to reason about. On the other hand, I can appreciate trying to offer users a nice out-of-the-box vim-ish experience because you're trying to gain VSCode and Vim marketshare "today".


[Q]: ERROR failed to upsert bucket: returned error 403 Forbidden

Ask your question
Hello,
I am a new using wanb. I want to experiment tracking by using wandb and executing python commands. However I get this error.
How to solve this error?
wandb: Currently logged in as: bassfaye10. Use wandb login --relogin to force relogin
wandb: ERROR failed to upsert bucket: returned error 403 Forbidden: {"errors":[{"message":"permission denied","path":["upsertBucket"],"extensions":{"code":"PERMISSION_ERROR"}}],"data":{"upsertBucket":null}}

Hi @bassfaye , happy to help. Could you please tell us more about your experiment or specific use case and if you could share the following:
-Code Snippet
-Full stack trace error
-the debug.log and debug-internal.log. These files are under your local folder wandb/run-_-/logs in the same directory where you’re running your code.

Hi @JoanaMarieL,
I want to use machine learning for tooth segmentation. So I've found an example on github on this link: https://github.com/limhoyeon/ToothGroupNetwork. I want to initiate myself on machine learning by compiling this project.
Here are informations that you need:

Code Snippet:

train.py
if config["wandb"]["wandb_on"]:
wandb.init(
entity=self.config["wandb"]["wandb_entity"],
project=self.config["wandb"]["project"],
notes=self.config["wandb"]["notes"],
tags=self.config["wandb"]["tags"],
name=self.config["wandb"]["name"],
config=self.config,
)

Full stack trace error:

_wandb: ERROR failed to upsert bucket: returned error 403 Forbidden: {"errors":[{"message":"permission denied","path":["upsertBucket"],"extensions":{"code":"PERMISSION_ERROR"}}],"data":{"upsertBucket":null}}
Traceback (most recent call last):
File "start_train.py", line 51, in
runner(config, model)
File "F:\ToothGroupNetwork\runner.py", line 56, in runner
trainner = Trainer(config=config, model = model, gen_set=gen_set)
File "F:\ToothGroupNetwork\trainer.py", line 15, in init
wandb.init(
File "C:\Users\serigne_admin\AppData\Local\Programs\Python\Python38\lib\site-packages\wandb\sdk\wandb_init.py", line 1266, in init
wandb.sentry.reraise(e)
File "C:\Users\serigne_admin\AppData\Local\Programs\Python\Python38\lib\site-packages\wandb\analytics\sentry.py", line 155, in reraise
raise exc.with_traceback(sys.exc_info()[2])
File "C:\Users\serigne_admin\AppData\Local\Programs\Python\Python38\lib\site-packages\wandb\sdk\wandb_init.py", line 1252, in init
return wi.init()
File "C:\Users\serigne_admin\AppData\Local\Programs\Python\Python38\lib\site-packages\wandb\sdk\wandb_init.py", line 844, in init
raise error
wandb.errors.errors.CommError: failed to upsert bucket: returned error 403 Forbidden: {"errors":[{"message":"permission denied","path":["upsertBucket"],"extensions":{"code":"PERMISSION_ERROR"}}],"data":{"upsertBucket":null}}

Debug.log
_### 2024-10-14 11:16:39,633 INFO    MainThread:15652 [wandb_setup.py:_flush():79] Current SDK version is 0.18.3
2024-10-14 11:16:39,633 INFO    MainThread:15652 [wandb_setup.py:_flush():79] Configure stats pid to 15652
2024-10-14 11:16:39,633 INFO    MainThread:15652 [wandb_setup.py:_flush():79] Loading settings from C:\Users\serigne_admin.config\wandb\settings
2024-10-14 11:16:39,633 INFO    MainThread:15652 [wandb_setup.py:_flush():79] Loading settings from F:\ToothGroupNetwork\wandb\settings
2024-10-14 11:16:39,633 INFO    MainThread:15652 [wandb_setup.py:_flush():79] Loading settings from environment variables: {}
2024-10-14 11:16:39,633 INFO    MainThread:15652 [wandb_setup.py:_flush():79] Applying setup settings: {'mode': None, '_disable_service': None}
2024-10-14 11:16:39,652 INFO    MainThread:15652 [wandb_setup.py:_flush():79] Inferring run settings from compute environment: {'program_relpath': 'start_train.py', 'program_abspath': 'F:\ToothGroupNetwork\start_train.py', 'program': 'start_train.py'}
2024-10-14 11:16:39,652 INFO    MainThread:15652 [wandb_setup.py:_flush():79] Applying login settings: {}
2024-10-14 11:16:39,652 INFO    MainThread:15652 [wandb_init.py:_log_setup():532] Logging user logs to F:\ToothGroupNetwork\wandb\run-20241014_111639-i5vb5pi5\logs\debug.log
2024-10-14 11:16:39,652 INFO    MainThread:15652 [wandb_init.py:_log_setup():533] Logging internal logs to F:\ToothGroupNetwork\wandb\run-20241014_111639-i5vb5pi5\logs\debug-internal.log
2024-10-14 11:16:39,652 INFO    MainThread:15652 [wandb_init.py:init():617] calling init triggers
2024-10-14 11:16:39,652 INFO    MainThread:15652 [wandb_init.py:init():624] wandb.init called with sweep_config: {}
config: {'wandb': {'entity': 'bassfaye10', 'wandb_on': True, 'project': '3d tooth mesh segmentation', 'tags': '3d tooth mesh segmentation', 'notes': '3d tooth mesh segmentation', 'name': 'tgnet_0620'}, 'generator': {'input_data_dir_path': 'data_preprocessed_directory', 'train_data_split_txt_path': 'base_name_train_fold.txt', 'val_data_split_txt_path': 'base_name_val_fold.txt', 'aug_obj_str': "aug.Augmentator([aug.Scaling([0.85, 1.15]), aug.Rotation([-30,30], 'fixed'), aug.Translation([-0.2, 0.2])])", 'train_batch_size': 1, 'val_batch_size': 1}, 'checkpoint_path': 'ckpts/tgnet_0620', 'tr_set': {'optimizer': {'lr': 0.1, 'NAME': 'sgd', 'momentum': 0.9, 'weight_decay': 0.0001}, 'scheduler': {'sched': 'cosine', 'warmup_epochs': 0, 'full_steps': 40, 'schedueler_step': 15000000, 'min_lr': 1e-05}, 'loss': {'cbl_loss_1': 1, 'cbl_loss_2': 1, 'tooth_class_loss_1': 1, 'tooth_class_loss_2': 1, 'offset_1_loss': 0.03, 'offset_1_dir_loss': 0.03, 'chamf_1_loss': 0.15}}, 'model_parameter': {'input_feat': 6, 'stride': [1, 4, 4, 4, 4], 'nsample': [36, 24, 24, 24, 24], 'blocks': [2, 3, 4, 6, 3], 'block_num': 5, 'planes': [32, 64, 128, 256, 512], 'crop_sample_size': 3072}}
2024-10-14 11:16:39,652 INFO    MainThread:15652 [wandb_init.py:init():667] starting backend
2024-10-14 11:16:39,652 INFO    MainThread:15652 [wandb_init.py:init():671] sending inform_init request
2024-10-14 11:16:39,652 INFO    MainThread:15652 [backend.py:multiprocessing_setup():104] multiprocessing start_methods=spawn, using: spawn
2024-10-14 11:16:39,656 INFO    MainThread:15652 [wandb_init.py:init():684] backend started and connected
2024-10-14 11:16:39,663 INFO    MainThread:15652 [wandb_init.py:init():779] updated telemetry
2024-10-14 11:16:39,663 INFO    MainThread:15652 [wandb_init.py:init():812] communicating run to backend with 90.0 second timeout
2024-10-14 11:16:40,077 ERROR   MainThread:15652 [wandb_init.py:init():838] encountered error: failed to upsert bucket: returned error 403 Forbidden: {"errors":[{"message":"permission denied","path":["upsertBucket"],"extensions":{"code":"PERMISSION_ERROR"}}],"data":{"upsertBucket":null}}
2024-10-14 11:16:40,077 ERROR   MainThread:15652 [wandb_init.py:init():1262] error in wandb.init()
Traceback (most recent call last):
File "C:\Users\serigne_admin\AppData\Local\Programs\Python\Python38\lib\site-packages\wandb\sdk\wandb_init.py", line 1252, in init
return wi.init()
File "C:\Users\serigne_admin\AppData\Local\Programs\Python\Python38\lib\site-packages\wandb\sdk\wandb_init.py", line 844, in init
raise error
wandb.errors.errors.CommError: failed to upsert bucket: returned error 403 Forbidden: {"errors":[{"message":"permission denied","path":["upsertBucket"],"extensions":{"code":"PERMISSION_ERROR"}}],"data":{"upsertBucket":null}}
2024-10-14 11:16:40,147 WARNING MsgRouterThr:15652 [router.py:message_loop():77] message_loop has been closed

Debug-internal.log:

{"time":"2024-10-14T11:16:39.6571469+02:00","level":"INFO","msg":"using version","core version":"0.18.3"}
{"time":"2024-10-14T11:16:39.6571469+02:00","level":"INFO","msg":"created symlink","path":"F:\ToothGroupNetwork\wandb\run-20241014_111639-i5vb5pi5\logs\debug-core.log"}
{"time":"2024-10-14T11:16:39.667464+02:00","level":"ERROR","msg":"dialing: google: could not find default credentials. See https://cloud.google.com/docs/authentication/external/set-up-adc for more information"}
{"time":"2024-10-14T11:16:39.9300979+02:00","level":"INFO","msg":"created new stream","id":"i5vb5pi5"}
{"time":"2024-10-14T11:16:39.9302162+02:00","level":"INFO","msg":"stream: started","id":"i5vb5pi5"}
{"time":"2024-10-14T11:16:39.9302162+02:00","level":"INFO","msg":"writer: Do: started","stream_id":{"value":"i5vb5pi5"}}
{"time":"2024-10-14T11:16:39.9303154+02:00","level":"INFO","msg":"sender: started","stream_id":{"value":"i5vb5pi5"}}
{"time":"2024-10-14T11:16:39.9303154+02:00","level":"INFO","msg":"handler: started","stream_id":{"value":"i5vb5pi5"}}
{"time":"2024-10-14T11:16:40.0765827+02:00","level":"ERROR","msg":"HTTP error","status":403,"method":"POST","url":"https://api.wandb.ai/graphql"}
{"time":"2024-10-14T11:16:40.0765827+02:00","level":"ERROR","msg":"sender: upsertRun:","error":"failed to upsert bucket: returned error 403 Forbidden: {"errors":[{"message":"permission denied","path":["upsertBucket"],"extensions":{"code":"PERMISSION_ERROR"}}],"data":{"upsertBucket":null}}"}
{"time":"2024-10-14T11:16:40.1472315+02:00","level":"INFO","msg":"stream: closing","id":"i5vb5pi5"}
{"time":"2024-10-14T11:16:40.2625221+02:00","level":"ERROR","msg":"HTTP error","status":403,"method":"POST","url":"https://api.wandb.ai/graphql"}
{"time":"2024-10-14T11:16:40.2697548+02:00","level":"ERROR","msg":"sender: sendConfig:","error":"returned error 403 Forbidden: {"errors":[{"message":"permission denied","path":["upsertBucket"],"extensions":{"code":"PERMISSION_ERROR"}}],"data":{"upsertBucket":null}}"}
{"time":"2024-10-14T11:16:40.2711115+02:00","level":"WARN","msg":"No requirements.txt found, not creating job artifact. See https://docs.wandb.ai/guides/launch/create-job"}
{"time":"2024-10-14T11:16:40.2711115+02:00","level":"INFO","msg":"sender: sendDefer: no job artifact to save"}
{"time":"2024-10-14T11:16:40.3161557+02:00","level":"ERROR","msg":"HTTP error","status":404,"method":"POST","url":"https://api.wandb.ai/graphql"}
{"time":"2024-10-14T11:16:40.3161557+02:00","level":"ERROR","msg":"runfiles: CreateRunFiles returned error: returned error 404 Not Found: {"errors":[{"message":"project bassfaye10/3d tooth mesh segmentation not found during createRunFiles","path":["createRunFiles"]}],"data":{"createRunFiles":null}}"}
{"time":"2024-10-14T11:16:40.4470144+02:00","level":"ERROR","msg":"HTTP error","status":404,"method":"POST","url":"https://api.wandb.ai/graphql"}
{"time":"2024-10-14T11:16:40.4470144+02:00","level":"ERROR","msg":"runfiles: CreateRunFiles returned error: returned error 404 Not Found: {"errors":[{"message":"project bassfaye10/3d tooth mesh segmentation not found during createRunFiles","path":["createRunFiles"]}],"data":{"createRunFiles":null}}"}
{"time":"2024-10-14T11:16:40.4471349+02:00","level":"INFO","msg":"fileTransfer: Close: file transfer manager closed"}
{"time":"2024-10-14T11:16:40.4472412+02:00","level":"INFO","msg":"handler: closed","stream_id":{"value":"i5vb5pi5"}}
{"time":"2024-10-14T11:16:40.4472412+02:00","level":"INFO","msg":"writer: Close: closed","stream_id":{"value":"i5vb5pi5"}}
{"time":"2024-10-14T11:16:40.4472412+02:00","level":"INFO","msg":"sender: closed","stream_id":{"value":"i5vb5pi5"}}
{"time":"2024-10-14T11:16:40.4480132+02:00","level":"INFO","msg":"stream: closed","id":"i5vb5pi5"}
Really appreciate your help,

I struggled with this for a few hours but turns out that W&B wanted the full entity name that includes your organization.
Ex. username-your-organization-name

Hey @mattmattkim - could you share what you used as full entity name? i.e when you say W&B wanted the full entity name with organization, what did you end up passing in as the entity into wandb.init() that was successful eventually?

Hi @bassfaye ,
In this part of your code, entity=self.config["wandb"]["wandb_entity"] could you please try to update it with the team you belong with, and not your personal entity?
Also, Thank you for sharing @mattmattkim with your experience!

Hi @JoanaMarieL , it works by updating ### entity=self.config["wandb"]["wandb_entity"] with my team organization entity not my personal entity.
Thanks you @mattmattkim!


modify visibility the titles in docs

I think convenient Improve the visibility of the titles in the documentation
I completely ignore the title, even I thought there not was :joy:

what is your opinion?

cc @santokii for her opinion here.

Thanks for the feedback! I will take a look and come back with a few alternative solutions!

I have an idea @santokii , you can use more space and a separate divider border, same as in the page style guide.

Also styling the heading with the primary color and enlarging it a bit would be a good touch. Emulating the official styleguide more there as well.