Alerts gone after pod reschedule

Bug Description
While testing https://github.com/canonical/cos-proxy-operator/pull/136, prometheus pod got rescheduled, and all alerts were gone.
juju show-unit has alerts:
prom/0:
  workload-version: 2.50.1
  opened-ports: []
  charm: ch:amd64/focal/prometheus-k8s-189
  leader: true
  life: alive
  relation-info:
  - relation-id: 6
    endpoint: metrics-endpoint
    cross-model: true
    related-endpoint: downstream-prometheus-scrape
    application-data:
      alert_rules: '{"groups": [{"name": "juju_luca_30d8d8d_ubuntu_0_alert_rules",
        "rules": [{"alert": "CheckConntrackNrpeAlert", "expr": "avg_over_time(command_status{juju_unit=''ubuntu/0'',command=''check_conntrack''}[15m])
        > 1 or (absent_over_time(command_status{juju_unit=''ubuntu/0'',command=''check_conntrack''}[10m])
# ...

and the alerts are indeed on disk:
❯ jsshc prometheus prom/0 cat /etc/prometheus/rules/juju_juju_luca_30d8d8d_ubuntu_0_alert_rules_metrics-endpoint_6.rules
groups:
- name: juju_luca_30d8d8d_ubuntu_0_alert_rules
  rules:
  - alert: CheckConntrackNrpeAlert
    annotations:
      description: "Check provided by nrpe_exporter in model {{ $labels.juju_model\
        \ }} is failing.\nFailing check = {{ $labels.command }}\nUnit = {{ $labels.juju_unit\
# ...

but the webui shows nothing:
❯ curl <IP_ADDRESS>:9090/api/v1/alerts
{"status":"success","data":{"alerts":[]}}

kubectl logs seem fine:
2024-05-28T13:30:04.558Z [prometheus] ts=2024-05-28T13:30:04.558Z caller=main.go:1324 level=info msg="Loading configuration file" filename=/etc/prometheus/prometheus.yml
2024-05-28T13:30:04.559Z [prometheus] ts=2024-05-28T13:30:04.559Z caller=main.go:1361 level=info msg="Completed loading of configuration file" filename=/etc/prometheus/prometheus.yml totalDuration=1.795905ms db_storage=780ns remote_storage=670ns web_handler=160ns query_engine=520ns scrape=155.801µs scrape_sd=38.728µs notify=1.13µs notify_sd=510ns rules=1.142212ms tracing=5.54µs
2024-05-28T13:30:04.559Z [prometheus] ts=2024-05-28T13:30:04.559Z caller=main.go:1103 level=info msg="Server is ready to receive web requests."

Environment
Controller  Model  User   Access     Cloud/Region         Models  Nodes    HA  Version
j34         pg     admin  superuser  microk8s/localhost        2      1     -  3.4.2
lxd2*       luca   admin  superuser  localhost/localhost       2      1  none  3.1.7

Relevant log output
❯ jssl prom/0 --days=11
Time                        Type       Status       Message
28 May 2024 09:12:52-04:00  juju-unit  allocating
28 May 2024 09:12:52-04:00  workload   waiting      installing agent
28 May 2024 09:13:17-04:00  workload   waiting      agent initialising
28 May 2024 09:13:50-04:00  workload   maintenance  installing charm software
28 May 2024 09:13:50-04:00  juju-unit  executing    running install hook
28 May 2024 09:13:54-04:00  juju-unit  executing    running prometheus-peers-relation-created hook
28 May 2024 09:13:56-04:00  juju-unit  executing    running leader-elected hook
28 May 2024 09:13:59-04:00  workload   active
28 May 2024 09:14:00-04:00  juju-unit  executing    running prometheus-pebble-ready hook
28 May 2024 09:14:03-04:00  juju-unit  executing    running database-storage-attached hook
28 May 2024 09:14:05-04:00  juju-unit  executing    running config-changed hook
28 May 2024 09:14:09-04:00  workload   waiting      Waiting for resource limit patch to apply
28 May 2024 09:14:59-04:00  juju-unit  error        hook failed: "start"
28 May 2024 09:15:04-04:00  juju-unit  executing    running start hook
28 May 2024 09:15:08-04:00  juju-unit  executing    running prometheus-pebble-ready hook
28 May 2024 09:15:21-04:00  juju-unit  idle
28 May 2024 09:15:51-04:00  juju-unit  executing    running metrics-endpoint-relation-created hook
28 May 2024 09:15:54-04:00  juju-unit  executing    running metrics-endpoint-relation-changed hook
28 May 2024 09:15:56-04:00  juju-unit  executing    running metrics-endpoint-relation-joined hook for remote-2c369e446bcc43d58ca9ab95eb920c5c/0
28 May 2024 09:15:58-04:00  juju-unit  executing    running metrics-endpoint-relation-changed hook for remote-2c369e446bcc43d58ca9ab95eb920c5c/0
28 May 2024 09:16:01-04:00  juju-unit  executing    running metrics-endpoint-relation-changed hook
28 May 2024 09:16:03-04:00  juju-unit  idle
28 May 2024 09:19:22-04:00  workload   active
28 May 2024 09:22:23-04:00  workload   maintenance  stopping charm software
28 May 2024 09:22:23-04:00  juju-unit  executing    running stop hook
28 May 2024 09:22:24-04:00  workload   active
28 May 2024 09:22:27-04:00  juju-unit  idle
28 May 2024 09:22:27-04:00  workload   maintenance
28 May 2024 09:30:01-04:00  juju-unit  executing    running upgrade-charm hook
28 May 2024 09:30:06-04:00  juju-unit  executing    running config-changed hook
28 May 2024 09:30:09-04:00  juju-unit  executing    running start hook
28 May 2024 09:30:11-04:00  juju-unit  executing    running prometheus-pebble-ready hook
28 May 2024 09:30:14-04:00  juju-unit  executing    running metrics-endpoint-relation-changed hook
28 May 2024 09:30:29-04:00  juju-unit  idle
28 May 2024 23:32:26-04:00  workload   active

Additional context
No response

Oops, was looking at api/v1/alerts instead of api/v1/rules. Closing!


Concurrent processing of run

Given https://github.com/sbt/sbt/issues/2798 and https://github.com/sbt/sbt/issues/2807
steps

Start sbt server on terminal1 where a build is located: sbt server
Start sbt client on terminal2 from anywhere like ~/temp/: sbt client localhost:5001
On terminal1 project echo-server
On terminal2 project echo-client
On terminal1 type run
On terminal2 type test

expectation
On terminal1 blocks on run, on terminal2 I see the test results. In other words, run doesn't block other commands.
note
The command processing should prevent an incoming command from making destructive changes to running jobs. The alternative might be to export to JAR and copy the JAR with some hash.

@eed3si9n is this done with background run?

I guess so.


Add tests for the ObjectPresence checks

Closing - this will be addressed one way or another in the new Python version.


fix a php warning

E_WARNING: sprintf(): Too few arguments

Why remove the post time/date entirely?

effectively ! not understand what the github client done !?


Add Binary Search Tree programs in java inorder,post order and preorder

In the Java folder, I would like to contribute Binary Search tree programs. Can you assign this task to me

https://hacktoberfest.digitalocean.com/


I'm working on a PR for Zig : How Do I test ?!!!

Problem : how do I test the developments?
I thought that building and installing into an obsidian vault should do it.
Doing a npm run build does not give me an artefact.
What am I missing here ?
thank you

I managed to find the compiled main.js and copy it to the vault

The only way to test is by compiling it and executing it on your own device. We plan to integrate automatic tests sometime down the wrote (see #121 )


AutoFormatExpression = '$<precision, 2:2><standard format, 0>;

[Enter feedback here]
AutoFormatExpression = '$<precision, 2:2><standard format, 0>;
There needs to be an ' at the end.

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

ID: 4b62aefc-7ada-dbb7-cc0b-81cd16a2e1ee
Version Independent ID: b196487a-58e7-b137-2581-5bb4b60aaf57
Content: AutoFormatType Property - Business Central
Content Source: dev-itpro/developer/properties/devenv-autoformattype-property.md
Service: dynamics365-business-central
GitHub Login: @SusanneWindfeldPedersen
Microsoft Alias: solsen

Thanks for catching this. The issue will be fixed with the next doc refresh.


Update Message's "with" builder.

This changes with() so that it follows the standard library pattern for
higher order functions. In particular, the function type argument is
declared with throws, which with() rethrows, and it is not given an
external parameter name.
This enables easy error handling using with() and closures that throw.

This is very nice.  Thanks a lot!


Add app icon to fastlane/f-droid

Any idea how to add. I think F-Droid should be automatically added it using the app icon.

@helloworld1 you have to add the icon here https://github.com/helloworld1/FreeOTPPlus/tree/master/fastlane/metadata/android/en-US/images
like
https://github.com/Darkempire78/OpenCalc/tree/main/fastlane/metadata/android/en-US

Thanks for the example. I have added the icon the same way. https://github.com/helloworld1/FreeOTPPlus/commit/5580c4413e088fcee9ae8449ec43b3576c6035a5


ID MLH intro saving answers logged in:
User feedback: language
(MLH_intro_saving_answers)

Question ID
MLH intro saving answers logged in

Details
this should make it to github

Variable being sought
MLH_intro_saving_answers

Package version
0.0.1

Filename
docassemble.MLHMotionRegardingChildSupport:data/questions/motion_regarding_child_support.yml

Success!


Update MD file on new branch 2017-11-26_21-32-29

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

split/updateTestRef1.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


NullReferenceException inside GetPropertyByName

https://github.com/AlexanderKrutov/DataTables.Queryable/blob/master/DataTables.Queryable/DataTablesRequest.cs#L254
The bug is here type.GetProperty(parts[0]).PropertyType. GetProperty returns null, so this will explode and is never caught. Obviously this was hard to catch because it only happens when you are accessing a nested property.

Thank you! The fix is included in 1.7.2.

@AlexanderKrutov You are a good man. Thanks for being so quick on these.


I am very frustrated - Bolt is stuck in a loop for days

Describe the bug
Hi there, I started instantly falling in love with Bolt. Kicked off 3 ideas and I cannot get passed certain level on at least two of them. I keep on giving the feedback and I am stuck in an endless loop with the same problem on both projects over and over again, just burning tokens. It went from 90% performance to 5%...on the meantime I am now offered upsells of tokens...not cool. I am looking for a reliable solution. I get it that its in beta, under development, etc. but if we get stuck in our workflows and we dont get any help, we cant be penalized with tokens consumptions...i am not sure how you can control this or if there is a way to fix this. I am not a coder so I dont know where to look at. I tried loot of things and nothing seems to work. Thank you for your help.
Link to the Bolt URL that caused the error
https://bolt.new/~/sb1-qzwh1q
Steps to reproduce
Just trying to test user registration gives always the same type of errors and wont allow me to move forward that step.
Expected behavior
To work
Screen Recording / Screenshot
The system sometimes recognizes there is an error, click on fix error, and then again the same thing over and over again in loop.
I couldnt find a way to start a "new" chat to see if that would help fix the issue...I noticed something similar happens to Claude for example when the context gets too long.
Platform

OS: MacOS Sequoia 15.1
Browser: Chrome Version 131.0.6778.70 (Official Build) (arm64)

Additional context
No response

I'm having the same issue in which it's stuck asking if it should try to fix a problem and I've tried 5 or 6 times now and it just keeps coming back with the same problem. Moreover, the program just shows a blank white screen now so the AI trying to fix the problem actually made it worse. I saw in the help section that you can rollback, but I don't see the option to do so anywhere

I´ve found that sometimes forking the project and working on that forked new version helps to get it unlocked. I know its not ideal, but is the only way I found so far to get going. I have reported the issues also to Bolt directly. Hope they can fix these soon.


Rmt channels 2

This is a draft to see what it looks like when RMT traits don't have CHANNEL as a generic parameter.
It seems to work, and I think the API is simpler. The one disadvantage is that we can no longer have a type that impls both, say, TxChannel<0> and TxChannel<1>.
Must

[ ] The code compiles without errors or warnings.
[ ] All examples work.
[ ] cargo fmt was run.
[ ] Your changes were added to the CHANGELOG.md in the proper section.
[ ] You updated existing examples or added examples (if applicable).
[ ] Added examples are checked in CI

Nice to have

[ ] You add a description of your work to this PR.
[ ] You added proper docs for your newly added features and code.

Sorry for letting this linger for so long. I don't have any strong opinions either way, this looks fine to me. @bjoernQ and @MabezDev can weigh in if they'd like.
If you'd still like to pursue this, would you be able to rebase this and get it to a mergeable state please? Otherwise we can close this for the time being.

Thanks for the reminder, I'd forgotten about this! I don't have a strong opinion either, but I do think it's a reasonable simplification so here's a rebased PR


Support common lisp macro.

Codecov Report

Merging #17 (d3f4ad9) into main (6a53e51) will increase coverage by 1.11%.
The diff coverage is 50.52%.

@@            Coverage Diff             @@
##             main      #17      +/-   ##
==========================================
+ Coverage   51.86%   52.98%   +1.11%
==========================================
  Files           6        5       -1
  Lines         615      653      +38
  Branches      321      335      +14
==========================================
+ Hits          319      346      +27
- Misses         23       31       +8
- Partials      273      276       +3

Impacted Files
Coverage Δ

src/evaluator.cpp
50.00% <ø> (-6.25%)
:arrow_down:

include/lisp/parser.h
43.25% <47.91%> (+6.41%)
:arrow_up:

include/lisp/metaParser.h
64.17% <54.16%> (+2.11%)
:arrow_up:

include/lisp/evaluator.h
57.48% <62.50%> (+0.50%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 6a53e51...d3f4ad9. Read the comment docs.


The "samples" link goes to a 404 on the Spring for GgraphQL Docs Page.

The docs page is here: https://spring.io/projects/spring-graphql
The link is the "samples" link that navigates to https://github.com/spring-projects/spring-graphql/tree/main/samples which throws a 404.
Is the link available? Do the samples exist?

See the samples section in the current documentation . Where are you seeing this link?

We've updated the project page on spring.II - thanks for letting us know!

Thanks @bclozel. 👍🏻


Attachments should be downloadable

210 needs the ability to download attachments created by the grading container. Right now we have a mechanism for this for stdio, so we just need to generalize this approach.
One shortcoming right now is we protect this route and only let staff|admin access it; we might need to add a permissions block to attachments so that the grading container can control who can see an attachment.
A further extension for this is whether students can request a resource without it being an official grading run (e.g., can they get the attachments for all executions or just the ones they have 'paid' for?)
Since these last two will require changes to the attachment interface it might be worth considering both simultaneously.

@pcarterubc does this seem right? We can create any other issues you need for 210 next term and add them to the v2.0 milestone as well.

Right.  We need students to be able to view (not necessarily download) a copy of the Jacoco report that's generated by the container.  This report is copied to the output folder and the path to the root html document is included in the Attachments field of the json report.

After hearing from @pcarterubc we'll punt on the 'official grading run'. If courses don't want the attachment to be guessable they can build some kind of UUID into the file name to make this too hard to access (and just embed the name into a feedback report given to the student). We will still add permissions though because some guessable URLs should be admin/staff only (e.g., stdio.txt)

@pcarterubc This should be about ready to go. In your feedback field you can include links like:
https://cs210.ugrad.cs.ubc.ca/portal/resource/SOMEID/student/PATH/FILE.html
SOMEID comes from a container environment variable @nickbradley added for this purpose.
The /student/ is important: if you put /student/ it can be read by students, /staff/ by staff and admins, and /admin/ by admins only. This just lets you use the same mechanism we will use for the stdio that only admins can see (e.g., if you want to format other admin-specific files for them to access).  When you write the file to disk you actually need to include the /student/ in your path on disk (aka your file would be /student/coverage/index.html for your coverage report.

OK, thanks.  Will work on the container this weekend to set this up.
@nickbradley what is the name of the container environment variable that I use to retrieve SOMEID?

SOMEID will be passed to the container as the EXEC_ID env var.

@rtholmes Where should stdio.txt and report.json go (i.e., /admin or /staff)? I'm assuming /staff/stdio.txt so TAs can read it and /admin/report.json since no one really needs to read it. This needs to be set so Grader/AutoTest knows where to read/write those two files.

For 310 everything can go to staff/ right now; we could imagine putting the reports for private tests in admin/ but it isn't worth it for this upcoming year.

@nickbradley all reports/stdio can go in /staff for 310. I could imagine putting private report data in admin/ but it isn't worth it for the upcoming year.


update accounts template

in the release of version 4 invenioRDM - these templates are extended and the registeration form is configureable:

have a look into invenio-accounts & invenio-oautclient.
remove hardcoded idp name from shibboleth see here: https://github.com/tu-graz-library/invenio-theme-tugraz/blob/4aa72c003bfa9b227b146de17ff76bc1868bf60a/invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html#L28
to see here : https://github.com/inveniosoftware/invenio-saml/blob/7251a9e53a231f543c65aba6225de3891a8d7ab4/invenio_saml/templates/semantic-ui/invenio_saml/login_user.html#L29

check the extending user for registeration form - in order to add terms and conditions:
https://inveniordm.docs.cern.ch/releases/versions/version-v4.0.0/#terms-conditions


Notice for lemmy-ui-leptos

hanubeki-lemmy-themes will NOT support lemmy-ui-leptos as it doesn't use Bootstrap.

This doesn't always mean I won't make themes for lemmy-ui-leptos, but it will be separate project.


No run_forseti.sh script, forseti directory, or crontab entry on new deployment.

On a new deployment to a new project, there is no run_forseti.sh script in /home/ubuntu.  Please verify.
root@forseti-security4-vm:/home/ubuntu# ls -l
total 12688
drwxr-x--- 2 root root     4096 Jan 30 10:29 bin
-rwxr-xr-x 1 root root 11626864 Mar 30 19:49 cloud_sql_proxy
-rw-r--r-- 1 root root     2328 May 30 22:34 forseti_service_account.json
drwxr-x--- 3 root root     4096 Jan 30 10:29 include
-rw-r--r-- 1 root root     6925 May 30 22:27 install-logging-agent.sh
-rw-r--r-- 1 root root  1330859 May 25 06:01 protoc-3.2.0-linux-x86_64.zip
-rw-r----- 1 root root      538 Jan 30 10:29 readme.txt
-rw-r--r-- 1 root root      315 May 30 22:27 rules.yaml
-rw-r--r-- 1 root root     2360 May 30 22:31 service-account-key.json
root@forseti-security4-vm:/home/ubuntu#

Also, there are no /home/ubuntu/forseti-security-1.0.2 directory or crontab entry.

It's a VM problem.  It got really slow.  After restart, everything is there.


2.0 forms

Form fixes
Some things on this page aren't fixed yet since they fall under the accordion CSS which we're addressing in a separate PR.

@lauraGgit I think that's just an effect of the accordions being broken and the content is being shown while normally it would be hidden by default. I'll circle back to this after the accordion PR is merged.


Add neo-python to CLI

Problem
Solving issue https://github.com/CityOfZion/neo-local/issues/70
Solution
Coding GO adding the neo-python service to the CLI
Checklist

[x] I have ran the tests locally.
[x] I branched off of the develop branch and not master.
[x] I did not change the VERSION file.

All done, please review again


feat: Plugin could add "storageLayout" output automatically

I don't think it's necessary to have users manually add the "storageLayout" compiler output. The plugin could use extendConfig to automatically add it in the config if not already present. Here is an example use of extendConfig.

Is there any interest in a PR for this? It's very simple to add.

fixed in #19

Thanks. It seems there was a console.log left in the code:
https://github.com/aurora-is-near/hardhat-storage-layout/blob/b405e22cdf0ba26395b462da96cce5d764499d58/src/index.ts#L21
Also note that according to Hardhat recommendations the task to override is TASK_COMPILE_SOLIDITY_GET_COMPILATION_JOB_FOR_FILE.
https://github.com/NomicFoundation/hardhat/blob/5779b9f48ea303093b794fb46c37e7035567b44a/packages/hardhat-core/src/builtin-tasks/compile.ts#L205-L207


Fix issues

added test cases :

DeleteListingCommandTest
EditListingCommandTest
ViewListingsCommandTest
EditListingDescriptorTest

added classes:

EditListingDescriptorBuilder

add sample listings in CommandTestUtil
editL and delL is working!

Codecov Report

Merging #161 (15f1d89) into master (bc45cab) will increase coverage by 5.40%.
The diff coverage is 70.37%.

@@             Coverage Diff              @@
##             master     #161      +/-   ##
============================================
+ Coverage     40.51%   45.91%   +5.40%
- Complexity      478      538      +60
============================================
  Files           134      135       +1
  Lines          2698     2716      +18
  Branches        349      354       +5
============================================
+ Hits           1093     1247     +154
+ Misses         1533     1399     -134
+ Partials         72       70       -2

Impacted Files
Coverage Δ

...main/java/seedu/address/commons/core/Messages.java
0.00% <ø> (ø)

...seedu/address/model/listing/UniqueListingList.java
52.94% <0.00%> (+27.45%)
:arrow_up:

.../listing/exceptions/DuplicateListingException.java
0.00% <0.00%> (ø)

...l/listing/exceptions/ListingNotFoundException.java
0.00% <0.00%> (ø)

...ess/model/listing/IdContainsKeywordsPredicate.java
66.66% <66.66%> (ø)

...u/address/logic/commands/DeleteListingCommand.java
100.00% <100.00%> (+100.00%)
:arrow_up:

...edu/address/logic/commands/EditListingCommand.java
94.20% <100.00%> (+94.20%)
:arrow_up:

...main/java/seedu/address/model/listing/Listing.java
79.66% <100.00%> (+20.04%)
:arrow_up:

src/main/java/seedu/address/model/offer/Price.java
70.00% <0.00%> (ø)

...rc/main/java/seedu/address/model/ModelManager.java
60.00% <0.00%> (+8.79%)
:arrow_up:

... and 10 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Home Brew publication error

Link: https://github.com/weaveworks/tf-controller/runs/6543718640?check_suite_focus=true#step:17:109
cc @phoban01 could you please take a look?

fixed by 5b8b83e1b320a4640019ca8950b49b1ce69534d6


.Net: [dotnet] Is there a way to get the "final" prompt sent to OAI Api from a Semantic function?

We are using different semantic functions and we like the flexibility they provide with the skprompt.txt files. However, for audit/log purposes we'd like to get the final prompt that the semantic function is sending to OpenAI API, but I don't see it possible (happy to probe me wrong XD).
Another option is at least to get the raw content of the skprompt.txt file, and use the PromptTemplateEngine to get that final prompt, but don't see it possible either.
Thanks!

@luismanez, we have this available apart the telemetry offering available in Semantic Kernel to learn more on how to set this up see > https://devblogs.microsoft.com/semantic-kernel/unlock-the-power-of-telemetry-in-semantic-kernel-sdk/

Thanks @nacharya1 didn´t realise the prompt was also available in there (watched Dmytro Struk video too).
However, in my opinion, depending on the telemetry framework to get something so "owner" of the function seems a bit unnatural to me.
I mentioned log/audit, but is not just that. My function is also having a History variable with latest 5 messages, and I need to store the generated prompts in my DB. I really think the SemanticFunction object should expose the Prompt template somehow.
Thanks again.

@luismanez - we have #1714 in PR review which will help provide the hooks to capture "Get: Prompt generated by the current Kernel TemplateEngine before calling the LLM" and post hooks are slated for work apart of #2324.

@nacharya1 Is it possible to have an example on how to get the prompt that will be sent to the LLM using SK?
Thanks

bilalchraibi

+1

@nacharya1 Is it possible to have an example on how to get the prompt that will be sent to the LLM using SK?
Thanks

+1

This can be done now using the IPromptFilter interface, handling the OnPromptRendered method. I have some samples in this repo I created for a community event:
https://github.com/luismanez/netcoreconf-bcn-2024/blob/main/src/CozyKitchen/HostedServices/Demo07/FunctionFilterHostedService.cs

@luismanez your repo is excellent, many thanks!


Calling Storage::fake() doesn't remove tenant directories as one would expect inline with Laravel Docs

In a test I have a function calling Storage::fake(). Calling this function makes a tenant directory after the test is run I still have the tenant folders, after running a lot of tests this can clutter things quite a bit and can be annoying to manually delete them.
Steps to reproduce
/** @test */
public function an_example_test()
{
    tenancy()->init('test.localhost');
    Storage::fake('test');
}

Expected behavior
As per laravel documentation relating to mocking Storage the following is stated;

"By default, the fake method will delete all files in its temporary directory."

If this isn't possible it would be nice to at least have a setting in the config for;
'delete_storage_after_tenant_deletion' => false, // delete the tenant's storage after deleting the tenant
Your setup

Laravel version: [e.g. 6.2.0]
stancl/tenancy version: [2.1.0]
Storage driver: [DB]

Hi,
Nice catch.

By default, the fake method will delete all files in its temporary directory.

If the tenant folders are empty, then this is not a bug, since the temporary data is cleared like Laravel docs say.
I'll add a delete_storage_after_tenant_deletion option in 2.3.0.
For now you could for example set tenancy.filesystem.suffix_base to test_tenant and make test_tenant* part of your storage/.gitignore.

Great, thanks for adding that to the road map. In case someone has similar issues until next release they can also use something along the following in their TestCase to remove those folders.
protected function setUp(): void
{
    parent::setUp();

    config('tenancy.filesystem.suffix_base', 'tenant_test');
}

protected function tearDown(): void
{
    parent::tearDown();

    $directories = File::directories(base_path('storage'));
    foreach ($directories as $directory) {
        if (substr($directory, strrpos($directory, '/') + 1, 11) == 'tenant_test') {
            File::deleteDirectory($directory);
        }
    }
}

I will add this to docs once I update the test case example once I work on #250.

Great, thanks for adding that to the road map. In case someone has similar issues until next release they can also use something along the following in their TestCase to remove those folders.
protected function setUp(): void
{
    parent::setUp();

    config('tenancy.filesystem.suffix_base', 'tenant_test');
}

protected function tearDown(): void
{
    parent::tearDown();

    $directories = File::directories(base_path('storage'));
    foreach ($directories as $directory) {
        if (substr($directory, strrpos($directory, '/') + 1, 11) == 'tenant_test') {
            File::deleteDirectory($directory);
        }
    }
}

This causes my dentral application tests to fail because of this. For some reason I get a Target class [files] does not exist error. and it is due to the Facade File in the tearDown method.

Great, thanks for adding that to the road map. In case someone has similar issues until next release they can also use something along the following in their TestCase to remove those folders.
protected function setUp(): void
{
    parent::setUp();

    config('tenancy.filesystem.suffix_base', 'tenant_test');
}

protected function tearDown(): void
{
    parent::tearDown();

    $directories = File::directories(base_path('storage'));
    foreach ($directories as $directory) {
        if (substr($directory, strrpos($directory, '/') + 1, 11) == 'tenant_test') {
            File::deleteDirectory($directory);
        }
    }
}

This causes my dentral application tests to fail because of this. For some reason I get a Target class [files] does not exist error. and it is due to the Facade File in the tearDown method.

Try with:

use Illuminate\Support\Facades\File;

I made it this way:
Storage::fake('public', [
            'visibility' => 'public',
        ]);
        // this is because Tenant will override the runtime storage config with the one from the config
        config(['filesystems.disks.public' => [
            ...config('filesystems.disks.public'),
            ...Storage::disk('public')->getConfig(),
        ]]);


Store static images in S3

Summary
Moving forward, we need to store our images somewhere that's not in this GitHub repo.
Motivation
A deployed app shouldn't rely on local file structure to maintain static images. Plus, the more we add, the larger this GitHub repo gets - it's already taking me nearly a minute to clone.
Describe alternatives you've considered
No alternatives, just a next step to a functioning production application
Additional context
N/A

I felt this first-hand today trying to clone from a satellite internet connection where I've exceeded my cap. It's pretty much the same as dial-up at this point, and I've been at 33% for at least 10min now stuck between objects 621-660. (It also finished as I was typing up this issue... so c'est la vie.)
While this is definitely an extreme, I just wanted to vote that I support this idea, and also want to know if you have considered git-lfs storage? I have not used it but came across it while looking through the Blockstack repos at one point.
https://git-lfs.github.com/spec/v1
https://www.youtube.com/watch?v=uLR1RNqJ1Mw

Oh wow! I hadn't heard of Git LFS before. I'll definitely take a look at this!
And yeah... the more we add the heavier this repo gets. I think at the very least for the short-term, we could take a lot of the wireframes out of this repo.

This has been finished up


Emit metrics for Prometheus

Describe the bug
Port 9153 to emit metrics is no longer open
Expected behavior
port 9153 is open, and the path /metics reports TSDB data

bump

history:
because of how the explorer works, it can potentially track millions of paths for latency and other metrics.
since we're using a pull based metrics model, every n seconds when we pull the metrics from the explorer the data we're pulling can be an extremely large dataset.
what was happening was when metrics were enabled for the explorer, every n seconds the explorer latency would spike while the metrics were pulled.
Not to mention the latency measurements are essentially unusable since each path is different.
to resolve this for the API, @zone117x did some work to store similar paths into dedicated buckets.
for example, all /block/xxxx requests would be stored in a blocks bucket, etc.
I'll look for the PR in that repo that enabled this and link here shortly.

https://github.com/blockstack/stacks-blockchain-api/pull/502
https://github.com/blockstack/stacks-blockchain-api/blob/master/src/api/init.ts#L196-L226

Thanks @wileyj 🙏 Assigning to @aulneau so he can provide some input as well for anyone who might tackle this issue.

I can start looking at this if @aulneau can provide a bit more context?

Sure -- so we need to do a few things.
We are no longer using the custom server found here: https://github.com/blockstack/explorer/blob/main/server/index.js
We need to start using it again, and it needs to be updated in a few ways:

remove the SSR caching that is included in it
implement the same kind of middleware as in the api, see that here and the one we have in the server for the explorer
implement a path regex like in the api seen here
make sure to read this and review this

Basically these changes make it so that all types of paths put their metrics into a single respective bucket, meaning rather than having a single metrics entry per address that is navigated to, we have all metrics combined into a single address bucket.
@zone117x might be able to provide further guidance

The API PR first implementing the route condensing is actually https://github.com/blockstack/stacks-blockchain-api/pull/412

with the promster library - they have some defaults set that are capping our data.
https://github.com/tdeekens/promster
for the sample metric, http_request_duration_seconds_bucket they clearly state this in the readme:
http_request_duration_seconds: a Prometheus histogram with request time buckets in milliseconds (defaults to [ 0.05, 0.1, 0.3, 0.5, 0.8, 1, 1.5, 2, 3, 5, 10 ])

which corresponds with the data we've seen. It appears it's possible to modify this, but would require a code change (in the API and any other repo where these are not the defaults we want):
https://github.com/tdeekens/promster/blob/main/packages/metrics/src/create-metric-types/create-metric-types.ts#L173-L184
for the stacks-blockchain-api repo, this was addressed in this commit: https://github.com/blockstack/stacks-blockchain-api/commit/735874e45c1e198724e7d01ca9e4eec4d108706c

@wileyj Should I assign this issue to you? I'm not exactly sure where it stands in relation to the changes made by @fbwoolf with https://github.com/blockstack/explorer/pull/491

@wileyj Should I assign this issue to you? I'm not exactly sure where it stands in relation to the changes made by @fbwoolf with #491

That PR was put on hold and this issue was unassigned to me bc I started it prematurely before we could focus on performance/metrics. It needed further development/testing to get working.

@wileyj Should I assign this issue to you? I'm not exactly sure where it stands in relation to the changes made by @fbwoolf with #491

the comment I made was informational only based on something we learned from the stacks-blockchain-api

@fbwoolf do you have enough context on this issue already to t-shirt it? I presume it's "1+ weeks dev" as it currently stands?
@wileyj could you specify precisely what data is currently not available for the Explorer via Prometheus given where things stand today (i.e. just what data this issue would give us once executed)?

@fbwoolf do you have enough context on this issue already to t-shirt it? I presume it's "1+ weeks dev" as it currently stands?

I do think 1 week makes sense just bc there is some research involved in understanding what we need to do for this and how to test it. Where are the new labels? Am I supposed to apply it here?

Didn't mean to close this!

@MrHeidar Any chance we can revitalize this issue? It would be instrumental in learning more about how the Explorer functions internally.

We can review for prioritization again. @CharlieC3 any additional context re: the types of data points this will give us in particular (per https://github.com/hirosystems/explorer/issues/329#issuecomment-968726346)?

@markmhx I don't believe any custom data points were added in Explorer code beyond, so it should at least provide the promster defaults if not more:
https://github.com/tdeekens/promster#garbage-collection
https://github.com/tdeekens/promster#http-timings-hapi-express-marblejs-and-fastify

I'll close this issue for now


withsecureelements

Name of the app
withsecureelements
Integration
WithSecure Elements API
https://connect.withsecure.com/api-reference/elements#get-/organizations/v1/organizations
About
SOAR connector for WithSecure Elements API
It will have the following actions:

test_connectivity
device_details
on_poll
isolate_device

Hello @dlisiewicz, apologies for the long delay. Are you still interested in submitting this connector?


feat : Hex code color picker extension

Make a color code picker extension which will give hex code of color when picker/arrow/pointer will point

I want to work on this issue under JWoC

Sure @whiteHatpro ,All the best 👍

I want to work on this issue under JWoC

Hey Mohak , If you need any help in making this extension, Let me know on discord ,

( Actually , I forget to comment on this issue , That I want to work on this issue 2 days ago , And I have started to making it and the extension is ready today , Yaa I know its my mistake , But if you want any help , you can contact me on discord .  )

I want to work on this issue under JWoC

Hey Mohak , If you need any help in making this extension, Let me know on discord ,
( Actually , I forget to comment on this issue 2 days ago , That I want to work on this issue , And I have started to making it and the extension is ready today , Yaa I know its my mistake , But if you want any help , you can contact me on discord . )

@ayush-sleeping sure man!!

Completed - #61


MudMenuItem MudMenuItem in CellTemplate does not return an OnClick event

Bug type
Component
Component name
MudMenu
What happened?
In the CellTemplate I have a MudMenu with a MudMenuItem. Everything works correctly on the computer.
When I open the developer tools and switch to mobile here, the OnClick event doesn't fire.
It only happens when the developer tools are switched to mobile or the page is displayed on a mobile phone.
Expected behavior
That the event fires.
Reproduction link
https://try.mudblazor.com/snippet/mYcmFPvwqIhNtESI
Reproduction steps

Start the program. On the grid, click the menu and select New.
Open the developer tools. From there, select the mobile phone view. The snakbar is not displayed.

...
Relevant log output
No response
Version (bug)
6.0.17
Version (working)
No response
What browsers are you seeing the problem on?
Chrome
On what operating system are you experiencing the issue?
Windows
Pull Request

[ ] I would like to do a Pull Request

Code of Conduct

[X] I agree to follow this project's Code of Conduct

For me a workaround was to set the OnTouch handler as well. Maybe it helps.


Azure OpenAI: changelog snap for beta.9

This (very) minor change is the output of the prepare-release script to snap for an incremental beta.9 release of the Azure.AI.OpenAI package.

API change check
API changes are not detected in this pull request.


How to config read data from slave servers?

read-only operations are always use slave servers

if i have 3 slave server(A, B,C), then client will read from server A, B or C?

which server configuration do you use - master-slave, sentinel or cluster?

if i have 3 slave server(A, B,C), then client will read from server A, B or C?

Yes using random or roundrobin balancer which could be configured

Hi, could you please let me know how to define roundrobin balancer via config?

Here is an example
config.useMasterSlaveConnection()
    .setMasterAddress("<IP_ADDRESS>:6379")
    .setLoadBalancer(new RandomLoadBalancer())

useMasterSlaveConnection allows only single master. Can I use it together with useClusterServers and how? (I have a cluster of n masters & n * m slaves) @mrniko

useMasterSlaveConnection allows only single master. Can I use it together with useClusterServers and how? (I have a cluster of n masters & n * m slaves) @mrniko

@ldwnt
In Redis cluster you should use useClusterServers mode

@ldwnt
In Redis cluster you should use useClusterServers mode

So in useClusterServers mode, I don't need to tell which nodes are masters/slaves, and when I set readFrom to slave and loadBalancer to random/round robin, redisson dispatches read-only requests to slave nodes only and the load is balanced as instructed?

@ldwnt
How is your cluster managed? https://github.com/redisson/redisson/wiki/2.-Configuration#24-cluster-mode


Add screenshots for reactnative/TicTacToe.

thx!

@vpeschenkov can you see if you can find / get screenshots for other projects? https://github.com/dkhamsing/open-source-ios-apps/issues/431 :)

@dkhamsing Hi! Not sure about all projects, however I will add screenshots for some other projects.


translate email and use opening question mark

I was reviewing the spanish translation and I found the word Email instead of Correo electrónico also in spanish you need to open and close questions with both question marks :)

Coverage remained the same at 98.751% when pulling c2fe20d61de250aea15470cf1dcb81c8711e0ee2 on chukitow:hotfix/translate-email-to-spanish into eee0a8854cfdc309763197e3ef9b295008be85f6 on greyblake:master.


Any plan to support C codebase?

We can already generate doxygen to generate dependency graph. But, 3d interactive graph looks cool.

Agreed here! C and C++ would be awesome, even if it's an adaptor built on existing dep discovery systems that just plugs into the 3D force graph!

There's currently no plans for implementing C or C++ in the short term, but it looks like it's the most requested language.
I would first try to document how to implement new languages rather than implement them myself, to see if that attracts some contributions, as right now I cannot afford to deviate too much from the functionalities that I use in my day-to-day work, but if/when I have some buffer I will definitely try.

I have created a guide about how to contribute new languages to Dep Tree https://github.com/gabotechs/dep-tree/blob/main/docs/IMPLEMENTING_NEW_LANGUAGES.md.
If anyone wants to have some fun with it, be my guest.


Default and restrict threshold, add tooltips, default duplicate name and set feature flag

Closes #1383 #1384
Description

Do the following things:

Set the default value of threshold delta based on the metric type
Limit the threshold delta based on the metric type (there will be no error message or helper text, but the creation will be disabled if the user input invalid values)
Add tooltips for all the input fields and descriptions for metrics type dropdown, documentation: https://docs.google.com/document/d/1qq0lobOJQpXD1IowclSWaKhTT_qEPz56IMzvCeOfczY/edit
When duplicating the configuration, set the default duplicated name as mentioned in the issue
Add disableBiasMetrics feature flag in the dashboard config. When the flag is true, we do following:
a. Hide the bias tab
b. Disable all the routes related to bias metrics
c. Disabled all the trusty API network calls

How Has This Been Tested?

To test description 1:
Go to bias metrics configuration modal, change the metric type and see how the threshold delta value changes
To test description 2:
Go to bias metrics configuration modal, try to input some invalid batch size and threshold delta to see if the submit button is disabled
To test description 3:
Go to bias metrics configuration modal, and hover all the tooltips to see if the texts are accurate. Open metrics type dropdown to check the descriptions on the dropdown items
To test description 4:
Duplicate one bias configuration, see if the name field is set as expected
To test description 5:

Go to dashboard config CR
Set disableBiasMetrics to true
Go to the global model serving page, click on one of the models
There should be only the performance tab on the page, no bias tab
Change the tab in the URL from performance to bias, it should navigate you back to performance
Access the configuration page from the URL, it should navigate you back to performance
Check the network calls to make sure there is no call for the trusty AI server
Repeat every step from 4-7 on the project details page (because they have different URLs), and make sure the results are the same
Set Set disableBiasMetrics to false
Wait for 2 mins (or whenever the dashboard re-fetch the dashboard config again)
Repeat 3-8, make sure you can use bias metrics as normal

Test Impact

TBD
Request review criteria:

[x] The commits have meaningful messages (squashes happen on merge by the bot).
[ ] Included any necessary screenshots or gifs if it was a UI change.
[ ] Included tags to the UX team if it was a UI/UX change.
[x] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[x] The developer has manually tested the changes and verified that the changes work
[x] The developer has added tests or explained why testing cannot be added (unit tests & storybook for related changes)

Found one small bug with the modal:

When you first open the Configure bias metric modal - SPD is selected by default but no default violation is supplied - see screenshot. It works great once you change the value via the dropdown though.

Otherwise the modal features are great, I'll test the feature flag now.

This is super weird @alexcreasy because it should be no selection by default.

ok, I see the issue. I forgot to clear the metrics type selection when they close the modal.

Tested and only found one potential issue. When the feature flag is disabled, the service still makes call to prometheus for trusty data. Other than that it works well, doing a code review now.

All good, thanks Juntao!


Compiler bug found in wave 2

If you create this page extension (left) you will crash the compiler without any notice.
If I fix this to the right, the compiler give me other expected errors in the solution.

As text:
pageextension 60000 DemoExtension extends "Issued Reminder"
{
    Caption = 'Issued Reminder';
    layout
    {

    }
    actions
    {
        addafter(Print)
        {
            action("Print")
            {
                Caption = 'Print Custom';

                // Custom code here
            }
        }
    }
}

Hi @bvbeek thank you for reporting issue, it is a bug and we will take a look on it.

Hi @bvbeek, I investigated the issue it is by design. You can not use the PingPong addin with the Web Client, as it is developed for RTC only and not intended to be used in Web Client.
In 2019 Wave 2 there is a new AL feature “Page Background Task” that should be used instead of the Ping-Pong addin. For details see https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-page-background-tasks.
If you have further questions we suggest to open a support case or file a bug in Collaborate, to ensure that all Business Central users benefit from your catch as soon as possible.
To open a support case, you can:

Open a support request to CSS through the PartnerSource portal
Contact your Service Account Manager (SAM) in your local subsidiary to understand what is included in your contract as of support incident and PAH (Partner Advisory Hours). Your SAM might also direct you "step by step" how to open a support request or how to get credentials, if this is the first time for you or your company

The fix for this issue has been checked in to the master branch. It will be available in the bcinsider.azurecr.io/bcsandbox-master Docker image starting from platform build number 37795.
If you don’t have access to these images you need to become part of the Ready2Go program: aka.ms/readytogo
For more details on code branches and docker images please read:
https://blogs.msdn.microsoft.com/nav/2018/05/03/al-developer-previews-multiple-releases-and-github/
https://blogs.msdn.microsoft.com/freddyk/2018/04/16/which-docker-image-is-the-right-for-you/


Set collapse_navigation to true

This matches 0.2.4 behavior. Although it might not be desired behavior, the behavior of setting this to true can result in file size to explode and build times also.
This was caused by bf9faa98f0cb64aa3536528231ad9a3f48e819ac which effectly switched the logic of collapse_navigation

A little more context into the problem here, for anyone coming across this in the future:
When the collapse navigation option was moved into theme.conf, it got a default of False, however this is treated as a string in templates, so the default was still effectively True. Changes going into the 0.3.0 release default this to a boolean, so the default behavior once again changes, to a correctly reflected default of False. This PR reverts back to the 0.2.4 default of True, as this option balloons resources for builds and makes doc pages slow on large docsets.
We can probably re-enabled no collapsing with either:

Inspection of doc size and automatically set this option
Moving navigation to external JSON/HTML blob that is included, thus making the menu more dynamic and removing the need for duplicated menu on every html page


RuntimeError: The size of tensor a (4096) must match the size of tensor b (1024) at non-singleton dimension 0

Hi @Pangoraw
I am getting the below error when doing model.predict. Is there anything wrong I am doing?
padim = PaDiM(num_embeddings=100, device="cpu", backbone="resnet18")
for images, targets in tqdm(train_dataloader, total=len(train_dataloader)):
	padim.train_one_batch(images)

results = []
targets = []
for batch_images, batch_targets in tqdm(test_dataloader, total=len(test_dataloader)):
  distances = padim.predict(batch_images)

---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
Cell In[54], line 4
      2 targets = []
      3 for batch_images, batch_targets in tqdm(test_dataloader, total=len(test_dataloader)):
----> 4   distances = padim.predict(batch_images)
      5   # results.append(distances)
      6   # targets.append(batch_targets)

File ~/sec_disk/padim/padim/padim.py:151, in PaDiM.predict(self, new_imgs, params, compare_all)
    149     distances, _ = distances.min(dim=0)
    150 else:
--> 151     distances = mahalanobis_sq(embeddings, means, inv_cvars)
    152 return torch.sqrt(distances)

File ~/sec_disk/padim/padim/utils/distance.py:35, in mahalanobis_sq(x, mu, sigma_inv)
     23 def mahalanobis_sq(x: Tensor, mu: Tensor, sigma_inv: Tensor) -> Tensor:
     24     """
     25     The squared mahalanobis distance using PyTorch
     26     Params
   (...)
     33         dist: Distance tensor of size (h * w, 1)
     34     """
---> 35     delta = x - mu  # (h * w, c)
     36     temp = torch.matmul(sigma_inv, delta.unsqueeze(-1))  # (h * w, c, 1)
     37     dist = torch.matmul(delta.unsqueeze(1), temp)  # (h * w, 1, 1)

RuntimeError: The size of tensor a (4096) must match the size of tensor b (1024) at non-singleton dimension 0

Thanks

what is the size of images here ?
one should set corresponding size argument to PaDiM constructor

Okay, it's working now, thanks for the super quick response @Pangoraw. I am closing this issue.

Passing size parameter solves this issue.


unsafe_routes not working on Windows

Hi,
I have a Linux node that has access to another subnet that I was trying to expose via Nebula. I have the Linux node configured correctly, and I verified this is working by accessing the subnet using Nebula on my Android device. Now I'm attempting to access that same subnet from a Windows node, but as soon as I add a route under unsafe_routes in the Windows configuration file I get the following error:
level=error msg="Failed to get a tun/tap device" error="route MTU not supported in Windows"

I attempted some diagnosis of this myself and I think I may have discovered the problem. That error is coming from here:
https://github.com/slackhq/nebula/blob/b5b9d33ee753b510b316f15b503ecb11209fdf9b/overlay/tun_windows.go#L22-L24
Looking at the history of the file, newTun used to take both a routes and an unsafeRoutes parameter. It looks to me like the routes parameter was removed, and the unsafeRoutes parameter was renamed to just routes. But, I think this check was meant for the (old, now-removed) routes parameter and shouldn't apply to the unsafe routes (and thus should have been removed). Is this correct?
https://github.com/slackhq/nebula/commit/467e605d5e3fae0325ce7f8453b541504dfa3444#diff-a9abb9f33571cd8be9210630f273adc0967167c4ba9c5e05d8ba418741e36584
I did remove this check and rebuilt on my local machine and it seems to work as expected, but I'm not sure if there's something else I'm missing.
Thanks for making Nebula! I'm new to it but am liking it a lot so far.

I've seen this same issue (and fixed it in the same way)
Seems like the result of a refactor that wasn't 100% tested on windows.
I've just started working with this software, so I'm not too familiar with the codebase... but I imagine a regular contributor would be able to fix this without much issue... it just needs some eyes on it.

Using Nebula 1.5.0 on Windows resolved this for me.  Looks like there is already a fix in the code also, so will just wait for next release.


Explicitly use Ubuntu 20.04 and NodeJS 14

This matches the current default for the ubuntu-latest virtual environment.
The code generation step may depend on the NodeJS version. There is a CI job that checks the output of dist/ matches src/, so not enforcing a NodeJS version could lead to the job failing.

:tada:


has a bug under IE10

vue resource will add an 'undefined' string before url under IE10

Please provide a reproduction example.

Please follow the Vue.js issue template.
Briefly an issue should contain:

Dependency versions
Steps necessary to reproduce the issue you are running into.
A JSFiddle/JSBin/Codepen to demonstrate your issue. You could start with this template that already includes the latest version of Vue.

If no information is provided, this issue will be closed within 5 days. If the issue is closed please reopen when relevant information is provided.
Thanks.


Nick: Watch landroverkeyreplacement.com

Nick requests the watch of the watch_keyword landroverkeyreplacement\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

Approved by cigien in Charcoal HQ

landroverkeyreplacement\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.


PDF wont load orthanc with ohif setup

Describe the Bug
Hello everyone. Pdf is not loading on Orthanc + ohif v3 docker setup . It says No PDF viewer is installed. This was working properly with version 2. Any help will be appreciated. Thank you
Steps to Reproduce

See https://github.com/orthanc-server/orthanc-setup-samples/tree/master/docker/ohif-test.
See https://discourse.orthanc-server.org/t/ohif-plugin-is-displaying-mri-images-but-not-pdf-or-sr/4315

The current behavior
No online Pdf viewer installed
The expected behavior
PDF loads
OS
Ubuntu server
Node version
18
Browser
Edge 125.0.2535.96

The wrong BulkDataURI is being returned by the server - if you are going to use absolute URIs, you have to have the right absolute URI.
Also, when I manually adjusted the URL to be correct, then there are a couple of settings which aren't correct in the data source.  I've attached my working datasource to this issue.  Sorry, that won't paste, adding a copy of it:
window.config = {
  routerBasename: '/',
  extensions: [],
  modes: [],
  showStudyList: true,
  dataSources: [
    {
      friendlyName: 'Orthanc local',
      namespace<EMAIL_ADDRESS>      sourceName: 'dicomweb',
      configuration: {
        name: 'orthanc',

        wadoUriRoot: '/orthanc/dicom-web',
        qidoRoot: '/orthanc/dicom-web',
        wadoRoot: '/orthanc/dicom-web',

        qidoSupportsIncludeField: false,
        supportsReject: false,
        imageRendering: 'wadors',
        thumbnailRendering: 'wadors',
        enableStudyLazyLoad: true,
        supportsFuzzyMatching: false,
        supportsWildcard: true,
        staticWado: true,
        // Note orthanc does not have a singlepart retrieve for pdf or video, so exclude those two.
        singlepart: 'bulkdata',
        // The separate retrieve/decoding of bulkdata URIs to internal blobs which are URL accessible is addressed with this configuration:
        bulkDataURI: {
          enabled: true,
          relativeResolution: 'studies',
          // This is an example config that could potentially be used to fix the retrieve URL
          startsWith: 'http://localhost/',
          prefixWith: '/orthanc',
        },
        acceptHeader: ['multipart/related; type=application/octet-stream; transfer-syntax=*']
      },
    }],
  defaultDataSourceName: 'dicomweb',
};

I added a small PR with a working sample configuration file, and a small change to allow fixing the broken orthanc URLs.
https://github.com/OHIF/Viewers/pull/4262

The response that docker is returning is for the metadata for the PDF is below, when requesting on port 3003 eg on http://localhost:3003/orthanc/dicom-web/studies/..../series/..../metadata one gets
"00420011" :
{
"BulkDataURI" : "http://localhost/dicom-web/studies/1.2.276.0.7230<IP_ADDRESS>.2344313775.14992.1458058363.6979/series/1.2.276.0.7230<IP_ADDRESS>.1901948703.36080.1484835349.617/instances/1.2.276.0.7230<IP_ADDRESS>.1901948703.36080.1484835349.618/bulk/00420011",
"vr" : "OB"
},
However, there is no server running on http://localhost port 80.
For the server running on port 3003, the path would be:
http://localhost:3003/orthanc/dicom-web/studies/1.2.276.0.7230<IP_ADDRESS>.2344313775.14992.1458058363.6979/series/1.2.276.0.7230<IP_ADDRESS>.1901948703.36080.1484835349.617/instances/1.2.276.0.7230<IP_ADDRESS>.1901948703.36080.1484835349.618/bulk/00420011
Note the /orthanc/ as well as the port number.
Other acceptable URLs would be:
instances/1.2.276.0.7230<IP_ADDRESS>.1901948703.36080.1484835349.618/bulk/00420011
or the relative URL:
/orthanc/dicom-web/studies/1.2.276.0.7230<IP_ADDRESS>.2344313775.14992.1458058363.6979/series/1.2.276.0.7230<IP_ADDRESS>.1901948703.36080.1484835349.617/instances/1.2.276.0.7230<IP_ADDRESS>.1901948703.36080.1484835349.618/bulk/00420011
It is possible that last URL will double up on the /orthanc/dicom-web/ port - if so, this URL should work (but should be fixed as this isn't actually standards compliant - the two above ARE standards compliant)
/studies/1.2.276.0.7230<IP_ADDRESS>.2344313775.14992.1458058363.6979/series/1.2.276.0.7230<IP_ADDRESS>.1901948703.36080.1484835349.617/instances/1.2.276.0.7230<IP_ADDRESS>.1901948703.36080.1484835349.618/bulk/00420011
I would suggest the instances version of it.

I confirm I was able to update our test setup with the latest build and it works.  Thanks !

Hi @sedghi  and @wayfarer3130
I'm not sure we are 100% done with this issue :-(
As mentioned in my previous comment, one of our test-setup  works fine with v3.9.0-beta-56.  Note that, in this setup, I'm using the standard Docker image from OHIF and therefore serving OHIF on a dedicated nginx server on http://localhost:3003 with a reverse-proxy forwarding /orthanc to http://orthanc:8042.  This orthanc does not know that it is served at /orthanc and that's the reason why we need this new bulkDataURI.startsWith and bulkDataURI.prefixWith to fix the Orthanc bulkdDataURIs.  Everything works fine in this setup !
However, when we deploy OHIF and Orthanc together (e.g in this setup), we usually have our own nginx in front of both OHIF and Orthanc.  OHIF is reversed proxied at /ohif and Orthanc at /orthanc.
For this, we build our own version of OHIF with this Dockerfile - the only relevant difference with your build process is the PUBLIC_URL=/ohif/ option.
In this setup, Orthanc is aware that it is served at /orthanc and thanks to this configuration: ORTHANC__DICOM_WEB__PUBLIC_ROOT: "/orthanc-container/dicom-web/" the bulkDataURIs are correct.  However, in this setup, PDFs are not showing.
Steps to reproduce:

clone this repo and cd into docker/ohif
docker compose up --build
upload the sample with PDF study in http://localhost/orthanc-container/ui/app/
open the ohif viewer through http://localhost/ohif/viewer?StudyInstanceUIDs=1.2.276.0.7230<IP_ADDRESS>.2344313775.14992.1458058363.6979.  It seems it's not even trying to load the embedded PDF
by manually downloading the content of the BulkDataUri, curl http://localhost/orthanc-container/dicom-web/studies/1.2.276.0.7230<IP_ADDRESS>.2344313775.14992.1458058363.6979/series/1.2.276.0.7230<IP_ADDRESS>.1901948703.36080.1484835349.617/instances/1.2.276.0.7230<IP_ADDRESS>.1901948703.36080.1484835349.618/bulk/00420011 > /tmp/test.pdf we get a valid PDF file

Thanks for your help !
Alain

Again @sedghi and @wayfarer3130, are there any updates on the above. @amazy updated the issues that are yet to be resolved. Please help look into this. Please thanks

I have similar issues when using orthanc with ohif plugin behind an nginx proxy. Things that I found in the web such as changing configs singlepart, acceptheader, datasources in ohif configuration file did not help.

It isn't an OHIF issue - the problem is that the path being returned by Orthanc isn't the right path any longer.  There are configuration options now which can be used to deal with that, but without knowing your exact setup and examples of what the path coming back is in the metadata, and what the path should be, I can't suggest how to fix it on YOUR end.  Alternatively, orthanc could use relative paths, which do work correctly as long as OHIF is configured to allow that (should probalby make this a default config.)
If you give me the absolute path for a metadata file AND the snipped of metadata file containing the bulkdata URI, and the actual path that actually works on your system, then I can provide a configuration that works for that setup.  It won't work in general because you can configure a reverse proxy however you want and that doesn't rewrite metadata URLs.

I will also add documentation at https://docs.ohif.org/configuration/dataSources/dicom-web exactly how to configure the BulkDataURI setting for fixing incorrect relative paths.
The bits you probably need are from the original PR to allow changing the prefix path with:
 bulkDataURI: {
          enabled: true,
          relativeResolution: 'studies',
          // This is an example config that could potentially be used to fix the retrieve URL
          **startsWith: 'http://localhost/',**
          **prefixWith: '/orthanc/',**
        },

You need to remove bits of the path of startsWith and add the correct value for your back end with prefixWith.

It isn't an OHIF issue - the problem is that the path being returned by Orthanc isn't the right path any longer.  There are configuration options now which can be used to deal with that, but without knowing your exact setup and examples of what the path coming back is in the metadata, and what the path should be, I can suggest how to fix it on YOUR end.  Alternatively, orthanc could use relative paths, which do work correctly as long as OHIF is configured to allow that (should probalby make this a default config.)
If you give me the absolute path for a metadata file AND the snipped of metadata file containing the bulkdata URI, and the actual path that actually works on your system, then I can provide a configuration that works for that setup.  It won't work in general because you can configure a reverse proxy however you want and that doesn't rewrite metadata URLs.

@amazy  is this something we can work with. And can we try what @wayfarer3130 suggested?

@wayfarer3130 I just gave it a try again.
tl;dr: you may go to the last section directly
First, with the working test setup where OHIF is served as a standalone server on localhost:3003 and Orthanc is running on localhost but is exposed on localhost:3003/orthanc for the OHIF server.  In this scenario, Orthanc is not aware that it is being served on localhost:3003/orthanc so OHIF must correct the bulkdDataURI.
The PDF is loaded correctly:
.
Here is the OHIF configuration:
    dataSources: [
        {
          friendlyName: 'Orthanc local',
          namespace<EMAIL_ADDRESS>          sourceName: 'dicomweb',
          configuration: {
            name: 'orthanc',

            wadoUriRoot: '/orthanc/dicom-web',
            qidoRoot: '/orthanc/dicom-web',
            wadoRoot: '/orthanc/dicom-web',
        ...
            singlepart: 'bulkdata',
            acceptHeader: [ 'multipart/related; type=application/octet-stream; transfer-syntax=*'],
            bulkDataURI: {
              enabled: true,
              relativeResolution: 'studies',
              // In this scenario, Orthanc is not aware that is being served at http://localhost/orthanc/ so we must tell OHIF to fix
              // the bulkDataURI
              startsWith: 'http://localhost/',
              prefixWith: '/orthanc/',
            },
          },
        }],

Then, the second setup where OHIF and Orthanc are both behind the same reverse-proxy and are served at localhost/ohif and localhost/orthanc-container.  This time, Orthanc is aware that it is being served at localhost/orthanc-container.  You'll notice that Orthanc returns the correct BulkDataURI but, this time, OHIF does not even try to load the BulkData:

There, we assume we do not have to provide a specific OHIF configuration to correct Orthanc URIs since they are correct directly:
  dataSources: [
    {
      friendlyName: 'Orthanc local',
      namespace<EMAIL_ADDRESS>      sourceName: 'dicomweb',
      configuration: {
        name: 'orthanc',

        wadoUriRoot: '/orthanc-container/dicom-web',
        qidoRoot: '/orthanc-container/dicom-web',
        wadoRoot: '/orthanc-container/dicom-web',
    ...
        staticWado: true,
        singlepart: 'bulkdata',
        acceptHeader: [ 'multipart/related; type=application/octet-stream; transfer-syntax=*']
      },
    }],

Then, this time, I went one step further and provided OHIF with a bulkDataUri configuration:
        singlepart: 'bulkdata',
        acceptHeader: [ 'multipart/related; type=application/octet-stream; transfer-syntax=*'],
        bulkDataURI: {
          enabled: true
        },

And, there, the PDF is displaying fine.  So, to summarize, it seems that we were not just aware that we needed to enable bulkDataURI in all configurations.  I thought this configuration was only required to correct wrong bulkDataURIs from Orthanc.
So, if you confirm that this last remark is correct, we can close this issue and I will update all our samples.

Thank you for the testing on that - yes, the configuration is required to
enable the bulkDataURI fetching at all from the metadata responses.  That
is probably a change that should be made, plus the documentation of how to
configure the startsWith/prefix settings and the relative resolution
settings.  You can leave the issue open until I've done that and I will
have it closed against the PR to address those parts of the concern - I
might ask you to retest not needing the bulkDataURI configuration at all.

Message ID: @.***>

@amazy - could you try without the bulkdDataURI configuraiton on the branch from this PR:
https://github.com/OHIF/Viewers/pull/4607
Also please make any comments on the updated docs

@wayfarer3130 I confirm it works without the bulkDataUri config now !
The doc looks good to me too !
Thanks to all of you !


Make modules dir before copy modules into it

On my machine (with ArchLinux), when I do "mkkernel" I got an error said that $WDIR/lib/modules/$KERNEL_VERSION is not a dir. So create it before copy modules into it.

Hi @hamo, thanks for this!
I can only merge once you've executed the instructions in CONTRIBUTING.md. Let me know if you have, and I'll confirm!

@amscanne  Yes. I have done it. You can search by my github username hamo or email address hamo.by@gmail


feat(tasks): Add registry info task

This new task makes it possible to create pipelines that perform
registry replacements on the fly.

/hold

/hold cancel

/lgtm


Fixing tests

This PR fixes some tests that were not executed before and were failing after.
The AuthPolicyController test are marked as pending, because the reconciling cycle is failing as well. This will be addressed in a following PR.
Note: Tests should pass when merged.

tests failing.. should be passing


show diff even if author has not modified any data

@valearna will check the code to see how easy/difficult this will be to implement and report back.

ready to test

looks good


Mod not working?

I have the mod installed on my client and server and it's listed as running but there are no recipes for ore in the botany pots. Trying to place an iron ore block as the soil and an iron ingot as the seed does not work either.

Nevermind, it's the iron block that is needed as the soil. The description was just unclear.

So it's okay now?


Creator switcheroo

Switch SolrDocument attributes so creator returns the human-readable form instead of the JSON.  Instead expose the JSON as creator_json.  This should help us avoid having to override Hyrax views which expect a displayable string for creator.

We're keeping this around for now as it might be a good idea to pick up again later

I would love this to be finished but it would need a substantial migration of client data now.


Update README.md

The "Install" section was referring to older versions of the package (6 and 7), whereas, it should be (7 and 8).

@deniskyashif thanks for the PR, but it is correct (we moved to namespace'd package names in v7)


Can't watch next episode

After finishing an TV episode, the next one doesn't load up correctly. It either always loads the one I just watched when switching to a new ep, or it loads only audio, with placeholder image on the viewer.
PT 0.0.5-alpha
Mac OS Sierra Golden Master

This is very interesting behavior but I experience similar behavior to this sometimes. In order to solve this we might need to do some debugging on your part, as I don't think I can reproduce them.
What are the exact steps you took to produce this error?
Also it would be helpful if you could build this project from source and view the errors that are logged to the console.

@juanscv did this work out for you?


Update null safe deps to prepare for the 2.12 sdk version

Description

Updates all null safety deps to versions that allow the 2.12 pre-release Dart sdk.

Tests
None
Checklist
Before you create this PR, confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I signed the CLA.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I updated/added relevant documentation (doc comments with ///).
[ ] All existing and new tests are passing.
[ ] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Did any tests fail when you ran them? Please read Handling breaking changes.

[ ] No, no existing tests failed, so this is not a breaking change.
[ ] Yes, this is a breaking change. If not, delete the remainder of this section.

[ ] I wrote a design doc: https://flutter.dev/go/template Replace this with a link to your design doc's short link
[ ] I got input from the developer relations team, specifically from: Replace with the names of who gave advice
[ ] I wrote a migration guide: https://flutter.dev/go/breaking-changes-template Replace this with a link to a pull request that adds the migration guide to https://flutter.dev/docs/release/breaking-changes

I see what looks like a pre-existing failure here:
+ dart web_sdk/test/api_conform_test.dart
lib/web_ui/lib/ui.dart(2707..2707): This requires the 'non-nullable' language feature to be enabled.

The windows build failure is a flake caused by the current devicelab scheduling issue. I'm making the call to land this as is to move the null safety beta along


Is this project alive?

Should I use it create new app?

I would personally recommend Retrofit + Okhttp:
https://square.github.io/retrofit/
https://square.github.io/okhttp/
You'll find a bigger community and more common issues and responses rather than spring-android

Thanks for your interest in the project. However, this project is no longer active and has reached end of life.


Jobs 'Killed' with no error message

Hello!
My code executes fine when running from an interactive node. But from a SLURM interactive session in the 8GBVIS cue it doesn't work. Here's the output in my terminal when it fails:
[shapcottk@esi-svhpc6 ~]$ /mnt/gs/home/shapcottk/.conda/envs/acme/bin/python /mnt/gs/home/shapcottk/python/filter_net_paper/scripts/filter_net_paper.py
/mnt/pns/home/shapcottk/python/filter_net_paper/scripts/acme/__init__.py:29: ImportWarning: <ACME> Package is not installed in site-packages nor cloned via git. Please consider obtaining ACME sources from supported channels.
  warnings.showwarning(msg, ImportWarning, __file__, inspect.currentframe().f_lineno)
<esi_cluster_setup> Requested job-count 758 exceeds waiter threshold 400: waiting for `n_jobs_startup` jobs to come online, then proceed
<esi_cluster_setup> SLURM workers ready: 26/400 [elapsed[elapsed time 00:25 | timeout at 01:00]c
<esi_cluster_setup> SLURM workers ready: 26/400 	[elapsed time 01:00 | timeout at 01:00]
<esi_cluster_setup> SLURM jobs could not be started within given time-out interval of 60 seconds
Time remaining: 119  <esi_cluster_setup> Do you want to [k]eep waiting for 60s, [a]bort or [c]ontinue with 26 workers?[Default: 'c']
<esi_cluster_setup> Cluster dashboard accessible at http://<IP_ADDRESS>:8787/status
Calc_nfilters with trainfrac0.02
<ParallelMap> INFO: Attaching to global parallel computing client <Client: 'tcp://<IP_ADDRESS>:35317' processes=26 threads=26, memory=208.00 GB>
<ParallelMap> INFO: Preparing 758 parallel calls of `comparison_preprocessing` using 758 workers
<ParallelMap> INFO: Log information available at /mnt/hpx/slurm/shapcottk/shapcottk_20210310-093026
100% |\u2588\u2588\u2588\u2588\u2588\| 758/758 [00:33<00:00]
<ParallelMap> INFO: SUCCESS! Finished parallel computation. Results have been saved to /mnt/hpx/home/shapcottk/ACME_20210310-093129-181328
Calc_nfilters with trainfrac0.08
<ParallelMap> INFO: Attaching to global parallel computing client <Client: 'tcp://<IP_ADDRESS>:35317' processes=26 threads=26, memory=208.00 GB>
<ParallelMap> INFO: Preparing 758 parallel calls of `comparison_preprocessing` using 758 workers
<ParallelMap> INFO: Log information available at /mnt/hpx/slurm/shapcottk/shapcottk_20210310-093026
  0% |                                                                                | 0/758 [00:06<?]
Killed

It hangs and then after some minutes I see the 'Killed' message and the jobs end. If I try and do Ctrl+C while it's hanging e.g. #23 the jobs do not actually end. This is repeatedly happening if I try and reuse the same client for a second batch of jobs (as I did in the code above).
I now managed to get the same behaviour using some test code where I'm sending a large array as an input to the function. This causes issues from both SLURM and the interactive node:
import numpy as np
from acme import ParallelMap, esi_cluster_setup
from time import sleep

def f(x, y, z=3, w=np.zeros((3, 1)), **kwargs):
    print('Something from F')
    return (sum(x) + y) * z * w.max()

n_jobs = 200
x = np.random.randint(0,100,(70000,785)) #large array
z = range(n_jobs)
w = np.ones((8, 1))

client = esi_cluster_setup(partition="8GBXS", n_jobs=n_jobs, n_jobs_startup=18)

pmap = ParallelMap(f, x, np.random.rand(n_jobs), z=z, w=w, n_inputs=n_jobs)
with pmap as p:
    p.compute()

Here's the output this code causes:
[shapcottk@esi-svhpc6 ~]$ /mnt/gs/home/shapcottk/.conda/envs/acme/bin/python /mnt/gs/home/shapcottk/python/filter_net_paper/scripts/test_acme.py
/mnt/pns/home/shapcottk/python/filter_net_paper/scripts/acme/__init__.py:29: ImportWarning: <ACME> Package is not installed in site-packages nor cloned via git. Please consider obtaining ACME sources from supported channels.
  warnings.showwarning(msg, ImportWarning, __file__, inspect.currentframe().f_lineno)
<esi_cluster_setup> Requested job-count 200 exceeds waiter threshold 18: waiting for `n_jobs_startup` jobs to come online, then proceed
<esi_cluster_setup> SLURM workers ready: 26/None elapsed[elapsed time 00:06 | timeout at 01:00]
<esi_cluster_setup> Cluster dashboard accessible at http://<IP_ADDRESS>:8787/status
<ParallelMap> INFO: Attaching to global parallel computing client <Client: 'tcp://<IP_ADDRESS>:41391' processes=26 threads=26, memory=208.00 GB>
<ParallelMap> INFO: Preparing 200 parallel calls of `f` using 200 workers
<ParallelMap> INFO: Log information available at /mnt/hpx/slurm/shapcottk/shapcottk_20210310-105935
  0% |             | 0/200 [00:05<?]
Killed

Here's an example slurm output: slurm-3350545.out.txt

Hi! Thanks for detailed bug report! This is really strange - running your code locally on my workstation hangs and then crashes the entire session:
<ParallelMap> INFO: Log information available at http://<IP_ADDRESS>:8787/info/main/workers.html
  0%  0/200 [00:19<?]Killed
$ /opt/software/conda/envs/acme/lib/python3.8/multiprocessing/resource_tracker.py:216: UserWarning: resource_tracker: There appear to be 24 leaked semaphore objects to clean up at shutdown

So the problem seems to be not SLURM specific. I'll do some digging, what goes wrong here...

It's definitely something to do with that "large array", which isn't that big, which is why I was sending it. I wonder if it depends on how many jobs you have running? Maybe it's multiplying the size of the array by the number of jobs in local memory or something? Worse case scenario you could detect the input sizes and tell users to load arrays over size X from disk.

Hm, this is really strange. The offending part is in compute (in backend.py): firstArg = db.from_sequence(...). This takes forever and eventually crashes if the number of workers is large enough.
Initially I thought that maybe enforcing npartitions=ncalls in the creation of the dask bag might be the issue (cf. #6), but letting dask partition the bag on its own does not change anything. I've also tried using generators in the from_sequence call (same result) and started playing around with from_delayed (which behaves very unintuitively for 2d arrays...). What puzzles me the most is that it worked before, as you said. Do you happen to know which version of ACME you used (commit hash)?
So no concrete solution for now, but at least copying input args ncalls times and shoving them into lists is less than optimal. This might be okay for scalars (which were my one and only test case...), but even moderately sized NumPy arrays can overflow the memory of the caller if copied often enough (take a 4MB array and scale it to 5000 workers; suddenly the ACME caller has to deal with a 20GB input...). I will definitely modify this to not have lists hanging around there. The dask-bag situation requires some additional meditating, though...

Huh that's really odd...
Okay good to know that, I was kinda thinking dask might have done some clever memory sharing thing between its jobs but I guess it doesn't.
My version of acme is old. Did you change something in the cluster that could cause an issue with fewer jobs than before? Because I would have sworn this was working just before I went on holiday at the beginning of February with up to 400 jobs, and now 26 doesn't even work...
ACME:
commit 95403e4632fd878e69c6fdd0ff82f0b787765044 (HEAD -> main, origin/main, origin/HEAD)
Merge: 1d24c6f 3979789
Author: Stefan Fuertinger<EMAIL_ADDRESS>Date:   Tue Dec 29 14:18:14 2020 +0100
My dask stuff is:

Hi Katharine!
I just pushed a commit that uses a completely revamped argument distribution mechanic: instead of relying on bone-headed copies of variables that are needed by all workers, we now broadcast the respective variable to the entire worker-cluster and create a list of references to the resulting future that gets distributed when calling a user-provided function. I've tested the new mechanic with the minimal (not-)working example you provided (thank you again for cooking this up - that was tremendously helpful!): ACME processes the example both with SLURM and using a LocalCluster without hiccups or memory flooding. If you have a chance, please feel free to test-drive the new version (commit 9791cb7 in the dev branch). If this works for you, I'll merge into master.

Hi Katharine!
Did you have a chance already to test the new version of ACME? I'm also almost done with the emergency pickling patch. As soon as we're sure everything works, I'll merge into main :)

Sorry I haven't yet because I rewrote all my code to avoid sending arrays! I'll try to squeeze it in ASAP.

All good, thank you for testing!

Hi Stefan,
My jobs crashed on the dev branch with the same code that works when I use it on the main branch. It looks like the first job of a worker returns successfully and then crashes on each job called after that. I'm using the modified code where I load in a different subset of the data each time (e.g. there aren't being sent via slurm) and it doesn't seem to like it.
Are you maybe making some assumptions about the size of the output now?
First error message in slurm log:
distributed.worker - WARNING -  Compute Failed
Function:  func_wrapper
args:      (MFProbabilistic())
kwargs:    {'dataset': 'reuters', 'train_size': 0.7935033498304951, 'outDir': '/mnt/hpx/home/shapcottk/ACME_20210421-094302-881385', 'outFile': 'comparison_classifier_157.h5', 'taskID': 157, 'userFunc': <function comparison_classifier at 0x7feb9731d5e0>}
Exception: ValueError('operands could not be broadcast together with shapes (1296,) (18368,) ')

This is then repeated, as if the first 1296 array was never cleared:
Exception: ValueError('operands could not be broadcast together with shapes (1296,) (12678,) ')
Exception: ValueError('operands could not be broadcast together with shapes (1296,) (6987,) ')
Exception: ValueError('operands could not be broadcast together with shapes (1296,) (10174,) ')

On another worker it looks like this (also repeated):
Exception: ValueError('operands could not be broadcast together with shapes (1979,) (7670,) ')

Acme error:
<esi_cluster_setup> SLURM workers ready: 0/35 	[elapsed time 00:00 | timeout at 01:00]<esi_cluster_setup> Requested job-count 50 exceeds `n_jobs_startup`: waiting for 35 jobs to come online, then proceed
<esi_cluster_setup> SLURM workers ready: 50/None 	[elapsed time 00:07 | timeout at 01:00]
<ParallelMap> INFO: Attaching to global parallel computing client <Client: 'tcp://<IP_ADDRESS>:45339' processes=50 threads=50, memory=400.00 GB>
<esi_cluster_setup> Cluster dashboard accessible at http://<IP_ADDRESS>:8787/status
<ParallelMap> INFO: Preparing 200 parallel calls of `comparison_classifier` using 50 workers
<ParallelMap> INFO: Log information available at /mnt/hpx/slurm/shapcottk/shapcottk_20210421-094254
 25% |██▌       | 50/200 [01:20<04:00]
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
~/python/filter_net_paper/scripts/filter_net_figure7.py in <module>
     11 with ParallelMap(comparison_classifier, clf, dataset=dataset, train_size=train_sizes,
     12                     n_inputs=n_trys, write_worker_results=write) as pmap:
---> 13     results = pmap.compute()

/mnt/pns/home/shapcottk/python/filter_net_paper/scripts/acme/backend.py in compute(self, debug)
    422
    423             # Finally, raise an error and get outta here
--> 424             raise RuntimeError(msg)
    425
    426         # If wanted (not recommended) collect computed results in local memory

RuntimeError: <ACMEdaemon> Parallel computation failed: 150/200 tasks failed or stalled.
Concurrent computing scheduler log below:

distributed.scheduler - INFO - Clear task state
distributed.scheduler - INFO -   Scheduler at:   tcp://<IP_ADDRESS>:45339
distributed.scheduler - INFO -   dashboard at:                     :8787
distributed.scheduler - INFO - Register worker <Worker 'tcp://<IP_ADDRESS>:43819', name: 19, memory: 3, processing: 0>
distributed.scheduler - INFO - Starting worker compute stream, tcp://<IP_ADDRESS>:43819
...

Another possibility is that the MFProbabilistic() arg persists between calls, that would also cause a crash when used with different input sizes.

Hi Katharine!
Thanks so much for testing this! I think your hunch is right here: the MFProbabilistic() arg might be the culprit. The updated code does not use dask bags any more for argument distrubtion (to avoid memory overflow) but instead broadcasts (presumably identical) args to the worker cluster for use of all workers (i.e., by reference, no copies are generated). The relevant code is:
https://github.com/esi-neuroscience/acme/blob/9791cb7e06186141830bc4a6696f0dfcd63cd094/acme/backend.py#L318-L330
I assume MFProbabilistic() is called repeatedly to randomly select data? The above snippet would not do that.

Hi Stefan,
Yes MFProbabilistic() was the problem. It's a classifier that then was being fit multiple times (I need to handle that correctly for the future).
Looks like it's working! I sent a very large array of 60000x784 to both 50 and 189 workers from the 8GBVIS cue and had no problems at all.
Thanks so much for fixing that!
Best,
Katharine

Hey Katharine!
Thank you for testing this! Great to hear the changes work :) I think I'll include a warning in the code: if ParallelMap is launched with a single callable object as input arg to the user-provided function, the callable will only be executed once for all workers. I think there are scenarios where this makes sense (e.g., loading a file with global parameters) but there are other circumstances (like the one you ran into) where this behavior leads to problematic side effects. I don't think there is a "right" or "wrong" way here - unless you have any objections, I'd leave the default as it is (single callable is called once). If it is to be called separately by each worker, it has to be specifically provided like [MFProbabilistic] * n_jobs (although I'm not sure if NumPy would then use the same seed for all workers...).


Add support for solc 0.8.21

https://github.com/ethereum/solidity/releases/tag/v0.8.21

Cc: @roynalnaruto @mattsse

For anyone coming here, you can now access events from other contracts (this will help with Foundry tests)!

fyi @Evalir need to build and publish new svm-rs

on it chief

For anyone interested, I also added support for dapptools already https://github.com/dapphub/dapptools/pull/987

For anyone interested in the new event-selecting feature, there is an unfortunate ICE in Solidity due to NatSpec parsing: https://github.com/ethereum/solidity/issues/14430. For anyone who wants to use that feature and compiles with a mode that requires NatSpec parsing need to wait for solc 0.8.22. Example of a contract which will not compile unfortunately:
// SPDX-License-Identifier: MIT
pragma solidity 0.8.21;

contract X {
    event E();
}

contract C {
    function g() public {
        emit X.E();
    }
}


Docs/docs refactor initial pass

Contributions: We are not currently taking public contributions - see our contributions policy. However, we are accepting issues and we do want your feedback.

Description
An initial pass over some docs. Fixed up some language. Revised some suggested use. Removed most of the content from the landing page, it will be revamped.
I left the pre-alpha disclaimers for now, these will be updated before release.
Tests
How did you test these changes prior to submitting this pull request?
What automated tests are included in this PR?
Documentation
How is this documented (for example: release note, upgrade guide, feature page, in-code documentation)?
Primary reviewers
If your change will take a long time to review, you can name at most two primary reviewers who are ultimately responsible for reviewing this request. @ mention them.

The features.md edits do need adding!


Message#smtp_envelope_to= and Message[:smtp_envelope_to]= are not equivalent. Is this desired behavior?

An issue with a rails application where mail messages were sent to all of the To recipients rather than to the recipients specified in smtp_envelope_to, led me to investigate.
I've prepared a test application with a rake task that basically does:
recipients = ENV['RECIPIENTS'].split(",")
recipients.each do |recipient|
  mail = TestMailer.test_mail(to: recipients, smtp_envelope_to: recipient)
  mail.smtp_envelope_to = recipient if ENV['USE_SMTP_ENVELOPE_TO_SETTER']
  mail.deliver
end

For two recipients<EMAIL_ADDRESS>and<EMAIL_ADDRESS>I would have expected each recipient to receive one email. But in fact, unless smtp_envelope_to is set directly (USE_SMTP_ENVELOPE_TO_SETTER=true in the above code snippet), each recipient receives two emails.
Steps to reproduced as well as example results are documented in the test app's README.
How do rails and mail interact?
The mail method used in the TestMailer is defined here, ActionMailer::Base#mail .
As one can see there, the smtp_envelope_to is passed to the Mail::Message object like this:
def mail(headers = {}, &block)
  # ...
  m = @_message
  headers.except(...).each { |k, v| m[k] = v }
end

The smtp_envelope_to value is passed using []=.
The documentation of Mail::Message reads:

   ===Making an email via assignment

   You can assign values to a mail object via four approaches:

   * Message#field_name=(value)
   * Message#field_name(value)
   * Message#['field_name']=(value)
   * Message#[:field_name]=(value)

   Examples:

    mail = Mail.new
    mail['from'] =<EMAIL_ADDRESS>    mail[:to]    =<EMAIL_ADDRESS>    mail.subject 'This is a test email'
    mail.body    = 'This is a body'

    mail.to_s #=> "From<EMAIL_ADDRESS><EMAIL_ADDRESS>

The []= method just sets the header field, but does not pass it to #smtp_envelope_to=.
# mikel/mail: lib/mail/message.rb

    def []=(name, value)
      if name.to_s == 'body'
        self.body = value
      elsif name.to_s =~ /content[-_]type/i
        header[name] = value
      elsif name.to_s == 'charset'
        self.charset = value
      else
        header[name] = value
      end
    end

    def smtp_envelope_to=( val )
      @smtp_envelope_to =
        case val
        when Array, NilClass
          val
        else
          [val]
        end
    end

Therefore, mail[:smtp_envelope_to] = ... and mail.smtp_envelope_to = ... are not equivalent, which explains the observed behavior.
Is this a bug?
The parameter of def mail(headers = {}, &block) is called "headers". In fact, the smtp-envelope-to header is set correctly, as can be seen in the Results. Thus, the method does what can be expected from the definition.
Nevertheless, the smtp envelope itself is not set.
From my understanding, the header field smtp-envelope-to, which can be found in raw emails, is just a copy of the real smtp envelope. The mail servers do not look at the header fields but at the real smtp envelope.
Considering that the mail parameter in Rails is called "headers" and that the Mail::Message#smtp_envelope_to= and Mail::Message#[:smtp_envelope_to]= are not equivalent, I'd tend to try to resolve this in mail rather than in rails.
Is the current behavior, for some reason, the desired one, or could Message#[]= be modified like the following?
# lib/mail/message.rb

    def []=(name, value)
      # ...
      elsif name.to_s == 'smtp_envelope_to'
        self.smtp_envelope_to = value
      else
        header[name] = value
      end
    end

Hey @fiedl –

unless smtp_envelope_to is set directly

The envelope recipient address is meant to be set directly. It's not a message header, after all!
Set #smtp_envelope_to= on the message just before delivering it.

@jeremy : Thanks for the clarification.
Now, that I've spent some time looking into email headers and smtp envelopes, I agree that it makes sense from a technical standpoint.
But, for convenience, I still think I'd prefer the mail method to handle that magically somehow:
# Does not work:
mail(smtp_envelope_to: recipient_user.email, to<EMAIL_ADDRESS>...)

Solution
For people googling this issue, later:
recipients =<EMAIL_ADDRESS><EMAIL_ADDRESS>recipients.each do |recipient|
  mail = TestMailer.test_mail(to: recipients, smtp_envelope_to: recipient)
  mail.smtp_envelope_to = recipient   # <--- THIS LINE MAKES IT WORK
  mail.deliver_later
end

I still think I'd prefer the mail method to handle that

That'd be a good feature for Action Mailer's #mail !


feat: enable sol verifier tests in ci

Overview
Adds simple solidity verifier tests to CI. First step in diagnosing verifier edge cases.

I suppose those cheatcode errors in the log are okay?

We should be able to get away with 32 cores (so long this is less than say 10 minutes) then I think this is fine.


Emoji handling in new Quick Pick

Issue Type: Feature Request
Having a markdown file with headers:
# 💄 Wow
# ❌ Wow

Searching for 💄

Searching for ❌ - no results
1.43.0 handled those correctly.
VS Code version: Code - Insiders 1.45.0-insider (1c36d747fbf113144d3bf82b0aa3cbd290714e38, 2020-04-15T05:37:18.376Z)
OS version: Windows_NT x64 6.2.9200

I cannot reproduce btw:

- @
+ @💄

@jrieken can you check, this seems like a bug in the createMatches method to me where the unicode character is getting split into 2 with highlights each.
Test to reproduce which fails in filters.test.ts:
test('Unicode highlight broken #95312', function () {
	assertMatches('💄', '💄 Wow', '^💄^ Wow', fuzzyScore);
});

Yeah, we match earch char code separately and 💄 is of length 2, other characters likely much longer. Unsure how to tackle this, definitely stretch for April

The other matcher (still used for e.g. file search) does not seem to hit this:

I am not sure how yours work, but shouldn't multiple highlight positions that are next to each other, simply normalize into a single match-range? In other words: matching "foo" on "foobar" results in a match range from 0-3 and not 3 ranges for each character.

Hm, I take it back. The match seems to have a correct range at least in the tests:

Maybe its rather a bug in how we apply the match in the label.

I don't think this issue has any importance but searching for ❌ returns no results.

Can you still report it?

In a separate issue?

Well, let's leave this one to verify that the highlights are OK.

#95716


handle aligned new/delete on Mac OS with XCode 9.x

Apple's clang enables aligned new/delete and sized deleted when passed
the -faligned-new flag. Compilation of tcmalloc_unit fails in this case
because the aligned/sized new/delete functions were not defined and
the appropriate operators not overloaded.
Fixes #942.

Thanks a lot for the patch. Sadly I am not able to test on macos thus such issues occasionally happen :(
So the root of the problem seems to be that we test for -faligned-new when deciding to build and unittest this stuff, but we test for c++17 when we're providing functions in tcmalloc.h. So there might be some chance to hit this problem on other OSes then.
Let me CC @Lastique who authored original support.
And of course we still lacked those operators for OSX-specific operators overrides.
As for the patch, unfortunately relying on ENABLE_ALIGNED_NEW_DELETE in tcmalloc.h (which we install on users systems) isn't great idea.
Give me a bit to think about best way to address it. Or maybe I'll realize something that I am not seeing yet.

Yes, I was wrong above. That we test only for C++17 in tcmalloc.h is harmless.
The reason for test failing is that MacOS doesn't have those aligned new/delete operators at all (!). Funnily, they ship compiler with -faligned-new but fail to provide necessary runtime support.
MacOS has some weird way to hook malloc. Perhaps because we're trying not to break their 'pools' support. And that is also one reason why malloc is so much slower on macos than other sensible oses (e.g. issue #886). For that reason we're hooking deep into their malloc and not provide regular operators new/delete. Because of that I think we shouldn't be trying to default aligned new/delete if OS doesn't support them at all yet.
So I am wondering if better fix is to change AC_COMPILE_IFELSE when testing for aligned new to AC_LINK_IFELSE. I.e. to detect that OSX doesn't actually support -faligned-new. Can you please try that ?

AFAIR, my patch checked at configure stage that (a) the compiler supports -faligned-new and (b) that it provides std::align_val_t. If any of those is true then gperftools should be compiled with aligned new/delete support. Is the problem that the compiler does not define __cplusplus to C++17 in this case? If so, we should add -std=c++1z.
PS: As I mentioned in my PR, I only tested my patch with gcc on Linux. I have no way to test it on OS X.

Apparently on this compiler -std=c++1z is still c++ 14:
$ c++ -std=c++1z -Isrc -dM -E src/common.cc | grep plusplus
#define __cplusplus 201406L

I'll try the AC_LINK_IFELSE idea next.

The test for std::align_val_t should probably be converted as well.

I'll convert that check as well, though it fails even without the link step because std::align_val_t only becomes available when -faligned-new is set.

applied. Thanks a lot.