average_speed was infinite error in PathDetail calculation

I am running into this error:
https://github.com/graphhopper/graphhopper/blob/e72c67d7fdad39c5cd1b3ecaeb91ec65ae5d9eb2/core/src/main/java/com/graphhopper/util/details/AverageSpeedDetails.java#L37-L41
I think the error is thrown whenever the edge distance is below a certain threshold (because then calcMillis will return zero). What mechanism is supposed to prevent this error ? We'd have to exclude edges below a certain distance or something (which as far as I know we do not) ?.
And another question: Why are we calculating speed=distance/time here ? Can we not just use the averageSpeedEnc to obtain the speed directly from the edge ?

I think the assumption "edge traveltime is greater than zero" should be pretty safe and change AbstractWeighting:
return (long) Math.ceil(edgeState.getDistance() * 3600 / speed);

I think the error is thrown whenever the edge distance is below a certain threshold

Do you have a unit test for recreating the scenario? Because if distance is 0 than I would expect NaN (0/0) instead of infinity (x/0).

What mechanism is supposed to prevent this error

At import time we should prevent this here: https://github.com/graphhopper/graphhopper/blob/master/reader-osm/src/main/java/com/graphhopper/reader/osm/OSMReader.java#L705

Can we not just use the averageSpeedEnc to obtain the speed directly from the edge ?

No longer. See #1551 and the recent fix #1798.

Do you have a unit test for recreating the scenario?

No, not yet. But I ran measurement on bayern-140101.osm.pbf and got the error with many different seeds (I did not even find a seed so it did not happen, and it failed for many different edges as well so really suprised this did not cause any problems so far). But sure, I'll try to build a failing test case.

Because if distance is 0 than I would expect NaN (0/0) instead of infinity (x/0).

The distance was not zero, for example it was 0.014 in one case (so still above 0.001, the minimum tower node distance in OSMReader). Still, calcMillis can be exactly zero, because it uses a cast to long.

No longer. See #1551 and the recent fix #1798.

Ah ok this makes sense yes.

Still, calcMillis can be exactly zero, because it uses a cast to long.

Hmmh, probably the solution proposed from @otbutz makes most sense. The question is if 0.4ms should be rounded to 1ms or if we introduce other problems.

I think we need to handle this better in the path details class, because calcMillis==0 is totally legitimate.

high speed on a short edge can be easily under 0.5ms

Traveling 5cm with 200km/h is about 1ms.

https://github.com/graphhopper/graphhopper/blob/9e05cf36d2fa75ec9a5bbac5cedd57d033f1d53e/reader-osm/src/main/java/com/graphhopper/reader/osm/OSMReader.java#L701-L712
0.1mm seems like an odd choice for treating the first case if the other one defaults to 1m.

I did not cut it down to a small unit test, but if you want to reproduce the error you should be able to get it using this extract from Geofabrik's bayern-140101.osm.pbf:
https://gist.github.com/easbar/e0331a7230f8bba6252a528cba331106
using this query:
http://localhost:8989/maps/?point=49.209397%2C12.040039&point=49.209555%2C12.040211&locale=en-US&vehicle=car&weighting=fastest&elevation=false&turn_costs=undefined&calc_points=true&disable.ch=true&details=average_speed&use_miles=false&layer=OpenStreetMap
I set min(OneWay)SubnetworkSize to 1.

Can we reduce this to normal bug status :) as this does not appear for a recent map and also only for details=average_speed, I guess?

Traveling 5cm with 200km/h is about 1ms.

5cm is a bit big, but maybe increasing the minimum 0.0001 to 0.01=1cm instead to reduce the chance that this happens again and at the same time don't hinder a indoor use case?

Can we reduce this to a normal bug status :)

Ok, sleep well ;)

As this does not appear for a recent map

If this is so special about bayern-140101.osm.pbf it would be good to know how exactly it can happen. Yes without average_speed details it should not happen.
Why not do a special handling for calcMillis=0 in AverageSpeedDetails ? I think all the speed is used for is to decide whether or not there is an extra instruction. If this happens so rarely its probably not a problem at all.

it would be good to know how exactly it can happen.

Maybe it is a mapping bug (a node with 0 distance to its neighbour) and we set the minimum length to 0.1mm which then translates into 0ms for something like ~50km/h?
BTW: zero length edges could also be introduced due to how we handle barriers. But in case of measurement only one vehicle is imported and traveling such a zero length barrier is only possible if there would be another vehicle that is not blocked.

I would argue that if calcMillis might return 0 any code that does a division by calcMillis is responsible to handle the zero case.

If we define the range of calcMillis to start at 0ms, then yes. But in theory it should never get 0 and only gets 0 due to the loss of precision.

If we define the range of calcMillis to start at 0ms, then yes. But in theory it should never get 0 and only gets 0 due to the loss of precision.

But maybe handling it in the path details for now would be ok until a similar issue arises elsewhere.
And do you think we should additionally change the minimum edge distance to 1cm or at least make NaN behave like the minimum case?

5cm is a bit big, but maybe increasing the minimum 0.0001 to 0.01 (=1cm) instead to reduce the chance that this happens again and at the same time don't hinder a indoor use case?

I wasn't aware of the indoor use case but even for this anything lower than 10cm doesn't make any sense IMHO.

Maybe it is a mapping bug (a node with 0 distance to its neighbour) and we set the minimum length to 0.1mm which then translates into 0ms for something like ~50km/h?

Exactly my thought.

zero length edges could also be introduced due to how we handle barriers.

If we define the range of calcMillis to start at 0ms, then yes. But in theory it should never get 0 and only gets 0 due to the loss of precision.

A zero length edge will result in a zero duration. We should enforce a sane minimum distance and probably switch the return type of calcMillis to double if we really need to track ants :grin:

Maybe it is a mapping bug (a node with 0 distance to its neighbour) and we set the minimum length to 0.1mm which then translates into 0ms for something like ~50km/h?

No, the distance was not below 0.1mm, but still it was so small that calcMillis returned 0. This depends on the speed. In my example distance was 0.014=1.4cm and speed was 65km/h so we got  0.014*3600/65 = 0.77, and (long)0.77=0.

which would be a bit special for a time type.

whats the difference between time and distance with regards to choosing long vs. double ?

Maybe it is a mapping bug (a node with 0 distance to its neighbour)

Sure its some kind of mapping 'bug', but we cannot change this and things like this can always happen. Still, I wonder how its possible because its not only that two nodes are close to each other, but they must be tower nodes as well.

Still, I wonder how its possible because its not only that two nodes are close to each other, but they must be tower nodes as well.

Maybe we should log cases like this?

Another thing: This
 if (towerNodeDistance < 0.0001) {
     // As investigation shows often two paths should have crossed via one identical point
     // but end up in two very close points.
     zeroCounter++;
     towerNodeDistance = 0.0001;
 }

makes hardly any sense, because it will result in distance=0 anyway for the current INT_DIST_FACTOR=1000d when setting the distance on the edge state.
  int integ = (int) Math.round(distance * INT_DIST_FACTOR);

Btw this happens very frequently. For Bayern-140101.osm.pbf its zeroCounter:11721.

Which means that we cannot track any distance smaller than 0.5cm. I'd argue that we should enforce a minimum towerNodeDistance of 1cm which should be enough for all reasonable use cases?

     // As investigation shows often two paths should have crossed via one identical point
     // but end up in two very close points.

Do we have an example for this ?

minimum towerNodeDistance of 1cm which should be enough for all reasonable use cases

1cm is still too small for the minimum, see my example above for 1.4cm

1cm is still too small for the minimum, see my example above for 1.4cm

We can solve the speed calculation if we switch to double but not if the distance is already zero.

Yes for distance=0 there is no reasonable speed to be calculated, but then again so far we do not even need the speed calculation. The method that causes the issue is just trying to find out whether or not the speed has changed to decide whether or not there should be an instruction or not.
Its also not clear to me yet if it should be possible to have edges with zero or some minimal distance, because I do not yet understand where they are coming from (except the special case where distance=0 is (mis)used to represent barriers).

Its also not clear to me yet if it should be possible to have edges with zero

I think that this depends on the graph algorithms being used as the weightings are distance based.

I do not yet understand where they are coming from

Yes, we should investigate a bit more to fully understand what's exactly the cause here.

The method that causes the issue is just trying to find out whether or not the speed has changed to > decide whether or not there should be an instruction or not.

This is not the reason. The path detail class here returns a list of interval+speed values. But we could return the same infinityJsonValue in this case like we do for DecimalDetails.

Its also not clear to me yet if it should be possible to have edges with zero or some minimal distance, because I do not yet understand where they are coming from

They are coming from junction nodes being too close to each other (often on top of each other). The problem there is no recent example is likely that we and other routing engine authors have removed those cases and they are only present in older files.

I think that this depends on the graph algorithms being used as the weightings are distance based.

From an algorithm perspective zero should not make problems but yeah for CH I think we had similar problems earlier ("Setting weights smaller than"...), but even those problems are no longer existent in the recent data.

1cm is still too small for the minimum, see my example above for 1.4cm

Ah, yeah 1cm is too small for the current "(long)" cast. Only if we would use Math.round then we would get 1ms for up to 70km/h :D (or up to 100km/h for 1.4cm)
@Test public void testMinTime() {
        FlagEncoder tmpEnc = new CarFlagEncoder(10, 1, 0);
        GraphHopperStorage g = new GraphBuilder(EncodingManager.create(tmpEnc)).create();
        Weighting w = new FastestWeighting(tmpEnc);
        IntsRef edgeFlags = GHUtility.setProperties(g.getEncodingManager().createEdgeFlags(), tmpEnc, 100, true, false);
        EdgeIteratorState edge = GHUtility.createMockedEdgeIteratorState(0.014, edgeFlags);
        assertEquals(1, w.calcMillis(edge, false, EdgeIterator.NO_EDGE));
}

This is not the reason. The path detail class here returns a list of interval+speed values. But we could return the same infinityJsonValue in this case like we do for DecimalDetails.

I don't understand, this method throws the error and it just returns a boolean telling us whether or not the edge is 'different' compared to the last:
https://github.com/graphhopper/graphhopper/blob/e72c67d7fdad39c5cd1b3ecaeb91ec65ae5d9eb2/core/src/main/java/com/graphhopper/util/details/AverageSpeedDetails.java#L37-L41

