Git Tags: offer option to merge from tag

Want: UI support of merge from a tag into the current work tree.
Why: command line git-merge can take a tag as a contributor of a merge. Since tags are usually more indicative of a stable point in development, I merge from tags more frequently than from branches when I am doing integration work. This does not seem to be supported by the UI.
Suggested implementation: the (Source Control Panel / ellipses / Branch) offers a "Merge Branch..." option. A parallel "Merge Tag..." could be added to the (Source Control Panel / ellipses / Tags) menu.

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

:slightly_smiling_face: This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

The Git: Merge Branch... command has been renamed to Git: Merge... and not lists branches, and tags.

Verification steps:

Launch the latest VS Code Insiders
Open a folder/workspace that contains a git repository
If the repository does not contain tags, create one ore more tags
Use the "Git: Merge..." command from the command palette

Confirm that the quick pick contains branches/remote branches/tags

Choose a tag to merge

Confirm that the tag gets merged into the current branch


DNN-8411: Fixed culture insensitivity issue when retrieving role by name

Removing ToUpper on roleName/roleGroupName, since it is only used in an InvariantCultureIgnoreCase string comparison and causes issues in Turkish websites (i capitalizes to Turkish i using ToUpper)

This issue has already been logged and resolved. Please refer to https://dnntracker.atlassian.net/browse/DNN-8404


multi-gpu training

Hello, is it possible to update the version for multi-GPU training?

Hello，We will update several new functions including Multi-Gpu training next week.Thanks for your attention to MIL_BASELINE

Thank you for your help.
This is a great work. I will share it with my friends.

Hello, when will the update be available?  Thank you


Would it be feasible to reload certificates during runtime?

From what I've seen, the certificate file is loaded a single time at construction. Let's Encrypt certificates expire every 90 days. I tend to not restart my server that frequently, which means that the certificate will be the forcing function to restart.
Do you think that this is a desirable feature to reside in this library? If so, I'd be happy to take a first crack at it, so any guidance would be appreciated.

See https://github.com/sfackler/rust-native-tls/issues/27 - I would prefer a more traditional setup as well, but it's a question of figuring out how to make that happen for macOS and Windows.

I might have confused you with my similarly-titled simultaneous issues; I think you wanted that in #3 ?

Derp, yes!
For this issue in particular, I believe this would best be done in a separate crate that implements an SslServer which allows an inner SslServer to be swapped out via some handle at runtime. You can then have some code that periodically looks for a new certificate/key, builds an SslServer out of them and installs it.

Yep, I figured that would be the suggestion, just figured I'd ask before going off and making it elsewhere.


Update design for exportable subflow

This PR is for updating design note for exportable subflow (called SUBFLOW Module) based on discussions held on early July.
It includes following items:

update for export interface,
deleting imported subflow module,
representation of subflow module.

Updated document according to the last teleconference.

Looks good for the first couple of phases.
I suspect will need some more design discussion around sealed subflows - there's a lot more to consider there around what differences in behaviour are expected for a sealed subflow. Let's do that as a new PR on this design as we get closer to that point.


Fix resources lists on details views

Description
Changes proposed in this pull request:

...
...
...

Related issue(s)

/retest


calling taskset and tasks on if else conditions

I am using Locust for doing performance test for Test taking App.
There are so many conditions in the app, on each condition I would follow the separate flow.
taking test is a single task but it will have so many conditions and http requests,
whether I have break this into different task?
if Yes how can I do it?
can I call multiple http request on single task?
if yes, how to set the minimum wait time and maximum wait for requests inside the task.

I don't understand your first question.

can I call multiple http request on single task?
if yes, how to set the minimum wait time and maximum wait for requests inside the task.

You can make multiple HTTP requests within a single task.
I think you've misunderstood what TaskSets' min_wait and max_wait is. If you want the simulated user to wait between two requests within the same task, just use time.sleep().

@heyman Thanks for the quick reply. I will try to explain my scenario clearly below.
The following is the sample flow of Application

Registration or Login (taskset with 2 tasks)
Take Test (taskset with 1 task)

load Question

Attend Question

if correct, go to next question
if wrong, load the same question

in the above sample, Take test is a single task with multiple flows and it almost covers the entire business flow.
I cannot split this into different tasks as they are sequence of flows and user cannot bypass the flow.
A real user will take some time between going to the next sequence, so I wanted to use min_wait and max_wait but we cannot use for request level and it's task level.
can I use time.sleep() between each request or is it possible to split the sequence into different tasks and it will execute in a sequence?
I am new to performance testing and locust, pardon me if I miss something.

Sleeping between each request is fine (you could also call self.wait() which would sleep for a random number of milliseconds between the defined min_wait and max_wait). You could probably split it between tasks as well, together with storing some state on the Locust instance.


ci: remove cache fallbacks

Remove the cache fallbacks in CircleCI's configuration as they cause
difficult to debug errors and provide little safety as compared to
their execution costs to populate.
PR Checklist
Please check if your PR fulfills the following requirements:

[ ] The commit message follows our guidelines: https://github.com/angular/angular/blob/master/CONTRIBUTING.md#commit
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] angular.io application / infrastructure changes
[ ] Other... Please describe:

What is the current behavior?

Issue Number: N/A
What is the new behavior?
Does this PR introduce a breaking change?

[ ] Yes
[ ] No

Other information

Hello, your commit has a 93% probability of containing an issue
You could reduce this probability by getting a review from:
Filipe Silva, whose probability of having an issue in similar code is 83%
Ephraim, whose probability of having an issue in similar code is 88%
William Marques, whose probability of having an issue in similar code is 89%
Olivier Combe, whose probability of having an issue in similar code is 94%
Rob Wormald, whose probability of having an issue in similar code is 84%
Feliks Khantsis, whose probability of having an issue in similar code is 88%
Sonu Kapoor, whose probability of having an issue in similar code is 84%
Joey Perrott, whose probability of having an issue in similar code is 74%
Vani, whose probability of having an issue in similar code is 87%
David Shevitz 🔵, whose probability of having an issue in similar code is 91%
Alex Eagle, whose probability of having an issue in similar code is 93%
Ben Lesh, whose probability of having an issue in similar code is 75%
Kristiyan Kostadinov, whose probability of having an issue in similar code is 88%
Matias Niemelä, whose probability of having an issue in similar code is 93%
Stefanie Fluin, whose probability of having an issue in similar code is 92%
Jesus Rodriguez, whose probability of having an issue in similar code is 90%
Tobias Bosch, whose probability of having an issue in similar code is 84%
JiaLiPassion, whose probability of having an issue in similar code is 79%
Miško Hevery, whose probability of having an issue in similar code is 94%
Peter Bacon Darwin, whose probability of having an issue in similar code is 82%
Kara Erickson, whose probability of having an issue in similar code is 94%
Alex Rickabaugh, whose probability of having an issue in similar code is 89%
Jesús Rodríguez, whose probability of having an issue in similar code is 91%
Pete Bacon Darwin, whose probability of having an issue in similar code is 88%
Greg Magolan, whose probability of having an issue in similar code is 81%
Judy Bogart, whose probability of having an issue in similar code is 83%
Andrew Seguin, whose probability of having an issue in similar code is 91%
Tony Bove, whose probability of having an issue in similar code is 88%
Marc Laval, whose probability of having an issue in similar code is 94%
Jason Aden, whose probability of having an issue in similar code is 94%
Ayaz Hafiz, whose probability of having an issue in similar code is 92%
Igor Minar, whose probability of having an issue in similar code is 93%
Georgios Kalpakas, whose probability of having an issue in similar code is 84%
Jason Choi, whose probability of having an issue in similar code is 93%
Chuck Jazdzewski, whose probability of having an issue in similar code is 87%
Miško Hevery, whose probability of having an issue in similar code is 85%
George Kalpakas, whose probability of having an issue in similar code is 87%
Paul Gschwendtner, whose probability of having an issue in similar code is 92%
Alan Agius, whose probability of having an issue in similar code is 90%
Andrew Scott, whose probability of having an issue in similar code is 76%
Kapunahele Wong, whose probability of having an issue in similar code is 90%
Ward Bell, whose probability of having an issue in similar code is 89%
Andrew Kushnir, whose probability of having an issue in similar code is 88%
Brandon, whose probability of having an issue in similar code is 88%
Keen Yee Liau, whose probability of having an issue in similar code is 91%
Victor Savkin, whose probability of having an issue in similar code is 93%
Victor Berchet, whose probability of having an issue in similar code is 94%
Joao Dias, whose probability of having an issue in similar code is 87%
Misko Hevery, whose probability of having an issue in similar code is 85%
JoostK, whose probability of having an issue in similar code is 92%
Jason Teplitz, whose probability of having an issue in similar code is 94%
vsavkin, whose probability of having an issue in similar code is 89%
Brandon Roberts, whose probability of having an issue in similar code is 89%
Rado Kirov, whose probability of having an issue in similar code is 93%
crisbeto, whose probability of having an issue in similar code is 71%
Pawel Kozlowski, whose probability of having an issue in similar code is 92%


FaceRecognizer.constructor - expected atleast one input

Thank you for this amazing library. When I run this code on coloured photos it works on, however when I input back and white am getting the error above. am doing this with African faces ...
If you have a workaround I will appreciate
Thank you

Please provide some code, the error message is thrown, because you are passing an empty array to the FaceMatcher constructor.

If I supply black and white image to the model its throwing that error .... when all my images are colored it works perfectly

As described in the abovementioned issue, you have to handle the case when no face is detected.


Unify template-substitution code

There are multiple places where templates are used to fill in values into strings or paths.

RoddyIOHelperMethods.findComponentIndexInPath()
RoddyIOHelperMethods.getPatternVariableFromPath()
COProjectRuntimeService.getLaneFileGroupsFromFastqList()
RuntimeService.extractDateFromExecutionDirectory()
COMetadataAccessor.grepPathElementFromFilenames()
BasicCOProjectsRuntimeService.fillTemplatesInPathnameString() / .getInpDirectory()

