Iteration Plan for August 2021

This plan captures our work in August. This is a 4-week iteration. We will ship in early September.
Endgame

August 23, 2021: Endgame
August 27, 2021: Endgame done

The endgame details for this iteration are tracked here.
Plan Items
Below is a summary of the top level plan items.
Legend of annotations:

Mark
Description

:runner:
work in progress

:hand:
blocked task

:muscle:
stretch goal for this iteration

:red_circle:
missing issue reference

:large_blue_circle:
more investigation required to remove uncertainty

:black_circle:
under discussion within the team

:black_large_square:
a large work item, larger than one iteration

Accessibility

[ ] Accessibility issues, see query @isidorn team
[ ] :muscle: Improve accessibility of the comments peek view @rebornix vscode#110408

Workbench

[ ] :runner: Polish trusted folder management particularly for managing paths for remote repositories query @sbatten
[ ] :runner: Enable a walkthrough based on the files in the workspace vscode#121778 @jacksonkearl
[x] Restore active getting started walkthrough on window reload vscode#123525 @jacksonkearl
[ ] :runner: Continue user testing on new welcome pages vscode#125117 @digitarald
[ ] :runner: Explore extension content contributions to the welcome page vscode#118402 @digitarald
[ ] :runner: Add support for drag&drop in custom trees vscode#32592 @alexr00
[x] Ensure automated language detection does not run in the UI thread vscode#129607 @tylerleonhardt
[ ] Quick Pick improvements

[ ] :runner: Ensure UI stability when updating QickPick.items vscode#109969 @tylerleonhardt
[ ] Improve matching of numbers/subwords when filtering vscode#130797 @tylerleonhardt
[x] Proposed API for inline actions in QuickPickItems vscode#88716 @tylerleonhardt

[ ] :runner: Explore ways to not pollute editor groups with terminals with other editors vscode#124709 @bpasero @misolori

Web

[ ] Improve iPad support (keyboard/trackpad/mouse and touch) query @isidorn team

UX

[ ] :red_circle: :muscle: Explore how to effectively signal limited language support to users, e.g. in untrusted folders @misolori
[ ] :runner: Explore how to indicated read-only and deleted files open in editors more effectively vscode#130526 @misolori
[ ] :runner: Align in-editor peek views (test, problems, references, etc.) UX vscode#130516 @misolori
[ ] :muscle: Continue exploration of profiles vscode#116740 @misolori @lydiayschung

Code Editor

[x] Provide a high performant support for bracket pair colorization vscode#129231 @hediet
[ ] :runner: Inline Suggestions: Support Interactions with the suggest Widget vscode#129495 @hediet
[x] Publish a new Monaco editor release CHANGELOG @hediet

Notebooks

[x] Enable to create new notebooks from the command line vscode#125028 @bpasero
[ ] :runner: Explore improvements to the end-to-end experience of opening your first Jupyter (Python) notebook vscode#128592 @misolori team
[ ] :runner: Improve discoverability of notebook layout and behavior customizability vscode#128549 @misolori @rebornix @roblourens
[ ] :red_circle: :muscle: Improve discoverability of available/installable output renderers for given mime types @misolori
[ ] :runner: :muscle: Explore ways to show execution progress while the execute cell is out of the viewport vscode#130611 @misolori

Notebook Editor

[x] Improve visual presentation of folded outputs vscode#119776 @rebornix @roblourens
[ ] Support notebook content provider, renderers, and controller extensions in the marketplace vscode#123581 @connor4312 @rebornix
[ ] :runner: Explore keymaps for notebooks @rebornix @joyceerhl vscode#106679
[x] Ensure Replace Text works in notebooks vscode#129781 @rebornix
[ ] Allow extensions to presist controller meta information in ipynb files vscode#130602 @mjbvz
[ ] :runner: Improve rendering jitter in notebooks vscode#126432 @roblourens
[ ] Investigate scroll performance issues in notebooks vscode#126880 @rebornix
[ ] :red_circle: Explore how to avoid unnecessary transformations to satisfy byte-based storage of OutputItem @mjbvz
[ ] Review onNotebook activation usage and behavior vscode#129932 @rebornix @roblourens @DonJayamanne
[ ] Provide recommendations how output renderers can probe the activation state of their extension vscode#130499 @rebornix @DonJayamanne

Jupyter Notebooks

[ ] :runner: Explore debugging in Jupyter notebooks (line-by-line versus full debugging support) vscode#126431 @roblourens @DavidKutu @weinand
[x] Fix Vim keybinding conflicts in builtin Interactive Window and Notebook vscode#130425 @rebornix @joyceerhl
[ ] Contributions to the vscode-jupyter extension vscode-jupyter#7008 team

Languages

[ ] :runner: Add support for a language status indicator vscode#129037 @mjbvz @jrieken @misolori
[ ] :runner: Collaborate on Type Hierarchy API with the Java extension team Java team @jrieken @dbaeumer

LSP /LSIF

None.

JavaScript/TypeScript

[ ] :runner: Adopt and ship TS 4.4 vscode#130601 @mjbvz
[ ] Smart run/debug command for loose TS files vscode#124280 @digitarald

Python

[x] Adopt Testing API vscode-python#15750 @karthiknadig
[ ] :muscle: Deprecate support for Python 2.7 in Jedi vscode-python#11995 @kimadeline
[ ] :runner: Improve python extension start-up time vscode-python#16908 @karthiknadig @karrtikr
[ ] :runner: black_large_square Improve support for untrusted folders (including web) vscode-python#16126 @brettcannon

Debug

[ ] :runner: Improve extension debugging (support clean-setup, address livecycle issues) vscode#126737 vscode#124128 @weinand @isidorn
[ ] :runner: Finalize the disassembly view support with the C++ extension team vscode#124163 @isidorn @weinand C++ team
[x] Improve debug focus management vscode#128132 vscode#122775 vscode#128744 vscode#121898 vscode#113742 @isidorn
[x] Allow to set value of expressions in Watches view vscode#115063 @isidorn
[x] Add "Run To Line" to the Breakpoint Context Menu vscode#123872 @hediet
[ ] :muscle: Explore integration of a memory inspector vscode-js-debug#1008 @connor4312

DAP

None.

js-debug

[ ] :runner: Improve dogfooding stability of js-debug in current electron version vscode#127861 @connor4312 @weinand
[ ] :runner: Support inline value providers for TS/JS TypeScript#43449 @connor4312 @weinand

Testing

[ ] :runner: Provide support for tags vscode#129456 @connor4312
[ ] :runner: Support non-error output for test runs vscode#129201 @connor4312

Terminal

[ ] :runner: Explore xtermjs node target vscode#116113 @Tyriar @meganrogge
[ ] :runner: Support pixel perfect rendering for box drawing and block characters in xtermjs vscode#130406 @meganrogge
[ ] :runner: :muscle: Explore support for fixed-width terminals vscode#74501 @tyriar @meganrogge

Source Control

[ ] :runner: Explore UI additions to help guide users to push to a remote after committing vscode#110882 @eamodio

API

API finalization: query
API proposals: query

Extensions

[ ] Support platform specific extensions vscode#23251 @sandy081
[ ] :red_circle: :runner: Update documentation to explain what it needs to run an extension in the web-worker extension host in the browser @aeschli

Extension Contributions

[ ] Improvements to the Remote extensions vscode-remote-release#5428 @alexr00 @roblourens @chrmarti
[ ] Improvements to the GitHub PRI extension vscode-pull-request-github#2890 @alexr00
[ ] Improvements to the GitHub Repositories extension vscode-remote-repositories-github#48 @eamodio @alexr00
[ ] :runner: Investigate performance improvements of the Bracket Pair Colorizer extension vscode#128465 @hediet

Install

[ ] :runner: Expand the file types that VS Code is registered for on the OS and enable file associations by default vscode#127075 @digitarald @isidorn
[ ] :runner: Explore a meta-installer suitable for the new Windows Store vscode#130410 @sbatten

Engineering

[ ] :muscle: Adopt the new file working copy support for core editors vscode#130383 @bpasero
[ ] :runner: Adopt vscode namespace for npm packages vscode#130301 @connor4312 team
[x] Improve performance of token validation in the GitHub auth provider vscode#130795 @tylerleonhardt
[x] Remove old welcome code vscode#130005 @JacksonKearl
[ ] :runner: Assume ownership of the file explorer vscode#130422 @jacksonkearl @isidorn
[ ] :runner: Assume ownership of the debug UI vscode#130424 @roblourens @isidorn
[ ] Explore impact on running search in the extension host vscode#130532 @roblourens

Builds

[x] Fix rpm package support for RHEL7 vscode#115784 @deepak1556
[ ] :muscle: Assume ownership of remaining translation build items vscode#128995 @tylerleonhardt
[ ] :muscle: Explore to use playwright for our desktop smoke tests vscode#128479 @joaomoreno @bpasero

Electron

[x] Open devtools scoped to a target frame vscode#129437 @rzhao271 @deepak1556
[ ] :runner: Refactor startup code to use electron singleton instance api vscode#97626 @rzhao271 @deepak1556
[ ] :runner: Launch app on macOS via open from the cli vscode#102975 @rzhao271 @deepak1556
[ ] :muscle: Investigate debug crash vscode#122225 @deepak1556
[ ] :muscle: Investigate webview service worker issue on windows when workbench is run as admin vscode#122951 @deepak1556

Node.js-free, sand-boxed renderer

[ ] :runner: Backlog vscode#92164 @bpasero @deepak1556 @rzhao271

Deferred

[ ] Exploration for moving new/recent column from Welcome to Explorer view vscode#127681 @digitarald
[ ] :muscle: Explore improving zero-knowledge onboarding into a well-tuned TS setup (tasks, tests, debugging, etc.) vscode#121345 @jacksonkearl
[ ] Explore APIs for test coverage vscode#123713 @connor4312
[ ] :hand: Fix vscode-encrypt loading in snap builds vscode#116690 @deepak1556

The endgame details for this iteration are tracked here.
here === null

@noahehall the issue should be created on Monday.


feat: add fee abs module

closes: #775

@atheeshp or @vishal-kanna Could you please resolve conflicts preparing the PR for a final review?


[HELP]How do we make the phar or php with the zip download?

I found out , so easy lol
Sorry for making this a issue :'(


test(turborepo): Vercel API Mock Crate

Description
Consolidates the ad-hoc Vercel API mocks that we have in a single crate that spins up a test server. Users are responsible for finding their own open port.
Testing Instructions
Existing link and login tests should cover this

Yeah I'll make it a binary that you can run

Added a binary, so you can run cargo run -p vercel-api-mock and get the mock server. It currently allocates the port itself and prints it to stdout, but I can definitely make it so you can set the port too


fix: A query request was sent for subscriptions after tab change

fixes #2311

Thank you! Can you add a changeset as per the comment?

@acao Done

Thanks! I'll just assume these lockfile changes are necessary? I don't know what's up with that lately