I would just handle calcMillis=0 here, when dividing by a number one has to think of the zero case and handle it properly. Or we strictly exclude zero distance/time edges everywhere, but this seems to be a bigger task.

This is not the reason. The path detail class here returns a list of interval+speed values. But we could return the same infinityJsonValue in this case like we do for DecimalDetails.

Do we even want to expose these strange values in the path details? I'd say we should skip it if the distance is below a certain threshold. Being told that you're moving at infinite speed because you passed a barrier is kinda confusing because it's merely a detail of the implementation and has nothing to do with the actual routing.

Yes I agree, maybe all we need to do is
if (edge.getDistance() < threshold) {
    return false;
}

in above method

Sounds indeed like a good solution.

Maybe like this ?
 public boolean isEdgeDifferentToLastEdge(EdgeIteratorState edge) {
        // for very short edges we might not be able calculate a proper value for speed. dividing by calcMillis can
        // even lead to speed=Infinity -> just ignore these cases here, see #1848
        final double distance = edge.getDistance();
        if (distance < 0.1) {
            if (decimalValue > -1) {
                return false;
            } else {
                // in case this is the first edge we still have to set some value, but which one ?
                decimalValue = distance * 3600;
                return true;
            }
        }

Unfortunately there is a special case we have to take into account: The short edge might be the first and in this case we have to set some value, otherwise we'll run into this error in PathSimplification:
if (detail.isEmpty() && pointList.size() > 1)
                throw new IllegalStateException("PathDetails " + entry.getKey() + " must not be empty");

Is there some way to return some special value meaning "no path detail available for this edge" instead of showing a (rather useless) speed value for the very short edge ?

Is there some way to return some special value meaning "no path detail available for this edge" instead of showing a (rather useless) speed value for the very short edge ?

Yes, we could return null.


Add Kitopi to ADOPTERS.md

Please update, e.g., to this one https://keptn.sh/resources/user-adoption/#continuously-evaluating-application-resiliency-with-litmuschaos-locust-and-keptn

fixed

@johannes-b, @jetzlstorfer: I've made #3565 to exclude this file from spell checking.
(I'll be talking about the spell checker today)


Change my farms to Your farms

verified and fixed
env used : devnet
version : 21ef1d6

Verified:

Devnet
b43ea4c


update for simplest build instructions

This method works out of the box with just the standard go tooling - no make tools, no C compiler, no special environment variable setting, etc.
Actually, it could be reduced even simpler:
go generate ./...
go build -tags 'bindata'

Codecov Report

Merging #6562 into master will increase coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #6562      +/-   ##
==========================================
+ Coverage   40.35%   40.36%   +<.01%
==========================================
  Files         405      405
  Lines       54260    54260
==========================================
+ Hits        21899    21902       +3
+ Misses      29346    29342       -4
- Partials     3015     3016       +1

Impacted Files
Coverage Δ

modules/log/event.go
64.46% <0%> (-1.53%)
:arrow_down:

routers/repo/view.go
42.07% <0%> (+0.99%)
:arrow_up:

models/unit.go
14.28% <0%> (+14.28%)
: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 2664adf...fd44876. Read the comment docs.

Only difference it will not have version number compiled in

@lafriks Please review https://github.com/go-gitea/gitea/pull/6567 also. The two go hand-in-hand.

@solderjs I have commented on #6567 that you could add docs on that PR and just notice this one. Ignore that comment.
But I think we could give two build process there and don't remove make one.

This will not work since we have removed generated js/css files. We have to use make to do all the build.


Add more detailed scopes to C# language rules, to allow finer syntax coloring control

Feature Request Description

I'd like to be able to set different colors for different storage modifers like public and private, in C# code. For this I believe we'd need more detailed scopes.
Right now, both the public and private modifier has the textmate scope storage.modifier.cs, source.cs, which means it's impossible (?) to distinguish between them when coloring.

Suggestion

Add finer scopes, such as storage.modifier.public.cs for the public modifier, and so on.
So that settings like these would work in VS Code:

"editor.tokenColorCustomizations": {
  "textMateRules": [
    {
      "scope": "storage.modifier.public",
      "settings":{"foreground": "#F00"}
    }
  ]
}

Example of what does not work right now, as storage.modifier.public does not exist.
History
This issue was originally posted on microsoft/vscode
Environment information
VSCode version: 1.62.2
C# Extension: 1.23.16
Dotnet Information
.NET SDK (reflecting any global.json):
 Version:   5.0.402
 Commit:    e9d3381880
Runtime Environment:
OS Name:     Windows
OS Version:  10.0.19043
OS Platform: Windows
RID:         win10-x64
Base Path:   C:\Program Files\dotnet\sdk\5.0.402\
Host (useful for support):
Version: 5.0.11
Commit:  f431858f8b
.NET SDKs installed:
5.0.103 [C:\Program Files\dotnet\sdk]
5.0.402 [C:\Program Files\dotnet\sdk]
.NET runtimes installed:
Microsoft.AspNetCore.All 2.1.30 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.30 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.20 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.11 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.1.30 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.20 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.11 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 3.1.8 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 3.1.20 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 5.0.3 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 5.0.11 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

Visual Studio Code Extensions

Extension
Author
Version

bio-dark-theme
studiobio
0.1.5

cpptools
ms-vscode
1.7.1

csharp
ms-dotnettools
1.23.16

material-icon-theme
PKief
4.10.0

theme-dracula
dracula-theme
2.24.0

todo-tree
Gruntfuggly
0.0.214

unity-code-snippets
kleber-swf
1.3.0

unity-debug
Unity
3.0.2

vscode-counter
uctakeoff
2.3.0

vscode-theme-onedark
akamud
2.2.3

vscode-unitymeta
PTD
0.0.7

@kraybit This extension uses Roslyn for semantic colorization, when "csharp.semanticHighlighting.enabled" is "true". Could you make this request againt Roslyn to provide this extra semantic information https://github.com/dotnet/roslyn/issues

Closing due to the roslyn tracking issue being closed.


Non-ASCII characters in passwords not correctly encoded

We had legacy behaviour (no specific encoding, happened to work for ISO-8859-1) for passwords in the registry before.
This is now set to UTF-8 in the backends, following RFC 7617, but the portal needs to be updated.
The auth header for the username søren and the password SØREN, which is what the web browser sends, is:
Basic: c8O4cmVuOlPDmFJFTg==

If your terminal is set to UTF-8 you can get this with echo -n søren:SØREN | base64.
The registry receives:
Authorization: Basic c/hyZW46U9hSRU4=

which is ISO-8859-1-encoded (echo -n søren:SØREN | iconv -t iso-8859-1 | base64).
https://github.com/gbif/registry/issues/67
https://github.com/gbif/portal-feedback/issues/1399

closed by https://github.com/gbif/portal16/commit/a54c14fe1c8fa411fc1e562263084333abdd7dfe


Add an option to show invisibles in the rules editor

This seems like a useful option generally, especially given whitespace can be so important in naming.
How do other apps do this without cluttering the UI? Does it exist? Is it in the menu somewhere? Is there a platform convention?

This was pretty early feedback from Terrence, and it feels like it should probably be looked into as part of the first release.

/cc @pvinis

Closing as won't fix; this should be much less necessary with the inline editor (#348).


Not able to scan some PDF_417 barcodes on IOS devices

Expected Behaviour
Should scan all the PDF_417 barcodes on Android and IOS
Actual Behaviour
Not able to scan some PDF_417 barcodes on IOS devices using Ionic 3 application.
Works fine on Android devices.
Platform and Version (eg. Android 5.0 or iOS 9.2.1)
iOS 12.1.4
Cordova CLI version and cordova platform version
"Cordova CLI": "8.0.0"
"cordova-android": "~7.1.4",
"cordova-ios": "4.5.5",
Plugin version
"phonegap-plugin-barcodescanner": "^8.0.1"

can you show your code? And provide a sample PDF_417 image?
I've just tested with one of the PDF_417 google results and worked fine.


[bug] javascript exception in collection run leads to endless loop

If one of the test in a collection throws an exception during the collection run, the run never stops and can not be closed manuallz anymore. The only solution is to restart bruno at the moment.
It never stops, because of an exception thrown in the current test:

Closing this issue as it couldn't be reproduced. Please open a new issue if it still persists.


When displaying /Admin the menu.aliases-admin.css is not found

I have a user theme but everything else is similar.
Found this file nowhere in orchard source ?

In Orchard.Alias\AdminMenu.cs  :
builder.AddImageSet("aliases")
has to be removed because no css and icon are provided for aliases.


Remove unused vars in cluster/gke/config and add warning

Changes to salt configs that affect gke have to be updated out of band. Remove vars from cluster/gke/config*.sh that don't actually do anything and put a warning in there to ping someone on GKE if you make a change to salt scripts.
cc @piosz, @roberthbailey

LGTM.

@k8s-bot test this please

LGTM. Thanks for doing it!


Add host folder in extended path format for Windows Boot2docker users

Hi
I had an issue where I tried running the Docker Distribution project on my Windows machine with a Windows volume for storing all of the images. The issue was caused by the Distribution project using very long folder names which went beyond the Windows max path limit. A solution was found by removing the shared folder and re-adding it in the extended path format.
C:\Program Files\Oracle\VirtualBox>VBoxManage.exe sharedfolder add "C:\Users\abc\VirtualBox VMs\boot2docker-vm\boot2docker-vm.vbox" --name "c/Users" --hostpath "\\?\C:\Users"

It would be good to have this as the default setup for Windows users.
Thanks

Seems like a good idea.
This is a common problem for Windows users. In my team, this happened many times with node_modules/[..]/node_modules/[..]/node_modules/etc folder (Node.js).


How long did you took to develop a game?

It took me around one week to develop the basic functions and another week to make the game work properly and effectively. Afterwards i took another day to make any troubleshooting,
So the answer is 15 days.


SCRD-5901 Use optional chaining when possible

Simplifies logic in many cases by replacing && with ?.

The latest (forced push) version, which is only visible via the 'force-pushed' link above, has no ability to
make comments there. But in that version, it lost two of the ?. on line 71 of Networks.js, but really only the first was extra.

on the roles page (http://localhost:2209/#/services/roles)  got the following:
    at Function.keys (<anonymous>)
    at ServicesPerRole.js:74```

whats odd is there is no change to that file, trying on master...

works fine on master...

now I'm really confused because the problem isnt reproducing

walked through the Day0 and Day2 UIs after a full clearout of old data, seemed fine throughout, looks good


Add support for ESP8266

The ESP8266 has a pgmspace.h but it is in a different location.

Oh nice thanks for sending the pull!  I actually just pulled out the reference to pgmspace.h since it looks like this library doesn't use it.  I'll close this pull but thanks so much for contributing!


Handle QM9 dataset

Note: merge after #28

[x] download the data
[x] create new task
[x] adapt trainer
[x] add tests

🎉 `python scripts/test_all.py` finished testing 143/143 configs in  7.26m on commit f6a59d5. 143 succeeded. [2022-11-15 21:35:32]

Passing tests. Merging.


Feature 6987 implement sarext

Implemented SAREXT indicator.
Description
See discussion in: 6987
Related Issue
6987
Motivation and Context
Adds indicator requested in 6987
Requires Documentation Change
None that I know of.
How Has This Been Tested?
Tests have been added. See: 6987
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] Refactor (non-breaking change which improves implementation)
[ ] Performance (non-breaking change which improves performance. Please add associated performance test and results)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Non-functional change (xml comments/documentation/etc)

Checklist:

[x] My code follows the code style of this project.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.
[x] My branch follows the naming convention bug-<issue#>-<description> or feature-<issue#>-<description>

Many thanks for your comments and quick review! I've incorporated your changes including an updated implementation of PSAR that uses SAREXT's code.
Remaining questions regarding testing:

I'm a bit confused on how @LouisSzeto test file is being generated, since when I run the same script locally I end up with a different .csv. For reference, I've posted below the script I'm using to generate the current version of spy_sarext.txt.

As outlined in the second half on my comment in 6987, Lean's current implementation of PSAR differs slightly from that of talib. Thus the updated PSAR implementation using SAREXT's code actually fails the current test for PSAR. I've updated the test to verify it matches talib's SAR function (it's an additional column in spy_extsar.txt generated in script below), but ultimately let me know how this should be resolved.

Test File Script:
import pandas as pd
from talib import SAREXT, SAR

df = pd.read_csv('https://github.com/QuantConnect/Lean/raw/master/Data/equity/usa/daily/spy.zip',
                          index_col=0, names=['date', "open", "high", "low", "close", "volume"])
df = df/10000
df = df.reset_index().rename(columns={'index':'date'})

df['SAREXT'] = SAREXT(low=df.low, high=df.high)
df['SAR'] = SAR(low=df.low, high=df.high)

df['SAREXT_PARAM1'] = SAREXT(low=df.low,
                             high=df.high,
                             startvalue=0,
                             offsetonreverse=0,
                             accelerationinitlong=0.02,
                             accelerationlong=0.01,
                             accelerationmaxlong=0.3,
                             accelerationinitshort=0.03,
                             accelerationshort=0.02,
                             accelerationmaxshort=0.4)

df['SAREXT_PARAM2'] = SAREXT(low=df.low,
                             high=df.high,
                             startvalue=100,
                             offsetonreverse=0,
                             accelerationinitlong=0.02,
                             accelerationlong=0.01,
                             accelerationmaxlong=0.3,
                             accelerationinitshort=0.03,
                             accelerationshort=0.02,
                             accelerationmaxshort=0.4)

df['SAREXT_PARAM3'] = SAREXT(low=df.low,
                             high=df.high,
                             startvalue= -95,
                             offsetonreverse=0,
                             accelerationinitlong=0.02,
                             accelerationlong=0.01,
                             accelerationmaxlong=0.3,
                             accelerationinitshort=0.03,
                             accelerationshort=0.02,
                             accelerationmaxshort=0.4)

df['SAREXT_PARAM4'] = SAREXT(low=df.low,
                             high=df.high,
                             startvalue= 100,
                             offsetonreverse= .02,
                             accelerationinitlong=0.02,
                             accelerationlong=0.01,
                             accelerationmaxlong=0.3,
                             accelerationinitshort=0.03,
                             accelerationshort=0.02,
                             accelerationmaxshort=0.4)

df['date'] = pd.to_datetime(df.date)
df = df[['date', 'high', 'low', 'close', 'open', 'SAR', 'SAREXT', 'SAREXT_PARAM1', 'SAREXT_PARAM2', 'SAREXT_PARAM3', 'SAREXT_PARAM4']]
df.to_csv('spy_sarext.txt', index=False)

@nbkell Hi! I actually use LeanCLI Research to generate the df. I looked at your code above and it is in the same logic that I created that, so no problem for the math (cc @Martin-Molinero).

Closing as no response in 2 weeks. Please reopen if interested in picking it up.

Apologies - I'm still planning to submit an updated PR but been bit busier lately and I haven't had the time. Will aim to submit within the next week. Thanks!


Updating Unix User returns rabbitmq parameters required

Describe the bug
When updating a UNIX user for a single attribute (updating PHP version), we're receiving errors about the 4 rabbitmq parameters. These are null for this unix user and should be kept empty.
Reproduction
$result = $api
    ->unixUsers()
    ->update(
	    $unixUser->setDefaultPhpVersion('8.2')
	);

Expected behavior
The Unix User to be updated to PHP version 8.2
Actual behavior
Update Cyberfusion\ClusterApi\Models\UnixUser request not possible, missing: rabbitmq_username, rabbitmq_virtual_host_name, rabbitmq_password, rabbitmq_encryption_key
Additional information
I expect this to be that these 4 attributes are null, and thus filtered out via https://github.com/CyberfusionNL/cyberfusion-cluster-api-client/blob/main/src/Endpoints/Endpoint.php#L63. These parameters should be either kept in, or the API should allow these attributes to be missing from the request.

Thank you for reporting this issue. I will take a look at it, but due to the holidays it might take a bit longer then usual.

No rush at all! Enjoy the holidays 🎄

Workaround: replace the FPM pool with clusterctl.
Automatically:
clusterctl fpm-pools update-version $name $version

Manually:
clusterctl fpm-pools create $newFpmPoolName $version
clusterctl virtual-hosts update-fpm-pool $domain $newFpmPoolName
clusterctl fpm-pools delete $oldFpmPoolName

Fixed in https://github.com/CyberfusionNL/cyberfusion-cluster-api-client/releases/tag/v1.86.1

Just released 1.86.2 as this also needed a change in the filterFields method.

@dvdheiden thanks for the fix! 💪


Updating README.md to contain docs on the merge command

Closes #127
Added documentation to the README for the merge command.

Thanks for the PR @lreading!


Case handling of pasted content

Problem : When copy Texts over two lines in view mode and paste it in view mode, space line insert between lines.

Problem : When copy Texts over two lines in view mode and paste it in view mode, space line insert between lines.

Now We solved this problem by checking empty block and deleting it when insert Text. (8ac734dbe899ab8686b2c4cc96fcadef8046a784)

Problem : when copy link(inner paragraph with other texts) in view mode and paste it in edit mode, it didn't wrap link text.

Now We solved right before problem.
From now on, Sketchbox wrap link whick between texts.

Problem : when copy link(that isn't same view text and real url) in view mode and paste it. It didn't wrapped as link.

Now We solved this problem. Added deserialize util function and apply it in onPaste handler of Sketchobx.


set font-display: swap

This behaviour is default for a lot of sites. including fonts hosted on google. In practice user will see little difference, but the worst case is greatly improved. if for example the user is on a slow connection that takes time loading the fonts.
Ref.
https://pagespeed.web.dev/analysis/https-beta-sporing-posten-no-sporing/yfwb3ix39g?form_factor=mobile
https://developer.chrome.com/docs/lighthouse/performance/font-display/

trello.com/c/cXUeEuN1


Importing as ES6 modules breaks on-the-fly CSS update and source-map links

My app is structured into local, private Atmosphere packages. This works well while I am using the following import syntax:
api.addFiles('path/to/my/styles.scss');

If I change the file, Meteor re-compiles on the fly without a full hot-reload. I also get working source-maps.
However, as soon as I follow the ES6 module import approach recommended since Meteor 1.3, i.e. by defining a mainModule and importing the .scss files there (or from a React component file), two things happen:

Each change of a .scss file results in a full app reload
The links to the sourcemaps are broken. They point to the top-level of the app, like shown in this error message: DevTools failed to parse SourceMap: http://localhost:3030/.home.session.scss.map The .scss file actually resides in a subfolder of my package.

Is there a chance to prevent this? I would like to use import syntax to keep my React components aligned with the .scss files.

Not sure if this matters: But I have to use<EMAIL_ADDRESS>for now, since this is the only version that works in combination with reywood:bootstrap3-sass. So I am not on the recommended version for 1.5, which would be 4.5.4. :-(

Update: I forked the bootstrap package to try out the recommended version of fourseven:scss. This fixed the source maps links, which is great, but still the app does a complete reload on every style change. Updated the issue title accordingly.

This is normal and outside of the control of this package.
If you import inside css inside your javascript, the css itself also becomes part of the javascript package (it basically becomes a string which is dynamically added to the DOM). Since Meteor cannot yet update parts of the javascript, it has to do a full reload.


Getting error when trying to run DEObfuscar.  Could not load file or assembly DNLIB

I can only guess that there is a dependency on dnlib.dll?
PIC of the error:
http://tinypic.com/view.php?pic=68sd8h&s=9#.WpC53vmP-01
I have .NET framework 2-latest installed.  What am I missing?

Answered my own question - it does.  I was just provided the EXE and so I was not aware of the dependency.  Closing.


brew copies entire .git directory when building head

[x] are reporting a bug others will be able to reproduce and not asking a question. If you're not sure or want to ask a question do so on our Discourse: https://discourse.brew.sh
[x] ran a brew command and reproduced the problem with multiple formulae? If it's a problem with a single, official formula (not cask) please file this issue at Homebrew/homebrew-core: https://github.com/Homebrew/homebrew-core/issues/new/choose. If it's a brew cask problem please file this issue at https://github.com/Homebrew/homebrew-cask/issues/new/choose. If it's a tap (e.g. Homebrew/homebrew-php) problem please file this issue at the tap.
[x] ran brew update and can still reproduce the problem?
[x] ran brew doctor, fixed all issues and can still reproduce the problem?
[ ] ran brew config and brew doctor and included their output with your issue?

To help us debug your issue please explain:

What you were trying to do (and why)
brew install boost --HEAD -vd
What happened (include command output)
brew copies entire .git directory
cp -pR /Users/yurikoles/Library/Caches/Homebrew/boost--git/.git/. /private/tmp/d20180916-36770-1g2zcr1/.git
What you expected to happen
brew ignores .git
Step-by-step reproduction instructions (by running brew commands)
brew install boost --HEAD -vd

Is this a recent change? Why is this a problem? What do you think should be done instead?

I think this is intentional because some build scripts expect to be run inside an intact repo.


[WIP] Backends testing and C# TF batch running

@mdabros random variables are now initialized identically. The main point is TF has two seeds, a graph seed and a "local"/op seed, both needed to be defined to be sure they are the same. Now they are and variables should be initialized identically.
Training still isn't the same though. Variables updated are not the same after first train step, not sure why... need to test if dropout is the same... but it could be related to how gradients are computed/applied. Debugging into python code reveals some very complicated code that I don't know what is doing or how it relates to TF# gradient methods.

Since work on this has currently stopped, I am closing the pull request. We can always re-open it again if it becomes relevant.


 Thanks for this PR! I think, you added that option, because you mostly use the trading balance not the account balance with hitbtc2. So, maybe we should rather just switch to the trading account by default for fetchBalance? What do you think about it?

It's OK, Thanks. Plz update it!

Cool, I'll merge this very soon, thx!


Migrate setNativeProps to state in OptionsSelector

Coming from https://github.com/Expensify/App/issues/8503, enabling Fabric requires us to migrate off setNativeProps. We should move usages of setNativeProps to state in OptionsSelector

Can't promise anything, but I'm going try looking into this a bit

The following reasons make me think that it's a purely performance related issue.

I think this is correct. There's a noticeable delay between user input and state update, which was not present with setNativeProps since that updated the component directly. There's some discussion in this issue, but no conclusion yet. It seems like this performance regression is still experienced with Fabric enabled.

we'll lose the feature that selects the search text when a option is selected

I'm fine with this. FWIW we already have inconsistent behavior with the Split Bill page for example, where selecting a participant completely clears the input.
https://user-images.githubusercontent.com/22219519/194401063-973c0ffc-6fef-436e-bbf1-6494243f6d54.mov

we'll lose the feature that selects the search text when a option is selected

Agree that this is an acceptable cost.

It seems like this performance regression is still experienced with Fabric enabled.

Agree, though it might be possible that this performance regression could be further alleviated by using startTransition instead of setState (only possible after Fabric upgrade)

I don't feel great about losing that feature, let's be sure to create a follow-up issue to try re-implementing after Fabric is enabled

Hey, just want to add to the discussion that TextInputs have a undocumented function called setSelection (I am not sure, but for web it might be setSelectionRange), so you can call e.g.:
this.textInputRef.setSelection(start, end)

This way we can avoid having controlled inputs which are bad for performance + preserve the highlight functionality.
(note: sorry if I am writing out of context, was just quickly glimpsing and thought this information might adds value)

Yes, i can give it a shot, although I am heavily focused on mobile, but will def try!

Sorry @rushatgabhane but where is the PR where you started working on it? Would like to continue from there

Not sure why this isn't closed, but we can close it! https://github.com/Expensify/App/issues/8503#issuecomment-1281309960


allow string in React.createElement

Very simple change. It does allow something like this though:
render() {
    const Cmp = true ? 'div' : Foo; // Foo is a React Component
    return (<Cmp/>);
  }

As JSX is basically React.createElement calls flow should allow strings - just like the documentation says.

cc @samwgoldman / @avikchaudhuri -- can you confirm that this shouldn't mess up any of the other React sorcery?
(travis results still pending, but I'm assuming they should show if any obvious problems arise)

Yeah, unfortunately this does cause issues, but unrelated to any of the recent changes. I ran into similar issues when attempting to add support for stateless functional component. In short, the union there causes errors to be deferred by the speculative match process, and sometimes the errors are deferred indefinitely :(

@samwgoldman Oh? I've changed it and uses that on our work project. Worked fine. (~400 React Components and several Services handling React Components)
Could you provide an example where the union messes stuff up?

I'll confirm in a bit, but it's not the kind of issue that would cause errors in a previously correct project. A simple way to repro is a simple JSX expression with an expected error. For example, <Foo /> for a component class Foo that has a required parameter.

Could this be fixed with the latest changes to react stuff? (React.Component<DefaultProps, Props, State> reworked to just class properties)
I've created a small test with 2 files. One Component with required Prop and one Prop that has a Cmp that is either a string or that Comp with required Prop.
// @flow
import React from 'react';

export default class Bar extends React.Component {
  props: {
    test: number,
  };
  render() {
    return (
      <div>
        {this.props.test}
      </div>
    )
  }
}

// @flow
import React from 'react';
import Bar from './Bar';

export default class Foo extends React.Component {
  render() {
    const Cmp = Math.random() < 0.5 ? 'div' : Bar;
    return (<Cmp/>);
  }
}

Flow correctly throws an Error as Cmp does not have the required Prop. I've though that is how it is supposed to be. As Cmp might be a Component that requires the prop flow wants that prop. No way for flow to know if it needs it or not.

OK, so this change is fine. The stateless functional component change is still problematic, but this doesn't hit the same problem—it does if you put string first in the union.
Can you add a test? The snippet from the PR description seems like a good one.

I've added a test with and one without a required paramter.
As you said this might be a problem it's probably safer to have both as tests.

Thanks for the pull request! I'll get this imported, reviewed and checked in!

I made a small change to this before merging. As @jeffmo suggested, by using $Keys<$JSXIntrinsics> instead of just string, Flow is able to complain if you set $JSXIntrinsics (like this test does) and use a jsx intrinsic that hasn't been defined. By If $JSXIntrinsics isn't explicitly set, then this will basically work the same way.


[Gardening] Add re-usable copy* utility methods to use in code completion

Various copy* methods were re-implemented in a bunch of files, move them
to CodeCompletion.h so they can be re-used everywhere that needs them.

@swift-ci please test


Export Path function

Closes https://github.com/cli/go-gh/issues/121

@vilmibm friendly ping on this as I'm waiting for it to land 😅 🙏


BUG |  External modules are not supported when building for browser

What happened?

I didn't import extra weird modules
content.ts
import type { PlasmoContentScript } from "plasmo"

export const config: PlasmoContentScript = {
  matches: ["https://www.plasmo.com/*"]
}

window.addEventListener("load", () => {
  console.log("content script loaded")

  document.body.style.background = "pink"
})

Version
Latest
What OS are you seeing the problem on?
Windows
What browsers are you seeing the problem on?
Chrome
Relevant log output
No response
(OPTIONAL) Contact Details
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct
[X] I checked the current issues for duplicate problems.

Hi @deno-source thanks for reporting these bugs!
Can you confirm the version number of Plasmo you're using?
{your_package_manager} list plasmo

Sometimes, lock files will pin versions to old versions and we had issues with modules in a recent version, so I am suspecting you're likely pinned to that broken version.
If you have an old version, I recommend deleting your lockfile, and just running install again. Let me know if that works!

Hi @deno-source and @louisgv,
If you have set engines in your package.json. Try to delete the engines key in this file. It solved the issue for me. It seems an issue with parcel as this user relates here.

omg

Hi @deno-source and @louisgv,
If you have set engines in your package.json. Try to delete the engines key in this file. It solved the issue for me. It seems an issue with parcel as this user relates here.

you are a real world hero


Proper cloudinary flags

The cover and logo do not use f_auto,q_auto like they should

https://github.com/everydotorg/donate-button/blob/main/packages/donate-button-next/src/components/widget/api/get-nonprofit-info.ts#L8

Will take a look at this tomorrow.


Can't recover my wallet on Electrum

Hi,
I installed brdwallet on my android phone and it works well.
I tried to recover my wallet on Electrum (Desktop version).
I tried the following procedure:

Create a new stadard wallet on Electrum
Chose to restore from an existing seed
Input my seed (12 French words). I checked dozens of times to make sure the words are right. I also select the "BIP39 seed" option

But it doesn't recover my seed.
I am 100% sure of the seed since I displayed it on BRDapp to double-check.
After some research, I found that this may be due to the use of French words.
So how can I recover my wallet on Electrum or other Desktop wallet?
Thank you so much for your help!

Note that in BIP39 the wordlist is only used for the checksum.
While Electrum indeed does not support the French wordlist of BIP39 and will display an "unknown wordlist" warning, it is perfectly capable of deriving the correct keys from the seed and hence restoring your wallet.


Docs sidebar is not scrollable

The pyimgui imgui.core module docs sidebar
https://pyimgui.readthedocs.io/en/latest/reference/imgui.core.html
is not scrollable, is too long, and cannot be viewed without a massively vertical display or modification of the website.
I tried it in edge, but to make sure, I tried it in a clean installation of firefox.
This makes the doc site practically unusable without clicking links through docpages and searching

Scrolling the webpage scrolls the currently open doc, but not the sidebar. Scrolling while hovering over the sidebar also scrolls the doc that is open.

Yes indeed, this is a bug. I can reproduce it on Chrome.
Thanks for reaching out.


Throwing error when trying to start the container

Problem encountered on https://dotnet.microsoft.com/learn/aspnet/microservice-tutorial/docker-image
Operating System: macos
Provide details about the problem you're experiencing. Include your operating system version, exact error message, code sample, and anything else that is relevant.
It was not possible to find any installed .NET Core SDKs
Did you mean to run .NET Core SDK commands? Install a .NET Core SDK from:
https://aka.ms/dotnet-download
The docker file I created -
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
WORKDIR /src
COPY myMicroservices.csproj .
RUN dotnet restore
COPY . .
RUN dotnet publish -c release -o /app
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
WORKDIR /app
COPY --from=build /app .
ENTRYPOINT ["dotnet", "myMicroservice.dll"]

Hi @hemantwithu, thank you for reaching out.
Yes, you'll need to install .NET SDK as per instructions mentioned in Install .NET SDK section to test the API locally. Then you'll need Docker Desktop for Mac to dockerize your service.
Could you please share the exact error message?


Rename Folder Doesn't Recognise Change in Upper/Lower case

if only change to folder name is a change of case, "folder already exists" error is shown.

Can you branch_tab.directory data to check for case sensitivity.
However, the open("some_file", "w") command does not take into account case sensitivity. So a file could be accidently overwritten.

Resolved V0.33.4


Channels not recovering after server restart

I am using sneakers 2.12.0 (bunny 2.20.2) with a Rabbitmq 3.10.6 cluster in Kubernetes, connecting to the headless service.
When Rabbitmq servers restarts (via k8s stateful-set rollout or k8s cluster version upgrade), the consumers are able to recover the connection but does not recreate the previously existing channels, so unable to process the messages.

If testing the same scenario but directly with Bunny, without sneakers, it recreates the channels as expected.
I have tested with a single thread worker and multiple threads.
I have tested with classic and quorum queues.
Below is the debug logs from the moment the server sends the shutdown to sneakers consumer.
I would be very grateful if someone have any pointer to fix/understand/further debug this situation.
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:38Z p-16 t-294 DEBUG: Session#handle_frame on 0: #<AMQ::Protocol::Connection::Close:0x00007f1a74430f90 @reply_code=320, @reply_text="CONNECTION_FORCED - broker forced connection closure with reason 'shutdown'", @class_id=0, @method_id=0>
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:38Z p-16 t-294 WARN: Recovering from connection.close (CONNECTION_FORCED - broker forced connection closure with reason 'shutdown')
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:38Z p-16 t-294 WARN: Will recover from a network failure (no retry limit)...
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:43Z p-16 t-294 DEBUG: Will attempt connection recovery...
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:43Z p-16 t-258 DEBUG: Heartbeat: running threads [5]
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-294 DEBUG: Will attempt connection recovery...
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-294 WARN: Retrying connection on next host in line: rabbitmq-headless.servers:5672
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-294 DEBUG: Sent protocol preamble
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-294 DEBUG: Sent connection.start-ok
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-294 DEBUG: Heartbeat interval negotiation: client = 30, server = 60, result = 30
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-294 INFO: Heartbeat interval used (in seconds): 30
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-294 DEBUG: Will use socket read timeout of 66 seconds
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-294 DEBUG: Sent connection.tune-ok with heartbeat interval = 30, frame_max = 131072, channel_max = 2047
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-294 DEBUG: Sent connection.open with vhost = /
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-294 DEBUG: Initializing heartbeat sender...
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-294 DEBUG: Connection is now open
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-294 DEBUG: Resetting recovery attempt counter after successful reconnection
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-2as DEBUG: Session#handle_frame on 1: #<AMQ::Protocol::Channel::OpenOk:0x00007f1a74ff8d00 @channel_id="">
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-294 DEBUG: Recovering channel 1 after network failure
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-2as DEBUG: Session#handle_frame on 1: #<AMQ::Protocol::Basic::QosOk:0x00007f1a74feb9c0>
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-2as DEBUG: Channel#handle_frame on channel 1: #<AMQ::Protocol::Basic::QosOk:0x00007f1a74feb9c0>
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-2as DEBUG: Session#handle_frame on 1: #<AMQ::Protocol::Exchange::DeclareOk:0x00007f1a74fe9f58>
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-2as DEBUG: Channel#handle_frame on channel 1: #<AMQ::Protocol::Exchange::DeclareOk:0x00007f1a74fe9f58>
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-2as DEBUG: Session#handle_frame on 1: #<AMQ::Protocol::Exchange::DeclareOk:0x00007f1a74fe8b08>
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-2as DEBUG: Channel#handle_frame on channel 1: #<AMQ::Protocol::Exchange::DeclareOk:0x00007f1a74fe8b08>
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-2as DEBUG: Session#handle_frame on 1: #<AMQ::Protocol::Exchange::DeclareOk:0x00007f1a74fdf468>
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-2as DEBUG: Channel#handle_frame on channel 1: #<AMQ::Protocol::Exchange::DeclareOk:0x00007f1a74fdf468>
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-2as DEBUG: Session#handle_frame on 1: #<AMQ::Protocol::Exchange::DeclareOk:0x00007f1a74fddc80>
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-2as DEBUG: Channel#handle_frame on channel 1: #<AMQ::Protocol::Exchange::DeclareOk:0x00007f1a74fddc80>
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-294 DEBUG: Recovering queue test1
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-2as DEBUG: Session#handle_frame on 1: #<AMQ::Protocol::Queue::DeclareOk:0x00007f1a74fdc178 @queue="test1", @message_count=0, @consumer_count=0>
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-2as DEBUG: Channel#handle_frame on channel 1: #<AMQ::Protocol::Queue::DeclareOk:0x00007f1a74fdc178 @queue="test1", @message_count=0, @consumer_count=0>
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-2as DEBUG: Session#handle_frame on 1: #<AMQ::Protocol::Queue::BindOk:0x00007f1a74fdafd0>
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-2as DEBUG: Channel#handle_frame on channel 1: #<AMQ::Protocol::Queue::BindOk:0x00007f1a74fdafd0>
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-2as DEBUG: Session#handle_frame on 1: #<AMQ::Protocol::Queue::BindOk:0x00007f1a74fda0d0>
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-2as DEBUG: Channel#handle_frame on channel 1: #<AMQ::Protocol::Queue::BindOk:0x00007f1a74fda0d0>
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:48Z p-16 t-294 DEBUG: Recovering queue test1-retry
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:18:51Z p-16 t-2as DEBUG: Session#handle_frame on 1: #<AMQ::Protocol::Channel::Close:0x00007f1a74fd8668 @reply_code=404, @reply_text="NOT_FOUND - queue 'test1-retry' in vhost '/' process is stopped by supervisor", @class_id=50, @method_id=10>
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:03Z p-16 t-294 WARN: TCP connection failed, reconnecting in 5.0 seconds
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:03Z p-16 t-2as DEBUG: Channel#handle_frame on channel 1: #<AMQ::Protocol::Channel::Close:0x00007f1a74fd8668 @reply_code=404, @reply_text="NOT_FOUND - queue 'test1-retry' in vhost '/' process is stopped by supervisor", @class_id=50, @method_id=10>
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:03Z p-16 t-294 WARN: Will recover from a network failure (no retry limit)...
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:08Z p-16 t-294 DEBUG: Will attempt connection recovery...
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:13Z p-16 t-294 DEBUG: Will attempt connection recovery...
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:13Z p-16 t-294 WARN: Retrying connection on next host in line: rabbitmq-headless.servers:5672
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:13Z p-16 t-294 DEBUG: Sent protocol preamble
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:13Z p-16 t-294 DEBUG: Sent connection.start-ok
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:13Z p-16 t-294 DEBUG: Heartbeat interval negotiation: client = 30, server = 60, result = 30
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:13Z p-16 t-294 INFO: Heartbeat interval used (in seconds): 30
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:13Z p-16 t-294 DEBUG: Will use socket read timeout of 66 seconds
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:13Z p-16 t-294 DEBUG: Initializing channel ID allocator with channel_max = 2047
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:13Z p-16 t-294 DEBUG: Sent connection.tune-ok with heartbeat interval = 30, frame_max = 131072, channel_max = 2047
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:13Z p-16 t-294 DEBUG: Sent connection.open with vhost = /
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:13Z p-16 t-294 DEBUG: Initializing heartbeat sender...
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:13Z p-16 t-294 DEBUG: Connection is now open
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:13Z p-16 t-294 DEBUG: Resetting recovery attempt counter after successful reconnection
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:13Z p-16 t-258 DEBUG: Heartbeat: running threads [7]
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:41Z p-16 t-2bc DEBUG: Sending a heartbeat, last activity time: 2023-01-16 09:19:13 -0300, interval (s): 14
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:43Z p-16 t-258 DEBUG: Heartbeat: running threads [7]

leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:50Z p-16 t-2bw DEBUG: Session#handle_frame on 0: #<AMQ::Protocol::Connection::Close:0x00007f1a74490878 @reply_code=320, @reply_text="CONNECTION_FORCED - broker forced connection closure with reason 'shutdown'", @class_id=0, @method_id=0>
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:50Z p-16 t-2as ERROR: Got an exception when receiving data: closed stream (IOError)
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:50Z p-16 t-2bw WARN: Recovering from connection.close (CONNECTION_FORCED - broker forced connection closure with reason 'shutdown')
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:50Z p-16 t-2bw WARN: Will recover from a network failure (no retry limit)...
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:50Z p-16 t-2as WARN: Exception in the reader loop: IOError: closed stream
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:50Z p-16 t-2as WARN: Backtrace:
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:50Z p-16 t-2as WARN: 	/home/ruby/bundle/ruby/3.0.0/gems/bunny-2.20.2/lib/bunny/cruby/socket.rb:65:in `select'
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:50Z p-16 t-2as WARN: 	/home/ruby/bundle/ruby/3.0.0/gems/bunny-2.20.2/lib/bunny/cruby/socket.rb:65:in `rescue in read_fully'
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:50Z p-16 t-2as WARN: 	/home/ruby/bundle/ruby/3.0.0/gems/bunny-2.20.2/lib/bunny/cruby/socket.rb:56:in `read_fully'
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:50Z p-16 t-2as WARN: 	/home/ruby/bundle/ruby/3.0.0/gems/bunny-2.20.2/lib/bunny/transport.rb:256:in `read_fully'
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:50Z p-16 t-2as WARN: 	/home/ruby/bundle/ruby/3.0.0/gems/bunny-2.20.2/lib/bunny/transport.rb:278:in `read_next_frame'
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:50Z p-16 t-2as WARN: 	/home/ruby/bundle/ruby/3.0.0/gems/bunny-2.20.2/lib/bunny/reader_loop.rb:74:in `run_once'
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:50Z p-16 t-2as WARN: 	/home/ruby/bundle/ruby/3.0.0/gems/bunny-2.20.2/lib/bunny/reader_loop.rb:39:in `block in run_loop'
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:50Z p-16 t-2as WARN: 	/home/ruby/bundle/ruby/3.0.0/gems/bunny-2.20.2/lib/bunny/reader_loop.rb:36:in `loop'
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:50Z p-16 t-2as WARN: 	/home/ruby/bundle/ruby/3.0.0/gems/bunny-2.20.2/lib/bunny/reader_loop.rb:36:in `run_loop'
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:19:55Z p-16 t-2bw DEBUG: Will attempt connection recovery...
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:20:00Z p-16 t-2bw DEBUG: Will attempt connection recovery...
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:20:00Z p-16 t-2bw WARN: Retrying connection on next host in line: rabbitmq-headless.servers:5672
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:20:00Z p-16 t-2bw DEBUG: Sent protocol preamble
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:20:00Z p-16 t-2bw DEBUG: Sent connection.start-ok
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:20:00Z p-16 t-2bw DEBUG: Heartbeat interval negotiation: client = 30, server = 60, result = 30
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:20:00Z p-16 t-2bw INFO: Heartbeat interval used (in seconds): 30
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:20:00Z p-16 t-2bw DEBUG: Will use socket read timeout of 66 seconds
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:20:00Z p-16 t-2bw DEBUG: Initializing channel ID allocator with channel_max = 2047
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:20:00Z p-16 t-2bw DEBUG: Sent connection.tune-ok with heartbeat interval = 30, frame_max = 131072, channel_max = 2047
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:20:00Z p-16 t-2bw DEBUG: Sent connection.open with vhost = /
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:20:00Z p-16 t-2bw DEBUG: Initializing heartbeat sender...
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:20:00Z p-16 t-2bw DEBUG: Connection is now open
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:20:00Z p-16 t-2bw DEBUG: Resetting recovery attempt counter after successful reconnection
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:20:13Z p-16 t-258 DEBUG: Heartbeat: running threads [6]
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:20:28Z p-16 t-2cg DEBUG: Sending a heartbeat, last activity time: 2023-01-16 09:20:00 -0300, interval (s): 14
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:20:42Z p-16 t-2cg DEBUG: Sending a heartbeat, last activity time: 2023-01-16 09:20:00 -0300, interval (s): 14
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:20:43Z p-16 t-258 DEBUG: Heartbeat: running threads [6]
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:20:56Z p-16 t-2cg DEBUG: Sending a heartbeat, last activity time: 2023-01-16 09:20:00 -0300, interval (s): 14
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:21:10Z p-16 t-2cg DEBUG: Sending a heartbeat, last activity time: 2023-01-16 09:20:00 -0300, interval (s): 14
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:21:13Z p-16 t-258 DEBUG: Heartbeat: running threads [6]
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:21:24Z p-16 t-2cg DEBUG: Sending a heartbeat, last activity time: 2023-01-16 09:20:00 -0300, interval (s): 14
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:21:38Z p-16 t-2cg DEBUG: Sending a heartbeat, last activity time: 2023-01-16 09:20:00 -0300, interval (s): 14
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:21:43Z p-16 t-258 DEBUG: Heartbeat: running threads [6]
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:21:52Z p-16 t-2cg DEBUG: Sending a heartbeat, last activity time: 2023-01-16 09:20:00 -0300, interval (s): 14
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:22:06Z p-16 t-2cg DEBUG: Sending a heartbeat, last activity time: 2023-01-16 09:20:00 -0300, interval (s): 14
leadfy-app/rmq-consumer-d96756c5d-j8mmm[rmq-consumer]: 2023-01-16T12:22:13Z p-16 t-258 DEBUG: Heartbeat: running threads [6]

Trying with sneakers master branch (d761dfe1) it worked!
Is commit d761dfe1 safe to run in production? Or would I need to backport the fix to 2.12.0?
Below are the logs from a server restart to full server and consumer recover.
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: This is the message: {"message":"Hello, everybody!"}
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: This is the message: {"message":"Hello, everybody!"}
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: This is the message: {"message":"Hello, everybody!"}
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: /home/ruby/bundle/ruby/3.0.0/gems/bunny-2.20.2/lib/bunny/concurrent/continuation_queue.rb:39:in `block in poll': Timeout::Error (Timeout::Error)
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: 	from /home/ruby/bundle/ruby/3.0.0/gems/bunny-2.20.2/lib/bunny/concurrent/continuation_queue.rb:30:in `synchronize'
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: 	from /home/ruby/bundle/ruby/3.0.0/gems/bunny-2.20.2/lib/bunny/concurrent/continuation_queue.rb:30:in `poll'
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: 	from /home/ruby/bundle/ruby/3.0.0/gems/bunny-2.20.2/lib/bunny/session.rb:1411:in `wait_on_continuations'
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: 	from /home/ruby/bundle/ruby/3.0.0/gems/bunny-2.20.2/lib/bunny/session.rb:579:in `block in close_channel'
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: 	from /home/ruby/bundle/ruby/3.0.0/gems/bunny-2.20.2/lib/bunny/session.rb:575:in `synchronize'
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: 	from /home/ruby/bundle/ruby/3.0.0/gems/bunny-2.20.2/lib/bunny/session.rb:575:in `close_channel'
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: 	from /home/ruby/bundle/ruby/3.0.0/gems/bunny-2.20.2/lib/bunny/channel.rb:254:in `close'
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: 	from script/rmq_subscribe.rb:22:in `<main>'
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: D, [2023-01-16T10:34:00.965858 #1] DEBUG -- : Sent protocol preamble
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: D, [2023-01-16T10:34:00.968932 #1] DEBUG -- : Sent connection.start-ok
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: D, [2023-01-16T10:34:00.969761 #1] DEBUG -- : Heartbeat interval negotiation: client = server, server = 60, result = 60
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: I, [2023-01-16T10:34:00.969798 #1]  INFO -- : Heartbeat interval used (in seconds): 60
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: D, [2023-01-16T10:34:00.969817 #1] DEBUG -- : Will use socket read timeout of 132 seconds
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: D, [2023-01-16T10:34:00.969827 #1] DEBUG -- : Initializing channel ID allocator with channel_max = 2047
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: D, [2023-01-16T10:34:00.969929 #1] DEBUG -- : Sent connection.tune-ok with heartbeat interval = 60, frame_max = 131072, channel_max = 2047
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: D, [2023-01-16T10:34:00.970002 #1] DEBUG -- : Sent connection.open with vhost = /
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: D, [2023-01-16T10:34:00.970952 #1] DEBUG -- : Initializing heartbeat sender...
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: D, [2023-01-16T10:34:00.971302 #1] DEBUG -- : Allocated channel id: 1
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: D, [2023-01-16T10:34:00.972768 #1] DEBUG -- : Session#handle_frame on 1: #<AMQ::Protocol::Channel::OpenOk:0x00007f87043f6528 @channel_id="">
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: D, [2023-01-16T10:34:00.976283 #1] DEBUG -- : Session#handle_frame on 1: #<AMQ::Protocol::Queue::DeclareOk:0x00007f87043e4738 @queue="test1", @message_count=27, @consumer_count=0>
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: D, [2023-01-16T10:34:00.976347 #1] DEBUG -- : Channel#handle_frame on channel 1: #<AMQ::Protocol::Queue::DeclareOk:0x00007f87043e4738 @queue="test1", @message_count=27, @consumer_count=0>
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: D, [2023-01-16T10:34:00.983290 #1] DEBUG -- : Session#handle_frame on 1: #<AMQ::Protocol::Basic::ConsumeOk:0x00007f87043c9a50 @consumer_tag="bunny-1673876040000-599959624618">
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: D, [2023-01-16T10:34:00.983340 #1] DEBUG -- : Channel#handle_frame on channel 1: #<AMQ::Protocol::Basic::ConsumeOk:0x00007f87043c9a50 @consumer_tag="bunny-1673876040000-599959624618">
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: D, [2023-01-16T10:37:44.473088 #1] DEBUG -- : Session#handle_frame on 0: #<AMQ::Protocol::Connection::Close:0x00007f8704143c90 @reply_code=320, @reply_text="CONNECTION_FORCED - broker forced connection closure with reason 'shutdown'", @class_id=0, @method_id=0>
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: W, [2023-01-16T10:37:44.473287 #1]  WARN -- : Recovering from connection.close (CONNECTION_FORCED - broker forced connection closure with reason 'shutdown')
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: W, [2023-01-16T10:37:44.473780 #1]  WARN -- : Will recover from a network failure (no retry limit)...
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: Done
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: D, [2023-01-16T10:37:49.474455 #1] DEBUG -- : Will attempt connection recovery...
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: D, [2023-01-16T10:37:54.474914 #1] DEBUG -- : Will attempt connection recovery...
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: W, [2023-01-16T10:37:54.475127 #1]  WARN -- : Retrying connection on next host in line: rabbitmq-headless.servers:5672
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: D, [2023-01-16T10:37:54.478264 #1] DEBUG -- : Sent protocol preamble
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: D, [2023-01-16T10:37:54.479502 #1] DEBUG -- : Sent connection.start-ok
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: D, [2023-01-16T10:37:54.479567 #1] DEBUG -- : Heartbeat interval negotiation: client = server, server = 60, result = 60
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: I, [2023-01-16T10:37:54.479581 #1]  INFO -- : Heartbeat interval used (in seconds): 60
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: D, [2023-01-16T10:37:54.479594 #1] DEBUG -- : Will use socket read timeout of 132 seconds
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: D, [2023-01-16T10:37:54.479796 #1] DEBUG -- : Sent connection.tune-ok with heartbeat interval = 60, frame_max = 131072, channel_max = 2047
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: D, [2023-01-16T10:37:54.480574 #1] DEBUG -- : Sent connection.open with vhost = /
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: D, [2023-01-16T10:37:54.480627 #1] DEBUG -- : Initializing heartbeat sender...
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: D, [2023-01-16T10:37:54.480890 #1] DEBUG -- : Connection is now open
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: D, [2023-01-16T10:37:54.480906 #1] DEBUG -- : Resetting recovery attempt counter after successful reconnection

leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: This is the message: {"message":"Hello, everybody!"}
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: This is the message: {"message":"Hello, everybody!"}
leadfy-app/rmq-consumer-56748fdfb8-wpxd2[rmq-consumer]: This is the message: {"message":"Hello, everybody!"}

Hi @tomlobato !
I have the same problem. Did you try the version 2.13.0.pre/d761dfe1 in production?

Hey guys,
We are experiencing the same problem. Did you find the underlying cause of the issue? Does upgrading sneakers to 2.13.0.pre solve the problem?
@jondot @michaelklishin  Is there an ETA for the release of 2.13.0.pre?
Thanks


(Don't) split ID3 artist/composer tags

So this is an issue I'm most likely the only one experiencing, but still worth to discuss imo,
Basically the ID3 specification specifies that / can be used as splitter, which sounds "fine" but they don't specify any escape character making every artist with / in their name invalid or be split in 2 (or 3 even).
ID3v2.4 specifies the splitter should be 0x00 which is way more realistic (as it's a non-human-readable character)
I'm my opinion it shouldn't split ID3 tags with / as mostly , is used anyway and there are not many other players doing it. but I would like to know your opinion before hand
More context and details: https://github.com/leetreveil/musicmetadata/issues/67
As addition mpd's output:

I just try musikcube and got this issue with group named "25/17". Suppose that is serious problem for the "AC/DC" fans too.

Old issue, but we no longer do this. Resolving!


Propertyfile for modularization

propertyfile for enabling disabling certain commands without having to restart the bot

implemented to be tested


Is there an example of pyvsc integrated with cocotb and SV RTL with a simulator?

My thinking is to include such 'system' examples with PyUVM and/or cocotb. It seems there is openness to including such examples with PyUVM: https://github.com/pyuvm/pyuvm/issues/191


Missing some build instructions on README?

Missing some instructions on README for the build?
I encountered errors during the following build commands on README.md:
$ git submodule update --recursive --init
$ (cd c-dependencies/spidermonkey && sh download-engine.sh)
$ cargo build --release // ERROR

Not sure if this is common for other people, but I share what I've done, for the record.

Install cbindgen
https://github.com/eqrion/cbindgen#quick-start
Install wasi-sdk and export the sdk path
https://github.com/WebAssembly/wasi-sdk#install
$ export WASI_CXX=${WASI_SDK_PATH}/bin/clang++
Modify Makefile-ifdef DEBUG
+DEBUG ?= false
+ifneq ($(DEBUG), false)

*cargo exports DEBUG=false when running build.rs with --release flag

Environment:

hash: dbd9386
platform: M1 Mac (darwin, arm64)

I had similar issues I submitted a pr #70 to update the readme a while back but it hasn't merged yet.

I think everything here was addressed by merging #70 except for the comments about DEBUG. I tried building locally without the Makefile changes both debug and release builds and didn't run into any problems, do you have steps I could follow to reproduce them?

I was able to reproduce the problem with DEBUG, and will fix it in #98.

Now that #101 is merged (instead of #98), and in conjunction with the README improvements in #70, I believe this issue can be closed. Thanks for your report and please do let us know if you have further issues!


recomputeRowHeights is not always re-rendering

recomputeRowHeights() is not re-rendering some of the VirtualScroll cells properly, even though the  function passed to rowHeight is receiving a proper value and I call recomputeRowHeights(index) when the height changes.
Mostly it happens to cells which contains an image, which means their height changes. Less often it happens to rows without it. So basically I would say not all rows that need re-rendering are re-rendered.
Also, sometimes the cell gets re-rendered, but the height does not get updated. I know this because I show the height in the cell and it doesn't match the actual height.
I'm storing the row height in a heights object, which has been filled with id: height pairs from dimensions received by react-measure component. The rowHeight gets returned from that.
I tried adding a prop to VirtualScroll that counts the number of height updates, and thus is different every time, but that does not help either.

Hey @chiss2906,
I'll need you to provide a Plunker that demonstrates what you're seeing. I'm fairly confident that the issue here lies somewhere in your props/state tracking and not in VirtualScroll - but I'll be happy to take a look if you can point me at a runnable demo with source code.

@bvaughn Here is the link to the Plunker: https://plnkr.co/edit/o4ArW2Os4XDdlTV8OuRx?p=preview :)

When resize is requested, your VirtualList component is logging "not yet!", meaning that it isn't passing this call through to VirtualScroll. Since VirtualScroll is pre-rendering a few rows below (overscanRowCount) this means that those rows are never getting remeasured. If you set overscanRowCount={0} on the inner VirtualScroll you can see that they do get updated as you scroll- but still not the first visible set.
Here's a fixed version:
https://plnkr.co/edit/lTFmKOQlJLIehL1LIY47?p=preview
The key basically boiled down to checking to see if any heights had been recomputed before the ref was set, and letting VirtualScroll know about them on-ref-set.

@bvaughn I believe this is not the whole story: https://plnkr.co/edit/fy1GmIbjs255ZqAPi6ew?p=preview
I added something that blinks every few seconds, and if you enable the alternatel height detector, it will adjust.
However, I noticed that if there are a number of recalculation requests coming in before VirtualScroll gets to it, it will handle the last one and not all the ones requested. I think the callback should keep track of the lowest index requested.

However, I noticed that if there are a number of recalculation requests coming in before VirtualScroll gets to it, it will handle the last one and not all the ones requested. I think the callback should keep track of the lowest index requested.

This doesn't sound correct to me, but maybe I'm misunderstanding you. VirtualScroll.recomputeRowHeights calls Grid.recomputeGridSize to clear the cached sizes after the specified index and then immediately re-renders the Grid. The CellSizeAndPositionManager.resetCell method synchronously marks all cells after (and including) the specified index as stale which means the next time CellSizeAndPositionManager. getSizeAndPositionOfCell  is called, those cells will be re-measured.
This means if you called recomputeRowHeights(5); recomputeRowHeights(2); recomputeRowHeights(10); the next time you asked for row 2- it would still be re-measured.

This seems to be what I'm seeing, looking at your demo too. Looks like rows are being expanded and shrunk as "blink" is added and removed.

However, I noticed that if there are a number of recalculation requests coming in before VirtualScroll gets to it, it will handle the last one and not all the ones requested.

Ah, I think I understand. And I think this is just how your test harness is setup. Each NewsCell is setting a timeout that clears and triggers a re-render. Let's say cells A, B, and C are visible. If cell A triggers a re-render, VirtualScroll will immediately re-measure A, B, and C. Then if cell B triggers a re-render right after this, VirtualScroll will immediately re-measure B and C. Then if cell C triggers a re-render right after that, VirtualScroll will immediately re-measure cell C. You may only notice the most recent message in the log - but they're all being re-measured.

I think in my desire to make the blinking remeasuring work, I muddled my point. I made the plunker more obvious.
The problem is that, if you keep the regular row height detector (which can't detect when its sub-children change height and therefore won't call recalc a lot), you can quickly scroll down to some location, and then there will be cells that do not have the correct height. Slow scrolling works fine.
Here's an example:

the console log for that section is:
VM111283 script.js:263 vs render 24
VM111283 script.js:263 vs render 25
VM111283 script.js:263 vs render 26
VM17858 script.js:189 22 => 266
VM17858 script.js:192 recompute 22
VM17858 script.js:189 23 => 79
VM17858 script.js:192 recompute 23
VM17858 script.js:189 24 => 266
VM17858 script.js:192 recompute 24
VM17858 script.js:189 25 => 79
VM17858 script.js:192 recompute 25
VM17858 script.js:189 26 => 96
VM17858 script.js:192 recompute 26
VM130744 script.js:274 req 26 => 96
VM130744 script.js:274 req 27 => 150
VM130744 script.js:274 req 28 => 150

So as you can see, a recompute is requested for 24, but it doesn't trigger a request for the new height.

Sorry @wmertens but I'm not sure I understand. If you scroll quickly, you see some temporary overlap- but this is due to the way the test harness is written from what I can see.

When a row's height is first requested, it defaults to 150 (const height = heights[index] || 150)
Its content may not actually fit inside of that height so the rows sometimes overflow initially.
Once the interval hits, VirtualScroll is told to remeasure and the overflow fixes itself.

Am I misunderstanding or missing something?

So as you can see, a recompute is requested for 24, but it doesn't trigger a request for the new height.

Not sure about this one. My guess would be that row 24 is no longer visible which is why react-virtualized only calculates 25+. This would seem to be backed up by the errors I sometimes see in the console:

Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the ReactElementResize component.

You can trace the flow of code (I pasted it above) for resetting a row's height. It's pretty straight forward I think. This is also an area I have automated test coverage on (eg here and here).

The temporary overlap is not temporary, the screenshot is what it looks like when I stop scrolling. (using react-measure and react-height, the other one forces recalcs all the time)
Here's how I can always reproduce it: scroll quickly to the end and then scroll back up at normal speed. You will see some overlapping cells that are not the correct height.
I noticed the setState errors too, weird because I do clear the interval handler before unmount…
All in all, it seems like the problem is incorrect height caching, it may be better if you always call rowHeight?

the tests don't seem to cover the case where the cell is no longer visible by the time the measurement needs to be done…

Ah! Scrolling backwards after skipping...
resetCell (index: number): void {
    this._lastMeasuredIndex = index - 1
}

This is the problem. I was not anticipating frequent calls to resetCell and I missed an obvious Math.min check there. Give me a minute to write a new test and then push a fix.

Thanks for sticking with it @wmertens :)
7.12.1 should fix this edge case. I'm still not able to repro what you describe in the test harness, but maybe you can bump the react-virtualized version and verify the fix?

🎉 7.12.1 fixes it 👍
I wonder if dynamic rows with VirtualScroll + react-height is not a common enough need that it should be part of react-virtualized? In my very un-scientific eyeballing, it seems to be faster than react-measure, and tiny.
So when you pass e.g. autoHeight to VirtualScroll, it would automatically add ReactHeight on the rows and measure things itself?

BTW, I was using Chrome 51 on OS X for the repro, and you? Just curious…

Same, Chrome 51 on OS X El Capitan.

I wonder if dynamic rows with VirtualScroll + react-height is not a common enough need that it should be part of react-virtualized? In my very un-scientific eyeballing, it seems to be faster than react-measure, and tiny.

How's react-height different from CellMeasurer?

Hmmm, the docs for CellMeasurer say not to use it for VirtualScroll, and the ones for react-height don't mention VirtualScroll :)
Actually, I find its API a bit confusing…

CellMeasurer's interface was written for Grid; that's why the docs say
that. But since VirtualScroll and FlexTable are really just Grids, you
definitely can use it with them. You would just need to adapt the
parameters to match the expected format.
Sorry you find the interface confusing. I think the docs are pretty
straight forward but feel free to suggest improvements.

Well, for me the ideal API would be rowHeight="auto" or whatever on VirtualScroll and it takes care of the rest.
So what I find confusing about the API, I didn't use it before so I'll just call it as I see it:

cellRenderer and children, why are they both needed? Also, not super fond of function-as-children, I'd rather pass that as a prop.
column/rowCount: I presume these are used to know when an entire row/column is measured, but it seems a bit magical, it presumes some sort of data sharing behind the scenes. I would expect to give this information to the Grid only
Why is CellMeasurer a parent of Grid? When I use ReactHeight, it measures its children, but here it seems that somehow Grid is altered by it. Perhaps it should be called MakeCellsMeasurable?
Passing props called e.g. "getColumnWidth" makes me think that I'm supposed to use them. However then need to be passed to Grid, so why not call it widthGetter?

So the way I understand it now is that CellMeasurer alters Grid somehow, and I would expect that to work more like Redux's connect(), which takes a class and returns an augmented class…
Mind you, you did an excellent job on this library, I'm just confused…

Sorry @wmertens. Didn't mean to ignore. Traveling in Japan at the moment and have spotty Internet access. :)
I understand your confusion. Let me try to address the things you mentioned briefly.

cellRenderer and children: Child functions are pretty powerful when it comes to composition. Without then, it would  be very hard to combine HOCs like InfiniteLoader, AutoSizer, CellMeasurer, etc because each would essentially have to be aware of the properties/methods of the others in order to pass things through correctly. I initially did this (children instead of child functions) and things were greatly simplified when I made the switch. (This change was made in version 5.0.0 so you can look at an older release if you're curious what the signatures used to look like.)

column/rowCount: It isn't mean to be magical. :) In order for CellMeasurer to report the measured height of a row, it needs to measure all columns in the row and take the max. Ditto for the width of a column (need to measure that column in all rows and take the max).

Why is CellMeasurer a parent of Grid? Because Grid needs a function that returns a cell's width or height. That function is passed as a parameter to the child function of CellMeasurer. I agree it's a little counter-intuitive at first, since the cells measured are inside of the Grid but I am not sure of another way to accomplish this. :)

Passing props called e.g. getColumnWidth ...: Naming is hard. This is why I write lots of docs. I'd be willing to change the name, except that doing so would require a major release (since it would be non-backwards compatible) so it seems ... not worth it. :)


Code cleanup - Implement SonarCloud code smell fixes - Initial

Code cleanup - Implement SonarCloud code smell fixes - Initial - This is a partial, beginning effort on this front.

@muenchris, @MarkusHorstmann, @davidwickman, @jwise-cesmii, @oliviamorales - All, feel free to look at this pull request to get a feel for what types of initial changes were made to address some of the items characterized as code smells. There are still many more files yet to address but this is a start. This does not constitute all items listed in SonarCloud for these classes. At a broad level, the items addressed in these files include remove commented out code, set default values of params to same as overridden values, simplify object instantiation items, better/more efficient null/empty checks, marking some methods static per their suggestion.  Note .NET will also list some but not all of these same topics as messages in the Error List window.


Cropping problem when exporting to pdf and eps

My figures gets cropped too much when exporting to pdf and eps when I have increased the axis label font size. It seems to me that the bounding box gets too small.
Here's an mwe that gives me unsatisfactory figures:

x = -pi:.1:pi;
y = sin(x);
figure(1)
h(1) = plot(x, y);
xlabel('Xlabel','fontsize',18)
ylabel('Ylabel','fontsize',18)
export_fig mwe -png -eps -pdf -transparent -r300 -painters

The resulting png looks perfect, but the pdf and eps is cropped too much (at the left side in this case).
I'm using the latest version of export_fig, and gs9.16

I just realized that this has been addressed before. I'm using Matlab R2013a. I will upgrade to see if that solves the problem.

try installing the latest version of export_fig

This was solved when I upgradet to Matlab R2015a.

I am having this issue right now when exporting to EPS/PDF and I am on R2016b. It's happening with Palatino Linotype but not Times though.

@bloodtalon - This issue is closed for 2 years. Open a new issue with reproducible code snippet an a representative screenshot


gpu_operator_deploy_from_operatorhub: Capture the state of the CatalogSource/certified-operators

Fix ansible escaping of "

/test gpu-operator-e2e

/hold

roles/gpu_operator_deploy_from_operatorhub/tasks/main.yml:1
TASK: gpu_operator_deploy_from_operatorhub : Capture the state of the CatalogSource/certified-operators (debug)

<command> oc get -oyaml CatalogSource/certified-operators -n openshift-marketplace -ojsonpath={.status.connectionState.lastObservedState}{"\n"}

<stdout> READY

good to merge @ArangoGutierrez
\hold cancel
\approve

/hold cancel
/approve


Support bbox query?

which-polygon has a bbox query, which would be amazing if you could support.  The use case is: I'm looking at a map and I want to find out all countries that are on the screen given a min/max lat,lng pairs.
Happy to attempt to add this myself, I just thought I'd make the suggestion as it will probably takes the maintainers much less time to implement.

Welcome, @sjchristi. This sounds reasonable. I could work on it at some point, but feel free to work on it yourself if you need it soon.

Welcome, @sjchristi. This sounds reasonable. I could work on it at some point, but feel free to work on it yourself if you need it soon.

On second thought, this didn't seem like it would take that long so I just went ahead and did it.

On second thought, this didn't seem like it would take that long so I just went ahead and did it.


Greedy Algorithm for Egyptian Fraction in C, C++, Java and Python

Is your feature request related to a problem? Please describe.
Every positive fraction can be represented as sum of unique unit fractions. A fraction is unit fraction if numerator is 1 and denominator is a positive integer, for example 1/3 is a unit fraction. Such a representation is called Egyptian Fraction as it was used by ancient Egyptians.
Describe the solution you'd like
We can generate Egyptian Fractions using Greedy Algorithm. For a given number of the form ‘nr/dr’ where dr > nr, first find the greatest possible unit fraction, then recur for the remaining part. For example, consider 6/14, we first find ceiling of 14/6, i.e., 3. So the first unit fraction becomes 1/3, then recur for (6/14 – 1/3) i.e., 4/42.
Additional context
Following are a few examples:
Egyptian Fraction Representation of 2/3 is      :  1/2 + 1/6
Egyptian Fraction Representation of 6/14 is    : 1/3 + 1/11 + 1/231
Egyptian Fraction Representation of 12/13 is  : 1/2 + 1/3 + 1/12 + 1/156

Assigned!
@shubhisingh184 : C, C++, Python and Java


[New game]: SlideMaster Puzzle

🎮 Game Request
The Tile Slider Puzzle, also known as the sliding puzzle, sliding block puzzle, or sliding tile puzzle, is a combination puzzle that challenges a player to slide pieces along certain routes (usually on a board) to establish a certain end-configuration. The game is often made up of a 3x3 grid where 8 tiles are numbered from 1 to 8, and one slot is left empty, allowing the adjacent tiles to be moved into the empty space.
Point down the features
Tile Movement: Players can click tiles adjacent to an empty space to move them, aiming to arrange the tiles in numerical order.
Shuffle Function: A button allows players to shuffle the tiles randomly, providing a new challenge each time it's pressed.
Initialization and Setup: On page load, the game initializes and randomly shuffles the tiles to start the game.
User Interface:
Clear Instructions: The game includes a description explaining the objective and how to play, aiding new players.
Interactive Feedback: Tiles respond visually to interactions, with hover effects and scaling animations to indicate active selection.
Select program in which you are contributing
GSSoC24
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hey @pani2004 !
Thank you for raising an issue 💗
You can self assign the issue by commenting /assign in comment 😀
Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀
Don’t Forget to ⭐ our GameZone🎮
Make sure you join our Discord🕹

@kunjgit  can u assign me this?

/assign

I want to work on this project can you assign it

/assign

Hey @kashisharora9462 ! , This issue is already assigned to @pani2004. 💗
You can work on other issues 🚀
If there is anything wrong you can contact us on Discord🕹👀

okay sure!

@kunjgit I have created the PR please review it https://github.com/kunjgit/GameZone/pull/3434#issue-2304047356

Hey @pani2004 ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


[BUG] 'auto-disk-provision-paths' not available on the setting page UI

Describe the bug
The setting auto-disk-provision-paths is not appearing on v1.0.0-rc2
To Reproduce
Steps to reproduce the behavior:

Create a Harvester cluster
Go to setting page, the setting auto-disk-provision-paths is not available.

Expected behavior
The setting auto-disk-provision-paths should be available.
Environment:

Harvester ISO version: v1.0.0-rc2

@guangbochen is it intended? the setting is available in the harvester-system namespace.

it has not been added to the setting page, but will be addressed by https://github.com/harvester/dashboard/pull/210

@guangbochen @WuJun2016 please hold the merge for this. We don't know if we can fix this or can test it well enough. It's better to probably keep it hidden for the time being until v1.0.1

sure, the auto-disk-provision-paths setting actually has already been verified on https://github.com/harvester/harvester/issues/1241, it may encounter cases like https://github.com/harvester/harvester/issues/1718, but would be good if users can modify this setting since they can already config it during the installation.

Verified the Option is available on UI's setting page.

Test Information

Environment: qemu/KVM 3 nodes
Harvester Version: master-177ab565-head
ui-source Option: Auto

Verify Steps:

Install Harvester with any nodes
Login to Dashboard, then navigate to Advanced Settings
Option auto-disk-provision-paths should be available in the list