LOG4J2-2639 - Allow logging calls to be constructed using a builder pattern

This PR adds methods to the Logger interface to construct and log an event using builder methods. It also allows the location information to either be provided or constructed at lower cost. It takes advantage of Java 8 default methods to maintain backward compatibility.

Calling log twice on the same LogBuilder would result in 2 identical log messages, other than the timestamp.
We could easily add the current thread id to DefaultLogBuilder to verify it is only used on a single thread but is it worth the overhead of checking that on every method call?

Calling log twice on the same LogBuilder would result in 2 identical log messages, other than the timestamp

I think parameter values are mutated in gc free mode after the first event is logged, I would expect the second invocation (assuming it is executed after a few microseconds) would have all null parameters.

We could easily add the current thread id to DefaultLogBuilder to verify it is only used on a single thread but is it worth the overhead of checking that on every method call?

Maybe only the log() invocation?

@carterkozak I have updated the code based on your comments above.

I'm worried about memory leaks in calls that never invoke log()
logger.info().message("Hello, {}!", "World").marker(getMarker() /* throws! */).log();

In this case, we would apply data to a message factory, building a message object, but never release threadlocal parameter references.
We could do something along the lines of info(Consumer<LogBuilder>) and remove build() from the LogBuilder, however the fluent usage would never be garbage free. We would get a guarantee that we could release resources on both success and failure, but the API would be more difficult to use.

This doesn't support filters which enable higher verbosity logging based on the presence of a marker. That sort of filtering will be difficult using this API, but it may be possible if we avoid the no-op logger based on the presence of filters. I'm not sure what that will do to performance though.

There should be no risk of a memory leak if log() is not called. The LogBuilders are owned by a thread local. If log() is not called then the next call to an "at" method would clear them for re-use. Even if one was dynamically created it would be garbage collected as soon as the it went out of scope.

There should be no risk of a memory leak if log() is not called. The LogBuilders are owned by a thread local. If log() is not called then the next call to an "at" method would clear them for re-use. Even if one was dynamically created it would be garbage collected as soon as the it went out of scope.

Some applications record errors infrequently, I don't think it's sufficient to hold the previous parameters until the next time a logger is used with an enabled level. I've fixed a couple permutations of this issue in our existing message/event implementations based on third party bug reports.
I don't think it's a problem if we hold a reference to an object array of null values, but if we hold references to dynamically provided parameter objects I think it can cause issues.

As I said, the message and parameter are no longer stored in the builder, so I really don't think there is a problem.

I will take another detailed look, but this is shaping up very nicely now I think.


Issue with contact form and portfolio images

Hey there,
I am facing two issues:
The contact form is not working. I have tried using Web3form, but the form does not show a "Thank you" message or indicate that the form was submitted.
On the portfolio, the images have an eye button that appears on hover, but when I click on it, the image does not pop up.
Can anyone please help me resolve these issues?
Thanks!

Hey,
This is just a template. You have to write in the code yourself. I have a working fork with a python-based generator script if you want to look at that for inspiration: here
I use formspree for my forms, and it works great! Link here


Code cleaning

This is a big one. Created isochrone.py file that contains all the functions created in the jupyter notebooks used for the isochrone analysis.
Cleaned all the notebook codes, added comments and markdowns to clarify explanation.
Reorganized the directory and data collected.
Updated station coordinates.
Saved new images and maps. All updated to most recent data.

First ever merge!


Unit tests

Now that we have AppVeyor CI integration (thanks again @mattleibow 👍 ) we can write some units tests that will automatically run.
Things that can be tested:

WorkScheduler
SimpleDiskCache
DownloadCache

There may be some open issues with xUnit2 and AppVeyor: http://help.appveyor.com/discussions/problems/677-xunit-20-support

Started in 610a05700b5678177ef7c91e93d0bd6cae5c70cb

@daniel-luberda would be nice if you can configure AppVeyor and add the badge on homepage!

Continue in https://github.com/luberda-molinet/FFImageLoading/commit/5cdbcac00d84e086626058b3a2c1e244f968b572

@molinch It's working :) https://ci.appveyor.com/project/daniel-luberda/ffimageloading/build/tests

Thanks @daniel-luberda !

@daniel-luberda One test fails, see https://ci.appveyor.com/project/daniel-luberda/ffimageloading/build/tests
Right now GenericPriorityQueue is not enumerating by priority. Is it correct?
My test assumes the opposite, which would make sense since first is the highest priority.

@molinch Yes, it's by design. Only Dequeue method guarantees this :)

Thanks!

Currently, I've added mock platform implementation, which can be enabled by setting: EnableMockImageService = true and also added some basic unit tests here:
https://github.com/luberda-molinet/FFImageLoading/blob/master/source/Tests/FFImageLoading.Tests/ImageService/ImageServiceBaseTests.cs
Feel free to add more.

https://github.com/luberda-molinet/FFImageLoading/issues/861


Semicolon in "display name" of an email address breaks parser

Using an email address like "Fo;o<EMAIL_ADDRESS>which I believe should be valid, makes the email return two different values for 'to'.
>> Mail.new(to: "Fo;o <foo@bar.com>").to
=> ["Fo"<EMAIL_ADDRESS>>> Mail.new(to: "Foo <foo@bar.com>").to
=><EMAIL_ADDRESS>

@benmoss I had a long look again, I think my interpretation is from how quoted-string is built up:
   qtext           =   %d33 /             ; Printable US-ASCII
                       %d35-91 /          ;  characters not including
                       %d93-126 /         ;  "\" or the quote character
                       obs-qtext
   qcontent        =   qtext / quoted-pair
   quoted-string   =   [CFWS]
                       DQUOTE *([FWS] qcontent) [FWS] DQUOTE
                       [CFWS]

Looking at the ASCII table, a semi-colon sits there at 59, so it is included in the list... It is murky, really murky.
All I wanted to do was help triage the issue. Maybe it should be closed and left here for others to find and re-open if needs be. Wdyt?

@kennethkalmer yeah, in the first example I was using the atom format, not the quoted-string. quoted-string would be Mail.new(to: "\"Fo;o\" <foo@bar.com>"), and that actually appears to parse correctly.
I appreciate the help. I am now under the impression that I am in the wrong here and so I didn't want to burden an already overburdened maintainer with another spurious issue.

@benmoss awesome, thanks! I thought I'd help by trying to triage issues here. Nice to see one gone, now to find the next one


Update .NET Creating Metrics

Creating metrics
Use the same code as Collect metrics
See https://github.com/dotnet/docs/issues/35927

This looks like a duplicate of #35927 - what's the difference?

One issue is in our repo. I don't monitor issues in the .NET repo. that's the difference.


change column names for rendered csvs in site_data

@Louisenyholm I changed the native_language things in both the yaml and the datasets in the site_data, so you might have to pull again to make your website work :)


Is it possible to have multiple GETs that vary only by parameters in ASP.NET Core?

I asked this question also on Stack Overflow.
I want to build truly RESTful web service so don't want to leverage RPC-style, so have currently this:
public async Task<IActionResult> GetByParticipant(string participantId, string participantType, string programName)
{
}

public async Task<IActionResult> GetByProgram(string programName)
{
}

I believe that would work in ASP.NET Web API. But I'm getting an exception in Core:

AmbiguousActionException: Multiple actions matched. The following actions matched route data and had all constraints satisfied:

TermsController.GetByParticipant (ParticipantTerms.Api)

TermsController.GetByProgram (ParticipantTerms.Api)

Neither of the attributes actually help:

[HttpGet]
[ActionName]
[FromQuery]

Just disambiguate by putting a route on them.

hi @davidfowl, that's the caveat of my question, if I specify different routes, e.g. /api/terms and /api/terms/all, then I feel it won't be truly/fully/properly RESTful. So wondering how can I have multiple GETs against same resource, i.e. /api/terms.
If that isn't supported out-of-the-box then how can I customize this behavior?

If that isn't supported out-of-the-box then how can I customize this behavior?

Take a look here https://github.com/aspnet/Mvc/blob/dev/src/Microsoft.AspNetCore.Mvc.WebApiCompatShim/Conventions/WebApiOverloadingApplicationModelConvention.cs

@abatishchev - I suggest either writing a single action that considers participantId and participantType optional
or
writing an IActionConstraint that selects GetByParticipant when both of those values are present

I installed the shim package:

Install-Package Microsoft.AspNetCore.Mvc.WebApiCompatShim -Version 2.0.0

Then added the convention:
 services.AddMvcCore(options =>
    {
    options.Conventions.Add(container.GetInstance<WebApiOverloadingApplicationModelConvention>());
    })

Inherited my controller from ApiController:
public sealed class TermsController : ApiController
{
}

But still getting same exception:

AmbiguousActionException: Multiple actions matched. The following actions matched route data and had all constraints satisfied:
Microsoft.UPP.Calc.ParticipantTerms.Api.Controllers.v1.TermsController.GetByParticipant (Microsoft.UPP.Calc.ParticipantTerms.Api)
Microsoft.UPP.Calc.ParticipantTerms.Api.Controllers.v1.TermsController.GetByProgram (Microsoft.UPP.Calc.ParticipantTerms.Api)

Even if two my GETs have  completely different parameters.
Please suggest what I might doing wrong. Thanks!

I never meant for you to use the shim, I meant for you to look at the code because it's an example or writing an IActionConstraint. I should have made that more clear.