Any audio snippets or NappGUI (wrapper) implementation

Just want to know wheather one has to do in the usual C way to interop with 3rd party audio libraries,or is there a pure NappGUI way to call them like 2D implementation?
Thank you in advance.

Hi @LukyGuyLucky.
No NAppGUI has not native support for audio libraries. You have to link them to your project via CMake or other build system.


Add tests to code.

Initial implementation...no tests currently.  Add tests.

Added tests for subscription_manager module -- #12.  Currently working to finish tests for subscription_transport_ws module. Should be done in a week or two and all primary tests for the repo will be complete.

Just added about half the tests for the subscriptions_transport.py module.  It utilizes nodejs to execute the apollographql/subscriptions-transport-ws server tests using their subscription client (version subscriptions-transport-ws@0.5.4).  Getting all the multiprocess / subprocess stuff took me a bit to get right (new to this), but now that most of the setup is working, shouldn't take long to finish up these tests.  That still means it is currently behind their released version (as of 16 hrs ago) of 0.7.0.

Completed initial test suit for current implementation.  See #13.


Add gas viscosity function for inorganic compounds

Include data file from Yaws' database. Add function to calculate gas viscosity for inorganic compounds using coefficients in the data file.

Added functions mu_gas_inorganic and mu_gas_organic to gas_viscosity module. Still need to do the following:

[ ] write tests
[ ] update documentation

Done.


Path obstacles

Grab-bag of updates to prep for path planning obstacle avoidance

Fix pf_localization NaN error caused by world model distance returning 0 (avoids resulting divide by zero error)
Switch to using pf results for map tf frame Change pf broadcaster from map->baselink to map->odom
Switch to using tf static broadcaster for sim TF glue to better work with costmap2d
Fix base_trajectory costmap params namespace (again)
Add map argument to field launch file
Add test field map with simple obstacle
Fake goal detect - don't publish marker id -1, that's a hack in stage to get odom values rather than an actual vision target

Merge the other PF fix first, then rebase and merge this


Conditional import for server/console only

I want to separate client and server logic into different files using conditional imports.
For clients, such as web and mobile, the implementation should use network calls to fetch data from the API (which serves as the backend).
On the other hand, the server should connect directly to the database without relying on an HTTP call.
The goal is to have the same function signature across all platforms:
extension SomeExtension on SomeClass {
  Future<List<User>> getUsers() {}
}

On mobile or web (or Flutter in general), getUsers should make an HTTP request to the API.
When running in a console application (server-side), getUsers should interact directly with the database.
I've experimented with various dart.library.something configurations but haven’t been able to achieve this functionality.
Is this approach feasible?

just found out how to do it:
export 'stub.dart'
if (dart.library.html) 'a.dart'
if (dart.library.ui) 'a.dart'
if (dart.library.io) 'b.dart';

dart:ui isn't available in console apps, so this works :)
I will leave this open for couple of days if anyone want to comment about the reliability of this approach.


twister: add option to flash before opening serial port

Current implementation performs the following sequence:

Open serial port to listen to board log output
Flash device

In case of ESP32 where it uses the same serial port
for both operations, flashing needs to come first.
This PR adds a twister option name --flash-before
which enables the process above, allowing tests to be
performed properly.
However, there is a caveat in this approach:
As serial port is opened after flashing, it might miss
partial log content, causing the test to failure/timeout.
In case such issue happens, we will need to work this out.
Signed-off-by: Sylvio Alves<EMAIL_ADDRESS>

@sylvioalves Where are we with this? It sure would be nice to be able to run twister on the ESP32 boards 🥇


FAQ link in contact us modal not clicking through

BUG
Current Behavior
When you go to a campaign and click the "Questions? Contact Us" -- the FAQ link in the contact modal doesn't click through to anything (stays on the contact modal).
Desired Behavior
When you click the FAQ link, it should bring the user to the FAQs.
Steps to Replicate

Go to any campaign
Click on "Questions? Contact Us" in the lower right hand corner
Try to click "check our FAQs"

Why This Matters
So the user can get to the FAQs.
Relevant Screenshots + Links

Related issues: #6062

@angaither  Would it be possible to tackle this as soon as possible? It's affecting every campaign, including sponsored campaigns and I imagine, is frustrating for the user. Thanks!
cc @namimody

@ngjo @angaither I think this is actually only broken for closed campaigns

@katiecrane ahhh yeah, you're right! looks like it's working for open ones (https://www.dosomething.org/us/campaigns/supermarket-stakeout)

@ngjo does it make sense to not have a link to FAQs on closed campaigns? I'm guessing even if we could pull them from the previous time, they might change by time it opens again

@katiecrane Would it be possible to link to the domain FAQs https://help.dosomething.org/hc/en-us for closed campaigns?
If the FAQs change, then yeah, we might not want to link to them. If linking to the help center isn't an option, could we just remove the FAQ language from modals on closed campaigns?
cc @namimody -- what do you think?

@ngjo I thiiiiiink that we can do that. We for sure can remove the FAQ language from the modals on closed campaigns though.

I think linking to the help center is a good idea, can we change the language on the modal for closed campaigns though @katiecrane?

@namimody I'm pretty sure we can since I got the FAQ copy to disappear on closed campaigns, so it's just a matter of adding it in.

Great @katiecrane -- how does that sound to you @ngjo? If 💯, want to take a stab at the copy pointing to the Help Center from a closed campaign Contact Us modal?

Works for me!
@namimody Here's some proposed copy -- let me know how I can tweak.
Before submitting your question, be sure to check out our in-depth Help Center to see if it's been answered before!
Before submitting your question, be sure to check out our in-depth Help Center where we provide a tons of answers to frequently asked questions!


Check that DLL plugin is used correctly

Current project reloads are quite long (~30s) perhaps there is nothing we can do about it or we just misused the webpack DLL plugin.
Check how create-react-app uses it.

This could definitely be of some help: https://github.com/asfktz/autodll-webpack-plugin

Implemented autodll


Add Scituate High School

Adding Scituate High School, in Scituate MA.

@ConorDestroyer lib/domains/org/scit/student: this request has an incorrect file path format, please ensure that you are familiar with     this repository rules located at the bottom of this page and change     your request accordingly. If you don't know how to change request, close it and open a new one.     If you are not able to make the pull request according the instructions, please send us an email to<EMAIL_ADDRESS>Please mention this request URL in the message.

@ConorDestroyer First stage of verification passed, official domain for Scituate High School, Scituate MA, USA is student.scit.org as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@ConorDestroyer Thank you for your patience while waiting for a review and processing your request. Pull request merged.
Please start requesting the licenses in about an hour, to let the changes to propagate through our system.


[BEAM-13434] Bump up Apache log4j2 to 2.15.0 due to the vulnerability

The current version(s) of Apache log4j has a vulnerability.

https://www.cyberkendra.com/2021/12/worst-log4j-rce-zeroday-dropped-on.html
https://www.spigotmc.org/threads/spigot-security-releases-—-1-8-8–1-18.537204/

BTW, this is the first contribution of the repository. I don't completely understand the manner of the repo. Please guide me, if there is anything that can get better.
Issue
https://issues.apache.org/jira/browse/BEAM-13434

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Choose reviewer(s) and mention them in a comment (R: @username).
[x] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[x] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

R: @aromanenko-dev

Run Java PreCommit

CC: @echauchot

I'll try to fix failed build and re-run the job

@aromanenko-dev Thank you for supporting.

@echauchot @aromanenko-dev Will you push a new release for this?

@tvalentyn Do you think it will worth and still possible to include this fix into 2.35.0 release?

@tvalentyn Do you think it will worth and still possible to include this fix into 2.35.0 release?

It seems that this change affects only tests. Is this correct? If so, I don't see a need to to CP it into 2.35.0

@tvalentyn Do you think it will worth and still possible to include this fix into 2.35.0 release?

It seems that this change affects only tests. Is this correct? If so, I don't see a need to to CP it into 2.35.0

I agree with @tvalentyn. This seems to be a test only dependency.

Yes, it affects only the tests, but I just wanted to heads up just in case.

Given the severity of this issue, I am revising my position. I think it would good to CP this into 2.35.0. This would make it plenty clear based on beam source code analysis of the repo that 2.35.0 does not use the older log4j versions. And security scanner might catch this and mark this Beam version as impacted even if it is only limited to tests.

I agree with Ahmet

@aaltay Sounds reasonable for me too, I'll raise a question on related dev@ thread.

One thing this doesn't do is force it on transitive deps, which would shake out incompatibilities in libraries that could affect users forcing the dep version.

Cherrypicking this change into 2.35.0: https://github.com/apache/beam/pull/16217/files

Note that test dependencies don't show up in our generated pom.xml files since the pom.xml is based upon our compile/runtime/provided dependencies so our existing pom's should already not contain references to log4j2

Agree with @lukecwik comment, the forced older version is used only for the test/runtime scopes it should not be any issue or difference (save if our gradle build is doing some extra magic).

You folks are the Java experts. I do not know if we ran HCatalog tests or not. I would suggest keeping the jira open to test that, and remove the configurations.testRuntimeClasspath as @iemejia suggested. But not blocking the 2.35.0 release for this.
What are your suggestions?

We do run HCatalog and Elasticsearch tests but I'd prefer not to have a hardcoded version of log4j for these specific tests if it's possible. So, I agree not to block a release for this.

Heads up. It looks like there is a log42j 2.16.0. Could we do the same exact change upgrading to 2.16.0?

+1 2.16.0 removes the feature that produced the RCE totally so definitely an improvement to have.

i am looking into that


As the next step, we may should remove all old notification part from footer and include the new toaster component in layout.

Looking good to me @yanhao-li thanks a lot!
As a next step, the reset password page, which currently use the shared footer, could be setup to have the Twill logo below the form field, like on the login page, but that's more of a branding choice than a feature or bug, so I'm good with merging this now to fix the wrong credentials issue you identified.


Need more configuration when I need highlight code?

I have config like this:
simpleMDE = new SimpleMDE({
                element: document.getElementById('editor'),
                autoDownloadFontAwesome: false,
                spellChecker: false,
                placeholder: '使用Markdown开始编写你的文章...',
                renderingConfig: {
                    codeSyntaxHighlighting: true
                },
                tabSize: 4
            });
console.log(window.hljs); // it is there.

But when I'm editing my content, the code still not parsed highlight style. And I have already include highlight.js. What else should I need to do?
Thanks for your time.

These types of questions are better suited for StackOverflow.

But the document said only need to include highlight.js and set the codeSyntaxHighlighting: true. Dose the document incomplete?

You're going to need to set up a JSFiddle to replicate this error. Otherwise, we don't have enough information to help you.

I finally know that configuration is only working for preview. I though that is working for editing state too. Sorry.

hello, I set the codeSyntaxHighlighting: true and include highlight.js, but the code still not parsed highlight style.Do you know why ?

Like I said: It only work for preview.

I know, i'm work for preview too. finally i find the problem, highlight download from official website maybe some problems, i download a othor one fixed it.

Hey man, does your preview work normally with highlightjs in adding className .hljs to ?

I know, i'm work for preview too. finally i find the problem, highlight download from official website maybe some problems, i download a othor one fixed it.

@kindevil Can you share your solution. I met same the problem. SimpleMDE cannot highlight properly when i use highlightjs


Handle RN breaking changes in 0.40.0

This PR will make at least compilation work in RN 0.4x.x. There were breaking changes introduced in RN 0.40.0. See https://github.com/facebook/react-native/releases/tag/v0.40.0.

thanks @danielsundman!


bookmarklet_launcher.js - TemplateDoesNotExist

In the dashboard.html file which is inside bookmarks/account/templates/account/dashboard.html has the below paragraph:

Drag the following button to your bookmarks toolbar to bookmark images from other websites → Bookmark it

But this bookmarklet_launcher.js file is inside another django app - bookmarks/images/templates/bookmarklet_launcher.js.
When I run my Django app, I get the below error:
TemplateDoesNotExist
django.template.exceptions.TemplateDoesNotExist: bookmarklet_launcher.js

And I understand why this is happening. As how can I refer to a template that is not even in the same application. Plus, this is a .js file and not an html template, yet we have done a include template tag.
I am confused and have no idea, how to move forward.

I have the same problem


Add TypeScript definition file and typings entry to package.json

As well as a blurb in README.md. This should resolve #199

Awesome! Thanks!!

:+1:

@xogeny Thanks for the initial definition layout!!! I couldn't have done this without it.

Do you happen to have a public project that uses react-toolbox with TypeScript that I could use as an example? I'm having trouble with the configuration.

If somebody has one, I think we should share the link in the Readme too!

If I get some time, I might try to incorporate this into my Typescript+React+Vada implementation of TodoMVC.  All UI stuff is represented in this single file.  Of course, I'd gladly accept a pull request for an alternate implementation from somebody else too.

@alltom Please check out the updated definition file that was added in #293
There were some problems (and possibly slight changes on the react-toolbox side) with the previous version, but the new one is merged in and should hopefully fix the issues you were having.


Clean up styling of dev tools test page and work on folder structure

Adds styling to the test page and reworks folder structure in shells/dev:

This is nice but... do the tests still pass? It seems the e2e tests would have to be completely rewritten if this were merged.


fix: adds handlers for auth requests, and failure fallback

Adds Android and iOS overloads for auth handlers, whitelists our deeplink scheme, and adds an extra homeurl param that will auto-redirect the user back to that url should they fail authentication.

Do you have considered it?
https://ionic.io/resources/articles/capacitor-vs-cordova-modern-hybrid-app-development#h-migrating-to-capacitor-is-easy

Migrating to Capacitor is easy


Upgrade the Jackson dependencies to >= 2.9.7

Reported by snyk.io.
Overview
com.fasterxml.jackson.core:jackson-databind contains the general-purpose data-binding functionality and tree-model for Jackson Data Processor.
Affected versions of this package are vulnerable to Deserialization of Untrusted Data.An attacker could perform a Remote Code Execution attacks via the slf4j-ext gadget due to an incomplete fix for the CVE-2017-7525 deserialization flaw.
Note: This vulnerability (CVE-2018-14718) is not identical to CVE-2018-12019, CVE-2018-14720, CVE-2018-14721, CVE-2018-14722, CVE-2018-12023 and CVE-2018-11307.
Details
Serialization is a process of converting an object into a sequence of bytes which can be persisted to a disk or database or can be sent through streams. The reverse process of creating object from sequence of bytes is called deserialization. Serialization is commonly used for communication (sharing objects between multiple hosts) and persistence (store the object state in a file or a database). It is an integral part of popular protocols like Remote Method Invocation (RMI), Java Management Extension (JMX), Java Messaging System (JMS), Action Message Format (AMF), Java Server Faces (JSF) ViewState, etc.
Deserialization of untrusted data (CWE-502), is when the application deserializes untrusted data without sufficiently verifying that the resulting data will be valid, letting the attacker to control the state or the flow of the execution.
Java deserialization issues have been known for years. However, interest in the issue intensified greatly in 2015, when classes that could be abused to achieve remote code execution were found in a popular library (Apache Commons Collection). These classes were used in zero-days affecting IBM WebSphere, Oracle WebLogic and many other products.
An attacker just needs to identify a piece of software that has both a vulnerable class on its path, and performs deserialization on untrusted data. Then all they need to do is send the payload into the deserializer, getting the command executed.

Developers put too much trust in Java Object Serialization. Some even de-serialize objects pre-authentication. When deserializing an Object in Java you typically cast it to an expected type, and therefore Java's strict type system will ensure you only get valid object trees. Unfortunately, by the time the type checking happens, platform code has already created and executed significant logic. So, before the final type is checked a lot of code is executed from the readObject() methods of various objects, all of which is out of the developer's control. By combining the readObject() methods of various classes which are available on the classpath of the vulnerable application an attacker can execute functions (including calling Runtime.exec() to execute local OS commands).

Apache Blog
The vulnerability, also know as Mad Gadget

Mad Gadget is one of the most pernicious vulnerabilities we’ve seen. By merely existing on the Java classpath, seven “gadget” classes in Apache Commons Collections (versions 3.0, 3.1, 3.2, 3.2.1, and 4.0) make object deserialization for the entire JVM process Turing complete with an exec function. Since many business applications use object deserialization to send messages across the network, it would be like hiring a bank teller who was trained to hand over all the money in the vault if asked to do so politely, and then entrusting that teller with the key. The only thing that would keep a bank safe in such a circumstance is that most people wouldn’t consider asking such a question.

Google

Remediation
Upgrade com.fasterxml.jackson.core:jackson-databind to version 2.9.7 or higher.
References

GitHub Commit
Github Issue

I would like to contribute here. I've been working on software development for 10 years but I'm new in the Open Souce community. I would appreciate if you could help with a few more details.
Thanks in advance.

Hi @giovannottix !
I'm afraind @bamarch has already taken this task and submitted #943!
Please, feel free to pick another task! Also, you can join our chat where we hang out and discuss tasks. :)

