Not all errors are outlined in the VBA flow

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

Action Performed:

Navigate to /bank-account/company or any other step in the VBA flow
Enter incorrect information in all fields
Press Enter key

Expected Result:
Every field that has an error should have an error message and red outline associated with it. This is supposed to occur in addition to the generic modal that will instruct users to look for the highlighted issues (PR) (CC @chiragsalian)
Actual Result:
Only the final incorrect entry is outlined with an error messages, and other fields that either failed a check or are in the incorrect format are not outlined at all.
Platform:

Web
iOS
Android
Desktop App
Mobile Web

Notes/Photos/Videos:
(note that not all fields are not filled out in this video, but that is being fixed by https://github.com/Expensify/App/issues/4748)
https://user-images.githubusercontent.com/22508290/130495110-ceb9e84f-5da6-46b8-a8f4-7c58b42616f6.mov
@MitchExpensify should we take this internal to get it done quickly?

I have some time and can grab this.

Every field that has an error should have an error message and red outline associated with it. This is supposed to occur in addition to the generic modal that will instruct users to look for the highlighted issues

At the moment there is a growl that shows a single message. When there are multiple messages what is it supposed to say?

Maybe if there is more than one error the growl could change to a generic message like: 'There are errors in the form'

Thanks @aldo-expensify I hashed this out with @kevinksullivan 1:1 and forgot to update here.
We are going to get rid of the growls since they don't add anything that is not achieved by the inline error message + confirm modal.

makes sense! 👍

@kevinksullivan, this issue is made somewhat complicated by the fact that some of these errors are also coming from the server and they aren't translated at all (which we should probably fix). I'm not sure if we want to prioritize those or not. But shouldn't be too bad to come up with a solution.

Another question about this...
Presently, since there is only one error we only need to worry about clearing a single error when that field is "touched" (a.k.a. value is changed).
Now that we will show multiple errors - what should we do when just one of them is "touched"? I'm not sure if the original intention when we added the inline errors was to have them clear on touch or not (but we did that).
So, what should we do here? Clear only the error on the touched field? Clear all errors when one field is touched?

Errors in question:
https://github.com/Expensify/Web-Secure/blob/0396dc03542de0db071b0db2ba7c2e7c732de5c1/lib/BankAccountAPI.php#L994-L1000

This issue came back to life and there is a comment requesting the same changes that this issue is addressing: https://github.com/Expensify/App/issues/4730#issuecomment-904217825
IMH, that issue which is a DeployBlockerCash shouldn't include those changes because it is not a regression. I understand that the app was showing the error one by one before.

Ah yes, good eye @aldo-expensify thanks! I agree not a deploy blocker since we know this behavior should not work yet.

Alright, chatted 1:1 with @jasperhuangg who did the 1.0 version of this for moving error messages from growls to inline and he pointed out that the growl component was originally left in so that users who have scrolled past an error would be able to see it. That makes sense to me, but I think we can solve this problem by just prompting with a confirm modal when there's an error - and also do this anywhere we were doing a Growl.
We also talked about the server errors which are getting thrown and consumed directly by the front end - which reminds me that we should probably also pop open the "confirm" modal when those get thrown. Ultimately, whatever strategy we settle on for form error handling we should try to use everywhere. It feels like we're still figuring that out on the design side, but this should give us some lessons to lean on.
Also chatted a bit about whether it would be a good time to look into a form library and decided that we can wait for now as there are probably a lot of opinions on how it should work + well want to develop (or use) something that works for our design, Onyx architecture, etc. At the same time, we don't want to leave too many inconsistent patterns around or else we'll be reinventing the wheel each time we create a new form - but given the urgency of N6 seems like an acceptable trade-off.
So, I think this issue can be broken into a few steps:
Web-Secure changes

[ ] We need to make sure the errors that are being directly consumed by the front end are served more generically in the back end and also add extra commentary in Web-Secure that they are used in New Expensify so that we don't alter them accidentally.

New Expensify

[ ] Create constants in New Expensify for these so that we can serve the proper translation for the error e.g. CONST.BANK_ACCOUNT.ERROR.INVALID_PHONE
[ ] Take the various calls to Onyx.merge(ONYXKEYS.REIMBURSEMENT_ACCOUNT, {error: ''}) and change them instead to a unique Onyx key for that form with an object value where each key corresponds to an individual form element ID. So something like CompanyStep will start using a ONYXKEYS.COMPANY_STEP_ERRORS key and store any errors related to an individual form element.
[ ] When a front-end error is thrown the validate() method will note which fields have failed and the merge into Onyx an object with keys of form element id and boolean values. When a back-end error is thrown we will also set this object instead of an error string. This means that the API handling in BankAccounts.js will have a more direct knowledge of which form elements they are interacting with vs. setting random error strings and having the component figure out what to do with this.
[ ] We'll then need to update all the things looking at this.props.reimbursementAccount.error and change it so we start looking at this.props.companyStepErrors instead and can easily check for an individual form field error in the CompanyStep component.
[ ] When a form field is touched (changes) we will clear a single field by updating the Onyx object.

Follow Up:

Let's consider a form library. Either of our own design or 3rd party.

Alternative idea:

Another idea to individual Onyx keys for form errors is to turn this.props.reimbursementAccount.error into this.props.reimbursementAccount.errors. I thought about this for a bit, but it will require an Onyx change if we want to update sub keys e.g. removing only reimbursementaAccount.errors.something without modifying the underlying object is not really supported. We can merge objects, but not remove deeply nested keys. I also don't love how this would leave form error states coupled with the rest of the bank account information. When we come up with a more universal solution to handling form state + their errors then we will probably need to redo this anyway so I don't think we should overthink it.

Looks good @marcaaron!
Just want to confirm to be 100% that this issue will capture these changes:

Removed all growls from VBA flow (We're using center modals for all instead - GH - on production)
All fields returning an error get highlighted.

Yep, that's the plan!

Whoops! This issue is 2 days overdue. Let's get this updated quick!

Working on this, we will be doing small incremental pull requests

Should this be reopen? The part about showing multiple errors at the same time has not been implemented yet.

Yep let's reopen it until we are done!

That sounds good!, is the BankAccount step the "Company" step? or all steps related to adding a new bank account?

Not Company step. It's the very first step + manual entry screen and Plaid screen.

There might not be much to do there but let's see.

I guess we have to agree on how we want our front-end validation to work. In the company step we have validation that is applied when we click "Save & continue", like when we type a zip code with less than 6 numbers. In the BankAccount step (http://localhost:8080/bank-account/new), the "Save & continue" button is disabled until our frontend validations pass (length requirements on Account number and transit number).
Other small things:

The label of the field is lost after typing something:

When we get the transit number error from the back, we show the modal with the specific message, but also highlight the field. This is inconsistent with other steps where we show the generic message when we are highlighting the field with errors.

The first time we get the "Transit number" validation error, it doesn't show the form, it shows the view to select "Log into your bank" or "Connect manually". Then, if we click "Connect manually" we will see the highlighted error. If we do this again, then we are taken back directly to the form which I think is the correct behaviour.

https://user-images.githubusercontent.com/87341702/131902266-e849d4a5-796f-415d-9d1b-129336e54577.mov

The checkbox for accepting terms of service is checked from start:

In the company step we have validation that is applied when we click "Save & continue", like when we type a zip code with less than 6 numbers. In the BankAccount step (http://localhost:8080/bank-account/new), the "Save & continue" button is disabled until our frontend validations pass (length requirements on Account number and transit number).

Ah sorry, are you suggesting we do something differently? We already have front end validation for these fields here:
https://github.com/Expensify/App/blob/7de992ec17865daea639af5506c72ffc73781bec/src/pages/ReimbursementAccount/BankAccountStep.js#L71-L77

The label of the field is lost after typing something:

Nice catch, I think this is because we are using the placeholder prop and not label?
e.g. check out this usage here
https://github.com/Expensify/App/blob/7de992ec17865daea639af5506c72ffc73781bec/src/pages/signin/LoginForm.js#L75-L77

When we get the transit number error from the back, we show the modal with the specific message, but also highlight the field. This is inconsistent with other steps where we show the generic message when we are highlighting the field with errors.

Yeah that's a good observation. In this case, it seems like we'd need to know not to set the errorModalMessage and would avoid setting this when we see this more specific error that we know is "inline"?

The first time we get the "Transit number" validation error, it doesn't show the form, it shows the view to select "Log into your bank" or "Connect manually". Then, if we click "Connect manually" we will see the highlighted error. If we do this again, then we are taken back directly to the form which I think is the correct behaviour.

Yes, this does seem unexpected (🐛 ). When we get this error we should make sure you end up on the "connect manual" screen again?

The checkbox for accepting terms of service is checked from start:

This is intended behavior and the same way it's handled on OldDot

I think we could break out into separate issues:

The label of the field is lost after typing something
Account number error does not drop you back into connect manually flow
Account number error shows a modal with specific message + inline error

Not sure why, but after using the "Log into your bank", it takes me back to the same view:
https://user-images.githubusercontent.com/87341702/131904731-72cddfd6-de3a-41ee-8114-51dd21bd167d.mov
Are you having problems with this? I'm in the main branch, up to date, and I think I have other repos up to date too.

Ah sorry, are you suggesting we do something differently? We already have front end validation for these fields here:

Actually I'm more of a fan of always allowing the user to click "Save & continue", even if there are empty fields, because then you can highlight and show exactly what are the problems.
If we follow the approach of disabling the "Save & continue" while the "form is not valid", it is not obvious which is the field that have problems.

The checkbox for accepting terms of service is checked from start:

This is intended behavior and the same way it's handled on OldDot

That is fine then :)

Are you having problems with this? I'm in the main branch, up to date, and I think I have other repos up to date too.

Yes, actually. Hmm I may have broken this. Let me see 😅

If we follow the approach of disabling the "Save & continue" while the "form is not valid", it is not obvious which is the field that have problems.

This is probably better to bring up in the Slack channel - it's a question that requires design feedback and at this point in the technical implementation I'm unsure if we want to pivot.

If we follow the approach of disabling the "Save & continue" while the "form is not valid", it is not obvious which is the field that have problems.

This is probably better to bring up in the Slack channel - it's a question that requires design feedback and at this point in the technical implementation I'm unsure if we want to pivot.

I see, In my opinion, it is not a big change to switch to the approach of allowing the user to "Save & continue" and then trigger validations and I would think it could be a good time to consider this now that we are working on it.

If we decided to kick what I was saying for later. What is the approach we are currently following? I'm guessing that it is "disable the submit button if there is anything invalid in the form". If this was the case, we wouldn't have highlighted errors in the company step anymore because these are being triggered on submit. To have highlighted errors + submit button disabled if there is any problem, we should show errors on the input "onchange" as we type?

sorry about throwing all these questions now, but I don't have a clear idea of how the validations are supposed to work. This PR which disable "Save & continue" button when there are some checkboxes missing made me doubt about the direction we are taking.

Good thoughts. I do think things like "validate on change" instead of "validate on submit" should be discussed by more than 2 people so I'd suggest moving the conversation to a more public channel.
Here's one idea for a temporary solution...

Only disallow submitting form with missing required fields
Validate in the front end on submit
Handle front end errors by showing which fields have errors inline
If the front end validation passes - call the API and then show errors inline

Eventually it would probably be better to validate on change, but unsure if we need to do this yet. The primary goal is to make sure that if something is broken the user has some minimum clear feedback on how to fix it and avoid cases where there is no feedback at all.

Good thoughts. I do think things like "validate on change" instead of "validate on submit" should be discussed by more than 2 people so I'd suggest moving the conversation to a more public channel.
Here's one idea for a temporary solution...

Only disallow submitting form with missing required fields
Validate in the front end on submit
Handle front end errors by showing which fields have errors inline
If the front end validation passes - call the API and then show errors inline

Eventually it would probably be better to validate on change, but unsure if we need to do this yet. The primary goal is to make sure that if something is broken the user has some minimum clear feedback on how to fix it and avoid cases where there is no feedback at all.

Thanks, that clears it up.

New GH issues:

The label of the field is lost after typing something GH issue
Account number error does not drop you back into connect manually flow GH issue
Account number error shows a modal with specific message + inline error GH issue

Adding some more context to this thread on the back end errors for the Bank Account step as I look through those...
BankAccountStep server errors:

🟢  Fraudulent account error

https://github.com/Expensify/Web-Secure/blob/e76ac45ffe7dbb6d1bd9cc60953ce029f0398776/lib/BankAccountAPI.php#L76-L77
Looks pretty good to me as a modal:

🟡  Existing bank account error

https://github.com/Expensify/Web-Secure/blob/e76ac45ffe7dbb6d1bd9cc60953ce029f0398776/lib/BankAccountAPI.php#L1010-L1010
Not too sure if this error is likely to be shown but it will if we:
Set up withdrawal account in OldDot
Try to set it up again in NewDot
Discussed this with @kevinksullivan here and I think we should create a follow up issue to address this weird flow

🟢  Existing owners error can show in this step

This is handled but not using the main ConfirmModal
I'll create a new issue for this and work on it. Now that we have a single confirm modal we should not be using this one - but the modal itself seems fine (maybe can just change the title for now to "Oops" for consistency)

Potential Auth errors

🟢  Invalid first step (shouldn't really be possible so not sure if we need to worry)
🔴  Invalid routing number (this can happen - and is handled already with an inline error - but as @aldo-expensify pointed out the error modal is not generic)
🟡  Password required - unsure which contexts this happens tbh (maybe not necessary to worry about)
🟡  Pending share exists for the account + routing num (300 Bank account share pending) - I'm not too familiar with how "sharing accounts" works, but it doesn't seem like we are handling this case yet.

Verifications errors like Giact + throttled (Giact I think is not handled in the front end at all)

🔴  Throttled error - these can be thrown at any step and currently look like this for me... weird Spanglish... 😄

🟢  Plaid can be disabled if we fail to connect many times which results in this UI (which looks pretty good to me):

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to production by @roryabraham in version: 1.0.92-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to staging by @marcaaron in version: 1.0.92-1 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to production by @roryabraham in version: 1.0.93-1 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to staging by @marcaaron in version: 1.0.93-2 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

Working on the Company step to show all errors together

🚀 Deployed to production by @yuwenmemon in version: 1.0.94-1 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

I'm getting back to work on this now (Company step!)

@marcaaron, @aldo-expensify Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!

(remove overdue) We are still working on this!

@aldo-expensify would you mind outlining what remains of this GH so we're on the same page when it comes to testing (i.e. which errors are not currently handled via outlines, as well as the PRs that are fixing them)?

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

hey @kevinksullivan , this is what I know:
Iteration 1: Show all inline errors together
How things are expected to work:

Show all front-end validations inline errors at the same time
"Save & continue" button is disabled if there is any empty field or mandatory checkbox unselected
Errors from the backend don't highlight fields (most of the time)

Which steps in the VBA flow are working like this?:

Add bank account manually (/bank-account/new): PR - Merged, Deployed
Company information (/bank-account/company): PR - Merged
Personal information (/bank-account/personal-information): Intending to start working on it now
Additional information (/bank-account/contract): haven't started

Iteration 2: "Save & continue" buttons always enabled

"Save & continue" button is always enabled
Enable inline error highlighting and error text for StatePicker, ExpensiPicker and CheckboxWithLabel components

There is this GH issue for this and @pecanoro is working on this on this PR

I think we should maybe split this work up at this point? Now that we have a good system in place... I suggested this here.
We still have inconsistent handling of errors for the following views:

Requestor step
ACHContract step
Validation step

Probably if a different person tackles each one the work will go faster.

🚀 Deployed to staging by @marcaaron in version: 1.0.98-2 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@marcaaron, @aldo-expensify Whoops! This issue is 2 days overdue. Let's get this updated quick!

Yes i updated it. Once its off n6-hold feel free to bring it back to daily if needed.

Should we remove the hold on this one since it's part of polishing n6?

@aldo-expensify any update on this one?

@aldo-expensify any update on this one?

I just updated the PR with the main branch resolving a bunch of conflicts. I would like your opinion on this before continuing further 😬

PR ready for review for all errors outlined together in steps:

Personal information
Additional information

@aldo-expensify just checking here, is this done?

This PR covering the "Personal information" and "Additional information" (Beneficial owners) step was just merged. @marcaaron will address some final details in a new PR.
Details:
https://github.com/Expensify/App/pull/5259#issuecomment-933696964
https://github.com/Expensify/App/pull/5259#issuecomment-933701177
After that, I think we should be done about "Showing all errors together" in all VBA steps.


Build script ignores --prefix

The build script does not follow --prefix. From an attempted build via scripts/build.sh --prefix /store/artem/ve:
/usr/local/bin/cmake -P cmake_install.cmake
-- Install configuration: "RelWithDebInfo"
-- Installing: /usr/local/bin/remill-clang-4.0
CMake Error at cmake_install.cmake:49 (file):
  file INSTALL cannot copy file
  "/store/artem/ve/git/remill/remill-build/remill-clang-4.0" to
  "/usr/local/bin/remill-clang-4.0".

Closing since I think this belongs in remill instead.


server_status bombs if no jobs have been pushed yet

 scheduler stdout | 2014-12-01 19:59:15,041 [simplecoin] [ERROR]: Unhandled exception in server_status
 scheduler stdout | Traceback (most recent call last):
 scheduler stdout |   File "/storage/simplecoin_multi/simplecoin/scheduler.py", line 51, in crontab
 scheduler stdout |     res = func(*args, **kwargs)
 scheduler stdout |   File "/storage/simplecoin_multi/simplecoin/scheduler.py", line 1279, in server_status
 scheduler stdout |     if 'last_flush_job' in data and 'currency' in data['last_flush_job']:
 scheduler stdout | TypeError: argument of type 'NoneType' is not iterable
 scheduler stdout | 2014-12-01 19:59:15,043 [apscheduler.scheduler] [INFO]: Job "server_status (trigger: cron[second='15'], next run at: 2014-12-01 20:00:15)" executed successfully

Lol this is a SCM bug. Fixed fc904f37f8c91570d069a85cf7485e3ff91ee372


Improvements to ModelParser Creation

Some improvements to the contract between parsers and config, which should make ModelParser creation easier:

Add default callback event handling in the base ModelParser infrastructure

I think the base classes should be recording some of the events by default so we aren't left at the modelparser creator's discretion

Mainly, each on_x_start, on_x_end event for the core methods (serialize, deserialize, run) should just be logged by default, with ModelParser creators implementing the code between the events.

Clarify & ensure consistency in handling of prompt outputs in run. Having ModelParsers mutate the input Prompt seems too heavy-handed; ideally ModelParsers should just return the outputs and the AIConfigRuntime will manage adding them to the config.

@Ankush-lastmile I also prefer option 2 of wrapper methods in the base ModelParser class.
For @rholinshead's second point, I need to think about it more. I think it makes sense to return Output[] back from the run function, and there is a follow-up step in the AIConfigRuntime to handle updating the Prompt with the outputs. But I want to think about it a bit more. Maybe we also introduce a serialize_result function on ModelParser, which can be called with the results of an inference request to create Output objects, which can then be added to the aiconfig.

Note: also needed for cost and metrics tracking after local editor mvp


Updated the 'Faking calls' example in README

I was trying the example faking calls and got the following error:
> rails c
Frame number: 0/4
[1] pry(main)> People.all
ActiveRestClient::Base Adapter set to be net_http
  ActiveRestClient People#all - Faked response found
  ActiveRestClient People#all - Response received 43 bytes
  ActiveRestClient (4.4ms) People#all
MultiJson::ParseError: 399: unexpected token at '{first_name:"Johnny"}, {first_name:"Bob"}]'
from /Users/kleaver/.rvm/gems/ruby-2.1.0@scratch/gems/json-1.8.2/lib/json/common.rb:155:in `parse'
[2] pry(main)>

Coverage remained the same at 99.8% when pulling bc2a7288528105c72f76be4b63517f26873bdc9a on kleaver:update-readme-faking-calls-example into a98a2a8b16903597d57c19d9a8c98c743b4107cd on whichdigital:master.


MM-44631 - use the enable onboarding config to show/hide the  onboarding

Summary
This PR adds the code to check the EnableOnboardingFlow config option to hide/show the new onboarding tasklist
Ticket Link
https://mattermost.atlassian.net/browse/MM-44631
Related Pull Requests
n/a
Screenshots
https://user-images.githubusercontent.com/10082627/170373448-948ad3a6-3ad1-49e0-949d-289bb102496d.mp4
Release Note
NONE

/e2e-test

Successfully triggered e2e testing!
https://git.internal.mattermost.com/qa/cypress-ui-automation/-/pipelines/198733

/cherry-pick release-7.0

Cherry pick is scheduled.


node

Hi,
Just a question.
In your nodejs docker version of archlinux, why don't you install the "npm" package ?
I need it, and I was wondering how we can use node without the npm to install dependencies.
My guess is you copy your application into the images WITH his dependicies.

Thank a lot for your work.

Reason being that the image should contain the least amount of dependencies possible. nodejs is the only dependency for packages that only need the runtime. I usually package everything myself (via pacman) and therefore haven't needed for npm. I added an npm image for you: nfnty/arch-npm

Thank you for the answer and the image :)


Optionally deploy activity log diagnostic settings beyond public and government

Description
Current settings through error in clouds not supporting activity log diagnostic settings. Issue #453 tried setting diagnostic settings API to commonly supported version except the underlying API version doesn't support activity settings config. Its likely 453 can be reversed for now until clouds support this setting since the newer API supports it in public and gov clouds.
Steps to Reproduce
Steps to reproduce the behavior:

deploy to non-public/government cloud

Expected behavior
Diagnostic settings are created for activity logs to send to log analytics
Actual behavior
Error message suggesting activitylogdiagnosticsettingsconfig is unavailable.
Screenshots
Additional context
Further work should be created to track this missing capability, for now this is a work around to prevent error so the result will be no activity logs going to central logging.
Operating System:
Terraform Version:
Cloud (public, Azure Government, etc.):

I think opt-in central logging is the right call. 👍
But, unless there's some reason to change all diagnostic settings to an older provider, I don't think we need to revert #453 since the newer provider is already used everywhere else in source and known to work in deployments other than when it is necessary to opt-out.


Support both reading XPT v5 and XPT v8

Instead of PROC COPY, use the %XPT2LOC macro.
https://documentation.sas.com/doc/en/pgmsascdc/9.4_3.5/movefile/p1tp8gighlgeifn173i6kzw2w3bu.htm

Since, internally the XPT files will need to be converted to SAS datasets first, the next version will support only SAS datasets as input. The cstutilxptread macro will be updated to support both XPT v5 and XPT v8.


Generate favicons from text page

Mobile view for Landing page 2 (generate from text page)
Note: dont forget to use the style guide and observe the 4 point system
submission date: 3pm friday (7/29/2022)

The spacing system, margin and the style was cautiously implemented to design the mobile view of the landing page

I worked on the mobile view of the landing page whilst adhering strictly to the style guides created.

I redesigned this page after @nwokomacj worked on initially to fit to our colour background

I designed the task assigned to me. However, the team lead contributed to make it fit to the background color
https://www.figma.com/file/vxxeG9DebSxJc05LIs9oeu/Team-68_Conficon-draft?node-id=2956%3A10900


albersUsa Geo Map Projection

I want to create a geomap of the USA using D3plus. I want to show Alaska and Hawaii below the SW part of lower 48 states using the d3.geo.albersUsa d3 projection. However, it does not look like d3plus supports this. I tried setting "projection" key in .coords to "albersUsa", but desired projection was not rendered.

Any status update on supporting the albersUsa projection? I'm doing a bunch of Affordable Care Act map visualizations and it would really be helpful to have Alaska and Hawaii shown on map with this type of projection.

We still haven't looked into this. We're in the process of re-tooling how a lot of the internals work, including Geo Map, and we'll look into this once we're at that stage.


Make cross icon tabbable so its operable with keyboard

:tada: This issue has been resolved in version 6.4.4 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


ROX-18767: add lock in Cleanup

Description
This PR aims to fix a data race in the registry store (see ci failure)

Should fix: ROX-18767

Checklist

[ ] Investigated and inspected CI test results
[ ] Unit test and regression tests added
~[ ] Evaluated and added CHANGELOG entry if required~
~[ ] Determined and documented upgrade steps~
~[ ] Documented user facing changes (create PR based on openshift/openshift-docs and merge into rhacs-docs)~

If any of these don't apply, please comment below.
Testing Performed

[ ] CI
[ ] Unit test

/test gke-sensor-integration-tests
Let's re-run these since these are the ones that triggered the issue.


Basic Rails app using this project

Add an API controller which returns JSON response.
Send a rouge request with this middleware to explain the 400 response

Not needed, tests now cover this.


Add a CI

We need to add a continuous integration service that runs the test whenever there is a new Pull Request. Only one, just to start, probably Travis CI that is free for Open Source.

In order to make Travis CI working we need to make the tests run on Linux, currently it seems the chrome package we are using to run chrome locally in the command line only works in Mac.
I have tried running the QUnit tests using Karma locally, but the complexity and amount of code seems too high. Therefore, I am looking into a simpler solution that doesn't require the project to figure out how to make the tests work locally in Windows, Mac and Linux Ubuntu (for Travis CI).
I have tried drone.io as @bartaz mentioned in his comment, but after I created the account I noticed they use outdated node versions 0.8 and 0.10 only. We can't rely in a service that doesn't update the node version because there are lots of packages we might depend upon that doesn't work in those versions anymore and we can stop receiving important updates and features that will stop the progress.
I have tried using gulp, so that we can find some plugin that can run the tests out of the box inside a service (like Sauce Labs*). I have found gulp-qunit, but unfortunately it doesn't work because it runs in PhantomJS and Phantom JS don't support CSS 3D transforms, not even PhantomJS 2. When running gulp-qunit, the QUnit integration tests fail locally:
➜  impress.js git:(ci) ✗ ./node_modules/.bin/gulp test-integration
[16:47:16] Using gulpfile ~/Git/impress.js/gulpfile.js
[16:47:16] Starting 'test-integration'...
[16:47:19] Testing core_tests.html
[16:47:19] Test failed: Initialization: Attributes
[16:47:19] Failed assertion: canvas.style.transform initialized correctly, expected: rotateZ(0deg) rotateY(0deg) rotateX(0deg) translate3d(1000px, 0px, 0px), but was: undefined
[16:47:19] at file:////Users/fagnerbrack/Git/impress.js/test/core_tests.js:50:25
[16:47:19] Failed assertion: canvas.style.transformOrigin initialized correctly, expected: left top 0px, but was: undefined
[16:47:19] at file:////Users/fagnerbrack/Git/impress.js/test/core_tests.js:54:25
[16:47:19] Failed assertion: canvas.style.transformStyle initialized correctly, expected: preserve-3d, but was: undefined
[16:47:19] at file:////Users/fagnerbrack/Git/impress.js/test/core_tests.js:58:25
[16:47:19]
[16:47:19] Took 3071ms to run 22 tests. 19 passed, 3 failed.
[16:47:19] gulp-qunit: ✖ QUnit assertions failed in core_tests.html
[16:47:19] 'test-integration' errored after 3.47 s
[16:47:19] Error in plugin 'gulp-qunit'
Message:
    Command failed: /Users/fagnerbrack/Git/impress.js/node_modules/phantomjs2/lib/phantom/bin/phantomjs /Users/fagnerbrack/Git/impress.js/node_modules/qunit-phantomjs-runner/runner.js file:////Users/fagnerbrack/Git/impress.js/test/core_tests.html

Details:
    killed: false
    code: 1
    signal: null
    cmd: /Users/fagnerbrack/Git/impress.js/node_modules/phantomjs2/lib/phantom/bin/phantomjs /Users/fagnerbrack/Git/impress.js/node_modules/qunit-phantomjs-runner/runner.js file:////Users/fagnerbrack/Git/impress.js/test/core_tests.html

Any useful ideas on how to make tests working in Linux Ubuntu (for Travis CI) with the least amount of effort will be appreciated.
* The Sauce approach is how it is already being done with js-cookie, although it uses grunt instead of gulp and Sauce Labs is known to become unstable sometimes (even bootstrap is looking for changing it, see https://github.com/twbs/bootstrap/issues/18754).

After #566 this might become easier. I have received some tips to use CircleCI instead of Travis, seems to be better at running Chrome. Need to take a look on that.

Added some PR's related to this, @FagnerMartinsBrack

Fixed by https://github.com/impress/impress.js/pull/568.


Give the possibility to set the attributesToXXX

Description
I noticed that some of our users, for example meilisearch.com, had large documents but only needs one or two fields.
For example in the case of meilisearch.com we are querying this very large JSON TWICE when all we need is actually the two selected fields;

It would be cool if instant-meilisearch was able to detect which fields are used (but I highly doubt that's possible) or if we could specify ourselves the attributesToRetrieve, attributesToHighlight and attributesToCrop settings.
Basic example
      instantMeiliSearch(
        process.env.NEXT_PUBLIC_DEMO_MOVIES_HOST,
        process.env.NEXT_PUBLIC_DEMO_MOVIES_API_KEY,
        {
          paginationTotalHits: 4,
          primaryKey: 'id',
          attributesToRetrieve: ["poster_path"],
          attributesToHighlight: ["title"],
        }
      )

Other
To give you an idea, on meilisearch.com that would make the size of each request goes from 23675 bytes to 980.

Hello!
This is a very good suggestion. This should be working as the the configure widget is supposed to handle every search parameter of algolia which supports attributesToRetrieve.
I tried it out and it appears to be a bug. When settings a attributesToRetrieve in configure in throws an error
Exemple:
<Configure
          attributesToRetrieve={['name']}
 />

throws:
src.a2b27638.js:55729 TypeError: Cannot read properties of undefined (reading 'toString')
    at addEllipsis (src.a2b27638.js:55176:50)
    at resolveSnippet (src.a2b27638.js:55208:10)
    at adaptSnippet (src.a2b27638.js:55243:27)
    at adaptFormating (src.a2b27638.js:55279:95)
    at src.a2b27638.js:55365:127
    at Array.map (<anonymous>)
    at adaptHits (src.a2b27638.js:55359:37)
    at adaptSearchResponse (src.a2b27638.js:55409:41)
    at Object.<anonymous> (src.a2b27638.js:55722:72)
    at step (src.a2b27638.js:50418:17)

fixed by: #733


Suggested 4x20 compatible LCD

Can you add a link for a recommended 4x20 LCD display?  You have a very comprehensive set of links for all the parts (thanks!) so it would be nice to include the LCD as well.

I've added some links to sources for the LCD and the I2C adapter.


Switched broken pypip.in badges to shields.io

Hello, this is an auto-generated Pull Request. (Feedback?)
Some time ago, pypip.in shut down. This broke the badges for a bunch of repositories, including name-me. Thankfully, an equivalent service is run by shields.io. This pull request changes the badges to use shields.io instead.

Coverage remained the same at 100.0% when pulling 8ab8e4fcc0c3a44314d650163f37cb9134cfd25f on movermeyer:fix_badges into 9a7a3c554de76fe3a835e80209b8ef34db5176cd on Dinoshauer:master.


Fatal error condition occurred in /usr/src/debug/aws-c-mqtt/0.5.5-r0/git/aws-c-mqtt

Hello..
I am using meta-aws layer (dunfell) for the Yocto image on my Nano Pi Duo2 Board. I did compiling this layer with configuration in my image.conf with configuration:
IMAGE_INSTALL_append = " aws-iot-device-sdk-python-v2"
then, the image compiled successfully and on my board, i can import awscrt on Python3 shell. But when i tried to run sample pubsub.py with proper cert files, it shows this error :
Running pub/sub sample application...
Connecting to xxxxx-ats.iot.ap-southeast-1.amazonaws.com with client ID 't
est-6d6b1c72-47ef-4d6a-967a-ef3b46ee85a8'...
Fatal error condition occurred in /usr/src/debug/aws-c-mqtt/0.5.5-r0/git/aws-c-mqtt
/source/packets.c:158: username.len > 0
Exiting Application
################################################################################
Resolved stacktrace:
################################################################################
################################################################################
Raw stacktrace:
################################################################################
Signal received: 0, errno: 0
################################################################################
Resolved stacktrace:
################################################################################
################################################################################
Raw stacktrace:
################################################################################
I'm confused because i can run the sdk and my custom scripts on my PC and vendor-built Linux Image just fine.

Hello @sskrn - I don't have this board and not sure of the BSP you're using.  Can you please let me know? I can try to repro on dunfell for raspberry pi3 32 bit?

Thank you for the quick and detail response.. I am using this meta-allwinner layer: https://gitlab.com/dimtass/meta-allwinner-hx . Also i made my own layer for customization in image recipe as shown below:
`SUMMARY = "Allwinner console image"
LICENSE = "MIT"
AUTHOR = "Dimitris Tassopoulos"
inherit allwinner-base-image
inherit extrausers
EXTRA_USERS_PARAMS = "usermod -P qwer1234 root"
#DISTRO_FEATURES_append += "bluez5"
MACHINE_FEATURES_append += "bluetooth"
SSG_BT = " bluez5
bluez5-dev
bluez5-noinst-tools
bluez5-obex
bluez5-testtools
python3-pybluez
"
#IMAGE_INSTALL += "htop"
IMAGE_INSTALL_append = " alsa-lib alsa-utils alsa-plugins alsa-state alsa-tools"
IMAGE_INSTALL_append = " screen"
IMAGE_INSTALL_append = " i2c-tools vim git"
IMAGE_INSTALL_append = " ${SSG_BT}"
#IMAGE_INSTALL_append = " simplehello"
IMAGE_INSTALL_append = " aws-iot-device-sdk-python-v2"
IMAGE_FEATURES = "ssh-server-dropbear"
`
is there any dependencies that should be included in IMAGE_INSTALL variable or IMAGE_FEATURES for this library? Sorry I'm still literally new to Yocto and perhaps still trying to understand in adding custom packages to the image.

I think this looks ok.
For some reason I initially thought this board was a Raspberry Pi clone but it's not.  It's totally its own thing.
I am not aware of this BSP - first time seeing it.  Never worked with Allwinner chips before.
I would like to confirm that this is the board:
https://www.armbian.com/nanopi-duo-2/
We will have to get a board to try to reproduce.

Yes correct, that link refers to the board. Is there possibility that if I develop the script using C++ this error won't occur? I would appreciate it if you can give me some suggestions in using AWS IoT in Yocto Project.

You're using the preferred SDK for Python.  The C++ SDK uses the same underlying CRT so we need to narrow what the potential root cause might be.
While we get the board on hand, let me ask a few more questions.
The error infers that you have reached this block of code:
https://github.com/awslabs/aws-c-mqtt/blob/8984c51bc834598e3cb1e73ae5d7d614b445ce48/source/packets.c#L158
Which is strange given that /usually/ an autogenerated client id will be made if you didn't provide one.  Maybe the demo script for whatever reason was unable to provide one.  I see that in the output of the script you provided in the first post.
Can you give me the command line of how you're invoking the script?
Also, I will try invoking the script for the target region just to cover off that difference in my own testing.

Here is the bash script i used  when invoking the script. Sorry i have to block some text because it's my company's server.
#!/usr/bin/env bash
printf "\nRunning pub/sub sample application...\n"
python3 pubsub.py --endpoint xxxxxxxx-ats.iot.ap-southeast-1.amazonaws.com --root-ca root-CA.crt --cert xxxxxxxx-certificate.pem.crt --key xxxxxxx-private.pem.key

Ok i will try the C++ SDK later, the PC i usually used for building Yocto is still used for other projects.

@sskrn were you able to move forward here?

@sskrn please reeopen if needed.

I am stuck at the same problem with a raspi 4 honister image.
python3 pubsub.py --endpoint xxxxxxxxx-ats.iot.eu-central-1.amazonaws.com --cert 1f677c799e-certificate.pem.crt --key
  1f677c799e-private.pem.key --root-ca AmazonRootCA1.pem --client-id test-1 --topic test/topic --message "test" --verbosity Trace
[INFO] [2021-12-02T19:20:21Z] [0000007fa26ce010] [event-loop] - id=0x556e43cda0: Initializing edge-triggered epoll
[INFO] [2021-12-02T19:20:21Z] [0000007fa26ce010] [event-loop] - id=0x556e43cda0: Using eventfd for cross-thread notifications.
[TRACE] [2021-12-02T19:20:21Z] [0000007fa26ce010] [event-loop] - id=0x556e43cda0: eventfd descriptor 5.
[INFO] [2021-12-02T19:20:21Z] [0000007fa26ce010] [event-loop] - id=0x556e43cda0: Starting event-loop thread.
[INFO] [2021-12-02T19:20:21Z] [0000007fa26ce010] [dns] - id=0x556e437db0: Initializing default host resolver with 16 max host entries.
[INFO] [2021-12-02T19:20:21Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: main loop started
[TRACE] [2021-12-02T19:20:21Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: subscribing to events on fd 5
[INFO] [2021-12-02T19:20:21Z] [0000007fa26ce010] [channel-bootstrap] - id=0x556e3dc6e0: Initializing client bootstrap with event-loop group 0x556e43cd20
[INFO] [2021-12-02T19:20:21Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: default timeout 100000, and max events to process per tick 100
[TRACE] [2021-12-02T19:20:21Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: waiting for a maximum of 100000 ms
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa26ce010] [tls-handler] - ctx: Certificate and key have been set, setting them up now.
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa26ce010] [tls-handler] - ctx: Setting ALPN list x-amzn-mqtt-ca
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa26ce010] [mqtt-client] - client=0x556e415f30: Initalizing MQTT client
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa26ce010] [mqtt-client] - id=0x556e3dc750: Creating new connection
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa26ce010] [mqtt-topic-tree] - tree=0x556e3dc9b8: Creating new topic tree
[TRACE] [2021-12-02T19:20:22Z] [0000007fa26ce010] [mqtt-client] - id=0x556e3dc750: Setting connection interrupted and resumed handlers
Connecting to a92fa5i0qisfk-ats.iot.eu-central-1.amazonaws.com with client ID 'test-1'...
[TRACE] [2021-12-02T19:20:22Z] [0000007fa26ce010] [mqtt-client] - id=0x556e3dc750: Setting reconnect timeouts min: 5 max: 60
[TRACE] [2021-12-02T19:20:22Z] [0000007fa26ce010] [mqtt-client] - id=0x556e3dc750: Setting username and password
[TRACE] [2021-12-02T19:20:22Z] [0000007fa26ce010] [mqtt-client] - id=0x556e3dc750: Opening connection
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa26ce010] [mqtt-client] - id=0x556e3dc750: Begin connecting process, switch state to CONNECTING.
[INFO] [2021-12-02T19:20:22Z] [0000007fa26ce010] [mqtt-client] - id=0x556e3dc750: using ping timeout of<PHONE_NUMBER> ns
[TRACE] [2021-12-02T19:20:22Z] [0000007fa26ce010] [channel-bootstrap] - id=0x556e3dc6e0: attempting to initialize a new client channel to a92fa5i0qisfk-ats.iot.eu-central-1.amazonaws.com:443
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa26ce010] [dns] - id=0x556e437db0: Host resolution requested for a92fa5i0qisfk-ats.iot.eu-central-1.amazonaws.com
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa26ce010] [dns] - id=0x556e437db0: No cached entries found for a92fa5i0qisfk-ats.iot.eu-central-1.amazonaws.com starting new resolver thread.
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: resolving host a92fa5i0qisfk-ats.iot.eu-central-1.amazonaws.com
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: resolved record: <IP_ADDRESS>
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: resolved record: <IP_ADDRESS>
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: resolved record: <IP_ADDRESS>
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: resolved record: <IP_ADDRESS>
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: resolved record: <IP_ADDRESS>
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: resolved record: <IP_ADDRESS>
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: resolved record: <IP_ADDRESS>
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: resolved record: <IP_ADDRESS>
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: resolved record: 2a01:578:13::37d:4eeb
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: resolved record: 2a01:578:13::12b9:bbfa
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: resolved record: 2a01:578:13::12c4:e5aa
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: resolved record: 2a01:578:13::37e:6944
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: resolved record: 2a01:578:13::239d:645f
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: resolved record: 2a01:578:13::12c4:dd5a
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: resolved record: 2a01:578:13::12c0:59b6
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: resolved record: 2a01:578:13::37a:c699
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static, resolving host a92fa5i0qisfk-ats.iot.eu-central-1.amazonaws.com successful, returned 16 addresses
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: new address resolved <IP_ADDRESS> for host a92fa5i0qisfk-ats.iot.eu-central-1.amazonaws.com caching
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: new address resolved <IP_ADDRESS> for host a92fa5i0qisfk-ats.iot.eu-central-1.amazonaws.com caching
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: new address resolved <IP_ADDRESS> for host a92fa5i0qisfk-ats.iot.eu-central-1.amazonaws.com caching
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: new address resolved <IP_ADDRESS> for host a92fa5i0qisfk-ats.iot.eu-central-1.amazonaws.com caching
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: new address resolved <IP_ADDRESS> for host a92fa5i0qisfk-ats.iot.eu-central-1.amazonaws.com caching
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: new address resolved <IP_ADDRESS> for host a92fa5i0qisfk-ats.iot.eu-central-1.amazonaws.com caching
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: new address resolved <IP_ADDRESS> for host a92fa5i0qisfk-ats.iot.eu-central-1.amazonaws.com caching
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: new address resolved <IP_ADDRESS> for host a92fa5i0qisfk-ats.iot.eu-central-1.amazonaws.com caching
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: new address resolved 2a01:578:13::37d:4eeb for host a92fa5i0qisfk-ats.iot.eu-central-1.amazonaws.com caching
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: new address resolved 2a01:578:13::12b9:bbfa for host a92fa5i0qisfk-ats.iot.eu-central-1.amazonaws.com caching
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: new address resolved 2a01:578:13::12c4:e5aa for host a92fa5i0qisfk-ats.iot.eu-central-1.amazonaws.com caching
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: new address resolved 2a01:578:13::37e:6944 for host a92fa5i0qisfk-ats.iot.eu-central-1.amazonaws.com caching
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: new address resolved 2a01:578:13::239d:645f for host a92fa5i0qisfk-ats.iot.eu-central-1.amazonaws.com caching
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: new address resolved 2a01:578:13::12c4:dd5a for host a92fa5i0qisfk-ats.iot.eu-central-1.amazonaws.com caching
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: new address resolved 2a01:578:13::12c0:59b6 for host a92fa5i0qisfk-ats.iot.eu-central-1.amazonaws.com caching
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: new address resolved 2a01:578:13::37a:c699 for host a92fa5i0qisfk-ats.iot.eu-central-1.amazonaws.com caching
[TRACE] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: remaining record count for host 8
[TRACE] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: remaining record count for host 8
[TRACE] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: vending address 2a01:578:13::37d:4eeb for host a92fa5i0qisfk-ats.iot.eu-central-1.amazonaws.com to caller
[TRACE] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static: vending address <IP_ADDRESS> for host a92fa5i0qisfk-ats.iot.eu-central-1.amazonaws.com to caller
[DEBUG] [2021-12-02T19:20:22Z] [0000007f9bfff150] [dns] - static, invoking resolution callback for host a92fa5i0qisfk-ats.iot.eu-central-1.amazonaws.com with 2 addresses
[TRACE] [2021-12-02T19:20:22Z] [0000007f9bfff150] [channel-bootstrap] - id=0x556e3dc6e0: dns resolution completed. Kicking off connections on 2 addresses. First one back wins.
[TRACE] [2021-12-02T19:20:22Z] [0000007f9bfff150] [event-loop] - id=0x556e43cda0: Scheduling task 0x7f900068a0 cross-thread for timestamp 0
[TRACE] [2021-12-02T19:20:22Z] [0000007f9bfff150] [event-loop] - id=0x556e43cda0: Waking up event-loop thread
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: wake up with 1 events to process.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: activity on fd 5, invoking handler.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: notified of cross-thread tasks to schedule
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: processing cross-thread tasks
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: task 0x7f900068a0 pulled to event-loop, scheduling now.
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [task-scheduler] - id=0x7f900068a0: Scheduling attempt_connection task for immediate execution
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: running scheduled tasks.
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [task-scheduler] - id=0x7f900068a0: Running attempt_connection task with <Running> status
[TRACE] [2021-12-02T19:20:22Z] [0000007f9bfff150] [event-loop] - id=0x556e43cda0: Scheduling task 0x7f90006a60 cross-thread for timestamp 0
[TRACE] [2021-12-02T19:20:22Z] [0000007f9bfff150] [event-loop] - id=0x556e43cda0: Waking up event-loop thread
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=-1: initializing with domain 1 and type 0
[ERROR] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel-bootstrap] - id=0x556e3dc6e0: failed to create socket with error 1045
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: no more scheduled tasks using default timeout.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: waiting for a maximum of 100000 ms
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: wake up with 1 events to process.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: activity on fd 5, invoking handler.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: notified of cross-thread tasks to schedule
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: processing cross-thread tasks
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: task 0x7f90006a60 pulled to event-loop, scheduling now.
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [task-scheduler] - id=0x7f90006a60: Scheduling attempt_connection task for immediate execution
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: running scheduled tasks.
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [task-scheduler] - id=0x7f90006a60: Running attempt_connection task with <Running> status
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: initializing with domain 0 and type 0
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: setting socket options to: keep-alive 0, keep idle 0, keep-alive interval 0, keep-alive probe count 0.
[WARN] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: setsockopt() for NO_SIGNAL failed with errno 92. If you are having SIGPIPE signals thrown, you may want to install a signal trap in your application layer.
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: beginning connect.
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: connecting to endpoint <IP_ADDRESS>:443.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: connection pending waiting on event-loop notification or timeout.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: subscribing to events on fd 7
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: scheduling timeout task for<PHONE_NUMBER>744.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: scheduling task 0x7f90006a00 in-thread for timestamp<PHONE_NUMBER>744
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [task-scheduler] - id=0x7f90006a00: Scheduling (null) task for future execution at time<PHONE_NUMBER>744
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: detected more scheduled tasks with the next occurring at<PHONE_NUMBER>, using timeout of 4999.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: waiting for a maximum of 4999 ms
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: wake up with 1 events to process.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: activity on fd 7, invoking handler.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - fd=7: connection activity handler triggered
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: has not timed out yet proceeding with connection.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: un-subscribing from events on fd 7
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: scheduling task 0x7f9c0010c0 in-thread for timestamp 0
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [task-scheduler] - id=0x7f9c0010c0: Scheduling epoll_event_loop_unsubscribe_cleanup task for immediate execution
[INFO] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: connection success
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: local endpoint <IP_ADDRESS>:55276
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: assigning to event loop 0x556e43cda0
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: subscribing to events on fd 7
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel-bootstrap] - id=0x556e3dc6e0: client connection on socket 0x7f9c001790 completed with error 0.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel-bootstrap] - id=0x556e3dc6e0: Successful connection, creating a new channel using socket 0x7f9c001790.
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: Beginning creation and setup of new channel.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: scheduling task 0x7f9c001b30 in-thread for timestamp 0
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [task-scheduler] - id=0x7f9c001b30: Scheduling on_channel_setup_complete task for immediate execution
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: running scheduled tasks.
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [task-scheduler] - id=0x7f9c0010c0: Running epoll_event_loop_unsubscribe_cleanup task with <Running> status
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [task-scheduler] - id=0x7f9c001b30: Running on_channel_setup_complete task with <Running> status
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: setup complete, notifying caller.
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: no message pool is currently stored in the event-loop local storage, adding 0x7f9c001f80 with max message size 16384, message count 4, with 4 small blocks of 128 bytes.
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel-bootstrap] - id=0x556e3dc6e0: channel 0x7f9c002280 setup succeeded: bootstrapping.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: creating new slot 0x7f9c013060.
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket-handler] - id=0x7f9c013410: Socket handler created with max_read_size of 16384
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] -  id=0x7f9c001790 fd=7: subscribing to readable events
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel-bootstrap] - id=0x556e3dc6e0: Setting up socket handler on channel 0x7f9c002280 with handler 0x7f9c013410 on slot 0x7f9c013060.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: creating new slot 0x7f9c002c70.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel-bootstrap] - id=0x556e3dc6e0: Setting up client TLS on channel 0x7f9c002280 with handler 0x7f9c013790 on slot 0x7f9c002c70
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [tls-handler] - id=0x7f9c013790: Kicking off TLS negotiation.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: scheduling task with wrapper task id 0x7f9c0137c0.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: scheduling task 0x7f9c0137c0 in-thread for timestamp<PHONE_NUMBER>651
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [task-scheduler] - id=0x7f9c0137c0: Scheduling tls_timeout task for future execution at time<PHONE_NUMBER>651
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: acquired message 0x7f9c00efc0 of capacity 217 from pool 0x7f9c001f80. Requested size was 217
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: sending write message of size 217, from slot 0x7f9c002c70 to slot 0x7f9c013060 with handler 0x7f9c013410.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket-handler] - id=0x7f9c013410: writing message of size 217
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: processing write requests, called from aws_socket_write
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: dequeued write request of size 217, remaining to write 217
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: send written size 217
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: remaining write request to write 0
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: write request completed
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: scheduling task 0x7f9c001930 in-thread for timestamp 0
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [task-scheduler] - id=0x7f9c001930: Scheduling socket_written_task task for immediate execution
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: detected more scheduled tasks with the next occurring at 0, using timeout of 0.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: waiting for a maximum of 0 ms
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: wake up with 1 events to process.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: activity on fd 7, invoking handler.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: is writable
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: processing write requests, invoked by the event-loop
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: running scheduled tasks.
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [task-scheduler] - id=0x7f9c001930: Running socket_written_task task with <Running> status
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket-handler] - static: write of size 217, completed on channel 0x7f9c002280
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: detected more scheduled tasks with the next occurring at<PHONE_NUMBER>, using timeout of 4981.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: waiting for a maximum of 4981 ms
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: wake up with 1 events to process.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: activity on fd 7, invoking handler.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: is readable
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket-handler] - id=0x7f9c013410: socket is now readable
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket-handler] - id=0x7f9c013410: invoking read. Downstream window<PHONE_NUMBER>3709551615, max_to_read 16384
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: acquired message 0x7f9c00efc0 of capacity 16384 from pool 0x7f9c001f80. Requested size was 16384
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: read of 117
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket-handler] - id=0x7f9c013410: read 117 from socket
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: sending read message of size 117, from slot 0x7f9c013060 to slot 0x7f9c002c70 with handler 0x7f9c013790.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: acquired message 0x7f9c00efc0 of capacity 16267 from pool 0x7f9c001f80. Requested size was 16267
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: read of 1440
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket-handler] - id=0x7f9c013410: read 1440 from socket
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: sending read message of size 1440, from slot 0x7f9c013060 to slot 0x7f9c002c70 with handler 0x7f9c013790.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: acquired message 0x7f9c00efc0 of capacity 14827 from pool 0x7f9c001f80. Requested size was 14827
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: read of 3566
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket-handler] - id=0x7f9c013410: read 3566 from socket
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: sending read message of size 3566, from slot 0x7f9c013060 to slot 0x7f9c002c70 with handler 0x7f9c013790.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: acquired message 0x7f9c00efc0 of capacity 11261 from pool 0x7f9c001f80. Requested size was 11261
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: read of 384
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket-handler] - id=0x7f9c013410: read 384 from socket
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: sending read message of size 384, from slot 0x7f9c013060 to slot 0x7f9c002c70 with handler 0x7f9c013790.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: acquired message 0x7f9c00efc0 of capacity 876 from pool 0x7f9c001f80. Requested size was 876
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: sending write message of size 876, from slot 0x7f9c002c70 to slot 0x7f9c013060 with handler 0x7f9c013410.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket-handler] - id=0x7f9c013410: writing message of size 876
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: processing write requests, called from aws_socket_write
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: dequeued write request of size 876, remaining to write 876
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: send written size 876
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: remaining write request to write 0
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: write request completed
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: scheduling task 0x7f9c001930 in-thread for timestamp 0
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [task-scheduler] - id=0x7f9c001930: Scheduling socket_written_task task for immediate execution
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: acquired message 0x7f9c0132f0 of capacity 75 from pool 0x7f9c001f80. Requested size was 75
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: sending write message of size 75, from slot 0x7f9c002c70 to slot 0x7f9c013060 with handler 0x7f9c013410.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket-handler] - id=0x7f9c013410: writing message of size 75
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: processing write requests, called from aws_socket_write
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: dequeued write request of size 75, remaining to write 75
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: send written size 75
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: remaining write request to write 0
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: write request completed
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: acquired message 0x7f9c00aec0 of capacity 269 from pool 0x7f9c001f80. Requested size was 269
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: sending write message of size 269, from slot 0x7f9c002c70 to slot 0x7f9c013060 with handler 0x7f9c013410.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket-handler] - id=0x7f9c013410: writing message of size 269
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: processing write requests, called from aws_socket_write
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: dequeued write request of size 269, remaining to write 269
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: send written size 269
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: remaining write request to write 0
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: write request completed
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: acquired message 0x7f9c0131d0 of capacity 6 from pool 0x7f9c001f80. Requested size was 6
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: sending write message of size 6, from slot 0x7f9c002c70 to slot 0x7f9c013060 with handler 0x7f9c013410.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket-handler] - id=0x7f9c013410: writing message of size 6
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: processing write requests, called from aws_socket_write
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: dequeued write request of size 6, remaining to write 6
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: send written size 6
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: remaining write request to write 0
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: write request completed
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: acquired message 0x7f9c0130b0 of capacity 45 from pool 0x7f9c001f80. Requested size was 45
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: sending write message of size 45, from slot 0x7f9c002c70 to slot 0x7f9c013060 with handler 0x7f9c013410.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket-handler] - id=0x7f9c013410: writing message of size 45
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: processing write requests, called from aws_socket_write
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: dequeued write request of size 45, remaining to write 45
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: send written size 45
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: remaining write request to write 0
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: write request completed
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: acquired message 0x7f9c006d80 of capacity 10877 from pool 0x7f9c001f80. Requested size was 10877
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: read of -1
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: read would block
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket-handler] - id=0x7f9c013080: total read on this tick 5507
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket-handler] - id=0x7f9c013410: out of data to read on socket. Waiting on event-loop notification.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: is writable
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: processing write requests, invoked by the event-loop
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: running scheduled tasks.
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [task-scheduler] - id=0x7f9c001930: Running socket_written_task task with <Running> status
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket-handler] - static: write of size 876, completed on channel 0x7f9c002280
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket-handler] - static: write of size 75, completed on channel 0x7f9c002280
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket-handler] - static: write of size 269, completed on channel 0x7f9c002280
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket-handler] - static: write of size 6, completed on channel 0x7f9c002280
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket-handler] - static: write of size 45, completed on channel 0x7f9c002280
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: detected more scheduled tasks with the next occurring at<PHONE_NUMBER>, using timeout of 4937.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: waiting for a maximum of 4937 ms
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: wake up with 1 events to process.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: activity on fd 7, invoking handler.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: is writable
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: processing write requests, invoked by the event-loop
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: running scheduled tasks.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: detected more scheduled tasks with the next occurring at<PHONE_NUMBER>, using timeout of 4937.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: waiting for a maximum of 4937 ms
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: wake up with 1 events to process.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: activity on fd 7, invoking handler.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: is readable
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket-handler] - id=0x7f9c013410: socket is now readable
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket-handler] - id=0x7f9c013410: invoking read. Downstream window<PHONE_NUMBER>3709551615, max_to_read 16384
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: acquired message 0x7f9c00aec0 of capacity 16384 from pool 0x7f9c001f80. Requested size was 16384
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket] - id=0x7f9c001790 fd=7: read of 51
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [socket-handler] - id=0x7f9c013410: read 51 from socket
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: sending read message of size 51, from slot 0x7f9c013060 to slot 0x7f9c002c70 with handler 0x7f9c013790.
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [tls-handler] - id=0x7f9c013790: Alpn protocol negotiated as x-amzn-mqtt-ca
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [tls-handler] - id=0x7f9c013790: Remote server name is a92fa5i0qisfk-ats.iot.eu-central-1.amazonaws.com
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel-bootstrap] - id=0x556e3dc6e0: tls negotiation result 0 on channel 0x7f9c002280
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: creating new slot 0x7f9c02a650.
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [mqtt-client] - id=0x556e3dc750: Connection successfully opened, sending CONNECT packet
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [channel] - id=0x7f9c002280: scheduling task with wrapper task id 0x7f9c02bd60.
[TRACE] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [event-loop] - id=0x556e43cda0: scheduling task 0x7f9c02bd60 in-thread for timestamp<PHONE_NUMBER>614
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [task-scheduler] - id=0x7f9c02bd60: Scheduling mqtt_connack_timeout task for future execution at time<PHONE_NUMBER>614
[DEBUG] [2021-12-02T19:20:22Z] [0000007fa0c9e150] [mqtt-client] - id=0x556e3dc750: Adding username  to connection
Fatal error condition occurred in /usr/src/debug/aws-c-mqtt/0.7.6-r0/git/aws-c-mqtt/source/packets.c:158: username.len > 0
Exiting Application
################################################################################
Stack trace:
################################################################################
/usr/lib/libaws-c-common.so.1(aws_backtrace_print+0x68) [0x7fa1c15018]
/usr/lib/libaws-c-common.so.1(aws_fatal_assert+0x58) [0x7fa1c06228]
/usr/lib/libaws-c-mqtt.so.1.0.0(aws_mqtt_packet_connect_add_credentials+0x98) [0x7fa1d9a7f8]
/usr/lib/libaws-c-mqtt.so.1.0.0(+0x9804) [0x7fa1d92804]
/usr/lib/libaws-c-io.so.1.0.0(+0xd3e8) [0x7fa1c633e8]
/usr/lib/libaws-c-io.so.1.0.0(+0x246b4) [0x7fa1c7a6b4]
/usr/lib/libaws-c-io.so.1.0.0(+0x24d14) [0x7fa1c7ad14]
/usr/lib/libaws-c-io.so.1.0.0(+0x276b4) [0x7fa1c7d6b4]
/usr/lib/libaws-c-io.so.1.0.0(+0x27958) [0x7fa1c7d958]
/usr/lib/libaws-c-io.so.1.0.0(+0x233d4) [0x7fa1c793d4]
/usr/lib/libaws-c-io.so.1.0.0(+0x19920) [0x7fa1c6f920]
/usr/lib/libaws-c-common.so.1(+0x1da50) [0x7fa1c15a50]
/lib/libc.so.6(+0x803d8) [0x7fa21e53d8]
/lib/libc.so.6(+0xe6f1c) [0x7fa224bf1c]
################################################################################
Stack trace:
################################################################################
/usr/lib/libaws-c-common.so.1(aws_backtrace_print+0x68) [0x7fa1c15018]
/usr/lib/python3.9/site-packages/_awscrt.cpython-39-aarch64-linux-gnu.so(+0x12f00) [0x7fa1df9f00]
linux-vdso.so.1(__kernel_rt_sigreturn+0) [0x7fa26d67c0]
/usr/lib/libaws-c-common.so.1(aws_backtrace_print+0x3c) [0x7fa1c14fec]
/usr/lib/python3.9/site-packages/_awscrt.cpython-39-aarch64-linux-gnu.so(+0x12f00) [0x7fa1df9f00]
linux-vdso.so.1(__kernel_rt_sigreturn+0) [0x7fa26d67c0]
/lib/libc.so.6(+0x81edc) [0x7fa21e6edc]
/lib/libc.so.6(raise+0x20) [0x7fa21a2b50]
/lib/libc.so.6(abort+0xd4) [0x7fa218fd64]
/usr/lib/libaws-c-common.so.1(+0xe22c) [0x7fa1c0622c]
/usr/lib/libaws-c-mqtt.so.1.0.0(aws_mqtt_packet_connect_add_credentials+0x98) [0x7fa1d9a7f8]
/usr/lib/libaws-c-mqtt.so.1.0.0(+0x9804) [0x7fa1d92804]
/usr/lib/libaws-c-io.so.1.0.0(+0xd3e8) [0x7fa1c633e8]
/usr/lib/libaws-c-io.so.1.0.0(+0x246b4) [0x7fa1c7a6b4]
/usr/lib/libaws-c-io.so.1.0.0(+0x24d14) [0x7fa1c7ad14]
/usr/lib/libaws-c-io.so.1.0.0(+0x276b4) [0x7fa1c7d6b4]
/usr/lib/libaws-c-io.so.1.0.0(+0x27958) [0x7fa1c7d958]
/usr/lib/libaws-c-io.so.1.0.0(+0x233d4) [0x7fa1c793d4]
/usr/lib/libaws-c-io.so.1.0.0(+0x19920) [0x7fa1c6f920]
/usr/lib/libaws-c-common.so.1(+0x1da50) [0x7fa1c15a50]
/lib/libc.so.6(+0x803d8) [0x7fa21e53d8]
/lib/libc.so.6(+0xe6f1c) [0x7fa224bf1c]

Anything I could do to track down the issue @rpcme?

Hi @WolfWalter sorry about the delay.  I was at re:Invent and wasn't checking messages, and this issue is Closed so I only saw this when checking email.  I will reopen and see if we can repro.  @RephaelCongmon

Hello @WolfWalter , may I ask you to share your local.conf that you used to build the image (don't include any confidential information)? It can help us reproduce the issue faster.

Hi @RephaelCongmon,
my local.conf:
# debug-tweaks
EXTRA_IMAGE_FEATURES = "debug-tweaks"

# diskmon
BB_DISKMON_DIRS = "\
    STOPTASKS,${TMPDIR},1G,100K \
    STOPTASKS,${DL_DIR},1G,100K \
    STOPTASKS,${SSTATE_DIR},1G,100K \
    STOPTASKS,/tmp,100M,100K \
    ABORT,${TMPDIR},100M,1K \
    ABORT,${DL_DIR},100M,1K \
    ABORT,${SSTATE_DIR},100M,1K \
    ABORT,/tmp,10M,1K"

# standard
CONF_VERSION = "2"
PACKAGE_CLASSES = "package_rpm"
SDKMACHINE = "x86_64"
USER_CLASSES = "buildstats image-prelink"
PATCHRESOLVE = "noop"
RPI_EXTRA_CONFIG = ' \n \
  kernel=kernel_rpilinux.img\n \
  arm_64bit=1\n \
  enable_uart=1\n \
  '

MACHINE ??= "raspberrypi4-64"
DISTRO ??= "poky"
BBMULTICONFIG ?= ""

I am using kas to build the image. Currently the is nothing confidential in my setup. Just exploring aws iot for raspberry pi with yocto . So if it helps I could clean it up and share a repo to repoduce the issue.

Hello @WolfWalter ,
I was not able to reproduce the issue outside of kas. The next step for me to try to repro is to copy your exact configuration and build with kas and then see if I can repro. When you run a yocto build, can you please share with me the exact hashes for your configuration?

Also, sharing your repo could be helpful as well so it would be great if you could share that with me.

Hi @RephaelCongmon,
here is the repo. Just playing around there. Nothing serious yet. Yes I am using a raspberry pi 4.
Here ist the output of kas for-all-repos description.yml 'git status' on my machine:
2021-12-11 13:04:36 - INFO     - kas 2.5 started
2021-12-11 13:04:36 - INFO     - /home/wolf/development/meta-aws-platform-bsp$ git rev-parse --show-toplevel
2021-12-11 13:04:36 - INFO     - /home/wolf/development/meta-aws-platform-bsp$ git rev-parse --show-toplevel
2021-12-11 13:04:36 - INFO     - Using /home/wolf/development/meta-aws-platform-bsp as root for repository meta-solvispi
2021-12-11 13:04:36 - INFO     - /home/wolf/development/meta-aws-platform-bsp/poky$ git remote set-url origin https://git.yoctoproject.org/git/poky
2021-12-11 13:04:36 - INFO     - /home/wolf/development/meta-aws-platform-bsp/poky/meta-openembedded$ git remote set-url origin http://git.openembedded.org/meta-openembedded
2021-12-11 13:04:36 - INFO     - /home/wolf/development/meta-aws-platform-bsp/poky/meta-raspberrypi$ git remote set-url origin https://github.com/agherzan/meta-raspberrypi.git
2021-12-11 13:04:36 - INFO     - /home/wolf/development/meta-aws-platform-bsp/poky/meta-aws$ git remote set-url origin https://github.com/aws/meta-aws.git
2021-12-11 13:04:36 - INFO     - /home/wolf/development/meta-aws-platform-bsp/poky$ git cat-file -t honister
2021-12-11 13:04:36 - INFO     - /home/wolf/development/meta-aws-platform-bsp/poky/meta-aws$ git cat-file -t master
2021-12-11 13:04:36 - INFO     - /home/wolf/development/meta-aws-platform-bsp/poky/meta-raspberrypi$ git cat-file -t honister
2021-12-11 13:04:36 - INFO     - /home/wolf/development/meta-aws-platform-bsp/poky/meta-openembedded$ git cat-file -t honister
2021-12-11 13:04:36 - INFO     - Repository poky already contains honister as commit
2021-12-11 13:04:36 - INFO     - Repository meta-aws already contains master as commit
2021-12-11 13:04:36 - INFO     - Repository meta-raspberrypi already contains honister as commit
2021-12-11 13:04:36 - INFO     - Repository meta-openembedded already contains honister as commit
2021-12-11 13:04:36 - INFO     - /home/wolf/development/meta-aws-platform-bsp$ git rev-parse --show-toplevel
2021-12-11 13:04:36 - INFO     - Using /home/wolf/development/meta-aws-platform-bsp as root for repository meta-solvispi
2021-12-11 13:04:36 - INFO     - /home/wolf/development/meta-aws-platform-bsp/poky$ git status -s
2021-12-11 13:04:36 - INFO     - /home/wolf/development/meta-aws-platform-bsp/poky$ git rev-parse --verify -q origin/honister
2021-12-11 13:04:36 - INFO     - e3d86eb7383d32cacef82033ef52d646d2a7a0ea
2021-12-11 13:04:36 - INFO     - /home/wolf/development/meta-aws-platform-bsp/poky$ git checkout -q e3d86eb7383d32cacef82033ef52d646d2a7a0ea -B honister
2021-12-11 13:04:36 - INFO     - /home/wolf/development/meta-aws-platform-bsp/poky/meta-openembedded$ git status -s
2021-12-11 13:04:37 - INFO     - /home/wolf/development/meta-aws-platform-bsp/poky/meta-openembedded$ git rev-parse --verify -q origin/honister
2021-12-11 13:04:37 - INFO     - ad52a41de8b4b7d619d1376d0a0090ebcfff56da
2021-12-11 13:04:37 - INFO     - /home/wolf/development/meta-aws-platform-bsp/poky/meta-openembedded$ git checkout -q ad52a41de8b4b7d619d1376d0a0090ebcfff56da -B honister
2021-12-11 13:04:37 - INFO     - /home/wolf/development/meta-aws-platform-bsp/poky/meta-raspberrypi$ git status -s
2021-12-11 13:04:37 - INFO     - /home/wolf/development/meta-aws-platform-bsp/poky/meta-raspberrypi$ git rev-parse --verify -q origin/honister
2021-12-11 13:04:37 - INFO     - 1584bddcf31f4bf3acc2304aa8dae927e8bec970
2021-12-11 13:04:37 - INFO     - /home/wolf/development/meta-aws-platform-bsp/poky/meta-raspberrypi$ git checkout -q 1584bddcf31f4bf3acc2304aa8dae927e8bec970 -B honister
2021-12-11 13:04:37 - INFO     - /home/wolf/development/meta-aws-platform-bsp/poky/meta-aws$ git status -s
2021-12-11 13:04:37 - INFO     - /home/wolf/development/meta-aws-platform-bsp/poky/meta-aws$ git rev-parse --verify -q origin/master
2021-12-11 13:04:37 - INFO     - 8893e0cd4c0981eeda941eaa9ad2eb9359670502
2021-12-11 13:04:37 - INFO     - /home/wolf/development/meta-aws-platform-bsp/poky/meta-aws$ git checkout -q 8893e0cd4c0981eeda941eaa9ad2eb9359670502 -B master
2021-12-11 13:04:37 - INFO     - /home/wolf/development/meta-aws-platform-bsp$ git rev-parse --show-toplevel
2021-12-11 13:04:37 - INFO     - Using /home/wolf/development/meta-aws-platform-bsp as root for repository meta-solvispi
2021-12-11 13:04:37 - INFO     - /home/wolf/development/meta-aws-platform-bsp$ git rev-parse --show-toplevel
2021-12-11 13:04:37 - INFO     - Using /home/wolf/development/meta-aws-platform-bsp as root for repository meta-solvispi
2021-12-11 13:04:37 - INFO     - /home/wolf/development/meta-aws-platform-bsp/poky$ /tmp/tmponpyilf2/get_bb_env /home/wolf/development/meta-aws-platform-bsp/build
2021-12-11 13:04:37 - INFO     - /home/wolf/development/meta-aws-platform-bsp$ git rev-parse --show-toplevel
2021-12-11 13:04:37 - INFO     - Using /home/wolf/development/meta-aws-platform-bsp as root for repository meta-solvispi
2021-12-11 13:04:37 - INFO     - /home/wolf/development/meta-aws-platform-bsp$ git rev-parse --show-toplevel
2021-12-11 13:04:37 - INFO     - Using /home/wolf/development/meta-aws-platform-bsp as root for repository meta-solvispi
2021-12-11 13:04:37 - INFO     - /home/wolf/development/meta-aws-platform-bsp/poky$ git status
On branch honister
nothing to commit, working tree clean
2021-12-11 13:04:37 - INFO     - /home/wolf/development/meta-aws-platform-bsp/poky/meta-openembedded$ git status
On branch honister
nothing to commit, working tree clean
2021-12-11 13:04:37 - INFO     - /home/wolf/development/meta-aws-platform-bsp/poky/meta-raspberrypi$ git status
On branch honister
nothing to commit, working tree clean
2021-12-11 13:04:37 - INFO     - /home/wolf/development/meta-aws-platform-bsp/poky/meta-aws$ git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean
2021-12-11 13:04:37 - INFO     - /home/wolf/development/meta-aws-platform-bsp$ git status
On branch testing-meta-aws
Your branch is up to date with 'origin/testing-meta-aws'.

Hi @WolfWalter , writing this to let you know I'm still working on reproducing this. Just to clarify, are you building the image on the Pi itself using kas and then running the bash scripts to prepare the SD card on the Pi itself as well?

Hi @RephaelCongmon ,
no, I am building and preparing the SD card on a Ubuntu 20.04 Intel machine.

@WolfWalter were you able to overcome this issue? We were not able to reproduce it, I am not sure where there is a disconnect. It could be related to another recently fixed item?

Hi @rpcme,
I'm having what seems to be the same issue. I'm also building using Siemens kas, since it provides a handy container image that can be easily deployed on a development host or a build machine, without having to worry about Linux distribution specifics.
What I see is the client crashing on various instances, complaining about null strings. One example is not being able to start it via configuration file; I always get:
Fatal error condition occurred in /usr/src/debug/aws-c-common/0.8.20-r0/git/source/string.c:217: allocator && aws_byte_cursor_is_valid(cursor)
Exiting Application
################################################################################
Stack trace:
################################################################################
/usr/lib/libaws-c-common.so.1(aws_backtrace_print+0x62) [0x7fced5dee4c2]
/usr/lib/libaws-c-common.so.1(aws_fatal_assert+0x48) [0x7fced5dd3228]
/usr/lib/libaws-c-common.so.1(+0x35d89) [0x7fced5df4d89]
/usr/lib/libaws-c-common.so.1(aws_json_value_get_from_object+0x29) [0x7fced5de5fc9]
/usr/lib/libaws-crt-cpp.so(_ZNK3Aws3Crt8JsonView11ValueExistsEPKc+0x1d) [0x7fced5f5539d]
aws-iot-device-client(+0x385dc) [0x55fefb4a95dc]
aws-iot-device-client(+0x3a233) [0x55fefb4ab233]
aws-iot-device-client(+0x3d64d) [0x55fefb4ae64d]
aws-iot-device-client(+0x1e121) [0x55fefb48f121]
/lib/libc.so.6(+0x2d57b) [0x7fced594057b]
/lib/libc.so.6(__libc_start_main+0x80) [0x7fced5940630]
aws-iot-device-client(+0x1ff45) [0x55fefb490f45]
Aborted

Also when testing secure tunnelling, if the tunnel is open at the Cloud end, I see:
2023-05-29T23:02:57.744Z [INFO]  {FileUtils.cpp}: Successfully create directory /home/root/.aws-iot-device-client/sample-shadow/ with required permissions 700
2023-05-29T23:02:57.744Z [INFO]  {Config.cpp}: ~/.aws-iot-device-client/sample-shadow/default-sample-shadow-document
2023-05-29T23:02:57.744Z [INFO]  {Config.cpp}: Succesfully create default file: /home/root/.aws-iot-device-client/sample-shadow/default-sample-shadow-document required for storage of shadow document
2023-05-29T23:02:57.744Z [DEBUG] {Config.cpp}: Did not find a runtime configuration file, assuming Fleet Provisioning has not run for this device
2023-05-29T23:02:57.744Z [DEBUG] {Config.cpp}: Did not find a http proxy config file /home/root/.aws-iot-device-client/http-proxy.conf, assuming HTTP proxy is disabled on this device
2023-05-29T23:02:57.744Z [DEBUG] {EnvUtils.cpp}: Updated PATH environment variable to: /usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/root/.aws-iot-device-client:/home/root/.aws-iot-device-client/jobs:/edge/aws/client:/edge/aws/client/jobs
2023-05-29T23:02:57.744Z [DEBUG] {LockFile.cpp}: creating lockfile
2023-05-29T23:02:57.744Z [INFO]  {Main.cpp}: Now running AWS IoT Device Client version v1.8.0-bb7ff67
2023-05-29T23:02:57.748Z [INFO]  {SharedCrtResourceManager.cpp}: SDK logging is enabled. Check /edge/aws/mqtt/logs/sdk.log for SDK logs.
2023-05-29T23:02:57.749Z [DEBUG] {Retry.cpp}: Retryable function starting, it will retry until success
2023-05-29T23:02:57.753Z [INFO]  {SharedCrtResourceManager.cpp}: Establishing MQTT connection with client id XXXXXXXX...
2023-05-29T23:02:58.229Z [INFO]  {SharedCrtResourceManager.cpp}: MQTT connection established with return code: 0
2023-05-29T23:02:58.229Z [INFO]  {SharedCrtResourceManager.cpp}: Shared MQTT connection is ready!
2023-05-29T23:02:58.230Z [INFO]  {Main.cpp}: Provisioning with Secure Elements is disabled
2023-05-29T23:02:58.230Z [INFO]  {Main.cpp}: Config shadow is disabled
2023-05-29T23:02:58.230Z [INFO]  {Main.cpp}: Jobs is enabled
2023-05-29T23:02:58.230Z [INFO]  {Main.cpp}: Secure Tunneling is enabled
2023-05-29T23:02:58.230Z [INFO]  {Main.cpp}: Device Defender is disabled
2023-05-29T23:02:58.230Z [INFO]  {Main.cpp}: Sample shadow is disabled
2023-05-29T23:02:58.230Z [INFO]  {Main.cpp}: Pub Sub is disabled
2023-05-29T23:02:58.230Z [INFO]  {Main.cpp}: Sensor Publish is disabled
2023-05-29T23:02:58.230Z [INFO]  {SharedCrtResourceManager.cpp}: Starting Device Client features.
2023-05-29T23:02:58.230Z [DEBUG] {FeatureRegistry.cpp}: Attempting to start Jobs
2023-05-29T23:02:58.230Z [INFO]  {Main.cpp}: Client base has been notified that Jobs has started
2023-05-29T23:02:58.230Z [DEBUG] {FeatureRegistry.cpp}: Attempting to start Secure Tunneling
2023-05-29T23:02:58.230Z [INFO]  {SecureTunnelingFeature.cpp}: Running Secure Tunneling!
2023-05-29T23:02:58.230Z [INFO]  {Main.cpp}: Client base has been notified that Secure Tunneling has started
2023-05-29T23:02:58.230Z [INFO]  {JobsFeature.cpp}: Running Jobs!
2023-05-29T23:02:58.230Z [DEBUG] {JobsFeature.cpp}: Attempting to subscribe to startNextPendingJobExecution accepted and rejected
2023-05-29T23:02:58.231Z [DEBUG] {JobsFeature.cpp}: Attempting to subscribe to nextJobChanged events
2023-05-29T23:02:58.231Z [DEBUG] {JobsFeature.cpp}: Attempting to subscribe to updateJobExecutionStatusAccepted for jobId +
2023-05-29T23:02:58.288Z [DEBUG] {SecureTunnelingFeature.cpp}: Received MQTT Tunnel Notification
terminate called after throwing an instance of 'std::logic_error2023-05-29T23:02:58.288Z [DEBUG] {SecureTunnelingFeature.cpp}: Region=us-east-1, Service=SSH'
  what():  basic_string::_M_construct null not valid
Aborted

complaining about  basic_string::_M_construct null not valid , again a null string issue.
Any ideas? Might this be a compiler version issue? In the kas container:
/build % g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/10/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa:hsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 10.2.1-6' --with-bugurl=file:///usr/share/doc/gcc-10/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-10 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-10-Km9U7s/gcc-10-10.2.1/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-10-Km9U7s/gcc-10-10.2.1/debian/tmp-gcn/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-mutex
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 10.2.1 20210110 (Debian 10.2.1-6)

Happy to help debug this - please let me know

Thank you for the follow-up @thomas-roos, really appreciated!
Since I'm a bit in a hurry, I'm thinking of playing around with the compiler settings; I'm almost certain something has changed in g++ v10.x that triggers the bug. Unless you suggest otherwise, I'll move further comments to awslabs/aws-iot-device-client#411.

ok, you can also try to go back in time to beginning of March. This should work.

Tried 912bb30 (from March 1st) but same issue...

ok, strange - at least the ptests will run sucessfully with exact this commit:
BB_VERSION           = "2.0.0"
BUILD_SYS            = "x86_64-linux"
NATIVELSBSTRING      = "universal"
TARGET_SYS           = "x86_64-poky-linux"
MACHINE              = "qemux86-64"
DISTRO               = "poky"
DISTRO_VERSION       = "4.0.10"
TUNE_FEATURES        = "m64 core2"
TARGET_FPU           = ""
meta
meta-poky
meta-yocto-bsp       = "kirkstone:2afcf3e39f9016f590e597cee4b71166c982d58d"
meta-oe
meta-python
meta-networking
meta-multimedia      = "kirkstone:5f120a926b0fcd55cfe7565bb7ddf23661cad498"
meta-aws             = "HEAD:912bb30955c7b28e70d3440dc6b24d8794aa7042"

did create a new issue for this - reopening this old one is confusing: https://github.com/aws4embeddedlinux/meta-aws/issues/4063