The short answer is that there's no built-in way using ASP.NET Core MVC to do this, without using add-ons (we don't really consider the Web API compat shim to be a core component).
I'm also not sure that this has anything to do with being RESTful or not. It sounds like you have a "search API" so I would recommend doing something similar to what @rynowak suggested by making the various search parameters optional. I suggest encapsulating them in a class like so:
public async Task<IActionResult> SearchForStuff(ParticipantSearchOptions searchOptions)
{
}

public class ParticipantSearchOptions
{
    public string ParticipantId { get; set; }
    public string ParticipantType { get; set; }
    public string ProgramName { get; set; }
}

Closing because there are no plans to implement this.

Possible workaround using action constraint.

@davidfowl How do would you achieve an API like this?
class Foo {
  Guid? ParentId;
}

GET /api/foos Return all foos
GET /api/foos?parentId={Guid?} all foos where foo.ParentId=={parentId}
[HttpGet]
Get();

[HttpGet]
Get(Guid? parentId)

Won't work because these are seen as the same route. Really needs some distinction between "unbound" and "null"


Add badge for android-gems.com

Hi thanks for putting it up on your site!
On Sat, Aug 1, 2015 at 12:06 AM, Huqiu Liao<EMAIL_ADDRESS>wrote:

Hi, thank you for your great work on this project. We've add your library
to android-gems http://www.android-gems.com/:
http://www.android-gems.com/lib/jimcoven/JCropImageView
On android-gems http://www.android-gems.com/, the developers can
browser the project easily. There are screen snapshots for every project.
They can download the DEMO and run it. They also can add the project to
their favourite.
We also has a APP in which the developers can run the DMEO and view the
screen snapshots very conveniently.
As the owner of this project, you can:

update the information of this project
update the description
add screen snapshots
or update the demo url.

Now you can add a badge to your README.md, it looks like this:
[image: Android Gems]
http://www.android-gems.com/lib/jimcoven/JCropImageView
You can paste the following text to the README.md:

Markdown

or HTML

—
Reply to this email directly or view it on GitHub
https://github.com/jimcoven/JCropImageView/issues/1.


DT fish not showing

Hey.
So DT has been out for a lil while now and I still can't see the 7.0 fish in my GatherBuddy.
Is there some actions I'm supposed to do on my side for them to show up or is GB just not updated with them yet ?

Disable expansion filters.

where can i find said expension filters

Just go through your fish list and disable any filters in the top list.


update links ?

need to update new links as old ones not working. But not all new balance-x.xel-project.org are running computation wallets, we need a solution for it.

new nodes added in master branch


lazygit: 0.28.2 -> 0.29

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/jesseduffield/lazygit/releases.
meta.description for lazygit is: "Simple terminal UI for git commands"
meta.homepage for lazygit is: "https://github.com/jesseduffield/lazygit"
meta.changelog for lazygit is: "https://github.com/jesseduffield/lazygit/releases/tag/v0.29"
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

/nix/store/am89j95h75b03naaazzcznaapp0hqb8b-lazygit-0.29/bin/lazygit passed the binary check.

1 of 1 passed binary check by having a zero exit code.

1 of 1 passed binary check by having the new version present in output.

found 0.29 with grep in /nix/store/am89j95h75b03naaazzcznaapp0hqb8b-lazygit-0.29

found 0.29 in filename of file in /nix/store/am89j95h75b03naaazzcznaapp0hqb8b-lazygit-0.29

directory tree listing: https://gist.github.com/b43f0f078c26c5fd929f900c493b5c7f

du listing: https://gist.github.com/33ea22314d48f5df5bb432977cd90890

Rebuild report (if merged into master) (click to expand)

4 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
1 i686-linux rebuild(s)
1 x86_64-darwin rebuild(s)
1 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
lazygit

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/am89j95h75b03naaazzcznaapp0hqb8b-lazygit-0.29 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A lazygit https://github.com/r-ryantm/nixpkgs/archive/883d2b64b1a0fd62d8f8285e8b513f87a00742b9.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/am89j95h75b03naaazzcznaapp0hqb8b-lazygit-0.29
ls -la /nix/store/am89j95h75b03naaazzcznaapp0hqb8b-lazygit-0.29/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

lazygit

Maintainer pings
cc @fpletz @equirosa @Br1ght0ne @kalbasit for testing.

Result of nixpkgs-review pr 135185 run on x86_64-linux 1

1 package built:

lazygit


TestBashGlobal::test_python_not_executable fails with non-english locale

The test fails at this line.
For example, in a German locale the error message returned by self.sh.run_command is 'bash: ./prog: Keine Berechtigung\r\n' and of course doesn't contain the string the test looks for.
Setting LANG=en_US.UTF-8 or even LC_ALL=C somehow should fix this.

Thanks for reporting. Could you check if import os; print(os.strerror(13)) returns Keine Berechtigung?

No, it doesn't:
$ echo LANG=$LANG
LANG=de_DE.UTF-8
$ python2
Python 2.7.13 (default, Dec 21 2016, 07:16:46)
[GCC 6.2.1 20160830] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os; print(os.strerror(13))
Permission denied
$ python3
Python 3.6.0 (default, Jan 16 2017, 12:12:55)
[GCC 6.3.1 20170109] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os; print(os.strerror(13))
Permission denied

My intent was to ensure that the script was not able to be run as ./prog since this is how global completion used to run things even when the user was completing python ./prog. The simplest fix seems to be not to check the message at all.

You should be able to check for the exit code instead. I think it should always be 126.


Feature/angular update

Angular 13 update:

Updates Angular and Material UI and most dependencies to latest Angular 13 (LTS) versions
Updates Jest config to be able to understand latest module types
Fixes some errors that popped up due to more strict state immutability in NGRX library. State that is selected from the Store can't ever ever ever be assigned or modified, you have to clone the object and then update the Store with the new object; there were 4-5 places where this needed fixed.
Removes some dead dependencies

NOTE
This also contains a bump from Node 16.3.0 -> 16.15.0 for docker, as Angular CLI needs 16.15.0 or higher.
Keep an eye out for browser runtime errors that say something like 'cannot assign to read-only property of....', this indicates a place where a JavaScript object has been "frozen" and cannot be modified, likely by NGRX on state that has been read from the store. I tried to find these errors on my own, but TypeScript isn't picking up on them in the code itself for some reason.
Most code changes were minor, but some of the fixes mentioned above may cause code conflicts, I can help resolve. Otherwise it would very good to get this in (putting in draft status for now until others can verify it is working on their machines).

@jreddig let's hold off on merging this until we can test @VivekFitkariwala 's PR, this one also touches a lot of files. @ppratikcr7 how do you feel about being able to merge this in with your other frontend changes going on?

@jreddig let's hold off on merging this until we can test @VivekFitkariwala 's PR, this one also touches a lot of files. @ppratikcr7 how do you feel about being able to merge this in with your other frontend changes going on?

Okay, I will merge it in a day or two after my metrics stepper tab is ready.


docs: update fallback sink docs

Closes #2302

Just for my understanding: let us say we set this
retryStrategy:           backoff:             interval: 500ms             steps: 4           onFailure: retry
what will be the behavior in this case? Infinite retries?

Just for my understanding: let us say we set this retryStrategy: backoff: interval: 500ms steps: 4 onFailure: retry what will be the behavior in this case? Infinite retries?

@Krithika3 I didn't look into the code, but based on our current documentation, I believe yes. @kohlisid , could you help confirm?

@kohlisid , please review to make sure my update are accurate. I didn't look into the implementation. This update is purely based on our discussion this morning.
Folks, please don't merge this one in until Sidhant approves it.

@KeranYang @Krithika3
Yes, if the strategy is retry it will keep on retrying infinitely.


Enable Project Root Finder

Only set project root finder to blank if not already set and test
explicitly for a non blank setting to see if it has been set.
Even if it was set in .vimrc g:gutentags_project_root_finder was always set blank.
Once it was set it was not being called because it was not being recognised as set.

Merged, thanks!


statement level profiling

Describe the feature
It would be great if statement level profiling were possible (i.e. within a method).
Use Case
Sometimes with a larger method with branches it is difficult to understand exactly where the time is being spent within a method for possible optimization.
The profiler in XCode allows this and I have found it very helpful at times.
Proposed Solution
No response
Acknowledgements

[ ] I may be able to implement this feature request
[ ] This feature might incur a breaking change

Actually, I think this may already exist. If I distinguish stack frames by line number, I think this is doing what I need. I can get this when performing a capture using JFR - I am going to test if I get the same information if I have async profiler capture to jfr

When async-profiler uses jfr output format, it recods bci (bytecode indices) and line numbers when available.
You can then view recordings in JMC or IntelliJ IDEA. The latter will even annotate lines with the corresponding number of samples right in the code editor:

Also, you may use async-profiler's built-in JFR-to-FlameGraph converter with --bci or --lines options to produce a flamegraph with line numbers:
jfrconv --lines profiler.jfr profiler.html

Great. Thanks.


Create new wrenchKey method.