Hi @carlspring
I'll be looking forward to any other issue in which I can contribute.

@giovannottix ,
If you're looking for tasks you can help with, please message me on our chat channel and we'll come up with something! :)


Audio quality

Hi,
I feel a huge difference in audio quality using this app according to what I can hear using the cast from the google chrome .
Is there away to check what is send through your app (qualily) ?
Best regards

I agree, the audio quality is just way too low. Bass is more or less non existent. I appreciate the effort though, the app is a great idea if it gets implemented correctly.

@Juke34 @johnboyleboy
Hey! I am happy to say that I had the same problem but solved it!
If you have different sound devices installed on your system, try switching to another default device (close the application and restart it before changing).
On my system, the default "speakers" Realtek High Definition Audio, was  hardly outputting any bass, but my "Digital Output" Realtek High Definition Audio (which normally has no sound output on my system) gave me the real deal.
Hope this works!

@SaTiaN So you're suggesting sacrificing my laptop speakers for only when I have the chromecast available? I don't want to have to enable/disable my default audio driver in order to use my chromecast.

@johnboyleboy
hehe no.  On windows it's quite simple to change which device you want to be default:
Right click on the sound icon in the system tray, select "playback devices", select the preferred audio output device and click "set default".   Just change this around whenever you aren't using the chromecast or whatever...

I can't find the "Realtek Digital Output" option....
Operating : Win 7
I have ticked the " Show Disabled Devices" but I only see the "speakers"


add metrics to time the compare algorithm

Signed-off-by: Will Kutler<EMAIL_ADDRESS>https://github.com/stolostron/backlog/issues/25356

/hold for testing on cluster

/unhold
metric is working properly

/cc @mprahl


Fixed camera rotation with Oculus DK2

I haven't DK1 so I can't test it with them, maybe David Rousset interchange x with z on porpose.

Not a big deal..we do not plan to support dk1 :) thanks a lot!

Ops!, seems like Travis CI failed...

Seems like a Travis error or npm downtime. No worries, all good! :thumbsup:


Pixel offset/shift when using scaling?

I made a python script for resizing images (using pillow) then scaling them back again using waifu2x-caffe. I noticed when looping this (resize, waifu2x, resize, waifu2x and so on) that the more iterations there were the more the image would shift diagonally. It seems a bit weird, is this supposed to happen?
Gifs here: https://imgur.com/a/C101TAI

I've noticed the same behaviour with NGU-AA upscaling algorithm so I presume that it's because of neural-net is trying their best to perform anti-aliasing by detecting and adjusting the edges. Often when scaled back the difference is about ~1px so I suppose it's not a big issue.

It is also related to the implementation of the resizing algorithm used.
waifu2x is trained with GraphcisMagick(fork of ImageMagick).
As far as I remember, IrfanView's lanczos filter is shifted by 0.5px compared to ImageMagick's lanczos filter.


Correct ltfs_check_medium handling of partitions ending in data+fm

Alter ltfs_check_medium to do a more thorough detection of the state of
the partitions after the detected indices and set the eod/append
position appropriately if the partition ends in data + filemark
Fixes #272

Sorry for my slow response. We have serial holidays in Japan.
Could you consider my comments?

I think I've addressed your comments, please check the revised code and let me know what you think.
Thanks!

Thanks, it looks great to me.

Excellent! Thank you for accepting my PR!


Contributing: do not require messing with hosts file

<IP_ADDRESS> app.dev.hatchet-tools.com

We can just set this as an actual DNS entry I think

Sure, done:
nslookup app.dev.hatchet-tools.com
Non-authoritative answer:
Name:   app.dev.hatchet-tools.com
Address: <IP_ADDRESS>

Took a quick look at any security issues this may cause, only one that seemed relevant is same-site scripting but this seems like it involves domain spoofing and only seems relevant if someone is able to run a webserver on your network.


"Unhandled exception" if unlock XY and set one to 1, keep the other at 0 and apply.

Hi,
so as the title says, if i set X to 1 and Y to 0 and apply i get the following error:

The annoying part is that if i press "Quit", the settings stay saved and it just reappears upon reopening the app.
I tried deleting the settings.json file, thinking it would revert to stock settings - it doesn't. I assume it reads it from the driver if the settings file is missing or something and recreates the file with same invalid settings.
Solution 1 was to replace the settings file with a working one, if one happens to have it, which i did not at first.
Solution 2 was, upon encountering the error, to

click "Continue" and
NOT move the mouse ( as it turns out, the error is triggered by mouse movement )
Tab to the X or Y with the value 0, change it to 1 for example,
Tab to "Apply" button and select it with Space
which made it work again.

