Bug fixed. logic_or should use LogicOrValueGate

Description

closes: #114

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[x] Targeted PR against correct branch (main)
[x] Linked to GitHub issue with discussion and accepted design OR have an explanation in the PR that describes this work.
[x] Wrote unit tests
[x] ~Updated relevant documentation in the code~
[x] ~Added a relevant changelog entry to the Pending section in CHANGELOG.md~
[ ] Re-reviewed Files changed in the GitHub PR explorer

I don't understand, why is there a LogicOrValueGate in the first place? that seems equivalent to LogicOrGate?

I remember we used to have APIs c = logic_or(a, b) and logic_or_gate(c, a, b): the first return a bool variable c that's the logic_or of the inputs; the 2nd API enforces c = a or b. So what's the LogicOrValueGate?

I don't understand, why is there a LogicOrValueGate in the first place? that seems equivalent to LogicOrGate?
basically LogicOrGate: a+b-ab-1 =0 and LogicOrValueGate: a+b-ab=1, they are the same.

Not really the same. For LogicOrValueGate is a+b-ab=output, that's q_o not q_c

I remember we used to have APIs c = logic_or(a, b) and logic_or_gate(c, a, b): the first return a bool variable c that's the logic_or of the inputs; the 2nd API enforces c = a or b. So what's the LogicOrValueGate?

We only have APIs c = logic_or(a, b) and logic_or_gate(a, b). Later one is a hard constraint that a or b must be true.
LogicOrGate corresponds to the later constraint. And LogicOrValueGate is computing the logic or of two input wires.

@mrain Is there a better name for LogicOrValueGate? How about LogicOrOutputGate?

@mrain Is there a better name for LogicOrValueGate and LogicOrGate? How about LogicOrOutputGate and LogicOrConstantGate?

What about LogicOrGate and LogicOrOutputGate? That's clear enough to me.
WDYT @alxiong


Bullet disappears after the time has elapsed

Issue #178
I played a original game and found that the bullet disappears after a certain time. I tried to choose the time of disappearance as close as possible to the original game.

Thanks!


Disable upload on image plugin

I want to use image plugin without upload tab, only with insert url
It's possible to hook dialog to force url tab and hide tabs ?
Version
<EMAIL_ADDRESS>

You can use the "imageFileInput: false" option.


chore(deps): bump react-native-macos to 0.62

Bump react-native-macos to 0.62 to align with react-native and react-native-windows.
Screenshot:

@Titozzz: Can you have a look when you have time? Thanks 😄

Chore won't trigger a new release, is it intended @tido64 ?

Chore won't trigger a new release, is it intended @tido64 ?

Yes, this only changes devDependencies and should not affect consumers.

@Titozzz: Can we get this merged now? I think next, we should bump everything to 0.66.


ENH: stats: Add an sf method to levy_l for improved precision.

The CDF of levy_l is implemented as 2*F - 1, where F is the output
of the CDF of the normal distribution evaluated at a function of x.  The
survival function is 1 - CDF = 1 - (2*F - 1) = 2*(1 - F) = 2*S, where
S is the survival function of the normal distribution evaluated at the
same function of x.  By using that expression in the _sf method, we
avoid the subtraction that results in the catastrophic loss of precision.
A matching implementation for the inverse survival function is also added.

Thanks, good idea to implement these methods. All tests pass, I will merge the changes.


The static handler sets the wrong content-type for 404 responses, tripping Chrome

When generating a 404 response, the cowboy_static handler defaults to the application/octet-stream content-type (with an empty body). This (application/octet-stream for an error page) causes Google Chrome (49.0.2623.87) to display an obscure ERR_INVALID_RESPONSE message instead of a "not found" message as Firefox does (Safari obligingly downloads a 0-byte file). Making the problem even harder to diagnose, the offending request is suppressed from Chrome's Web Inspector view, making it very difficult to see the original (and benign) 404 code, and causing the poor programmer to go around in circles chasing an elusive error for a few hours (true story).
Comments on a related issue in Chrome's bug tracker suggest this is intentional (https://bugs.chromium.org/p/chromium/issues/detail?id=434392):

We refuse to download an error response to a local file, and can't do anything else with that mime type, so we return an error.

This is reproducible with this basic configuration of the cowboy_static handler:
-module(hello_cowboy_app).
-behaviour(application).

-export([start/2]).
-export([stop/1]).

start(_Type, _Args) ->
    Dispatch = cowboy_router:compile([
        {'_', [{"/[...]", cowboy_static, {priv_dir, hello_cowboy, "static"}}]}
    ]),
    {ok, _} = cowboy:start_http(my_http_listener, 100, [{port, 8080}],
        [{env, [{dispatch, Dispatch}]}]
    ),
    hello_cowboy_sup:start_link().

stop(_State) ->
    ok.

And an existing but otherwise empty priv/hello_cowboy/static directory. And of course, requesting http://localhost:8080/some-non-existing-path in Chrome.
May I suggest refraining from adding a Content-Type header when no file is being returned?

I can reproduce.

I have no easy fix. I will fix this as part of adding a test suite for RFC7231. Might be a while.
A workaround is to use cowboy_req:delete_resp_header in the resource_exists function, when the method is HEAD or GET and the resource does not exist.

Noted, thanks for confirming.

This has been fixed on my local copy and will be pushed later today. Thanks!


InsufficientCapacityOnHost

When I run create-eks-a-admin-instance.sh
I got the error:
An error occurred (InsufficientCapacityOnHost) when calling the RunInstances operation: Snowball has insufficient capacity to fulfill this request
I have enough vCPUs and memories on the Snow device

There is no ssd left in your device, please delete unused images, files and instances to make room.
  "DeviceCapacities" : [ {
    "Name" : "HDD Storage",
    "Unit" : "Byte",
    "Total" : 0,
    "Available" : 0
  }, {
    "Name" : "SSD Storage",
    "Unit" : "Byte",
    "Total" :<PHONE_NUMBER>00,
    "Available" : 0
  }, {
    "Name" : "vCPU",
    "Unit" : "Number",
    "Total" : 52,
    "Available" : 48
  }, {
    "Name" : "Memory",
    "Unit" : "Byte",
    "Total" :<PHONE_NUMBER>00,
    "Available" :<PHONE_NUMBER>16
  }, {
    "Name" : "GPU",
    "Unit" : "Number",
    "Total" : 0,
    "Available" : 0
  } ],

Thank you!


Allow for passthrough interfaces in VMs so they can be cabled

Environment

Python version: 3.6.8
Nautobot version: 1.0.3

Proposed Functionality
Allow physical interfaces to be added to virtual machines.

Use Case
Some VMs have physical interface cards that are passed through to them and these connect to the physical network. For example, LNET router VMs for Lustre storage. Physical host storage controllers which have multiple LNET router VMs in them. Each VM has two physical InfiniBand HCAs passed through to them. It would be great to be able to cable these passed through HCAs to switches etc.

Database Changes

External Dependencies

Thanks for the suggestion. I think I know where you're going with this, but similar to your other request, can you please provide as much detail as reasonably possible for your use-case, including sample data? It would help us to reconstruct it to attempt to triage and understand exactly what you're asking for, and whether it would be possible or reasonable. Thank you! :)

Hello. Thank you for looking at this.
Basically, need the ability to put physical cards into VMs. So, on the interface page for VMs, have the option to put in a physical interface (infiniband etc) that can be cabled like a normal device.
The use case for this we have are LNET routers for Lustre.
Each LNET router server holds two VMs which have Infiniband HCAs passed through to them.
LNET Router example
Host OS
1x BMC interface (Ethernet)
1x system management interface (Ethernet)
Guest OS 1
1 x Virtual interface
2 x InfiniBand HCAs passed through - these connect to an InfiniBand switch
Guest  OS 2
1 x Virtual interface
2 x InfiniBand HCAs passed through - these connect to an InfiniBand switch
The InfiniBand HCAs are physical interface cards that are passed through to the Guest  OS's. Currently, interfaces on VMs cannot be cabled, or the interface type specified.
Would it be possible to allow the adding of physical interfaces to VM's per the above details?
Thank you!

Potentially?

Potentially?

Do Device and Interface support this use case today?

Reading #1178,
device.interfaces.type choices are disabled, value defaults to virtual and is hidden in UI
Am I correct in thinking this would prevent the selection of, eg, an Infiniband interface on the VM? If so, the original issue exists still.
Basically, being able to add a physical interface to a VM would fix this issue.

Reading #1178,
device.interfaces.type choices are disabled, value defaults to virtual and is hidden in UI
Am I correct in thinking this would prevent the selection of, eg, an Infiniband interface on the VM? If so, the original issue exists still.
Basically, being able to add a physical interface to a VM would fix this issue.

We'd likely need to open up/augment some existing behavior of Device in order to accomplish #1178. It wouldn't be done blindly.
This may require an internal mapping concept (ala vSS in vSphere) to associate a physical NIC to an virtual network and then the VM Interface to the virtual network.


Remove unneeded rc feature of serde

Fixes #989.
This feature opts into impls for Rc and Arc, but none of the data
structures that use Serialize/Deserialize actually contain Rc or
Arcs.
See:

Serde docs
PR adding this

Which issue does this PR close?
Closes #989.
Rationale for this change
Compile less code, enable fewer features for crates depending on Arrow. The tests still pass without this feature.
What changes are included in this PR?
Remove a feature enabled.
Are there any user-facing changes?
Projects depending on this crate that accidentally took advantage of feature unification to use the functionality added by rc might have to add the rc feature themselves... but that would be a bug in their project.
I don't think this is documented anywhere user-facing, and I don't think this qualifies as a breaking change to a public API, but I could be wrong, Cargo feature usage is tricky. Please let me know if I'm missing something!

Codecov Report

Merging #990 (b650691) into master (e9be49d) will decrease coverage by 0.00%.
The diff coverage is n/a.

:exclamation: Current head b650691 differs from pull request most recent head 6468a9a. Consider uploading reports for the commit 6468a9a to get more accurate results

@@            Coverage Diff             @@
##           master     #990      +/-   ##
==========================================
- Coverage   82.31%   82.30%   -0.01%
==========================================
  Files         168      168
  Lines       48763    48763
==========================================
- Hits        40139    40135       -4
- Misses       8624     8628       +4

Impacted Files
Coverage Δ

parquet/src/schema/printer.rs
72.47% <0.00%> (-0.55%)
:arrow_down:

parquet_derive/src/parquet_field.rs
65.98% <0.00%> (-0.46%)
:arrow_down:

parquet/src/arrow/arrow_array_reader.rs
77.87% <0.00%> (-0.15%)
:arrow_down:

arrow/src/array/transform/mod.rs
85.10% <0.00%> (+0.13%)
: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 e9be49d...6468a9a. Read the comment docs.

oh hey new clippy just dropped... fun!

CI failure is the rust team's way to let everyone know that a new release is out ;)

Conveniently, someone already fixed clippy :) https://github.com/apache/arrow-rs/pull/992

I think if you merge apache/master into this branch we should be able to get a clean clippy run


Open/Close delivery details issue