This issue was imported from github.gatech.edu.
The original issue was opened by @smccormick32 on 2020-05-21T19:52:53Z
(From PR https://github.gatech.edu/borglab/GTDynamics/pull/27 )
comment from ScrewJointBase.h, line 349:
create a new wrenchKey(link, t) method in this class (or its base class) and use it everywhere.
same for TorqueKey ->torqueKey, JointAngleKey -> angleKey, JointVelKey -> velocityKey, JointAccelKey -> accelerationKey

This issue doesn't seem valid because WrenchKey expects the link ID, joint ID and time index. So it would be wrenchKey(link, joint, t), which seems a bit pointless.
@dellaert ?

I think this was resolved by #65


Migrate to HF datasets for storing extracted hidden states

Fixes #61.
Still kind of a draft but the elicit command now seems to work at least on the few datasets & models I tried.

Known bugs right now:

instantiating Extractor prints a message saying how many GPUs will be used even when the dataset is cached and extraction is not run
in some scenarios with BoolQ there's this weird Unknown split "validation". Should be one of ['train', 'test'] error on loading the dataset from cache

Fixed progress bar stuff + added max_gpus flag for elk extract.


Use a shared queue for URLSessions to prevent crash during _MultiHandle.deinit

We've seen various crashes in libcrypto that occur following URLSession._MultiHandle.deinit. The crash was particularly frequent on Amazon Linux 2 (see https://github.com/swiftlang/swift-package-manager/pull/7624), and generally follows a similar pattern to this backtrace:
 0      0x0000ffffa4e4b948 getrn + 136 in libcrypto.so.1.0.2k
 1 [ra] 0x0000ffffa4e4bddc lh_delete + 55 in libcrypto.so.1.0.2k
 2 [ra] 0x0000ffffa4e4eaac int_thread_del_item + 123 in libcrypto.so.1.0.2k
 3 [ra] 0x0000ffffa4e4f564 ERR_error_string + 151 in libcrypto.so.1.0.2k
 4 [ra] 0x0000ffffa5316d68 Curl_close + 135 in libcurl.so.4.8.0
 5 [ra] 0x0000ffffa52c2374 Curl_conncache_close_all_connections + 371 in libcurl.so.4.8.0
 6 [ra] 0x0000ffffa52f8884 curl_multi_cleanup + 215 in libcurl.so.4.8.0
 7 [ra] 0x0000ffffa7b893b0 URLSession._MultiHandle.deinit + 255 in libFoundationNetworking.so

curl can be configured with various TLS libraries, and OpenSSL is a common choice. Previously, each URLSession had its own work queue, but given that "OpenSSL is not completely thread-safe, and unfortunately not all global resources have the necessary locks" (source), and URLSession does not account for this, this sometimes led to the above crash in multi-threaded contexts.
It appears that certain versions of OpenSSL might be more or less susceptible to this crash, but given that curl can be built with a wide array of versions, or even different TLS libraries, the only effective fix we found was to make URLSession single-threaded by sharing a target queue for all sessions. This is similar to the loader queuing behavior on Darwin.
Thanks to @guoye-zhang, @AnkshitJain, and @bnbarham for help debugging/discovering this fix!

@swift-ci please test


pull request for e2e test at 01/12/2017 09:15:12

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


[OSX] /deep/ combinator is deprecated.

Hi,
I've just started taking a look at Electron, and installed the electron command globally. I followed the quickstart guide, when I run the hello world app the console opens with:
/deep/ combinator is deprecated.
See https://www.chromestatus.com/features/6750456638341120 for more details.

The link details html /deep/ being deprecated in chrome 45+, but from what I can tell electron injects the following style when you create a new app:
<style type="text/css">html /deep/ * { min-width: 0; min-height: 0; }</style>

I've also tried creating a new test app with electron as a development dependency but the same issue occurs.

Electron shouldn't inject any style into your app, where did you find that style tag?

I can reproduce this issue by calling the mainWindow.openDevTools() method inside app.on('ready'.... If I comment openDevTools, the warning disappears.

It displays in the inspector which opens as soon as I run the app:

My index.html is as per the quickstart guide.

I actually didn't notice that mainWindow.openDevTools() is called on startup, and thought it was due to the warning.
Commenting it out at least hides the error, just a bit disconcerting to see the warning when starting out with a hello world.

Seems that it is added by devtools:
https://code.google.com/p/chromium/issues/detail?id=500074
https://code.google.com/p/chromium/issues/detail?id=498405

That's a bit ironic. Thanks for the fast response!

This is not restricted to OSX. I have seen it today on Windows 10 and on Ubuntu Linux 15.10.
Both time a fresh install of electron (via npm).

+1 I've seen this on Windows 10 too.

+1 This is a nasty bug. I just spent an hour figuring out why polymer's <paper-item> is less tall when I set Polymer.dom = 'shadow'. Turns out that it has nothing to do with polymer and everything to do with this bug o.O

Repro in Ubuntu 14.04 with Chrome Version 46.0.2490.86

+1 to the pile.  It has had me searching my code for ages, only to stumble across this thread, and realise my time has been wasted. Particularly frustrating that it only occurs when devtools is open :angry:

Unable to reproduce in 0.36.2 anymore, Chrome 47 seems to have fixed the problem.


Icon Button - Ensure Consistency between Storybook Documentation and Codebase Property Names

Description / User story
As a developer on the team,
I want to ensure consistency between the property names defined in the Storybook documentation for Icon Button component
So that the Icon Button component codebase accurately reflects the documented property names.
This user story outlines the need to maintain consistency between the documentation and the codebase regarding component property names. Each component is checked to ensure the property names in the codebase match the corresponding names in the Storybook documentation. If the discrepancies are found, they are listed in this table on the page "IconButton". Column Current Code Property Name describes how is the property currently named in the code. Column Desired Code Property Name is how the property should be named. Properties marked green don't need adjustment.
Requirements / Prerequisites
No response
Acceptance Criteria

[x]  All Icon Button component's property names that differ from Storybook documentation property names (listed in the above mentioned table) should be updated
[x] The updated property names should not introduce any unintended side effects or issues in the functionality of the components
[x] The library builds successfully, and there are no reported issues related to the property name updates
[x] Props Excel has been updated / comments have been resolved and props changed from red to black font color > @thrbnhrtmnn or @angelicahoyss can support here

Additional information

...

Code of Conduct

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

Hey @JpunktWpunkt ,
as discussed with Christian, the event prop names do not have to be changed as they were already correct. I just updated the prop excel accordingly.
What we still should do though is displaying the event props also in the prop panel :-)


OpTestHost: python3 fix

Signed-off-by: Philippe Bergheaud<EMAIL_ADDRESS>

Can one of the admins verify this patch?

ok to test


app removes focus upon clicking the banners from amount input field in browsers but not in native apps

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

open a chat
send money
enter an amount
click the banner/title above
repeat the same steps once in browser and once in android app

Expected results:
input field should remain either focused or unfocused in both
Actual results:
unfocused in browser, focused in native app
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android / native
[ ] Android / Chrome
[x] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: <IP_ADDRESS>
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/43996225/235333883-45281af4-5f95-484b-aa2f-d807a2aabe89.mp4
https://user-images.githubusercontent.com/43996225/235333865-eb1ee03f-e8ea-49ec-88f1-9fb3f78e17cd.mp4
https://user-images.githubusercontent.com/43996225/235333866-aae2e13a-d203-45ea-ba90-1e66c44f4f36.mp4
Expensify/Expensify Issue URL:
Issue reported by: @chiragxarora
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1682752954467829
View all open jobs on GitHub

Triggered auto assignment to @greg-schroeder (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.

Bug0 Triage Checklist (Main S/O)

[ ] This "bug" occurs on a supported platform (ensure Platforms in OP are ✅)
[ ] This bug is not a duplicate report (check E/App issues and #expensify-bugs)

If it is, comment with a link to the original report, close the issue and add any novel details to the original issue instead

[ ] This bug is reproducible using the reproduction steps in the OP. S/O

If the reproduction steps are clear and you're unable to reproduce the bug, check with the reporter and QA first, then close the issue.
If the reproduction steps aren't clear and you determine the correct steps, please update the OP.

[ ] This issue is filled out as thoroughly and clearly as possible

Pay special attention to the title, results, platforms where the bug occurs, and if the bug happens on staging/production.

[ ] I have reviewed and subscribed to the linked Slack conversation to ensure Slack/Github stay in sync

Sorry for the delay on this issue, I was dealing with a personal issue. I'll manage the issue normally going forward.

Behavior is inconsistent but I don't know which is expected/preferred - asked the team here: https://expensify.slack.com/archives/C01SKUP7QR0/p1683882570629789

Closing per discussion with team

I'm unable to access the thread, could you tell me the reason?

Sorry about that! Essentially while the behavior could be construed as "inconsistent", it's not considered broken/a bug as it matches the behavior of any of our other pages.


[Feature Request] Introduce i18n

I hope the project can introduce i18n and extract words so that we can submit translations in various languages.

Done https://kener.ing/docs#h2i18n

Please raise a PR for new locales


update windows nuget packge restores for latest nuget client

This should fix the csharp builds on jenkins windows workers. Will see in the tests...
In order to bring in a new dependency in https://github.com/grpc/grpc/pull/7519, I needed to update the nuget client on jenkins workers because the previous nuget client versions (at 2.8.6), were too old to bring in the new dependency.
Unfortunately the new nuget client has breaking changes that break the way csharp currently restores its nuget packages, so basic tests are failing on windows (where the client was updated so far).

LGTM, except that the Windows C# tests are still failing.

It now fails on windows with a directory name being too long. I think the differences in dependencies between this and https://github.com/grpc/grpc/pull/7519 cause that to happen here.

windows nuget clients were put back to the old version for the time being, this didn't seem to help anyways...


test backups restoration process, automatically

Starting restoration process il db.

IL db basebackup  arhive size - 8.95 GB .
last xlog segment<PHONE_NUMBER>00003B0000004D
PGHOARD RECOVERY TARGET TIME  set to "2018-02-12T15:30:00Z"
RECOVERY process start at 15:51 12/02/2018
RECOVERY process end at 16:11 12/02/2018

RECOVERY process monitoring snapshot:

pghoard-restore logs
pghoard-restore_logs.txt
Rudimentary check
No new xlog segment repllicated to backups during the test!
Prod IL
total amount of records inserted into declaration_requests table
kubectl exec db-0 --namespace il  -- psql --dbname il --username db -c "select count (*) from public.declaration_requests" ;
 count
-------
 32825
(1 row)

amount of records inserted  into  declaration_requests  table 2018-02-12 00:00 to 2018-02-12 16:30
kubectl exec db-0 --namespace il  -- psql --dbname il --username db -c "select count (*) from public.declaration_requests where inserted_at >= '2018-02-12'::date;" ;
 count
-------
   541
(1 row)

Recovered IL
kubectl exec pghoard-restore  --namespace monitoring  -- psql --dbname il --username db -c "select count (*) from public.declaration_requests" ;
 count
-------
 32778
(1 row)

 count
-------
   493
(1 row)

Differences =  23 rows.
Сonclusion
Backup process was successful. Il db recovered from backup point in time and ready to accept connections.

It good to know that we've tested this, but we need to also automate this.


updated benchmarks?

Wondering if you could update the benchmarks to see how it compares to wfa2-lib. Cheers

Done in bd96db0.
I ran the benchmarks as follows:

The benchmark cases (scores and sequences) are those hard-coded in bench/bench_wfa.rs.
For rust-wfa, I ran the benchmarks from the main crate, with the -b flag. The results differ significantly compared to running them with cargo bench, with the latter being much faster. I don't know why.
For wfa2-lib, I used the align_benchmark binary from the latest commit, with the same scores and the gap-affine-wfa or gap-affine-swg algorithms. The results listed are those provided by Time.Alignment.

Comparing the results for the longest, most different sequences, it's clear that my implementation can be significantly improved.
I'll let you close the issue unless you want to add something.

Hey, thanks for the really fast turnaround, it's appreciated. I got a speed boost on your library by using mimalloc (with secure mode off). I may poke around a bit more as I'd like to use this with some nanopore reads, so speeding up the longer sequences with high error rate is priority.
Cheers

After reading your comment I tried using reserve when resizing the wavefront vectors, hoping to reduce the number of allocations performed. There was no clear cut benefit on benchmarks, with some increasing and others decreasing by a couple percents.
I also tried to initialize the vecs using Vec::with_capacity(), set to a large value
which had pretty much the same result.


Timestamps are blank after the first 12 shots

So essentially, after the first infinite scroll load, they are all empty.

I think I just fixed it. Never fixed a github thing before, but I'm gonna google it and learn how to submit a pull request(?).
wish me luck guys.


Update software.md URLs

Updated the GitHub URLs to always point to the latest release of dnSpy and BepInEx-Publicizer rather than specific tags.  It doesn't matter much for dnSpy since it is archived, but the old URL for BepInEx-Publicizer pointed to an outdated version that did not work for me.

Updated the GitHub URLs to always point to the latest release of dnSpy and BepInEx-Publicizer rather than specific tags. It doesn't matter much for dnSpy since it is archived, but the old URL for BepInEx-Publicizer pointed to an outdated version that did not work for me.

Thank you so much for this! Valuable feedback, and I'm really grateful that you've taken the time to create a PR and address this. Thank you! I'll merge the PR right away.


Task - Research Company - Tableau Software

Company name:
Location:
Mission statement:
IT roles:
Glassdoor rating:
Benefits:
Link to jobs/careers page.

Use the template to input the information, don't forget to change the .html name and relink it on the navigation bar.


Impossible to use built-in AJV library

In a request script or test, impossible to import the AJV library:
const Ajv = require("ajv")
leads to an error message
Error invoking remote method 'send-http-request': VMError: cannot find module 'ajv'

I'll take it

Seems to be good in UI version 0.24+
Thanks
However I opened the #612 for a similar problem with the bru-cli


PackageInfoPlugin.java uses or overrides a deprecated API.

With this package : https://pub.dartlang.org/packages/package_info

Steps to Reproduce

dependencies:
  package_info: ^0.4.0+1

import "package:package_info/package_info.dart";

flutter build apk

Logs

Note: /home/natoboram/.pub-cache/hosted/pub.dartlang.org/package_info-0.4.0+1/android/src/main/java/io/flutter/plugins/packageinfo/PackageInfoPlugin.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

Analyzing store_manager...
No issues found! (ran in 3.5s)

[✓] Flutter (Channel master, v1.2.2-pre.21, on Linux, locale en_GB.UTF-8)
    • Flutter version 1.2.2-pre.21 at /home/natoboram/GitHub/flutter/flutter
    • Framework revision 035e0765cc (4 days ago), 2019-02-16 01:48:28 -0500
    • Engine revision f37b09a11b
    • Dart version 2.1.2 (build 2.1.2-dev.0.0 c92d5ca288)

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /home/natoboram/Android/Sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • ANDROID_HOME = /home/natoboram/Android/Sdk
    • ANDROID_SDK_ROOT = /home/natoboram/Android/Sdk
    • Java binary at: /snap/android-studio/70/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)
    • All Android licenses accepted.

[✓] Android Studio (version 3.3)
    • Android Studio at /snap/android-studio/70/android-studio
    • Flutter plugin version 32.0.1
    • Dart plugin version 182.5215
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)

[✓] Proxy Configuration
    • HTTP_PROXY is set
    • NO_PROXY is <IP_ADDRESS>/8,<IP_ADDRESS>/16,<IP_ADDRESS>/12,<IP_ADDRESS>,localhost
    • NO_PROXY contains <IP_ADDRESS>
    • NO_PROXY contains localhost

[✓] Connected device (2 available)
    • Nexus 5 • 05473ea90a673764 • android-arm • Android 7.1.2 (API 25)
    • Nexus 5 • <IP_ADDRESS>:5555    • android-arm • Android 7.1.2 (API 25)

• No issues found!

This fixed it for me : https://github.com/apptreesoftware/flutter_barcode_reader/issues/71#issuecomment-465299793
android.useAndroidX=true
android.enableJetifier=true

ext.kotlin_version = '1.3.0'
com.android.tools.build:gradle:3.3.0

There should probably be a way to inform users of how to fix the Support Library migration. I'm not familiar with that, and I'd appreciate not to have to open issues because I didn't understand what was happening given the un-informative message.
Issue can be closed if there's no work to do on it.

Hm. The error went away for a short while, but now it's there again.

Note: /Users/sjm/.pub-cache/hosted/pub.dartlang.org/package_info-0.4.0+1/android/src/main/java/io/flutter/plugins/packageinfo/PackageInfoPlugin.java uses or overrides a deprecated API.
I know not very helpful but should still be enough info to figure out what the issue is .. and this is with the latest everything in "beta" flutter.

This issue has been fixed with https://github.com/flutter/plugins/pull/1275
If any related issue is found, please feel free to reopen it with details.

Everything is updated:
Upgrading Flutter from /home/julien/Tools/flutter...
Already up to date.

Upgrading engine...
Already up-to-date.

Flutter 1.2.1 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 8661d8aecd (6 weeks ago) • 2019-02-14 19:19:53 -0800
Engine • revision 3757390fa4
Tools • Dart 2.1.2 (build 2.1.2-dev.0.0 0a7dcf17eb)

Running "flutter packages upgrade" in [redacted]-app...                6.8s

Running flutter doctor...
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.2.1, on Linux, locale en_US.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[✓] Android Studio (version 3.3)
[✓] VS Code (version 1.32.3)
[✓] Connected device (1 available)

• No issues found!

but still gives the issue every APK build:
Initializing gradle...                                              1.6s
Resolving dependencies...                                          16.6s
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: /home/julien/Tools/flutter/.pub-cache/hosted/pub.dartlang.org/package_info-0.4.0+2/android/src/main/java/io/flutter/plugins/packageinfo/PackageInfoPlugin.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Running Gradle task 'assembleRelease'...
Running Gradle task 'assembleRelease'... Done                      56.1s
Built build/app/outputs/apk/release/app-release.apk (8.1MB).

reopen to investigate.

Then how come we still see the warning with 0.4.0+4? This should be reopened and investigated.

I updated to package_info: ^0.4.0+5 and the message is gone.

Unfortunately I still have the issue ...
Note: C:\ProgramData\flutter.pub-cache\hosted\pub.dartlang.org\connectivity-0.4.3+6\android\src\main\java\io\flutter\plugins\connectivity\ConnectivityPlugin.java uses or overrides a deprecated
API.
Note: Recompile with -Xlint:deprecation for details.
Note: C:\ProgramData\flutter.pub-cache\hosted\pub.dartlang.org\package_info-0.4.0+5\android\src\main\java\io\flutter\plugins\packageinfo\PackageInfoPlugin.java uses or overrides a deprecated A
PI.
Note: Recompile with -Xlint:deprecation for details.

Unfortunately I still have the issue ...
Note: C:\ProgramData\flutter.pub-cache\hosted\pub.dartlang.org\connectivity-0.4.3+6\android\src\main\java\io\flutter\plugins\connectivity\ConnectivityPlugin.java uses or overrides a deprecated
API.
Note: Recompile with -Xlint:deprecation for details.
Note: C:\ProgramData\flutter.pub-cache\hosted\pub.dartlang.org\package_info-0.4.0+5\android\src\main\java\io\flutter\plugins\packageinfo\PackageInfoPlugin.java uses or overrides a deprecated A
PI.
Note: Recompile with -Xlint:deprecation for details.

Do you have
android.enableJetifier=true
android.useAndroidX=true
in gradle.properties?

Yes :
android.enableJetifier=true
android.useAndroidX=true
org.gradle.jvmargs=-Xmx1536M

So do I. Still, it must come from this package because I simply removed the reference to tha package, copied the relevant code to my source, added the 'don't-warn-me-about-deprecation' to this very line and the rest is silence... :-)

I can confirm that this is still an issue.
  private static long getLongVersionCode(PackageInfo info) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
      return info.getLongVersionCode();
    }

    //noinspection deprecation
    return info.versionCode;
  }