Not a huge deal, but something you may want to look into for a more graceful error handle in future versions.
Sry for the wall of text :)
Error details:
************** Exception Text **************
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at grapher.Models.Calculations.AccelChartData.GetVelocityIndex(Double outVelocityValue)
at grapher.Models.Calculations.AccelData.CalculateDotsCombinedDiffSens(Int32 x, Int32 y, Double timeInMs, DriverSettings settings)
at grapher.Models.Charts.ChartState.XYOneGraphState.MakeDots(Int32 x, Int32 y, Double timeInMs)
at grapher.Models.Mouse.MouseWatcher.OnMouseMove(Int32 x, Int32 y, Double timeInMs)
at grapher.Models.Mouse.MouseWatcher.ReadMouseMove(Message message)
at grapher.RawAcceleration.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Yeah the gui creates a file from the active config, which can be useful sometimes. It's not so useful in this case though, I'll make sure this is patched in the next release. Thanks!

Fixed in v1.4

Fixed in v1.4


Remove URL

@ArduinoBot

When I added my library there were some warnings about defendants and it causes some confusion when installing the library via Library manager.
I could not determine how to make changes so I attempted to remove the library from the registry (thinking I could re-add with the current properties).
Now I seem to be stuck with a fork that can’t be completed or undone and no way to create another form.
Can you help?
PS:  I’m not even slightly competent with GIT :-(

On Apr 5, 2023, at 8:14 AM, github-actions[bot] @.***> wrote:
Hi @tony-bringardner https://github.com/tony-bringardner.
Your pull request has been detected as something other than a Library Manager submission.
A maintainer will need to review it before it can be merged.
If you intended to submit a library, please check the instructions and update your pull request if necessary:
https://github.com/arduino/library-registry/blob/main/README.md#instructions
—
Reply to this email directly, view it on GitHub https://github.com/arduino/library-registry/pull/2652#issuecomment-1497389032, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGFASHRWKWCYOOZ6ABRWIFDW7VO4BANCNFSM6AAAAAAWT7W7RE.
You are receiving this because you were mentioned.

Hi @tony-bringardner

I could not determine how to make changes so I attempted to remove the library from the registry (thinking I could re-add with the current properties).

You distribute changes to the users by making new releases of the library.
After the initial addition of the library, the indexer job periodically checks each of the libraries in the index and picks up any new release/tag that meets the requirements listed here:
https://github.com/arduino/library-registry/blob/main/FAQ.md#what-are-the-requirements-for-publishing-new-releases-of-libraries-already-in-the-library-manager-list
This means there is no need to take any additional action to add new releases of your library to Library Manager. They will be added automagically!
The automated system here only operates on open pull requests. Since your submission was already accepted and the pull request merged, the bot completely ignores this pull request thread.
It does take a little time for the indexer job to run, and then some additional time after that for the update to propagate through the CDN and the local cache. But it will get there. We give a conservative estimate of availability within one day's time.
You can monitor the indexing of the library releases by checking the library's dedicated indexer logs web page:
https://downloads.arduino.cc/libraries/logs/github.com/tony-bringardner/NetworkMonitor/
Since there is no need to remove the library, I'll close this pull request. I'll continue to monitor the thread, so feel free to comment here if you have any questions or concerns.
Per


Add logs informing about started services

Motivation
This adds logs to the node that print during startup which services are listening on which address
Description
Just added logs to give more information to users/operators of nodes.
Test Plan

n/a

TODO

[x] Explain motivation or link existing issue(s)
[x] Test changes and document test plan
[x] Update documentation as needed
[x] Update changelog as needed

bors merge

bors merge


curl timeout exceeds check timeout causing unknown errors instead of critical failures

existing scripts fail with "UNKNOWN" errors because script timeouts are normally shorter than default LWP timeout. this is a problem because instead of being down/failed, service shows up as UNKNOWN which is a soft state not picked up by some monitoring platforms
this happens with or without SSL, it's simply the LWP curl timeout
[user@somehost]$ ./check_elasticsearch_cluster_disk_balance.pl -H <IP_ADDRESS> -S --ssl-noverify -u someuser -p somepassword -t 2
UNKNOWN: self timed out after 2 seconds

this can be fixed for each specific check type by making sure LWP timeout is set to be less than global script timeout, so that curl is allowed to time out and the error code is handled properly. this can also be set in the global curl function by also applying global timeout to LWP timeout
Expected behaviour should be:
[user@somehost]$ ./check_elasticsearch_cluster_disk_balance.pl -H <IP_ADDRESS> -S --ssl-noverify -u someuser -p  somepassword -t 2
CRITICAL: 500 Can't connect to <IP_ADDRESS>:9200 (timeout)

default lwp timeout from Dumper($ua):
$VAR1 = bless( {
                 'max_redirect' => 7,
                 'ssl_opts' => {
                                 'verify_hostname' => 1
                               },
                 'protocols_forbidden' => undef,
                 'show_progress' => undef,
                 'handlers' => {
                                 'response_header' => bless( [
                                                               {
                                                                 'owner' => 'LWP::UserAgent::parse_head',
                                                                 'callback' => sub { "DUMMY" },
                                                                 'm_media_type' => 'html',
                                                                 'line' => '/usr/share/perl5/vendor_perl/LWP/UserAgent.pm:683'
                                                               }
                                                             ], 'HTTP::Config' )
                               },
                 'no_proxy' => [],
                 'protocols_allowed' => undef,
                 'local_address' => undef,
                 'use_eval' => 1,
                 'requests_redirectable' => [
                                              'GET',
                                              'HEAD'
                                            ],
                 'timeout' => 180,
                 'def_headers' => bless( {
                                           'user-agent' => 'Hari Sekhon check_elasticsearch_cluster_disk_balance.pl version 0.2.1'
                                         }, 'HTTP::Headers' ),
                 'proxy' => {},
                 'max_size' => undef
               }, 'LWP::UserAgent' );

since lwp timeout is 180 and default script timeout is 10 seconds, script will always throw unknown instead of timeout error

Thanks for raising and for the fix, it's merged now.


[BUG] ServiceBusReceiverClient  stops consuming messages after some time though messages are present in subscription.

Describe the bug
We are using ServiceBusReceiverClient as receiver but we have observed that though the services were running and messages were present in subscription it has stopped consuming the messages .
Exception or Stack Trace

2022-01-06` 15:14:25,169 ERROR [reactor-executor-4(109288)] {} com.azure.core.amqp.implementation.RequestResponseChannel - connectionId[MF_7b61df_1641477262829] linkName[cbs] Error in SendLinkHandler. Disposing unconfirmed sends.
The connection was inactive for more than the allowed 300000 milliseconds and is closed by container 'LinkTracker'. TrackingId:7381d0b956d84c6d8cd4016b7ecefec0_G1, SystemTracker:gateway5, Timestamp:2022-01-06T15:14:25, errorContext[NAMESPACE: ################.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $cbs, REFERENCE_ID: cbs:sender, LINK_CREDIT: 96] com.azure.core.amqp.exception.AmqpException: The connection was inactive for more than the allowed 300000 milliseconds and is closed by container 'LinkTracker'. TrackingId:7381d0b956d84c6d8cd4016b7ecefec0_G1, SystemTracker:gateway5, Timestamp:2022-01-06T15:14:25, errorContext[NAMESPACE: ################.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $cbs, REFERENCE_ID: cbs:sender, LINK_CREDIT: 96]
at com.azure.core.amqp.implementation.ExceptionUtil.toException(ExceptionUtil.java:85)
at com.azure.core.amqp.implementation.handler.LinkHandler.handleRemoteLinkClosed(LinkHandler.java:110)
at com.azure.core.amqp.implementation.handler.LinkHandler.onLinkRemoteClose(LinkHandler.java:61)
at com.azure.core.amqp.implementation.handler.SendLinkHandler.onLinkRemoteClose(SendLinkHandler.java:29)
at org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:176)
at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108)
at org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:324)
at org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:291)
at com.azure.core.amqp.implementation.ReactorExecutor.run(ReactorExecutor.java:92)
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68)
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
2022-01-06 15:14:25,196 DEBUG [reactor-executor-4(109288)] {} com.azure.core.amqp.implementation.RequestResponseChannel - connectionId[MF_7b61df_1641477262829] linkName[cbs] Closing request/response channel.
2022-01-06 15:14:25,196 DEBUG [reactor-executor-4(109288)] {} com.azure.core.amqp.implementation.RequestResponseChannel - connectionId[MF_7b61df_1641477262829] linkName[cbs] Closing request/response channel.
2022-01-06 15:14:25,220 INFO [reactor-executor-4(109288)] {} com.azure.core.amqp.implementation.RequestResponseChannel:$cbs - namespace[MF_7b61df_1641477262829] entityPath[$cbs]: Retry #1. Transient error occurred. Retrying after 4964 ms. com.azure.core.amqp.exception.AmqpException: The connection was inactive for more than the allowed 300000 milliseconds and is closed by container 'LinkTracker'. TrackingId:7381d0b956d84c6d8cd4016b7ecefec0_G1, SystemTracker:gateway5, Timestamp:2022-01-06T15:14:25, errorContext[NAMESPACE: ################.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $cbs, REFERENCE_ID: cbs:sender, LINK_CREDIT: 96]
2022-01-06 15:14:25,221 DEBUG [reactor-executor-4(109288)] {} com.azure.core.amqp.implementation.RequestResponseChannel - connectionId[MF_7b61df_1641477262829] linkName[cbs] terminating 0 unconfirmed sends (reason: The connection was inactive for more than the allowed 300000 milliseconds and is closed by container 'LinkTracker'. TrackingId:7381d0b956d84c6d8cd4016b7ecefec0_G1, SystemTracker:gateway5, Timestamp:2022-01-06T15:14:25, errorContext[NAMESPACE: ################.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $cbs, REFERENCE_ID: cbs:sender, LINK_CREDIT: 96]).
2022-01-06 15:14:25,221 DEBUG [reactor-executor-4(109288)] {} com.azure.core.amqp.implementation.RequestResponseChannel - connectionId[MF_7b61df_1641477262829] linkName[cbs] terminating 0 unconfirmed sends (reason: The connection was inactive for more than the allowed 300000 milliseconds and is closed by container 'LinkTracker'. TrackingId:7381d0b956d84c6d8cd4016b7ecefec0_G1, SystemTracker:gateway5, Timestamp:2022-01-06T15:14:25, errorContext[NAMESPACE: ################.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $cbs, REFERENCE_ID: cbs:sender, LINK_CREDIT: 96]).
2022-01-06 15:14:25,221 DEBUG [reactor-executor-4(109288)] {} com.azure.core.amqp.implementation.RequestResponseChannel - connectionId[MF_7b61df_1641477262829] linkName[cbs] completed the termination of 0 unconfirmed sends (reason: The connection was inactive for more than the allowed 300000 milliseconds and is closed by container 'LinkTracker'. TrackingId:7381d0b956d84c6d8cd4016b7ecefec0_G1, SystemTracker:gateway5, Timestamp:2022-01-06T15:14:25, errorContext[NAMESPACE: ################.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $cbs, REFERENCE_ID: cbs:sender, LINK_CREDIT: 96]).
2022-01-06 15:14:25,221 DEBUG [reactor-executor-4(109288)] {} com.azure.core.amqp.implementation.RequestResponseChannel - connectionId[MF_7b61df_1641477262829] linkName[cbs] completed the termination of 0 unconfirmed sends (reason: The connection was inactive for more than the allowed 300000 milliseconds and is closed by container 'LinkTracker'. TrackingId:7381d0b956d84c6d8cd4016b7ecefec0_G1, SystemTracker:gateway5, Timestamp:2022-01-06T15:14:25, errorContext[NAMESPACE: ################.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $cbs, REFERENCE_ID: cbs:sender, LINK_CREDIT: 96]).
2022-01-06 15:14:25,221 DEBUG [reactor-executor-4(109288)] {} com.azure.core.amqp.implementation.RequestResponseChannel - connectionId[MF_7b61df_1641477262829] linkName[cbs] Channel already closed.
2022-01-06 15:14:25,221 DEBUG [reactor-executor-4(109288)] {} com.azure.core.amqp.implementation.RequestResponseChannel - connectionId[MF_7b61df_1641477262829] linkName[cbs] Channel already closed.
2022-01-06 15:14:25,222 DEBUG [reactor-executor-4(109288)] {} com.azure.core.amqp.implementation.RequestResponseChannel - connectionId[MF_7b61df_1641477262829] linkName[cbs] SendLinkHandler disposed. Remaining: 1
2022-01-06 15:14:25,222 DEBUG [reactor-executor-4(109288)] {} com.azure.core.amqp.implementation.RequestResponseChannel - connectionId[MF_7b61df_1641477262829] linkName[cbs] SendLinkHandler disposed. Remaining: 1
2022-01-06 15:14:25,224 INFO [reactor-executor-4(109288)] {} com.azure.core.amqp.implementation.handler.ReceiveLinkHandler - onLinkRemoteClose connectionId[MF_7b61df_1641477262829] linkName[cbs:receiver], errorCondition[amqp:connection:forced] errorDescription[The connection was inactive for more than the allowed 300000 milliseconds and is closed by container 'LinkTracker'. TrackingId:7381d0b956d84c6d8cd4016b7ecefec0_G1, SystemTracker:gateway5, Timestamp:2022-01-06T15:14:25]
2022-01-06 15:14:25,224 INFO [reactor-executor-4(109288)] {} com.azure.core.amqp.implementation.handler.ReceiveLinkHandler - onLinkRemoteClose connectionId[MF_7b61df_1641477262829] linkName[cbs:receiver], errorCondition[amqp:connection:forced] errorDescription[The connection was inactive for more than the allowed 300000 milliseconds and is closed by container 'LinkTracker'. TrackingId:7381d0b956d84c6d8cd4016b7ecefec0_G1, SystemTracker:gateway5, Timestamp:2022-01-06T15:14:25]
2022-01-06 15:14:25,224 INFO [reactor-executor-4(109288)] {} com.azure.core.amqp.implementation.handler.ReceiveLinkHandler - connectionId[MF_7b61df_1641477262829] linkName[cbs:receiver] state[ACTIVE] Local link state is not closed.
2022-01-06 15:14:25,224 INFO [reactor-executor-4(109288)] {} com.azure.core.amqp.implementation.handler.ReceiveLinkHandler - connectionId[MF_7b61df_1641477262829] linkName[cbs:receiver] state[ACTIVE] Local link state is not closed.
2022-01-06 15:14:25,224 DEBUG [reactor-executor-4(109288)] {} com.azure.core.amqp.implementation.RequestResponseChannel - connectionId[MF_7b61df_1641477262829] linkName[cbs] ReceiveLinkHandler disposed. Remaining: 0

To Reproduce
This issue is coming randomly.
Expected behavior
ServiceBusReceiverClient  should consume the messages available in subscription.
Setup (please complete the following information):

OS: Linux
IDE: IntelliJ
Library/Libraries: com.azure:azure-messaging-servicebus-7.5.1.jar
Java version: Java 8

Additional context
Similar to issue https://github.com/Azure/azure-sdk-for-java/issues/26138
Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

[x] Bug Description Added
[x] Repro Steps Added
[x] Setup information Added

We have experienced the exact same issue but we are using the spring cloud stream binder. From our analysis the issue occurs when we receive a non retriable amqp exception. Which we have been able to correlate with internal server errors on the servicebus, last time this occurred there was a server downtime of over 1 hour on azure side. The disconnect happens across all applications and pods at the exact same time when these errors occurs.
Currently we are trying to setup a health check towards the binder in order to restart the pods when this occurs as a temporary workaround while the issue persists. From what we can see there is no adequate way of attaching our own logic to the health check. The ServiceBusQueueHealthIndicator that was added in recent release only verifies that the binder managed to connect once and returns "UP" status even though we lose connection to the servicebus.
Is there any way of overriding this healthIndicator class to create a more elaborate healthcheck?

@anuchandy @ki1729 can you please follow up?

Hello @nomisRev, underneath the ServiceBusReceiverAsyncClient also designed to recover from endpoint (connection, session, link) closure. If for some reason, ServiceBusReceiverAsyncClient object cannot recover, then it is designed to notify the application-subscriber about termination (by calling onComplete or onError). I assume in your case, the application-subscriber is not receiving one of these terminal notifications - Right? Do you happen to have the logging enabled?

If logs are available, could you share those?
If not, would you enable the VERBOSE|DEBUG log and share the logs when this happens next time? I would like to understand what caused the receiver to stop, and fix it

The logging instruction is here: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/eventhubs/azure-messaging-eventhubs/docs/troubleshooting.md

Hey @anuchandy,

underneath the ServiceBusReceiverAsyncClient also designed to recover from endpoint (connection, session, link) closure.

Could you point me to this code? I could not find it in the SDK, and as I mentioned in the comment above porting the fix from ProcessorClient seems to have solve the issue.

If for some reason, ServiceBusReceiverAsyncClient object cannot recover, then it is designed to notify the application-subscriber about termination (by calling onComplete or onError). I assume in your case, the application-subscriber is not receiving one of these terminal notifications - Right?

At no point an error is being received in onError as far as we do not see it coming up in the logs, and I'm curious to know in what case onComplete would be called for receiveMessages which should run indefinitely (right?).
The onComplete case might not be handled correctly in this case, since when we detect onComplete I guess we should manually restart the receiver since we want to receiving of messages to never stop.

Do you happen to have the logging enabled?

We do have logging enabled. Both custom logging, and Azure AppInsights but comparing to the other issues that reported this issue we cannot find any additional logging that points in the direction of any other issues. I will check again next week, and share logs here.

Hi @nomisRev,
Can you please share with code snippet where you check the ServiceBusConnectionProcessor of the ServiceBusReceiverAsyncClient and close/recreate the ServiceBusReceiverAsyncClient when the channel is closed?
We are facing the same issue. After some time ServiceBusReceiverAsyncClient stops receiving messages.

Hey @maksatbolatov,
Of course. I have the code written in Kotlin with some custom things, but here is a translation of the code to Project Reactor in Java. if you have any questions I'd be happy to help :)
import com.azure.messaging.servicebus.ServiceBusReceivedMessage;
import com.azure.messaging.servicebus.ServiceBusReceiverAsyncClient;
import com.azure.messaging.servicebus.implementation.ServiceBusConnectionProcessor;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

import java.lang.reflect.Field;
import java.time.Duration;

class WorkAround {
    public static Flux<ServiceBusReceivedMessage> receiveMessagesForever(ServiceBusReceiverAsyncClient client) {
        return client.receiveMessages()
            .takeUntilOther(connectionClosed(client))
            .concatWith(receiveMessagesForever(client));
    }

    public static Mono<ServiceBusConnectionProcessor> conn(ServiceBusReceiverAsyncClient client) {
        return Mono.fromCallable(() -> {
            Field field = client.getClass().getDeclaredField("connectionProcessor");
            field.setAccessible(true);
            return (ServiceBusConnectionProcessor) field.get(client);
        });
    }

    public static Mono<Void> connectionClosed(ServiceBusReceiverAsyncClient client) {
        return conn(client).flatMap((connection) ->
            Flux.interval(Duration.ofSeconds(30))
                .map((ignored) -> connection.isChannelClosed())
                .takeUntil((isChannelClosed) -> !isChannelClosed)
                .then()
        );
    }
}

Hi @mseiler90, thank you for sharing the observations. I will take a look to understand what is happening when we disable queue.
Could you take a look at these recommendations - https://github.com/Azure/azure-sdk-for-java/issues/28573#issuecomment-1126374100 and https://github.com/Azure/azure-sdk-for-java/issues/28573#issuecomment-1137736446.
I will be moving these recommendations to Java doc.

Hi @mseiler9 thanks for the response.
The ServiceBusReceiverAsyncClient (Aka LowLevelClient) indeed performs connection recoveries underneath so that the Flux (aka receive-flux) from receiveMessages() can transparently notify messages to the application (subscriber).
The cases where receive-flux notify a terminal error (hence no longer emit messages) to the application (subscriber) are -

When the connection encounters a non-retriable error.
Or a series of connection recovery attempts fail in a row which exhausts the max-retry.

A few examples of non-retriable errors are - the app attempting to connect to a queue that does not exist, someone deleting the queue in the middle of receiving, the user explicitly initiating Geo-DR, user disabling the queue (yes the test you did :)). These are certain events where Service Bus service communicates to the SDK that a non-retriable error occurred.
An example of locally initiated non-retriable errors is SDK threads receiving interrupted exceptions from outside the application.

"It's By design" that receive-flux (of LowLevelClient) emits such non-retriable error to the application to take appropriate action (most of the time application logs it for auditing and recreates the client).

On the other hand, "It's a bug" that if receive-flux (of LowLevelClient) hangs without ever emitting any event (message events, terminal error, or completion event).

I've created a custom class ServiceBusIndefiniteRetryReceiverAsyncClient for reference showing the normal application pattern dealing with non-retriable errors when using LowLevelClient -
import com.azure.core.util.logging.ClientLogger;
import com.azure.messaging.servicebus.ServiceBusClientBuilder;
import com.azure.messaging.servicebus.ServiceBusReceivedMessage;
import com.azure.messaging.servicebus.ServiceBusReceiverAsyncClient;
import com.azure.messaging.servicebus.models.ServiceBusReceiveMode;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import reactor.util.retry.Retry;

import java.time.Duration;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;

public final class ServiceBusIndefiniteRetryReceiverAsyncClient implements AutoCloseable {
    private static final ClientLogger LOGGER = new ClientLogger(ServiceBusIndefiniteRetryReceiverAsyncClient.class);
    // On rare cases when Retry exhausts or a non-retryable error occurs back-off for 4 sec matching
    // default server busy time.
    private static final Duration RETRY_WAIT_TIME = Duration.ofSeconds(4);

    private final String connectionString;
    private final String queueName;
    private final AtomicReference<ServiceBusReceiverAsyncClient> currentLowLevelClient = new AtomicReference<>();
    private final AtomicBoolean isClosed = new AtomicBoolean(false);
    private final AtomicBoolean isInitial = new AtomicBoolean(true);

    public ServiceBusIndefiniteRetryReceiverAsyncClient(String connectionString,
                                                        String queueName) {
        this.connectionString = connectionString;
        this.queueName = queueName;
        this.currentLowLevelClient.set(createLowLevelClient());
    }

    public Flux<ServiceBusReceivedMessage> receiveMessages() {
        return Flux.using(
                () -> {
                    if (isClosed.get()) {
                        throw new IllegalStateException("Cannot perform receive on the closed client.");
                    }
                    if (!isInitial.getAndSet(false)) {
                        LOGGER.verbose("Creating a new LowLevelClient");
                        currentLowLevelClient.set(createLowLevelClient());
                    }
                    return currentLowLevelClient.get();
                },
                client ->  {
                    return client.receiveMessages();
                },
                client -> {
                    LOGGER.verbose("Disposing current LowLevelClient");
                    client.close();
                })
            .retryWhen(
                Retry.fixedDelay(Long.MAX_VALUE, RETRY_WAIT_TIME)
                    .filter(throwable -> {
                        if (isClosed.get()) {
                            return false;
                        }
                        LOGGER.warning("Current LowLevelClient's retry exhausted or a non-retryable error occurred.",
                            throwable);
                        return true;
                    }));
    }

    public Mono<Void> complete(ServiceBusReceivedMessage message) {
        final ServiceBusReceiverAsyncClient lowLevelClient = currentLowLevelClient.get();
        return lowLevelClient.complete(message);

    }

    public Mono<Void> abandon(ServiceBusReceivedMessage message) {
        final ServiceBusReceiverAsyncClient lowLevelClient = currentLowLevelClient.get();
        return lowLevelClient.abandon(message);
    }

    public Mono<Void> deadLetter(ServiceBusReceivedMessage message) {
        final ServiceBusReceiverAsyncClient lowLevelClient = currentLowLevelClient.get();
        return lowLevelClient.deadLetter(message);
    }

    @Override
    public void close() throws Exception {
        if (!isClosed.getAndSet(true)) {
            this.currentLowLevelClient.get().close();
        }
    }

    private ServiceBusReceiverAsyncClient createLowLevelClient() {
        return new ServiceBusClientBuilder()
            .connectionString(connectionString)
            .receiver()
            .receiveMode(ServiceBusReceiveMode.PEEK_LOCK)
            .queueName(queueName)
            .disableAutoComplete()
            .maxAutoLockRenewDuration(Duration.ZERO)
            .prefetchCount(0)
            .buildAsyncClient();
    }
}

One last case where receive-flux terminates (hence no longer emits messages) is if the application throws an error from within the SDK callback. You should try-catch and log any application exception rather than bubbling it to the SDK. For e.g. it means, app will need to handle any exception coming from complete/abandon calls as well. Here is an example, showing how to use the above class along with handling exception -
import com.azure.core.util.logging.ClientLogger;
import com.azure.messaging.servicebus.ServiceBusReceivedMessage;
import org.reactivestreams.Publisher;
import reactor.core.publisher.Mono;

import java.util.concurrent.TimeUnit;
import java.util.function.Function;

public final class MessageConsumeExample {
    private static final ClientLogger LOGGER = new ClientLogger(MessageConsumeExample.class);

    private final ServiceBusIndefiniteRetryReceiverAsyncClient client;

    public MessageConsumeExample() {
        String connectionString = System.getenv("CON_STR");
        String queueName = System.getenv("Q_NAME");
        client = new ServiceBusIndefiniteRetryReceiverAsyncClient(connectionString, queueName);
    }

    public void handleMessages() {
        client.receiveMessages()
            .flatMapSequential(new Function<ServiceBusReceivedMessage, Publisher<State>>() {
                @Override
                public Publisher<State> apply(ServiceBusReceivedMessage message) {
                    return handleMessage(message)
                        .onErrorResume(new Function<Throwable, Mono<State>>() {
                            @Override
                            public Mono<State> apply(Throwable businessError) {
                                try {
                                    client.abandon(message).block();
                                    return Mono.just(State.MESSAGE_ABANDONED);
                                } catch (Throwable abandonError) {
                                    LOGGER.warning("Couldn't abandon message {}", message.getMessageId(), abandonError);
                                    return Mono.just(State.MESSAGE_ABANDON_FAILED);
                                }
                            }
                        })
                        .flatMap(state -> {
                            if (state == State.HANDLING_SUCCEEDED) {
                                try {
                                    client.complete(message).block();
                                    return Mono.just(State.MESSAGE_COMPLETED);
                                } catch (Throwable completionError) {
                                    LOGGER.warning("Couldn't complete message {}", message.getMessageId(), completionError);
                                    return Mono.just(State.MESSAGE_COMPLETION_FAILED);
                                }
                            } else {
                                return Mono.just(state);
                            }
                        });
                }
            }, 1, 1)
            .then()
            .subscribe();
    }

    private Mono<State> handleMessage(ServiceBusReceivedMessage message) {
        // A business logic taking 5 seconds to process the message which randomly fails.
        return  Mono.fromCallable(() -> {
                try {
                    TimeUnit.SECONDS.sleep(5);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                return 1;
            })
            .flatMap(ignored -> {
                LOGGER.info("Handling message: " + message.getMessageId());
                final boolean handlingSucceeded = Math.random() < 0.5;
                if (handlingSucceeded) {
                    return Mono.just(State.HANDLING_SUCCEEDED);
                } else {
                    return Mono.error(
                        new RuntimeException("Business logic failed to handle message: " +
                            message.getMessageId()));
                }
            });
    }

    private enum State {
        HANDLING_SUCCEEDED,
        MESSAGE_COMPLETED,
        MESSAGE_ABANDONED,
        MESSAGE_COMPLETION_FAILED,
        MESSAGE_ABANDON_FAILED
    }
}

I'm unfamiliar with the camel framework and don't know how they do the bridging with Azure SDK. Do you have some cycles to create a git-repo with a sample runnable Camel project showing the following? -

Setting Service  Bus configurations (e.g., AmqpRetryOptions, etc.) in the Camel project.
Receive messages from Service Bus using Camel.
Listening for terminal error from Receive using Camel.
"Explicitly" completing / abandoning the Service Bus message using Camel.

Also, a minimal README to run the code locally.

@anuchandy thank you for such a detailed response. I can try to get a camel example in the next couple days. I also tried the ServiceBusProcessorClient in a simple test service (not using Camel) and did the same "disable" the Service Bus queue test like I mentioned previously and with that it had no problems reconnecting and picking up messages again. Seems to align with what @nomisRev was describing.
I did want to add some log messages that I got after enabling WARN level logs in prod and then this issue occurred again yesterday. Fortunately I have a monitor/alert in place watching queue depths as a way to alert me when this happens. I looked through logs that Application Insights was able to give me and pulled out any of the relevant logs that I could find for when this happened again yesterday. I will post them below to see if that maybe gives any additional insight for you or anyone else. Apologies for the format, but I didn't find a good way to export them in a nice looking log stream format out of Application Insights for just the specific logs I wanted to share here:
1:45:23 PM
{"az.sdk.message":"Transient error occurred.","exception":"The link 'G15:47625:decision-response-queue_765c20_1656006008739' is force detached. Code: consumer(link64). Details: AmqpMessageConsumer.IdleTimerExpired: Idle timeout: 00:10:00. TrackingId:5892c658000007e90000004062b6c3b7_G15_B31, SystemTracker:name-of-servicebus-suppressed:Queue:decision-response-queue, Timestamp:2022-06-25T17:45:18, errorContext[NAMESPACE: name-of-servicebus-suppressed.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: decision-response-queue, REFERENCE_ID: decision-response-queue_765c20_1656006008739, LINK_CREDIT: 0]","linkName":"n/a","entityPath":"n/a","attempt":1,"retryAfter":4511}

All remaining logs are 1:46:23PM
{"az.sdk.message":"signalWorkQueue failed before reactor closed.","exception":null,"connectionId":"MF_9d93a5_1656006008658"}

{"az.sdk.message":"ReactorDispatcher instance is closed. Should not continue dispatching work to this reactor.","exception":"ReactorDispatcher instance is closed. Should not continue dispatching work to this reactor.","connectionId":"MF_9d93a5_1656006008658"} *** This log is repeated 7 times

{"az.sdk.message":"Unable to open send and receive link.","exception":"Unable to open send and receive link.","connectionId":"MF_9d93a5_1656006008658","linkName":"decision-response-queue-mgmt"}

{"az.sdk.message":"Retry attempts exhausted or exception was not retriable.","exception":"Unable to open send and receive link.","connectionId":"MF_9d93a5_1656006008658","entityPath":"decision-response-queue/$management","retry":1}

{"az.sdk.message":"ReactorDispatcher instance is closed. Should not continue dispatching work to this reactor.","exception":"ReactorDispatcher instance is closed. Should not continue dispatching work to this reactor.","connectionId":"MF_9d93a5_1656006008658"}

{"az.sdk.message":"Unable to open send and receive link.","exception":"Unable to open send and receive link.","connectionId":"MF_9d93a5_1656006008658","linkName":"cbs"}

{"az.sdk.message":"ReactorDispatcher instance is closed. Should not continue dispatching work to this reactor.","exception":"ReactorDispatcher instance is closed. Should not continue dispatching work to this reactor.","connectionId":"MF_9d93a5_1656006008658"}

{"az.sdk.message":"Retry attempts exhausted or exception was not retriable.","exception":"Unable to open send and receive link.","connectionId":"MF_9d93a5_1656006008658","entityPath":"$cbs","retry":1}

{"az.sdk.message":"ReactorDispatcher instance is closed. Should not continue dispatching work to this reactor.","exception":"ReactorDispatcher instance is closed. Should not continue dispatching work to this reactor.","connectionId":"MF_9d93a5_1656006008658"}

java.lang.RuntimeException: Unable to open send and receive link.

Error occurred. Passing downstream.
Cannot perform operations on a disposed receiver.

Unable to 'complete' message.
Cannot perform operations on a disposed receiver.

{"az.sdk.message":"Cannot perform operations on a disposed receiver.","exception":"Cannot perform operations on a disposed receiver.","entityPath":"decision-response-queue","linkName":"decision-response-queue_765c20_1656006008739"}

{"az.sdk.message":"Unable to emit shutdown signal.","connectionId":"MF_9d93a5_1656006008658","entityPath":"decision-response-queue","linkName":"decision-response-queue_765c20_1656006008739","signalType":"onComplete","emitResult":"FAIL_TERMINATED"}

Hi  @mseiler90, I should have mentioned it in my last comment; The ServiceBusProcessorClient (aka HighLevelClient) internally uses ServiceBusReceiverAsyncClient (aka LowLevelClient), such that it listens for any error from the LowLevelClient (i.e., non-retriable, max-retry exhausted) and recreate the internal LowLevelClient.  The logic is somewhat similar to the custom class ServiceBusIndefiniteRetryReceiverAsyncClient I shared in the previous comment.
Now, coming to the  "disable" test you did with HighLevelClient, it recovered because it's a non-retriable "terminal" error that LowLevelClient threw asynchronously, and HighLevelClient recreated the LowLevelClient.
This is slightly different from Simon's case; from his comment, it appears that his app listens to "terminal" error from LowLevelClient, but he seems to run into a situation where the LowLevelClient never threw a "terminal" error hence app never get to take action.
Looking at the log you shared - It seems there was a failure in the complete attempt (I don't understand the whole picture here), but the gist is - an exception happened on the complete call, either the application or Camel didn't handle it but throw it back to SDK, which results in receive-flux to terminate. I explained this in the previous comment above the MessageConsumeExample code.
This is why I requested if it is possible to share a Camel project; I don't know how Camel internally wires complete calls (or other disposition calls).
I hope it helps to clarify.

Hey @anuchandy,
I made a quick demo camel repo which can be found here https://github.com/mseiler90/camel-demo
You asked for a number of configurations which I did not include because Camel is taking care of everything for us by default. We have the ability to set certain configurations as seen in the Camel documentation here https://camel.apache.org/components/3.17.x/azure-servicebus-component.html, but I wanted to create this using the "out of the box" and default settings which we are currently using in production. For example, we are not disabling auto-complete, we aren't setting our own retry options, and we don't have any custom logic built around the Service Bus clients. We have tried tests with things like setting retry options, but nothing has helped. As you can see by the example repo, Camel with the help of the Azure SDK is taking care of all of our configurations for us as it should.
For testing, if you just update the application.yml file with a Service Bus connection string and a queue name, then you should be able to just start it up in your IDE and it will automatically put a message on the queue every 10 seconds. There is a Camel route that is listening on that same queue and just logs out the body of the message. Once that is up and running, if you do the "disable" on the queue and after several seconds or so, reactivate the queue. You will see that messages still get sent to the queue, but will no longer get picked up until restarting the application.
As we already have discussed, the High Level Client would successfully reconnect on the receiver, but the Low Level Client doesn't. We just would like to see the same "isChannelClosed" logic in the Low Level Client and it seems everything should work as we would hope for.
I do agree that we have an issue causing the connection to get lost to begin with, but regardless of it losing the connection to begin with, we should be able to automatically reconnect on the receiver without writing custom logic to do so. I did find some additional information on our production issue. It seems that this has only been happening a specific queue where we are picking up the message and then sending a REST API call to another service. I have found logs in Application Insights showing that there was a java.net.SocketException: Connection timed out (Read failed) for the API call at around the same time the Service Bus issue occurs. Looking back at all occurrences (which is like 8 times now in the past couple weeks), we see this connection timeout error at the same time. So it seems that may be causing the lost connection on the queue somehow and we'll need to investigate why that connection timeout is occurring

Hi @nomisRev, to give you some background, the messages arrive via an amqp-link that has the life cycle "open-event -> message-delivery-events -> close-event". The LowLevelClient creates a new amqp-link when the current amqp-link emits a close-event. You asked me in the past where this link recovery logic is, which I missed to follow up; the logic is in the class "ServiceBusReceiveLinkProcessor" here.
An amqp-session owns the amqp-link, and multiple amqp-session are owned by an amqp-connection. Both of these ancestors have the life-cycle, and has recovery logic. The amqp-connection recovery logic is in the generic class "AmqpChannelProcessor" here .
As you can see, the underlying types "react" to close (successful or error) events by creating a new amqp-link / amqp-connection (collectively called channels).
The expectation is that these "reactive" logic should take care of recovery, but there were edge cases (which are very hard to repro) where these "reactive" handlers never get to kick off recovery due to signal missing. If you go through the SDK changelog, you can find multiple signal loss root causing via DEBUG logs. A signal loss bug fix for the "reactive" recovery is coming in mid-July release (details here).
The historical reason for "HighLevelClient" using a timer to "proactive"  channel check (in addition to "LowLevelClient"'s "reactive" channel check) is something I need to check.
Interestingly, you're not (so far) seem to have recovery problems with the queue entity but with the topic entity. I'll kick off a long-running topic test with DEBUG enabled to see if we can get some helpful log.

Hi @mseiler90, thanks for the Camel project; I'll use it to debug to understand how Camel is doing wiring with SDK.
But your observation "It seems that this has only been happening a specific queue where we are picking up the message and then sending a REST API call to another service" is giving some hint. I think what could be happening here is -

A subset of REST API call blocks a long time, eventually throwing read-timeout.
Let's say those problematic API call blocks for 90 seconds, which will block the SDK callback for that period. I.e., no message will be read from the queue for 90 sec, leading to an increase in queue depth.
Then eventually, API calls throw read timeout; if the app doesn't handle it, it gets propagated to SDK callback which stops the receive-flux ( see my previous comment on exception handling).

As you investigate the REST API call connection (read) timeout, see if app was running into the above flow.
I'll find sometime go over the Camel sample to understand the Camel's bridging with the SDK and see if there is any issue in bridging.

Hi, is this issue still in progress? We have switched from the old azure lib to the new one and since then we face the same issue, that the threads are waiting and do not consume any message any longer. Unfortunately this stop occurs quite often, at least once a day, and we do not find a possible solution on our side. We have carefully checked our implementation and all exceptions are catched in our message handler. The bad part is, that we cannot reproduce the unexpected stop easily but we have some ideas. If we set the maxConcurrentCalls property of the service bus processor to 1 everything is working well and the processing of messages never stops. With a value of example: 10 we can force the stop of the processor only if we randomly cut the network connection for a short period of time (< 5 seconds). The threads will stop working and stay in the state "waiting" and never start working again. Our assumption is, that the .block() calls in the ServiceBusReceivedMessageContext line 81 do not have a timeout and due to this missing timeout the thread is eternally blocked. The thread dump reveals following state
java.base@11.0.8/jdk.internal.misc.Unsafe.park(NativeMethod)
java.base@11.0.8/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@11.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:885)
java.base@11.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1039)
java.base@11.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1345)
java.base@11.0.8/java.util.concurrent.CountDownLatch.await(CountDownLatch.java:232)app//reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:87)app//reactor.core.publisher.Mono.block(Mono.java:1707)app//com.azure.messaging.servicebus.ServiceBusReceivedMessageContext.complete(ServiceBusReceivedMessageContext.java:81)

Would it be an option to set a timeout to improve the unexpected stops of messaging processings? Additionally we tried to do some exception handling to recognize this stop of message processing, but unfortunately we could not find a suitable place to receive the exception. Our processor configuration is created with
new ServiceBusClientBuilder()
    .connectionString("connectionString")
    .processor()
    .receiveMode(ServiceBusReceiveMode.PEEK_LOCK)
    .topicName("topicName")
    .subscriptionName("subscriptionName")
    .prefetchCount(0)
    .maxConcurrentCalls(5)
    .maxAutoLockRenewDuration(Duration.ofMinutes(1L))
    .disableAutoComplete()
    .processMessage(serviceBusMessageHandler::receiveMessage)
    .processError(serviceBusMessageHandler::handleError);

public void receiveMessage(final ServiceBusReceivedMessageContext context){
    try    {
        final ServiceBusReceivedMessage message = context.getMessage();
        logDebug(() -> String.format("Message received: Header: %s", message.getApplicationProperties()));
       final MessageStatus messageStatus = azureMessageProcessor.processMessage(message);
    }   catch (Exception ex)    {
        LOGGER.error("CRITICAL: error in messaging processing!", ex);
    }
   context.complete();
}

public void handleError(final ServiceBusErrorContext context) {
    if (LOGGER.isErrorEnabled())    {
        LOGGER.error(String.format("Exception '%s' occurred during '%s' action for entity '%s'", context.getException().getMessage(), context.getErrorSource(), context.getEntityPath()),context.getException());
    }}

But the error callback is never called. Thank your for the support.

Hi, with regards to https://github.com/Azure/azure-sdk-for-java/issues/26465#issuecomment-1413722753 above we've done a test on a local fork and found that indeed calling the complete() action with a timeout would see the thread recovered after the timeout expired and process messages again as normal. Would be great if someone could provides thoughts about the proposed change in https://github.com/Azure/azure-sdk-for-java/pull/33298, it has been created in a non breaking and invasive fashion by only offering the option to use an additional method with a timeout input but not changing any current behavior. Thanks!

Hi @tux4ever @TheDevOps
Thanks for your information and contribution! Consider you are using ServiceBusProcessorClient, which is not related to this issue, I created a seperate github issue https://github.com/Azure/azure-sdk-for-java/issues/33493. Please check my comments there and use that channel to discuss your problem.

@liukun-msft Do you know if there is any further investigation into this issue (not the separate issue you created, but this one)?

Hi @mseiler90, the original question was followed up by @anuchandy. I'll talk to him to know the current stage.

Hi @mseiler90
The design of the ServiceBusReceiverAsyncClient (LowLevelClient) is to emit terminal-error to the user if it encounters an non-retriable error or exhaustion of retry.
The Apache Camel plugin is not taking care of re-creating the ServiceBusReceiverAsyncClient  when this terminal error happens.
From the log shared by you, we can see that the ServiceBusReceiverAsyncClient emits a terminal error, and the Apache Camel plugin logs the error and assumes the same ServiceBusReceiverAsyncClient will work. This assumption that plugin making is not correct. Please see @anuchandy's previous explanation in this thread.
As we don't own or have expertise in the Apache Camel plugin, we suggest you to open a ticket in the Apache Camel plugin repo to use ServiceBusReceiverAsyncClient  correctly or use the ServiceBusProcessorClient (HighLevelClient).

As explained in the previous comments (here and here), this is external to the SDK. Closing this.


Bug report

Bug report: everytime I try to open the app, it says "no entry found"
Like it's nothing to read u know?

#416


Use repository index to retrieve old manifests

Fixes #710

Builds passed, but the publish step is the one we can test only on master.. so merging, and opening follow-ups if required


fix: crashes on iOS

Description
run on iOS using XCode crashes on some screens and gives this:
[ERROR:flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetalImpeller.mm(42)] Using the Impeller rendering backend.
flutter: The Dart VM service is listening on http://<IP_ADDRESS>:49175/6l_-nd5F8Qo=/
flutter: LayerBuffer.init() loaded: true  assets/shaders/shader2_bufferA.frag
flutter: LayerBuffer.init() loaded: true  assets/shaders/shader2_main.frag
flutter: LayerBuffer.init() loaded: true  assets/shaders/test_isself_buffer_a.frag
flutter: LayerBuffer.init() loaded: true  assets/shaders/test_isself_main.frag
flutter: LayerBuffer.init() loaded: true  assets/shaders/shader1_bufferA.frag
flutter: LayerBuffer.init() loaded: true  assets/shaders/shader1_main.frag
flutter: LayerBuffer.init() loaded: true  assets/shaders/shader2_bufferA.frag
flutter: LayerBuffer.init() loaded: true  assets/shaders/shader2_main.frag
flutter: LayerBuffer.init() loaded: true  assets/shaders/mouse2.frag
flutter: LayerBuffer.init() loaded: true  assets/shaders/shader2_bufferA.frag
flutter: LayerBuffer.init() loaded: true  assets/shaders/shader2_main.frag
flutter: LayerBuffer.init() loaded: true  assets/shaders/mouse2.frag
flutter: LayerBuffer.init() loaded: true  assets/shaders/shader2_bufferA.frag
flutter: LayerBuffer.init() loaded: true  assets/shaders/shader2_main.frag
flutter: LayerBuffer.init() loaded: true  assets/shaders/mouse2.frag
flutter: LayerBuffer.init() loaded: true  assets/shaders/shader1_bufferA.frag
flutter: LayerBuffer.init() loaded: true  assets/shaders/shader1_main.frag
flutter: LayerBuffer.init() loaded: true  assets/shaders/test_isself_buffer_a.frag
flutter: LayerBuffer.init() loaded: true  assets/shaders/test_isself_main.frag
flutter: LayerBuffer.init() loaded: true  assets/shaders/shader1_bufferA.frag
flutter: LayerBuffer.init() loaded: true  assets/shaders/shader1_main.frag
flutter: LayerBuffer.init() loaded: true  assets/shaders/test_isself_buffer_a.frag
flutter: LayerBuffer.init() loaded: true  assets/shaders/test_isself_main.frag
flutter: LayerBuffer.init() loaded: true  assets/shaders/page_curl.frag
flutter: LayerBuffer.init() loaded: true  assets/shaders/page_curl.frag
flutter: LayerBuffer.init() loaded: true  assets/shaders/water.frag
-[MTLDebugRenderCommandEncoder validateCommonDrawErrors:]:5775: failed assertion `Draw Errors Validation
Fragment Function(water_fragment_main): missing buffer binding at index 4 for speed[0].
'
Steps To Reproduce
run on iOS
Expected Behavior
Work like it does on web
Screenshots
If applicable, add screenshots to help explain your problem.
Additional Context
Add any other context about the problem here.

Hi @jtkeyva
I think impeller is not yet ready for shaders. Can you please try running the example with impeller disabled?
flutter run --no-enable-impeller

@alnitak you are correct, it's working. really awesome stuff!
widgets look slightly pixely/grainy. wonder if impeller will fix that?

I think it will be fixed for sure, but don't really know how much it will take


Trim whitespace in email fields

Whitespaces in email addresses should be trimmed.
In some places this is already done, but we should unify this for all email inputs.
Specially for the reply address in email settings it is missing and no mail can be sent at all if the address contains a leading or trailing whitespace.

We could just use Validators but shouln't this be also handled by the backend if white spaces lead to errors?

We could just use Validators but shouln't this be also handled by the backend if white spaces lead to errors?

Yes, feel free to copy this issue into the backend


Add accessors for RSA d, dp, dq, and qp

We need this in order to expose these fields to Lua plugins (PROD-1660)

Code looks good, but has a merge conflict


feat: Add basic auth support

Minor PR that adds support for basic auth and add a small example.

Thanks for the PR @cdvv7788 !
Since Flipt Server doesnt natively support basic auth, is this for the case where you are running Flipt behind a reverse proxy such as nginx or caddy?

Yep, running it behind nginx. May be a common enough case, and it is simple to support it :)