Unify this code. Consider a pure string substitution class (maybe based on existing templating library if appropriate -- but that's an internal detail). Doing this job for files/pathnames is a different story and should be in a dedicated class (e.g. making use of the first). Parsing from paths should also go into another class.

This is related to the idea of metadata input facilities (filesystem, database, file (TSV, Yaml), extract from input files, ...). See metadata branch.


Gh pages new

I close this PR as there a lot of conflicts and feel free to open another new for submitting new brand-look es6-tween documentation page which users will be watched and impressed!
Thanks!

Sure.
On Wed 10 Apr, 2019, 9:23 PM Davlat Shavkatov<EMAIL_ADDRESS>wrote:

Closed #63 https://github.com/tweenjs/es6-tween/pull/63.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/tweenjs/es6-tween/pull/63#event-2266569564, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AMfsMumUcJ4tGJukKrIaumA-V6Sv47Iyks5vfgkHgaJpZM4bqy3l
.


Wait for queued continuations when shutting down GrpcThreadPool

This should fix C# flakes that recently started appearing mostly on MacOS.
Details in comments.

CC @dgquintas   this needs to be in 1.6 release.

@apolcyn   this is fine to merge once approved & tests look good (I don't want to block cutting the 1.6 branch).

@jtattermusch ok. The release needs to be cut from an internally-verified commit, so this would have to be imported first. Alternatively, it could be cherrypicked and then verified internally in isolation.

per earlier comment about the deadline, it looks like a synchronously long-running server callback could cause shutdown to hang. But as is, currently a synchronously long-running handler will cause shutdown to hang in the same way anyways - so this change shouldn't break any expectation about that.
Still maybe a timeout might now be useful since C# is now supporting those types of sync callbacks that it didn't before.

@jtattermusch free to merge - delayed doing so with the move of the branch cut (tests have also been taking time and are still running here)

@apolcyn   I will consider only waiting for ~10 seconds and then terminating with an error log.
@dgquintas  with respect to import I think this change should be trivial to verify - it's only C# sources change, so no effect on any tests running internally AFAIK.

SGTM. It'd be nice if it can be merged within the next 2-3 hours so that it's automatically included.

@apolcyn PTAL (added the 10s timeout for sleeps).  Please merge once tests are green.

interop tests on jenkins passed but the job failed (with message":"No commit found for SHA)
interop test failures on kokoro:

https://github.com/grpc/grpc/issues/5669
https://github.com/grpc/grpc/issues/12204
https://github.com/grpc/grpc/issues/12205
https://github.com/grpc/grpc/issues/12207
https://github.com/grpc/grpc/issues/12208


User changed when I'm login with two different user on different PCs.

1.From first PC I'm logging with "administrator";
2.From another PC I'm logging with "Demo".
Then the user on first PC will changed to "Demo" too.
Expected:
User won't changed if logging from different PCs.

refer to the below code, change scope lifetime of DI
using CleanArchitecture.Blazor.Infrastructure.Services.Authentication;

namespace CleanArchitecture.Blazor.Infrastructure.Extensions;
public static class ServicesCollectionExtensions
{
    public static IServiceCollection AddServices(this IServiceCollection services)
        => services.AddScoped<ExceptionHandlingMiddleware>()
                   //.AddSingleton<ProfileService>()
                   .AddScoped<ProfileService>()
                   .AddScoped<ICurrentUserService, CurrentUserService>()
                   .AddScoped<IDateTime, DateTimeService>()
                   .AddScoped<IExcelService, ExcelService>()
                   .AddScoped<IUploadService, UploadService>();
}

Thanks, see some notes here:
https://www.tektutorialshub.com/asp-net-core/asp-net-core-dependency-injection-lifetime/


Add initial OWNERS file.

This contains the initial approvers from https://docs.google.com/document/d/1dJjNTOXsT_dMZIX4i5iRw10fRQZBQqUP8YmbN2AwhAA/edit

Resolved at my end.

Merging manually to get prow working.


Organise, Format and Refactor

Formatting all Markdown files to not break Markdown rules
Organised different files into folders to help keeping track of them easier
Made the License in Markdown
Updated page headings to be consistant

Thanks for the PR, there are quite a lot of changes in this which we need to review. I will do it as soon as I could and let you know.
But at a glance, we deliberately added 2020 to the page to cover the first few and transition 2019 at the end of the year. Might be beneficial to keep it that way

I can see why you've left it there, but having the full list of mostly finished events seems like information that's not required.  Should really ony keep the last three yet to be held 2019 events on the page.


Feature add course

What does this PR do?
Add resource(s)
For resources
Description
KodeKloud Engineer provides a free environment for students to gain real hands-on experience by working on real project tasks on real systems.
Why is this valuable (or not)?
It's a very good  free playground course (tested by me) for learning DevOps
How do we know it's really free?
You can access without paying anything
For book lists, is it a book? For course lists, is it a course? etc.
It's a playground course
Checklist:

[X] Read our contributing guidelines.
[X] Search for duplicates.
[X] Include author(s) and platform where appropriate.
[X] Put lists in alphabetical order, correct spacing.
[X] Add needed indications (PDF, access notes, under construction).
[X] Used an informative name for this pull request.

Follow-up

Check the status of GitHub Actions and resolve any reported warnings!

link requires a signup.
maybe belong in playgrounds?

link requires a signup. maybe belong in playgrounds?

The signup is required because every user has a personal playgroud with a score. The login gives direct access to the playground.

please move to playgrounds


Add toString method to Sampler API

Originates from https://github.com/open-telemetry/opentelemetry-js/pull/48#discussion_r300102206

Codecov Report

Merging #79 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master    #79   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           8      8
  Lines         121    164   +43
  Branches        8     10    +2
=====================================
+ Hits          121    164   +43

Impacted Files
Coverage Δ

test/trace/tracestate.test.ts
100% <0%> (ø)
:arrow_up:

src/trace/sampler/ProbabilitySampler.ts
100% <0%> (ø)
:arrow_up:

test/trace/ProbabilitySampler.test.ts
100% <0%> (ø)
:arrow_up:

test/resources/resource.test.ts
100% <0%> (ø)
:arrow_up:

src/common/util/id.ts
100% <0%> (ø)
:arrow_up:

test/common/util.id.test.ts
100% <0%> (ø)
:arrow_up:

@rochdev @draffensperger Please review again, I have addressed all the comments.

Would it be sufficient do a typeof check for a number and just default to something like 0 if it's not a number?

Non-number types are still not handled nor tested.

@draffensperger @rochdev Hopefully it is done this time, PTAL.


octave: 4.4.1 -> 5.1.0

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/octave/versions.
meta.description for octave is: '"Scientific Pragramming Language"'.

Checks done (click to expand)

built on NixOS
/nix/store/lmpxcadz79mszc60wzhl46snhslji919-octave-5.1.0/bin/mkoctfile passed the binary check.
/nix/store/lmpxcadz79mszc60wzhl46snhslji919-octave-5.1.0/bin/octave passed the binary check.
/nix/store/lmpxcadz79mszc60wzhl46snhslji919-octave-5.1.0/bin/octave-cli passed the binary check.
/nix/store/lmpxcadz79mszc60wzhl46snhslji919-octave-5.1.0/bin/octave-config passed the binary check.
/nix/store/lmpxcadz79mszc60wzhl46snhslji919-octave-5.1.0/bin/mkoctfile-5.1.0 passed the binary check.
/nix/store/lmpxcadz79mszc60wzhl46snhslji919-octave-5.1.0/bin/octave-5.1.0 passed the binary check.
/nix/store/lmpxcadz79mszc60wzhl46snhslji919-octave-5.1.0/bin/octave-cli-5.1.0 passed the binary check.
/nix/store/lmpxcadz79mszc60wzhl46snhslji919-octave-5.1.0/bin/octave-config-5.1.0 passed the binary check.
8 of 8 passed binary check by having a zero exit code.
4 of 8 passed binary check by having the new version present in output.
found 5.1.0 with grep in /nix/store/lmpxcadz79mszc60wzhl46snhslji919-octave-5.1.0
directory tree listing: https://gist.github.com/5eba52a80bf7e24c16554cc5d663ab14
du listing: https://gist.github.com/f9aa57d182f64b56c16a0604e6398848

Rebuild report (if merged into master) (click to expand)

10 total rebuild path(s)
3 package rebuild(s)
3 x86_64-linux rebuild(s)
2 i686-linux rebuild(s)
3 x86_64-darwin rebuild(s)
2 aarch64-linux rebuild(s)
First fifty rebuilds by attrpath
minc_widgets
octave
octaveFull

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/lmpxcadz79mszc60wzhl46snhslji919-octave-5.1.0 \
  --option binary-caches 'https://cache.nixos.org/ https://r-ryantm.cachix.org/' \
  --option trusted-public-keys '
  r-ryantm.cachix.org-1:gkUbLkouDAyvBdpBX0JOdIiD2/DP1ldF3Z3Y6Gqcc4c=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(r-ryantm's Cachix cache is only trusted for this store-path realization.)
Or, build yourself:
nix-build -A octave https://github.com/r-ryantm/nixpkgs/archive/7ac5f28d86765834193fc2cf3c2bb957c1b197f7.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/lmpxcadz79mszc60wzhl46snhslji919-octave-5.1.0
ls -la /nix/store/lmpxcadz79mszc60wzhl46snhslji919-octave-5.1.0/bin

cc @7c6f434c for testing.

This is a duplicate of #56842


Redraw issues with column chart using highcharts

Hi,
I have an error with drawing bar chart in the example for the following link: http://jsfiddle.net/FC3qV/18/
I want to use many of type charts and switching them. However, whenever change the type of chart from line to bar chart, bar chart is loading twice.
Thank for your advice

You are updating the entire chart options and also the series data. This will cause two updates.
Maybe instead define the type on the series and just update it? Or add one series and remove another?


%%opts delete style

I look to two images, one of them with a group defined. For this group some style is defined. This works fine:
%opts Image.Phase (cmap='bwr')
x = np.linspace(-0.5,0.5,1024, endpoint=False)
bounds = (-0.5,-0.5,0.5,0.5)
xx, yy = np.meshgrid(x,x)

hv.Image(abs(xx)) + hv.Image(np.angle(xx), group="Phase")

However, sometimes I want to see a colorbar:
%%opts Image [colorbar=True]
hv.Image(abs(xx)) + hv.Image(np.angle(xx), group="Phase")

Now the cmap for both images is the same!

This is related to #93, I think @jlstevens will have a look at both of these issues later today.

Philipp's hunch was right and this was related to #93. You can see the commits used to fix the option system in that discussion. I've tried this example again and the colour maps are no longer the same and look correct to me.
Closing this issue but I am happy to reopen it if things still aren't working for you.


on sophisticated html5 structure e.g. driver.start(stepNumber = 1); , driver do not focus the text but is empty

Hi,
on screen dump in my project there is started tour from step 1 but the text area is empty.
when selecting prev and again next then it is ok.

the html and js is taken from https://github.com/kamranahmedse/driver.js and pasted to evato template.
the sandbox is https://i9dlv.csb.app/
html:
...

Creating
Feature Introductions

You can also make powerful feature introductions to guide the usersabout the features.
Just provide an array of steps where each step specifies an element to highlight.

Below is just a quick example showing you how to combine the steps inintroduction.

Driver tour prevent move

...

...

In sandbox the html is stripped with images.
The tour start ok, on the contrary to my project , but after clicking the previous button not visible buttons!
maybe the problem is connected.
thank you for response to this problem.

We just released v1.0 of driver.js which has been rewritten from the ground up. This issue should no longer exist. Please have a look at the docs and do let me know if you face any issues.


Internal Server Error when attempting to scan domain

When attempting to run this command I get an “internal server error”
curl -H "Accept: text/plain" "https://columbus.elmasy.com/api/lookup/wa.gov.au"

Thanks for the issue!
wa.gov.au is a Top Level Domain, so the server should respond with 400 (Bad Request) instead of 500 (Internal Server Error).
To check the Top Level Domains, see: https://publicsuffix.org/list/public_suffix_list.dat
The server now respond:
$ curl -H "Accept: text/plain" "https://columbus.elmasy.com/api/lookup/wa.gov.au"
TLD only


Doesn't render any image in Google Docs or Libre Office

I used the example in this repo to be 100% transparent.
No images.

The dot is the img...


ClinVar review status

Request to include clinvar review status as a field.

Good idea. In the Clinvar VCF, I see:
##INFO=<ID=CLNREVSTAT,Number=.,Type=String,Description="ClinVar Review Status, mult - Classified by multiple submitters, single - Classified by single submitter, not - Not classified by submitter, exp - Reviewed by expert panel, prof - Reviewed by professional society">

Is this what you had in mind?

Yes, that is the one.
Thanks!
On Mon, Jan 18, 2016 at 11:56 AM, Aaron Quinlan<EMAIL_ADDRESS>wrote:

Good idea. In the Clinvar VCF, I see:
##INFO=<ID=CLNREVSTAT,Number=.,Type=String,Description="ClinVar Review Status, mult - Classified by multiple submitters, single - Classified by single submitter, not - Not classified by submitter, exp - Reviewed by expert panel, prof - Reviewed by professional society">
Is this what you had in mind?
—
Reply to this email directly or view it on GitHub
https://github.com/arq5x/gemini/issues/658#issuecomment-172587862.

Great, we will get this into a future release.

Thanks Aaron.
On Mon, Jan 18, 2016 at 12:35 PM, Aaron Quinlan<EMAIL_ADDRESS>wrote:

Great, we will get this into a future release.
—
Reply to this email directly or view it on GitHub
https://github.com/arq5x/gemini/issues/658#issuecomment-172601225.


Improve support for Iris 3320-L contact sensor

This PR adds battery and temperature reporting to the Lowe's Iris 3320-L contact sensor.
I added a new battery converter to fromZigbee.js because from all of the code I've seen (including this device handler for SmartThings), the 3V battery should be considered dead at 2.1V, while the existing battery_3V converter considers 2.5V to be dead.
I have been testing this code for a couple days with one of my sensors, and it works well. My only complaint (increased battery usage due to minute-by-minute temperature reports) has been addressed in #689.

Thanks!


[AutoPR datamigration/resource-manager] Updates to Schema migration, project files resource and MongoDb scenario.

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/4240

This PR has been merged into https://github.com/Azure/azure-sdk-for-js/pull/308


Implement PostgreSQL Grant management

What problem are you facing?
Lack of Postgres Grant management. GRANT / REVOKE is a relatively complex type in Postgres world, allowing permissions to be added and removed to and from various internal objects. Alongside #17 (PR #19), I think the most important use-cases to implement are are:

Adding Roles as members of other Roles (allows user-group configurations with server-wide permission inheritance)
Adding Permissions for Roles on Databases (CONNECT,USAGE etc)
Adding Permissions for Roles on Tables (unmanaged type right now, I think listing table names is probably sufficient here)

How could Crossplane help solve your problem?

Implement a new Crossplane managed resource Grant in postgresql.sql.crossplane.io.
Implement a new reconciler for Grant.

Sketch
One sketch for each of the 3 use-cases outlined above. The use-case above could be picked based on the fields that the user specifies. If the user specifies incompatible fields, we should throw an error indicating that.
Grant a Role a set of privileges on a database (this does not infer table access)
apiVersion: postgresql.sql.crossplane.io/v1alpha1
kind: Grant
metadata:
  name: example-grant-role-on-database
spec:
  forProvider:
    privileges:
      - CONNECT
    roleRef:
      name: example-role
    databaseRef:
      name: example-db

Grant a Role a set of privileges on a set of tables within a database
apiVersion: postgresql.sql.crossplane.io/v1alpha1
kind: Grant
metadata:
  name: example-grant-role-on-tables-in-db
spec:
  forProvider:
    privileges:
      - SELECT
      - INSERT
      - UPDATE
    tables:
      - example-table1
      - example-table2
      - example-table3
    roleRef:
      name: example-role
    databaseRef:
      name: example-db

Grant a Role membership of another Role
apiVersion: postgresql.sql.crossplane.io/v1alpha1
kind: Grant
metadata:
  name: example-grant-role-membership
spec:
  forProvider:
    roleRef:
      name: example-role
    memberOfRef:
      name: parent-role

I've got working implementation for Sketch 1 and 3 but I'm starting to question the usefulness of 2. When applying permissions to a table, you must connect to PostgreSQL on the database that the table is in.
There is no way to switch databases after connecting, so observing, applying and deleting table permissions requires the ability to pass the database name when querying to control the DSN used on Open.
Refactoring the xsql interfaces to allow this isn't impossible, but since it isn't required in MySQL it seems a bit unnecessary.
From the examples I can think of where this functionality would be useful, table permissions are mostly an application concern and as long as the application is given roles with the relevant database permissions, could manage table permissions itself.

I've got working implementation for Sketch 1 and 3 but I'm starting to question the usefulness of 2. When applying permissions to a table, you must connect to PostgreSQL on the database that the table is in.
There is no way to switch databases after connecting, so observing, applying and deleting table permissions requires the ability to pass the database name when querying to control the DSN used on Open.
Refactoring the xsql interfaces to allow this isn't impossible, but since it isn't required in MySQL it seems a bit unnecessary.
From the examples I can think of where this functionality would be useful, table permissions are mostly an application concern and as long as the application is given roles with the relevant database permissions, could manage table permissions itself.


updated buildref

updated buildref

yessss been waiting for this. also if you can look into supporteduntil
thanks much!


Add default A record for addresses

This will need to use the new floating IP.

Merging this into #31.


Add support for enhanced barriers in D3D12.

Enhanced barriers are a relatively modern feature that wasn't part of the initial D3D12 specification. This feature brings barriers in D3D12 much closer in functionality to Vulkan (with a few caveats this PR works around).
The current D3D12 driver was designed around legacy barriers, and this PR maintains that path as it is. Enhanced barriers are only used if the driver reports them as supported. To enable this, you might need to use the Agility SDK and use it as indicated here. If you wanna double check if this is reported, you can check by verifying the return of this line.
By implementing enhanced barriers, that means the D3D12 driver can finally use the information provided by the recently introduced Acyclic Rendering Graph to group barriers together as much as possible and allow more commands to execute in parallel.
So far this has given me a real performance increase in an NVIDIA GeForce RTX 3090 Ti. A 3D project with about every post processing effect enabled went from ~2.57ms in master to ~2.16ms in d3d12_enhanced_barriers, an improvement very much in line with the performance benefits we saw when the render graph was introduced.
The second part of this PR was reworking the fallback that the D3D12 driver had to do into something more generic. When relaxed format casting is not available, the driver has to opt for making copies of textures, transitioning to the proper layouts and replacing them in descriptor sets without the render graph knowing any of that is going on. This fallback was instead re-implemented entirely at the RenderingDevice level, allowing the ARG to reorganize the operations and also get a performance boost. This also allows enhanced barriers to work with this fallback without issue, as it would've been impossible to solve it properly otherwise.
Some small changes had to be made to RenderingDeviceDriver to give more detail about the operations and states the resources are used to comply with D3D12's restrictions. No regressions are expected but it should be tested thoroughly regardless.

* `driver_clear_resources_with_views` and the other bool member above could become bitfields.

Admittedly the purpose of these is just to store one flag and be consistent throughout the execution of the graph without having to constantly call the api_trait_get and go through the cost of using the virtual function. I'm not really very much for or against the approach chosen here (the alternative being just querying the API or using the bitfield), but I went with whatever requires the least amount of knowledge from the reader. The graph is only created once per RenderingDevice so there's not much in the way of memory savings to be found.

* Also for `driver_clear_resources_with_views`, I'd suggest a rename to the more compact `driver_uses_views_for_clears`. Or, alternatively, inverting its meaning and naming it `driver_clears_via_copy_engine`, or something similar. (The rename would carry over to `API_TRAIT_CLEAR_RESOURCES_WITH_VIEWS`.)

This I agree with. It'd be best to change the trait to something that represents more clearly that Vulkan is capable of doing this. It might be more common that we find APIs that don't.

* Finally, there's the `thread_local LocalVector` technique. That's kind of a safer `alloca()`, isn't it? I guess we should discuss rules about when to prefer that over the `ALLOCA_ARRAY()` utility macro that drivers use, which may mean we let the drivers do the same, but in any case come up with something consistent.

Yes, the usage of thread_local is very deliberate across this and my other PRs as it's an effective way to avoid using stack memory and reusing an already allocated vector across calls while also allowing the method to remain safe when using multi-threading. It's important to note thread_local also implies the existence of static, so these vectors do not get re-allocated on each call and merely get reused.
his will be a pretty common pattern among some other optimization PRs that will be coming later. Considering there's no upper bound to some of these calls, it could become a problem at some point that'd leave no other possible alternative as a fix.

[...] but I went with whatever requires the least amount of knowledge from the reader. The graph is only created once per RenderingDevice so there's not much in the way of memory savings to be found.

I believe anyone hoping to understand this area of the engine is aware of bitfields. It's not a great saving, but why missing the opportunity of packing a few similarly-purposed booleans together?

I believe anyone hoping to understand this area of the engine is aware of bitfields. It's not a great saving, but why missing the opportunity of packing a few similarly-purposed booleans together?

It's not something I gave that much thought to be honest as it wouldn't make much of a difference and from my POV it seemed easier to understand. I have no reason to argue for or against it as there's no measurable performance impact. I'll go with whatever preference the project wants.

Yes, the usage of thread_local is very deliberate across this and my other PRs as it's an effective way to avoid using stack memory and reusing an already allocated vector across calls while also allowing the method to remain safe when using multi-threading. It's important to note thread_local also implies the existence of static, so these vectors do not get re-allocated on each call and merely get reused.

The technique is cool. I'd only like to raise the need of discussing its usage at some point in the future. Lately, I've been trying to remove or minimize runtime allocations in some PRs, and I don't quite feel good about we adding them to other area of the engine. I believe you are more experienced than me regarding the real impact of them in this context, so I'm all ears (or eyes in this context). My point is that something as thin as the rendering driver shouldn't be the culprit of a spike in frame time because it happened to need to invoke the allocator.
I have an idea (again not for now, not for this PR): we can use something similar to your technique, that would hit the sweet spot between alloc() and thread_local worst-case arrays. That would be using arena-backed arrays. The worst-case allocation would be a chunk of memory per frame-in-flight, used as an arena from where the arrays would be allocated. LocalVector could be extended to support custom allocators and we'd have an arena allocator class. That would have the safety of a proper array class while also being growable, but would cause much fewer runtime allocations (and a project setting could be used to set the initial size so users can tweak settings so their games don't ever need to allocate at runtime if they really want to do so and check the max. frame arena size the profiler would report).

I'm not sure my feedback (the directly actionable part) has been addressed yet.
Also, this may be better rebased on top of #91416, which already includes the upgrade of the Agility SDK to 613, but in a more comprehensive manner.

I'm not sure my feedback (the directly actionable part) has been addressed yet.

Would you say this covers the copy engine suggestion and the bitfields? I feel the arena allocator would be out of scope for this PR until we get a common class we can reuse to adopt that strategy elsewhere.

I believe anyone hoping to understand this area of the engine is aware of bitfields. It's not a great saving, but why missing the opportunity of packing a few similarly-purposed booleans together?

Upon trying the suggestion, one annoying thing I realized is that bitfield declaration does not allow us to give it an initialization value on the class itself and instead requires to do a union to do so. Do we feel it's worth doing this:
union {
  struct {
    bool driver_honors_barriers : 1;
    bool driver_clear_resources_with_views : 1;
  }

  bool driver_all = false;
};

Instead of just this?
bool driver_honors_barriers = false;
bool driver_clear_resources_with_views = false;

I've added the rename to use copy engine. We should decide about the booleans vs the bitfields for the reasons outlined above.

The lack of bitfield initializers is unfortunate indeed, but the style ship has already sailed in that regard. See this:
https://github.com/godotengine/godot/blob/f4b047a084a5ecff153d0d32453aeb2e9919c83c/core/object/worker_thread_pool.h#L76-L99
So, until we upgrade to the version of C++ that allows in-place initializers for that, I'd suggest embracing that style as the convention.
To clarify, yes, that's indeed the last piece of feedback I was talking about. Everything else belongs indeed to future iterations, in any case.

I've addressed the bitfield suggestion.

As this is relatively big and I'm planning a 4.3-beta1 release this week, I'm planning to merge this after beta1 and for beta2, so we can hopefully find potential regressions before making the beta2 build.

Thanks!


Fragment: "objectBindings" not supported

I raised the issue on stackoverflow:
http://stackoverflow.com/questions/31624500/how-to-do-navigation-property-binding-of-aggregations-in-xml
No one has answer to that, I think this is a binding syntax missing.

There is the option to set the binding attribute inside XMLViews to specify a binding context.
However this is currently not supported for Fragments.
As a workaround you could wrap the Fragment with some control and specify the binding there, see this example.
In my opinion the objectBindings property on the sap.ui.core.Fragment should be supported and propagated to the control(s) inside the fragment.
Internal reference<PHONE_NUMBER>.

@matz3 , the example is to bind the container to an absolute path of model. while my problem is how to bind the container relatively to parent's binding path. In my case, if I use a container to wrap the fragment inside and set the binding attribute to "{Creator}", it doesn't work.

@hatelove85911 could you please provide an example to reproduce this problem? I would expect that also relative paths are working.

@hatelove85911 I believe what matz3 meant was, that you can just wrap the fragment in another control and do the relative binding there: http://plnkr.co/edit/F3unvg8jM9YZnlbXKbj4?p=preview
In your stackoverflow example, I think you can simple apply the relative binding to your CustomListItem . Should also work I guess.

Hi  @matz3 @Thodd , thank you guys, I just tried myself, it's working now! Thank you very much.
BTW, I run through the documentation, I didn't find anywhere talking about binding and objectBinding binding syntax in xml view, where do you know these stuff?

The properties are part of the sap.ui.base.ManagedObject, see here.
But in fact, there is currently no documentation for XMLViews.

I also find it quite confusing that the name in the XMLView ("bindings") differs from the name in the JavaScript API ("objectBindings"). Normally, we use the same name everywhere.

objectBindings is actually possible according to the code.

Hi codeworrior,
just one update, we are working on documentation on how to do binding with xml views.
We will let you know once this is available.
Best regards,
Janina

@blaesius thanks for letting us know. This issue is currently on @rtuider's name regarding the missing support in Fragments.


Crash: "runtime error: invalid memory address or nil pointer dereference"

What is happening here? First of all, my S3 state has not changed. Then, it tries to import it and crashes! :(
terragrunt version v0.13.7
Terraform v0.10.7
doug@ADMINs-MacBook-Pro-2 widgetcorp (master) [widgetcorp_eu] $ tg apply --var-file ~/tfvars/widgetcorp.tfvars
[terragrunt] [/Users/doug/git/terraform/terraform-live/terragrunt/eu-central-1/euprod/widgetcorp] 2017/10/12 08:32:09 Running command: terraform --version
[terragrunt] 2017/10/12 08:32:09 Reading Terragrunt config file at /Users/doug/git/terraform/terraform-live/terragrunt/eu-central-1/euprod/widgetcorp/terraform.tfvars
[terragrunt] 2017/10/12 08:32:09 WARNING: no double-slash (//) found in source URL /Users/doug/git/terraform/terraform-modules/widgetcorp. Relative paths in downloaded Terraform code may not work.
[terragrunt] 2017/10/12 08:32:09 Cleaning up existing *.tf files in /var/folders/jr/b3nl0vcj7hgclvbfbt2mdrhw0000gp/T/terragrunt/FUYc4vvbbeeAusv9CM_VpOpxY0M/TcDLwgb-0LmdbdvcWfM7FNWB6UM
[terragrunt] 2017/10/12 08:32:09 Downloading Terraform configurations from file:///Users/doug/git/terraform/terraform-modules/widgetcorp into /var/folders/jr/b3nl0vcj7hgclvbfbt2mdrhw0000gp/T/terragrunt/FUYc4vvbbeeAusv9CM_VpOpxY0M/TcDLwgb-0LmdbdvcWfM7FNWB6UM using terraform init
[terragrunt] [/Users/doug/git/terraform/terraform-live/terragrunt/eu-central-1/euprod/widgetcorp] 2017/10/12 08:32:09 Backend s3 has not changed.
[terragrunt] [/Users/doug/git/terraform/terraform-live/terragrunt/eu-central-1/euprod/widgetcorp] 2017/10/12 08:32:09 Running command: terraform init -backend-config=bucket=sws-tfstate -backend-config=key=widgetcorp/terraform.tfstate -backend-config=region=us-west-1 -backend-config=encrypt=true -from-module=file:///Users/douglasgarstang/git/terraform/terraform-modules/widgetcorp /var/folders/jr/b3nl0vcj7hgclvbfbt2mdrhw0000gp/T/terragrunt/FUYc4vvbbeeAusv9CM_VpOpxY0M/TcDLwgb-0LmdbdvcWfM7FNWB6UM
Copying configuration from "file:///Users/doug/git/terraform/terraform-modules/widgetcorp"...
Downloading modules...
Do you want to copy the state from "s3"?
  Terraform has detected you're unconfiguring your previously set backend.
  Would you like to copy the state from "s3" to local state? Please answer
  "yes" or "no". If you answer "no", you will start with a blank local state.

  Enter a value: yes

Do you want to copy state from "s3" to "local"?
  Pre-existing state was found in "s3" while migrating to "local". No existing
  state was found in "local". Do you want to copy the state from "s3" to
  "local"? Enter "yes" to copy and "no" to start with an empty state.

  Enter a value: yes

Successfully unset the backend "s3". Terraform will now operate locally.

Initializing provider plugins...

The following providers do not have any version constraints in configuration,
so the latest version was installed.

To prevent automatic upgrades to new major versions that may contain breaking
changes, it is recommended to add version = "..." constraints to the
corresponding provider blocks in configuration, with the constraint strings
suggested below.

* provider.template: version = "~> 1.0"

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.
[terragrunt] 2017/10/12 08:32:56 Copying files from /Users/doug/git/terraform/terraform-live/terragrunt/eu-central-1/euprod/widgetcorp into /var/folders/jr/b3nl0vcj7hgclvbfbt2mdrhw0000gp/T/terragrunt/FUYc4vvbbeeAusv9CM_VpOpxY0M/TcDLwgb-0LmdbdvcWfM7FNWB6UM
[terragrunt] 2017/10/12 08:32:56 Setting working directory to /var/folders/jr/b3nl0vcj7hgclvbfbt2mdrhw0000gp/T/terragrunt/FUYc4vvbbeeAusv9CM_VpOpxY0M/TcDLwgb-0LmdbdvcWfM7FNWB6UM
[terragrunt] 2017/10/12 08:32:56 runtime error: invalid memory address or nil pointer dereference
[terragrunt] 2017/10/12 08:32:56 Unable to determine underlying exit code, so Terragrunt will exit with error code 1

Additional info with debug enabled.
[terragrunt] 2017/10/12 09:10:20 runtime.errorString runtime error: invalid memory address or nil pointer dereference
/home/ubuntu/.go_workspace/src/github.com/gruntwork-io/terragrunt/errors/errors.go:72 (0x620a1)
/usr/local/go/src/runtime/asm_amd64.s:479 (0x55d7c)
/usr/local/go/src/runtime/panic.go:458 (0x29473)
/usr/local/go/src/runtime/panic.go:62 (0x27fcd)
/usr/local/go/src/runtime/sigpanic_unix.go:24 (0x3e4c4)
/home/ubuntu/.go_workspace/src/github.com/gruntwork-io/terragrunt/remote/remote_state.go:94 (0xc14da)
/home/ubuntu/.go_workspace/src/github.com/gruntwork-io/terragrunt/remote/remote_state.go:79 (0xc134e)
/home/ubuntu/.go_workspace/src/github.com/gruntwork-io/terragrunt/cli/cli_app.go:441 (0x5d71c)
/home/ubuntu/.go_workspace/src/github.com/gruntwork-io/terragrunt/cli/cli_app.go:319 (0x5c78f)
/home/ubuntu/.go_workspace/src/github.com/gruntwork-io/terragrunt/cli/cli_app.go:291 (0x5c629)
/home/ubuntu/.go_workspace/src/github.com/gruntwork-io/terragrunt/cli/cli_app.go:230 (0x5c024)
/home/ubuntu/.go_workspace/src/github.com/gruntwork-io/terragrunt/cli/cli_app.go:213 (0x5beee)
/home/ubuntu/.go_workspace/src/github.com/gruntwork-io/terragrunt/cli/cli_app.go:190 (0x5be00)
/home/ubuntu/.go_workspace/src/github.com/gruntwork-io/terragrunt/cli/cli_app.go:171 (0x5baec)
/home/ubuntu/.go_workspace/src/github.com/gruntwork-io/terragrunt/vendor/github.com/urfave/cli/app.go:485 (0x99ea4)
/home/ubuntu/.go_workspace/src/github.com/gruntwork-io/terragrunt/vendor/github.com/urfave/cli/app.go:259 (0x97cbf)
/home/ubuntu/.go_workspace/src/github.com/gruntwork-io/terragrunt/main.go:20 (0x2104)
/usr/local/go/src/runtime/proc.go:183 (0x2b144)
/usr/local/go/src/runtime/asm_amd64.s:2086 (0x588a1)

[terragrunt] 2017/10/12 09:10:20 Unable to determine underlying exit code, so Terragrunt will exit with error code 1

Seems to work when I supply --terragrunt-source-update

Oof, that's no fun. Thank you for the stack trace. It seems to point to this line: https://github.com/gruntwork-io/terragrunt/blob/master/remote/remote_state.go#L94. The remoteState variable can't be the culprit, as there is a check for nil earlier. That means it must be from the existingState, which is parsed using this method, which can return nil. Looks like we need to add an extra nil check there!
PRs very welcome.

We are also running into this issue. I've also been trying to trace exactly what his happening, but I feel like I'm a bit confused on what is going on.
Some background on what is happening before discussing the problem at hand:

We are using a local backend state instead of a remote state.
I ran my terragrunt apply on my module using the following remote_state configuration in my terraform.tfvars file:

terragrunt = {
  remote_state {
    backend = "local"
    config {
      path = "${get_tfvars_dir()}/terraform.tfstate"
    }
  }
  ...
}

I ran terragrunt apply and it failed to run because of a IAM permission issue. This is fine and expected, I didn't have the correct permissions to being with.
I updated the permissions on my AWS account to allow me to move forward
I retried terragrunt apply
I received the same stacktrace as @dgarstang.

Digging into the source code, I see the various points in the code where the state file is being parsed. I see the what appears to be the local state file being parsed here. Looking at the parser there, it simply just loads in the file and unmarshals it using a JSON decoder.
After that there is a check on the state variable for nil. So already, the state is not nil when it gets to the differsFrom call. From here, it sends over state.Backend attribute over to it.
Eventually, the whole thing bombs (here)[https://github.com/gruntwork-io/terragrunt/blob/master/remote/remote_state.go#L94].
Now, I'm trying to figure out exactly what thing is messed up.
We have two things existingBackend.Type and remoteState.Backend. From tracing the code, we already know that existingBackend == state.Backend, from which state is not nil from the previous function and we at least know that remoteState is also non-nil as the function would not have been called (I don't know Go, but I assume that this is the case). Also, I assume that remoteState == my local state file, but I'm unclear how this one is parsed.
Anyways, if state is just a unmarshaled JSON file, I assume then that state.Backend is getting the key in the root key from the JSON file. Inspecting the terraform.tfstate file, I root keys that I see are:
{
    "version": 3,
    "terraform_version": "0.10.3",
    "serial": 1,
    "lineage": ...,
    "modules": [
        ...
    ]
}

It appears that Backend isn't a key in the root document. I'm not sure if the reason this is erroring is because of the initial terragrunt apply failed or something else. I also inspected other state files that we have lying around and Backend never appears to be a key in the root level of the JSON tfstate file as well.

Ah, so interesting, we recently upgraded terragrunt from v1.30.0 -> v1.30.9. It looks like in the older version we were running v1.30.0, there is a (check)[https://github.com/gruntwork-io/terragrunt/blob/920ba4c1f2316e5283700e7fb915694e233669d8/remote/remote_state.go#L66] for the state being a remote state. However, this got removed in (v1.30.6)[https://github.com/gruntwork-io/terragrunt/blob/7a04ee55643131b212b973e191e301e6d9d8cfae/remote/remote_state.go#L79].
I'm not sure if the newer terraform versions include the new Backend key, but the check in IsRemote() accounted for this. But, not it doesn't appear to be running this anywhere.

@bitbier Good find! It's a bit odd that Terraform state doesn't include a backend key even when you explicitly configure the backend to be local. Does any of the state file config get stored for a local backend (e.g., path)? If not, then there is no reason to compare them, and the IsRemote check should be restored.
BTW, why are you using a local backend?

Looking at a few terraform state files, it looks like there isn't anything that indicates the backend. Again, this is for terraform 0.10.3 at least. Not sure if terraform has any information on what their state file is suppose to look like. I couldn't find any schematics on their site, but maybe their github repo has more information about that.
As for why we are using a local backend, it mainly comes down to ease of use and compatibility with other providers. At our company, we try not to use vendor specific sources unless its absolutely necessary so that we can move to another cloud provider with out much hassle. We are a small enough team that there is only 3 or so people running terraform with plans to build out an automation tool for it so that it can be run in one place. We also like having history local without needing to write S3 tool for pulling back different versions of the state files if we need it. We also don't keep any sensitive data in our state files (no RDS instances or services that require generated passwords to be saved). Our git repo is already backed up nightly to S3 (which could easy be GCP storage) so we already have the backup/persistence handled in case something goes wrong, but if our git server goes down we have more problems than just our state file being gone.
Eventually we may use the S3 backends, but for now the use-case for us is just not there. Although we may try the consul backend or vault backend once that is supported since we would be running those services no matter the provider.

Looking at a few terraform state files, it looks like there isn't anything that indicates the backend. Again, this is for terraform 0.10.3 at least. Not sure if terraform has any information on what their state file is suppose to look like. I couldn't find any schematics on their site, but maybe their github repo has more information about that.

Terraform state is technically an internal API, so I can't fault them too much about not publishing a spec. They make backwards incompatible changes often, and that's totally understandable for this sort of thing.
My guess is we should restore the IsRemote check. Are you interested in submitting a quick PR for that?

As for why we are using a local backend [...]

The main reasons to NOT use a local backend are:

You'll forget to git pull before making a change or git push after making one. That means someone will inevitably have stale state and end up blowing away something important.

Terraform state may contain secrets. It sounds like you don't have this issue for now, but it's remarkably simple to add something that has secrets and not think about it.

Locking. Right now, two of your devs could run apply at the same time on the same state, and you'll get a race condition, with some state being clobbered.

IMO, the local backend has so many potential problems for teams and S3 is such a minor dependency that's easy to replace, that it's a total no brainer to use it.

I haven't forgot about this. It would like to fix it, but currently I'm swamped with work. I may have some time in the coming weekends to get a PR with a fix. I also haven't done Go development, so I would need to get up to speed which is why I haven't participated yet.

I just hit this bug when I was following the readme on terragrunt, for setting up the remote state in s3, but the bucket says there is nothing there and the dynamo table is empty. Is there a remote state I can manually nuke to get past this bug? There would be nothing in it that needs saving.
Stack trace is nearly identical to my eyes, but I'm not a go-dev, so I'll post it just in case:
[terragrunt] 2017/11/14 10:54:03 runtime.errorString runtime error: invalid memory address or nil pointer dereference
/private/tmp/terragrunt-20171113-67001-1wqnhvt/terragrunt-0.13.20/src/github.com/gruntwork-io/terragrunt/errors/errors.go:72 (0x10ed113)
/usr/local/Cellar/go/1.9.2/libexec/src/runtime/asm_amd64.s:509 (0x1056dab)
/usr/local/Cellar/go/1.9.2/libexec/src/runtime/panic.go:491 (0x102b2c3)
/usr/local/Cellar/go/1.9.2/libexec/src/runtime/panic.go:63 (0x102a1ce)
/usr/local/Cellar/go/1.9.2/libexec/src/runtime/signal_unix.go:367 (0x1041c8c)
/private/tmp/terragrunt-20171113-67001-1wqnhvt/terragrunt-0.13.20/src/github.com/gruntwork-io/terragrunt/remote/remote_state.go:93 (0x14489a2)
/private/tmp/terragrunt-20171113-67001-1wqnhvt/terragrunt-0.13.20/src/github.com/gruntwork-io/terragrunt/remote/remote_state.go:79 (0x144881e)
/private/tmp/terragrunt-20171113-67001-1wqnhvt/terragrunt-0.13.20/src/github.com/gruntwork-io/terragrunt/cli/cli_app.go:473 (0x14f85fc)
/private/tmp/terragrunt-20171113-67001-1wqnhvt/terragrunt-0.13.20/src/github.com/gruntwork-io/terragrunt/cli/cli_app.go:283 (0x14f7228)
/private/tmp/terragrunt-20171113-67001-1wqnhvt/terragrunt-0.13.20/src/github.com/gruntwork-io/terragrunt/cli/cli_app.go:256 (0x14f710f)
/private/tmp/terragrunt-20171113-67001-1wqnhvt/terragrunt-0.13.20/src/github.com/gruntwork-io/terragrunt/cli/cli_app.go:402 (0x14f7b03)
/private/tmp/terragrunt-20171113-67001-1wqnhvt/terragrunt-0.13.20/src/github.com/gruntwork-io/terragrunt/cli/download_source.go:363 (0x14fb000)
/private/tmp/terragrunt-20171113-67001-1wqnhvt/terragrunt-0.13.20/src/github.com/gruntwork-io/terragrunt/cli/download_source.go:92 (0x14f95a2)
/private/tmp/terragrunt-20171113-67001-1wqnhvt/terragrunt-0.13.20/src/github.com/gruntwork-io/terragrunt/cli/download_source.go:54 (0x14f924f)
/private/tmp/terragrunt-20171113-67001-1wqnhvt/terragrunt-0.13.20/src/github.com/gruntwork-io/terragrunt/cli/cli_app.go:212 (0x14f6c31)
/private/tmp/terragrunt-20171113-67001-1wqnhvt/terragrunt-0.13.20/src/github.com/gruntwork-io/terragrunt/cli/cli_app.go:196 (0x14f6ad0)
/private/tmp/terragrunt-20171113-67001-1wqnhvt/terragrunt-0.13.20/src/github.com/gruntwork-io/terragrunt/cli/cli_app.go:177 (0x14f679e)
/private/tmp/terragrunt-20171113-67001-1wqnhvt/terragrunt-0.13.20/src/github.com/gruntwork-io/terragrunt/vendor/github.com/urfave/cli/app.go:502 (0x1497b52)
/private/tmp/terragrunt-20171113-67001-1wqnhvt/terragrunt-0.13.20/src/github.com/gruntwork-io/terragrunt/vendor/github.com/urfave/cli/app.go:268 (0x1495a23)
/private/tmp/terragrunt-20171113-67001-1wqnhvt/terragrunt-0.13.20/main.go:20 (0x14fc2d4)
/usr/local/Cellar/go/1.9.2/libexec/src/runtime/proc.go:195 (0x102d0e6)
/usr/local/Cellar/go/1.9.2/libexec/src/runtime/asm_amd64.s:2337 (0x10595f1)

By ditching the remote state configuration and falling back to a local backend, I was able to get things up and running for now. Not ideal, but it's at least allowing me to keep working with terragrunt. Currently I'm just prototyping replacing our aws stack with terragrunt so remote state management isn't crucial. Hopefully whatever was wrong with my configuration will become easier to diagnose in the future :)

We're hitting this same error with an S3 state backend configured, not local.


svg-icon angular universal support

support for server rendering angular universal

I've been unable to build with the code in this pull-request.


Nullabel Enums

My nullable enums are being converted to Non-nullable for my c# client code.

Can you post a sample controller?

Is this an issue with an action method parameter or model property?

Sorry about the delay, it's a model property, i'm not sure how/why but it has now generated the correct result.
I have another issue though with attributes on enums not being carried over...i'll create a separate issue.


Suggestion to Detect Emergency Lights on Vehicle

Hi
I am trying to decide the best route to detect emergency lights over a vehicle in real time.  Wondering if you can provide some suggestions on ways to implement it. Currently, I am trying to train a custom data set with YoloV7 without good results due to the annotation that requires adding an object already classified/trained.
Here is an example of the emergency lights detector I am referring to. Our platform is Xavier AGX and looking for options to get this done.

Hi @jptalledo10, at a glance that would appear to be challenging given the relatively small size of those objects and their aspect ratio.   I'm not an expert on training, but I guess I would personally start with train_ssd.py and training an ssd-mobilenet with 512x512 resolution (which is higher than the default of 300x300, due to your small objects).  Certainly there now exist higher-quality detection models, like the latest YOLO's - that's just what I use and have support for.    You might also want to check out DetectNet_v2 from the TAO Toolkit and use TAO for the training, as it can train quite high-resolution models for detecting smaller objects.


How do you add vuetify to gridsome?

Description
Using Vue add Vuetify is generating a 'cannot call get on a collection with no paths error'
Paste the information here as shown by gridsome info

There's a section in the Gridsome docs with a complete guide to adding Vuetify to your Gridsome project.:


Module sidebar

resolved conflicts in the app.jsx

routes the /auth to the authentication page (kash)
adds dynamic routing to the content and quiz pages (keerth)


notifyfs: fix custom render callback

Now draws properly in the middle of the screen, instead of outside it.

Thanks!


RSDK-7226 Add chunks flag to decoder

Description
The goal of this PR is to remove the 20 byte filter from h264 decoder loop by properly flagging the decoder to expect partial frames. This is needed since we are feeding NALs into the decoder instead of by frame boundary.
Testing

Tested that the decoder no longer logs no frame!.
No regression to h264/h265 decoding performance or stability.

Refs

AV_CODEC_FLAG2_CHUNKS

@nicksanford Tagging for review.

@seanavery Great find! This looks good to me. I tested it on arm64 linux (pi 4 bullseye) and macos aarm64. If you have tested on pi 5 bookworm & amd64 linux this is good to merge from my perspective.

Amd64 ✅
Pi5 (bworm) ✅


Migrate Documentation to New Repository

TODO:

[ ] Webhook needs to be set up
[ ] Docs need to be successfully built
[ ] Bugs that arise need debugging

Already done. New Issue thread located here


Script: everyStopPointHaveAnArrivalAndDepartureTime works incorrect

"everyStopPointHaveAnArrivalAndDepartureTime - the original implementation worked incorrectly, modify line 55"

Fixed in version 0.5.5


changing username in create new user form has no effect

After user is redirected back, on create new account form, username change has no effect.
After a little digging I found the bug in the file " wordpress-social-login/includes/widgets/wsl.users.gateway.php
", line no 45.
$requested_user_login        = isset( $_REQUEST["user_login"] ) ? trim( $_REQUEST["user_login"] ) : $hybridauth_user_login;
should be:
$requested_user_login        = isset( $_REQUEST["user_name"] ) ? trim( $_REQUEST["user_name"] ) : $hybridauth_user_login;
Form is using "user_name" but when getting the data wrong field name is used.

Confirmed, submitting a patch for this now

@gxrahul user_login is actually the corresponding WordPress field name and is used correctly throughout so we update the incorrect form field name that is sending the data on #L573


IfDef FullDesktop directive to work on non-windows

Find a proper way to IfDeg FullDesktop so that it works on non-windows environment.
Currently FullDesktop assumes two things:

That it is full desktop .net
That it is running on Windows

#2 should not be assumed and if needed guard with appropriate ifDef if required.
The code in question is the following code block
https://github.com/Azure/azure-sdk-for-net/blob/d6c9636ef100346afee80619beb191d31c5cba07/src/SdkCommon/ClientRuntime/ClientRuntime/ServiceClient.cs#L53
Required:

Add tests that can be run on non-windows environment

@shahabhijeet investigated a little here and looks like the only way we can detect the operating system is in the csproj files, which means we can compile code in only 2 modes, one is for the current operating system on which the code is being compiled on or cross plat (AnyCPU)

Fix merged, some testing is pending on non windows machine, tracked here https://github.com/Azure/azure-sdk-for-net/issues/4403


downcase Step

As I was working through the text learning about building a Bosh Release I found that this could be down-cased to look correct.
Thanks for all the great docs!

Updated.


Task watchdog got triggered in BLE functions (IDFGH-2271)

Recently I have started experimenting with NimBLE and in after some time I started to get these errors:
E (233591) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:
E (233591) task_wdt:  - IDLE0 (CPU 0)
E (233591) task_wdt: Tasks currently running:
E (233591) task_wdt: CPU 0: ble
E (233591) task_wdt: CPU 1: IDLE1

I made some research and found out that this error potentionally could be fixed by putting vTaskDelay in these functions:

nimble_port_run
ble_ll_task

I'm not sure that's the right way to fix the problem so please let me know if there is more information needed. The problem occures on master branch, and I have not checked older branches.
E (31838) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:
E (31838) task_wdt:  - IDLE0 (CPU 0)
E (31838) task_wdt: Tasks currently running:
E (31838) task_wdt: CPU 0: ble
E (31838) task_wdt: CPU 1: IDLE1
E (31838) task_wdt: Aborting.
abort() was called at PC 0x400d2a4f on core 0
0x400d2a4f: task_wdt_isr at /home/ildus/dev/esp-idf/components/esp32/task_wdt.c:174 (discriminator 1)

ELF file SHA256: f44515713f51fd804b7e83af6ede154af92a1a878348499d29c57e90fad272ce

Backtrace: 0x4008e7ad:0x3ffbe360 0x4008eb35:0x3ffbe380 0x400d2a4f:0x3ffbe3a0 0x40082aad:0x3ffbe3c0 0x4000bfed:0x3ffc7730 |<-CORRUPTED
0x4008e7ad: invoke_abort at /home/ildus/dev/esp-idf/components/esp32/panic.c:157

0x4008eb35: abort at /home/ildus/dev/esp-idf/components/esp32/panic.c:174

0x400d2a4f: task_wdt_isr at /home/ildus/dev/esp-idf/components/esp32/task_wdt.c:174 (discriminator 1)

0x40082aad: _xt_lowint1 at /home/ildus/dev/esp-idf/components/freertos/xtensa_vectors.S:1153

This happens on ESP-WROOM-32 on bleprph example.

Hi @ildus Could you please let me know if you have made any changes to default bleprph example ? Just FYI, I have fixed an issue in NimBLE porting layer which is in internal pipeline that maybe relevant here, I will notify you as soon as it is available on github.

I get this error on default bleprph too. Strange thing, when I just started everything was ok for a while.

@ildus fix for NimBLE porting layer is available on github master, commit id : 656005ef. Can you please check the issue with the latest master ?

@ildus Thanks for reporting. Would you please help check whether your issue has been fixed with the latest master? Thanks.

@Alvin1Zhang @prasad-alatkar sorry, will test today evening (about 20:00 UTC).

Ok, just checked. The problem seems to be gone. Thank you.

Hi there,
I still have this same issue with stable version 4.0. and working over the bleprph example with no modifications. (I actually tested also with the master branch getting same results).
At the first, I started working with no issues, but after a while it started with this error just after a subscribe event.
subscribe event; conn_handle=0 attr_handle=8 reason=1 prevn=0 curn=0 previ=0 curi=1

E (386094) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:
E (386094) task_wdt:  - IDLE0 (CPU 0)
E (386094) task_wdt: Tasks currently running:
E (386094) task_wdt: CPU 0: ble
E (386094) task_wdt: CPU 1: IDLE1

I tried flashing it to a new module, and it is working properly for now, bit I think it's about time. In fact, there is no way that my first module can get it to work having the same code.
Maybe I lost something?

Hi @albertmbt Can you try  erase_flash on the module and flash again ? If you still face the issue, can you please share debug logs(make menuconfig -->component config-->Log output-->Default log verbosity-->Debug) ?

Yep erasing memory solves the problem. I wasn't paying attention when I first got the error, probably it's a problem after flash then and not randomly on work as I thought.

Hi @albertmbt I understand, please provide debug logs if you get this issue again.

@ildus  Thanks for reopening. Did you run into the issue again? Could you please help share any updates or details? Thanks.

Hi, I also got into this problem. It happens when there are too many cccd's stored in NVS.
Here is the verbose debug log
Encrypt change: status=0 handle=0 state=1 I (45857) bleprph: BLE_GAP_EVENT_ENC_CHANGE I (45857) BLE_MISC: handle=0 our_ota_addr_type=0 our_ota_addr=3c39e7221b32 I (45857) BLE_MISC: our_id_addr_type=0 our_id_addr=3c39e7221b32 I (45867) BLE_MISC: peer_ota_addr_type=1 peer_ota_addr=61617c44f949 I (45877) BLE_MISC: peer_id_addr_type=1 peer_id_addr=61617c44f949 I (45877) BLE_MISC: conn_itvl=24 conn_latency=0 supervision_timeout=72 encrypted=1 authenticated=0 bonded=1 error persisting cccd; too many entries (8) looking up our sec; error persisting cccd; too many entries (8) looking up our sec; error persisting cccd; too many entries (8) looking up our sec; .... (infinite)

@albertmbt or @Alvin1Zhang
The issue occours in the ble_store_write() in ble_store.c. The loop expects after calling ble_store_overflow_event(), that there is room available. Somehow this isn't the case.
I'm too unfamiliar with the IDF to further investigate the issue, I hope you can solve it. Thanks!

@albertmbt  @Unsigus, @prasad-alatkar is looking into this and will update after there is progress. Thanks!

Hi @Unsigus this is actually not the same issue.
For your case, I am afraid but you have to increase CCCDs from menuconfig (make menuconfig --> Component config--> Bluetooth--> NimBLE Options--> Maximum number of CCC descriptors to save across reboots).

The issue occours in the ble_store_write() in ble_store.c. The loop expects after calling ble_store_overflow_event(), that there is room available. Somehow this isn't the case.

Yes, NimBLE stack makes space by deleting oldest peer ble_gap_unpair_oldest_peer. However for your case if application needs more than 8 CCDs per device then the application should configure it beforehand.
Please let me know if you find any other issue. Please help to close the issue if you find the response satisfactory.

Hi @prasad-alatkar, Thank you for your time, and will tweak my settings.
But don't you agree that the app needs to respond differently (like an assert) than getting into an infinite loop (thus a watchdog timeout)? That can save a lot of time when others run into this problem.

@Unsigus Could you please update if your issue was resolved with tweaking settings from menuconfig  ?

But don't you agree that the app needs to respond differently (like an assert) than getting into an infinite loop (thus a watchdog timeout)? That can save a lot of time when others run into this problem.

I do agree that there should be better way to handle this. However it is application developer's responsibility as well to configure minimum required settings. Having said that I am also thinking about proper handling of this particulate situation, will update you accordingly.
Apart from that just to maintain history of the issue clean, the issue @Unsigus has faced is different from the original reported issue which is infrequent and make erase_flash happened to resolve it. @albertmbt @ildus DId you guys get a chance to reproduce the issue with DEBUG logs on ?

@prasad-alatkar, from my point of view the issue is the same. I also got this message every x seconds, while the app stops responding to everything else:
E (386094) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:
E (386094) task_wdt:  - IDLE0 (CPU 0)
E (386094) task_wdt: Tasks currently running:
E (386094) task_wdt: CPU 0: ble
E (386094) task_wdt: CPU 1: IDLE1

Using make erase_flash did solve that for some time. When the cccd NVS reaches is maximum (Don't now how that happens, my application doesn't need more than 8 cccd's per device. But I think it did not clear the records correctly when I was developing with trial and errors, clearing nvs did solve that)
With that information I've reproduced the issue that I think @albertmbt has. With the DEBUG log on this was printed directly when turning on notifications:

Here is the verbose debug log from the bleprph example:
rxed att command: find info req; conn=0 start_handle=0x0009 end_handle=0x0009
...
error persisting cccd; too many entries (8)
looking up our sec;
...

Changing Maximum number of CCC descriptors to save across reboots will solve the issue, but that's just a workaround in my opinion (the wrongly stored cccd's are still stored and will never be removed)
If this still not the same issue in your opinion, please inform me and I will leave you guys alone.

Hi guys, i've been busy on other project those days and i haven't been able to keep looking at it. i expect to have time during the next week. In the poor test's that i've made those days i haven't been able to reproduce the issue again. i'll keep updating.

@prasad-alatkar I just used old bluetooth stack for my device, and for now I'm not able to debug. But I remember in my case that the issue also was fixed after erasing the flash. But I agree with @Unsigus that is a bug, since it happens without any extra changes on example application, for example I didn't even know that there are some cccd's that are stored to flash. At least it should be logged, and there should be proper workaround.

Hi @Unsigus Could you please share the entire debug log ?

Here you go
I (29) boot: ESP-IDF v4.2-dev-701-g0ae960f2f-dirty 2nd stage bootloader
I (29) boot: compile time 14:03:03
I (30) boot: chip revision: 1
I (34) boot_comm: chip revision: 1, min. bootloader chip revision: 0
I (41) boot.esp32: SPI Speed      : 40MHz
I (46) boot.esp32: SPI Mode       : DIO
I (50) boot.esp32: SPI Flash Size : 2MB
I (55) boot: Enabling RNG early entropy source...
I (60) boot: Partition Table:
I (64) boot: ## Label            Usage          Type ST Offset   Length
I (71) boot:  0 nvs              WiFi data        01 02 00009000 00006000
I (78) boot:  1 phy_init         RF data          01 01 0000f000 00001000
I (86) boot:  2 factory          factory app      00 00 00010000 00100000
I (93) boot: End of partition table
I (98) boot_comm: chip revision: 1, min. application chip revision: 0
I (105) esp_image: segment 0: paddr=0x00010020 vaddr=0x3f400020 size=0x0e898 ( 59544) map
I (136) esp_image: segment 1: paddr=0x0001e8c0 vaddr=0x3ffbdb60 size=0x01758 (  5976) load
I (139) esp_image: segment 2: paddr=0x00020020 vaddr=0x400d0020 size=0x55820 (350240) map
0x400d0020: _stext at ??:?

I (276) esp_image: segment 3: paddr=0x00075848 vaddr=0x3ffbf2b8 size=0x01d24 (  7460) load
I (280) esp_image: segment 4: paddr=0x00077574 vaddr=0x40080000 size=0x00404 (  1028) load
0x40080000: _WindowOverflow4 at ~/esp/esp-idf/components/freertos/xtensa/xtensa_vectors.S:1817

I (284) esp_image: segment 5: paddr=0x00077980 vaddr=0x40080404 size=0x137e4 ( 79844) load
I (337) boot: Loaded app from partition at offset 0x10000
I (337) boot: Disabling RNG early entropy source...
I (338) cpu_start: Pro cpu up.
I (341) cpu_start: Application information:
I (346) cpu_start: Project name:     bleprph
I (351) cpu_start: App version:      v4.2-dev-701-g0ae960f2f-dirty
I (358) cpu_start: Compile time:     Mar 20 2020 14:02:56
I (364) cpu_start: ELF file SHA256:  807a1f7926ac86cb...
I (370) cpu_start: ESP-IDF:          v4.2-dev-701-g0ae960f2f-dirty
I (377) cpu_start: Starting app cpu, entry point is 0x400812fc
0x400812fc: call_start_cpu1 at ~/esp/esp-idf/components/esp32/cpu_start.c:273

I (0) cpu_start: App cpu up.
D (387) memory_layout: Checking 11 reserved memory ranges:
D (393) memory_layout: Reserved memory range 0x3ffae000 - 0x3ffae6e0
D (399) memory_layout: Reserved memory range 0x3ffae6e0 - 0x3ffaff10
D (405) memory_layout: Reserved memory range 0x3ffb0000 - 0x3ffb6388
D (412) memory_layout: Reserved memory range 0x3ffb8000 - 0x3ffb9a20
D (418) memory_layout: Reserved memory range 0x3ffbdb28 - 0x3ffbdb5c
D (425) memory_layout: Reserved memory range 0x3ffbdb60 - 0x3ffc3bd0
D (431) memory_layout: Reserved memory range 0x3ffe0000 - 0x3ffe0440
D (438) memory_layout: Reserved memory range 0x3ffe3f20 - 0x3ffe4350
D (444) memory_layout: Reserved memory range 0x40070000 - 0x40078000
D (450) memory_layout: Reserved memory range 0x40078000 - 0x40080000
0x40080000: _WindowOverflow4 at ~esp/esp-idf/components/freertos/xtensa/xtensa_vectors.S:1817

D (457) memory_layout: Reserved memory range 0x40080000 - 0x40093be8
0x40080000: _WindowOverflow4 at ~/esp/esp-idf/components/freertos/xtensa/xtensa_vectors.S:1817

D (463) memory_layout: Building list of available memory regions:
D (469) memory_layout: Available memory region 0x3ffaff10 - 0x3ffb0000
D (476) memory_layout: Available memory region 0x3ffb6388 - 0x3ffb8000
D (483) memory_layout: Available memory region 0x3ffb9a20 - 0x3ffbdb28
D (489) memory_layout: Available memory region 0x3ffbdb5c - 0x3ffbdb60
D (496) memory_layout: Available memory region 0x3ffc3bd0 - 0x3ffc4000
D (502) memory_layout: Available memory region 0x3ffc4000 - 0x3ffc6000
D (509) memory_layout: Available memory region 0x3ffc6000 - 0x3ffc8000
D (516) memory_layout: Available memory region 0x3ffc8000 - 0x3ffca000
D (522) memory_layout: Available memory region 0x3ffca000 - 0x3ffcc000
D (529) memory_layout: Available memory region 0x3ffcc000 - 0x3ffce000
D (535) memory_layout: Available memory region 0x3ffce000 - 0x3ffd0000
D (542) memory_layout: Available memory region 0x3ffd0000 - 0x3ffd2000
D (549) memory_layout: Available memory region 0x3ffd2000 - 0x3ffd4000
D (555) memory_layout: Available memory region 0x3ffd4000 - 0x3ffd6000
D (562) memory_layout: Available memory region 0x3ffd6000 - 0x3ffd8000
D (568) memory_layout: Available memory region 0x3ffd8000 - 0x3ffda000
D (575) memory_layout: Available memory region 0x3ffda000 - 0x3ffdc000
D (582) memory_layout: Available memory region 0x3ffdc000 - 0x3ffde000
D (588) memory_layout: Available memory region 0x3ffde000 - 0x3ffe0000
D (595) memory_layout: Available memory region 0x3ffe0440 - 0x3ffe3f20
D (601) memory_layout: Available memory region 0x3ffe4350 - 0x3ffe8000
D (608) memory_layout: Available memory region 0x3ffe8000 - 0x3fff0000
D (615) memory_layout: Available memory region 0x3fff0000 - 0x3fff8000
D (621) memory_layout: Available memory region 0x3fff8000 - 0x3fffc000
D (628) memory_layout: Available memory region 0x3fffc000 - 0x40000000
D (634) memory_layout: Available memory region 0x40093be8 - 0x40094000
D (641) memory_layout: Available memory region 0x40094000 - 0x40096000
D (648) memory_layout: Available memory region 0x40096000 - 0x40098000
D (654) memory_layout: Available memory region 0x40098000 - 0x4009a000
D (661) memory_layout: Available memory region 0x4009a000 - 0x4009c000
D (667) memory_layout: Available memory region 0x4009c000 - 0x4009e000
D (674) memory_layout: Available memory region 0x4009e000 - 0x400a0000
I (681) heap_init: Initializing. RAM available for dynamic allocation:
D (688) heap_init: New heap initialised at 0x3ffaff10
I (693) heap_init: At 3FFAFF10 len 000000F0 (0 KiB): DRAM
D (699) heap_init: New heap initialised at 0x3ffb6388
I (704) heap_init: At 3FFB6388 len 00001C78 (7 KiB): DRAM
D (710) heap_init: New heap initialised at 0x3ffb9a20
I (715) heap_init: At 3FFB9A20 len 00004108 (16 KiB): DRAM
I (721) heap_init: At 3FFBDB5C len 00000004 (0 KiB): DRAM
D (728) heap_init: New heap initialised at 0x3ffc3bd0
I (733) heap_init: At 3FFC3BD0 len 0001C430 (113 KiB): DRAM
I (739) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (745) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
D (752) heap_init: New heap initialised at 0x40093be8
I (757) heap_init: At 40093BE8 len 0000C418 (49 KiB): IRAM
I (763) cpu_start: Pro cpu start user code
D (775) clk: RTC_SLOW_CLK calibration value: 3752806
D (785) intr_alloc: Connected src 46 to int 2 (cpu 0)
D (785) intr_alloc: Connected src 17 to int 3 (cpu 0)
D (786) intr_alloc: Connected src 24 to int 9 (cpu 0)
D (791) FLASH_HAL: extra_dummy: 1
D (794) spi_flash: trying chip: issi
D (797) spi_flash: trying chip: gd
I (801) spi_flash: detected chip: gd
I (805) spi_flash: flash io: dio
D (809) chip_generic: set_io_mode: status before 0x0
W (814) spi_flash: Detected size(16384k) larger than the size in the binary image header(2048k). Using the size in the binary image header.
I (827) cpu_start: Starting scheduler on PRO CPU.
D (0) intr_alloc: Connected src 25 to int 2 (cpu 1)
I (0) cpu_start: Starting scheduler on APP CPU.
D (843) heap_init: New heap initialised at 0x3ffe0440
D (853) heap_init: New heap initialised at 0x3ffe4350
D (863) intr_alloc: Connected src 16 to int 12 (cpu 0)
D (863) partition: Loading the partition table
D (913) BTDM_INIT: Release DRAM [0x3ffb2730] - [0x3ffb6388]
I (913) BTDM_INIT: BT controller compile version [ab2cbc7]
D (913) BTDM_INIT: .data initialise [0x3ffae6e0] <== [0x4000d890]
D (913) BTDM_INIT: .bss initialise [0x3ffb0000] - [0x3ffb09a8]
D (923) BTDM_INIT: .bss initialise [0x3ffb09a8] - [0x3ffb1ddc]
D (923) BTDM_INIT: .bss initialise [0x3ffb1ddc] - [0x3ffb2730]
D (933) BTDM_INIT: .bss initialise [0x3ffb8000] - [0x3ffb9a20]
D (943) BTDM_INIT: .bss initialise [0x3ffbdb28] - [0x3ffbdb5c]
I (943) system_api: Base MAC address is not set
I (953) system_api: read default base MAC address from EFUSE
D (953) efuse: coding scheme 0
D (963) efuse: In EFUSE_BLK0__DATA2_REG is used 8 bits starting with 8 bit
D (963) efuse: coding scheme 0
D (973) efuse: In EFUSE_BLK0__DATA2_REG is used 8 bits starting with 0 bit
D (973) efuse: coding scheme 0
D (983) efuse: In EFUSE_BLK0__DATA1_REG is used 8 bits starting with 24 bit
D (983) efuse: coding scheme 0
D (993) efuse: In EFUSE_BLK0__DATA1_REG is used 8 bits starting with 16 bit
D (993) efuse: coding scheme 0
D (1003) efuse: In EFUSE_BLK0__DATA1_REG is used 8 bits starting with 8 bit
D (1003) efuse: coding scheme 0
D (1013) efuse: In EFUSE_BLK0__DATA1_REG is used 8 bits starting with 0 bit
D (1013) efuse: coding scheme 0
D (1023) efuse: In EFUSE_BLK0__DATA2_REG is used 8 bits starting with 16 bit
D (1033) phy_init: loading PHY init data from application binary
D (1033) nvs: nvs_open_from_partition phy 0
D (1043) nvs: nvs_get cal_version 4
D (1043) nvs: nvs_get_str_or_blob cal_mac
D (1043) efuse: coding scheme 0
D (1053) efuse: In EFUSE_BLK0__DATA2_REG is used 8 bits starting with 8 bit
D (1053) efuse: coding scheme 0
D (1063) efuse: In EFUSE_BLK0__DATA2_REG is used 8 bits starting with 0 bit
D (1063) efuse: coding scheme 0
D (1073) efuse: In EFUSE_BLK0__DATA1_REG is used 8 bits starting with 24 bit
D (1073) efuse: coding scheme 0
D (1083) efuse: In EFUSE_BLK0__DATA1_REG is used 8 bits starting with 16 bit
D (1083) efuse: coding scheme 0
D (1093) efuse: In EFUSE_BLK0__DATA1_REG is used 8 bits starting with 8 bit
D (1093) efuse: coding scheme 0
D (1103) efuse: In EFUSE_BLK0__DATA1_REG is used 8 bits starting with 0 bit
D (1103) efuse: coding scheme 0
D (1113) efuse: In EFUSE_BLK0__DATA2_REG is used 8 bits starting with 16 bit
D (1123) nvs: nvs_get_str_or_blob cal_data
D (1133) nvs: nvs_close 1
D (1133) efuse: coding scheme 0
D (1133) efuse: In EFUSE_BLK0__DATA2_REG is used 8 bits starting with 8 bit
D (1133) efuse: coding scheme 0
D (1143) efuse: In EFUSE_BLK0__DATA2_REG is used 8 bits starting with 0 bit
D (1143) efuse: coding scheme 0
D (1153) efuse: In EFUSE_BLK0__DATA1_REG is used 8 bits starting with 24 bit
D (1153) efuse: coding scheme 0
D (1163) efuse: In EFUSE_BLK0__DATA1_REG is used 8 bits starting with 16 bit
D (1163) efuse: coding scheme 0
D (1173) efuse: In EFUSE_BLK0__DATA1_REG is used 8 bits starting with 8 bit
D (1173) efuse: coding scheme 0
D (1183) efuse: In EFUSE_BLK0__DATA1_REG is used 8 bits starting with 0 bit
D (1183) efuse: coding scheme 0
D (1193) efuse: In EFUSE_BLK0__DATA2_REG is used 8 bits starting with 16 bit
I (1283) phy: phy_version: 4180, cb3948e, Sep 12 2019, 16:39:13, 0, 0
D (1513) nvs: nvs_open_from_partition nimble_bond 1
D (1523) nvs: nvs_get_str_or_blob our_sec_1
D (1523) nvs: nvs_close 2
D (1523) nvs: nvs_open_from_partition nimble_bond 1
D (1523) nvs: nvs_get_str_or_blob our_sec_2
D (1533) nvs: nvs_close 3
D (1533) nvs: nvs_open_from_partition nimble_bond 1
D (1533) nvs: nvs_get_str_or_blob our_sec_3
D (1543) nvs: nvs_close 4
D (1543) NIMBLE_NVS: ble_store_config_our_secs restored 0 bonds
D (1553) nvs: nvs_open_from_partition nimble_bond 1
D (1553) nvs: nvs_get_str_or_blob peer_sec_1
D (1563) nvs: nvs_close 5
D (1563) nvs: nvs_open_from_partition nimble_bond 1
D (1563) nvs: nvs_get_str_or_blob peer_sec_2
D (1573) nvs: nvs_close 6
D (1573) nvs: nvs_open_from_partition nimble_bond 1
D (1573) nvs: nvs_get_str_or_blob peer_sec_3
D (1583) nvs: nvs_close 7
D (1583) NIMBLE_NVS: ble_store_config_peer_secs restored 0 bonds
D (1593) nvs: nvs_open_from_partition nimble_bond 1
D (1593) nvs: nvs_get_str_or_blob cccd_sec_1
D (1603) nvs: nvs_get_str_or_blob cccd_sec_1
D (1603) nvs: nvs_close 8
D (1603) NIMBLE_NVS: CCCD in RAM is filled up from NVS index = 1
D (1613) nvs: nvs_open_from_partition nimble_bond 1
D (1623) nvs: nvs_get_str_or_blob cccd_sec_2
D (1623) nvs: nvs_get_str_or_blob cccd_sec_2
D (1623) nvs: nvs_close 9
D (1633) NIMBLE_NVS: CCCD in RAM is filled up from NVS index = 2
D (1633) nvs: nvs_open_from_partition nimble_bond 1
D (1643) nvs: nvs_get_str_or_blob cccd_sec_3
D (1643) nvs: nvs_get_str_or_blob cccd_sec_3
D (1653) nvs: nvs_close 10
D (1653) NIMBLE_NVS: CCCD in RAM is filled up from NVS index = 3
D (1663) nvs: nvs_open_from_partition nimble_bond 1
D (1663) nvs: nvs_get_str_or_blob cccd_sec_4
D (1663) nvs: nvs_get_str_or_blob cccd_sec_4
D (1673) nvs: nvs_close 11
D (1673) NIMBLE_NVS: CCCD in RAM is filled up from NVS index = 4
D (1683) nvs: nvs_open_from_partition nimble_bond 1
D (1683) nvs: nvs_get_str_or_blob cccd_sec_5
D (1693) nvs: nvs_close 12
D (1693) nvs: nvs_open_from_partition nimble_bond 1
D (1693) nvs: nvs_get_str_or_blob cccd_sec_6
D (1703) nvs: nvs_close 13
D (1703) nvs: nvs_open_from_partition nimble_bond 1
D (1713) nvs: nvs_get_str_or_blob cccd_sec_7
D (1713) nvs: nvs_close 14
D (1713) nvs: nvs_open_from_partition nimble_bond 1
D (1723) nvs: nvs_get_str_or_blob cccd_sec_8
D (1723) nvs: nvs_close 15
D (1733) NIMBLE_NVS: ble_store_config_cccds restored 4 bonds
D (1733) nvs: nvs_open_from_partition nimble_bond 1
D (1743) nvs: nvs_get_str_or_blob p_dev_rec_1
D (1743) nvs: nvs_close 16
D (1743) nvs: nvs_open_from_partition nimble_bond 1
D (1753) nvs: nvs_get_str_or_blob p_dev_rec_2
D (1753) nvs: nvs_close 17
D (1763) nvs: nvs_open_from_partition nimble_bond 1
D (1763) nvs: nvs_get_str_or_blob p_dev_rec_3
D (1773) nvs: nvs_close 18
D (1773) nvs: nvs_open_from_partition nimble_bond 1
D (1773) nvs: nvs_get_str_or_blob p_dev_rec_4
D (1783) nvs: nvs_close 19
D (1783) NIMBLE_NVS: peer_dev_rec restored 0 records
I (1793) NimBLE_BLE_PRPH: BLE Host Task Started
registered service 0x1800 with handle=1
registering characteristic 0x2a00 with def_handle=2 val_handle=3
registering characteristic 0x2a01 with def_handle=4 val_handle=5
registered service 0x1801 with handle=6
registering characteristic 0x2a05 with def_handle=7 val_handle=8
registered service 59462f12-9543-9999-12c8-58b459a2712d with handle=10
registering characteristic 5c3a659e-897e-45e1-b016-007107c96df6 with def_handle=11 val_handle=12
registering characteristic 5c3a659e-897e-45e1-b016-007107c96df7 with def_handle=13 val_handle=14
ble_hs_hci_cmd_send: ogf=0x03 ocf=0x0003 len=0
0x03 0x0c 0x00
I (1843) uart: queue free spaces: 8
D (1853) intr_alloc: Connected src 34 to int 3 (cpu 1)
Command complete: cmd_pkts=5 ogf=0x3 ocf=0x3 status=0
ble_hs_hci_cmd_send: ogf=0x04 ocf=0x0001 len=0
0x01 0x10 0x00
Command complete: cmd_pkts=5 ogf=0x4 ocf=0x1 status=0 hci_ver=8 hci_rev=782 lmp_ver=8 mfrg=96 lmp_subver=782
ble_hs_hci_cmd_send: ogf=0x04 ocf=0x0003 len=0
0x03 0x10 0x00
Command complete: cmd_pkts=5 ogf=0x4 ocf=0x3 status=0 supp_feat=0x877bffdbfecdeebf
ble_hs_hci_cmd_send: ogf=0x03 ocf=0x0001 len=8
0x01 0x0c 0x08 0x90 0x80 0x00 0x02 0x00 0x80 0x00 0x20
Command complete: cmd_pkts=5 ogf=0x3 ocf=0x1 status=0
ble_hs_hci_cmd_send: ogf=0x03 ocf=0x0063 len=8
0x63 0x0c 0x08 0x00 0x00 0x80 0x00 0x00 0x00 0x00 0x00
Command complete: cmd_pkts=5 ogf=0x3 ocf=0x63 status=0
ble_hs_hci_cmd_send: ogf=0x08 ocf=0x0001 len=8
0x01 0x20 0x08 0x7f 0x06 0x00 0x00 0x00 0x00 0x00 0x00
Command complete: cmd_pkts=5 ogf=0x8 ocf=0x1 status=0
ble_hs_hci_cmd_send: ogf=0x08 ocf=0x0002 len=0
0x02 0x20 0x00
Command complete: cmd_pkts=5 ogf=0x8 ocf=0x2 status=0
ble_hs_hci_cmd_send: ogf=0x08 ocf=0x0003 len=0
0x03 0x20 0x00
Command complete: cmd_pkts=5 ogf=0x8 ocf=0x3 status=0
ble_hs_hci_cmd_send: ogf=0x04 ocf=0x0009 len=0
0x09 0x10 0x00
Command complete: cmd_pkts=5 ogf=0x4 ocf=0x9 status=0 bd_addr=bc:dd:c2:d4:fc:22
ble_hs_hci_cmd_send: ogf=0x08 ocf=0x0018 len=0
0x18 0x20 0x00
Command complete: cmd_pkts=5 ogf=0x8 ocf=0x18 status=0 rand=0x8314953b378ae30c
ble_hs_hci_cmd_send: ogf=0x08 ocf=0x0018 len=0
0x18 0x20 0x00
Command complete: cmd_pkts=5 ogf=0x8 ocf=0x18 status=0 rand=0xf96ab7628045758b
Device added to RL, Resolving list count = 1
ble_hs_hci_cmd_send: ogf=0x03 ocf=0x0031 len=1
0x31 0x0c 0x01 0x01
Command complete: cmd_pkts=5 ogf=0x3 ocf=0x31 status=0
ble_hs_hci_cmd_send: ogf=0x03 ocf=0x0033 len=7
0x33 0x0c 0x07 0xff 0x00 0x00 0x0c 0x00 0x00 0x00
Command complete: cmd_pkts=5 ogf=0x3 ocf=0x33 status=17
ble_hs_hci_cmd_send: ogf=0x03 ocf=0x0031 len=1
0x31 0x0c 0x01 0x00
Command complete: cmd_pkts=5 ogf=0x3 ocf=0x31 status=0
looking up peer sec;
Device Address: bc:dd:c2:d4:fc:22
ble_hs_hci_cmd_send: ogf=0x08 ocf=0x0007 len=0
0x07 0x20 0x00
Command complete: cmd_pkts=5 ogf=0x8 ocf=0x7 status=0
ble_hs_hci_cmd_send: ogf=0x08 ocf=0x0008 len=32
0x08 0x20 0x20 0x1a 0x02 0x01 0x06 0x03 0x03 0x11 0x18 0x0f 0x09 0x6e 0x69 0x6d 0x62 0x6c 0x65 0x2d 0x62 0x6c 0x65 0x70 0x72 0x70 0x68 0x02 0x0a 0x03 0x00 0x00 0x00 0x00 0x00
Command complete: cmd_pkts=5 ogf=0x8 ocf=0x8 status=0
GAP procedure initiated: advertise; disc_mode=2 adv_channel_map=0 own_addr_type=0 adv_filter_policy=0 adv_itvl_min=0 adv_itvl_max=0
ble_hs_hci_cmd_send: ogf=0x08 ocf=0x0006 len=15
0x06 0x20 0x0f 0x30 0x00 0x60 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x07 0x00
Command complete: cmd_pkts=5 ogf=0x8 ocf=0x6 status=0
ble_hs_hci_cmd_send: ogf=0x08 ocf=0x000a len=1
0x0a 0x20 0x01 0x01
Command complete: cmd_pkts=5 ogf=0x8 ocf=0xa status=0
LE connection complete. handle=0 role=1 paddrtype=1 addr=fa.c.85.5c.f9.e8 local_rpa=<IP_ADDRESS>.0.0 peer_rpa=<IP_ADDRESS>.0.0 itvl=6 latency=0 spvn_tmo=400 mca=7
connection established; status=0 handle=0 our_ota_addr_type=0 our_ota_addr=bc:dd:c2:d4:fc:22 our_id_addr_type=0 our_id_addr=bc:dd:c2:d4:fc:22 peer_ota_addr_type=1 peer_ota_addr=fa:0c:85:5c:f9:e8 peer_id_addr_type=1 peer_id_addr=fa:0c:85:5c:f9:e8 conn_itvl=6 conn_latency=0 supervision_timeout=400 encrypted=0 authenticated=0 bonded=0

ble_hs_hci_cmd_send: ogf=0x08 ocf=0x0016 len=2
0x16 0x20 0x02 0x00 0x00
Command Status: status=0 cmd_pkts=5 ocf=0x16 ogf=0x8
ble_hs_hci_evt_acl_process(): conn_handle=0 pb=2 len=11 data=0x07 0x00 0x04 0x00 0x10 0x01 0x00 0xff 0xff 0x00 0x28
rxed att command: read group type req; conn=0 start_handle=0x0001 end_handle=0xffff
txed att command: read group type rsp; conn=0 length=6
host tx hci data; handle=0 length=18
ble_hs_hci_acl_tx(): 0x00 0x00 0x12 0x00 0x0e 0x00 0x04 0x00 0x11 0x06 0x01 0x00 0x05 0x00 0x00 0x18 0x06 0x00 0x09 0x00 0x01 0x18
LE Remote Used Features.  Could you please test and let me know if it resolves your issue ?
patch:
NimBLE_CCCD_overflow_loop_fix.zip

Thanks @prasad-alatkar. Sadly I was unable to reproduce the issue before and after the patch. I updated the ESP-IDF to v:latest, no issue there. @albertmbt, do you have time to look into this?
I keep trying and get back to this when I know more.

@Unsigus Try to reduce number  of CCCDs from menuconfig to reproduce this issue, make menuconfig --> Component config → Bluetooth → NimBLE Options --> Maximum number of CCC descriptors to save across reboots .
Apart from this just want to correct my earlier comment

if application needs more than 8 CCDs per device ...

The CCCDs configured are total CCCDs and not per device.

Hi @Unsigus The fix for this issue has been merged in mainstream esp-idf(Ref. commit: 2ef48900).

Hi
I know I am a little late to the issue, but I get the same behavior after incorporating:
https://github.com/espressif/esp-idf/tree/master/examples/bluetooth/bluedroid/ble/gatt_server
into my project.
I ma not using Nimble though, so should I open a new issue for this ?
The error itself seems to be the same.
E (20458) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:
E (20458) task_wdt:  - IDLE0 (CPU 0)
E (20458) task_wdt: Tasks currently running:
E (20458) task_wdt: CPU 0: btController
E (20458) task_wdt: CPU 1: IDLE1
E (20458) task_wdt: Print CPU 0 (current core) backtrace

Backtrace:0x401383FB:0x3FFBE8C0 0x40082E71:0x3FFBE8E0 0x40185A7D:0x3FFB5E90 0x4018602D:0x3FFB5EB0 0x4008FED5:0x3FFB5EE0

E (20458) task_wdt: Print CPU 1 backtrace

Backtrace:0x40081DC3:0x3FFBEEC0 0x40082E71:0x3FFBEEE0 0x4000BFED:0x3FFBC870 0x40090135:0x3FFBC880 0x4013869F:0x3FFBC8A0 0x401386AB:0x3FFBC8D0 0x40138761:0x3FFBC8F0 0x40090B0D:0x3FFBC910 0x4008FED5:0x3FFBC930

E (25458) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:
E (25458) task_wdt:  - IDLE0 (CPU 0)
E (25458) task_wdt: Tasks currently running:
E (25458) task_wdt: CPU 0: btController
E (25458) task_wdt: CPU 1: IDLE1
E (25458) task_wdt: Print CPU 0 (current core) backtrace

Backtrace:0x401383FB:0x3FFBE8C0 0x40082E71:0x3FFBE8E0 0x40185A7D:0x3FFB5E90 0x4018602D:0x3FFB5EB0 0x4008FED5:0x3FFB5EE0

E (25458) task_wdt: Print CPU 1 backtrace

Backtrace:0x40081DC3:0x3FFBEEC0 0x40082E71:0x3FFBEEE0 0x4000BFED:0x3FFBC870 0x40090135:0x3FFBC880 0x4013869F:0x3FFBC8A0 0x401386AB:0x3FFBC8D0 0x40138761:0x3FFBC8F0 0x40090B0D:0x3FFBC910 0x4008FED5:0x3FFBC930

E (30458) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:
E (30458) task_wdt:  - IDLE0 (CPU 0)
E (30458) task_wdt: Tasks currently running:
E (30458) task_wdt: CPU 0: btController
E (30458) task_wdt: CPU 1: IDLE1
E (30458) task_wdt: Print CPU 0 (current core) backtrace

Backtrace:0x401383FB:0x3FFBE8C0 0x40082E71:0x3FFBE8E0 0x40185A7D:0x3FFB5E90 0x4018602D:0x3FFB5EB0 0x4008FED5:0x3FFB5EE0

E (30458) task_wdt: Print CPU 1 backtrace

Backtrace:0x40081DC3:0x3FFBEEC0 0x40082E71:0x3FFBEEE0 0x4000BFED:0x3FFBC870 0x40090135:0x3FFBC880 0x4013869F:0x3FFBC8A0 0x401386AB:0x3FFBC8D0 0x40138761:0x3FFBC8F0 0x40090B0D:0x3FFBC910 0x4008FED5:0x3FFBC930


HTML quote bug in the link

There is a minor issue with generating links in HTML.
If you add Audio file to the note and audio file has single quote "'" it will break HTML syntax for the link.
Let's Go.mp3

Thanks, this will soon be escaped as I clean up the rest of the HTML.

This is now fixed on master in 68d5e53b49f6a7a9b2f10aa3cc7c421ff54c6e58. Also fixed a bug wherein HTML tags were eaten if they appeared in the body of a note.


Not extracting all strings with _t

The plugin when running as a plugin in babelrc does not seem to be picking up all instances of _t. It in fact seems completely random on how many it will pick up. Sometimes 20, sometimes 50, 70, etc.

Hello
I never use the plugin with babelrc. I probably babelrc transpile only the part have changed so the plugin get only the string on the changed part. Could you confirm the issue ?

How do you use it?

With node or gulp or grunt or command line.

Switching to gulp I am still having the same problem

Do you have a test which I can see the issue ?

I don't, really.

Oh, never mind. I think it's working


Clarify when to use DELETE vs. TRUNCATE

Fixes #4088.
Summary of changes:

Update DELETE page to remove unnecessary TRUNCATE example, and add
a note saying to prefer TRUNCATE for tables >= 1000 rows.

Update TRUNCATE page to expand the initial description of its
behavior slightly, and to add a note saying to prefer DELETE for
tables with < 1000 rows.

Various small copy edits: typo fix; link update; whitespace.

This change is

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/cdab9702c530492e093f177ffe39e0c7b68c325a/

Direct links for easier reference (these are for the stable versions, but the "dev" versions have the same changes):

TRUNCATE
DELETE

Remove double space!

Fixed, thanks @lhirata

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/b9587a08576b8082ad1bebde599976d39291332f/

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/c9e36bc240503c75ead9f72e5fd90fa3f090f2c2/

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/33380e46a234e1434cd28a91602f49cb93093049/

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/81e7ad611063a031a1b1e3f872aec737b37114a7/

Just spoke with David and Vivek IRL - merging this.

@rmloveland, while you're here, would you please mention on the drop database, drop table, and truncate pages that you can view the progress of these operations via show jobs or the jobs page of the admin ui? Issue: https://github.com/cockroachdb/docs/issues/4103

Whoops, @rmloveland, I just realized my last comment was post-merge. Could you open a follow-up?