It looks like info.versionCode is deprecated in favor of info.getLongVersionCode()

The ongoing issue is being tracked at https://github.com/flutter/flutter/issues/28772.

+1


Missing write access

npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!  { Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!   stack: 'Error: EACCES: permission denied, access '/usr/local/lib/node_modules'',
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/local/lib/node_modules' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! A complete log of this run can be found in:
How I grant this permission ?
Thanks

Run the install with sudo or have node installed in a directory your user has access to. This is more a unix / npm and has nothing to do with angular-cli. You should close this and head over to stackoverflow with this question if my first sentence still leaves you stumped.


What is the logic behind normalizeCertificateHash function?

Source File: dgc-gateway/src/main/java/eu/europa/ec/dgc/gateway/restapi/filter/CertificateAuthenticationFilter.java
Line(s): 84-120
Question: What is the logic behind normalizeCertificateHash function?

Rather than normalization, it looks like it performs some type of guesswork to end up with a hash that is then used (in doFilterInternal) to fetch client (!) certificate from the database to perform an authentication. What am I missing? :slightly_smiling_face:

Hi @quapka ,
we had to implement the AuthenticationFilter in this way because we will get the certificate thumbprint/hash in production environment passed as a HTTP-Header and URL encoded. In the past this wasn't a stable behaviour of the LoadBalancer so this was one step for more robustness.
Also for local development/testing it is rather uncomfortable to always URL Encode these parameters.
But as I can see we have also this beautiful "length == 63"-Feature in place. I will propose a PR to replace this one also with Bouncycastle HEX parser.


Update API and add integration testing.

LGTM, but I do wonder if the stress tests put any undue stress on the github bots, or our shared resources. Do you know if that will be an issue?

If everything is as expected, this should not take noticeable resources: the cycle will stop at first garbage collection, that should happen much earlier than any significant impact for bots.


tests: mem_slab: Extend with CONFIG_MULTITHREADING=n case

Extended mslab_api test suite to support case when
multithreading is disabled.
Fixes #40020
Signed-off-by: Lixin Guo<EMAIL_ADDRESS>

can be close due to merge of #40035


Conduit will not reconnect/continue if algod has been restarted

Conduit will not reconnect/continue if algod has been restarted
We have noticed that if we restart our algod instances, conduit gets stuck and will not ingest new blocks once algod has finished restarting and is back on-line
Your environment
Software Versions:

algod  3.16.2

conduit 1.2.0

Pipeline configuration

algod config.json:

{
  "Archival": false,
  "CatchpointInterval": 0,
  "CatchupParallelBlocks": 32,
  "DNSBootstrapID": "betanet.algodev.network",
  "EnableDeveloperAPI": true,
  "EnableFollowMode": true,
  "EndpointAddress": "<IP_ADDRESS>:48081",
  "ForceFetchTransactions": false,
  "IsIndexerActive": false,
  "MaxAcctLookback": 256
}

conduit.yaml:
exporter:
  config:
    connection-string: <redacted>

    delete-task:
      interval: 1000
      rounds: 10000
  name: postgresql

hide-banner: true
importer:
  config:
    catchup-config:
      admin-token:  <redacted but confirmed correct>
    mode: follower
    netaddr: http://vira-betanet-blue-algod4conduit:48081
    token: <redacted but confirmed correct>
  name: algod
log-level: "INFO"
metrics:
  addr: ":9999"
  mode: "ON"
  prefix: "conduit"
retry-count: 0

Operating System details.
We are running these in an AWS kubernetes cluster.  Both Conduit and algod are your provided
containers available on Docker Hub.

There is one alogd instance, fronted by a kubernetes service object.  The network path looks like:
Conduit ---> k8s service ---> algod
When the algod pod is killed, it takes about 30-60s before it is re-registered in the k8s service and
available.  The IP addresses do not change.
The Algod pod has a PVC (disk) attached and this same disk is re-attached to the recreated algod pod every
time.  So algod is starting back up with exactly the same state as when it was shut down.
We have seen this using two ledgers now, Betanet and MainNet.
Steps to reproduce

Setup Conduit/Algod in k8s as above
Kill the algod pod with kubectl delete pod <algod_pod_name>
Wait for the k8s stateful set to automatically re-create the pod after it has been deleted.
Watch the logs for Conduit. It does not advance, even after waiting 20 minutes.

Expected behaviour
Conduit should fetch the next block from its dedicated algod instance as soon as it has restarted.
Actual behaviour
Conduit gets stuck trying to retrieve the next block.  Restarting conduit or restarting algod a second time
does not help.
We see the following logs in conduit:
{"__type":"Conduit","_name":"main","level":"info","msg":"Pipeline round: 28060661","time":"2023-07-19T19:47:23Z"}
{"__type":"importer","_name":"algod","level":"error","msg":"error getting status for round 28060661 (attempt 0): error getting status for round: Get \"http://vira-betanet-blue-algod4conduit:48081/v2/status/wait-for-block-after/28060660\": dial tcp <IP_ADDRESS>:48081: connect: connection refused","time":"2023-07-19T19:47:23Z"}
{"__type":"importer","_name":"algod","level":"error","msg":"error getting status for round 28060661 (attempt 1): error getting status for round: Get \"http://vira-betanet-blue-algod4conduit:48081/v2/status/wait-for-block-after/28060660\": dial tcp <IP_ADDRESS>:48081: connect: connection refused","time":"2023-07-19T19:47:24Z"}
{"__type":"importer","_name":"algod","level":"error","msg":"error getting status for round 28060661 (attempt 2): error getting status for round: Get \"http://vira-betanet-blue-algod4conduit:48081/v2/status/wait-for-block-after/28060660\": dial tcp <IP_ADDRESS>:48081: connect: connection refused","time":"2023-07-19T19:47:25Z"}
{"__type":"importer","_name":"algod","level":"error","msg":"error getting status for round 28060661 (attempt 3): error getting status for round: Get \"http://vira-betanet-blue-algod4conduit:48081/v2/status/wait-for-block-after/28060660\": dial tcp <IP_ADDRESS>:48081: connect: connection refused","time":"2023-07-19T19:47:26Z"}
{"__type":"importer","_name":"algod","level":"error","msg":"error getting block for round 28060661 (attempt 4): HTTP 404: {\"message\":\"failed to retrieve information from the ledger\"}\n","time":"2023-07-19T19:48:27Z"}
{"__type":"importer","_name":"algod","level":"error","msg":"failed to get block for round 28060661 after 5 attempts, check node configuration: HTTP 404: {\"message\":\"failed to retrieve information from the ledger\"}\n","time":"2023-07-19T19:48:27Z"}
{"__type":"Conduit","_name":"main","level":"error","msg":"failed to get block for round 28060661 after 5 attempts, check node configuration: HTTP 404: {\"message\":\"failed to retrieve information from the ledger\"}\n","time":"2023-07-19T19:48:27Z"}
{"__type":"Conduit","_name":"main","level":"info","msg":"Retry number 27 resuming after a 1s retry delay.","time":"2023-07-19T19:48:27Z"}
{"__type":"Conduit","_name":"main","level":"info","msg":"Pipeline round: 28060661","time":"2023-07-19T19:48:28Z"}
{"__type":"importer","_name":"algod","level":"error","msg":"error getting block for round 28060661 (attempt 0): HTTP 404: {\"message\":\"failed to retrieve information from the ledger\"}\n","time":"2023-07-19T19:49:28Z"}

{"__type":"importer","_name":"algod","level":"error","msg":"error getting block for round 28060661 (attempt 1): HTTP 404: {\"message\":\"failed to retrieve information from the ledger\"}\n","time":"2023-07-19T19:50:28Z"}
{"__type":"importer","_name":"algod","level":"error","msg":"error getting block for round 28060661 (attempt 2): HTTP 404: {\"message\":\"failed to retrieve information from the ledger\"}\n","time":"2023-07-19T19:51:28Z"}
{"__type":"importer","_name":"algod","level":"error","msg":"error getting block for round 28060661 (attempt 3): HTTP 404: {\"message\":\"failed to retrieve information from the ledger\"}\n","time":"2023-07-19T19:52:28Z"}

In the same time frame, we see the following logs from algod:
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).periodicSync","level":"info","line":616,"msg":"It's been too long since our ledger advanced; resyncing","name":"","time":"2023-07-19T19:51:22.328185Z"}
{"Context":"sync","details":{"StartRound":28060660},"file":"telemetry.go","function":"github.com/algorand/go-algorand/logging.(*telemetryState).logTelemetry","instanceName":"aWLoG60wMexN2Akp","level":"info","line":255,"msg":"/ApplicationState/CatchupStart","name":"","session":"","time":"2023-07-19T19:51:22.328292Z","v":""}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060661): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.329278Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060663): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.330118Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060662): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.330821Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060664): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.331494Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060665): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.332124Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060666): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.332721Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060667): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.332760Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060668): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.332790Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060670): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.332789Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060669): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.332819Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060671): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.332822Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060672): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.332843Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060673): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.332856Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060674): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.332875Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060675): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.332887Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060676): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.332899Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060678): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.332926Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060677): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.332916Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060679): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.332952Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060683): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.332954Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060680): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.332976Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060684): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.332981Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060681): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.332998Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060682): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.333018Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060685): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.333029Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060687): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.333058Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060686): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.333058Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060688): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.333083Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060690): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.333084Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060689): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.333108Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060691): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.333109Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060692): did not fetch or write the block","name":"","time":"2023-07-19T19:51:22.333138Z"}
{"Context":"sync","details":{"StartRound":28060660,"EndRound":28060660,"Time":4898458,"InitSync":false},"file":"telemetry.go","function":"github.com/algorand/go-algorand/logging.(*telemetryState).logTelemetry","instanceName":"aWLoG60wMexN2Akp","level":"info","line":255,"msg":"/ApplicationState/CatchupStop","name":"","session":"","time":"2023-07-19T19:51:22.333176Z","v":""}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).sync","level":"info","line":688,"msg":"Catchup Service: finished catching up, now at round 28060660 (previously 28060660).