@cdvv7788 what if instead we add the ability to set arbitrary headers? Adding support for manipulating headers in all clients seems more flexible / reasonable for us to maintain.
Especially since Flipt itself doesn't support basic auth, it might be a bit confusing to users of the SDKs if they see a BasicAuthentication method in the SDKs

@cdvv7788 wdyt about changing this PR to allow setting the headers directly instead?
Then we can open up issues to do it in the other languages as well


Faiths Diversity error

The estimateFaith() function gives error. Does anyone know how to get around this? Any help is appreciated.
I am using mia version 1.6.0
library(microbiomeDataSets)
library(mia)
tese <- SprockettTHData()
estimateFaith(tese,
              assay_name = abund_values,
              abund_values = "counts",
              name = "faith")
# Error in faiths[f] <- tree$ages[which(tree$edge[, 2] == which(tree$tip.label ==  :
# replacement has length zero

tese2 <- microbiomeDataSets::artificialgut()
estimateFaith(tese2,
              assay_name = abund_values,
              abund_values = "counts",
              name = "faith")

# Error in faiths[f] <- tree$ages[which(tree$edge[, 2] == which(tree$tip.label ==  :
# replacement has length zero

Thanks! I will have a look

Thanks, fixed (there are samples that have only one taxon present. This was not taken correctly into account, because this is so rare)