Hi,
Currently when I click on an item to open or close the delivery details, it does nothing, but if I refresh the page, it will show or hide the details (behavior depends on the previous state and how many clicks I made).
Tested on Firefox and Chrome, both with the same behavior.

Hi @modem, can you share the console output? Looking for any error messages.
Also, if you could record a small video with the bug it would help to have an idea of the issue.

Hi,
Here's the video:
https://youtu.be/khviWIuIVik
I get no errors when I click on the items, but I have when I refresh the page.
Here are the errors I got when I refresh the page to show the open items:
`Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194. (Reason: CORS request did not succeed). Status code: (null).
None of the “sha512” hashes in the integrity attribute match the content of the subresource. geartrack.app
Layout was forced before the page was fully loaded. If stylesheets are not yet loaded this may cause a flash of unstyled content. node.js:369
Loading failed for the

Thanks a lot for the video and detailed description @modem !
The bug is now fixed, it was introduced with the new sorting functionality :(.


Disable incremental compilation by default

Since we set RUSTC_WRAPPER as part of the action (as it's required by sccache), we should set CARGO_INCREMENTAL=0 since that's required as well

Awesome! Thank you


WASM wip

Rationale
We want WASM to work.
Testing
Install dependencies as outlined here
Navigate to wasm/demo/web in your shell and run:
npm install
npm run serve

For Reviewers

[ ] Verify version bumped in Cargo.toml

Addresses #108

@jasoncolburne we can probably close this one.  My PR built off this branch so it should contain all this and more.


Possible regression of Unbound since 18.7.6

Hello devs,
since upgraded to 18.7.6 that introduced unbound 1.8.1, I face "frequent" DNS resolver service shutdowns. Checking the Unbound log I dont see any reason why the service suddenly stopped itself, rendering all name resolution stop.
All I could find in the unbound log is this line:
Nov 10 10:35:53 | unbound: [67269:0] fatal error: Could not read config file: /unbound.conf. Maybe try unbound -dd, it stays on the commandline to see more errors, or unbound-checkconf
When this is observed, and I manually try to start the service again, it starts successfully, and seems to be working for a couple of days, then stops suddently again.
I tried set the logging level2 to get more logs, but in this case everye single name resolution attempt is alao logged, and it will be difficult to catch the event that has anything to do with the stop/crash.
Where is the unbound log stored in the underlying system, so I could use some clever grep to extra t meaningful entries?

It looks like an issue with Unbound 1.8. 1.7 was reported to work fine. Our integration didn't change in this regard. You could verify this theory by reverting to 1.7:
# opnsense-revert -r 18.7.5 unbound

Cheers,
Franco

Thanks, with 1.7 I didnt face such issue. I will try to revert back to that older unbound version. After rollback should I take care of anything regarding this package is no longer in sync with what is nornally shipped with 18.7.6+ ?

Reload Unbound manually to load the previous version. Code-wise both are compatible.
On next OPNsense update, however, it will try to install 1.8 again so you can lock the package from System: Firmware: Packages to prevent such an update. It could be that the update will stall in this case. Unbound is intertwined in some other packages... but nothing bad happens as it just won't update in this case.
This is just for confirmation. I do believe it needs to be reported to upstream developers that something is wrong with 1.8.

Is there anything to check in the logs in case the next time it stops (was it a graceful stop by some opnsense service, or it died ungracefully by its own) ? Or this is more related to Unbound devs?
Ps. The unbound log is located at /var/log/resolver.log in case someone wants to read it from CLI (took me some time to figure out this fact)

It happened again a couple of minutes ago. I added some DHCP static mapping, applied the change. This seemed trigger the restart of Unbound as well. I could see in the log, that the last line was this same error, as I reported the last time:
Nov 14 12:29:03 	unbound: [58191:0] fatal error: Could not read config file: /unbound.conf. Maybe try unbound -dd, it stays on the commandline to see more errors, or unbound-checkconf
Nov 14 12:29:03 	unbound: [58191:0] notice: Restart of unbound 1.8.1.
Seems this fatal error blocked Unbound from successfully starting. Strange thing, if I press the service start from GUI, it starts without issues.

Yep, its reproducible every single time I apply config.

@fichtner IMHO i would expect this to be a timing issue during the generation of the unbound configuration.
Since it happens from time to time, it should be expected to the DHCP hostname auto-registering in ubound which causes that. Maybe in 1.8. they changed the timings / blocking mechanism during the reload or they just "hard bind" to the inode of the configuration, while we "replace" the file with a new one during the generation of the configuration - and the new unbound version is more sensible to that.
I am pretty sure this is not an upstream bug or at least if, it would be a "freebsd" related upstream bug and that just sounds rather unlikely.
I am currently waiting for arm32/arm64 alpine to get fixed on docker.hub so i can package 1.8 so i could try to reproduce this on https://github.com/EugenMayer/docker-unbound .. but i have to wait. I could though try this with amd64 since i already packaged eugenmayer/unbound:1.8. Maybe we can isolate the issue better with a docker-image, especially for reproduction, be it a upstream issue or a opsense issue.

Guys, while you are investigating this issue:
can you recommend me how to schedule "CRON - unbound service restart" every day at midnight and sometime during the day? Users are complaining to throw away this router and bring the former Asus soho box back, because the internet is practically dead until I manually start the unbound service from GUI. I hope scheduled service restart multiple times per day can keep the service alive without this sudden stop triggered.
I checked System\Settings\Cron \ Add new job --> but I can only find 8-10 predefined jobs, none of them are custom service restart. Dont want to mess with anything non-GUI way unless someone can give me 2-3 lines of clear instruction.
Thanks guys!

Forgot to say: I was afraid of rolling back to unbound 1.7, fearing what may break when the next opnsense upgrade tries to reinstall it / tries to skip that out-of-sync package. So yes, I am still on this buggy 1.8.1, and if you need any log to capture the stop-reason, let me know.

the command to restart unbound is "/usr/local/sbin/pluginctl dns", just add it to /etc/crontab (the next firmware update will overwrite crontab, but if you're looking for a solution until unbound is updated that's probably it)

Rather use monit to monitor and restart the service if port 53 is dead? Monit is part of the plugins, so this should be easy and far better then the cron based restart, since it instantly  self heals

@EugenMayer : thanks for the hint, monit should be the real solution, and would prefer that definitely. Unfortunately I dont have the spare time to become expert of the nuances of monit, meanwhile the next time unbound stops, angry users would throw the firewall to the trash. So would like something very basic and very reliable to restart that damn unbound.

Small update: it seems it is triggered on Saturday, around 10:36 am. That is the 3rd Saturday morning when it happens, always around this 10:36 am time.

Just as I expected: happened today again, at exactly 1 week later.
I checked what was happening: I get a PPPOE disconnect event (most probably my ISP drops my connection after 1 week uptime, dont know for sure who initiates that)
//the last line before the current issue is from dec1, when the previous disconnect-reconnect event happened, so betwen the 2 events there is exactly 1 week silence //
Dec  8 10:37:07 FW01 ppp: [wan_link0] LCP: rec'd Terminate Request #2 (Opened)
Dec  8 10:37:07 FW01 ppp: [wan_link0] LCP: state change Opened --> Stopping
Dec  8 10:37:07 FW01 ppp: [wan_link0] Link: Leave bundle "wan"
Dec  8 10:37:07 FW01 ppp: [wan] Bundle: Status update: up 0 links, total bandwidth 9600 bps
Dec  8 10:37:07 FW01 ppp: [wan] IPCP: Close event
Dec  8 10:37:07 FW01 ppp: [wan] IPCP: state change Opened --> Closing
Dec  8 10:37:07 FW01 ppp: [wan] IPCP: SendTerminateReq #16
Dec  8 10:37:07 FW01 ppp: [wan] IPCP: LayerDown
Dec  8 10:37:08 FW01 ppp: [wan] IPV6CP: Close event
Dec  8 10:37:08 FW01 ppp: [wan] IPV6CP: state change Opened --> Closing
Dec  8 10:37:08 FW01 ppp: [wan] IPV6CP: SendTerminateReq #8
Dec  8 10:37:08 FW01 ppp: [wan] IPV6CP: LayerDown
Dec  8 10:37:09 FW01 ppp: [wan] IFACE: Down event
Dec  8 10:37:09 FW01 ppp: [wan] IFACE: Rename interface pppoe0 to pppoe0
Dec  8 10:37:09 FW01 ppp: [wan] IPCP: Down event
Dec  8 10:37:09 FW01 ppp: [wan] IPCP: LayerFinish
Dec  8 10:37:09 FW01 ppp: [wan] IPCP: state change Closing --> Initial
Dec  8 10:37:09 FW01 ppp: [wan] IPV6CP: Down event
Dec  8 10:37:09 FW01 ppp: [wan] IPV6CP: LayerFinish
Dec  8 10:37:09 FW01 ppp: [wan] Bundle: No NCPs left. Closing links...
Dec  8 10:37:09 FW01 ppp: [wan] IPV6CP: state change Closing --> Initial
Dec  8 10:37:09 FW01 ppp: [wan_link0] LCP: SendTerminateAck #16
Dec  8 10:37:09 FW01 ppp: [wan_link0] LCP: LayerDown
Dec  8 10:37:10 FW01 ppp: [wan_link0] PPPoE: connection closed
Dec  8 10:37:10 FW01 ppp: [wan_link0] Link: DOWN event
Dec  8 10:37:10 FW01 ppp: [wan_link0] LCP: Down event
Dec  8 10:37:10 FW01 ppp: [wan_link0] LCP: state change Stopping --> Starting
Dec  8 10:37:10 FW01 ppp: [wan_link0] Link: reconnection attempt 1 in 2 seconds
// then the reconnect finishes successfully //
During this exact time, unbound is stopped, and fails to restart correctly, with the same error message posted in my initial post.

You probably set explicit Unbound Interfaces?

You are correct, I mentioned recently to protect DNS by not even listening on WAN. But after you said it may silently break things, I reverted that config back, so it listens on ALL since a couple of weeks.

Hmmm, maybe your reconnect comes back with the same IP? it might be that it doesn't know that it must rerun configuration when the IP is back

Nope, it gets a completely different IP after the succesful reconnect.

Ok, I'm testing Unbound 1.8.2 just now, but here's another patch that will help recover from a crashed unbound in your particular case (listen "all"): 3d8fd0088af
# opnsense-patch 3d8fd0088af

Thanks, I applied the patch (seems succesfully). Did a forced pppoe disconnect -> unbound stopped and could not start with the same error message.
But after approx 1 minute, it tried another attempt to start, and finally it started.

I see what you mean: this patch is a workaround, the real issue is why does unbound search for the config file at the wrong location?

https://github.com/opnsense/core/blob/3d8fd0088af70fbcd511f6766ae24f4c25c7c124/src/etc/inc/plugins.inc.d/unbound.inc#L464
That's the only spot we ever start Unbound and as you can see it has a full path to the file. The chroot directive is inside unbound.conf, so how Unbound can say "./unbound.conf" is not found while adhering to the information inside the file is beyond me. :D

The only speciality I have is the following in the Custom options section:
include: /usr/local/etc/unbound/unbound_advertisement_serverlist_2018.11.28.txt
extended-statistics: yes
( I have a suspicion the 1st line is causibg the problem)
I did a quick test and removed these 2 lines, saved the change, applied it, then disconnect-reconnect ppoe -> seems unbound started correctly this time

you should place this file in /var/unbound/ with chown unbound:unbound to be sure...

The only problem my /var is on tmpfs, so the next reboot wipes it. Yet another syshook script?

symlink might work. it's your setup :)

The right time is whenever you update the file you push it to /var/unbound and then run "pluginctl dns".
I'm sorry, there's nothing else we can try here in an open source scope. The discussed workaround goes into 18.7.10.

@fichtner: can you tell me, at which stage of the boot process /syshook script run do you generate the unbound.conf file that gets copied to /var/unbound? I would need to hack into that step to add the extra file copy from persistent filesystem to /var/unbound tmpfs, and the unbound service will find that copied file when it is getting started. At least thats my understanding.

use "start" syshook, /var/unbound will be populated and running
copy the file
run "pluginctl dns" to restart unbound.

Cool, I will try to implement this and hope it will work :)

it should. if not let me know :)

I have to wait couple of days (most probably until the weekend) for this. When is the 18.7.10 planned, so I could merge the 2 action?

Preliminary target for 18.7.10 is Tuesday (Jan 8)

Thanks, will wait for it then, before going for custom scripting.


fix: popup position in toolbar

Fix the positioning of the color picker popup (when a page has a scrolling bar).
Fix copied from this pull request : https://github.com/nhnent/tui.editor/pull/195

Wrong commit


Refactoring using instance_eval

Hi, thanks for a nice gem :)
I noticed a few things for improvements and made some refactorings.
This refactoring brings a few benefits:

Use memoization for final_methods to lazy load ivar
Remove singleton method definitions for readability
Remove instance_eval with string for simplicity

Looks good, thanks!

Released in 0.3.1 today. :)


DBZ-3892 Correctly parse concatenated UNISTR values

https://issues.redhat.com/browse/DBZ-3892

@Naros, feel free to merge this one yourself once having addressed the comment above. Thx!


Add another modal for cookie consent when people try to contact a person

That would be the first iteration to get the website running again. I would style the modal later. :)

Thanks for your quick reaction <3 @tyranja !


Question regarding registration

https://github.com/labsyspharm/ashlar/blob/2587ea683c924e1b6d3cc4913e17532266471c5d/ashlar/utils.py#L34-L46
Hello, I have a question regarding the above code chunk.
I got erroneous results from ASHLAR's registration in my initial tests. ASHLAR did not report any errors but the output images were translated by large distances, much greater than the true offsets. This didn't happen with all the images but only some. Hence, I looked into the python scripts. The above code chunk is testing four possible offsets to account for cases with "shift in the wrong quadrant" as described in the comment. The tested shifts include large offsets. That seems to be the source of issue. Can you please check? For example, if shift = [2, 3], and img1.shape = [1080, 1080], running the lines 37-40 above gives:
>>> shifts
[(2, 3), (2, -1077), (-1078, 3), (-1078, -1077)]

Is this expected?

Those large offsets are expected to be present in the shifts list, but the cross-correlation computed for those large offsets should be almost zero so they should never "win" in the argmax call on line 45. Can you explain a bit more about your dataset and how you're running Ashlar? It would be helpful to see your data if it's possible to share. You can reach out to me via the email address in my profile if you want to coordinate that privately.

Hi @jmuhlich,
Thanks for looking into it. I am not sure if I fully understand the logic explained in the comment lines https://github.com/labsyspharm/ashlar/blob/2587ea683c924e1b6d3cc4913e17532266471c5d/ashlar/utils.py#L34-L36
If shift = [2, 3], shouldn't the four tested values per the above comment be [(2,3), (2,-3), (-2,3), (-2,-3)]?
I ran into the issue a while ago, when I was first trying to register images after correcting raw (1080,1080) TIFF files for illumination variation with BaSiC. They weren't great quality images, which might be one of the reasons. If I have the issue again with any of the images, I'll share a reproducible example.

@jmuhlich Thanks a lot for your time and the detailed explanation! I understand the logic better now. One thing I didn't get is, what is the issue with running BaSiC before registration? I understand that it may not be needed because of the LoG filtering by ASHLAR, but why should it be a problem?

Sorry, performing your own illumination correction isn't bad at all. Just unnecessary. :) If it works better in your workflow to do it that way though, go ahead. The Ashlar results will be the same.

Thanks for the clarification!


Link to first AI Dungeon doesn't work

https://pcc.cs.byu.edu/2019/11/21/ai-dungeon-2-creating-infinitely-generated-text-adventures-with-deep-learning-language-models/
The link is http://classic.aidungeon.io/

Thanks! Just updated it.


Optimizing and reusing code

Optimizing and reusing code

Codecov Report

Merging #4820 into master will increase coverage by 0.05%.
The diff coverage is 17.39%.

@@             Coverage Diff              @@
##             master    #4820      +/-   ##
============================================
+ Coverage     63.83%   63.89%   +0.05%
- Complexity      450      451       +1
============================================
  Files           769      769
  Lines         33137    33174      +37
  Branches       5203     5228      +25
============================================
+ Hits          21153    21196      +43
  Misses         9557     9557
+ Partials       2427     2421       -6

Impacted Files
Coverage Δ
Complexity Δ

...org/apache/dubbo/common/utils/CollectionUtils.java
87.85% <0%> (-1.68%)
0 <0> (ø)

.../org/apache/dubbo/config/spring/ReferenceBean.java
18.58% <0%> (ø)
0 <0> (ø)
:arrow_down:

...mmon/threadpool/support/eager/EagerThreadPool.java
100% <100%> (ø)
0 <0> (ø)
:arrow_down:

...va/org/apache/dubbo/config/spring/ServiceBean.java
50% <30%> (+1.78%)
0 <0> (ø)
:arrow_down:

.../apache/dubbo/qos/protocol/QosProtocolWrapper.java
65.85% <0%> (-17.08%)
0% <0%> (ø)

.../remoting/transport/netty4/NettyClientHandler.java
61.4% <0%> (-7.02%)
0% <0%> (ø)

...ng/exchange/support/header/HeartbeatTimerTask.java
73.68% <0%> (-5.27%)
0% <0%> (ø)

...bbo/registry/support/ProviderConsumerRegTable.java
80.48% <0%> (-4.88%)
0% <0%> (ø)

.../apache/dubbo/remoting/transport/AbstractPeer.java
58.69% <0%> (-4.35%)
0% <0%> (ø)

...dubbo/common/status/support/LoadStatusChecker.java
46.15% <0%> (-3.85%)
0% <0%> (ø)

... and 37 more

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 0e76eb0...047e92f. Read the comment docs.

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

As commented by the reviewers.


sink(cdc): cancel sink operations when network becomes unavailable

Signed-off-by: qupeng<EMAIL_ADDRESS>What problem does this PR solve?
Issue Number: close #7706 .
What is changed and how it works?
Set a timeout for contexts used in sink operations.
Another alternative is set wait-timeout on mysql sessions. But I'm not sure whether both TiDB and MySQL support it or not.
So I fix it in golang layer.
Why writeTimeout and readTimeout doesn't work on network partition?
These parameters make server side possible to shut connections which are busy at read-write operations. But when network partition happens, client side can know nothing about this.
Check List
Tests

Manual test (add detailed scripts or steps below)

Questions
Will it cause performance regression or break compatibility?
Do you need to update user documentation, design documentation or monitoring documentation?
Release note
None

Codecov Report

Merging #7707 (611a190) into master (6d24a57) will decrease coverage by 0.0539%.
The diff coverage is 54.6391%.

Additional details and impacted files

Flag
Coverage Δ

cdc
66.2346% <60.0000%> (-0.0674%)
:arrow_down:

dm
52.1158% <39.1304%> (-0.0695%)
:arrow_down:

engine
64.0139% <100.0000%> (+0.0170%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.
@@               Coverage Diff                @@
##             master      #7707        +/-   ##
================================================
- Coverage   59.9034%   59.8495%   -0.0540%
================================================
  Files           810        810
  Lines         93255      93289        +34
================================================
- Hits          55863      55833        -30
- Misses        32535      32590        +55
- Partials       4857       4866         +9

/run-all-tests

/merge


Deploy keys will not be deleted at repo delete

Gitea version (or commit ref): v1.7.1
Git version:
Operating system: CentOS7
Database (use [x]):

[X] PostgreSQL
[ ] MySQL
[ ] MSSQL
[ ] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[ ] No
[X] Not relevant

Log gist:

Description
If you add a deploy key to a repository and delete the repo, the deploy key will persist in deploy_key table and reference a repo which does not exist anymore. The key also stays included in authorized_keys and can be result in problems if the key is used for other repositorys but in a different mode (read/write).

I believe this was fixed in #5939
Updating to 1.7.2 should fix this issue.

@jolheiser thanks, I will upgrade and report back

Fixed. But I have to clean up my database by my own.


Wrong colors in terminal

Using base16-shell,
(setq base16-distinct-fringe-backgeround 0) (setq base16-theme-256-color-source 'base16_shell) (load-theme 'base16-tomorrow t)
Line numbers are the most jarring, but there are some problems with command highlights, too.

I am also having the same issue in the terminal using base16 ocean. I have base16 shell installed and have tried with and without it. I viewed the messages buffer in the terminal and saw there are some "Unable to load color" messages in there. They are not coming up in the messages buffer in GUI Emacs.

With spacemacs adding the config into the .spacemacs
(defun dotspacemacs/user-env ()
    (setq base16-theme-256-color-source 'base16-shell))

Yep, this should be fixed by specifying that the colors come from base16-shell. Please let me know if you're still having this issue!


Is there a version of the data set with Images as asymptote language like MATH?

Is there a version of the data set with Images as asymptote language like MATH?

Sorry, we do not provide this image format. After collecting the data, we use Mathpix for parsing, and the final images are in JPG format.


jax.clear_caches after backpropagating through diffeqsolve causes segmentation fault

Hi Patrick. As discussed in #142, memory usage may grow as we integrate more functions because of caching on jax's part.
For this reason, I am trying to find a way to reliably clear cache every once in a while using jax.clear_caches. However, this seems to invariably lead to a segmentation fault if done after differentiating through diffeqsolve.
Possibly related to google/jax#14212.
Any idea of what's going on here?
Minimal working example:
import equinox as eqx
import jax
import jax.numpy as jnp
from diffrax import ODETerm, Dopri5, diffeqsolve
from jaxtyping import Array, Float

class Function(eqx.Module):
    a: Float[Array, ""] = eqx.field(converter=jnp.asarray)

    def __call__(self, x: Float[Array, "*batch"]) -> Float[Array, "*batch"]:
        return - self.a * x

def solve(f: Function) -> Float[Array, ""]:
    return diffeqsolve(
        terms=ODETerm(lambda t, x, args: f(x)),
        solver=Dopri5(),
        t0=0.0,
        t1=1.0,
        dt0=0.1,
        y0=1.0,
    ).ys[0]

grad_f = jax.grad(solve)

f = Function(1.0)
grad_f(f)
jax.clear_caches()

Yeah, I've seen something similar. Right now my best advice is to treat jax.clear_{backends,caches} as buggy, and avoid them.
In practice I work around memory issues by restarting the Python process every now and again.


Extend dataset/run chooser for multi-selection

The dataset chooser should be extended to select one or two datasets.
Note that the suggestions for the second dataset depends on the selection of the first dataset in terms of the number of epochs or same dataset (CIFAR 10).

duplicate of #63, #78
resolved by #87


Incompatibility between math accents and old-style math alphabets like \mathbf with XeLaTeX

Math accents seem to now give errors when applied to old-style math alphabet commands like \mathbf, and to be just fine when applied to new-style commands like \symbf. Maybe this is known, but I don't remember seeing it mentioned in the unicode-math doc.
I realized that while answering a question to the lucida list, about adapting lucida-amsmath.tex to use the Lucida OpenType fonts. The matter, however, is not specific to Lucida. It is triggered by line 171 of lucida-amsmath.tex
\wh{\mathbf{K}}(i|i),\qquad i=1,\dots,n.
where \wh = \widehat (credit to John Lienhard for identifying this line as the culprit). Any math accent gives the same result. Possible test code:
`\documentclass{article}
\usepackage{kantlipsum}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont{lmroman10-regular.otf}
\setmathfont{latinmodern-math.otf}
\begin{document}
\kant[1-5]
\begin{equation}
\widehat{\mathbf{K}}(i|i),\qquad i=1,\dots,n.
\end{equation}
\end{document}
`
Remove \kant[1-5] so the faulty equation occurs before a page break, the console output with XeLaTeX is

! Internal error: bad native font flag in `map_char_to_glyph'