It looks like you already have retry-count set to 0, which was my first thought.
I was able to reproduce something similar with the following:
A follower node running with a mounted volume on one terminal:
docker run --rm -it \
                -p 4190:8080 \
                --name algod-test-run \
                -e TOKEN=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \
                -e PROFILE=conduit \
                -e NETWORK=betanet \
                -v (pwd)/docker_data_dir:/algod/data \
                algorand/algod:nightly

Conduit running in another with a basic config and retries set to 0:
# Log verbosity: PANIC, FATAL, ERROR, WARN, INFO, DEBUG, TRACE
log-level: INFO

# If no log file is provided logs are written to stdout.
#log-file:

# Number of retries to perform after a pipeline plugin error.
# Set to 0 to retry forever.
retry-count: 0

# Time duration to wait between retry attempts.
retry-delay: "1s"

# Optional filepath to use for pidfile.
#pid-filepath: /path/to/pidfile

# Whether or not to print the conduit banner on startup.
hide-banner: false

# When enabled prometheus metrics are available on '/metrics'
metrics:
    mode: OFF
    addr: ":9999"
    prefix: "conduit"

# The importer is typically an algod follower node.
importer:
    name: algod
    config:
        # The mode of operation, either "archival" or "follower".
        # * follower mode allows you to use a lightweight non-archival node as the
        #   data source. In addition, it will provide ledger state delta objects to
        #   the processors and exporter.
        # * archival mode allows you to start processing on any round but does not
        #   contain the ledger state delta objects required for the postgres writer.
        mode: "follower"

        # Algod API address.
        netaddr: "http://localhost:4190"

        # Algod API token. Found in the algod.token file.
        token: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

        # Algod catchpoint catchup arguments
        catchup-config:
            # Algod Admin API Token. Used for running fast catchup during startup
            # if the node needs to be initialized. Found in algod.admin.token file.
            admin-token: ""