Add test to ensure it works with ESLint formatters

And to prevent regressions.
Could use https://github.com/sindresorhus/eslint-formatter-pretty for testing.

I made https://github.com/sindresorhus/vfile-to-eslint. So you could drop the ESLint compatibility in the next version and just refer to that instead.

Cool, that’s really awesome, thanks for working on it! 👍
Removed it from the docs now, and when GH-8 lands it’ll be removed internally too, so I’ll close this for now and defer discussion to that issue.


Online documentation still shows version 0.35.0 (current version is 0.36.1)

Yep, updating the windows crate docs is a tedious manual process that I still need to streamline somehow. docs.rs can't handle the windows crate because rustdoc is such a memory hog. I'll publish another cut of the docs next week when I publish 0.37 of the windows crate.

I published 0.37 this morning. Over three hours later, I'm still waiting for docs to build. 😢

The windows crate docs have now been updated to 0.37.

I published 0.37 this morning. Over three hours later, I'm still waiting for docs to build. 😢

That seems excessive indeed :/


Papermc crashes due to an incompatible Java version

Describe the bug
Papermc crashes due to an incompatible Java version
To Reproduce
Steps to reproduce the behavior:

Set services.minecraft-server.package = pkgs.papermc

Log Excerpt
-- Journal begins at Wed 2020-08-05 06:46:56 CEST. --
May 28 18:13:46 shepherd systemd[1]: Started Minecraft Server Service.
May 28 18:13:47 shepherd minecraft-server[191024]: Unsupported Java detected (60.0). Only up to Java 15 is supported.
May 28 18:13:47 shepherd systemd[1]: minecraft-server.service: Succeeded.
May 28 18:13:47 shepherd systemd[1]: minecraft-server.service: Consumed 2.013s CPU time, no IP traffic.
May 28 18:13:48 shepherd systemd[1]: minecraft-server.service: Scheduled restart job, restart counter is at 5.
May 28 18:13:48 shepherd systemd[1]: Stopped Minecraft Server Service.
May 28 18:13:48 shepherd systemd[1]: minecraft-server.service: Consumed 2.013s CPU time, no IP traffic.
May 28 18:13:48 shepherd systemd[1]: minecraft-server.service: Start request repeated too quickly.
May 28 18:13:48 shepherd systemd[1]: minecraft-server.service: Failed with result 'start-limit-hit'.
May 28 18:13:48 shepherd systemd[1]: Failed to start Minecraft Server Service.