and XeLaTeX hangs forever. Leave \kant[1-5] so the faulty equation occurs after a page break, output is

! Internal error: bad native font flag in `map_char_to_glyph'
xdvipdfmx:fatal: File ended prematurely
Output file removed.

and the run is terminated. With LuaLaTeX, everything's just fine.

I agree this is not good.
In the short term I’m sure you know that you can fix this by loading the package with a kind of backwards compatibility:
\usepackage[mathbf=sym]{unicode-math}

I haven’t been able to trim this down to a minimal example yet… even if I do I’m not sure if XeTeX is being actively maintained at the moment, so it’s good to know it currently works in LuaTeX.


volume server log related

Hello,
is it possible to increase the log level of a volume server so that when some volume is being used can be logged? I don't find any setting from weed help volume. is there any way to show this log?
Thanks.

you can increase the log level via weed -v=4 volume ...
you may need to add some more logs yourself.

you can increase the log level via weed -v=4 volume ...
you may need to add some more logs yourself.

Thanks a lot. this will be helpful


Can't install

I'm using LazyVim and installed the plugin using the described method. Running :Telescope lazy gives the message "ERROR [telescope.run_command]: Unknown command"
Reproduction:

Follow https://www.lazyvim.org/installation for fresh installation of LazyVim
Add telescope-lazy
Attempt to use telescope-lazy

This is probably because you have not registered the extension in the telescope module during setup.
For example using LazyVimStarter as the starter template, do the following:

Create a new file telescope_lazy.lua
Put the following contents inside:

return {
  "tsakirist/telescope-lazy.nvim",
  dependencies = "nvim-telescope/telescope.nvim",
  config = function()
    require("telescope").load_extension("lazy")
    -- Can possible add other configuration as described in the README.md
  end,
}

Use :Telescope lazy it should work now

Does that fix your issue?


On non Linux systems, (g)make distrib stops halfway

because of QEMU not supported.
Symplifying cores counting data gathering.

thanks!


Add skipmotd plugin

I modified https://forums.alliedmods.net/showthread.php?p=2078568 to use clientprefs and have more config knobs, and pushed it to https://github.com/gcommer/skipmotd
By itself, this PR just adds the plugin but won't change gameplay at all because all cvars default to off.
I use the _force and _rememberclass cvars, but for UT you may want:
sm_nomotd 1
sm_nomotd_randomteam 1
sm_nomotd_randomclass 1

This config would let players use the sm_settings menu (or, WIP, gbans) to opt-in to skipping the motd, skipping the team select screen, and/or skipping the class select screen (random class only to avoid making it too easy to monopolize class limits per https://github.com/leighmacdonald/gbans/issues/520).
Unless you set a *_force cvar to 1, all behavior is strictly opt-in so there should be no user-visible change for most users.

Looks good, should be live sometime this week, thanks for the contrib. :+1:

Thanks for merging :) I'll contribute settings UI for this to gbans when I get a chance.


Seeing app hang during startup on "Fetching Content..."

The Issue
Seeing the app during startup on "Fetching Content...".
Steps to reproduce

Built from source (tag v0.15.1), installed libsecret/libsecret-devel & keytar
Launch app
See it hang

Expected behaviour
App should start, or ideally display an error message with missing dependency.
Actual behaviour
App does not start, sits at "Fetching Content..."
System Configuration

LBRY Daemon version: 0.15.2
LBRY App version: 0.15.1
LBRY Installation ID: 5UUaNbdMGcZ1w1H9cYoLd68K6X2E2ZLoYngKzm3QSWZ3nvpDfhRNic7bnqNYdm6fCY
Operating system: Linux (Linux-4.12.12-300.fc26.x86_64-x86_64-with-fedora-26-Twenty_Six)

Anything Else
Seeing these logs in stdout after launching the app from the cli:
** Message: Remote error from secret service: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.secre
ts was not provided by any .service files
(node:23772) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: The name org.freed
esktop.secrets was not provided by any .service files
(node:23772) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that ar
e not handled will terminate the Node.js process with a non-zero exit code.
** Message: Remote error from secret service: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.secre
ts was not provided by any .service files
(node:23772) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): Error: The name org.freed
esktop.secrets was not provided by any .service files
** Message: Remote error from secret service: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.secre
ts was not provided by any .service files
(node:23772) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 3): Error: The name org.freed
esktop.secrets was not provided by any .service files
2017-09-17 09:10:05,036 INFO     lbrynet.daemon.Daemon:1061: Get version info: {"lbrynet_version": "0.15.2", "platform"
: "Linux-4.12.12-300.fc26.x86_64-x86_64-with-fedora-26-Twenty_Six", "os_system": "Linux", "python_version": "2.7.12", "
os_release": "4.12.12-300.fc26.x86_64", "lbryum_version": "3.1.6", "ip": "Could not determine IP", "lbryschema_version"
: "0.0.10", "processor": "x86_64", "build": "release"}
** Message: Remote error from secret service: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.secre
ts was not provided by any .service files
(node:23772) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 4): Error: The name org.freed
esktop.secrets was not provided by any .service files

I'm running i3 on this machine, and had no problems starting the app on another machine running a vanilla gnome desktop. I'm guessing the i3 machine is missing some kind of secret management package / daemon that I otherwise would have on a Gnome desktop, but I'm unsure what that might be. Happy to provide additional details if needed.

It's most likely the gnome-keyring. Up to you if you want to try installing.
Already reported in this https://github.com/lbryio/lbry-app/issues/422 and the issue mentioned there.

@tzarebczan thanks, that was it. For Fedora with my setup, I needed to install gnome-keyring and then configure my DM (lightdm) to start and unlock gnome-keyring using PAM, which required an additional package (gnome-keyring-pam).
Would it make sense to add some kind of validation to the app that confirms org.freedesktop.secrets is available, and to have an explicit error notification? I bet there are enough users who don't have this configured that it might be worth it.

Glad you got it up and running, sorry for your trouble.
We have the issue logged in github, the real solution would be to use some kind of token generation that works across all Linux platforms. You shouldn't have to install some gnome software when it doesn't even apply to your system.
Send us an email to<EMAIL_ADDRESS>to claim a little tip for getting this far and for the suggestion.

You shouldn't have to install some gnome software when it doesn't even apply to your system.

+1, a dependency on a particular DE setup doesn't make a lot of sense. #386 is the tracking issue? I might be willing to take a stab at it if I get some time.

Going to close this as a duplicate.

Yes, #386 would be the one to use.
Thanks!


Raise exception when layer created with a scale value of 0

Description
This PR adds an exception when a layer is created with a scale value of 0 (which is invalid). This addresses issue https://github.com/napari/napari/issues/2569.
Previously when a layer was added with scale of 0 the error (reported in the above issue). Raises a LinAlg exception in a different part of the code that would be hard to interpret as a problem with scale values of 0.
Type of change

[x] Bug-fix (non-breaking change which fixes an issue)

References
Closes https://github.com/napari/napari/issues/2569
How has this been tested?
A test was added to confirm that the exception is thrown https://github.com/kephale/napari/blob/9afc02bed20aec407680c5eddd6f760c50d05c70/napari/_tests/test_viewer.py#L381
Final checklist:

[x] My PR is the minimum possible work for the desired functionality
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation (N/A)
[x] I have added tests that prove my fix is effective or that my feature works
[ ] If I included new strings, I have used trans. to make them localizable. (N/A)
For more information see our translations guide.

Since there are 3 approvals and the tests are passing, I will merge now. Thanks for the fix and test, @kephale !


Allow command-line invocation to customize feed URL

As the title says, allow a command-line option to customize the feed URL displayed.  This is useful when invoked locally for a specific feed, as opposed to any feeds either defaulted to in the code, or configured from within the application.  Example:
$ gorssh --feed "https://www.slashdot.org/slashdot/Slashdot"

I think there's some specific things you want here - ignoring the how for the moment, you want to:

Configure what feeds are being tracked (coming soon!)
View information from only one feed, i.e. a focus mode

Right now the vision for this is a multi-tenant ssh-served rss/atom feed reader. In the interest of simplicity I'm going to proceed with the initial vision; however I'm going to keep this open - I think the flexibility will add value.
I bet I could use cobra to self-invoke itself with different commands. https://github.com/spf13/cobra/issues/1526 says yes.
I could have a TUI and a non-TUI mode, and non-TUI mode will daemonize... And they even have an example for this already? https://github.com/charmbracelet/bubbletea/blob/master/examples/tui-daemon-combo/main.go
Next Steps:

Immediately: Add todo, "Focus on single feed mode" - This should be supportable in the early MVP.
Longer term: Consider a non-daemon local-TUI mode of some kind; or a mechanism that will provide one.


How to do logging within routes using the same logger?

Hi and thanks for sharing and reading this,
I have configured these middleware for express:
import winston from 'winston';
import { logger, errorLogger } from 'express-winston';

export const errorLoggerMiddleware = errorLogger({
  transports: [
    new winston.transports.Console(),
  ],
  format: winston.format.combine(
    winston.format.colorize(),
    winston.format.json(),
  ),
});

export default logger({
  transports: [
    new winston.transports.Console(),
  ],
  format: winston.format.combine(
    winston.format.colorize(),
    winston.format.json(),
  ),
  meta: true, // optional: control whether you want to log the meta data about the request (default to true)
  msg: 'HTTP {{req.method}} {{req.url}}', // optional: customize the default logging message. E.g. "{{res.statusCode}} {{req.method}} {{res.responseTime}}ms {{req.url}}"
  expressFormat: true, // Use the default Express/morgan request formatting. Enabling this will override any msg if true. Will only output colors with colorize set to true
  colorize: false, // Color the text and status code, using the Express/morgan color palette (text: gray, status: default green, 3XX cyan, 4XX yellow, 5XX red).
  // ignoreRoute: (/* req, res */) => false, // optional: allows to skip some log messages based on request and/or response
});

I want within this route to add a simple log:
router.get('/search', async (req, res, next) => {
  try {
    logger.log(req.originalUrl);
    const result = await fetch(`${config.addok.url}${req.originalUrl}`);
    const json = await result.json();
    res.json(json);
  } catch (error) {
    if (error.code === 'ENOTFOUND') {
      next(new ErrorHandler(SERVICE_UNAVAILABLE));
    } else {
      next(new ErrorHandler(INTERNAL_SERVER_ERROR, error.message));
    }
  }
});

However, logger.log is not a function, how can I add extra logging within routes using the same express logger?
Thanks for helping,
Dimitri

"express-winston" is not a logger instance, it's an express middleware to log all requests (or just errors).
You would "router.use" the logger instance to have express log all requests.  If you want to do what you're saying, there is no reason to use express-winston. Just use "winston" itself.
If you do want the logging and want to add additional logging, instead of passing "transports" to the logger function, create logger from the winston library itself and pass it as the "winstonInstance" of the logger options (instead of transports).
import winston from 'winston';
import * as expressWinston from 'express-winston';

export const logger = winston.createLogger({
   transports: [
    new winston.transports.Console(),
  ],
  format: winston.format.combine(
    winston.format.colorize(),
    winston.format.json(),
  ),
});

export const loggerMiddleware = expressWinston.logger({
    winstonInstance: logger,
   meta: true, // optional: control whether you want to log the meta data about the request (default to true)
  msg: 'HTTP {{req.method}} {{req.url}}', // optional: customize the default logging message. E.g. "{{res.statusCode}} {{req.method}} {{res.responseTime}}ms {{req.url}}"
  expressFormat: true, // Use the default Express/morgan request formatting. Enabling this will override any msg if true. Will only output colors with colorize set to true
  colorize: false, // Color the text and status code, using the Express/morgan color palette (text: gray, status: default green, 3XX cyan, 4XX yellow, 5XX red).
  // ignoreRoute: (/* req, res */) => false, // optional: allows to skip some log messages based on request and/or response
});

export const errorLoggerMiddleware = expressWinston.errorLogger({
   winstonInstance: logger
});

Hi and thanks for your detailed reply.
Using winstonInstance I am still able to use the express middleware and express error middleware, however, when I try to use logger.log, I have:
 Cannot create property 'Symbol(level)' on string 'Application is listening on port 3001'.
This is logger.js:
import winston from 'winston';

const logger = winston.createLogger({
  transports: [
    new winston.transports.Console(),
  ],
  format: winston.format.combine(
    winston.format.colorize(),
    winston.format.json(),
  )
});

export default logger;

and this is middleware/logger.js:
import {
  logger as expressLogger,
  errorLogger as expressErrorLogger,
} from 'express-winston';
import logger from '../logger';

export const errorLoggerMiddleware = expressErrorLogger({
  winstonInstance: logger,
});

export default expressLogger({
  winstonInstance: logger,
  meta: true, // optional: control whether you want to log the meta data about the request (default to true)
  msg: 'HTTP {{req.method}} {{req.url}}', // optional: customize the default logging message. E.g. "{{res.statusCode}} {{req.method}} {{res.responseTime}}ms {{req.url}}"
  expressFormat: true, // Use the default Express/morgan request formatting. Enabling this will override any msg if true. Will only output colors with colorize set to true
  colorize: false, // Color the text and status code, using the Express/morgan color palette (text: gray, status: default green, 3XX cyan, 4XX yellow, 5XX red).
  // ignoreRoute: (/* req, res */) => false, // optional: allows to skip some log messages based on request and/or response
});

This is roughly how I try to use logger.log:
import logger from './logger';

export function start() {
  const app = initExpressApp();
  const port = process.env.NODE_PORT || 3001;
  const server = app.listen(port);
  logger.log(`Application is listening on port ${port}`); // eslint-disable-line no-console
  return server;
}

What am I doing wrong? Thanks once more for your time and help.
Dimitri

Sorry, it is all explained in winston documentation.
The solution is to use :
logger.error('This is error');,
logger.warn('This is warning');
logger.info('This is info');
logger.verbose('This is verbosity');
logger.debug('This is debug');
logger.silly('This is silly');

// or

logger.log({
  level: 'info',
  message: 'Hello distributed log files!'
});


roboconf.dev.configuration.js should not be copied in the distribution!

False alert. :relieved:
The task we use for releases is "embed", and it already checks for the presence of the dev' configuration file.


[NodeJS] More broken things with release 0.1.0

Please answer these questions before submitting your issue.

Why do you submit this issue?
[ ] Question or discussion
[x] Bug
[ ] Requirement
[ ] Feature or performance improvement

Bug
There seems to be more things broken in 0.1.0 compared to pre-release. I have some more detailed tests which were doing concurrent requests from various server types using various request methods which have stopped working correctly. Attached are two images of a snippet of a test before and after release and in this example you can see spans being cut off and component type not being set correctly, and possibly concurrency issues.
So far the changes to HttpPlugin seem to be a big part, but not all of the problem. The thing is that http sits underneath all the other plugins and must account for the fact that they may override it, but there is more to the errors than just the plugin I think, I am investigating.
Here is before (what it should be):

And here is after (broken, note entry span /doall marked as Http - http instead of Http - express and the exit spans cut off, as well as one of the standalone error exit spans also cut off):

NOTE: If you want I can provide you the messy source of this test so you can check on your side as well.

One other change I am not certain about, the change from plugin require() using the form PluginInstaller.require('axios').default to require('axios').default. The PluginInstaller.require() function is specifically set to run in the context of the top-level module. I did this because I had a test case (don't remember details exactly) where the skywalking plugin could not "see" a module the main app was using through its require() function and its dir search tree, which led to the module not being instrumented since skywalking could not require() it from where it was. So I added this function so that skywalking can require() in the same exact way the main module does and sees everything that it does.

I am preemptively sending you my test suite since I will probably be asleep by the time you see all of this. Its a simple npm install and ./run.sh to run the tests assuming your OAP server is local, otherwise set collectorAddress in client.js and srv_*.js. Also you need to explicitly npm install or npm link whatever skywalking you are using.
I suggest first checking commit e06e5c5 to see what the test should be before comparing to current broken master.
tests.tar.gz
P.S. Adding such a test may be beneficial to your current test suite.

FYI @tom-pytel @kezhenxu94 As we have finished the vote, and release(from ASF perspective) is done, https://dist.apache.org/repos/dist/release/skywalking/node-js/0.1.0/ exists already. I am going to tag this as 0.2.0.
You two could make a decision whether we should market the 0.1.0 publicly from the quality perspective. But it is there :P

FYI @tom-pytel @kezhenxu94 As we have finished the vote, and release(from ASF perspective) is done, https://dist.apache.org/repos/dist/release/skywalking/node-js/0.1.0/ exists already. I am going to tag this as 0.2.0.
You two could make a decision whether we should market the 0.1.0 publicly from the quality perspective. But it is there :P

Yes, sorry I didn't get to verifying this earlier, this release was timed perfectly with holiday season where I live 🥳
I think this is ok to release publicly as a 0.1.0 version, single level calls seem to work fine, it is the more complicated situations which break, sometimes.

e06e5c5 is truly set the component id as HTTP, and it exists still
https://github.com/apache/skywalking-nodejs/blob/c491d5cbdbea965a4ed640a93d9c232fafb99056/src/plugins/HttpPlugin.ts#L76-L80
The trace broken will need local debugging :)

Also I think this is a good indicator that the regression tests could be made a little more robust (something I mentioned working on the Python agent). A cascaded test like I have included (more than just two endpoints with intermediates), testing multiple simultaneous threaded and multiple concurrent async requests, as well as fail-case tests (especially 404 and 500 for http cases). But that would be gold-standard and doesn't need to be implemented all at once or necessarily this early...

I think the most challenge thing will be multiple simultaneous threaded case. The CI includes 3C8G, so, whether we could provide enough concurrency requests and how to detect illegal(broken) trace in the hundreds of request, some of them maybe correct.

e06e5c5 is truly set the component id as HTTP, and it exists still
https://github.com/apache/skywalking-nodejs/blob/c491d5cbdbea965a4ed640a93d9c232fafb99056/src/plugins/HttpPlugin.ts#L76-L80

And in the same way testing for span.depth === 1 yes, except I think the difference may be that the higher level span has ended and so the depth will be 1 where it was not before since this was changed to onFinished() it is probably processed in a different order from before. In any case, you can see the different behavior in the images I sent up, the earler tags as express  and the new one as Http.

I think the most challenge thing will be multiple simultaneous threaded case. The CI includes 3C8G, so, whether we could provide enough concurrency requests and how to detect illegal(broken) trace in the hundreds of request, some of them maybe correct.

Even though my standalone tests are easier because I have full control, and I am not familiar with the testing framework you are using so can't give an opinion on that, but I can say that threaded is even problematic for me since order of connections is not guaranteed so checking is a bit more tricky.

@tom-pytel can you share the test codes with me, I’d like to check, reproduce and verify

@kezhenxu94 I think this is, https://github.com/apache/skywalking/issues/6109#issuecomment-752747987


Certificate expired

The certificate for the live lookup service seems to have expired.  Any chance we could get an updated cert?

Nevermind, seems to be working now.

for some reason it is still an issue for me

and there seems no new cert issued https://crt.sh/?q=lookup.dbpedia.org

Yeah, it seems to have started causing problems again here.


File upload, how to better implement it?

@robmarshall Hi! I'm going to work on the file upload functionality and am thinking about the best approach for implementing it. So far, I've identified the following issues:

This plugin should be installed to enable file uploading: https://github.com/dre1080/wp-graphql-upload. If it's not installed, and we still render a field with its functionality, users might encounter unclear errors. How can we ensure it is required to be installed?
Currently, Gravity Forms doesn't immediately throw an error when a user tries to upload a file with an unsupported type. We can easily improve this in our package by throwing the error right away. Do you think it's worth doing, or should we replicate Gravity Forms' functionality as closely as possible?
It is possible to enable a multi-file upload option, which activates a dropzone field. I notice that files get uploaded directly to the server on drop. Do you think we should replicate this behavior, or could we submit all files on form submission?

@robmarshall do you have any input on above questions?

Nice one digging into this @Gytjarek
How can we ensure it is required to be installed
We can't. As we are not creating a WordPress side plugin we cannot show any notifications on the admin side.
There is a chance we would be able to check for the existance of a dedicated WpGraphQL Upload field. If there isnt one throw an error.
But tbh I am most inclined to have details of this in the Readme and leave it at that.
Tries to upload unsupported type
What happens if a user has added custom support for a file in WP. Such as SVG support, do they also have to handle this within this package?
Maybe we fall back to default WordPress types and show an error as you suggest, and allow this to be overridden by custom types. Purely file extension checking - nothing fancier otherwise it gets a bit scope creepy.
Multi-file upload
Thoughts on getting a single file upload working first? Reduce the workload, focus on initial feature and then extend to multi-file later.

yes thanks for your inputs. I've implemented a single file upload already, that's why asking about Multi-file upload :)

Hi @Gytjarek, can you share how you implemented single file upload?

yes thanks for your inputs. I've implemented a single file upload already, that's why asking about Multi-file upload :)

Hi @Gytjarek, can you share how you implemented single file upload?

Hi! Pls check it here: https://github.com/Hike-Digital/next-gravity-forms/tree/feature/fileupload, it’s a branch we’re going to merge soon

yes thanks for your inputs. I've implemented a single file upload already, that's why asking about Multi-file upload :)

Hi @Gytjarek, can you share how you implemented single file upload?

Hi! Pls check it here: https://github.com/Hike-Digital/next-gravity-forms/tree/feature/fileupload, it’s a branch we’re going to merge soon

@Gytjarek Great! Thank you.

@Gytjarek Is there a way to switch to the fileupload branch in your fork so I can test?

its being implemented


Scanned product remains highlighted until the next product is scanned, persisting even if manually unchecked before selecting another product.

Current behavior
Scanned product remains highlighted until the next product is scanned, persisting even if manually unchecked before selecting another product.
Expected behavior
Scanned product should not appear highlighted if user manually uncheck the product
Steps to reproduce the issue

Login the Picking App with valid credentials.
Open any picklist.
Scan any product either by product ID or through QR code.
Try to unselect the highlighted product and select any other product.
Observe the issue.

Environment details

App version: 1.17.0
Environment: UAT

https://github.com/hotwax/picking/assets/158989293/a7b5faad-7747-4ffa-8672-6ca2eee22eb0

Issue verified and working fine in v1.18.0.
https://jam.dev/c/ba03d046-652a-4682-8803-d8ba33bf5f85


KeepAlive HTTPS Connections

From what I can tell at least, you don't seem to be using HTTPS persistent connections.  This seems problematic especially if you are making several calls to services.  I know PCL does not support it but the Core is platform specific and each platform supports it.  From what I understand, it is as simple as setting KeepAlive to true and .net takes care of the rest (https://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.keepalive.aspx).  Is there a reason you are not leveraging this?  Is there some way to at least enable it upon request?

KeepAlive is on by default with HttpWebRequest. The documentation you linked to points that out in the Property Value section. Are you seeing some behavior that indicates that persistent connections are not being used?

Yeah I did several checks to prove this, but apparently it was Charles Proxy who was causing the SSL handshake to happen every time (despite their claims that persistent connections are supported).  I did notice that the iOS app will reestablish the connection after one or two reuses, but that might be something with Xamarin. It continually reuses the connection on mono (dropping from 1s end-to-end to .2s end-to-end per request).  Thanks for your help anyway!


refactor: Removing now redundant redash fix

reverting https://github.com/firebolt-db/firebolt-sqlalchemy/pull/43
This is no longer required as of https://github.com/getredash/redash/pull/5689

Looks like we also need to remove all dbapi related fields from __init__.py

Good point, removed.


Campanion Backpacks

Describe the bug
The Campanion backpacks spill out on death rather than get saved. They are supposed to spill their contents when you pull them off, so I guess it defaults to that.
To Reproduce
Steps to reproduce the behavior:

Go to the nether while wearing any of Campanion backpacks
Die
Realize with horror while on death screen that your backpack has just spilled all over, likely into lava

Expected behavior
Backpack does not spill items out and is restored perfectly fine when you get to the grave
Desktop (please complete the following information):

OS: Linux
Minecraft Version: 1.19.2
Version: 1.4.9

Additional context
Using Campanion mod (v4.1.2) on a modified friend Tinkerer's Quilt modpack

Tried to implement this myself. For some reason I am getting an error about "private method" for BlockEntityRendererFactories, but shrug. Maybe messed up dev env setup.
As I understand it, there's no way to merge existing inventory with the one from the grave? I am confused as to how dropAll method works, as it runs the same way for both picking up and dying, as I understood? But when dying that method has to make sure that everything got cleared so nothing drops the usual way, no? But if I do the same when picking it up, that wipes out the alive player inventory... I'm rather confused.

Nevermind, I messed up lol
getInventory I had did not actually set anything up when it was called with onDeath = false. Which I did not realize handled merging of two inventories (alive and dead) by just using that on both dead and alive inv.
Anyways, for anyone looking to implement compat, here's rough guideline for stuff:

Death: vanilla inventory, equiplement and etc gets added into list of stuff to save, then compat is called:

First it runs getInventory with onDeath true. Here you have to handle soulbound stuff.
Then it does dropAll to clear stuff out so whatever the default for the mod is does not drop extra stuff that we already stored

Respawn

Vanilla player inventory is filled
dropAll is called, just in case
setInventory is called based on what was stored in soulbound object. Notably the mod soulbound stuff can NOT have extra stuff. It just gets ignored.

Picking up

Vanilla stuff, blah blah, then compat getInventory is called, but obviously without onDeath.
dropAll
setInventory twice, with the alive and with grave Object created by previous getInventory calls. The order is config dependent or something

Tada!

Also, is there any good way to merge two ItemStack together? Did not have the best success looking for that

Um right... Yeah I can see some stuff might not be the easiest to understand.. But yes I think you basically got how inventory saving and grave stuff works. I'm trying to write an easier way (or at least not as confusing way) to add compat with inventory mods in my 1.20 rewrite, which is taking some time.
As with item stacks being "mergable", I don't think that was something that I ever considered would be doable. I'll make sure to try and do something like that for the 1.20 rewrite though.
If there's still any uncertainty, don't hesitate to ask

TBH it isn't that bad of an API. Just confusingly named and could really use some typing and docs help. The former is a bit finickly to get all done. For docs it's mostly "what these methods need to do" and such. As despite the comments on the interface, I couldn't really get what these do without extensive looking at both other compat APIs and when and how mod calls this all.
For mergeable - I just sorta made my own lil' hack where it does forEach on maybe extra items list and tried to see if it can combine that into an existing stack in the mod inventory.
Also, is there any reason not to let extra items from soulbound handler to go into player inventory/drop as overflow? Cuz the mod in question has a backpack that by itself does not store anything and it's all just in the player entity. And I wanted so soulbound stuff in the backpack gets pulled through. But turns out the YIGD ignores the extra from that. So I have to leave it in the grave instead, as otherwise it will just get wiped. Or I guess I could make it get dropped but that sounds... off.

I'm not gonna lie, I completely overlooked that part, and didn't realize I didn't do that already. Thanks for pointing it out. Might not change in the 1.19 branch since I've kinda moved on from working on that version, but could perhaps go back there in the future. Will fix in 1.20 branch though

By the way, could I make a PR for 1.19 branch to get this in? If it looks sufficiently okay, that is
Though, urgh, another jar to add isn't exactly pretty. Makes the repo bloat in size...

If not another jar, use cursemaven or something. That's what I'm doing on the 1.20 branch anyway


Proxy support for http client

I've seen it mentioned somewhere but there didn't seem to be an issue open for it.
As a workaround for anyone looking for a solution, it might be possible to use the pipeline-transform argument along with io.netty.handler.proxy.{HttpProxyHandler,Socks4ProxyHandler,Socks5ProxyHandler}. I haven't got the time to actually try it, though.

:pipeline-transform works on the connection, so it can't be a per-request setting, it would have to be per-connection pool.    I haven't had to mess around with proxies much in the past, so I'd be happy to look at any code samples you may have.

If I get around to trying it I'll be glad to share.

Is there anything particular that makes per-request proxy support difficult to implement in Aleph or is it just a to-do?

I haven't looked at it, but I'm pretty sure it's straightforward.  I just haven't gotten to it yet.

This is the :pipeline-transform workaround mentioned above:
(def my-pool (aleph.http/connection-pool
               {:connection-options
                {:pipeline-transform
                 (fn [^ChannelPipeline x]
                   (doto x
                     (.addFirst (into-array ChannelHandler [(HttpProxyHandler. (InetSocketAddress. "myproxy" 8080))]))))}}))
(deref (aleph.http/get "https://github.com" {:pool my-pool}))

Closing, covered here https://github.com/ztellman/aleph/commit/60fcdfd9d2c53d9a2e9e2e374551ede6e7d12c74


Use of conda to get latest version of tools

Hi @mithro, I read your document, but I need more info about that point :P I will check how to use Conda, and I need an environment which supports:

Yosys, GHDL and the ghdl-yosys-plugin, iverilog, verilator.
Python3 and edalize.
ISE, Vivado and Quartus.

Recommendation/suggestions? How you solve the support for ISE/Vivado? (which means virtual in your document?). Thanks in advance for links or material that you could provide.

Hi @mithro, I read your document, but I need more info about that point :P I will check how to use Conda, and I need an environment which supports:

FYI -- If you don't want to support all of Linux, Mac and Windows then conda is not really the right choice. If you just want to support Linux, then something like Docker is probably a better / simpler option.
I have some conda notes in a Google Doc here which explain various things.
Conda uses environment.yml files for specifying environments, these can include the traditional Python requirements.txt files. See https://github.com/SymbiFlow/sv-tests/blob/master/.github/travis/install.sh and https://github.com/SymbiFlow/sv-tests/blob/master/conf/environment.yml

Yosys, GHDL and the ghdl-yosys-plugin, iverilog, verilator.

Yosys / iverilog / verilator should all be up to date (but I would like to get faster at pushing new packages).
GHDL and ghdl-yosys-plugin are still a WIP but should be added in the near future.

Python3 and edalize.

This is pretty easy.
Example script -- https://github.com/litex-hub/litex-conda-packages/blob/master/conda-get.sh

ISE, Vivado and Quartus.

These are not ready yet but should be in a couple of weeks.

Recommendation/suggestions? How you solve the support for ISE/Vivado? (which means virtual in your document?). Thanks in advance for links or material that you could provide.

FYI - EDDA is a current work in progress and rapidly evolving.

No, I am not interested in Windows or Mac here (I assume that how the tools work in these OS is tested somewhere :P). So, I probably will use docker images described at #8, adding what needed.

@rodrigomelo9 - You could have a play with conda and see what you think, but I'm guessing docker will be a better solution for you.

Hi @mithro, I finally used Decker. Thanks.


Replace buildout

Removes buildout and supports pip and standard setuptools; updates the documentation accordingly.

Other than that, looks good. I'll merge once that's done.


Add .NET NativeAOT dependencies for Fedora/RHEL

Summary
Add NativeAOT dependencies for Fedora/RHEL.
I also sorted all the Linux entries alphabetically.

Internal previews

📄 File
🔗 Preview link

docs/core/deploying/native-aot/index.md
Native AOT deployment

Hey @adegeo , anything I can do to help move this along?

No, it just slipped through a few times, sorry about that!


feat: add persistent datastore

use firestore instead of env config for kms key storing

This is a prototype of the interface abstraction from dicussion https://github.com/abcxyz/jvs/pull/86#discussion_r920574871.
@sethvargo @yolocs. It is ready for early review.

This is ready for another round of review. In case the PR gets too large and becomes difficult to review, I will add logic to remove env config in public key api and cert rotation api, remove kms lavels to get/read primary key in future PRs. @sethvargo @raserva @yolocs

There are many places missing proper documentation.

I added some comments regarding the interface and env config, is there anything that is still missing.


Skip k8s client creation when reading local file.

What type of PR is this?
/kind bug
What this PR does / why we need it:
Make the tool more robust. Don't read/run k8s client config when reading local file. E.g. user may have incorrect/incompatible .kube_config but the user tries to convert a local file. .kube_config file should not affect the tool run in such case.
I've checked all providers, none needs a k8sclient to translate a local file, which is expected.
Which issue(s) this PR fixes:

Fixes #127
Does this PR introduce a user-facing change?:

Skip k8s client creation when reading local file.

/cc @LiorLieberman

@dpasiukevich I think it also fixes #122 right?

/hold
for the controlled merge

@dpasiukevich I think it also fixes #122 right?

Yes, by the looks it should fix this issue as well. Let me double check that case later today and close that issue if it's the case.

Yes, by the looks it should fix this issue as well. Let me double check that case later today and close that issue if it's the case.

SG
/unhold
/approve


Chrome Components

Working on chrome updates based on work from prototype. Not to merge until after initial inject-tailwind branch is released.

Took a quick video of our progress so far with this:
https://www.loom.com/share/7f8c3918b2b3467189394d1d2dfbcca6
As cool as the pictures are, seeing it in motion is where I think it really shines. 🎉

[ ] Hide "Document Creator" in Navigation if tina-admin flag is true

Looks good to me. When ever you want to merge it I will approve it


hipEventRecord time depends heavily on number of streams, synchronization, and HIP version

We're using HIP events to poll for the completion of kernels and to trigger continuations once a kernel completes in a linear algebra library (https://github.com/eth-cscs/DLA-Future). We heavily use rocBLAS/SOLVER for the linear algebra kernels. We also create many streams to increase concurrency when operating on different parts of matrices. Moving from HIP 5.2.X to 5.4.X we observed a large (> 2x) slowdown for some algorithms. From profiling we see that the kernels themselves actually did not slow down at all. Investigating further, and minimizing one of our tests, one of the culprits seems to be hipEventRecord. The time taken by hipEventRecord is very inconsistent and I believe it's at least one of the causes of the slowdown we're seeing. Since we're also launching many kernels we're especially affected by this slowdown.
https://gist.github.com/msimberg/6904f4b8b09ffbddace50a03b66af565#file-rocm_polling-cu contains a little test program that:

creates a number of streams
creates a number of events
records events on the streams (or a single separate stream)
waits for the events to complete
Additionally, it can optionally launch an empty kernel and call hipDeviceSynchronize at the beginning of an iteration.

If I run the test program with (rocm_polling 6 256 5000 3):

6 iterations, launch kernel and synchronize a kernel on the fourth iteration
5000 events
256 streams

with 5.2 I see a small performance change (improvement) in the test after synchronizing. In our own miniapps synchronizing at the start of the application doesn't seem to make a (big) difference. Typical output:
record: 0.0264502, total: 0.0269117
record: 0.0229541, total: 0.023369
record: 0.0227908, total: 0.0232039
synchronize
record: 0.0157944, total: 0.0162131
record: 0.015794, total: 0.0162075
record: 0.0157841, total: 0.0162085

With 5.4 typical output is:
record: 0.0286722, total: 0.0288229
record: 0.0280789, total: 0.0282264
record: 0.0276609, total: 0.0278028
synchronize
record: 0.00951174, total: 0.0159333
record: 0.00836649, total: 0.0158775
record: 0.00822481, total: 0.0158771

and in our own miniapps synchronizing at the start makes a big difference.
With 5.6 typical output is:
record: 0.0237216, total: 0.0239437
record: 0.0233935, total: 0.0236061
record: 0.022855, total: 0.023064
synchronize
record: 0.00617225, total: 0.0155317
record: 0.00525886, total: 0.0155088
record: 0.005132, total: 0.0154863

and in our own miniapps synchronizing at the start again makes a big difference.
Additionally, with 5.4 only synchronizing, but not launching a dummy kernel, only slightly improves the timings, i.e. not as dramatically as above with a dummy kernel. With 5.6 only synchronizing, but not launching a dummy kernel, makes no difference.
Obviously the test above is an imperfect proxy to the performance as it doesn't fully correlate with the performance we see in our algorithms, but the trends are exactly the same as we see. hipEventRecord may not be the only culprit, but e.g. hipEventQuery may also be involved.
Finally, the overheads seem to increase with the number of streams. Above there are 256 streams, but reducing it to approximately 50 mostly erases any difference between versions and synchronization/no synchronization.
We're seeing this on an MI250x system (specifically, the GPU partition on LUMI; rocminfo output). I make only one device visible from one MPI rank for the test.
The driver version is <IP_ADDRESS>.20.
The 5.2 version is (this is the default available on LUMI):
> hipcc --version
HIP version: 5.2.21153-02187ecf
AMD clang version 14.0.0 (https://github.com/RadeonOpenCompute/llvm-project roc-5.2.3 22324 d6c88e5a78066d5d7a1e8db6c5e3e9884c6ad10e)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/rocm-5.2.3/llvm/bin

5.4 is (installed through spack):
HIP version: 5.4.22804-
AMD clang version 15.0.0
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /projappl/project_465000105/simbergm/spack-install-tree/23.03/0.19.2/llvm-amdgpu-5.4.3-fsdty35/bin

5.6 is (installed through spack):
HIP version: 5.6.31062-
AMD clang version 16.0.0
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /projappl/project_465000105/simbergm/spack-install-tree/23.03/0.19.2/llvm-amdgpu-5.6.1-4u5wf4a/bin

What am I observing here? Why is there such a strong dependence on the number of streams? Is it expected that hipStreamSynchronize or a dummy kernel would affect the timings this strongly? More practically, is there a reliable way we can guarantee the "good" behaviour (are there other HIP runtime functions that we can reliably call to force the "good" behaviour above)? Do you expect changes in the performance of events in the future?

I think that the dependence on the number of created streams (even if you do not use any of these) can be explained by the fact that during hipEventRecord(events[i] , stream) the runtime needs to synchronize with the null stream. The way this is currently implemented it iterates through the whole set of created streams in order to get the right stream to synchronise with (the nullstream in this case).
To confirm that this is the case and as a possible workaround, can you try to use a non NonBlocking stream in hipEventRecord
i.e create the stream with:
check_error(hipStreamCreateWithFlags(&stream, hipStreamNonBlocking));
This indicates that the stream does not need any synchronisation with the nullstream (there is no work submitted to the nullstream here anyway) and the runtime will skip the iteration through the large stream set. This can be faster and the timings should be constant with increasing number of streams.

Thanks @iassiour for the quick response.

The way this is currently implemented it iterates through the whole set of created streams in order to get the right stream to synchronise with (the nullstream in this case).

That's a bit of an unfortunate but not much that can be done about it for released versions. Do you think there's a chance this could be fixed to be a constant time operation in future releases (and if so, should I open a separate issue for that somewhere)? I understand this may have been sufficient for most use cases, but given a system with 8 GPUs and say 16 streams for each GPU you're already up to 128 streams. We're lucky in this case to use only one MPI process per GPU, so we can limit the number of streams, but it would be interesting to explore making use of all GPUs on a node from a single process in the future and then I see this becoming a bottleneck again.

To confirm that this is the case and as a possible workaround, can you try to use a non NonBlocking stream in hipEventRecord
i.e create the stream with:
check_error(hipStreamCreateWithFlags(&stream, hipStreamNonBlocking));

I'll give this a try, thanks for the hint! We've actually had that enabled before, but had to disable it due to issues with rocBLAS. I'm hoping we do not see those issues anymore.
Any ideas about what's going on with hipDeviceSynchronize and just launching a kernel?

Hi @msimberg

Do you think there's a chance this could be fixed to be a constant time operation in future releases (and if so, should I open a separate issue for that somewhere)?

I have raised an internal ticket to track the issue. We will work towards optimising this use case for future release.

Any ideas about what's going on with hipDeviceSynchronize and just launching a kernel?

Launching the kernel has the side-effect to create the nullstream at that point.
If the nullstream exists the search during hipEventRecord stops earlier otherwise it continues to the end of the streamSet.
Calling hipDeviceSynchronize only (without the kernel) does not seem to have an effect in my tests. I do see that the last 3 iterations are marginally faster maybe because of cache effects but running the test with more iterations it seems that changing the synchronize_index does not make any difference.

@msimberg Do you still need assistance with this ticket? If not please close ticket. Thanks!

@ppanchad-amd has something in HIP been changed to change the behaviour? It'd be interesting to be notified through this issue once the internal ticket mentioned by @iassiour has made it into a release.

Hi @msimberg a fix for this has been added with this change:
https://github.com/ROCm/clr/commit/8bdda9007104ddd90f8a77955821d2c765979ad3
And it has made it into the 6.1 release. Could you please confirm that it resolves the issue.


add action buttons in item collections

enabled item action buttons inside item collections

This was requested by @Iankid to make solar crystals work inside a Solar Weapon.
Just a more flexible approach to allow all items to have their buttons.

So currently with both attack and damage buttons, this causes small items to be overfull.

(Although its fine with only one button)

Playing around a bit, changing the flex-direction of the buttons to row and setting their margins to 0 creates a nice alternative

thx for keeping track of the styling stuff. I will commit a change.


deleting a mariadb instance outside of terraform breaks planning

Hi,
deleting a mariadb that is in state outside of terraform results in the following error instead of triggering a recration.
╷
│ Error: Error reading instance
│
│   with stackit_mariadb_instance.mariadb,
│   on main.tf line 173, in resource "stackit_mariadb_instance" "mariadb":
│  173: resource "stackit_mariadb_instance" "mariadb" {
│
│ Calling API: 410 Gone, status code 410, Body: {"error":"Get instance failed. instance deleted","description":""}
│
│
╵

I would expect the provider to recognise that the instance in state is gone and recreate it and its dependencies.
I work around it wit tf state rm stackit_mariadb_instance.mariadb, but it is not ideal that I have to touch the terraform state locally

Hi,
Thanks for reporting the issue. This was addressed in the latest v0.16.0 release.


Handling of cells outside of viewport

Testing #223152

select two cells
scroll the lower cell (cell 2) out of the viewport
cmd+/
scroll cell 2 partially into the viewport -> only cell 1 has been commented
cmd+/ -> cell 1 has been uncommented, cell 2 has been commented

After step 3 I'd expect both cells to be commented and after step 5 both to be uncommented

Need to move the toggle comments action off of the editor command. Case is simpler overall since we are not operating on cursors or a specific selection.
Relying on editor.executeCommands() is the limitation, as we don't have editors outside of the viewport. We can construct these edits in a similar way to a LineCommentCommand and simply apply them to the model, allowing us to apply to cells outside of the viewport


feat: Functor.mapHomotopyCategory is a triangulated functor

In this PR, we show that if F is an additive functor, then the induced functor on the homotopy categories is a triangulated functor.

[x] depends on: #14087

bors d+

Thanks!
bors merge


state: dodge a bug in zcashd

Zcashd will blindly request more block headers as long as it got 160
block headers in response to a previous query, EVEN IF THOSE HEADERS ARE
ALREADY KNOWN.  To dodge this behavior, return slightly fewer than the
maximum, to get it to go away.
https://github.com/zcash/zcash/blob/0ccc885371e01d844ebeced7babe45826623d9c2/src/main.cpp#L6274-L6280
Without this change, communication between a partially-synced zebrad
and fully-synced zcashd looked like this:

zebrad connects to zcashd, which sends an initial getheaders
request;

zebrad correctly computes the intersection of the provided block
locator with the node's current chain and returns 160 following
headers;

zcashd does not check whether it already has those headers and
assumes that any provided headers are new and re-validates them;

zcashd assumes that because zebrad responded with 160 headers,
the zebrad node is ahead of it, and requests the next 160 headers.

Because block locators are sparse, the intersection between the
zcashd and zebrad chains is likely well behind the zebrad tip,
so this process continues for thousands of blocks.

To avoid this problem, we return slightly fewer than the protocol
maximum (158 rather than 160, to guard against off-by-one errors in
zcashd).  This does not interfere with use of the returned headers by
peers that check the headers, but does prevent zcashd from trying to
download thousands of block headers it already has.
This problem does not occur in the zcashd<->zcashd case only because
zcashd does not respond to getheaders messages while it is syncing.
However, implementing this behavior in Zebra would be more complicated,
because we don't have a distinct "initial block sync" state (we do
poll-based syncing continuously) and we don't have shared global
variables to modify to set that state.
Relevant links (thanks @str4d):

The PR that introduced this behavior: https://github.com/bitcoin/bitcoin/pull/4468/files#r17026905
https://github.com/bitcoin/bitcoin/issues/6861
https://github.com/bitcoin/bitcoin/issues/6755
https://github.com/bitcoin/bitcoin/pull/8306#issuecomment-614916454

I tested this locally and verified that we no longer get in a getheaders-processing loop.  Thanks to @oxarbitrage for debugging the fact that our zcashd peers were sending us sequential getheaders messages.

Just going to close and reopen this to make sure that the test failure fixed by #1440 wasn't hiding any other failures

From bitcoin/bitcoin#6755:

This is a problem particularly for altcoins with either of a high block frequency or merge-mining (much larger header messages)

Zcash does both of these things


[Installation]: No matching distribution found for xgrammar>=0.1.6; platform_machine == "x86_64"

Your current environment
The output of `python collect_env.py`

I got this error.

How you are installing vllm
I download the latest .whl from vllm-0.6.6+cu118-cp38-abi3-manylinux1_x86_64.whl.
The problem I face:
pip install vllm-0.6.6+cu118-cp38-abi3-manylinux1_x86_64.whl
Processing ./vllm-0.6.6+cu118-cp38-abi3-manylinux1_x86_64.whl
Requirement already satisfied: psutil in ~/anaconda3/envs/llmeval/lib/python3.10/site-packages (from vllm==0.6.6+cu118) (6.1.0)
Requirement already satisfied: sentencepiece in ~/anaconda3/envs/llmeval/lib/python3.10/site-packages (from vllm==0.6.6+cu118) (0.2.0)
Requirement already satisfied: numpy<2.0.0 in ~/anaconda3/envs/llmeval/lib/python3.10/site-packages (from vllm==0.6.6+cu118) (1.26.4)
Requirement already satisfied: requests>=2.26.0 in ~/anaconda3/envs/llmeval/lib/python3.10/site-packages (from vllm==0.6.6+cu118) (2.32.3)
Requirement already satisfied: tqdm in ~/anaconda3/envs/llmeval/lib/python3.10/site-packages (from vllm==0.6.6+cu118) (4.67.1)
Collecting blake3 (from vllm==0.6.6+cu118)
  Using cached blake3-1.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.1 kB)
Requirement already satisfied: py-cpuinfo in ~/anaconda3/envs/llmeval/lib/python3.10/site-packages (from vllm==0.6.6+cu118) (9.0.0)
Requirement already satisfied: transformers>=4.45.2 in ~/anaconda3/envs/llmeval/lib/python3.10/site-packages (from vllm==0.6.6+cu118) (4.46.3)
Requirement already satisfied: tokenizers>=0.19.1 in ~/anaconda3/envs/llmeval/lib/python3.10/site-packages (from vllm==0.6.6+cu118) (0.20.3)
Requirement already satisfied: protobuf in ~/anaconda3/envs/llmeval/lib/python3.10/site-packages (from vllm==0.6.6+cu118) (3.20.0)
Requirement already satisfied: fastapi!=0.113.*,!=0.114.0,>=0.107.0 in ~/anaconda3/envs/llmeval/lib/python3.10/site-packages (from vllm==0.6.6+cu118) (0.115.5)
Requirement already satisfied: aiohttp in ~/anaconda3/envs/llmeval/lib/python3.10/site-packages (from vllm==0.6.6+cu118) (3.11.7)
Requirement already satisfied: openai>=1.52.0 in ~/anaconda3/envs/llmeval/lib/python3.10/site-packages (from vllm==0.6.6+cu118) (1.57.4)
Requirement already satisfied: uvicorn[standard] in ~/anaconda3/envs/llmeval/lib/python3.10/site-packages (from vllm==0.6.6+cu118) (0.32.1)
Requirement already satisfied: pydantic>=2.9 in ~/anaconda3/envs/llmeval/lib/python3.10/site-packages (from vllm==0.6.6+cu118) (2.10.1)
Requirement already satisfied: prometheus_client>=0.18.0 in ~/anaconda3/envs/llmeval/lib/python3.10/site-packages (from vllm==0.6.6+cu118) (0.21.0)
Requirement already satisfied: pillow in ~/anaconda3/envs/llmeval/lib/python3.10/site-packages (from vllm==0.6.6+cu118) (10.4.0)
Requirement already satisfied: prometheus-fastapi-instrumentator>=7.0.0 in ~/anaconda3/envs/llmeval/lib/python3.10/site-packages (from vllm==0.6.6+cu118) (7.0.0)
Requirement already satisfied: tiktoken>=0.6.0 in ~/anaconda3/envs/llmeval/lib/python3.10/site-packages (from vllm==0.6.6+cu118) (0.7.0)
Requirement already satisfied: lm-format-enforcer<0.11,>=0.10.9 in ~/anaconda3/envs/llmeval/lib/python3.10/site-packages (from vllm==0.6.6+cu118) (0.10.9)
Collecting outlines==0.1.11 (from vllm==0.6.6+cu118)
  Using cached outlines-0.1.11-py3-none-any.whl.metadata (17 kB)
Requirement already satisfied: lark==1.2.2 in ~/anaconda3/envs/llmeval/lib/python3.10/site-packages (from vllm==0.6.6+cu118) (1.2.2)
INFO: pip is looking at multiple versions of vllm to determine which version is compatible with other requirements. This could take a while.
ERROR: Could not find a version that satisfies the requirement xgrammar>=0.1.6; platform_machine == "x86_64" (from vllm) (from versions: none)
ERROR: No matching distribution found for xgrammar>=0.1.6; platform_machine == "x86_64"

Before submitting a new issue...

[X] Make sure you already searched for relevant issues, and asked the chatbot living at the bottom right corner of the documentation page, which can answer lots of frequently asked questions.

This is

same problem

same problem

I fix this problem by upgrading glibc >= 2.28


Can't get existing project to work

Sail Version
0
Laravel Version
9
PHP Version
0
Operating System
Windows(WSL)
OS Version
11
Description
I'm sorry if this isn't the right place but I don't know what to do anymore, I've been trying to setup docker/sail for at least 2 days without any luck.
Here is what I did step by step:

installed Docker Desktop
already has WSL installed so ran wsl --update and wsl --set-default-version 2
installed and configured Ubuntu using this tutorial https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-11-with-gui-support#3-download-ubuntu (I have Ubuntu 20.04), basically installed it and ran sudo apt update and sudo apt full-upgrade
setup my ssh keys for BitBucket using this https://support.atlassian.com/bitbucket-cloud/docs/set-up-personal-ssh-keys-on-linux/
cloned my project into /home/programador/code/identity-provider

Now here is where I'm a bit lost and I haven't been able to more forward, I found this is the docs https://laravel.com/docs/10.x/sail#installing-composer-dependencies-for-existing-projects but in my case I don't have Sail installed on the projects either, so someone told me to try this
docker run --rm \
    -u "$(id -u):$(id -g)" \
    -v "$(pwd):/var/www/html" \
    -w /var/www/html \
    laravelsail/php81-composer:latest \
    composer install --ignore-platform-reqs && composer require laravel/sail --dev && php artisan sail:install

now this kinda works in the sense that I don't get any errors but after finishing it doesn't install anything from composer and says
Package manifest generated successfully.
89 packages you are using are looking for funding.
Use the `composer fund` command to find out more!

Command 'composer' not found, but can be installed with:

sudo apt install composer

If I remove the extra composer / php commands for installing sail I don't get any errors, but the config file is no where so I don't think it actually installed it.
Again I'm sorry but this is so confusing, now what?
Even if I try ./vendor/bin/sail up it doesn't work and says no configuration file provided: not found.
At this point this seems impossible but how am I supposed to setup an existing project? Seems that sail is already installed by default but when trying to run php artisan sail:install me teammate gets a lot of errors.
I need help. What am I doing wrong?
Steps To Reproduce
I don't know, I outlined above what I did.

Hey there,
Can you first please try one of the support channels below? If you can actually identify this as a bug, feel free to open up a new issue with a link to the original one and we'll gladly help you out.

Laracasts Forums
Laravel.io Forums
StackOverflow
Discord
Larachat
IRC

Thanks!

I have places questions in both Laracasts and Discord but haven't had any luck, that's why I'm here as a last resort.


code error in STAR_RIS_ES.py

I found two possible errors from function step in the enviroment:

line 264, should be action_T[action_T < 0] = -1 * math.pi/2
line 267, should be self.theta_T instead of self.Theta_T

and one error from function calculate_CSI:

line 118, z difference is divided by (x^2+y^2)^0.5, which is tan, and cannot result to cos in line 119.

Hi Porthoos
Thanks a lot for your valuable comments. We have corrected the error in lines 264 and 267.
For line 118, since the distance at the x and y domain is usually much larger that the height difference z (d_z << d_x or d_z << d_y), the tan can be used as an approx for cos.
Again, thanks for your kind help!
Best regard
Ruikang from STAR-Lab


Preloading Downloaded Google Fonts

Hi,
Love to downloading google fonts to the local server this was a nice feature.
However, preloading fonts is huge like Trump Daddy HUGGGE.  If possible the additional option to preload these fonts would be great.
Not sure if the local font's url are dynamic, or expire, otherwise I would just do it locally.
Clarification here would be great.
Thanks

We have better solution with APO: https://blog.cloudflare.com/building-automatic-platform-optimization-for-wordpress-using-cloudflare-workers/#moving-optimizations-to-the-edge. We don't plan to add support for Google Fonts any time soon.