# Zero or more processors may be defined to manipulate what data
# reaches the exporter.
processors:

# An exporter is defined to do something with the data.
exporter:
    name: "file_writer"
    config:
        # BlocksDir is the path to a directory where block data should be stored.
        # The directory is created if it doesn't exist. If no directory is provided
        # blocks are written to the Conduit data directory.
        #block-dir: "/path/to/block/files"

        # FilenamePattern is the format used to write block files. It uses go
        # string formatting and should accept one number for the round.
        # If the file has a '.gz' extension, blocks will be gzipped.
        # Default: "%[1]d_block.json"
        filename-pattern: "%[1]d_block.json"

        # DropCertificate is used to remove the vote certificate from the block data before writing files.
        drop-certificate: true

With this environment running I can shutdown and resume algod. Sometimes it works and sometimes it gets stuck. There seems to be a race condition where the node forgets or doesn't receive the latest sync round from Conduit and therefore it can't advance to the required round.
When it's stuck and algod is running, restarting Conduit gets algod started again.
I think what happens here is Conduit successfully sets the sync round to N+1, but before algod is able to fetch that round and save it to the disk it gets killed. When it starts back up it automatically sets the sync round back to N.

Unfortunately for me, with algod still running, restarting conduit does not get things unstuck.  Not sure if it's made worse with the fact that these are running on two different machines and perhaps slightly more network latency is affecting it.  (vs your experiment had them both running on the same box.)
I left things running overnight, and it's still in the same state.  So nothing it was able to figure out in time.

@PSjoe when you restart conduit, do you see the sync round being posted in the algod logs?
It would look something like this:

{"file":"logger.go","function":"github.com/algorand/go-algorand/daemon/algod/api/server/lib/middlewares.(*LoggerMiddleware).handler.func1","level":"info","line":56,"msg":"<IP_ADDRESS>:34258 - - [2023-07-20 15:18:29.763479994 +0000 UTC m=+6976.363070708] "POST /v2/ledger/sync/605600 HTTP/1.1" 200 0 "Go-http-client/1.1" 26.391µs","time":"2023-07-20T15:18:29.763514Z"}

Doesn't seem so.  Here are the algod logs that show up when I restart conduit:
{"file":"logger.go","function":"github.com/algorand/go-algorand/daemon/algod/api/server/lib/middlewares.(*LoggerMiddleware).handler.func1","level":"info","line":56,"msg":"<IP_ADDRESS>:49444 - - [2023-07-20 15:22:32.525925274 +0000 UTC m=+70594.477752641] \"GET /genesis HTTP/1.1\" 200 0 \"Go-http-client/1.1\" 85.085µs","time":"2023-07-20T15:22:32.526049Z"}
{"file":"utils.go","function":"github.com/algorand/go-algorand/daemon/algod/api/server/v2.returnError","level":"info","line":41,"msg":"round 28060661 too high: dbRound 28060404, deltas 256","time":"2023-07-20T15:22:32.526963Z"}
{"file":"logger.go","function":"github.com/algorand/go-algorand/daemon/algod/api/server/lib/middlewares.(*LoggerMiddleware).handler.func1","level":"info","line":56,"msg":"<IP_ADDRESS>:49444 - - [2023-07-20 15:22:32.526904418 +0000 UTC m=+70594.478731775] \"GET /v2/deltas/28060661?format=msgp HTTP/1.1\" 404 99 \"Go-http-client/1.1\" 102.176µs","time":"2023-07-20T15:22:32.527035Z"}
{"file":"logger.go","function":"github.com/algorand/go-algorand/daemon/algod/api/server/lib/middlewares.(*LoggerMiddleware).handler.func1","level":"info","line":56,"msg":"<IP_ADDRESS>:49444 - - [2023-07-20 15:22:32.638449353 +0000 UTC m=+70594.590276720] \"GET /v2/status HTTP/1.1\" 200 653 \"Go-http-client/1.1\" 77.055µs","time":"2023-07-20T15:22:32.638558Z"}

{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).periodicSync","level":"info","line":616,"msg":"It's been too long since our ledger advanced; resyncing","name":"","time":"2023-07-20T15:22:36.476675Z"}
{"Context":"sync","details":{"StartRound":28060660},"file":"telemetry.go","function":"github.com/algorand/go-algorand/logging.(*telemetryState).logTelemetry","instanceName":"aWLoG60wMexN2Akp","level":"info","line":255,"msg":"/ApplicationState/CatchupStart","name":"","session":"","time":"2023-07-20T15:22:36.476750Z","v":""}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060661): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.478430Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060662): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.478461Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060663): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.478482Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060664): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.478497Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060665): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.478510Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060666): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.478526Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060667): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.478539Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060668): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.478550Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060669): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.478562Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060670): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.478576Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060671): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.478590Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060672): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.478603Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060673): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.478617Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060674): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.478628Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060675): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.478645Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060676): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.478660Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060677): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.478674Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060678): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.478687Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060679): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.478703Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060680): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.478715Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060681): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.478777Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060682): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.478885Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060683): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.478991Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060684): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.479049Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060685): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.479194Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060686): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.479299Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060687): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.479400Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060688): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.479501Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060689): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.479604Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060690): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.479638Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060691): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.479753Z"}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).pipelineCallback.func1","level":"info","line":451,"msg":"pipelineCallback(28060692): did not fetch or write the block","name":"","time":"2023-07-20T15:22:36.479843Z"}
{"Context":"sync","details":{"StartRound":28060660,"EndRound":28060660,"Time":3141223,"InitSync":false},"file":"telemetry.go","function":"github.com/algorand/go-algorand/logging.(*telemetryState).logTelemetry","instanceName":"aWLoG60wMexN2Akp","level":"info","line":255,"msg":"/ApplicationState/CatchupStop","name":"","session":"","time":"2023-07-20T15:22:36.479877Z","v":""}
{"Context":"sync","file":"service.go","function":"github.com/algorand/go-algorand/catchup.(*Service).sync","level":"info","line":688,"msg":"Catchup Service: finished catching up, now at round 28060660 (previously 28060660). Total time catching up 3.141223ms.","name":"","time":"2023-07-20T15:22:36.479897Z"}