Additional context
The vanilla minecraft-server package runs without issues.
Notify maintainers

@aaronjanse
@neonfuz
Metadata

system: "x86_64-linux"
host os: Linux 5.11.21, NixOS, 21.11pre292520.540dccb2aea (Porcupine)
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.4pre20210503_6d2553a
channels(johannes): ""
channels(root): "nixos-21.11pre292520.540dccb2aea, nixos-hardware, nixpkgs-21.03pre256757.cf7475d2061"
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos

Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute:  <nixpkgs/pkgs/games/papermc/default.nix>
# a list of nixos modules affected by the problem
module: <nixpkgs/nixos/modules/services/games/minecraft-server.nix>

I couldn't reproduce with this test driver : https://gist.github.com/SCOTT-HAMILTON/e45ac40e4ea1d75deca3e5e1196d2f86.

I also get this. my setup:

system: "x86_64-linux"
host os: Linux 5.10.37, NixOS, 21.05.740.aa576357673 (Okapi)
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.3.12
channels(root): "nixos-21.05.740.aa576357673, nixos-unstable-21.11pre293089.1c2986bbb80"
channels(kaine): "home-manager-20.09"
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos

Same thing happens with multimc and the new version


[BUG] weird "insta" crashes

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.

What problem did you encounter?
basically when i play deepwoken or anything on roblox, it just crashes after some completely RANDOM time, it can keep up without crashing 2 hours or crash after 5 minutes, i dont really know what can cause that

