type check

/node_modules/marked/lib/marked.js:1215
    throw e;
          ^
TypeError: Cannot call method 'replace' of undefined
Please report this to https://github.com/chjj/marked.
    at Lexer.lex (/home/brandon/Development/GradProject/site-template/node_modules/marked/lib/marked.js:137:6)

It doesn't handle null and undefined well - it throws the error above.  I either:

use a wrapper function to return an empty string if the input is null or not defined
always pass an empty string to marked in such cases

I accounted for it in my code, thought you may be interested in covering it on your side because it can break an applications operation.  Not sure what your scope coverage is.
Close topic? Or mark for enhancement?
Brandon L. Clark
Graduate of CSU Fullerton | Software Engineering
P)<PHONE_NUMBER>
Links of Interest
http://themindcompany.net | CRM & CMS Framework in Development
http://www.themindspot.com | The Mind Company Information Site
-----Original Message-----
From: Matt Kopala<EMAIL_ADDRESS>Date: Sun, 08 Feb 2015 15:09:39
To<EMAIL_ADDRESS>Reply-To: chjj/marked<EMAIL_ADDRESS>Cc: Brandon L<EMAIL_ADDRESS>Subject: Re: [marked] type check (#543)
It doesn't handle null and undefined well - it throws the error above.  I either:

use a wrapper function to return an empty string if the input is null or not defined
always pass an empty string to marked in such cases

Reply to this email directly or view it on GitHub:
https://github.com/chjj/marked/issues/543#issuecomment-73438361


Getting 404 error on button "Auth for Resources" in damdemo.

I have deployed the GA4GH by using deploy.bash. It deploys SQL, GAE services easily but while clicking the "Auth for Resources" button getting 404 not found error (host-link https://damdemo-staging-dot-health-246205.uc.r.appspot.com/test). Are there any Oauth keys needed to be set up first.
There is also a 502 Bad Gateway error after clicking the log-in button in the icdemo-test link. (https://icdemo-staging-dot-health-246205.uc.r.appspot.com/test)
Also, if you can share the whole process doc it would be helpful.

Please go through this doc https://github.com/GoogleCloudPlatform/healthcare-federated-access-services/blob/master/deploy.md

@chaopeng I deployed the application with the above shred link, getting 404 and 502 errors as mentioned in the question.

I think your ic and dam not actually running, see  https://dam-staging-dot-health-246205.uc.r.appspot.com/dam. Did you go run prepare_project.bash to setup the project? other than that a log from stackdriver may help to see why ic/dam crash on start.

It is showing the error:
level=fatal msg="Unable to instantiate service registry." error="could not ping SQL connection: failed to connect to host=<IP_ADDRESS> user=hydra database=dam-staging: dial error (dial tcp <IP_ADDRESS>:1234: connect: connection refused)"
I've seen a few variables are defined in entrypoint.bash. Do I need to update those?

It seems like the cloudsql does not setup, you will need to run prepare_project.bash to setup the gcp project

dam-demo is showing the below error:
ERROR: (gcloud.beta.app.deploy) Error Response: [4] Your deployment has failed to become healthy in the allotted time and therefore was rolled back. If you believe this was an error, try adjusting the 'app_start_timeout_sec' setting in the 'readiness_check' section.
How can I check the logs or do I need to increase the timeout_sec?

@chaopeng cloud SQL is set up, but there is not any DB created with the name of dam-staging. May I know from where it is getting created?
SQL connection: failed to connect to `host=<IP_ADDRESS> user=hydra database=dam-staging`: server error (FATAL: database \"dam-staging\" does not exist (SQLSTATE 3D000))

Please run prepare_project.bash, or read the script for howto

I've gone through the prepare_project.bash there are only two databases getting created.
https://github.com/GoogleCloudPlatform/healthcare-federated-access-services/blob/b5db0b7ca103613add626bb5d5fd9dbf514a2135/prepare_project.bash#L106

@chaopeng I've created the DB.
Now getting the new errors,
log
'''
F0709 17:55:17.363760      18 dam.go:263] cannot load adapters: error creating AWS key warehouse: NoCredentialProviders: no valid providers in chain. Deprecated
For verbose messaging see aws.Config.CredentialsChainVerboseErrors
'''

@mbarkley I have never seen this before, it seems like @shuklashashank config has asw adapter, do you know what is related?

@chaopeng the AWS adapter does some initialization that fails fast if no AWS credentials are configured in the deployment environment. To solve this problem, we'd need to make one of the following code changes:

Lazy initialize the AWS adapter (this means we'd fail late for users that do want to use AWS)
Add configuration to disable the AWS adapter so that it is not initialized at all in adapters.go

@chaopeng Hi getting OAuth2 request resulted in an error. Can you help me with it, how can I configure this. where are the keys getting initialised.

@chaopeng Hi getting OAuth2 request resulted in an error. Can you help me with it, how can I configure this. where are the keys getting initialized?


Allow repository filtering API to express exclusivity

Context
Today, if you want to express that a dependency must be found only in one repository and not others, you have to:

declare an include for this dependency for the repository it should use
declare exclude for this dependency on all repositories it should not use

This can be cumbersome if there are lots of dependencies.
Some ideas:
Suggestion by @ldaley
content {
   exclusivelyIncludeGroup("org.foo") // means do not try to look other repositories for this group
}

Alternative name
content {
   singleSourceForGroup("org.foo") // means do not try to look other repositories for this group
}

Grouped exclusivity
content {
    exclusiveForOtherRepositories {
        includeGroup ...
    }
}

Note that this can become a bit complicated if you have conflicts, in particular between regex include/excludes and repositories. Then it becomes order dependent...
We cannot rely on declarations at the dependency usage site, because repositories are used at the consumer side (both for reproducibility and security). Meaning that we cannot have:
dependencies {
     implementation("...") from jcenter()
}

Because this creates a whole category of new problems (what if a transitive says nothing? What if a transitive has a different version? What if a transitive says a different repo? What if a repo is spoofed?)

Also note that the consequence of not adding excludes on other repositories is that depending on the order of repositories, we would search for the dependency in other repositories first, which can have both a performance and security impact.

Given that this is a request to express content information across repositories, another idea could be to provide DSL entry points directly on repositories:
repositories {
    mavenCentral()
    maven {
        name = "foo"
        url = uri("http://repo.foo.com/")
    }
    singleRepoGroup('com.foo', 'foo') // Name subject to discussion ;-)
    singleRepoGroup('org.apache', 'MavenRepo') //Default name of Maven Central
    // And similar methods for the other interesting concepts like that
}

PR: #11763


Improve code boxes highlighting

Currently code is not rendered properly.
Preview
We have to add that so that code tutorials visibility is better. Good example is what LDK does   or what BTCPay Server does

Code highlighting can be enabled by adding a language after the markdown triple backticks - https://prismjs.com/#supported-languages
I only see code snippets in your recent PR - https://github.com/stratum-mining/stratumprotocol.org/pull/142

@pavlenex any assistance required on this one? or is it gonna covered in one of your open PRs?

@Abhijay007 I just got help from @dennisreimann on this one ,he suggested this, which I'll now add in my PR #142
code {
  font-size: .9em;
  background-color: #282c34;
  padding: .2em .4em;
  border-radius: .5em;
}


Cursor based iteration

Maintenance tasks has been amazing for processing backfills etc across whole tables for us. But we often have tasks that need to operate on a subset of records, too. But ActiveRecord batch enumeration is forced to walk by primary key, and that tends to plan and execute poorly on large tables when the filter conditions address <~50% of the rows.
I would love to use arbitrary cursor-based pagination, not restricted to the primary key. With the landing of string cursors (#339; amazing, thank you!) and job-iteration's support for active record cursor enumeration, is the appetite to pursue cursor-based and/or custom enumeration strategies? Can we contribute to these efforts?

How do you think you would declare a collection to be iterated with cursor enumeration? Currently we have ActiveRecord::Relation => enumerator_builder.active_record_on_records => JobIteration::ActiveRecordEnumerator =>  JobIteration::ActiveRecordCursor
or
ActiveRecord::Batches::BatchEnumerator => enumerator_builder.active_record_on_batch_relations => JobIteration::ActiveRecordBatchEnumerator.
What kind of object would we return from collection? I guess we'd need to use a class method and the collection builder strategy to handle a ActiveRecord::Relation differently?

https://github.com/Shopify/maintenance_tasks/releases/tag/v2.6.0 includes that change.
Can this be closed?


Add port for Skyr URL library

This port is for Skyr URL, and corresponds to issue #10462

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: glynos sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

/azp run

/azp run

@glynos Thanks for your PR. This port build failed on CI test. You can click the Detail to get the error log on CI test. Could you continue to fix this PR?

Hello,
The only remaining error I need to fix is described in this log:
/ci/myagent/_work/1/s/buildtrees/skyr-url/install-x64-linux-dbg-out.log

in the "test modified ports" step. Could you tell me how I can access that?
Many thanks for your help.

You can click 1 artifact to get the error log as below:

Thanks for all your help. I've updated my own code, but now the CI failures all seem to be coming from another library that I don't control:
https://dev.azure.com/vcpkg/public/_build/results?buildId=32447&view=logs&j=275f1d19-1bd8-5591-b06b-07d489ea915a&t=a4822bc1-f3a9-5984-c941-6c1b7aa2ab81&l=18

Thanks for all your help. I've updated my own code, but now the CI failures all seem to be coming from another library that I don't control:
https://dev.azure.com/vcpkg/public/_build/results?buildId=32447&view=logs&j=275f1d19-1bd8-5591-b06b-07d489ea915a&t=a4822bc1-f3a9-5984-c941-6c1b7aa2ab81&l=18

It is not a related error with this PR. This is CI baseline issue, the related PR #10603.

Thanks for the explanation. What do I need to do for this PR? Wait until that one is fixed and try again?

/azp run

Thanks for the PR!


Error while processing image

Program throws an error on Ubuntu 18.4.4

Thanks for raising this issue!
It seems that you have 2 files in the directory but one of them is not an image file. If that is the case, simply remove that file should fix the error. I will make a patch to ignore any non-image file in the directory.


Why is there a drastic difference in search time between lucenenet in c# and lucene in java while the other statistics are roughly comparable?

I have implemented a Lucene POC in Java and dotnet. The stats are roughly comparable except for the search time(time required to get the matching docs). Java application roughly takes 9-10 seconds whereas Dotnet took 52 minutes. I have indexed 99000 documents which comprise of pdf,docs,txt and etc. Indexing for both of the POCs was performed on the same files. Is this disparity in search time expected due to the java version being superior or is there some error in my coding for lucenedotnet ?

this is interesting, but this such a different doesn't make scene.
10 seconds to 52 minutes (~180K seconds) is not reasonable in any way.
so this is probably a typo, but still, even 5X difference is not realistic.
i think you should re-test your program.
i do believe there are many places we can optimize Lucene and do even better than java thanks to better capabilities of dot net.

This certainly sounds oversuspicious, we have an index with over a million documents, each with thousands of fields.
If i do a free text search (meaning it accesses all fields) starting and ending with a wildcard (eg. a), which is probably the worst case scenario I can think of, it takes merely ~50 seconds, that is including loading the actual 9 megabytes of data the search produces and returning it over the wire. (not completely satisfying, but considering the punishment I just directed at the index + wire, it's somewhat understandable)...

Without seeing your test, there is not a lot I can tell you. You didn't even mention what versions of Lucene/Lucene.NET you are testing. Of course, the only apples to apples way to test this would be either to run:

Lucene.NET 3.0.3 against its closest counterpart in Lucene, 3.0.1
Lucene.NET 4.8.0 against Lucene 4.8.0

Since Lucene 4.8.0 was designed to run with Java 6, you would also need to get a copy of a Java 6 runtime to run it on. And since Java 6 is not available for download from any official source anymore, I strongly suspect you are not doing either of these exact version tests on the version of Java it was designed to run on.
Do note that we have recently set up benchmarks across each of the betas, and we have approximately doubled search performance since 4.8.0-beta00007, so if you are testing on an older beta you will definitely see performance degradation.
Of course, it is possible you have stumbled upon a severe bottleneck in a specific Analyzer, Tokenizer, Codec, Query, or other component, but again, without seeing the code there isn't much we can do. Could you post this POC somewhere in a form where it can be run in both Java and .NET without too much extra configuration, and some setup instructions to get it up and running?

Hi,
Sorry for not giving the specifics of the POC that I made. They are as follows:
Lucene java version 8.6.0
Lucenenet ver 3.03
Unfortunately, I am using multiple for text extraction thus requiring some additional configuration. What I can do is post the index creation and search code snippet that I used for Lucenenet. Would that be enough? I won't be posting the Java version as its working fine and I do not need help with that but do let me know if you need that too.

Considering that your request concerns a "Difference" between the two, posting both is still relevant if anyone is to help you with spotting any notable difference in the two implementations...
Other things that might prove interesting is:

Storage information (Storage can in many cases be a bottleneck, this can especially be the case if you store and retrieve the documents in the index...)
Index size (Both for Java and .NET) - That is the files in the index.
Memory Capacity and Footprint (Both for Java and .NET)

That being said... Currently 4.8 have full focus, so you may ultimately be better of asking this on forums such as StackOverflow etc.
If there is a severe bottleneck in Lucene.NET 3.0.3 I very much doubt that the team will be addressing that problem at this point though, instead full focus is given to get the 4.8 version out and then likely point to that as a solution instead - Obviously if the problem can be replicated on Lucene.NET 4.8.0 then it will be addressed.
But posting your code and any other information you could think of that was relevant here and/or in a StackOverflow question could mean someone could point to something that is not done in a optimal way. As i said above, we have over 4 times the documents and a huge amount of fields, and I can't even get near what you describe even with the most evil queries I can imagine.

Since this is not really a fair comparison (4.x+ is a completely different design than 3.x) and as others pointed out there is probably something misconfigured or misused to see results like what you are seeing, I am considering this matter closed. But as @jeme pointed out, you might be more successful getting help with the issue if you post some code.
However, since this seems to be more of a usability issue than an actual bug, it doesn't belong here, either ask on StackOverflow or on the user mailing list.


Adding links to TF SavedModels for Megadetector V3

Just merged, thanks @beerys! Feel free to delete the branch

Deleting this branch.


STYLE: Remove private ObjectFactoryBase member RegisterInternal()

ObjectFactoryBase::RegisterInternal() was only called by Initialize() anyway.
Avoided a redundant itkInitGlobalsMacro(PimplGlobals) call, and replaced clear and push_back calls by a simple assignment to m_RegisteredFactories.

FYI, the last force-push has just split the changes from one commit to two, hoping to ease further processing.

@blowekamp could you also review?


[QUERY]How to replace IMessageSession.ReceiveAsync() in new Azure.Messaging.ServiceBus?

Library name and version
Microsoft.Azure.WebJobs.Extensions.ServiceBus 5.2.0
Query/Question
Hi,
When trying to update code that use Microsoft.Azure.WebJobs.Extensions.ServiceBus" Version="4.1.1" to new 5.2.0. There are some differences.
code when using version 4.1.1
public async static Task RunAsync([ServiceBusTrigger("%queuename%", Connection = "ServiceBusStorageConnectionString", IsSessionsEnabled = true)]
        Message message, IMessageSession messageSession,
            ILogger log)
        {
            var msgs=await messageSession.ReceiveAsync(10);

code when using version 5.2.0
public async static Task RunAsync([ServiceBusTrigger("%queuename%", Connection = "ServiceBusStorageConnectionString", IsSessionsEnabled = true)]
        ServiceBusReceivedMessage message, ServiceBusSessionMessageActions messageSession,
            ILogger log)

How to call: messageSession.ReceiveAsync() now?
Environment
Net core 3.1

Thank you for your feedback.  Tagging and routing to the team member best able to assist.

Hello team, could we have an update for this?

@caiyiJu, can you explain why you want to receive another message from your function? The function already executes whenever a message is received.

@JoshLove-msft As batch and concurrent session cannot be used together per the documentation. Will it be more efficient if we receive another message at the same time? By the way, could you explain why the method is removed if there is no such method in the new version? This will also be helpful to understand the usage.

maxConcurrentSessions
8
The maximum number of sessions that can be handled concurrently per scaled instance. This setting only applies for functions that receive a single message at a time.

I think using the function in that way to receive additional messages is a workaround for what you would really want - session concurrency when using batch receive, right? If that's the case, I'd rather attempt to address this by extending maxConcurrentSessions to work for functions that take an array of messages.

@JoshLove-msft  Thanks for your update. If session concurrency when using batch receives is possible, it would be great. If not, please help to explain how to receive additional messages in the new sdk version. Or why it is removed from the new sdk version.

@JoshLove-msft Hello, is there any update?

Hi @caiyiJu,
We are investigating how best to implement this feature. We will either add the concurrency support for batch receiving or expose the receive method. We are planning to work on this in March and hope to ship an update in April.

@JoshLove-msft I've forgotten to tag You. Can You provide me an answer?

Still investigating this. We may need to expose the receive method here.

@grzegorz-w13 @caiyiJu - would you expect that the options configured for the processor also apply to messages that are received here? For instance, should messages be received from within your function also have the message locks autorenewed and be autocompleted? Or do you expect that these should be managed independently?

@JoshLove-msft
If there is an option of autorenew and autocompletion it would be great! Currently I have to do it manually and it would be perfect to have it given out of the box. In my process I'd like to treat them in more-less transactional way. If I'm not able to get them all before timeout - abandon them all and try again later - if I receive them all I can process them and complete them once function ends.

@JoshLove-msft
Hi!
Is it possible that ServiceBusTrigger which uses sessions and ServiceBusReceivedMessage[] in future will be executed in parallel?
Since we can have multiple active sessions at the same time why we cannot have concurrent function calls for them at the same time?


redis-operator release v0.1.0

Signed-off-by: Abhishek Dubey<EMAIL_ADDRESS>New Submissions

[X] Does your operator have nested directory structure?

[ ] Have you selected the Project # New Submissions

[X] Does your operator have nested directory structure?

[X] Have you selected the Project Community Operator Submissions in your PR on the right-hand menu bar?

[X] Are you familiar with our contribution guidelines?

[X] Have you packaged and deployed your Operator for Operator Framework?

[X] Is your submission signed?

Updates to existing Operators

[ ] Is your new CSV pointing to the previous version with the replaces property?
[ ] Is your new CSV referenced in the appropriate channel defined in the package.yaml ?
[ ] Have you tested an update to your Operator when deployed via OLM?
[ ] Is your submission signed?

Your submission should not

[X] Modify more than one operator
[X] Modify an Operator you don't own
[X] Rename an operator - please remove and add with a different name instead
[X] Submit operators to both upstream-community-operators and community-operators at once
[X] Modify any files outside the above mentioned folders
[X] Contain more than one commit. Please squash your commits.

Operator Description must contain (in order)

[X] Description about the managed Application and where to find more information
[X] Features and capabilities of your Operator and how to use it
[X] Any manual steps about potential pre-requisites for using your Operator

Operator Metadata should contain

[X] Human readable name and 1-liner description about your Operator
[X] Valid category name1
[X] One of the pre-defined capability levels2
[X] Links to the maintainer, source code and documentation
[X] Example templates for all Custom Resource Definitions intended to be used
[X] A quadratic logo

Is this issue is because of my code?

Hi @iamabhishek-dubey, yes it is probably problem with spec.replaces you have there as value only empty string, please remove the replaces field and it could help if is no other problem there

@ssimk0 , Can you merge this PR now?

@iamabhishek-dubey sure thanks for contribution

@ssimk0 I can't see my operator on operatorhub.io. Will it take some time or I missed anything?

@iamabhishek-dubey I see it there check it now


[ZK filter] Add missing operation supports for multi opcode

Commit Message: [ZK filter] Add missing operation supports for multi opcode
Additional Description: The ZK filter did not support some operations for the multi opcode based on the ZK source code. This could lead to decode errors. This PR tries to fill this gap.
Risk Level: Low
Testing: Unit tests
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A

cc @JuniorHsu, please review if you have a chance, thank you!

only one nits. I'm going to urge you to express what OP code is supported by this PR instead of one single link in the description

Just updated the desc with more details and addressed your comments, PTAL!

/retest


Add an easy way to set up a custom prompt displaying node version

Related to #2849 and the pyenv project again. 😄
I can't say I feel very confident changing my shell custom prompt (PS1), or that I will like what I come up with. However, pyenv's integration did this for me, and I love it.
It would be nice for nvm to do the same. I'm sure there are some classy prompts out there in the world - even documenting best practice / recommended setup would be great. Better yet - a way to make this an easy addition for folks could be useful.
IIRC the way pyenv does it:

if there is a local .python_version file, display the version in the shell

(python-virtualenv-name) ➜  directory-name git:(branch) ✗

if not, do not display the version (so it does not clutter up other, non-python projects)

i.e. so I would expect this would only happen when the following message is displayed:
Found '/Users/colearendt/my/app/.nvmrc' with version <v16>

It would be far too intrusive for nvm to do this for you - folks' prompts are usually highly customized, and messing with that is way more trouble than it's worth.
My personal prompt includes a \[\033[0;31m\]$(command type nvm >/dev/null 2>&1 && printf " " && nvm current)\[\033[0m\] which adds the colorized current nvm version, when present.
I don't think there's any appropriate shortcut for learning how to set your own PS1.

Thanks for the reference! That makes sense. Is that something you'd be willing to add to documentation or accept a PR doing so? Or better to just leave for users to sort out themselves?
I did a bit more digging and found a bit of entertaining trivia:

this functionality actually seems to come from pyenv-virtualenv
this functionality has been deprecated for almost a decade? 😮 Not sure how I have missed this message for so long. 🤷

I usually add PS1="(nvm-\$(nvm current)) $PS1"  to my ~/.bashrc right after nvm activation scripts. It keeps any existing prompt set by other applications like Git, Python.

I think if there's a well-maintained guide to customizing your PS1, it's fine to link to it, but I also think that it's probably not something that someone should be doing if they also can't figure out how to Google for it :-)


add install instructions. fix #184

this seems to work as intended.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Coverage remained the same at 85.599% when pulling ff72b45204ec854565fa8a8bb6260f96b469718b on Dieterbe:clearer-install into 8a787bbdd6d5d8cf5725c6e38a2290b39fa7fd87 on uber:master.

Coverage remained the same at 85.599% when pulling 90dfc10666d33cf83ab911840c67879c2d6bb873 on Dieterbe:clearer-install into 8a787bbdd6d5d8cf5725c6e38a2290b39fa7fd87 on uber:master.

Thanks @Dieterbe


question: mimalloc shows significant presense on cpu profiler graph

I am almost sure it's expected - it happens during a very active memory growth phase. Still, I would like to double-check that there is nothing that can be tuned in order to reduce the CPU usage of these routines. We are using v2.0.5

Very interesting (can you tell me how I can generate such graphs myself?).
In a growth phase it is a bit expected to see this of course; I am a bit surprised by the page_extend taking so much time... You may go into src/page.c and redefine MI_MAX_EXTEND_SIZE to be, say, 8*1024 (twice as large as now). Let me know if it makes a difference.
Second, the _mprotect calls are quite expensive :-(. this is used to commit the memory so you may experiment by setting MI_EAGER_COMMIT_DELAY=0 so the segments get committed completely upfront. (this will still allow fine grained decommit/commit later on to battle fragmentation).  Can you see if that makes a difference? Otherwise I am surprised by that many commits; did you change the decommit delay?

Yes, I use https://github.com/gperftools/gperftools that provides a cpu profile and tcmalloc when linking with your executable. I configure it without tcmalloc functionality and use it as CPU profiler only: https://gperftools.github.io/gperftools/cpuprofile.html
then pprof from https://github.com/google/pprof  can take a prof file generated by cpu profiler can generate such graphs or flamegraphs.
Another option is to use linux perf tool and create flamegraphs with, say, this tool:
https://github.com/flamegraph-rs/flamegraph

we set decommit_delay to zero but in this particular use-case we almost do not have decommits (only growth).

I fixed a bug in dev-slice that would decommit eagerly committed memory -- thanks! Maybe this will decrease the mprotect percentage? Can you try again with the latest dev-slice?


Added changelog danger rule

Checklist

[ ] New Extension
[ ] New Test
[ ] Changed more than one extension, but all changes are related
[x] Trivial change (doesn't require changelog)

          2 Messages

:book:
Executed 161 tests, with 0 failures (0 unexpected) in 4.431 (4.747) seconds

:book:
Executed 149 tests, with 0 failures (0 unexpected) in 4.102 (4.305) seconds

  Generated by :no_entry_sign: danger


Remove IDisposable from LayoutRenderer

NLog has its own initialization system provided by ISupportsInitialize.
Instead of giving code-analysis warning to everyone about "Types that own disposable fields should be disposable".
Intended for NLog 5.0

Sounds good!


Driver may not close properly when running multiple sessions

Currently, org.neo4j.jdbc.bolt.cache.BoltDriverCached keeps track of the number of sessions the underlying Java driver opens.
Upon closure, org.neo4j.jdbc.bolt.cache.BoltDriverCached prevents its own eviction from the driver cache and the underlying Java driver closure if there are any open sessions.
However, the problem is that the counter is never decremented when a session closes. As soon as org.neo4j.jdbc.bolt.cache.BoltDriverCached is used for more than 1 session, it will leak itself and its underlying driver since they both will never close.

Not applicable anymore for Version 6.


Fixes #t1164 - Adds links to shared eresources

@cummingsm This is ready to merge, but I would feel better if someone did a quick test in IE to confirm the offers padding and display change didn't mess anything up.

@lwrubel I checked out this branch an viewed it in IE Ver. 11, Looks OK


Instructions for Windows Container mounting incorrect

This topic gives instructions for mounting Azure file shares under Windows containers.
The topic says use C:directoryname but that does not work.
I'm running this command using the Azure CLI DevOps task and I've tried all these combinations:
C:datafiles
C:\datafiles
C:/datafiles
/datafiles
\datafiles
Only /datafiles and \datafiles doesn't get an error and "appears" to work - but there is no folder anywhere.
Can you please help me by clarifying the documentation with a real example? I have a client blocked by this.
Thanks in advance.
Jayme

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 3cd70fac-5d7c-7637-8385-f3f4af3ba0ad
Version Independent ID: 15d95fc5-f08e-a26c-ce06-8ead78474661
Content: Add Azure Storage (container) - Azure App Service
Content Source: articles/app-service/configure-connect-to-azure-storage.md
Service: app-service
GitHub Login: @msangapu-msft
Microsoft Alias: msangapu

@eavonius Thanks for the feedback! We are currently investigating and will update you shortly.

@eavonius Thanks for asking question! If you want to link storage to your Windows container app you need to be created your Azure Storage account, file share and directory.
Also note that Name of directory must be no more than 255 characters in length, and must not contain the following characters: " \ / : | < > * ?
To elaborate on Mount path is the path within your file share that you'd like to mount. If you want to mount the entire file share, enter "/". Otherwise, specify the directory path you'd like to mount.
Please note that Mount path must be a fully qualified path and can only include alphanumeric characters, underscores, hyphens, forward slashes, square brackets, and parenthesis
You may refer this blog and article here might be helpful.
Disclaimer: This response contains a reference to a third-party World Wide Web site. Microsoft is providing this information as a convenience to you.

@eavonius To add to above: You may refer to below CLI command sample for this:
az webapp config storage-account add --resource-group vsoto-cli-ps-tests --name vsoto-test-cli-3 --custom-id myOtherMount --storage-type AzureFiles --share-name testforcli --account-name vsotoxenontest.file.core.windows.net --access-key "<>" --mount-path "/datafilesFromCli
If using /datafiles and didn’t receive any error you may take a look in logs from kudu to see if there is any error when the container is restarting (mounting a new folder makes the container restart).
Below is screenshot settings from Portal:

Thanks again for bringing this to our attention. Your feedback has been shared with the content owner @cephalin on this.

Thanks for the clarification,
I think I may have figured out what the issue is.
I'm running this command on an AppService that uses Windows, if I pass unix
type paths, it succeeds but I never see anything.
Is this only supported in Docker instances or Linux containers?
I'd really like to be able to use Azure File shares mounted to a Windows
App Service, but either I'm still not configuring it right or maybe it's
not just supported?
I guess the big clue for me was I thought the mount path was where on the
App Service you wanted to mount the share (not a folder within the share).
Thanks for any additional clarification. Appreciate the patience and help.
Jayme
On Fri, Aug 14, 2020 at 12:22 AM SnehaAgrawal-MSFT<EMAIL_ADDRESS>wrote:

@eavonius https://github.com/eavonius To add to above: You may refer to
below CLI command sample for this:
az webapp config storage-account add --resource-group vsoto-cli-ps-tests
--name vsoto-test-cli-3 --custom-id myOtherMount --storage-type AzureFiles
--share-name testforcli --account-name
vsotoxenontest.file.core.windows.net --access-key "<>" --mount-path
"/datafilesFromCli
If using /datafiles and didn’t receive any error you may take a look in
logs from kudu to see if there is any error when the container is
restarting (mounting a new folder makes the container restart).
Below is screenshot settings from Portal:
[image: image]
https://user-images.githubusercontent.com/46553948/90216434-1c17e500-de1c-11ea-8d56-de644c461a17.png
Thanks again for bringing this to our attention. Your feedback has been
shared with the content owner @cephalin https://github.com/cephalin on
this.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/azure-docs/issues/60754#issuecomment-673890264,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAC2ZJLSIRFSIQ7M3HB677DSATCYNANCNFSM4P5LJXPA
.

@eavonius Thanks for reply!  To mount an Azure Files Share to a directory in your App Service app there are below pre-requisites for it.
•	An existing Windows Container app in Azure App Service
•	Create Azure file share
•	Upload files to Azure File share
Please make sure above is fulfilled, also to clarify further this is supported on Windows. You may try using --mount-path as “/foldername” instead of “C:\foldername”
Please follow below CLI command sample for right configuration.
az webapp config storage-account add --resource-group vsoto-cli-ps-tests --name vsoto-test-cli-3 --custom-id myOtherMount --storage-type AzureFiles --share-name testforcli --account-name vsotoxenontest.file.core.windows.net --access-key "<>" --mount-path "/datafilesFromCli

So basically we can't mount Azure file shares to App Services unless
they're deployed from Docker?
Is that correct? Does Microsoft have a solution for offering file share
access to App Services that aren't in Docker images, or is that the only
way?
Thank you,
Jayme
On Mon, Aug 17, 2020 at 5:34 AM SnehaAgrawal-MSFT<EMAIL_ADDRESS>wrote:

@eavonius https://github.com/eavonius Thanks for reply! To mount an
Azure Files Share to a directory in your App Service app there are below
pre-requisites for it.
• An existing Windows Container app in Azure App Service
https://docs.microsoft.com/en-us/azure/app-service/quickstart-custom-container?pivots=container-windows
• Create Azure file share
https://docs.microsoft.com/en-us/azure/storage/files/storage-how-to-use-files-cli
• Upload files to Azure File share
https://docs.microsoft.com/en-us/azure/storage/files/storage-files-deployment-guide
Please make sure above is fulfilled, also to clarify further this is
supported on Windows. You may try using --mount-path as “/foldername”
instead of “C:\foldername”
Please follow below CLI command sample for right configuration.
az webapp config storage-account add --resource-group vsoto-cli-ps-tests
--name vsoto-test-cli-3 --custom-id myOtherMount --storage-type AzureFiles
--share-name testforcli --account-name
vsotoxenontest.file.core.windows.net --access-key "<>" --mount-path
"/datafilesFromCli
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/azure-docs/issues/60754#issuecomment-674802546,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAC2ZJJ55IU5DJJAOZB7FDLSBEBSBANCNFSM4P5LJXPA
.

My client has Microsoft premier support, and I guess we can file a support request if I can't get guidance here. But I guess what I'm surprised about is a) Windows Containers on App Service says its "In Preview" and mounting file storage to a container is also "In Preview".
My experience with Azure up to this point has been excellent for years. I guess I'm surprised to find there's no production supported way of providing simple file storage for App Services?

@eavonius Apologize for the inconvenience with this issue! Could you please send an email to AzCommunity[at]Microsoft[dot]com referencing this thread, we would like to work closer with you on this matter.

@eavonius Thanks for sending email! Since working with you internally, will close this issue here.


audio: migrate to SPDX identifier

Summary
Most tools used for compliance and SBOM generation use SPDX identifiers.
This change brings us a step closer to an easy SBOM generation.
Impact
Compliance
Testing
NONE

will we migrate the license in all source code to SPDX?

@xiaoxiang781216 I have multiple patches waiting.

@btashton any concerns?

@xiaoxiang781216 zephyr RTOS uses the same SPDX license indetifier
https://github.com/zephyrproject-rtos/zephyr/blob/main/arch/sparc/CMakeLists.txt

I am fine with the change if no policy issue.

Maybe @hartmannathan can help because he is a long date ASF associated guy.

Maybe @hartmannathan can help because he is a long date ASF associated guy.

There have been discussions around the Foundation about things like SBOM and other compliance. I don't remember if there was a consensus about SPDX specifically. I'll search for the information and then I'll come back here to let you know what I find.

@hartmannathan Thanks for looking into it. Zephyr RTOS is setting the SBOM trend and I am trying not to lag behind. I already started the work for our project and I bet that many other projects will follow since SBOM will be come mandatory soon.

@hartmannathan Thanks for looking into it. Zephyr RTOS is setting the SBOM trend and I am trying not to lag behind. I already started the work for our project and I bet that many other projects will follow since SBOM will be come mandatory soon.

@jerpelea After quite some searching, I can't seem to find the discussion about using SPDX. I also looked through some other projects and all the ones I saw are using the long-form header text. Also, I looked through the Foundation's published policies. Although it says that 3rd parties (non-ASF) who want to use the Apache-2.0 license can use the short-form SPDX identifier (see here), that's immediately followed by the text "Note that the Apache Software Foundation uses a different source header that is related to our use of a CLA. Our instructions for our project's source headers are here." Following that link, it says we have to use the long-form header, like we are already doing.
My suggestion is to do as @btashton wrote earlier and add the SPDX identifier below the required header text. I recommend having at least a blank line in between. I saw your comment that it doesn't make sense to have both, but I think it's a reasonable compromise until the Foundation publishes a different policy. If you feel strongly about it, we can ask legal, but it may take some time to get a definitive answer.

@hartmannathan please ask legal. Considering the high number of involved files and licenses it is better to wait and have clarification for all projects that will soon need this change.

@hartmannathan please ask legal. Considering the high number of involved files and licenses it is better to wait and have clarification for all projects that will soon need this change.

@jerpelea I'll compose a message for legal later today.

@hartmannathan thanks

@hartmannathan do we have any update from legal ?

@hartmannathan Thanks for looking into it. Zephyr RTOS is setting the SBOM trend and I am trying not to lag behind. I already started the work for our project and I bet that many other projects will follow since SBOM will be come mandatory soon.

@jerpelea After quite some searching, I can't seem to find the discussion about using SPDX. I also looked through some other projects and all the ones I saw are using the long-form header text. Also, I looked through the Foundation's published policies. Although it says that 3rd parties (non-ASF) who want to use the Apache-2.0 license can use the short-form SPDX identifier (see here), that's immediately followed by the text "Note that the Apache Software Foundation uses a different source header that is related to our use of a CLA. Our instructions for our project's source headers are here." Following that link, it says we have to use the long-form header, like we are already doing.
My suggestion is to do as @btashton wrote earlier and add the SPDX identifier below the required header text. I recommend having at least a blank line in between. I saw your comment that it doesn't make sense to have both, but I think it's a reasonable compromise until the Foundation publishes a different policy. If you feel strongly about it, we can ask legal, but it may take some time to get a definitive answer.

@btashton
the SPDX license identifier has been updated according to legal guidance
please review
Best regards
Alin


Bluetooth: Mesh: Rx buffer exhaustion causes deadlock

In the Bluetooth Mesh environment, the following conditions caused a deadlock:

Advertising data reporting causes the Rx buffer to be exhausted
The Mesh protocol stack invoke the ACL to send data. It blocks the RX thread because it waits for the ACL numCompleted event.
The HCI driver cannot report the numCompleted event because the Rx buffer is exhausted, and the Rx thread cannot release the Rx buffer because it is blocked.

rx_thread call stack:
#0  __swap (key=0, key@entry=16965509) at /home/ubuntu/zephyr/arch/arm/core/swap.c:68
#1  z_swap_irqlock (key=16965509) at /home/ubuntu/zephyr/kernel/include/kswap.h:128
#2  z_swap (key=..., lock=0x2000346c <k_sys_work_q>) at /home/ubuntu/zephyr/kernel/include/kswap.h:145
#3  z_pend_curr (lock=lock@entry=0x2000346c <k_sys_work_q>, key=<EMAIL_ADDRESS>wait_q=wait_q@entry=0x0, timeout=timeout@entry=-1) at /home/ubuntu/zephyr/kernel/sched.c:448
#4  z_impl_k_sem_take (sem=sem@entry=0x0, timeout=timeout@entry=-1) at /home/ubuntu/zephyr/kernel/sem.c:160
#5  k_sem_take (timeout=-1, sem=0x0) at /home/ubuntu/zephyr/samples/bluetooth/mesh_test_platform/build/xxxx/zephyr/include/generated/syscalls/kernel.h:103
#6  bt_att_send (conn=0x0, conn@entry=0x20000ae4 , buf=buf@entry=0x200083a8 <net_buf_acl_tx_pool+48>,  cb=cb@entry=0x0) at /home/ubuntu/zephyr/subsys/bluetooth/host/att.c:2222
#7  gatt_notify (conn=conn@entry=0x20000ae4 , handle=, data=0x0, data@entry=0x20004980 <rx_thread_stack+3120>, len=len@entry=28, cb=cb@entry=0x0) at /home/ubuntu/zephyr/subsys/bluetooth/host/gatt.c:1167
#8  bt_gatt_notify_cb (conn=conn@entry=0x20000ae4 , attr=0x20009320 <proxy_attrs+80>,  attr@entry=0x2000930c <proxy_attrs+60>, data=0x20004980 <rx_thread_stack+3120>, len=, func=func@entry=0x0) at /home/ubuntu/zephyr/subsys/bluetooth/host/gatt.c:1379
#9  bt_gatt_notify (len=, data=, attr=0x2000930c <proxy_attrs+60>, conn=0x20000ae4 ) at /home/ubuntu/zephyr/include/bluetooth/gatt.h:759
#10 proxy_send (conn=conn@entry=0x20000ae4 , data=, len=) at /home/ubuntu/zephyr/subsys/bluetooth/host/mesh/proxy.c:893
#11 proxy_segment_and_send (conn=conn@entry=0x20000ae4 , type=type@entry=0 '\000', msg=msg@entry=0x20004974 <rx_thread_stack+3108>) at /home/ubuntu/zephyr/subsys/bluetooth/host/mesh/proxy.c:918
#12 bt_mesh_proxy_send (conn=0x20000ae4 , type=type@entry=0 '\000', msg=msg@entry=0x20004974 <rx_thread_stack+3108>) at /home/ubuntu/zephyr/subsys/bluetooth/host/mesh/proxy.c:955
#13 bt_mesh_proxy_relay (buf=buf@entry=0x200086b4 <net_buf_adv_buf_pool+56>, dst=) at /home/ubuntu/zephyr/subsys/bluetooth/host/mesh/proxy.c:878
#14 bt_mesh_net_send (tx=tx@entry=0x20004a64 <rx_thread_stack+3348>, buf=buf@entry=0x200086ac <net_buf_adv_buf_pool+48>, cb=0x1030210 <seg_sent_cb>, cb_data=cb_data@entry=0x200001d8 <seg_tx>) at /home/ubuntu/zephyr/subsys/bluetooth/host/mesh/net.c:885
#15 send_seg (net_tx=net_tx@entry=0x20004a64 <rx_thread_stack+3348>, sdu=sdu@entry=0x20004a90 <rx_thread_stack+3392>, cb=cb@entry=0x0, cb_data=cb_data@entry=0x0) at /home/ubuntu/zephyr/subsys/bluetooth/host/mesh/transport.c:411
#16 bt_mesh_trans_send (tx=tx@entry=0x20004a64 <rx_thread_stack+3348>, msg=msg@entry=0x20004a90 <rx_thread_stack+3392>, cb=cb@entry=0x0, cb_data=cb_data@entry=0x0) at /home/ubuntu/zephyr/subsys/bluetooth/host/mesh/transport.c:507
#17 model_send (model=model@entry=0x20008a6c <root_models>, tx=tx@entry=0x20004a64 <rx_thread_stack+3348>, implicit_bind=implicit_bind@entry=false, msg=msg@entry=0x20004a90 <rx_thread_stack+3392>, cb=cb@entry=0x0, cb_data=cb_data@entry=0x0) at /home/ubuntu/zephyr/subsys/bluetooth/host/mesh/access.c:638
#18 bt_mesh_model_send (model=model@entry=0x20008a6c <root_models>, ctx=ctx@entry=0x20004be8 <rx_thread_stack+3736>, msg=msg@entry=0x20004a90 <rx_thread_stack+3392>, cb=cb@entry=0x0, cb_data=cb_data@entry=0x0) at /home/ubuntu/zephyr/subsys/bluetooth/host/mesh/access.c:654
#19 dev_comp_data_get (model=0x20008a6c <root_models>, ctx=0x20004be8 <rx_thread_stack+3736>, buf=) at /home/ubuntu/zephyr/subsys/bluetooth/host/mesh/cfg_srv.c:198
#20 bt_mesh_model_recv (rx=rx@entry=0x20004be4 <rx_thread_stack+3732>, buf=buf@entry=0x20004b28 <rx_thread_stack+3544>) at /home/ubuntu/zephyr/subsys/bluetooth/host/mesh/access.c:579
#21 sdu_recv (rx=rx@entry=0x20004be4 <rx_thread_stack+3732>, seq=1, hdr=, aszmic=aszmic@entry=0 '\000', buf=buf@entry=0x20004bfc <rx_thread_stack+3756>) at /home/ubuntu/zephyr/subsys/bluetooth/host/mesh/transport.c:627
#22 trans_unseg (buf=buf@entry=0x20004bfc <rx_thread_stack+3756>, rx=rx@entry=0x20004be4 <rx_thread_stack+3732>, seq_auth=seq_auth@entry=0x20004bc0 <rx_thread_stack+3696>) at /home/ubuntu/zephyr/subsys/bluetooth/host/mesh/transport.c:898
#23 bt_mesh_trans_recv (buf=buf@entry=0x20004bfc <rx_thread_stack+3756>, rx=rx@entry=0x20004be4 <rx_thread_stack+3732>) at /home/ubuntu/zephyr/subsys/bluetooth/host/mesh/transport.c:1400
#24 bt_mesh_net_recv (data=data@entry=0x20009218 <clients+24>, rssi=rssi@entry=0 '\000', net_if=net_if@entry=BT_MESH_NET_IF_PROXY) at /home/ubuntu/zephyr/subsys/bluetooth/host/mesh/net.c:1324
#25 proxy_complete_pdu (client=client@entry=0x20009200 ) at /home/ubuntu/zephyr/subsys/bluetooth/host/mesh/proxy.c:405
#26 proxy_recv (conn=, attr=, buf=0x20008261 <net_buf_data_hci_rx_pool+109>, len=, offset=0, flags=2 '\002') at /home/ubuntu/zephyr/subsys/bluetooth/host/mesh/proxy.c:467
#27 write_cb (attr=0x200092f8 <proxy_attrs+40>, user_data=0x20004c98 <rx_thread_stack+3912>) at /home/ubuntu/zephyr/subsys/bluetooth/host/att.c:1225
#28 bt_gatt_foreach_attr (start_handle=start_handle@entry=25, end_handle=end_handle@entry=25, func=func@entry=0x10287f5 <write_cb>, user_data=user_data@entry=0x20004c98 <rx_thread_stack+3912>) at /home/ubuntu/zephyr/subsys/bluetooth/host/gatt.c:935
#29 att_write_rsp (conn=conn@entry=0x20000ae4 , req=req@entry=0 '\000', rsp=rsp@entry=0 '\000', handle=, offset=offset@entry=0, value=0x20008261 <net_buf_data_hci_rx_pool+109>, len=22 '\026') at /home/ubuntu/zephyr/subsys/bluetooth/host/att.c:1268
#30 att_write_cmd (att=, buf=0x200081ac <net_buf_hci_rx_pool+24>) at /home/ubuntu/zephyr/subsys/bluetooth/host/att.c:1500
#31 bt_att_recv (chan=0x20000c18 <bt_req_pool>, buf=0x200081ac <net_buf_hci_rx_pool+24>) at /home/ubuntu/zephyr/subsys/bluetooth/host/att.c:1947
#32 l2cap_chan_recv (chan=, buf=buf@entry=0x200081ac <net_buf_hci_rx_pool+24>) at /home/ubuntu/zephyr/subsys/bluetooth/host/l2cap.c:1573
#33 bt_l2cap_recv (conn=conn@entry=0x20000ae4 , buf=buf@entry=0x200081ac <net_buf_hci_rx_pool+24>) at /home/ubuntu/zephyr/subsys/bluetooth/host/l2cap.c:1606
#34 bt_conn_recv (conn=conn@entry=0x20000ae4 , buf=buf@entry=0x200081ac <net_buf_hci_rx_pool+24>, flags=flags@entry=2 '\002') at /home/ubuntu/zephyr/subsys/bluetooth/host/conn.c:1149
#35 hci_acl (buf=buf@entry=0x200081ac <net_buf_hci_rx_pool+24>) at /home/ubuntu/zephyr/subsys/bluetooth/host/hci_core.c:551
#36 hci_rx_thread () at /home/ubuntu/zephyr/subsys/bluetooth/host/hci_core.c:4683
#37 z_thread_entry (entry=0x1005b11 <hci_rx_thread>, p1=, p2=, p3=) at /home/ubuntu/zephyr/lib/os/thread_entry.c:29
#38 0xaaaaaaaa in ?? ())

Hi @xiaoliang314 . Could you describe your setup a bit more. What hardware is this on? Which version of Zephyr are you using? Which HCI driver are you using? What Mesh features are you using? It sounds like you're not just using native (advertising-based) Mesh but also the GATT compatibility support (GATT Proxy), correct?

In the Bluetooth Mesh environment, the following conditions caused a deadlock:

Advertising data reporting causes the Rx buffer to be exhausted
The Mesh protocol stack invoke the ACL to send data. It blocks the RX thread because it waits for the ACL numCompleted event.
The HCI driver cannot report the numCompleted event because the Rx buffer is exhausted, and the Rx thread cannot release the Rx buffer because it is blocked.

Just to be clear: the numCompleted HCI event is handled in the RX priority thread, not the normal RX thread. So the processing of the event should not be blocked as such. The ability to allocate another RX buffer sounds like a real issue however, since both advertising events and num_completed_packets are allocated from the same buffer pool.
Do you have any suggestions for a potential fix? I'm asking since it seems you've done a fairly thorough analysis of the situation. For other critical HCI events such as cmd_status and cmd_complete the stack tries to reuse the original HCI command buffer to ensure that an available buffer is found. I'm thinking we should perhaps have a separate pool for num_completed_packets. Another idea would be to group all the priority events (command status, command complete & num completed packets) to use a dedicated pool. I think this pool might even work with a single event, since I think bt_recv_prio() consumes buffers given to it synchronously, meaning you should be able to trust that the buffer goes back to the pool after calling bt_recv_prio().
@joerchan @Vudentz @carlescufi FYI

@xiaoliang314 wrote:

The Mesh protocol stack invoke the ACL to send data. It blocks the RX thread because it waits for the ACL numCompleted event.

This is something I don't understand. The host stack has a dedicated TX thread that waits on the num_complted_packets HCI events. So if you try to send ACL data from the RX thread it should only block on new TX buffer allocation but not directly the num_completed_pkts event.

@xiaoliang314 wrote:

The Mesh protocol stack invoke the ACL to send data. It blocks the RX thread because it waits for the ACL numCompleted event.

This is something I don't understand. The host stack has a dedicated TX thread that waits on the num_complted_packets HCI events. So if you try to send ACL data from the RX thread it should only block on new TX buffer allocation but not directly the num_completed_pkts event.

@jhedberg
The version of zephyr is :
commit 4278bf5673480effdca3b1e048cecb7a9ab32976
My device is a 16M microprocessor，It integrates with our own Bluetooth controller. The HCI driver reference Bluetooth H4 driver. I have configured PB-GATT and GATT Proxy functions.
I have the same opinion as you, I think we should use a separate pool for bt_recv_prio.

@jhedberg
Because the Rx thread is blocked, it cannot continue to process other HCI events, causing no buffer to be released in the Rx buffer. The HCI driver cannot get the buffer to report the numCompleted event.

@xiaoliang314 could you test if #16870 fixes this issue?

@jhedberg Ok, I will test this fix tomorrow, I am already off work now.

@jhedberg Sorry, I think using a separate pool may not solve this problem. We ignore one factor because the controller may also accumulate HCI events, and in the controller report queue, the numCompleted event may be after the advertising event. What do you think?

@xiaoliang314 advertising events and num_completed_pkts events are handled through different threads. Priority events, like num_completed_pkts are passed to the host using bt_recv_prio() whereas other events use bt_recv(). The priority events are consumed synchronously whereas other events go through a queue. So even if num_completed is after many advertising events it should still get processed before them, especially if the RX thread is blocked on something.

@jhedberg The communication between the controller and the host is serial. If the normal event reception is blocked, the priority events after it will not be received.

@xiaoliang314 yes, that's serial. I was talking about the communication between the HCI driver and the host stack. But now that you mentioned it, there might be issues with specific HCI drivers like the h4.c one since I think they stop UART flow control when they're unable to allocate a buffer. I'll need to double check that. For other drivers, like the one for the Zephyr-internal controller this shouldn't be an issue since the "flow of HW events" isn't halted because of something like this.

@xiaoliang314 I double-checked drivers/bluetooth/hci/h4.c. When it comes to advertising events, those are considered discardable, so they will simply be discarded if allocation fails, meaning they will not block the inflow of more data from the controller:
https://github.com/zephyrproject-rtos/zephyr/blob/3e56c2cf16114f3952603dbd553c570edcc25e45/drivers/bluetooth/hci/h4.c#L241-L248

@jhedberg We are looking forward to your ability to solve this problem for the H4 driver, we are considering the separation of the controller and host.

@xiaoliang314 based on my previous comment, at this point it'd be best if you just test my PR in practice, so we don't need to speculate too much if it helps or not :)

@jhedberg Thank you, I will test this fix tomorrow.

@jhedberg Your PR solved my problem.
But I see this output in the LOG message.
Failed to allocate, deferring to rx_thread
Could it block communication between the controller and the host?
It's in line 250 of h4.c.
https://github.com/zephyrproject-rtos/zephyr/blob/3e56c2cf16114f3952603dbd553c570edcc25e45/drivers/bluetooth/hci/h4.c#L242-L253

@jhedberg If the HCI rx thread is blocking, is deadlock possible?

I looked at these events and there were three types:

LE Remote Connection Parameter Request Event
LE Data Length Change Event
ACL Data

Is the first two possible to block communication?

Failed to allocate, deferring to rx_thread

This is a warning message that indicates that the RX buffer pool has run empty and the HCI driver is forced to wait for buffers to become available. It's mainly intended as an indication that you should try to increase the number of RX buffers, but doesn't automatically mean that you're risking a deadlock.

LE Remote Connection Parameter Request Event
LE Data Length Change Event
ACL Data

Is the first two possible to block communication?

@xiaoliang314 in theory yes, since they come from the same buffer pool and are processed by the same thread as any other non-priority packets. There's no easy structural solution I can think of for this, since the HCI driver is supposed to be a reliable component that doesn't loose data, with the exception of advertising report events which are considered ok to be dropped if out of buffers. One option would be to be able to iterate the existing RX queue and free up any discardable buffers (advertising events) from there, in order to free up memory for non-discardable events (like the first two you mentioned). This is however quite inefficient and the k_fifo API we're currently using doesn't even provide such a possibility. Now that I'm thinking about this, one solution would be to have two RX queues: one for discardable packets and another for everything else. We'd then have to use k_poll instead of k_fifo_get to block in the RX thread since it would have to wait on two different k_fifo objects. This is mainly an issue for the h4.c HCI driver design and e.g. the Zephyr controller doesn't suffer from this, so I'm not suggesting that we change anything on the host stack side for this.
If I understood right, your code may end up blocking the RX thread due to low resources on the TX path. I think one way to mitigate this would be to configure your L2CAP TX buffers (CONFIG_BT_L2CAP_TX_BUF_COUNT) to always be at least many as your controller ACL buffer count. Once you've done that you should probably try to in crease CONFIG_BT_RX_BUF_COUNT to be as large as possible (i.e. as long as you don't run out of RAM).
Btw, do I understand right that your concern is mainly a theoretical one now, i.e. with my PR you haven't been able to reproduce any deadlock in practice (yet)?

Now that I'm thinking about this, one solution would be to have two RX queues: one for discardable packets and another for everything else. We'd then have to use k_poll instead of k_fifo_get to block in the RX thread since it would have to wait on two different k_fifo objects.

Just to be clear, I'm suggesting this since it would then be easier to free up discardable packets since you'd just pick the first one from the discardable RX queue, rather than having to iterate a single RX queue with potentially many non-discardable packets (causing inefficiency of the design).

@jhedberg Your PR is working well now. You understand it right, I think there's a legitimate sequence of events causing deadlocks on the host.

Now that I'm thinking about this, one solution would be to have two RX queues: one for discardable packets and another for everything else. We'd then have to use k_poll instead of k_fifo_get to block in the RX thread since it would have to wait on two different k_fifo objects.

I think this is feasible. But I think the best thing to do is not block Rx threads. An interface similar to att_send should not be invoked synchronously in Rx threads. What do you think?

@xiaoliang314 the stack is intentionally designed so that you should be able to block in the RX thread, since this simplifies the code (asynchronous, event driven code is often quite hard to follow). This is the reason we have bt_recv_prio() and why many blocking operations, like bt_hci_cmd_send_sync(), are possible from the RX thread. I'm currently experimenting with making the h4.c driver discard buffers from the RX queue. I've abandoned the idea with k_poll since we would potentially loose ordering of packets with it. The single-queue based discarding is actually not that bad thanks to the k_fifo_put_slist() API, i.e. we will be forced to iterate through the entire RX queue, however inserting the non-discarded buffers back to the RX queue is an O(1) operation.

@xiaoliang314 regarding the HCI events you mentioned, the set of this kind of events should have a strict upper bound, I think (depends on how many connections you support, but it should still have a bound). This is not the case for advertising reports. So if we know that the non-discardable events have an upper bound (i.e. a definite maximum of how many such events can be pending at any given moment) we should be able to know that setting the RX buffer count high enough will guarantee that we cannot deadlock, as long as we can always go and free up buffers used by events which don't have an upper bound (i.e. advertising reports). Does this make sense?

@jhedberg Yes, it can solve this issue.

This should be an effective way. Non-discardable HCI events do not occur frequently, so traversing the entire queue will not have a significant impact on overall performance.

@xiaoliang314 I've pushed a second patch to my PR to add this feature. Let me know what you think. Since iterating the RX queue has performance implications I added an initial wait before commencing the iteration. I used an arbitrary 100ms for this but made it configurable. Does this make sense? Note that the patch is only compile-tested so I hope you could do some stress testing for it.

@xiaoliang314 I just realised my patch need a tweak: when controller to host ACL flow control is enabled then ACL data and events use different pools , and we should only try the discard traversal if the incoming packet is ACL data. I've updated the second patch accordingly. Btw, you should consider enabling CONFIG_BT_HCI_ACL_FLOW_CONTROL if your controller supports controller-to-host ACL flow control, since that way you guarantee that the controller will not cause you to run out of ACL buffers for incoming data.

I've updated the second patch accordingly.

@jhedberg I don't seem to see the third commit.

@jhedberg I see your modification, and I'll test it.

@jhedberg Hi, Your fix is working well. But I can't prove the validity of your latest patch. Because it's hard for me to create conditions that can verify this problem.

@jhedberg Hi, Your fix is working well. But I can't prove the validity of your latest patch. Because it's hard for me to create conditions that can verify this problem.

@xiaoliang314 thanks! Could you also post a comment in the pull request saying that you've tested it and it works well? That way the reviewers can see it and we make it easier to get the PR eventually merged.

@xiaoliang314 regarding reproducing, the only trick I can think of is to try to reduce the number of available buffers.

@jhedberg I've reduced the number of buffers to a very small number. The reason why it is difficult to reproduce is LE Remote Connection Parameter Request Event and LE Data Length Change Event are difficult to occur between ACL sending and numCompleted reply.


Pyav backend for VideoReader API

Draft implementation for the VideoReader API.
This would allow the usage of the new API without the necessity to have own FFMPEG installation, but instead would only rely on having PyAV installed.

FYI @YosuaMichael will be cutting the release branch on Monday. Is your intention to try to merge prior?

@datumbox let's not do it, it is missing accurate seek so it would make more sense to do it for the next one (and hopefully sort some other woes along the way).

@bjuncek Agreed. Makes sense to me to delay to avoid release issues.

Hi @jdsgomes .
If this looks ok, let's try to merge it.
I'll add the precise seek in later PR to avoid the clutter

Checked the latest changes looks good to me.


can't use up/down button to select data source in windows terminal

Describe the bug
can't use up/down button to select data source in windows terminal
To Reproduce
Steps to reproduce the behavior:

Execute command: piperider init
When PipeRider asks data source, user can't use up/down button to select data source.

Desktop (please complete the following information):

OS: Windows
Version: 0.4.1

After investigating, we found the 3rd library has some related issues on the Windows
platform. We had fired an issue to the upstream repo.
In the mine while, we will reimplement the input value handling mechanism on the Windows platform.

This issue had been resolved in v0.5.0


Wishlist of Features and QOL Improvements

First off, thanks for making such a great library. 👍 This is one of, if not the most complete gui library for pygame I have seen. However, there are a few major and a couple minor issues that make the library rather unintuitive to use.
Issues
Long import statement

[x] Resolved in comment below
The import statement is huge, and, as you can't do multiple imports, requires a dedicated import for every element. The length also makes it virtually impossible (or at least incredibly irritating) to create an object without a dedicated import statement.

from pygame_gui.elements.ui_text_entry_line import UITextEntryLine
data_entry = pygame_gui.elements.ui_text_entry_line.UITextEntryLine(relative_rect=Rect(x, y, w, h), manager=manager)

UITextEntryLine

[x] .clear() method to clear the text, the same as the current .set_text(''). #316
[x] Allow modifying the height to desired value. It currently accepts a height value, but does not use it.
[x] Add support for home and end. #318
[x] Multi-line text entry - #170
[x] Default text that is automatically cleared when the user starts input and reinstated when the UITextEntryLine is empty. #315
[x] Initial text given by parameter #316

text_input = UITextEntryLine(relative_rect=Rect(x, y, w, h), manager=manager, text='Input some text.')

UITextBox

[x] .clear() method to clear the text, instead of calling .kill(). #316
[x] .set_text() method to change the contents, rather than the current method.
[x]  Implicitly initiate empty if no html_text parameter is provided. - this is not possible without API break
[x] .get_pos() method to get position. - can do this with text_box.get_abs_rect().topleft etc is generally superior to just one get_pos() as you can get the .right, .centerx etc type attributes which should be familiar to users of pygame.

UIDropDownMenu
Not sure what the reasoning is for these two. It used to work more like this but then somebody asked for it to work the other way.

[x] Clicking the dropdown button (the little arrow) does not also click the main button, and vice-versa  Allow dropdown only when the dropdown button is clicked, and not the main button. #321

Implicit UIManager

[x] Probably is a way to add a global to module's __init__.py you can 'register' a default manager with. Would need to raise an exception if you didn't supply a manager and also hadn't registered a default manager. I guess we could also just register the first manager created as the default manager... #320

Adding the same boilerplate manager=manager to every object gets tiring quickly. It would be nice to have an option to set a default manager that is used when no explicit manager is declared.
manager = pygame_gui.UIManager((width, height), 'theme.json')
pygame_gui.set_default_manager(manager)
text_box= UITextBox(relative_rect=Rect(x, y, w, h), html_text='This is a text box.')

html_text

[x] Currently, the font option does not appear to work. (it does)
[x] Automatic conversion from \n to <br> would be nice. #319

Special Effects

[x] Method to change the typing speed for fade_appear. (added params to text effects in 0.6.0)

Table ui_element

New UITable element feature request. #317
Let's say I was in the (not uncommon) situation of wanting to display multiple pieces of information to the user at one time. To keep it simple, let's say I wanted to display name, hp, xp, level, and mana. To do this the traditional way, this would require 5 UITextBoxes, 10 if I wanted to display what the value stood for next to it. Enter the (tentatively named) UITable. With only one ui_element it should be possible to keep track of all those pieces of information.

# Note that this is only an example implementation to show desired features
character_sheet = UITable(relative_rect=Rect(x, y, w, h), manager=manager)
character_sheet.title = 'Character Sheet'
character_sheet.add_column(header=None, rows=['name', 'hp', 'xp', 'level', 'mana'])
character_sheet.add_colum(header=None, rows=['Bob', 10, 0, 1, 10])

It's not easy to call out the bits I'd support as it's one big list but on the whole, for what it's worth, I think it's a pretty great list.
Two biggies:
UITable sounds extremely useful - I was literally dealing with this use case 20 minutes ago.
Default manager would be a great reduction in boilerplate.

The import statement is huge, and, as you can't do multiple imports, requires a dedicated import for every element. The length also makes it virtually impossible (or at least incredibly irritating) to create an object without a dedicated import statement.
from pygame_gui.elements.ui_text_entry_line import UITextEntryLine
data_entry = pygame_gui.elements.ui_text_entry_line.UITextEntryLine(relative_rect=Rect(x, y, w, h), manager=manager)

Can this not be re-written as:
from pygame_gui.elements import UITextEntryLine, UIButton, UILabel

data_entry = UITextEntryLine(Rect(x, y, w, h), manager)

?

UITextEntryLine

Having initial text/default text is a good idea. I guess it'd need also need an option for the different behaviour, because I'm sure someone else will want default text that stays set when the user starts to edit the text line. Multi-line text entry should be much more possible once I've finished refactoring & unifying the underlying text rendering code, something that is currently underway. The height of the line is slightly fiddly, I wanted the behaviour where the line just grows to the height of whatever font size is used by the line, so that's what it always does right now by default. Probably I should allow an override option so it respects the value set in the rect, even if it's is too short/too tall for the text. The other things sound fairly straightforward.

UITextBox

All this sounds fairly straightforward. The text box should get quite a few changes from the general text refactor anyway.

Clicking the dropdown button (the little arrow) does not also click the main button, and vice-versa
Allow dropdown only when the dropdown button is clicked, and not the main button.

I believe the drop down used to work like this with separate button functionality but there was a request to combine them. It's slightly awkward to make it optional without adding ever more constructor parameters but I may fiddle with it at some point. What was the use case for having the main button not do a drop down/up action? Just aesthetics/preference?

Implicit UIManager
Adding the same boilerplate manager=manager to every object gets tiring quickly. It would be nice to have an option to set a default manager that is used when no explicit manager is declared.

I think this is a good idea and something that should be fairly straight forward to add as a global setter/getter function with some error handling. It it likely also possible to add a default, default manager for the cases where no manager is created, or set that just uses the default theming and the size of the screen/window. 👍

html_text
Currently, the font option does not appear to work.

This works in the examples, so I'm not sure what issue you are having.

Automatic conversion from \n to  would be nice.

Yeah, this could likely be added to the html parser. I'd like to support multiple formatting parsers one day too, but finding the time :)

Method to change the typing speed for fade_appear.

I believe the attribute for this is called time_per_letter in the current version. So just set it to less than 0.05 to speed it up and greater than 0.05 to slow it down.

UITable

Sounds like a decent idea for a new element.

Thanks for the reply!

Can this not be re-written as:
from pygame_gui.elements import UITextEntryLine, UIButton, UILabel
data_entry = UITextEntryLine(Rect(x, y, w, h), manager)

?

uh, yes. Don't know how I missed that 😅.

I believe the attribute for this is called time_per_letter in the current version. So just set it to less than 0.05 to speed it up and greater than 0.05 to slow it down.

Cool, I'll try that!

Closing this now as all tasks have been completed, separated out into new issues or were currently unable to be implemented. Or I lost them along the way because there was a lot to digest in this issue.
If you feel there is something missing after 0.6.5 is released (other than the UITable which won't make it yet), feel free to return and add these as separate issues.


Cannot copy/paste screenshot from clipboard to text box for version 4.3 on Windows 10

I confirm (by marking "x" in the [ ] below: [x]):

[x ] This is not a troubleshooting question. Troubleshooting questions go here: http://www.mattermost.org/troubleshoot/.
[ ] This doesn't reproduce on web browsers (such as in Chrome). If it does, issue reports go to the Mattermost Server repository.
[ ] I have read contributing guidelines.

Summary

Environment

Operating System: Windows 10
Mattermost Desktop App version: 4.3.0
Mattermost Server version: X.X.X

Steps to reproduce
Expected behavior
Observed behavior

Possible fixes

Please update to the latest version (4.4) and try again.

did 4.4 help?

I'll close this for now as we haven't received feedback for a while. Please re-open this issue if the problem persists on v4.4.0,


NIFI-2841 Refactoring logic in SplitAvro RecordSplitter to avoid maki…

…ng two calls in a row to reader.hasNext()

Reviewing. . .


Make Inventory Dialogs Single Classes

Right now they both work by instantiating them and then immediately using their one function, then discarding them.  This could be improved by doing it all at once e.g. via a static method.  Also, they don't need to use inner classes.

[x] InventoryDownloadDialog
[x] InventoryLoadDialog

Addressed by #78.


[enhancement]: add controlnet-union-sdxl-1.0 supported

Is there an existing issue for this?

[X] I have searched the existing issues

Contact Details
<EMAIL_ADDRESS>What should this feature add?
need to support controlnet-union-sdxl-1.0, this controlnet encompasses a variety of control types and possesses commendable control effects.
https://huggingface.co/xinsir/controlnet-union-sdxl-1.0
Alternatives
No response
Additional Content
No response

Yes, please. This combines the functionality of all ControlNet models in one - with it don’t need to download all ControlNet, Union is enough for most tasks that ControlNet can do


Remove outdated comments about empty output lists in transactions.

Issue Number
Cleanup after #2247, #2255, and other related PRs.
Overview
This PR:

removes a couple of outdated comments about disallowing empty lists of outputs in transactions. It's been established that having an empty list of outputs is perfectly reasonable in certain circumstances (such as a transaction that includes just a delegation certificate).
updates the Arbitrary ApiTransaction instance to generate possibly-empty lists of outputs.

bors merge

bors retry

bors r+


[MAJOR] Deploying application to Heroku.

closes #171

Great but it looks like we are also using postgres for production. Are we only using postgres from now on?

Yes, we are switching to Postgres. We are using the Postgres database addon in Heroku.

Great but it looks like we are also using postgres for production. Are we only using postgres from now on?

Yes, we are switching to Postgres. We are using the Postgres database addon in Heroku.