I've confirmed that in our ElasticSearch cluster.  There are no POST messages once the system gets here, even if we restart the conduit instance.

1.3.0 appears to have solved this.  My stuck instances started moving again.  I can restart algod instances and conduit picks back up as soon as it's able to reconnect to the algod instance.


test

fwefew

Shouldnt this be closed ?

Whoops <_< Thanks.
Also, this project is deprecated, see https://github.com/matrix-org/matrix-js-sdk for the latest goodies.


fix: encode inviter account as didPkh in Invite Approval Payload

Artur noticed that aud was not encoded as didPkh as per specs: https://docs.walletconnect.com/2.0/specs/clients/chat/chat-authentication#invite-approvals

Closing as change has already been deployed by me, didn't notice this PR.


Destroying webviews

Using the latest version 0.3.7+1 there doesn't seem to be a way of destroying either the controller or webview.  Would expect a dispose method to be called on destroying the widget that the webview sits in.

Run any flutter project with webviews in on iOS simulator
Use a pageview widget
as you swipe through the pages they call the dispose method but that does not remove webview from safari developer tools.

Thanks
Nathan

some question

Hi @wickedman1976
Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore reluctantly going to close this bug for now. Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.


Enhance ObjectPool for runtime changes and pre-allocation

The object pool implementation now is basic and simple keeps a queue around for reuse up to a certain limit. We want 2 things:

The reuse limit should be tunable. We might want to increase the reuse limit when memory usage goes up, and free memory when it goes back down.
When the queue  is empty and we are calling malloc, we only do it one at a time for now. It might make sense to put several objects onto the queue at the same time (maybe contiguous in memory?).

If we want to do bulk malloc when the queue is empty, how much space should be allocated (how many objects should be filled in the reuse queue)?  Half-full?

make it tunable as well, I guess.
Also, just FYI since we are going to clean up the code base next week, this will either be ready and go in before early next week (Tue? Wed? Not sure when we will start clean up week), or after the refactors.

It might be worthwhile investigating what Apache Arrow does for this thing as well. Comment from #105 talks about this. Replicated below:
Revisit the memory alignment and padding stuff in our allocators. It's possible that we could be more efficient using posix_memalign where appropriate. Arrow's allocator and memory pool could prove inspirational.

Per discussion on the meeting we will also need to design around the object pool's behavior when there are no objects to hand out.

fixed by #127


Navies

Navy conversion, based on the staffing levels of naval bases and their production methods. Also makes some changes to equipment variants because I needed their names and types to decide what ships could be created.

Codacy is being silly, ignore it.

Codacy is being silly, ignore it.

I absolutely am. :)


Configure Microsoft authentication - Azure App Service

[Enter feedback here]

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

ID: 65d2b8ea-9a87-1ebf-173c-d7fbd9fd5f47
Version Independent ID: 0c41c52b-58bf-dee3-a913-9e237cc02709
Content: Configure Microsoft authentication - Azure App Service
Content Source: articles/app-service/configure-authentication-provider-microsoft.md
Service: app-service
GitHub Login: @cephalin
Microsoft Alias: cephalin

Kindly do not post spam or irrelevant content,  it violates GitHub's Terms of Service.


[Frontend]: Setup React Skeleton Screens For Single Tag & User Pages

Can watch this YouTube playlist for reference - The Net Ninja
Set up the Skeletons for Single Tag Screen and Single User Screen

Hey @Mayank0255 I would like to work on this, can you assign this to me?

@crsdvaibhav sure, go ahead

@crsdvaibhav how's the progress on this?

@crsdvaibhav how's the progress on this?

Hey! Actually I had some problems seeing the single tag and single profile page. I installed the dependencies and started the localhost server and it was up. But whenever I clicked on tags or profile an error page keeps popping up. Might be because backend is not working?

@crsdvaibhav ya if the server is not up then you will definitely face issues


train loss becomes nan

Hi, while I am training my data locally, the loss becomes nan. What are the possible reasons?  Thank you!

Can you try disabling or weakening the elastic loss?

got it. Thank you!


Remove experimental marker from websocket documentation

Since websocket is no longer experimental, please remove them from https://everything.curl.dev/helpers/ws/support.html

I just fixed that in 2157ac8ee32778f881b3851fc071f23f3374a8be


Weird behavior with ctrl-r on 0.16.3 and iterm2

Category

[ ] fzf binary
[ ] fzf-tmux script
[ ] Key bindings
[X] Completion
[ ] Vim
[ ] Neovim
[ ] Etc.

OS

[ ] Linux
[X] Mac OS X
[ ] Windows
[ ] Windows Subsystem for Linux
[ ] Etc.

Shell

[ ] bash
[X] zsh
[ ] fish