~~ It sounds like an unstable computer... ~~
Nevermind...
Does it crash for the games that don't crash?? You said sometimes it doesn't crash, does it crash in the games that doesn't crash??

When it crashes, does it just suddenly close, or does it show a crash dialog? Also, can you do several playthroughs without Bloxstrap and see if the issue is gone? https://github.com/pizzaboxer/bloxstrap/wiki/Switching-between-Roblox-and-Bloxstrap

I've had the same issue and it was not related to bloxstrap. It may be different for you though.

When it crashes, does it just suddenly close, or does it show a crash dialog? Also, can you do several playthroughs without Bloxstrap and see if the issue is gone? https://github.com/pizzaboxer/bloxstrap/wiki/Switching-between-Roblox-and-Bloxstrap

yea but let me say it kinda different, when i play for an example ANY GAME on roblox, doesnt matter what, after few minutes OR more, it crashes in game, when im playing a game. When it crashes theres no crash dialog, just a sudden close ingame (not when loading in)

yep it still crashed with bloxstrap turned off, so i guess its not related to bloxstrap, if you can could you help me cause its literally happening for me for a long time.
0.605.3.6050660_20231226T184527Z_Player_825CD_last.log

if you can could you help me cause its literally happening for me for a long time.

The best I can do is point you to this:
https://github.com/pizzaboxer/bloxstrap/wiki/Roblox-crashes-or-does-not-launch
Other than that, I don't really have much information to offer you. Sorry.

ive found a solution, turns out that oculus app (main reason for most roblox weird crashes) just tries to inject some dlls and roblox crashes, just uninstalled it

ive found a solution, turns out that oculus app (main reason for most roblox weird crashes) just tries to inject some dlls and roblox crashes, just uninstalled it

Ahh now if you said that earlier (not in a rude way)
Good job on fixing it yourself 👍

ive found a solution, turns out that oculus app (main reason for most roblox weird crashes) just tries to inject some dlls and roblox crashes, just uninstalled it

Ahh now if you said that earlier (not in a rude way) Good job on fixing it yourself 👍

sorry if i could be kinda rude i didnt really mean it and i still dont speak perfect english and yea i basically didnt know i could act kinda rude or something