Mod-updates feature request

Are the update switches stackable? can i do arkmanager update --warn --update-mods ?
also would it be possible to add the check feature to --update-mods? so it will check for mods updates and only apply if there are changes?

The update switches are indeed stackable.
The mod update feature will download the mods (since steamcmd provides no way of checking if a mod has been updated), and then compares the modification times on the downloaded mod files with those already installed.  If none of the files have changed, then it will cancel the mod update unless the --force switch is specified.

About this, if the file is modified but not any new, the update mods doesn't seem to update.

@Budman17r please create a new issue for this.

This is now in the stable branch.


[TACHYON-585] replace beforeclass with before in two cases

JIRA: https://tachyon.atlassian.net/browse/TACHYON-585
Change-Id: Id2ae6e7a0f8764ed44b443cdee31206095d3aa1b
This patch is about unit test coding style, I think it's better to use "Before" instead of "BeforeClass" in the following two cases.

Besides a minor method rename, this looks good!

@kuliu Thanks for the patch, looks good aside from the one minor comment.

@kuliu I've opened a follow up PR to address the style issue since its such a minor change. #1282

@calvinjia Thanks very much.


GKE Helm Charts and scripts for small/medium projects

The guide https://github.com/vespa-engine/sample-apps/tree/master/examples/operations/basic-search-on-gke is a good starting point.
My goal is to get a production ready environment for WooCommerce sites that cannot afford a managed Vespa Cloud (that I would recommend first !), but still require better scalability than a single docker container.

I have created https://github.com/vespa-engine/sample-apps/tree/master/examples/operations/multinode-HA/gke - it is a step on the way

Nice !! 👌
Can't wait to play with it. Still working on the local docker instance...

I am not sure whether  https://github.com/vespa-engine/sample-apps/tree/master/examples/operations/multinode-HA/gke will suffice for most people - If we are to support https://helm.sh/ , we should also consider Terraform and so on... To be discussed


Multiple select, slot="selection" does not work

Multiple select Documentation  says that a slot "selection" can be used, but it is nowhere to be found in available slot list and it does not work if I just use the sample code. How can I control the display of multiple options selected?
Edit: it works, but it's not documented properly.

Multiple select Documentation says that a slot "selection" can be used, but it is nowhere to be found in available slot list and it does not work if I just use the sample code. How can I control the display of multiple options selected?
Edit: it works, but it's not documented properly.

can you please let us know how you solved it?

After all this time not sure if this is the relevant code, but "multiselect" with "slot="selection" " in my code looks like:
<multiselect @close="closed" @select="selected" @open="opened" ref="multiselect" v-model="selectedlist"
                    :options="options"
                    :multiple="true"
                     :placeholder="placeholder"
                     :searchable="false"
                     :show-labels="false"
                     label="text" track-by="value">
            <template slot="selection" slot-scope="{ values, search, isOpen }">
                {{ values.map(v=>v.text).join(', ') }}
            </template>
        </multiselect>

Key detail being the <template slot="selection"...</template> inside <multiselect></multiselect>
Hope this helps

Well in my case, I must recommend to check the version, I was working with the CDN 2.1.0 which is in the docs, I tried the example and failed. I updated to 2.1.6 and works as expected.


Remove legacy code and updates

@Minishlink some task I think that should be done before a release.

[ ] There is legacy code to support early Chrome push by firebase. This is deprecated by google. This should be removed.
[ ] Nowadays every bundled openssl should support ec keys, so workaround code should be removed.
[ ] Cleanup direct use of gmp
[ ] Better check for missing extensions/functions

yes let's remove the legacy chrome push FCM it will become obsolete on June of this year
ok, is the first version of openssl that supports this known? We could add this to the readme to redirect people to older versions of web-push-php if needed
ok
ok

Thanks @Rotzbua!

Hello Team,
Our of our old  script we had purchased( legacy project ) that is using a older version of this library.
Now that client has received firebase deprecated notification , I wanted to check if the library is ready with new API approach.
Also I could sponsor a goal if someone could help upgrade current codebase to new version.

Hello, this library never used Firebase Cloud Messaging per se. Older Chrome versions were using FCM endpoints for web push and that goes through the library transparently. More information in the README
If you want to upgrade, wait for the next version that will come out later with this issue closed, as there will be some breaking changes. Note that newer versions don't support old versions of PHP (see README for details)


Add cuMemCreate support to tests

Issue:

See #177.

This PR:

adds two gpu memory allocators: gpu_mem_alloc for cuMemAlloc, and gpu_vmm_alloc for cuMemCreate.
modifies copybw, copylat, and sanity to use gpu_mem_alloc and gpu_vmm_alloc.

Thank you @drossetti.
Fixed the issues. Can I ask you to re-review?

is this PR still needed?

This PR is good to have so that we have VMM test coverage and performance number.

@Akshay-Venkatesh Can I request you to review the change in apiperf?

Let's wait for @Akshay-Venkatesh before merging

@Akshay-Venkatesh Can I request you to review the change in apiperf?

apiperf changes look good.


Charge Current update in API

Finally we can now modify the charge current through the Tesla app. It would be nice to also have this functionality in the API, so we could use it in our NodeRED flows to allow the EV charging to follow the solar excess availability.
Thanks for your great work!

Perfect, looking forward to test it in my NodeRED script of #KermtStroomt!

I proposed a pull request for 3 new api calls including this one.
Already merged in Nodered, but it needs the merge here to be effective in Nodered...

The 3 new API are now fully tested/debugged with GaPhi/TeslaJS and GaPhi/node-red-contrib-tesla forks, waiting for the last merges into original branches.

@TomNijsen @GaPhi I believe this has now been addressed with the PR merges done today. Please let me know if that is not the case.


Fixed size dao - UI improvement

Limit text displayed in summaryView, and create a detailedView for LogMessages

Might it make sense to separate the view files into a UI folder within logger at this point?


Define an abstract type of identifiers

Currently, this is all string munging, appending and other madnesses. Equality of ident is string equality (I believe).
Switch to something opaque offering physical equality.

Solved by #30


alligned navbar

@Anjalis14 Sorry, This issue has already been addressed  Find another issue or feature to contribute to. Thank you!


tests/utils.go: Replace calls to GetRunningPodByVirtualMachineInstance with libpod.GetRunningPodByLabel

Is your feature request related to a problem? Please describe:
The function GetRunningPodByVirtualMachineInstance in tests/utils.go could be replaced with direct calls to libpod.GetRunningPodByLabel, since it does not provide much additional value. Also since this is test code, assertions should be used instead of panicking on errors.
Describe the solution you'd like:
In most places where GetRunningPodByVirtualMachineInstance is used the VMI is already available, so instead of layering the call to libpod.GetRunningPodByLabel in an additional func that fetches the VMI again, calls to GetRunningPodByVirtualMachineInstance should be replaced by direct calls to libpod.GetRunningPodByLabel.
getRunningPodByVirtualMachineInstance could be then inlined into the remaining place where it is used. (GetRunningVirtualMachineInstanceDomainXML)

/sig code-quality

/label good-first-issue

/assign @EdDev

Resolved by https://github.com/kubevirt/kubevirt/pull/11429
/close


fix(init.lua): indent blankline v3 setup

Indent blankline plugin v3 setup throws error when called with opts = {...}

I see the error too. I'll be in work meetings all morning - if someone other than the OP has time to test this fix and validate that it fixes the issue, I'd be happy to merge.

Actually, I changed my mind :) We can always revert and we're busted right now so there's no where to go but up. Merging.


More descriptive/useful message for html template errors

Description
As a new user of lit-html and lit-element, I hit a snag working on a simple demo of lit-element.  The error was my fault; I simply forgot a closing " on a data-attr.  However, the error message suggested something more catastrophic from the depths of lit-html: TypeError: Failed to set the 'currentNode' property on 'TreeWalker': The provided value is not of type 'Node'.

NOTE: the helpful crew on the Polymer Slack #general channel pointed me to the VSCode lit-plugin which would have helped me see my error much easier.
Steps to Reproduce

Create a template with invalid html.  In this case, a missing " after a data-attr.
render() {    // ERROR here!  Missing closing " after data-someid      return html
<li data-someid="${this.value}>${this.name}
;  }

Live Reproduction Link
https://stackblitz.com/edit/js-3msbzx?file=mymenuitem.js
Expected Results
It would be nice to have a SyntaxError or something as a result of parsing the template up-front rather than allowing a runaway string to wreak havoc.
Actual Results
TypeError: Failed to set the 'currentNode' property on 'TreeWalker': The provided value is not of type 'Node'.

Browsers Affected

[x ] Chrome
[ x] Firefox
[x ] Edge
[x ] Safari 11
[x ] Safari 10
[x ] IE 11

We have a lot more dev mode errors added to 2.0, plus we now handle the case that was problematic here. We can open more issues for other cases as needed.


Support running extension tests in browser workbench

Brings the concept of extension under deb and extension tests to the web extension host.
Additions to the workbench embedder API:
IStaticExtension:

new property isUnderDevelopment
IWorkbenchConstructionOptions:
extensionTestsPath

The extensionDevelopmentPath is computed based on IStaticExtension.isUnderDevelopment
Alternative API would be:
IWorkbenchConstructionOptions

staticExtensions
staticDevExtensions
extensionTestsPath

I actually feel I cannot give good feedback because I am far away from this topic mentally so I trust these changes work for you.

Make sense. I wanted your opinion mostly on the embedded API, on the rest I'm quite comfortable as me and @alexdima refactored extension test running last milestone.

Maybe one thing is how we want to call the API: a top level extensionTestsPath in the workbench construction options is maybe too prominent? Should it move as a property somewhere closer to where the extensions are provided?

Yes, I agree, it's a bit too prominent.
What about grouping it together with driver under a developmentOptions property:
"developmentOptions": {
    "extensionTestsPath": URI
    "driver": boolean
 }

I'm not familiar what driver is for. A better name that would be also be good.
There's also the option to move the devExtensions there, which would be my preferred option:
"developmentOptions": {
    "extensionTestsPath": URI
    "extensions": ReadonlyArray<IStaticExtension>
    "driver": boolean
 }

@aeschli I really like the developmentOptions thing! The driver option is used for the smoke tests:
https://github.com/microsoft/vscode/blob/bdf2ef774e0583ee0759179d75e5b044190a88b2/src/vs/workbench/browser/window.ts#L118-L120
I think we can easily rename that to enableSmokeTestDriver