Hello
I've updated to 0.16.3 and I have weird completion issues now. It happens only in iterm2 not in terminal. It seems that text inserted are not display and the refresh behavior is strange. Is there someone who have the same issue? I'm using fzf since a year and have this issue with the update (don't remember which version I had before).

My bad. It's related to terminal type.

Be sure to have settings like this.
It's fixed. Thanks a lot for fzf.

No problem, thanks.


Downgrade from Californium to Bismuth

Hmm.  That's not going to work.  Need the fix from https://github.com/reactor/reactor-core/issues/1033

@mp911de Just a heads up that we actually need Californium.  I've upgrade to M1 for now.  Is this going to be a problem for you?

Works for us. Spring Data is following the most recent Reactor upgrades and it looks like as if the Reactor Netty upgrade is already in place. I was only concerned about the fact having Californium for Reactor Core but Bismuth for Reactor Netty.


release v1.21.1 using tag v1.21.0

Did you intend to name this Release v1.21.0 ?

oops! Thanks, I've fixed the release name now.


Update docs

Some changes might feel unnecessary, but I felt like it would be better to have those changes. Like the more conventional font for real number set or the extra line of explanation for linear transformation.

Hey @ritamsaha00, thanks for your PR. I've checked out your commit and here's a few notes:

I love that you added an extra explanation for linear transformations:

A linear transformation is a mapping between two vector spaces $$f:\mathcal{V}\rightarrow\mathcal{W}$$ that preserves the operations of vector addition and scalar multiplication.
If, $v_,v_2\in\mathcal{V}$, then: $$f(a_1v_1+a_2v_2)=a_1f(v_1)+a_2f(v_2)$$

I'd add that $a_1$ and $a_2$ are real values, the same way you said $v_,v_2\in\mathcal{V}$. I'd also include the $f$ after writing linear transformation on the first sentence. Overall, here are the modifications:
A linear transformation $f$ is a mapping between two vector spaces $$f:\mathcal{V}\rightarrow\mathcal{W}$$ that preserves the operations of vector addition and scalar multiplication.
If, $v_,v_2\in\mathcal{V}$ and $a_1, a_2\in\mathbb{R}$, then: $$f(a_1v_1+a_2v_2)=a_1f(v_1)+a_2f(v_2)$$

On the README.md you replaced:

$$
\begin{bmatrix}
0 & -1\\
1 & 0
\end{bmatrix}
$$

$$
B =
\begin{bmatrix}
1 & 1\\
0 & 1
\end{bmatrix}
$$

with:
$$
\begin{bmatrix}
0 & -1\\
1 & 0
\end{bmatrix} \text{and } B =
\begin{bmatrix}
1 & 1\\
0 & 1
\end{bmatrix}
$$

I think what you did is cleaner, but you didn't add it on introduction.md. Is there any reason for that, or you just forgot to add it?

but you didn't add it on introduction.md.

It's not that I didn't update the changes on introduction.md, the changes I made are already there. I changed README.md to match the introduction.md
{math}A = \begin{bmatrix}0 & -1\\1 & 0\end{bmatrix} and {math}B = \begin{bmatrix}1 & 1\\0 & 1\end{bmatrix}

I'd add that $a_1$ and $a_2$ are real values

I avoided the term "real values" as mathematically $a_1$ and $a_2$ are an element of the field of the corresponding vector space. So, these are not necessarily real numbers ( though they are real in the context of this curvipy program). But I will add that $a_1$ and $a_2$ are scalars as I think the term scalar seems more appropriate.

Another thing: I have noticed that some popular authors/publishers use bold letters to differentiate vectors from other mathematical objects, so I will like to follow that convention.

Sure, go ahead!

Hey, @ritamsaha00. Few more things before merging your PR:

It's not that I didn't update the changes on introduction.md, the changes I made are already there. I changed README.md to match the introduction.md
{math}'A = \begin{bmatrix}0 & -1\\1 & 0\end{bmatrix}' and {math}'B = \begin{bmatrix}1 & 1\\0 & 1\end{bmatrix}'

To have the README.md and introduction.md consistent, that equation should be written as:
{math}'A = \begin{bmatrix}0 & -1\\1 & 0\end{bmatrix} \text{and } B = \begin{bmatrix}1 & 1\\0 & 1\end{bmatrix}'
Note: {math}'expression' (with `` instead of '') on introduction.md is equivalent to $expression$ on README.md.

Another thing: I have noticed that some popular authors/publishers use bold letters to differentiate vectors from other mathematical objects, so I will like to follow that convention.

After reviewing your document, I think it's better to write vectors as letter with an arrow on the top, like the $\vec{x}$ shown on Tranformation Matrix section:

Transformation matrix
In linear algebra, linear transformations can be represented by matrices. If $T$ is a linear transformation mapping $\mathbb{R}^n$ to $\mathbb{R}^m$ and $\vec{x}$ is a column vector then

On that note, is there a reason why you put all the equations in inline mode in introduction.md?

Not at all, I'm new to making documentations. I've no problem if you consider that having the equations in inline mode is not the best practice and decide to change it!

Nice work @ritamsaha00, thank you for contributing to curvipy!


Improve the readme for 2016

Preview: https://github.com/artsy/energy/tree/orta-readme_16#readme
Updates with the meta from https://github.com/artsy/eigen/pull/1484

👏


cilium: initial xdp-based nodeport implementation

See commits.
XDP-based NodePort LB handling for BPF-based DSR, SNAT and Hybrid mode.

test-docs-please

test-me-please

test-me-please

test-docs-please

Coverage decreased (-0.01%) to 45.889% when pulling 44a2e20458c7db3f729e459a511b9a38bc6d558e on pr/xdp-nodeport-rev into 5d356866c72c471b041b8df5ee1534c52ed5d770 on master.

(docs green, travis green, 4.19 green in prior run)

test-me-please

test-focus K8sDatapathConfig.*

test-focus K8sDatapathConfig.*

test-focus K8sDatapathConfig.*

test-focus K8sDatapathConfig.*

test-focus K8sDatapathConfig.*

test-focus K8sDatapathConfig.*

test-focus K8sDatapathConfig.*

test-focus K8sDatapathConfig.*

test-focus K8sDatapathConfig.*

test-focus K8sDatapathConfig.*

test-focus K8sDatapathConfig.*

test-focus K8sDatapathConfig.*

test-me-please


squish_df helper

A common need from processing many requests at once is to combine the results into a single data frame. This is done ad hoc in arcgislayers and arcpbf.
arcgislayers uses do.call(rbind.data.frame) which is the slowest approach. arcpbf has adopted a hierarchy of the fastest implementations using collapse, data.table, dplyr, and base R. This should be provided in arcgisutils. It is needed in arcgeocode at the moment as well.
See https://github.com/R-ArcGIS/arcgislayers/pull/167
Also: https://github.com/R-ArcGIS/arcpbf/blob/main/R/post-process.R#L109-L121

This may be a question more relevant to {arcgislayers} than {arcgisutils} but: have you looked at httr2::resps_data()?
I noticed that parse_esri_json() is converting each response to an sf object before they get combined – but if you combine them with vctrs::list_rbind() the sf class is dropped and needs to be applied again with sf::st_as_sf(). If the conversion to sf happens after all of the elements are combined into a single list, that could make it easier to figure out the flow within arc_select().


mux: adding many routes is slow

mux := mux.New(
		l,
		middleware.WithOpts(domain, httpsPort, secretKey, l),
		nil,
		giveMeAlotOfRoutes()...,
	)

This could be because, we do a for-loop here: https://github.com/komuw/ong/blob/43b1e1fdebf08e3b86bc5a2d89b73a1e530f86f2/mux/mux.go#L68  and another inside that; https://github.com/komuw/ong/blob/43b1e1fdebf08e3b86bc5a2d89b73a1e530f86f2/mux/route.go#L145

related; https://github.com/komuw/ong/issues/158

go test \
  -run=XXXX \
  -bench=BenchmarkMuxNew \
  -count=1 \
  -benchmem \
  -cpuprofile cpu.out \
  -memprofile mem.out \
  -trace trace.out \
  github.com/komuw/ong/mux

go tool pprof cpu.out
  top -cum 30
      flat  flat%   sum%        cum   cum%
         0     0%     0%     17.60s 99.10%  github.com/komuw/ong/mux.BenchmarkMuxNew
         0     0%     0%     17.60s 99.10%  github.com/komuw/ong/mux.New
         0     0%     0%     17.60s 99.10%  testing.(*B).run1.func1
         0     0%     0%     17.60s 99.10%  testing.(*B).runN
         0     0%     0%     17.59s 99.04%  github.com/komuw/ong/cry.New
         0     0%     0%     17.59s 99.04%  github.com/komuw/ong/cry.deriveKey (inline)
         0     0%     0%     17.59s 99.04%  github.com/komuw/ong/middleware.All
         0     0%     0%     17.59s 99.04%  github.com/komuw/ong/middleware.Csrf
         0     0%     0%     17.59s 99.04%  github.com/komuw/ong/middleware.allDefaultMiddlewares
         0     0%     0%     17.59s 99.04%  golang.org/x/crypto/scrypt.Key
     0.15s  0.84%  0.84%     17.22s 96.96%  golang.org/x/crypto/scrypt.smix
     0.85s  4.79%  5.63%     15.12s 85.14%  golang.org/x/crypto/scrypt.blockMix
    14.25s 80.24% 85.87%     14.25s 80.24%  golang.org/x/crypto/scrypt.salsaXOR
     1.64s  9.23% 95.10%      1.64s  9.23%  golang.org/x/crypto/scrypt.blockXOR (inline)
         0     0% 95.10%      0.37s  2.08%  runtime.mallocgc

  list allDefaultMiddlewares
    17.59s    107:								Csrf(
  list Csrf
    17.59s     56:	enc := cry.New(secretKey)

So the slow thing is https://github.com/komuw/ong/blob/1daad9711ed5780b746c7e374d49fa9409ad9370/middleware/csrf.go#L56
we need to use sync.Once there.


Add Fennel

Description
Adds the Fennel programming language
Checklist:

[ ] I am associating a language with a new file extension.

[ ] The new extension is used in hundreds of repositories on GitHub.com

Search results for each extension:

https://github.com/search?utf8=✓&type=Code&ref=searchresults&q=extension%3AFOOBAR+KEYWORDS+NOT+nothack

[ ] I have included a real-world usage sample for all extensions added in this PR:

Sample source(s):

[URL to each sample source, if applicable]

Sample license(s):

[ ] I have included a change to the heuristics to distinguish my language from others using the same extension.

[x] I am adding a new language.
I got 21 unique (non-fork) repos in the first 8 pages of the search results. Since there are 100 pages in the results, I think it meets the criteria.

[x] The extension of the new language is used in hundreds of repositories on GitHub.com.

Search results for each extension:

https://github.com/search?q=extension%3Afnl&type=Code&l=&l=

[x] I have included a real-world usage sample for all extensions added in this PR:

Sample source(s):

The fennel repl
Fennel utils

Sample license(s): MIT

[x] I have included a syntax highlighting grammar: https://github-lightshow.herokuapp.com/?utf8=✓&scope=from-url&grammar_format=auto&grammar_url=https%3A%2F%2Fgithub.com%2Fkongeor%2Fvsc-fennel%2Fblob%2Fmaster%2Fsyntaxes%2Ffennel.tmLanguage.json&grammar_text=&code_source=from-url&code_url=https%3A%2F%2Fgithub.com%2Fbakpakin%2FFennel%2Fblob%2Fmain%2Fsrc%2Ffennel%2Futils.fnl&code=
[ ] I have updated the heuristics to distinguish my language from others using the same extension. -> Not applicable, extension is unique

[ ] I am fixing a misclassified language

[ ] I have included a new sample for the misclassified language:

Sample source(s):

[URL to each sample source, if applicable]

Sample license(s):

[ ] I have included a change to the heuristics to distinguish my language from others using the same extension.

[ ] I am changing the source of a syntax highlighting grammar

Old: https://github-lightshow.herokuapp.com/
New: https://github-lightshow.herokuapp.com/

[ ] I am updating a grammar submodule

[ ] I am adding new or changing current functionality

[ ] I have added or updated the tests for the new or changed functionality.

[ ] I am changing the color associated with a language

[ ] I have obtained agreement from the wider language community on this color change.

[URL to public discussion]
[Optional: URL to official branding guidelines for the language]

The colour #fff3d7 is taken from https://fennel-lang.org

cc @technomancy @bakpakin

Usage checks out, just 😉:
Total files found: 2529
Unique public user/repos: 244
Unique owners: 182

Can you approve the tests?

Can you approve the checks?

The first one passed, sorry for merging again

Thanks!

Any idea when this will roll out?

I'm aiming for the week of 19 July.

Thanks

Should this be working by now (after 7.16.00 was released) ?

Not yet, as I'm not deploying to GitHub.com until tomorrow as stated in the release PR: https://github.com/github/linguist/pull/5489

Ah thanks

Now live.

Thanks!


How can I set an API key? Menu item is not displayed

How can I set an API key? Menu item is not displayed:

Same Problem Here. Also no menu item being displayed.

Hello @AndreasHnida @SeiOkami , please update the version, and follow this instructions: https://www.youtube.com/watch?v=yErnyqXobcI

This video makes absolutely no mention of the API key!

Same problem here

I have the same problem. I have been trying to reset the extension since the auto-complete hasn't been working but nothing has been working. Every time I try to set an API, I only get the option to search it, which then prompts the "No API Found" notification.
Is there a way to change API or the reset the extension to be able to auto-complete again?