@bpasero Sorry, just saw your comments after merging.
I saw several cases (e.g. in Joao's server) where it was missed to resolve the URLs before passing then to the web embedded API.
As there are only few places where the extensionLocation are accessed I thought it would simplify things if we loosen the API and only require UriComponents and do the resolving ourselves.
IMO the most convenient would have been a URL sting.
yes, good catch, I will add the IDevelopmentOptions export.

Yeah indeed, in retrospect any URI should be UriComponents probably...

Maybe extensionTestsPath should also then use UriComponents?

Oh, yes, extensionTestsPath should also be UriComponents.

export IDevelopmentOptions: af76d0cf1374fd570637fe46edf3ef4d0898179a

Now 2 the remaining places where URI are used in the embedded API are in the IResourceUriProvider and the similar IExternalUriResolver. IMO makes sense to keep URI there.

Yeah no worries, I can take a look at the remaining ones. I think workspace provider also has usages and I remember Joao hit an issue there where we ignored the workspace when a UriComponent was passed in as workspace.


Support the Anthropic Token Counting API

Recent release: https://docs.anthropic.com/en/docs/build-with-claude/token-counting
We currently count tokens according to the GPT tiktoken tokenizer. We should use the API instead

Currently, we can update the count_message_tokens function to use this API.
count_string_tokens will use the old estimation.

Currently, we can update the count_message_tokens function to use this API.
count_string_tokens will use the old estimation.

They removed client.count_tokens in version 0.39.0 (Source)


Decrease GitHub.com/opencontainers/runtime spec

Since we are essenitally a library, we need to specify the MINIMUM version of the OCI runtime specification that we need.
This change:

Drops the required OCI runtime spec version in the CDI spec to v1.1.0 (where the IntelRdt.EnableCMT and IntelRdt.EnableMBM fields wer added).
Removes the dependabot update for the OCI runtime spec.

closes #201

I'm not too concerned with the cmd dependencies since they're not imported into downstream dependencies. I suppose it does make sense to update them though.

@marquiz I have updated the module at cmd/cdi too.
@zvonkok if I recall correctly you may have been using this functionality for some prototyping. Does that depend on a newer spec version?

I'm not too concerned with the cmd dependencies since they're not imported into downstream dependencies. I suppose it does make sense to update them though.

Yeah, I'm not that concerned either, just for consistency as I noticed that cmd/validate was updated, too

@klihub @marquiz just realized that we actually need to the v1.1.0 spec.

Fair enough, LGTM.


[fix][cms] set appropriate time to field "released" to sort correctly

Coverage increased (+0.04%) to 84.346% when pulling 082a46670de2a21541bafc40e228e8d8687af582 on fix-released into 0c77e4ce783b4ba8ce9320367919abb5d31a2544 on master.


Added kube-state-metrics helm chart (WIP)

What happens when your PR merges?

Prefix the title of your PR:

fix: - tag main as a new patch release
feat: - tag main as a new minor release
BREAKING CHANGE: - tag main as a new major release
[MANIFEST] - tag main as a new patch release and deploy to production
chore: - use for changes to non-app code (ex: GitHub actions)

Alternatively, change the VERSION file - this will not create a new tag, but rather will release the tag in VERSION to production.

What are you changing?

[ ] Releasing a new version of Notify
[x] Changing kubernetes configuration

Provide some background on the changes
In the epic effort to migrate kustomize k8s management into helm, this PR converts a very small component of our stack, kube-state-metrics, into the helm equivalent.
I also reworked the devcontainer plugins and configuration. Main change is that I added helm+helmfile within the container environment. I explained the minor changes as comments in the PR.
If you are releasing a new version of Notify, what components are you updating

[ ] API
[ ] Admin
[ ] Documentation
[ ] Document download API

Checklist if releasing new version:

[ ] I made sure that the changes are as expected in Notify staging
[ ] I have checked if the docker images I am referencing exist

[ ] api lambda (requires Notification-Production / AdministratorAccess login)
[ ] api k8s
[ ] admin
[ ] documentation
[ ] document download API

Checklist if making changes to Kubernetes:

[ ] I know how to get kubectl credentials in case it catches on fire

After merging this PR

[ ] I have verified that the tests / deployment actions succeeded
[ ] I have verified that any affected pods were restarted successfully
[ ] I have verified that I can still log into Notify production
[ ] I have verified that the smoke tests still pass on production
[ ] I have communicated the release in the #notify Slack channel.

Also we will have to manually log into staging, and delete the existing kustomize kube-state-metrics before ci/cd will pass here:

Yeah I saw that but leaves it until the time we will roll it over to staging. 👍


Design error page

@kellyhutchins can you work with @asangma to get a design for the template error page?

Maybe we can use calcite web for this?

@driskull ya!

Using calcite for alert errors.


TP: makes parameter row clickable to show parameter details

What does this PR (Pull Request) do?
Before: parameters in the profile parameters table (tp.domain.com/profiles/{id}/parameters) were NOT clickable. This made it difficult to see the details of a parameter.
After: parameters in the profile parameters table (tp.domain.com/profiles/{id}/parameters) ARE clickable.
No need to update documentation or tests or changelog.md.

[x] This PR fixes is not related to any Issue

Which Traffic Control components are affected by this PR?

Traffic Portal

What is the best way to verify this PR?
Navigate to tp.domain.com/profiles/{id}/parameters and click on a row to take you to the parameters details page.
The following criteria are ALL met by this PR

[x] This PR includes tests OR I have explained why tests are unnecessary
[x] This PR includes documentation OR I have explained why documentation is unnecessary
[x] This PR includes an update to CHANGELOG.md OR such an update is not necessary
[x] This PR includes any and all required license headers
[x] This PR ensures that database migration sequence is correct OR this PR does not include a database migration
[x] This PR DOES NOT FIX A SERIOUS SECURITY VULNERABILITY (see the Apache Software Foundation's security guidelines for details)

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4710/


Command "claim" is not defined.

When I execute php artisan claim:generate Claims/CustomClaim I get below error:
There are no commands defined in the "claim" namespace.

Are you sure the package was installed/discovered correctly? Which version of laravel and this package is this?
$ php artisan claim:generate Foo/Bar
Claim created successfully.

Thanks!
Solved by this - https://stackoverflow.com/questions/32396158/there-are-no-commands-defined-in-the-command-namespace-after-running-comman
Need to add ClaimGenerator::class in kernel.php.

Hi that should not be necessary, this should all work out of the box. Look here, from a total new install:
$ laravel new foobar

Creating a "laravel/laravel" project at "./foobar"
.....

 $ composer require corbosman/laravel-passport-claims
Using version ^3.0 for corbosman/laravel-passport-claims
./composer.json has been updated
Running composer update corbosman/laravel-passport-claims
Loading composer repositories with package information
....

$ php artisan claim:generate Foo/Bar
Claim created successfully.

That's not working at my end. Maybe be because I've lumen framework and I am using lumen-passport - https://github.com/dusterio/lumen-passport.
Does this package support lumen-passport?

Ah that's very possible, my package is not made/tested for Lumen. if it works for you, great.

When I do php artisan vendor:publish --provider="CorBosman\Passport\ServiceProvider" it says "Unable to locate publishable resources". Do you have any idea about it?
When I do php artisan vendor:publish it lists only below:
[0] Publish files from all providers and tags listed below
[1] Provider: Illuminate\Pagination\PaginationServiceProvider
[2] Provider: Laravel\Passport\PassportServiceProvider
[3] Tag: laravel-pagination
[4] Tag: passport-config
[5] Tag: passport-migrations
[6] Tag: passport-views


Request account

Account request handled by admin users

Yan, I will keep this branch open - can you try to drop the api/models.py OneTimePassword model, to instead use the Django auth is_active field (https://docs.djangoproject.com/en/5.1/ref/contrib/auth/), that would get activated after the admin Approves the account? It would be good to have inactive accounts bounce on login to a page that says "Your account has been requested, please contact your admin to activate this account" or some similar feedback.
Other changes suggested was to have the "Create Account" tab renamed as "Manage Accounts", and to include all active and inactive users in the table list, along with the actions to Approve/Reject for the inactive users.


Make each test runable as standalone

Need to add code to bottom of every test script... (Why did I not do this to start?)
if __name__ == '__main__':
    unittest.main()

I don't think this is necessary. Any test can be run standalone without this code. For example, test_alternator.py does not have the line but can be run with:
python -m unittest axelrod.tests.test_alternator

I don't think I realised you could run it with that command...


Persist Roles in database

Hi community,
I've just started working with NestJS and I needed to implement access-control in front-end(Angular) and back-end. I found this PR very helpful but I'm wondering if we could store the roles in database instead of a file, so they would be dynamic.
Do you guys have any Ideas ?

You can initialize the RolesBuilder with an array of roles fetched from the database and use it that way too, refer to the original library's documentation its more thorough.
https://onury.io/accesscontrol/
// grant list fetched from DB (to be converted to a valid grants object, internally)
let grantList = [
    { role: 'admin', resource: 'video', action: 'create:any', attributes: '*, !views' },
    { role: 'admin', resource: 'video', action: 'read:any', attributes: '*' },
    { role: 'admin', resource: 'video', action: 'update:any', attributes: '*, !views' },
    { role: 'admin', resource: 'video', action: 'delete:any', attributes: '*' },

    { role: 'user', resource: 'video', action: 'create:own', attributes: '*, !rating, !views' },
    { role: 'user', resource: 'video', action: 'read:any', attributes: '*' },
    { role: 'user', resource: 'video', action: 'update:own', attributes: '*, !rating, !views' },
    { role: 'user', resource: 'video', action: 'delete:own', attributes: '*' }
];
const ac = new AccessControl(grantList);

Thank you @Tyler-V for your reply, I was wondering actually how can I make those roles dynamic, so I can change there access rights without restarting the App, and be able to retrieve them from database.

Thanks @Tyler-V for your help :+1:
@zi9o  actually there is no one way of doing so, it is up to you, saving it to a mongodb document will be good and easy to implement too.

Indeeed @shekohex , that's what I'm trying to do.  I'm new to NestJS, but from what I understand I need to use an async function to retrieve roles each time from database whenever I want to check user access rights. I'm wondering if there would be an async function instead of static forRoles ?

@zi9o i would be happy if someone can introduce the forRolesAsync method.

I have a very limited time these days, sorry .

I can implement a forRolesAsync method based on the existing method as that looks simple enough. So that a useFactory returned value becomes useValue for the current provide token ROLES_BUILDER_TOKEN. Am I correct in assuming that would be enough to call this implemented?

@bashleigh is there any progress on forRolesAsync ? I have the same requirement as @zi9o to load roles dynamically from DB

@anitricks sorry I've not found the time to be able to do this. Work and my private life has been absolutely mad. I'll try and get this done by the end of next month. Sorry guys :(

published in v2.0.1 :tada:
Sorry for the late response :disappointed:

Hi, I've got a question. If the grant list is saved in the database, when the list is modified (edited), how to make sure the changes is updated in the momory?

Hi, I've got a question. If the grant list is saved in the database, when the list is modified (edited), how to make sure changes will be updated in the memory so it can immediately take effect?

I have exactly the same question.
did you find any answer for that?

Hi, I've got a question. If the grant list is saved in the database, when the list is modified (edited), how to make sure changes will be updated in the memory so it can immediately take effect?

I have exactly the same question. did you find any solution for that?

Sorry for this late response, but I have not succeeded.

Hi, I've got a question. If the grant list is saved in the database, when the list is modified (edited), how to make sure changes will be updated in the memory so it can immediately take effect?

I have exactly the same question. did you find any solution for that?

Sorry for this late response, but I have not succeeded.

It's been 4 years, that is quite the late response 😬
Glad to see nestjs is still doing well

Hi, I've got a question. If the grant list is saved in the database, when the list is modified (edited), how to make sure changes will be updated in the memory so it can immediately take effect?

I have exactly the same question. did you find any solution for that?

Sorry for this late response, but I have not succeeded.

It's been 4 years, that is quite the late response 😬
Glad to see nestjs is still doing well

haha yeah 😁
I actually found a solution for this issue and I will update this comment and post it very soon for future readers ✌
unfortunately, I'm quite busy now.

@mohammadrz003 any chance you found some time? 🕺🏽

@mohammadrz003 any chance you found some time? 🕺🏽

Hey friend.
here you are:
https://github.com/mohammadrz003/nest-blog-api/blob/2772ff5964de9a99af11b778585e5e6c20861750/src/grants/grants.service.ts#L128
look at the repo above. what I've done was create an event that listens to the changes that are made for the grants in the database. and when something is changed in the database, it runs the rolesBuilder and saves the newly created role in the memory.
you may need to explore the whole repo in order to get the idea. but you simply need an event listener that listens to the database changes and then calls the rolesBuilder in parallel.
here's the whole repo code:
https://github.com/mohammadrz003/nest-blog-api

@mohammadrz003
appreciate it sir. tyvm


Don’t force layout into page and post YAML if templates exclude it.

I'd like to be to configure octopress new to generate the page or post without adding layout: page or layout: post to the YAML front matter.
I have YAML front matter defaults set in my _config.yml so that these settings are not necessary on every post and page:
# YAML Front Matter Defaults
defaults:

  # Automatically set the layout for pages and posts.
  -
    scope:
      type: 'pages'
    values:
      layout: 'page'
  -
    scope:
      type: 'posts'
    values:
      layout: 'post'

Accordingly, I've changed my templates in /_templates/ to exclude the layout: portion, but the octopress new command appends them to the YAML front matter anyway.
Can there be a configuration setting to ignore the layout setting if either the templates exclude that parameter or if, say, the settings are blank in _config.yml? I.e.:
post_ext:    'md'
page_layout: ''
post_layout: ''

Thanks for posting this! I've fixed it for the next release.

Awesome, thanks! How does it work? By reading the defaults in _config.yml?

Well, before hand I had it added to the default yaml. This commit removes that. Now only title is added automatically even if you don't have it.

Got it! 👍


This is truly an amazing discovery

May I ask if you are planning to pull the ComfyUI project and add this important research to ComfyUI？

Thanks for your recognition.
We plan to first incorporate this acceleration method into diffusers. Then, we will explore the potential opportunity for contributing to ComflyUI. But this is not guaranteed.

Can we use custom scripts to add T-GATE to ComfyUI

Sure, it is ok for us. We welcome all contributions from the community. Just make sure to provide a link to our GitHub for credit assignment.

Hello, we thank the community's (@JettHu) contribution, please see the re-implementation on comfyUI.


docs(README.md): update example

Closes #38

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 96.522%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
111

Relevant Lines:
115

💛  - Coveralls


Refactor process mappers into taggers.

Removed the cgroup mapper
Adds topology tagger

LGTM

Address is an e.g. IP address-to-address topology. It's not new, it's a rename of the currently (badly) named Network.
I agree with your sentiment about the error handling... but remember that tagging is and will always be best effort — we can't assume that all Endpoint nodes will always have processes attached to them, for example.
We've uncovered something here, though. Take the docker tagger as an example. If we stick a docker_container_id key/val into every endpoint NodeMetadata, and then to merge multiple nodes together in report.Render, as it stands now we're going to lose information, the last writer to the merged metadata will win. (In the current version this works by having an appendable list of Origins, no information is lost there.) And I think this is what you were hinting at — what about this —

Docker tagger becomes Container Topology generator (as you said)
Every unique docker container ID, name, etc. is represented in just one node in that topology
All cross-topology links are encoded as foreign keys, e.g. endpoint node has process_node_id FK, process node has container_node_id FK
report.Render then resolves those FKs to produce appendable Origins in a RenderableNode, kind of as before

Make sense?

Yes this makes good sense.  I though this was the plan all along.  Yay code review!
I'm still not comfortable with this tagging interface, but I can't come up with anything nicer.  We'll probably have to come back to it at some later point.

Well if you agree with above we can rm the interface...

Lets not introduce the containers topology in the this PR; it will make the rest of #123 unmergable.
But I think what you're saying is that, given above, tagger will not need to do foreign key lookups?  And therefore, we can massively simplify this interface?

Yes I think that's correct.

Do you want to have a crack at that (if you're not busy on marketing)?  I'm trying to break out some other changes right now.

If you can merge this and we do that other work in a separate PR — LGTM

Motivation
Right now, the component that reads from Docker attaches metadata to existing nodes in the topologies. For example, if one container is responsible for 10 connections, the same set of Docker metadata is duplicated across those 10 nodes in the process topology. And, if we try to merge those nodes, it's last-writer-wins on which information ends up in the merged node. Buggy.
What we want instead is for the Docker component to populate its own topology, with each node representing a Docker container, and the metadata existing in that single place. Then, using the same example, if one container is responsible for 10 connections, those 10 nodes in the process topology get a single container_node_id key/val, pointing to the relevant node in the container topology. When we merge the nodes, we'll perform special handling on foreign-key-style key/vals, merging them via set-union.
This will also require changes to report rendering, so that it understands how to follow those links.
Gameplan
This change will occur in 5 commits:

Introduce package spy, describing things that can spy on the host machine and produce topologies
Port current func spy to spy.Proc, producing process and address topologies
Add spy.Docker, producing the container topology
Update Render to perform foreign-key resolution
Remove tagging interface and components

Step 3 presents a speed bump. If Render will be able to perform foreign-key resolution, it will need to have access to all topologies. That means it needs to be defined on the full Report, rather than a single Topology. Starting that work, it became apparent that it would involve porting a significant portion of the work already done in #123, specifically implementing something roughly equivalent to its Render function but with lots of small changes to keep the diff only to the immediately relevant components. Some of those are quite tricky, for example reverting the definition of the pseudo func, and therefore the behavior of pseudo node generation, to the previous broken/nondeterminstic mode (previously described here). And which would eventually be undone, anyway, as we continue this path.
This is enough of a speed bump that I'd like to ask for your opinion, @tomwilkie, on how to proceed. I'm afraid that it will be a waste of time. Perhaps there is a better strategy to proceed.

Some (friendly) comments:

Stop renaming things!  At least, stop renaming them in the same PR as you introduce new features.  Its just bloats the PRs and makes them harder to review.
Stop doing more than one thing per PR!  We don't need to introduce the container topology in this PR.  Lets get the taggers -> mappers refactoring in, then work on the next bit.

This change has already been open for too long; lets do the minimal thing to get it ready and then merge it.  I think that minimal thing is to simplify / remove the tagger interface.

The mapper creates new topologies. I don't understand how we can introduce this change without introducing it?

Don't make the mapper create new topologies?  Preserve the existing behaviour?

The end result of this PR is that Tagger operates on just a Report. @tomwilkie PTAL.

Please squash this down to one change and rebase on top of master.

\o/ LGTM \o/


Microsoft Azure Service Bus Session closed and not restored

Library name and version
spring-cloud-azure-starter-servicebus-jms 4.7.0
Query/Question
Hello,
I am running into an issue where, listener session closing abruptly and connection not restored and no error code. Didn't find a good solution. below is exception log
javax.jms.IllegalStateException: The Session is closed
    at org.apache.qpid.jms.JmsSession.checkClosed(JmsSession.java:1101) ~[qpid-jms-client-0.53.0.jar!/:na]
    at org.apache.qpid.jms.JmsSession.rollback(JmsSession.java:263) ~[qpid-jms-client-0.53.0.jar!/:na]
    at org.messaginghub.pooled.jms.JmsPoolSession.close(JmsPoolSession.java:112) ~[pooled-jms-1.2.4.jar!/:na]
    at org.springframework.jms.support.JmsUtils.closeSession(JmsUtils.java:109) ~[spring-jms-5.3.27.jar!/:5.3.27]
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.clearResources(DefaultMessageListenerContainer.java:1289) ~[spring-jms-5.3.27.jar!/:5.3.27]
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1135) ~[spring-jms-5.3.27.jar!/:5.3.27]
    at java.base/java.lang.Thread.run(Unknown Source) ~[na:na]

2023-10-03 21:41:40.521  WARN 1 --- [ontainer#0-4019] o.s.j.l.DefaultMessageListenerContainer  : Setup of JMS message listener invoker failed for destination 'carton-status-update' - trying to recover. Cause: The MessageConsumer is closed
2023-10-03 21:41:40.525  WARN 1 --- [ontainer#0-4019] o.m.pooled.jms.JmsPoolSession            : Caught exception trying rollback() when putting session back into the pool, will invalidate. javax.jms.IllegalStateException: The Session is closed

javax.jms.IllegalStateException: The Session is closed
    at org.apache.qpid.jms.JmsSession.checkClosed(JmsSession.java:1101) ~[qpid-jms-client-0.53.0.jar!/:na]
    at org.apache.qpid.jms.JmsSession.rollback(JmsSession.java:263) ~[qpid-jms-client-0.53.0.jar!/:na]
    at org.messaginghub.pooled.jms.JmsPoolSession.close(JmsPoolSession.java:112) ~[pooled-jms-1.2.4.jar!/:na]
    at org.messaginghub.pooled.jms.JmsPoolConnection.cleanupAllLoanedSessions(JmsPoolConnection.java:269) ~[pooled-jms-1.2.4.jar!/:na]
    at org.messaginghub.pooled.jms.JmsPoolConnection.close(JmsPoolConnection.java:80) ~[pooled-jms-1.2.4.jar!/:na]
    at org.springframework.jms.connection.ConnectionFactoryUtils.releaseConnection(ConnectionFactoryUtils.java:81) ~[spring-jms-5.3.27.jar!/:5.3.27]
    at org.springframework.jms.listener.AbstractJmsListeningContainer.refreshSharedConnection(AbstractJmsListeningContainer.java:394) ~[spring-jms-5.3.27.jar!/:5.3.27]
    at org.springframework.jms.listener.DefaultMessageListenerContainer.refreshConnectionUntilSuccessful(DefaultMessageListenerContainer.java:985) ~[spring-jms-5.3.27.jar!/:5.3.27]
    at org.springframework.jms.listener.DefaultMessageListenerContainer.recoverAfterListenerSetupFailure(DefaultMessageListenerContainer.java:959) ~[spring-jms-5.3.27.jar!/:5.3.27]
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1146) ~[spring-jms-5.3.27.jar!/:5.3.27]
    at java.base/java.lang.Thread.run(Unknown Source) ~[na:na]`

Below is my JMS listener annotation in my spring boot service
@JmsListener(destination = TOPIC_NAME, containerFactory = "topicJmsListenerContainerFactory", subscription = SUBSCRIPTION_NAME, concurrency="15-20")

Session Restore is not happening only where concurrency parameter is configured
Please help if there is something to do to automatically restore the session when concurrency is configured.
Environment
Application is written in Java and is running in Azure Kubernetes
Service Bus is in Azure

Hi @saragluna, could you please help with the triaging? the error seems to come from qpid-jms-client when concurrency > 1, unsure if this is Az SB Spring lib or the Apache client.

Thank you @anuchandy . Will look for an answer from @saragluna

Hi @pavan-chakka, could you help provide the configuration files as well as the Service Bus settings?

Below is spring jms configuration from yaml files. I know in here I have max-concurrency as 2, but my '@JMSListner' annotation also have concurrency set 10-15
spring:
  jms:
    listener:
      max-concurrency: 2
    servicebus:
      connection-string: "Endpoint=${SERVICEBUS_ENDPOINT};SharedAccessKeyName=${SERVICEBUS_SHAREDACCESS_KEY_NAME};SharedAccessKey=${SERVICEBUS_SHAREDACCESS_KEY}"
      pricing-tier: premium
      listener:
        subscription-durable: true
        subscription-shared: true
      pool:
        enabled: true
        time-between-expiration-check: 5m

Service bus is configured pretty straight forward in azure portal. Please let me know what settings you want to specifically look from service bus

@pavan-chakka thanks for the update, I will look into it.

Hi @pavan-chakka , I tested with dependencies Spring Boot 2.7.9 + Spring Cloud Azure Service Bus JMS 4.7.0, and can't reproduce this exception, could you try to reproduce it locally?  Are there any other conditions required? Better to provide a minimal project to easily reproduce the exception.

HI @moarychan ,  from local am unable to reproduce it, but when I deploy this application to Kubernetes with 2 instances - then this issue is happening after few days. When I deploy it to AKS, both instances will be successfully listening to messages, and process them, but after few days one of the pod will stop listening to messages with above exception, and then again after few days 2nd pod will also stop listening with above exception. There is no pattern that I have seen on timelines when it will stop listening. Again, when 1 pod throws that exception and stops listening for messages, then all traffic will be listened on 2nd pod and messages processed successfully, but when 2nd pod throws that exception and stops listening, then messages will get piled up in service bus.

Hi @pavan-chakka , no actual update here, just a proposal for you to upgrade to using Spring Cloud Azure Service Bus JMS 5.5.0 + Pooled JMS 3.1.4, it may fix the exception since I found a similar fix on the latest Jakarta version 3.1.4.

ok, @moarychan , will try that. in near future, we are upgrading our spring versions. will keep you informed, please keep this ticket

Hi @pavan-chakka , no actual update here, just a proposal for you to upgrade to using Spring Cloud Azure Service Bus JMS 5.5.0 + Pooled JMS 3.1.4, it may fix the exception since I found a similar fix on the latest Jakarta version 3.1.4.

Hi, we have probably same issue using Spring Cloud Azure Service Bus JMS 5.5.0 + Pooled JMS 3.1.4. So I think upgrade to pooled-jms 3.1.4 is not solution.
2023-10-24T00:45:53.190Z  WARN 1 --- [Container#0-111] o.s.j.l.DefaultMessageListenerContainer  : Execution of JMS message listener failed, and no ErrorHandler has been set.

jakarta.jms.IllegalStateException: The Session is closed
	at org.apache.qpid.jms.JmsSession.checkClosed(JmsSession.java:1113) ~[qpid-jms-client-2.4.0.jar!/:na]
	at org.apache.qpid.jms.JmsSession.getTransacted(JmsSession.java:213) ~[qpid-jms-client-2.4.0.jar!/:na]
	at org.messaginghub.pooled.jms.JmsPoolSession.getTransacted(JmsPoolSession.java:256) ~[pooled-jms-3.1.4.jar!/:na]
	at org.springframework.jms.listener.AbstractMessageListenerContainer.commitIfNecessary(AbstractMessageListenerContainer.java:772) ~[spring-jms-6.0.12.jar!/:6.0.12]
	at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:680) ~[spring-jms-6.0.12.jar!/:6.0.12]
	at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:330) ~[spring-jms-6.0.12.jar!/:6.0.12]
	at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:269) ~[spring-jms-6.0.12.jar!/:6.0.12]
	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1239) ~[spring-jms-6.0.12.jar!/:6.0.12]
	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1229) ~[spring-jms-6.0.12.jar!/:6.0.12]
	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1122) ~[spring-jms-6.0.12.jar!/:6.0.12]
	at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]

2023-10-24T00:45:53.191Z  WARN 1 --- [Container#0-111] o.m.pooled.jms.JmsPoolSession            : Caught exception trying rollback() when putting session back into the pool, will invalidate. jakarta.jms.IllegalStateException: The Session is closed

jakarta.jms.IllegalStateException: The Session is closed
	at org.apache.qpid.jms.JmsSession.checkClosed(JmsSession.java:1113) ~[qpid-jms-client-2.4.0.jar!/:na]
	at org.apache.qpid.jms.JmsSession.rollback(JmsSession.java:264) ~[qpid-jms-client-2.4.0.jar!/:na]
	at org.messaginghub.pooled.jms.JmsPoolSession.close(JmsPoolSession.java:112) ~[pooled-jms-3.1.4.jar!/:na]
	at org.springframework.jms.support.JmsUtils.closeSession(JmsUtils.java:109) ~[spring-jms-6.0.12.jar!/:6.0.12]
	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.clearResources(DefaultMessageListenerContainer.java:1291) ~[spring-jms-6.0.12.jar!/:6.0.12]
	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1137) ~[spring-jms-6.0.12.jar!/:6.0.12]
	at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]

Hi @pavan-chakka ,  because I haven't reproduced it yet, I need your help to confirm the following questions:

If using the default concurrency configuration of the default JMS listener, the session-closed-and-not-restored problems will not occur.
If the concurrency-related configurations of the JMS listener are configured,  session-closed-and-not-restored problems will occur.
Which tier is used for Service Bus and what queue level configuration changes are there?
Are there any special network-related settings in K8S?

Hello! I'm one of @pavan-chakka's colleagues (and he's currently out on vacation). Thanks for looking into this. I do think that what we're running into is probably the issue noted earlier in the pooled-jms library. We're working on updating our systems to Spring Boot 2.7.17 or 3.1.5, which includes the patched pooled-jms version, and will let you know if the issue recurs.
To try to answer your questions, yes I think it's only the services that have a max-concurrency set, but the service runs for quite some time before no longer listening to messages so it's hard to know for sure exactly what's triggering it. We're using the Premium tier of Service Bus. And the network is probably locked down somewhat (that's part of why we needed to go with the Premium tier, so that we could do the networking restrictions we needed), but should be open between the AKS cluster and Service Bus as far as I understand it. (But I'm not the person who configures that, so if you need more information I might need to dig in a bit and contact other people at the company.)
Thank you!

hello,
any updates on this, we are facing the same issues, with latest 3.1.5 version of pooled-jms library

hello, any updates on this, we are facing the same issues, with latest 3.1.5 version of pooled-jms library
Hi @raissi-oa , could you help provide more info about your situation? such as environment, when and how?

Hello,
For others facing the same issue, he what turns out to be on our case. When we enabled all logs for qpid, especially this class: org.apache.qpid.jms.provider.amqp.AmqpFixedProducer we found TRACE logs saying:

Outcome of delivery was rejected .... outcome=Rejected{error=Error{condition=amqp:resource-limit-exceeded, description='Cannot send more than 100 messages in a single transaction ....

Also this class: org.apache.qpid.jms.JmsLocalTransactionContext is logging (DEBUG) that it started a transaction 'New TX started: TX:ID:.....', and multiple messages: saying 'TX:TX:ID:.... has performed a send'. And at last there is a rollback of that transaction.
In our case, this is because we use the same connection factory to consume messages and then send them others to ASB. Even though, we do not use explicit transactions, for some reason (under investigation) there is a transaction that gets opened, and used for the sending of all messages (can have more than a hundred). In our Spring config, we are using spring.jms.listener.acknowledge-mode=AUTO.
As a temporary solution, we are creating separate connection factories for cosnuming and producing. But the principal way to investigate is to enable qpid trace logs.

Hi @pavan-chakka , ServiceBus server side has a related fix recently for premium tier.
So if you still meet this error in premium tier, please add environment property PN_TRACE_FRM=1 and provide the log info here, thanks.

Hello raissi-oa & Netyyyy,  anyone find any solution for this issue, We are using premium tier and all off sudden I am experiencing this issue. I cant send  more than 100 messages.
Error: Caught exception trying rollback() when putting session back into the pool, will invalidate. jakarta.jms.IllegalStateException: The Session is closed
~Rudra


Moves Not Clickable or Expanding?

Is this just a me problem or are others experiencing it? On the character sheet, when I click the moves tab, no moves are clickable or expand as per the YT video. Any ideas?

Is this just a me problem or are others experiencing it? On the character sheet, when I click the moves tab, no moves are clickable or expand as per the YT video. Any ideas?

Are you on the appropriate build of Foundry? I think the highest supported version is 0.8.8.  If you are running a newer version, there are inconsistencies (such as what you're reporting).

Then it's a me problem. 🤣
Sorry I thought it was compatible with v9 based on the version notes. My bad.

Sorry I meant compatibility notes on the fvtt page.

I am not experiencing this issue, however, there are some newer issues that are surfacing due to some changes in the original raw data that the moves are derived from.
As a manual fix, you could try importing all the Starforged Moves from the compendium. Right-click on Starforged Moves --> Import All Content. This presumes that your Starforged Moves has all the moves in there.

Thank you I'll try that. I also get the attached error when I try install the system from the foundry menu, so I had to install it manually. That could be causing it too I guess?

There should be a . between v and 0.
https://raw.githubusercontent.com/DiceT/starforged/v.0.8.0/system.json

Cheers!
I wonder why that error comes up when I try use the official foundry system menu to install it? Is it just me getting this then?

No, it's not just you, I get the same zip not found error, even when using the https://raw.githubusercontent.com/DiceT/starforged/v.0.8.0/system.json URL.

Fixed in 0.8.1
https://raw.githubusercontent.com/dicet/starforged/0.8.1/system.json


"Error consuming stream: TypeError: Error in input stream" with Mistral Small/Medium code answers

When using Mistral Medium or Small, completions are often stopped in the middle of the answer when it include code, with error in the console :
"Error consuming stream: TypeError: Error in input stream"
Steps to reproduce :

Ask to improve a piece of code that's 700 tokens long
Completion of code get stopped out after ~300 tokens in my case

There appear to be errors in how Mistral and Perplexity are parsed on their ends.
This is a high priority bug.
If anyones sees this and wants to dig in great PR opportunity.

Perplexity is fixed.
I haven't been able to replicate the Mistral issue but the code for this is still ambiguous.
Eyeing this.

Fixed.


Add uint32/uint64 support for tf.tile

This PR tries to address the issue raised in #39405 where there is no uint32/uint64 support for tf.tile.
The related kernel impl for uint32 and uint64 has been added in this PR.
This PR fixes #39405
Signed-off-by: Yong Tang<EMAIL_ADDRESS>

This PR breaks tensorflow/lite/experimental/delegates/coreml:coreml_diff_test_IOS_12
Undefined symbols for architecture x86_64:
  "tensorflow::functor::Tile<Eigen::ThreadPoolDevice, unsigned int, int>::operator()(Eigen::ThreadPoolDevice const&, tensorflow::Tensor*, tensorflow::Tensor const&, absl::Span<int const>) const", referenced from:
      void tensorflow::TileOp<Eigen::ThreadPoolDevice, int>::HandleCaseImpl<(tensorflow::DataType)22>(tensorflow::OpKernelContext*, absl::Span<int const> const&, tensorflow::Tensor*) in libportable_tensorflow_kernels.lo(tile_ops_8df9402447fb5c99fae84bd69e6311f0.o)
  "tensorflow::functor::Tile<Eigen::ThreadPoolDevice, unsigned int, long long>::operator()(Eigen::ThreadPoolDevice const&, tensorflow::Tensor*, tensorflow::Tensor const&, absl::Span<long long const>) const", referenced from:
      void tensorflow::TileOp<Eigen::ThreadPoolDevice, long long>::HandleCaseImpl<(tensorflow::DataType)22>(tensorflow::OpKernelContext*, absl::Span<long long const> const&, tensorflow::Tensor*) in libportable_tensorflow_kernels.lo(tile_ops_8df9402447fb5c99fae84bd69e6311f0.o)
  "tensorflow::functor::Tile<Eigen::ThreadPoolDevice, unsigned long long, int>::operator()(Eigen::ThreadPoolDevice const&, tensorflow::Tensor*, tensorflow::Tensor const&, absl::Span<int const>) const", referenced from:
      void tensorflow::TileOp<Eigen::ThreadPoolDevice, int>::HandleCaseImpl<(tensorflow::DataType)23>(tensorflow::OpKernelContext*, absl::Span<int const> const&, tensorflow::Tensor*) in libportable_tensorflow_kernels.lo(tile_ops_8df9402447fb5c99fae84bd69e6311f0.o)
  "tensorflow::functor::Tile<Eigen::ThreadPoolDevice, unsigned long long, long long>::operator()(Eigen::ThreadPoolDevice const&, tensorflow::Tensor*, tensorflow::Tensor const&, absl::Span<long long const>) const", referenced from:
      void tensorflow::TileOp<Eigen::ThreadPoolDevice, long long>::HandleCaseImpl<(tensorflow::DataType)23>(tensorflow::OpKernelContext*, absl::Span<long long const> const&, tensorflow::Tensor*) in libportable_tensorflow_kernels.lo(tile_ops_8df9402447fb5c99fae84bd69e6311f0.o)
ld: symbol(s) not found for architecture x86_64
clang++: error: linker command failed with exit code 1 (use -v to see invocation)

I'll take a look at this build errors next week, if you have time to find what's going on before that I'd appreciate that. From the error message it seems that build error is reproducible with a regular x86 compiler.

Thanks @ezhulenev for the help
I don't have access to ios build. However, this PR adds two additional new files (for tile_ops functor template specialization). I also noticed similar tile_ops functor c++ files are added both in tile_ops rule and android_extended_ops_group2 rule of the tensorflow/core/kernels/BUILD file. My wild guess is that android_extended_ops_group2 was used for ios as well, thus the ios Undefined symbols error case if those two files are not in android_extended_ops_group2.
I updated the PR with two functor files added to android_extended_ops_group2 to give it a try. Maybe you can take a look and see if the issue could be resolved? If not I will try to see if I can find something else.

Thanks! Will try to pull it in if tooling will work, otherwise will do manual pull, unlikely earlier than tuesday.


Problem: /blocks page slot column does not display the global slot height

Cannot reproduce: https://minasearch.com/blocks

@n1tranquilla Maybe you can't repro because there is only the 1st epoch in what is deployed ATM?


Added edit name functionality to folder name

Issue that this pull request solves
Closes: #219 (issue number)
Proposed changes
Implement Edit functionality
Brief description of what is fixed or changed
The folder names can now be edited at anytime.
Types of changes
Put an x in the boxes that apply

[ ] Bugfix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update (Documentation content changed)
[ ] Other (please describe):

Checklist
Put an x in the boxes that apply

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] My changes does not break the current system and it passes all the current test cases.

Screenshots
Please attach the screenshots of the changes made in case of change in user interface

Other information
Any other information that is important to this pull request

Looks good to me!
Thanks for the contribution @Dhamodhar-DDR! :smiley:

@all-contributors please add @Dhamodhar-DDR for code.

@Dhamodhar-DDR, Would you like to try out #240, #241?
Thanks


Add tutorial for LOJ-1158 Anagram Division

I'll revise it soon.
Thanks.
On Tue, Aug 23, 2022 at 5:00 PM Rafid Bin Mostofa @.***>
wrote:

@hieudoan7 https://github.com/hieudoan7 any updates on this?
—
Reply to this email directly, view it on GitHub
https://github.com/lightoj-dev/problem-tutorials/issues/360#issuecomment-1223843553,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGKNNTIX4KCFTHASFDGAHRDV2SOMHANCNFSM5LYXHE2A
.
You are receiving this because you were mentioned.Message ID:
@.***>

--
Đoàn Minh Hiếu | Software Engineer
Phone: 038 5215 842
University Of Science HCMC
227 Nguyen Van Cu Street, Ward 4, District 5, Ho Chi Minh City


Bad exit scenario

Observed the following when shutting down landlord:
Slf4jLogger started
Unix ready on /var/run/landlord/landlord.sock
An internal error has occurred within landlord given process 0. Stacktrace follows.
java.lang.InterruptedException
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1039)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1328)
	at scala.concurrent.impl.Promise$DefaultPromise.tryAwait(Promise.scala:244)
	at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:254)
	at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:183)
	at scala.concurrent.Await$.$anonfun$ready$1(package.scala:191)
	at scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:53)
	at scala.concurrent.Await$.ready(package.scala:142)
	at akka.actor.CoordinatedShutdown$.$anonfun$initJvmHook$1(CoordinatedShutdown.scala:219)
	at akka.actor.CoordinatedShutdown$$anon$2.run(CoordinatedShutdown.scala:554)
Unable to access shutdown hooks; they will not be run until the JVM exits

Also noticed the following from one of the clients:
[INFO] [07/18/2018 08:47:00.203] [mqtt-gateway-akka.actor.default-dispatcher-2] [akka.actor.ActorSystemImpl(mqtt-gateway)] Server listening on /<IP_ADDRESS>:8083
[WARN] [07/18/2018 08:56:30.623] [mqtt-gateway-akka.actor.default-dispatcher-17] [RestartWithBackoffFlow(akka://mqtt-gateway)] Restarting graph due to failure. stack_trace:
Connection lost (32109) - java.io.EOFException
	at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:181)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.EOFException
	at java.io.DataInputStream.readByte(DataInputStream.java:267)
	at org.eclipse.paho.client.mqttv3.internal.wire.MqttInputStream.readMqttWireMessage(MqttInputStream.java:92)
	at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:133)
	... 7 more

[ERROR] [07/18/2018 08:56:32.517] [mqtt-gateway-akka.actor.default-dispatcher-3] [akka.actor.ActorSystemImpl(mqtt-gateway)] mqttEventsProcess failed, exiting
java.lang.IllegalArgumentException: Unknown tailer: 0
	at com.github.huntc.streambed.durablequeue.chroniclequeue.ReaderWriter$$anonfun$handle$1.applyOrElse(ChronicleQueue.scala:408)
	at akka.actor.Actor.aroundReceive(Actor.scala:517)
	at akka.actor.Actor.aroundReceive$(Actor.scala:515)
	at com.github.huntc.streambed.durablequeue.chroniclequeue.ReaderWriter.akka$actor$Timers$$super$aroundReceive(ChronicleQueue.scala:281)
	at akka.actor.Timers.aroundReceive(Timers.scala:51)
	at akka.actor.Timers.aroundReceive$(Timers.scala:40)
	at com.github.huntc.streambed.durablequeue.chroniclequeue.ReaderWriter.aroundReceive(ChronicleQueue.scala:281)
	at akka.actor.ActorCell.receiveMessage(ActorCell.scala:588)
	at akka.actor.ActorCell.invoke(ActorCell.scala:557)
	at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:258)
	at akka.dispatch.Mailbox.run(Mailbox.scala:225)
	at akka.dispatch.Mailbox.exec(Mailbox.scala:235)
	at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
	at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
	at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
	at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

[ERROR] [07/18/2018 08:56:32.581] [mqtt-gateway-akka.actor.default-dispatcher-3] [akka.dispatch.Dispatcher] null
com.github.huntc.landlord.JvmExecutor$ExitException
	at com.github.huntc.landlord.JvmExecutor$$anonfun$starting$1$$anon$3.checkExit(JvmExecutor.scala:483)
	at com.github.huntc.landlord.ThreadGroupSecurityManager.checkExit(ThreadGroupMappings.scala:222)
	at java.lang.Runtime.exit(Runtime.java:107)
	at java.lang.System.exit(System.java:971)
	at com.github.huntc.streambed.mqttgateway.MqttGateway$.$anonfun$main$2(MqttGateway.scala:394)
	at com.github.huntc.streambed.mqttgateway.MqttGateway$.$anonfun$main$2$adapted(MqttGateway.scala:388)
	at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:60)
	at akka.dispatch.BatchingExecutor$AbstractBatch.processBatch(BatchingExecutor.scala:55)
	at akka.dispatch.BatchingExecutor$BlockableBatch.$anonfun$run$1(BatchingExecutor.scala:91)
	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
	at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:81)
	at akka.dispatch.BatchingExecutor$BlockableBatch.run(BatchingExecutor.scala:91)
	at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:40)
	at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(ForkJoinExecutorConfigurator.scala:44)
	at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
	at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
	at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
	at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

The first exception is thrown by an application running in landlordd, see https://github.com/akka/akka/blob/v2.5.13/akka-actor/src/main/scala/akka/actor/CoordinatedShutdown.scala#L219 -- InterruptedException is not caught by NonFatal so it bubbles up.
Perhaps we should capture InterruptedException as they are to be expected when we interrupt an application's threads.

Unable to access shutdown hooks; they will not be run until the JVM exits

This is spurious logging in this case -- the JVM is shutting down so the applications running in landlordd cannot access the shutdown hooks. Perhaps we should not log if we can determine the JVM is shutting down.

Apparently InterruptedExceptions "should be converted to an ExecutionException and propagated to the caller"
https://github.com/scala/bug/issues/8938

Ah thanks for that link @dwijnand, some good info there. In our case, the caller is in the process of being unloaded / has already been so I don't think there's much we can do :stuck_out_tongue:
I think this issue can be closed now that #81 is in, but going to let it sit for a bit for now.


Icon just spinning around

Supp. best app ever. But now its not working. when i open it, it will just spin around. any suggestions?
Hi-5

I think this is a duplicate of  #350


Redis master slave replication not working

I configured redis instances in two machines. One as master, another as slave. When I start both the servers, I am seeing the following logs:
Slave:
[5160] 04 Apr 15:19:28.093 * Connecting to MASTER...
[5160] 04 Apr 15:19:28.093 * MASTER <-> SLAVE sync started 0 clients connected (0 slaves), 461204 bytes in use
[5160] 04 Apr 15:19:37.141 * Non blocking connect for SYNC fired the event.
[5160] 04 Apr 15:19:37.141 * Master replied to PING, replication can continue...
Master: [18832] 04 Apr 15:19:37.225 * Slave ask for synchronization
[18832] 04 Apr 15:19:37.227 * Starting BGSAVE for SYNC
[18832] 04 Apr 15:19:37.229 * Foreground saving ...
[18832] 04 Apr 15:19:37.236 * DB saved on disk
[18832] 04 Apr 15:19:37.238 * Foreground saving terminated with success
INFO Command in both Master and Slave gives the following outputs:
Master:
Replication
role:master
connected_slaves:1
slave0:<IP_ADDRESS>,6379,wait_bgsave
Slave:
Replication
role:slave
master_host:<IP_ADDRESS>
master_port:6379
master_link_status:down
master_last_io_seconds_ago:-1
master_sync_in_progress:1
master_sync_left_bytes:-1
master_sync_last_io_seconds_ago:6
master_link_down_since_seconds:261
slave_priority:100
slave_read_only:1
connected_slaves:0
Replication is not completed as the rdb file is not copied to the slave. I feel the process is struc in BGSAVE. Can someone Please help me to fix this issue. TIA

Hi @kksarathy
is this the same problem you reported in https://github.com/MSOpenTech/redis/issues/440?
Thank you.

I'm closing this issue, since it is a dup of #440.


MIM-152: show nationalRegistrationNumber and contactCode for applicants

@momentiris OfferApplicant type does not currently have the fields nationalRegistrationNumber and contactCode since we didn't need them previously. The columns for these fields added in this PR will therefore be empty in the OfferRound-tab. I think we should add them to the table and update the type. Any cons with doing this? Awaiting your reply before I continue with this :)
https://linear.app/mimer-onecore/issue/MIM-152/medarbetarportalen-skall-visa-personnummer-och-kundnummer-for-sokande

@driatic
No need to add them to the offer_applicant table I think. Should be able to just retrieve them from applicant when getting offer applicants, like we've done for applicantApplicationDate and applicantName(?)

@momentiris great!


Provide ability to reset index and time index on DataTable via method call

Currently if an index or time index is set on a DataTable they can be reset by calling dt.index = None or dt.time_index = None. However, this modifies the existing DataTable in place.
If we attempt to call dt.set_index(None) to reset the index, an error is raised. We should either update the existing set_index and set_time_index methods to allow a None value which will reset the index, or add new reset_index  and reset_time_index methods.
To be most consistent with pandas, the approach should be to create new reset_index and reset_time_index methods on DataTable which return a new DataTable object with the index cleared.
New tests should also be added to test these methods.

we should implement this after #483. Ice boxing for now.

With the accessor approach calling df.ww.set_index(None) or df.ww.set_time_index(None) are valid calls and no longer result in an error.
@gsheni, @tamargrey Do you think we need to implement reset_index and reset_time_index methods, or can we close this issue?

If I were a user I'd probably go looking for a reset_index function before supplying the set_index function with None, but this probably isn't super pressing.
Another difference is also that the change only happens inplace now, and if we view this issue as there being a problem with
uneven behavior between the two index setters, then that problem no long exists.


Use -std=c++17 in verilated.mk

Checklist

[X] Used a personal fork of the feedstock to propose changes
[X] Bumped the build number (if the version is unchanged)
[X] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[X] Ensured the license file is being packaged.

Work-around verilator/verilator#3588 by patching configure.ac to only try -std=c++17 ( I don't care about cygwin working).
It would be better to understand why Verilator needs to be so draconian about the -std switch and enhance verilated.mk to allow user-overrides of -std at verilation time but I'll leave that to the broader discussion in the upstream ticket referenced above.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin, please rerender


Replaced Breakage GRPC Credentials in Release 0.12.

This PR fixed #10 to make TMB be compatible with GRPC 0.12, which changed the credentials object.
Note that the CI check does NOT build the native network version of TMB. Therefore, the reviewer has to check it manually.

LTGM. @craig-chasseur -- Ok to merge?

LGTM. Merging.


Expose NuGet's -ConfigFile flag as user-settable cache variable

NuGet's -Configfile flag enables custom config files. If not set, NuGet falls back on the default behaviour and utilizes the global config file as per NuGet's documentation. See https://learn.microsoft.com/en-us/nuget/reference/cli-reference/cli-ref-install

Looking good, merging now. Thanks for the PR.


Use spamassassin to evaluate score

Twitch name: defiantcookie
This code splits out invoices to an email format, and then forwards the message to Spam assassin to evaluate if it's spam.
python python/spamassassin.py

Processing file: invoices/1.txt
Spamassassin score of 7.9

Needs to install spam assassin
sudo apt-get install spamassassin

And the spam assassin client
pip install spamassassin_client

Can't you also "teach" SpamAssassin via https://cwiki.apache.org/confluence/display/SPAMASSASSIN/HowScoresAreAssigned to "specialize" it to these kind of spam invoices?


Update readthedocs build to python 3.8

JAX dropped 3.7 and its latest release 0.4.1 is not on 3.7. We should move to 3.8 too.

Thanks @IvyZX @cgarciae


Counting channels & Handling empty masks

I want to train on greyscale images with only one colour channel and I also have corresponding masks (see example images below) as well as the parameters that I think are appropriate - nevertheless the output is that a model would be trained on two channels. Is this just a confusing indication or is something actually going wrong? Maybe you can make the output more intuitive.
python -m cellpose --train --dir /train/ --test /test/ --chan 0 --use_gpu --img_filter _img --train_size --mask_filter _masks --save_tif --diameter 30. --look_one_level_down --pretrained_model cyto --exclude_on_edges
2021-07-07 15:38:27,125 [INFO] WRITING LOG OUTPUT TO /home/saskra/.cellpose/run.log
2021-07-07 15:38:33,481 [INFO] ** TORCH CUDA version installed and working. **
2021-07-07 15:38:33,481 [INFO] >>>> using GPU
2021-07-07 15:39:35,642 [INFO] >>>> pretrained model /home/saskra/.cellpose/models/cytotorch_0 is being used
2021-07-07 15:39:35,643 [INFO] >>>> during training rescaling images to fixed diameter of 30.0 pixels
2021-07-07 15:39:38,119 [INFO] train channels = 2
2021-07-07 15:39:39,595 [INFO] test channels = 2
2021-07-07 15:39:39,595 [INFO] NOTE: computing flows for labels (could be done before to save time)
100%|█| 378/378 [00:51<00:00,  7.27it/s]
2021-07-07 15:40:34,187 [INFO] NOTE: computing flows for labels (could be done before to save time)
100%|█| 252/252 [00:45<00:00,  5.51it/s]
2021-07-07 15:41:23,214 [INFO] >>>> training network with 2 channel input <<<<
2021-07-07 15:41:23,215 [INFO] >>>> saving every 100 epochs
2021-07-07 15:41:23,215 [INFO] >>>> median diameter = 30
2021-07-07 15:41:23,215 [INFO] >>>> LR: 0.20000, batch_size: 8, weight_decay: 0.00001
2021-07-07 15:41:23,215 [INFO] >>>> ntrain = 378
2021-07-07 15:41:23,215 [INFO] >>>> ntest = 252
2021-07-07 15:41:23,215 [INFO] (2, 480, 480)
2021-07-07 15:41:34,900 [INFO] Epoch 0, Time 11.7s, Loss 3.5584, Loss Test 4.5683, LR 0.0000

By the way, if I let it go on, this is what happens:
python -m cellpose --train --dir /train/ --test /test/ --chan 0 --use_gpu --img_filter _img --train_size --mask_filter _masks --save_tif --diameter 30. --look_one_level_down --pretrained_model cyto --exclude_on_edges --n_epochs 5
2021-07-07 16:48:43,435 [INFO] WRITING LOG OUTPUT TO /home/saskra/.cellpose/run.log
2021-07-07 16:48:49,193 [INFO] ** TORCH CUDA version installed and working. **
2021-07-07 16:48:49,193 [INFO] >>>> using GPU
2021-07-07 16:48:51,704 [INFO] >>>> pretrained model /home/saskra/.cellpose/models/cytotorch_0 is being used
2021-07-07 16:48:51,704 [INFO] >>>> during training rescaling images to fixed diameter of 30.0 pixels
2021-07-07 16:48:54,134 [INFO] train channels = 2
2021-07-07 16:48:55,546 [INFO] test channels = 2
2021-07-07 16:48:55,546 [INFO] flows precomputed
2021-07-07 16:48:56,634 [INFO] flows precomputed
2021-07-07 16:48:59,058 [INFO] >>>> training network with 2 channel input <<<<
2021-07-07 16:48:59,058 [INFO] >>>> saving every 100 epochs
2021-07-07 16:48:59,058 [INFO] >>>> median diameter = 30
2021-07-07 16:48:59,058 [INFO] >>>> LR: 0.20000, batch_size: 8, weight_decay: 0.00001
2021-07-07 16:48:59,058 [INFO] >>>> ntrain = 378
2021-07-07 16:48:59,058 [INFO] >>>> ntest = 252
2021-07-07 16:48:59,058 [INFO] (2, 480, 480)
2021-07-07 16:49:09,119 [INFO] Epoch 0, Time 10.1s, Loss 3.5584, Loss Test 4.5683, LR 0.0000
2021-07-07 16:49:18,793 [INFO] Epoch 1, Time 19.7s, Loss 1.2256, Loss Test 1.5243, LR 0.0222
2021-07-07 16:49:18,793 [INFO] saving network parameters to /train/models/cellpose_residual_on_style_on_concatenation_off_train_2021_07_07_16_48_57.451884
2021-07-07 16:49:28,817 [INFO] Epoch 2, Time 29.8s, Loss 1.1482, Loss Test 1.5053, LR 0.0444
2021-07-07 16:49:39,183 [INFO] Epoch 3, Time 40.1s, Loss 1.1992, Loss Test 1.5153, LR 0.0667
2021-07-07 16:49:49,650 [INFO] Epoch 4, Time 50.6s, Loss 1.0746, Loss Test 1.4968, LR 0.0889
2021-07-07 16:49:49,650 [INFO] saving network parameters to /train/models/cellpose_residual_on_style_on_concatenation_off_train_2021_07_07_16_48_57.451884
2021-07-07 16:49:49,737 [INFO] >>>> model trained and saved to /train/models/cellpose_residual_on_style_on_concatenation_off_train_2021_07_07_16_48_57.451884
2021-07-07 16:49:53,300 [INFO] train channels = 2
2021-07-07 16:49:55,581 [INFO] test channels = 2
Traceback (most recent call last):
  File "/home/saskra/anaconda3/envs/cellpose/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/saskra/anaconda3/envs/cellpose/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/saskra/PycharmProjects/cellpose/cellpose/__main__.py", line 300, in <module>
    main()
  File "/home/saskra/PycharmProjects/cellpose/cellpose/__main__.py", line 286, in main
    sz_model.train(images, labels, test_images, test_labels, channels=channels, batch_size=args.batch_size)
  File "/home/saskra/PycharmProjects/cellpose/cellpose/models.py", line 939, in train
    del train_data[i]
IndexError: list assignment index out of range

PS: The crash seems to be related to empty masks.

re: channels, yeah it's a bit weird it will always use two channels, unless you use the --all_channels flag. I would be wary of using this though as it's not very well tested. But it's fine to use two channels and have an empty one.
hmm what do you mean by empty masks?

hmm what do you mean by empty masks?

When I split my 3D image into individual layers, this also creates 2D images that do not contain cells, and this seems to be problematic for the program.


[utils] do not copy nix_name annotation to different object types

solves #936

Hi Julia.
Fixing this here is OK but doing this we inject very specific IO stuf into cor/utils.
I am super happy with this.
And moreover, if a user inject annotation in between object by itself the problem will still be here.
Could it be possible instead to make "annotation cleaner" inside NixIO before writting to remove annotation that have the wrong "type" ?

Hi Julia.
Fixing this here is OK but doing this we inject very specific IO stuf into cor/utils.
I am super happy with this.
Did you maybe forget a not in this sentence?
And moreover, if a user inject annotation in between object by itself the problem will still be here.
Yes if the user manually messes with the nix specific annotations, then the resulting nix file will be inconsistent, removing annotations of the wrong type wouldn't prevent this...
Could it be possible instead to make "annotation cleaner" inside NixIO before writting to remove annotation that have the wrong "type" ?
For now I will refactor the cleaning of the annotations into a separate utility function, then maybe when updating the nixio we can incorporate it there each time when writing to disk.

Did you maybe forget a not in this sentence?

Yes as you guess I gorgot the negation....

For now I will refactor the cleaning of the annotations into a separate utility function, then maybe when updating the nixio we can incorporate it there each time when writing to disk.

Ok.
Shal we merge so ?

Hello @JuliaSprenger! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file neo/utils/misc.py:

Line 561:1: E302 expected 2 blank lines, found 1

For now I will refactor the cleaning of the annotations into a separate utility function, then maybe when updating the nixio we can incorporate it there each time when writing to disk.

I did the refactoring in this module. @samuelgarcia Does this look better to you?

This lookfs good.


Create workflows for Atlas CI+CD definitions

source-control CD release steps
also should try moving execution of sleet.sh into azure container instances

duplicate #90


Feature/upgrade.yaml

Looks like the new package is using 4 spaces instead of 2 spaces now:

That's fixable, should be an encoder setting. Let me take a look

@rushtehrani Pushed up a fix.

Cool, spacing is good now. Any idea why ordering changed (right side is the old ordering)?

@rushtehrani I'm not sure about why the ordering changed. My guess it because of internal changes? I could do a sort on the data to ensure it's consistent.

@rushtehrani I'm not sure about why the ordering changed. My guess it because of internal changes? I could do a sort on the data to ensure it's consistent.

It looks like the older version was alphabetical, ideally we keep it the same.

@rushtehrani Roger, will adjust.

@rushtehrani Pushed up a fix to make it alphabetical, can you see if it looks good on your end?


Unable to view list of tables for a database when a lot of tables exist

I connect to a sql server database where surrounding systems dynamically create tables to partition data. The database currently has 18k tables. When I attempt to expand the database to view the tables list in the left-hand column the window essentially becomes unusable.
I can understand that this is not a common case and it may not be a high priority, but it would be nice for sqlectron to be able to handle displaying any number of tables in a database.

What exactly do you mean by becomes unusable?

The list of tables is too huge and take over the whole sidebar?
The app become too slow to use?
Only the scroll in the sidebar is too slow to use?

Unable to scroll sidebar, dozens of second delays to click any links, dozens of second delays to type into sql editor.


Use a difference list for arguments

It's not so great to append balanced lists; use a difference
list instead. This should improve splicing times when
using large records.

Thanks. However, I think I have a simpler way, after dinner.


About the invalid TLS certificate expiration notification of uptime

📑 I have found these related issues/pull requests
Uptime's https certificate expiration reminder is not available. I have tested many versions myself and found that this function is invalid, including the latest version
🛡 Security Policy

[X] I agree to have read this project Security Policy

Description
Uptime's https certificate expiration reminder is not available. I have tested many versions myself and found that this function is invalid, including the latest version
👟 Reproduction steps
Uptime's https certificate expiration reminder is not available. I have tested many versions myself and found that this function is invalid, including the latest version
👀 Expected behavior
Uptime's https certificate expiration reminder is not available. I have tested many versions myself and found that this function is invalid, including the latest version
😓 Actual Behavior
Uptime's https certificate expiration reminder is not available. I have tested many versions myself and found that this function is invalid, including the latest version
🐻 Uptime-Kuma Version
all
💻 Operating System and Arch
centos7
🌐 Browser
google
🖥 Deployment Environment
Uptime's https certificate expiration reminder is not available. I have tested many versions myself and found that this function is invalid, including the latest version
📝 Relevant log output
Uptime's https certificate expiration reminder is not available. I have tested many versions myself and found that this function is invalid, including the latest version

Repeating a sentence 8x does not mean filling out the form.
Especially if cert-expiry is active (UI fix is in v2.0) and if you are monitoring an https monitor would be interesting..
=> Since effort goes both ways, please fill out the form properly and we can talk


releasePokemon tested?

I'm using the releasePokemon call and I keep getting
[ReferenceError: Response is not defined]
I use the exact same code and call evolvePokemon and it works perfectly, so I was wondering if this is implementation error on my end or if something is wrong with the api.

That should have been fixed in 1.2.0. Can you make sure you are using the latest version on npm?

Ah, looks like it is fixed in 1.2


[BugFix][Cherry-Pick][Branch-2.5] Primary key table data separated by primary key and sort key  may be disordered after compaction (#25188)

If we create a primary key table that separates the primary key and the sort key, we should order segment data by the sort key but not the primary key. But when compaction is finished, the segment data may be out of order because in the heap merge of segment data, the HeapMergeIterator use the primary key as the basis for sorting data.

[FE Incremental Coverage Report]
:heart_eyes: pass : 0 / 0 (0%)

[BE Incremental Coverage Report]
:heart_eyes: pass : 8 / 8 (100.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
src/storage/merge_iterator.cpp
4
4
100.00%
[]

:large_blue_circle:
src/column/schema.cpp
4
4
100.00%
[]


Release v0.41.0

Before we merge, I will update basecoin-rs

https://github.com/informalsystems/basecoin-rs/pull/102


Add NEwton solver for blocked problems

https://github.com/FEniCS/dolfinx/issues/3352

Fixed in https://github.com/scientificcomputing/scifem/pull/35


How are we supposed to provide feedback when everything is labelled a support case

Genuinely curious, how are we supposed to provide feedback on the New Teams if you are telling people to open a support case?. I came here to provide similar feedback about the now removed notifications in channels feature. Someone already opened a feedback item for it, but it was recommended to open a case with support and the case was closed. How am I supposed to comment on that or upvote it to have it included back in?
I can't log a case with support as suggested above as that is for admins to log and I am but a lowly end user.

I know the product teams are always looking for user feedback and how to make SharePoint better. They keep a close tab on user feedback and it would be awesome if you could add your voice in User Voice
SharePoint: https://sharepoint.uservoice.com/.
Skype for Business: https://www.skypefeedback.com/.
You might find others have made a similar request that you can add to, or you can open a new one. Let us know here if you do so we can up-vote your request.
Thank you for your contribution to make the docs better! Much appreciated!


upgrade identity.user.account.association version

upgrade identity.user.account.association version

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/7839582769

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/7839582769
Status: success


SIGSEGV during join on large table

This Python script produces a segmentation fault in the join() call:
import pyarrow as pa

eight_mib = "xyzw" * (2048 * 1024)
gib = pa.array((eight_mib for i in range(128)), pa.string())
keys = pa.array(range(128), pa.int64())
left = pa.Table.from_pydict({"keys": keys, "gib": gib})

right_keys = pa.array(list(range(128)) * 4, pa.int64())
right = pa.Table.from_pydict({"keys": right_keys})

print("joining...")
left.join(right, "keys")
print("joined.")

The C++ call stack is:
#0  0x00007ffff43aba6a in arrow::compute::ExecBatchBuilder::AppendSelected(std::shared_ptr<arrow::ArrayData> const&, arrow::compute::ResizableArrayData*, int, unsigned short const*, arrow::MemoryPool*) () from /root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/pyarrow/libarrow.so.1200
#1  0x00007ffff43acfa7 in arrow::compute::ExecBatchBuilder::AppendSelected(arrow::MemoryPool*, arrow::compute::ExecBatch const&, int, unsigned short const*, int, int const*) () from /root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/pyarrow/libarrow.so.1200
#2  0x00007ffff67cbe44 in arrow::acero::JoinResultMaterialize::Append(arrow::compute::ExecBatch const&, int, unsigned short const*, unsigned int const*, unsigned int const*, int*) () from /root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/pyarrow/libarrow_acero.so.1200
#3  0x00007ffff67e0423 in arrow::acero::JoinProbeProcessor::OnNextBatch(long, arrow::compute::ExecBatch const&, arrow::util::TempVectorStack*, std::vector<arrow::compute::KeyColumnArray, std::allocator<arrow::compute::KeyColumnArray> >*) ()
   from /root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/pyarrow/libarrow_acero.so.1200
#4  0x00007ffff6802721 in arrow::acero::SwissJoin::ProbeSingleBatch(unsigned long, arrow::compute::ExecBatch) ()
   from /root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/pyarrow/libarrow_acero.so.1200
#5  0x00007ffff6825c07 in std::_Function_handler<arrow::Status (unsigned long, long), arrow::acero::HashJoinNode::Init()::{lambda(unsigned long, long)#8}>::_M_invoke(std::_Any_data const&, unsigned long&&, long&&) () from /root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/pyarrow/libarrow_acero.so.1200
#6  0x00007ffff67be225 in arrow::acero::TaskSchedulerImpl::ExecuteTask(unsigned long, int, long, bool*) ()
   from /root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/pyarrow/libarrow_acero.so.1200
#7  0x00007ffff67d5814 in std::_Function_handler<arrow::Status (unsigned long), arrow::acero::TaskSchedulerImpl::ScheduleMore(unsigned long, int)::{lambda(unsigned long)#1}>::_M_invoke(std::_Any_data const&, unsigned long&&) ()
   from /root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/pyarrow/libarrow_acero.so.1200
#8  0x00007ffff67baf47 in std::_Function_handler<arrow::Status (), arrow::acero::QueryContext::ScheduleTask(std::function<arrow::Status (unsigned long)>, std::basic_string_view<char, std::char_traits<char> >)::{lambda()#1}>::_M_invoke(std::_Any_data const&) ()
   from /root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/pyarrow/libarrow_acero.so.1200
#9  0x00007ffff67f9260 in arrow::internal::FnOnce<void ()>::FnImpl<std::_Bind<arrow::detail::ContinueFuture (arrow::Future<arrow::internal::Empty>, std::function<arrow::Status ()>)> >::invoke() () from /root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/pyarrow/libarrow_acero.so.1200
#10 0x00007ffff44d9505 in arrow::internal::FnOnce<void ()>::operator()() && ()
   from /root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/pyarrow/libarrow.so.1200
#11 0x00007ffff44d5c38 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::{lambda()#1}> > >::_M_run() () from /root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/pyarrow/libarrow.so.1200
#12 0x00007ffff543b4a0 in execute_native_thread_routine () from /root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/pyarrow/libarrow.so.1200
#13 0x00007ffff7850ac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#14 0x00007ffff78e2660 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Software versions: PyArrow 12.0.1, Python 3.11.6, Ubuntu 22.04.3.
If I change the pa.string() to a pa.large_string() then it works fine.
Component(s)
C++, Python

A variation is to define right_keys as follows:
right_keys = pa.array([0, 0], pa.int64())

Instead of a SIGSEGV, this results in an infinite loop with the following stack trace:
   from /root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/pyarrow/libarrow.so.1200
#1  0x00007ffff43ab901 in arrow::compute::ExecBatchBuilder::AppendSelected(std::shared_ptr<arrow::ArrayData> const&, arrow::compute::ResizableArrayData*, int, unsigned short const*, arrow::MemoryPool*) () from /root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/pyarrow/libarrow.so.1200
#2  0x00007ffff43acfa7 in arrow::compute::ExecBatchBuilder::AppendSelected(arrow::MemoryPool*, arrow::compute::ExecBatch const&, int, unsigned short const*, int, int const*) () from /root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/pyarrow/libarrow.so.1200
#3  0x00007ffff67d526b in arrow::acero::JoinResultMaterialize::AppendProbeOnly(arrow::compute::ExecBatch const&, int, unsigned short const*, int*) ()
   from /root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/pyarrow/libarrow_acero.so.1200
#4  0x00007ffff67e0953 in arrow::acero::JoinProbeProcessor::OnNextBatch(long, arrow::compute::ExecBatch const&, arrow::util::TempVectorStack*, std::vector<arrow::compute::KeyColumnArray, std::allocator<arrow::compute::KeyColumnArray> >*) ()
   from /root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/pyarrow/libarrow_acero.so.1200
#5  0x00007ffff6802721 in arrow::acero::SwissJoin::ProbeSingleBatch(unsigned long, arrow::compute::ExecBatch) ()
   from /root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/pyarrow/libarrow_acero.so.1200
#6  0x00007ffff6825c07 in std::_Function_handler<arrow::Status (unsigned long, long), arrow::acero::HashJoinNode::Init()::{lambda(unsigned long, long)#8}>::_M_invoke(std::_Any_data const&, unsigned long&&, long&&) () from /root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/pyarrow/libarrow_acero.so.1200
#7  0x00007ffff67be225 in arrow::acero::TaskSchedulerImpl::ExecuteTask(unsigned long, int, long, bool*) ()
   from /root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/pyarrow/libarrow_acero.so.1200
#8  0x00007ffff67d5814 in std::_Function_handler<arrow::Status (unsigned long), arrow::acero::TaskSchedulerImpl::ScheduleMore(unsigned long, int)::{lambda(unsigned long)#1}>::_M_invoke(std::_Any_data const&, unsigned long&&) ()
   from /root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/pyarrow/libarrow_acero.so.1200
#9  0x00007ffff67baf47 in std::_Function_handler<arrow::Status (), arrow::acero::QueryContext::ScheduleTask(std::function<arrow::Status (unsigned long)>, std::basic_string_view<char, std::char_traits<char> >)::{lambda()#1}>::_M_invoke(std::_Any_data const&) ()
   from /root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/pyarrow/libarrow_acero.so.1200
#10 0x00007ffff67f9260 in arrow::internal::FnOnce<void ()>::FnImpl<std::_Bind<arrow::detail::ContinueFuture (arrow::Future<arrow::internal::Empty>, std::function<arrow::Status ()>)> >::invoke() () from /root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/pyarrow/libarrow_acero.so.1200
#11 0x00007ffff44d9505 in arrow::internal::FnOnce<void ()>::operator()() && ()
   from /root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/pyarrow/libarrow.so.1200
#12 0x00007ffff44d5c38 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::{lambda()#1}> > >::_M_run() () from /root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/pyarrow/libarrow.so.1200
#13 0x00007ffff543b4a0 in execute_native_thread_routine () from /root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/pyarrow/libarrow.so.1200
#14 0x00007ffff7850ac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#15 0x00007ffff78e2660 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81```
We're looping through the following three instructions:

0x7ffff43a7a90 <_ZN5arrow7compute18ResizableArrayData25ResizeVaryingLengthBufferEv+80>  add    %ebx,%ebx                                               0x7ffff43a7a92 <_ZN5arrow7compute18ResizableArrayData25ResizeVaryingLengthBufferEv+82>  cmp    %ebx,%eax                                               0x7ffff43a7a94 <_ZN5arrow7compute18ResizableArrayData25ResizeVaryingLengthBufferEv+84>  jg     0x7ffff43a7a90 <_ZN5arrow7compute18ResizableArrayData25ResizeVaryingLengthBufferEv+80>
Here `%eax=1082130432` and `%ebx=0`.

I believe this corresponds to https://github.com/apache/arrow/blob/apache-arrow-12.0.1/cpp/src/arrow/compute/light_array.cc#L329-L331. Suppose `min_new_size` is slightly larger than 2**30. If `new_size` is initially some power of two, it will double until it hits 2**30; and then it will try to double again, but overflow to -2147483648; and then try to double again, and become 0.

Oddly, the duplicate value in `right_keys` is essential to reproduce the bug. If I set `right_keys = pa.array([0, 1], pa.int64())` then it completes successfully.

Replacing `pa.string()` with `pa.large_string()` also makes the bug go away.

Took a look at this, here are my findings.
First some trivial answers to related concerns:

If I change the pa.string() to a pa.large_string() then it works fine.

Because only string() type goes to swiss join, which leverages the light array stuff, which is problematic (detailed later). large_string() takes another code path which is regular hash join impl, which doesn't have this problem.

Oddly, the duplicate value in right_keys is essential to reproduce the bug. If I set right_keys = pa.array([0, 1], pa.int64()  then it completes successfully.

The essentiality of this failure is the overflow of the offsets in the resulting var length buffer (detailed later). So it is necessary for the right table to contain enough duplicate keys to explode the join result, which will trigger the overflow. E.g., the left table has 128 8mb-sized string rows, so if the right table contains 4 (or more) matches per row in left, then the result will have 128 * 8mb * 4 = 4gb data, which will overflow to zero if using uint32_t as offset.
Now the detailed explanation of the segmentation fault (didn't look much on the infinite loop case, but I believe they have essentially the same cause):
The result of the join will contain 128 * 4 = 512 rows. For the string column in the left table, each row has 8mb-sized string. So the result will have a string column with 8mb * 512 = 4gb-sized data.
When ExecBatchBuilder appends this data, it first calculates the offsets for each row. Specifically, for the last (512-th) row, which occupies [4gb - 8mb, 4gb) bytes, we'll write its offset as offsets[512] = 4gb. Unfortunately, in the following code
https://github.com/apache/arrow/blob/bcaeaa8c2d970b81249cfba019475598e3d3109f/cpp/src/arrow/compute/light_array.cc#L594
sum will overflow to 0 when reaching 4gb as it is uint32_t.
And then when allocating the buffer for the string data, the following code
https://github.com/apache/arrow/blob/bcaeaa8c2d970b81249cfba019475598e3d3109f/cpp/src/arrow/compute/light_array.cc#L598
basically does nothing because it sees offsets[512] == 0 and thinks this buffer needs no resizing, leaving the data buffer in its initial size align(8b + 64b, 64b) = 128b.
Later when appending string data to it, segmentation fault happens when it writes to its 128-th byte.
I'm not sure if the API contract is upheld for this particular case, because for a string array whose element is 8mb each, simply >=512 rows will exceed the valid offset range (utint32_t). Maybe large string is a better choice.
But I think we should at least detect this kind of overflow and report an explicit error in this case.

PR #39383 drafted to give explicit error for cases in this issue. I appreciate that any reviewer could help to see if this is the right thing to do. Thanks.

@tmaxwell-anthropic As you mentioned:

I believe this corresponds to apache-arrow-12.0.1/cpp/src/arrow/compute/light_array.cc#L329-L331. Suppose min_new_size is slightly larger than 2^30. If new_size is initially some power of two, it will double until it hits 2^30; and then it will try to double again, but overflow to -2147483648; and then try to double again, and become 0.

This is another problem independent of what I discovered for the segmentation fault. I found this when I was debugging the UT for my fix. Now I've included the fix for the infinite loop in my PR as well.

Great, thank you for looking into this!
I think switching to large_string is the right solution for my case. But it will be very nice to have a clear error message instead of a segfault/hang when this happens. :)

found this when I was debugging the UT for my fix. Now I've included the fix for the infinite loop in my PR as well.

I've formalized the PR and hope someone could review soon.


Keep recognizing past first utterance

As discussed in #12 , the demo app stops recognition after the first pause in speech or ~1 minute of audio, whichever comes first. This PR lets recognition proceed as long as you are speaking, by breaking the API interaction into a series of discrete transactions.

To test this I added to .git/config
[remote "origin"]
        url = git@github.com:GoogleCloudPlatform/ios-docs-samples.git
        fetch = +refs/heads/*:refs/remotes/origin/*

the line
        fetch = +refs/pull/*/head:refs/remotes/origin/pr/*

as mentioned in https://gist.github.com/piscisaureus/3342247

I've this PR #23 and wonder whether depending on its application words are lost / duplicated / 'out of context' which I have to experiment myself. My guess is one need lots of glue code to fix sentences across streams.
I asked Google for a limit properties on the API to decide how much we want to spend. Setting ie limit=5 we still should handle END_OF_SPEECH before the 5 minutes have past.

I can't get this new code to compile, I get undeclared identifiers.

Also, I had to change the import of:
#import "google/cloud/speech/v1beta/CloudSpeech.pbrpc.h"
to:
#import "google/cloud/speech/v1/CloudSpeech.pbrpc.h"

@mygzi Please check out the @frakman1 comment, I'm also facing the same. Please guide us how can we run this so that we can look into the fix. Thanks


Spritesheet Margins

Make sure that sprite sheet works with the pixel editor spritesheets.  It seems like margin 0 does not work with a spritesheet saved as 0 on pixel editor.
Change the order of the parameters so that name comes before margin.
Also make sure to update the docs stating that margin is optional.

Finished.