[SPARK-31912][SQL][TESTS] Normalize all binary comparison expressions

What changes were proposed in this pull request?
This pr normalize all binary comparison expressions when comparing plans.
Why are the changes needed?
Improve test framework, otherwise this test will fail:
  test("SPARK-31912 Normalize all binary comparison expressions") {
    val original = testRelation
      .where('a === 'b && Literal(13) >= 'b).as("x")
    val optimized = testRelation
      .where(IsNotNull('a) && IsNotNull('b) && 'a === 'b && 'b <= 13 && 'a <= 13).as("x")
    comparePlans(Optimize.execute(original.analyze), optimized.analyze)
  }

Does this PR introduce any user-facing change?
No.
How was this patch tested?
Manual test.

Test build #123557 has started for PR 28734 at commit dbc4614.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/28180/
Test PASSed.

Test build #123557 has finished for PR 28734 at commit dbc4614.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/123557/
Test PASSed.

do you have a use case for it? why do we intentionally switch the operand order?

I encountered this issue when inferring from inequality attributes before, Its order may change:
https://github.com/apache/spark/blob/bfa60393789673b1cd77fbda038cdc8c17c1a866/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/optimizer/InferFiltersFromConstraintsSuite.scala#L402-L407

ok makes sense, LGTM. It's for a new feature, so merging to master should be good enough?

Merged to master.


How to use Tensorflow in my android project?

I am working on a project, where I change the View with a button (working with Fragments). I am changing between a FirstFragment and a CamFragment. Now I want to use Tensorflow (it works on my phone) instead of CamFragment.
When I "import new Module", I get Errors only. Do you have any Tips or solutions how I can do that?
Thank You

Thanks for you interest in TensorFlow, but for general TF usage and Android development questions we recommend that you ask on StackOverflow (I believe I responded to your question there; can't find it now though).


DO NOT MERGE! Fast Forward stable to d1b9985d11fdc2bc6a01d468f2ec8bb0971c752a.

This PR will be merged automatically once checks are successful.

Jenkins job manager/postsubmit passed


Export precision

<@609578720419905575> , <@256888540917399553> reported:

Checked the scala export. Floating point values near zero are being truncated to integers
And Scala interprets integers as harmonics
We're using the SST Tuning lib - is this expected behaviour?

Hi, I'm the person who found this when testing Entonal Studio. The issue is specifically that the Tuning Library strips the decimal point from cent values when rounding. A tuning such as 12tet, which has perfectly round cent values by definition, will be exported without the decimal point. As the decimal point is what the Scala format uses to distinguish cents from rational intervals, the 100 cent integers of 12edo are thus parsed as fractions over 1, i.e. integer harmonics.

OK so we found out that this doesn't happen for scales which are generated by the tuning library or scales that are imported from files. This is happening for scales generated by entonal. So now we need to figure out how entonal is generating the SCL files. (And add that as a test case or feature set to tuning lib)

Turns out this is an entonal bug


parameterise fixed code for Athena Lambda

User Story

parameterise-fixed-code-for-athena
Value

remove fixed code references used in Athena Lambda script
Definition of done

[x] fixed references removed from code and repository updated
[x] test queries on Athena

Reference
How to write good user stories

this task has now been completed


[Code Health] Ensure application module msg responses are non-empty

Summary
Ensure all application module msg responses are non-empty. This adds a Application field to the following protobuf type(s), and updates the unit tests to assert for presence and correctness.

MsgUnstakeApplicationResponse
MsgUndelegateFromGatewayResponse

Issue

#663

Type of change
Select one or more from the following:

[ ] New feature, functionality or library
[ ] Consensus breaking; add the consensus-breaking label if so. See #791 for details
[ ] Bug fix
[x] Code health or cleanup
[ ] Documentation
[ ] Other (specify)

Testing

[ ] Documentation: make docusaurus_start; only needed if you make doc changes
[ ] Unit Tests: make go_develop_and_test
[ ] LocalNet E2E Tests: make test_e2e
[ ] DevNet E2E Tests: Add the devnet-test-e2e label to the PR.

Sanity Checklist

[x] I have tested my changes using the available tooling
[ ] I have commented my code
[x] I have performed a self-review of my own code; both comments & source code
[ ] I create and reference any new tickets, if applicable
[ ] I have left TODOs throughout the codebase, if applicable

We should also return the application in UndelegateFromGateway.

Wonderful catch - thank you! :raised_hands:
In the future, I would like to automate the detection of exactly this case :point_up_2:: the protobuf type has a field defined but none are populated in the return object. The first part was pretty trivial and is already code-complete in #970, but the latter is a bit more involved and requires cleaning up the mess I made in #929 (which is in progress). :sweat_smile:

In the future, I would like to automate the detection of exactly this case 👆: the protobuf type has a field defined but none are populated in the return object. The first part was pretty trivial and is already code-complete in #970, but the latter is a bit more involved and requires cleaning up the mess I made in #929 (which is in progress). 😅

Issue opened:

#1009


hil: zephyr: add delay before provisioning

Add delay so slower devices have time to initialize NVS.
This resolves an issue I'm seeing with the nRF52840 where the credentials are not being stored because they are written before NVS is ready:
------------------------------------------------------------------------------------ Captured stdout setup ------------------------------------------------------------------------------------
o come up
uart:~$
uart:~$ settings set wifi/ssid "MySSID"
Setting wifi/ssid to MySSID
Failed to save setting wifi/ssid:MySSID
[00:00:02.707,366] <inf> wifi_esp_at: AT version: <IP_ADDRESS>(s-4c6eb5e - ESP32 - May 20 2022 03:12:58)
[00:00:02.710,571] <inf> wifi_esp_at: SDK version: qa-test-v4.3.3-20220423
[00:00:02.716,979] <inf> wifi_esp_at: Bin version: 2.4.0(WROVER-32)
[00:00:03.159,454] <inf> wifi_esp_at: ESP Wi-Fi ready
*** Booting Zephyr OS build v3.6.0 ***
[00:00:03.167,724] <inf> fs_nvs: 8 Sectors of 4096 bytes
[00:00:03.167,755] <inf> fs_nvs: alloc wra: 0, fe8
[00:00:03.167,755] <inf> fs_nvs: data wra: 0, 0
[00:00:03.168,060] <inf> golioth_samples: Waiting to obtain IP address

More background information after discussing with Sam:
I'm seeing this running locally, but only after I've erased the flash on the board. If there is a successful run, the delay is not necessary for subsequent runs. This is likely due to the delay necessary to erase the flash when first setting up the storage partition. When that partition already exists, the NVS is immediately ready after reboot. This is likely why we do not see failures in CI when the delay introduced by this PR is not present.


systemd support

It looks like Hypnotoad almost works with systemd, just zero downtime software upgrades still need a little work. The old manager process removes the PID file when it shuts down, and there is a small delay before the new manager process detects this and creates a new one, and systemd considers Hypnotoad dead during this delay.
diff --git a/lib/Mojo/Server/Hypnotoad.pm b/lib/Mojo/Server/Hypnotoad.pm
index 3a0af10..195d914 100644
--- a/lib/Mojo/Server/Hypnotoad.pm
+++ b/lib/Mojo/Server/Hypnotoad.pm
@@ -56,7 +56,7 @@ sub run {
   weaken $self;
   $prefork->on(wait   => sub { $self->_manage });
   $prefork->on(reap   => sub { $self->_cleanup(pop) });
-  $prefork->on(finish => sub { $self->{finished} = 1 });
+  $prefork->on(finish => sub { $self->_finish });

   # Testing
   _exit('Everything looks good!') if $ENV{HYPNOTOAD_TEST};
@@ -87,6 +87,16 @@ sub _cleanup {

 sub _exit { say shift and exit 0 }

+sub _finish {
+  my $self = shift;
+
+  $self->{finish} = 1;
+  return unless my $new = $self->{new};
+  my $prefork = $self->prefork->cleanup(0);
+  unlink $prefork->pid_file;
+  $prefork->ensure_pid_file($new);
+}
+
 sub _hot_deploy {

   # Make sure server is running
@@ -121,7 +131,7 @@ sub _manage {
     }

     # Timeout
-    kill 'KILL', $self->{new}
+    $prefork->cleanup(1) and kill 'KILL', $self->{new}
       if $self->{upgrade} + $self->upgrade_timeout <= steady_time;
   }
 }
diff --git a/lib/Mojo/Server/Prefork.pm b/lib/Mojo/Server/Prefork.pm
index 4ccac85..bd4ee7a 100644
--- a/lib/Mojo/Server/Prefork.pm
+++ b/lib/Mojo/Server/Prefork.pm
@@ -39,7 +39,7 @@ sub check_pid {
 }

 sub ensure_pid_file {
-  my $self = shift;
+  my ($self, $pid) = (shift, shift // $$);

   # Check if PID file already exists
   return if -e (my $file = $self->pid_file);
@@ -50,7 +50,7 @@ sub ensure_pid_file {
     unless open my $handle, '>', $file;
   $self->app->log->info(qq{Creating process id file "$file"});
   chmod 0644, $handle;
-  print $handle $$;
+  print $handle $pid;
 }

 sub healthy {
@@ -433,6 +433,7 @@ not running.
 =head2 ensure_pid_file

   $prefork->ensure_pid_file;
+  $prefork->ensure_pid_file($pid);

 Ensure L</"pid_file"> exists.

This patch should mostly work, but still needs some cleaning up and tests.

I would love to see better built-in support and official recommendations (Reference Manual / Cookbook / FAQ) for how to set up hypnotoad for system-managed service control.
Same with Minion!
e.g. Apache and Nginx include scripts for controlling the starting and stopping of their services, scripts that are designed for various system-level control.  (Or perhaps I'm mistaken and it's actually the distros that create and maintain these, e.g. Debian, Ubuntu, Redhat, etc...)

And done. https://github.com/kraih/mojo/commit/25471294ef714e2116dd2bbe98de4893285c1121


Make some words in "stationery/business-card.svg" strong text

Also in "stationery/images/project-record-book.svg"

Also in graphical-elements/images/examples-of-usage-of-the-graphical-elements.svg"

Also in "/graphical-elements/inncorect-addition-of-elements.svg"

Fixed withactivating typography #23


Rounded corners on stacked bar chart

Any chance to see Rounded Corner working on stacked bar charts? Currently the rounded corners are applied to the bottom bar as well. There should be a rule to apply the rounded corners only for the top bar if there are more that 1 bar on top of each other.

Thanks

any updates on this? I want to have rounded tops on stacked bar charts...

Here is an alternative solution using clip-path
https://github.com/apexcharts/apexcharts.js/issues/2097

Here is an alternative solution using clip-path
https://github.com/apexcharts/apexcharts.js/issues/2097

Since v3.26.0, there is a property for border-radius which works in stacked bar charts. (It applies the border-radius on the top-most bar)
plotOptions: {
  bar: {
    borderRadius: 5
  }
}

@junedchhipa - I have "apexcharts": "^v3.26.1" and i added borderRadius as mentioned by you.  The error is still visible.
As you can see border radius only gets applied to the last element of the "series" option. If there is no last element in the chart, the border radius doesnot get applied on that bar chart.
plotOptions: {
bar: {
borderRadius: 5
}
}

You can use javascript for this though. Example based on 2 series only.
let target = document.querySelectorAll('.apexcharts-series:nth-of-type(1) > path')
  // previous data = prev
  prev.forEach((d, i) => {
  if (d == 0) target[i].classList.add('apex-bar')
})

and css
.apex-bar {   clip-path: inset(0% 0% -4px 0% round 4px); }

prev

what is prev?

prev

what is prev?

This is how I followed technika7's idea. It works for me:
`
const borderRadiusColumns = (id) => {
const chartEl = document.getElementById(id);
const target1 = chartEl.querySelectorAll(
'.apexcharts-series:nth-of-type(1) > path',
);
const target2 = chartEl.querySelectorAll(
'.apexcharts-series:nth-of-type(2) > path',
);
target2.forEach((d, i) => {
if (d.getAttribute('val') === '0' || !d.getAttribute('val'))
target1[i].classList.add('apex-bar');
});
};
`

Based on technika7's solution I did:
:deep(div svg g path) {   clip-path: inset(0% 0% 0px 0% round 33px); }

Fixed this by filtering out the data that is 0. Just the presence of an element in the array (even if its 0) will create a bar chart section.
e.g. a bar chart which has the section A, B, C, D where it's represented with an array like: [0, 0, 100, 24]
when doing:
const filteredData = array.filter(x => x !== 0);
this.chart.updateSeries(filteredData);

don't need extra functionality - appex chart already give you the solution :
Follow the link: https://apexcharts.com/docs/options/plotoptions/bar/
 plotOptions: {               bar: {                 borderRadius: 8        }


[Qusetion]How can I add a parking space on the maps?

I have used Unity3d and have not used Unreal before.
I want to know how can I build a asset like assets in Carla/Static/RoadLines/St_Road_TileRoad_LaneMarkinaSolid.uasset
and the parking space is like

Hey Firesuiry,
since you closed this - did you manage to figure out a solution?
Best regards!


Incompatibility with django 1.11.10

Hi there
django-fsm==2.4.0
django-fsm-admin==1.2.3
django-fsm-log==1.3.0
Django==1.11.10
Voodoo  hack to have a  profile mixing that  is not  working anymore...
   def __getattribute__(self, item):         value = super(ProfileMixin, self).__getattribute__(item)         if item in SHARED_FIELDS:             if self.profile:                 return super(ClientProfile, self.profile).__getattribute__(item)         return value
File "MY_FILE", line 75, in getattribute
value = super(ProfileMixin, self).getattribute(item)
File "/home/ivan/encode/amlnz/local/lib/python2.7/site-packages/django_fsm/init.py", line 226, in get
return self.field.get_state(instance)
File "/home/ivan/encode/amlnz/local/lib/python2.7/site-packages/django_fsm/init.py", line 266, in get_state
return instance.dict[self.name]
KeyError: 'state'`
`

The provided code sample is not from django-fsm

Hi there i already update  with django-fsm==2.6.0
and coment  my code  but the  problem still there
Internal Server Error: /signup/clients/282/get_edit_form
Traceback (most recent call last):
File "/home/ivan/encode/amlnz/local/lib/python2.7/site-packages/django/core/handlers/exception.py", line 41, in inner
response = get_response(request)
File "/home/ivan/encode/amlnz/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 249, in _legacy_get_response
response = self._get_response(request)
File "/home/ivan/encode/amlnz/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 187, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/home/ivan/encode/amlnz/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 185, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/ivan/encode/amlnz/local/lib/python2.7/site-packages/django/utils/decorators.py", line 185, in inner
return func(*args, **kwargs)
File "/home/ivan/encode/amlnz/local/lib/python2.7/site-packages/django/views/generic/base.py", line 68, in view
return self.dispatch(request, *args, **kwargs)
File "/home/ivan/encode/amlnz/local/lib/python2.7/site-packages/django/views/generic/base.py", line 88, in dispatch
return handler(request, *args, **kwargs)
File "/home/ivan/encode/amlnz/aml_nz/signup/views/clients.py", line 207, in post
**kwargs)
File "/home/ivan/encode/amlnz/local/lib/python2.7/site-packages/django/views/generic/base.py", line 155, in get
context = self.get_context_data(**kwargs)
File "/home/ivan/encode/amlnz/aml_nz/signup/views/clients.py", line 201, in get_context_data
{'form': self.get_form_class()(**self.get_form_kwargs())})
File "/home/ivan/encode/amlnz/aml_nz/aml_validations/forms/subclients/base_subclient_form.py", line 35, in init
super(BaseSubClientForm, self).init(*args, **kwargs)
File "/home/ivan/encode/amlnz/aml_nz/core/forms/has_form_helper.py", line 18, in init
super(HasFormHelperMixin, self).init(*args, **kwargs)
File "/home/ivan/encode/amlnz/local/lib/python2.7/site-packages/django/forms/models.py", line 302, in init
object_data = model_to_dict(instance, opts.fields, opts.exclude)
File "/home/ivan/encode/amlnz/local/lib/python2.7/site-packages/django/forms/models.py", line 97, in model_to_dict
data[f.name] = f.value_from_object(instance)
File "/home/ivan/encode/amlnz/local/lib/python2.7/site-packages/django/db/models/fields/init.py", line 897, in value_from_object
return getattr(obj, self.attname)
File "/home/ivan/encode/amlnz/local/lib/python2.7/site-packages/django/db/models/query_utils.py", line 116, in get
instance.refresh_from_db(fields=[self.field_name])
File "/home/ivan/encode/amlnz/local/lib/python2.7/site-packages/django/db/models/base.py", line 697, in refresh_from_db
db_instance = db_instance_qs.get()
File "/home/ivan/encode/amlnz/local/lib/python2.7/site-packages/django/db/models/query.py", line 374, in get
num = len(clone)
File "/home/ivan/encode/amlnz/local/lib/python2.7/site-packages/django/db/models/query.py", line 232, in len
self._fetch_all()
File "/home/ivan/encode/amlnz/local/lib/python2.7/site-packages/django/db/models/query.py", line 1118, in _fetch_all
self._result_cache = list(self._iterable_class(self))
File "/home/ivan/encode/amlnz/local/lib/python2.7/site-packages/django/db/models/query.py", line 63, in iter
obj = model_cls.from_db(db, init_list, row[model_fields_start:model_fields_end])
File "/home/ivan/encode/amlnz/local/lib/python2.7/site-packages/django/db/models/base.py", line 583, in from_db
new = cls(*values)
File "/home/ivan/encode/amlnz/local/lib/python2.7/site-packages/polymorphic/models.py", line 151, in init
super(PolymorphicModel, self).init(*args, ** kwargs)
File "/home/ivan/encode/amlnz/local/lib/python2.7/site-packages/django/db/models/base.py", line 574, in init
super(Model, self).init()
File "/home/ivan/encode/amlnz/local/lib/python2.7/site-packages/django_fsm/init.py", line 444, in init
self._update_initial_state()
File "/home/ivan/encode/amlnz/local/lib/python2.7/site-packages/django_fsm/init.py", line 485, in _update_initial_state
(field.attname, field.value_from_object(self)) for field in self.state_fields
File "/home/ivan/encode/amlnz/local/lib/python2.7/site-packages/django_fsm/init.py", line 485, in
(field.attname, field.value_from_object(self)) for field in self.state_fields
File "/home/ivan/encode/amlnz/local/lib/python2.7/site-packages/django/db/models/fields/init.py", line 897, in value_from_object
return getattr(obj, self.attname)
File "/home/ivan/encode/amlnz/local/lib/python2.7/site-packages/django_fsm/init.py", line 226, in get
return self.field.get_state(instance)
File "/home/ivan/encode/amlnz/local/lib/python2.7/site-packages/django_fsm/init.py", line 266, in get_state
return instance.dict[self.name]
KeyError: 'state'
"POST /signup/clients/282/get_edit_form HTTP/1.1" 500 27762
"POST /signup/clients/282/get_edit_form HTTP/1.1" 500 27762


Dark-mode for neon-border

Dark mode

Normal

Great work thank you!
@all-contributors please add @chiragkava for code


docs: Authenticate to private repo using auth.json mount

Not strictly a bootc-image-builder volume but I couldn't see in the docs how to use a private repo so came up with this approach and thought I'd capture it in case others need it.

This is incorrect - The docs here outline how credentials should be handled.
https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/using_image_mode_for_rhel_to_build_deploy_and_manage_operating_systems/managing-users-groups-ssh-key-and-secrets-in-image-mode-for-rhel#injecting-secrets-to-a-image-mode-for-rhel_managing-users-groups-ssh-key-and-secrets-in-image-mode-for-rhel


[DropDownMenu] Do not wrap below dropdown menu.

Problem description
The text is wrapping below the dropdown menu if the text is too long. (This is mostly for the SelectField component.)
Steps to reproduce

Create a dropdown menu with a fixed size.
Enter a long string as value.

Versions
Only tested on...

Material-UI: 0.15.2
React: 15.1.0
Browser: Pretty much all of them!

That sounds like a good addition. Thanks!


Rules-declaration-error

PHP Version: 7.1.2

Description:
The declaration of the isValid-method within the rules is incompatible with the docs.
The docs suggtest do to sth like this:
public function isValid(LdapUser $ldapUser, EloquentUser $user)     {         return $ldapUser->inGroup('MyAwesomeUsergroup');     }
but
the abstract function isValid within the Rule class is declared without variables, causing the following error to occur:
Declaration of MyApp\Rules\MyRule::isValid(Adldap\Models\User $ldapUser, MyApp\User $user) must be compatible with Adldap\Laravel\Validation\Rules\Rule::isValid()

a temporary workarround works like this:
public function isValid()     {         $ldapUser = $this->user;         $eloquentUser = $this->model;         return $ldapUser->inGroup('MyAwesomeGroup'); //apply any other rules here     }

Thanks @Husky110! Will have this fixed shortly.

@Husky110 your second post is the correct usage. I've fixed the docs:
https://github.com/Adldap2/Adldap2-Laravel/blob/master/docs/auth/rules.md
Thanks for pointing this out!


Fix comparison of integer expressions of different signedness warning

src/third_party/abseil-cpp/dist/absl/hash/internal/hash.h:633:21: error: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Werror=sign-compare]

This warning happens only on Big Endian build variants such as s390x.

Note this is related SERVER-82704 from https://github.com/10gen/mongo/pull/16603


Test: Ensure the tsconfig.json validation is exposed

#20163

[ ] any @aeschli

Complexity: 1
Errors should now be shown in invalid jsconfig and tsconfigs. This flow is still pretty buggy and we're tracking a number of fixes/requests on the TS side to support this better. This only tests the basics

Create a new project with an empty ts file and an empty tsconfig.json
Create an invalid option:

{
    "compilerOptions": {
        "notAnOption": true
    }
}

Switch to the ts file. In the errors view you should see:

Change the config to

{
    "files": [
        "notAFile.js"
    ]
}

Switch back to the TS file to see a new error:

Try creating other invalid configs and reloading the project to see them

Known Issues

Errors only show up when working in a js or ts file, not in the jsconfig or tsconfig itself.
Config file error are show on the first line at the first character.
Editing the config file causes the errors to go away

I tested the basic as described. Some thoughts:

To prevent unknown properties: That could also be done in the JSON schema for tsconfig. We take it from http://json.schemastore.org/tsconfig resp. http://json.schemastore.org/jsconfig by setting 'additionalProperties' to false
To get positions in the JSON file. We created a node module jsonc-parser to be used for that (can also used without allowing comments)


reenable interactive completer

reenabled interactive completion in interactive mode as it is in help and is technically a valid command now.
This checklist is used to make sure that common guidelines for a pull request are followed.
General Guidelines

[na ] The PR has modified HISTORY.rst with an appropriate description of the change (see Modifying change log).

Command Guidelines

[na ] Each command and parameter has a meaningful description.
[na ] Each new command has a test.

(see Authoring Command Modules)

@williexu,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

Codecov Report

Merging #4310 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff            @@
##           master   #4310      +/-   ##
=========================================
+ Coverage    70.1%   70.1%   +<.01%
=========================================
  Files         475     475
  Lines       29818   29816       -2
  Branches     4601    4600       -1
=========================================
- Hits        20903   20902       -1
+ Misses       7438    7434       -4
- Partials     1477    1480       +3

Impacted Files
Coverage Δ

...s/azure-cli-interactive/azclishell/az_completer.py
52.75% <100%> (+0.02%)
:arrow_up:

...dback/azure/cli/command_modules/feedback/custom.py
31.25% <0%> (ø)
:arrow_up:

src/azure-cli-core/azure/cli/core/util.py
69.73% <0%> (ø)
:arrow_up:

...nent/azure/cli/command_modules/component/custom.py
16.26% <0%> (ø)
:arrow_up:

...li-cloud/azure/cli/command_modules/cloud/custom.py
13.79% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 4311492...0c4962e. Read the comment docs.

Doesn't this conflict with the other PR where you prevented the user from starting 'interactive' from inside interactive mode?

it doesn't, since I didn't actually disable the command. I just changed it so it simply prints a message that the user is already in the shell. This was because interactive is already in the help and we didn't want to make it confusing for users


Sending emails Bug

Gitea version (or commit ref):1.12.3
Git version:2.22.0
Operating system:CentOS7.8
Database :MySql8.0.20
Can you reproduce the bug at https://try.gitea.io:No

Description
Sending emails for the first test will fail and prompt "Invalid csrf token."，Normal at other times。

@suyanlin where are mailer settings?

Closed as absent detail information. Please feel free to reopen it.


feature request: import package

Current situation

Packages other than mathlib cannot be used.
To add more packages that can be used with lean4 web, changes need to be made to the lean4 web code

I want a feature such that...

Import packages in-place on the lean4 web based on GitHub repository URLs.

It is possible for the admin of a server to provide featured packages (for example here we provide the "Duper Demo" lean package). And one can switch in the settings between the finite amount of admin-chosen projects.
However, with the current setup ("everything runs server-side"), I don't think it's feasible to allow users to essentially upload to the server and have them built on the server.
However, what would be the advantage over gitpod?


Lp contrib/waltz 6852 oauth sso framework

Contribution Notes:
@davidwatkins73 I'd like to submit this as a contribution from Leading Point (team effort - Thomas Ledger (@TL41), Oscar Green (@OscarGreen03), Karen Wen (@kwen)
Let me know if you would like to discuss these changes. I've detailed the implementation of optional changes and some changes which I'm not entirely sure would be compatible if the web.authentication method is set to waltz; for obvious reasons, we've committed to sso so we haven't been testing thoroughly for waltz compatibility.
for: https://github.com/finos/waltz/issues/6852

Explanation:

waltz-ng/client/common/WaltzHttp.js <-- optional enhancement(s) to catch and revoke token
waltz-ng/client/navbar/svelte-page.html <-- optional enhancement to block access to Waltz if not authenticated/authorized
waltz-ng/client/navbar/svelte-page.js <-- did not include the $auth.authenticate("oauthprovider") code because I believe it would get invoked regardless of which web.authentication method was selected; and that would not be ok if waltz was selected
waltz-ng/client/svelte-stores/remote.js <-- optional enhancement(s) to catch and revoke token
waltz-ng/client/thirdparty-setup.js <-- optional enhancement(s) to catch and revoke token
waltz-web/src/main/java/org/finos/waltz/web/endpoints/auth/AuthenticationEndpoint.java

Additional edits make to integrate this solution into the waltz.properties files and enhanced those files with comments (happy to back those out)
Future Enhancements:

seamless integration of environment specific thirdparty-setup configurations for OAuth (i.e. different url for Dev, QA, Prod envs)
single implementation compatible with both web.authentication method

@davidwatkins73 after our discussion, I want to revise the framework to make it more seamlessly compatible with cases where the web.authentication method is set to waltz, and also cases where web.authentication method is set to sso but the instance might be implementing sso without using the satellizer setup.
I'll be making a lot of revisions to get that done

@davidwatkins73 I have a working version of the changes for a set of changes that's compatible with waltz and sso options, configurable via the database. It would also work with sso solutions that are not currently leveraging thirdparty-setup.js
I'll look to get this submitted here in the next few days

Hi @TL41 , I've been doing some simple experiments on how best to configure the authentication provider at runtime rather than at build time.  I've attached a patch with a very basic example of an approach that looks promising.
silly_example.patch
At a high level all we are doing is using a script tag on the index.ejs  (in the example <script src='api/silly'></script>) file to import some javascript from the server.  However, this script is dynamically generated in Java  and simply emits a variable declaration with some attributes (e.g. (get("api/silly", (req, resp) -> { .... });) .
If this approach was adopted, the generated variable could be a slice of any values in the settings table with a certain  prefix, e.g. waltz.authentication.config.public.*, the resulting dynamic script could be something like:
const waltzAuthenticationConfig = {
   'prop1': 'val1',
   'prop2': 'val2'
};

As this, dynamically generated, script is included via a script tag on the main index page (index.ejs) it gets evaluated before the rest of the code starts executing and the variable (waltzAuthenticationConfig) would be globally available (as demo'd in the patched thirdparty-setup.js).
This approach seems quite straightforward and I think gives us a good way of dynamically including the required configuration.

@davidwatkins73 I've added changes to svelte-page.js to pull the oauth configuration setup (not the details) from the database. I've updated the documentation to highlight 3 valid configurations:

Waltz Login

web.authentication = waltz
oauth.provider.name  <-- do not add to Settings
oauth.disable.anonymous <-- do not add to Settings

SSO (Externally Managed)

web.authentication = sso
oauth.provider.name <-- do not add to Settings
oauth.disable.anonymous <-- do not add to Settings

SSO (thirdparty integration with satellizer)

web.authentication = sso
oauth.provider.name needs to match the 'name' you provide in thirdparty-setup.js
oauth.disable.anonymous can be set to true`` (blocks anonymous browsing) or false``` (allows anonymous browsing) or left out of Settings (allows anonymous browsing)

I've tested this locally and with a thirdparty provider and it seems to be working.
Here's a checklist of what I think remains:

[ ] Review changes to waltz-ng/client/common/WaltzHttp.js - should this token exception check be included?
[ ] Review waltz-ng/client/svelte-stores/remote.js - should this token exception check be included?
[ ] Review waltz-ng/client/navbar/svelte-page.html
[ ] Review waltz-ng/client/navbar/svelte-page.js
[ ] Review waltz-ng/client/thirdparty-setup.js - is this ok as an interim solution? (define environment specific configs here and then build)
[ ] Related to previous item: do we take the time now to implement a dynamic oauth configuration? (we may also be able to leverage SatellizerConfig (some examples in the repo - https://github.com/sahat/satellizer/issues/658)
[ ] Review waltz-web/src/main/java/org/finos/waltz/web/endpoints/auth/AuthenticationEndpoint.java

@davidwatkins73 I tested out the changes for exception handling on the sso JWT, and it didn't seem like the logic was getting invoke. I don't think this is a core feature required right now, so I'm removing that from the scope of this PR and opened an issue to track it for future implementation, if at all. https://github.com/finos/waltz/issues/6913
Here's a checklist of what I think remains:

[x] Review waltz-ng/client/navbar/svelte-page.html
[x] Review waltz-ng/client/navbar/svelte-page.js
[x] Review waltz-web/src/main/java/org/finos/waltz/web/endpoints/auth/AuthenticationEndpoint.java
[ ] Build an externally parameterized/configurable oauth2 provider implementation (could be within thirdparty-setup; via api idea from David W; using SatellizerConfig, etc)
[ ] Review and test complete solution

@davidwatkins73 submitting a final solution for thirdparty Oauth provider integration using satellizer
I know you proposed adding individual records into Settings for the individual key-value pairs to build oauth.provider.details, but I'm implementing this solution as a single entry in settings called oauth.provider.details which would contain the entire object. I think it would be a bit onerous for the user to have to add 15-20 individual settings. I'm open to changing this in the future to be more dynamic, but for now my object is under 1000 chars so it fits comfortably into the Settings table
Here's a checklist of what I think remains:

[x] Review waltz-ng/client/navbar/svelte-page.html
[x] Review waltz-ng/client/navbar/svelte-page.js
[x] Review waltz-web/src/main/java/org/finos/waltz/web/endpoints/auth/AuthenticationEndpoint.java
[x] Build an externally parameterized/configurable oauth2 provider implementation (could be within thirdparty-setup; via api idea from David W; using SatellizerConfig, etc)
[x] Review and test complete solution

Final details:

Waltz Login

web.authentication = waltz
oauth.provider.name  <-- do not add to Settings
oauth.provider.details  <-- do not add to Settings
oauth.disable.anonymous <-- do not add to Settings

SSO (Externally Managed)

web.authentication = sso
oauth.provider.name <-- do not add to Settings
oauth.provider.details  <-- do not add to Settings
oauth.disable.anonymous <-- do not add to Settings

SSO (thirdparty integration with satellizer)

web.authentication = sso
oauth.provider.details  = object containing thirdparty OAuth Provider details
oauth.provider.name needs to match the 'name' you provide in oauth.provider.details
oauth.disable.anonymous can be set to true`` (blocks anonymous browsing) or false``` (allows anonymous browsing) or left out of Settings (allows anonymous browsing)

@davidwatkins73 let me know if you would like to discuss this sometime. I would like to see it make it's way into the next release.
The solution should have no impact on existing installations. The logic should only kick in if you were to define and enable the 3 new settings

Took a look at this and it looks good.  Had a couple of small issues where I needed to provide some dummy values to get Waltz to start.
I've put some fixes for those issues (and some, hopefully trivial, additional changes in this PR:   #6935
....specifically this commit: https://github.com/finos/waltz/pull/6935/commits/268b79f5ebf2c0d382879c5a94ccae01914e8be6

@davidwatkins73 thanks for the revisions!  Feel free to merge and I'll look to test it out early this week.
If it's not 100% working for us at the moment, we're no worse off then where we were (having to build off a separate branch with additional changes) - my point being - if it works for you all in this state, don't let it hold up your release.
Of course we can try to work it out in the coming day, and if not, we can work on a new effort to get this as a universal solution in another release.

Merged.  Thanks for this great contribution!


Number static data properties

This is not done, please do not merge yet. Tests will be added once all data properties have been added.
This PR aims to provide all the data properties from JS's Number library.
Progress:

✅NEGATIVE_INFINITY
✅POSITIVE_INFINITY
✅NaN
❌MIN_VALUE
❌MIN_SAFE_INTEGER
❌MAX_VALUE
❌MAX_SAFE_INTEGER
✅EPSILON

amazing pr thank you!

All of them have now been set up, I'll have to go through them and check that they are all correct, then I'll go ahead and write tests for them all.

Those tests look good yeah, but the Number.MAX_VALUE < Number.POSITIVE_INFINITY seem to fail, since lua interprets both as Infinity


Add boundary constraints to the constraint graph

This PR addresses part of #106, by moving boundary constraints into the AlgebraicGraph alongside the integrity constraints, and updating the codegen and tests accordingly.
It includes the following changes:

[x] add the boundary statements to the graph
[x] refactor to graph handling to simplify the combined handling of integrity + boundary constraints
[x] update winter codegen to work with the new boundary constraints
[x] update the tests to reflect the changes (primarily constraint re-ordering) and skip the tests which are failing due to the pending changes listed below

There are several things that yet to be completed, but I'd like to tackle these in a subsequent PR since this is already quite large:

restore functionality of public inputs, by adding them to the graph, then restore the related tests
restore boundary constraint validation in the IR, then restore the related tests
add support for boundary variables
verify that all cases are captured and add any additional validation/testing as required

Thanks for your reviews @Al-Kindi-0 @Overcastan and @tohrnii! I made the suggested changes, except for one point of discussion raised by @tohrnii (which it would be great to get your thoughts on).
Since this is a very significant change, let's wait for the review from @bobbinth before we merge.


Tool Type and Product Enhancement

Enhancement allows AppSec teams to track the various tools used by developers and what security services have been applied to the product.
A new configuration menu bar item is added and Tool Config and Jira added.

Tools consist of categories: SAST, DAST, IAST, Build Servers and Repo's.

Add your tools and services such as your jenkins, git and security tools.

On the product view screen, scroll down to the bottom to configure tools and URL's for that particular product.

@devGregA This is the tool enhancement I mentioned to you earlier this week.


README Fix: Unwrapping nil in websocketDidDisconnect

The README describes how one might use the websocketDidDisconnect required delegate method as:
websocketDidDisconnect
websocketDidDisconnect is called as soon as the client is disconnected from the server.

func websocketDidDisconnect(socket: WebSocket, error: NSError?) {
    println("websocket is disconnected: \(error!.localizedDescription)")
}

The issue with this, however, is that the value might be nil, in the case that the server doesn't send back an error(timeout/stale client is disconnected by server), force unwrapping the nil value will cause an exception, and crash the application.
Although this is just a minor fix, its probably worth the time just to take a second to update the documentation so new people like myself don't accidentally cause application crashes while using the library.

Good point, nice catch. Addressed #79.


Crash in Via response header (again)

Seeing this, possibly during configuration reloads (but unclear):
(gdb) bt full
#0  0x00002ae87ee5386d in waitpid () from /lib64/libc.so.6
No symbol table info available.
#1  0x000056452c658294 in crash_logger_invoke (signo=11, info=0x2ae8863091f0, ctx=0x2ae8863090c0) at Crash.cc:164
        status = 0
#2  <signal handler called>
No symbol table info available.
#3  0x0000000000000000 in ?? ()
No symbol table info available.
#4  0x000056452c777b54 in HttpTransactHeaders::insert_via_header_in_response (s=0x2aea0d8e6e60, header=0x2aea0d8e75c0) at HttpTransactHeaders.cc:882
        new_via_string = "(1694303`(\204\016&+\000\000\020\000\000\000\350*\000\000\071x\363\232$+\000\000\324V\001\026z*\314\327A-Mc\242^\r\265\030\000\000\000\060\000\000\000\260\232\060\206\350*\000\000\360\231\060\206\350*\000\000Pk\203\r\352*\000\000\340j\203\r\352*\000\000\340j\203\r\352*\000\000\001\001\001\001\000\001\000\001\340j\203\r\352*\000\000 \230\060\206\350*\000\000\371St,EV\000\000pr\203\r\352*\000\000\000\230\060\206\350*\000\000\340\227\060\206\350*\000\000\033\375\252}\350*", '\000' <repeats 18 times>, "И0\206\350*\000\000\003\352M|\350*\000\000\240\230\060\206\350*\000\000\357"...
        n_proto = 1
        ss = 0x2ae887723e00
        proto_buf = <optimized out>
        via_string = <optimized out>
        via_limit = <optimized out>
        incoming_via = <optimized out>
#5  0x000056452c762906 in HttpTransact::build_response (s=<optimized out>, base_response=<optimized out>, outgoing_response=<optimized out>, outgoing_version=..., status_code=<optimized out>, reason_phrase=<optimized out>) at HttpTransact.cc:8094
        fields = {{name = 0x2ae8801ab8a8 "Etag", len = 4, presence = 2097152}, {name = 0x2ae8801ab528 "Content-Location", len = 16, presence = 32768}, {name = 0x2ae8801ab988 "Expires", len = 7, presence = 4194304}, {name = 0x2ae8801ab218 "Cache-Control", len = 13, presence = 512}, {name = 0x2ae8801aca28 "Vary", len = 4, presence =<PHONE_NUMBER>370496}}
#6  0x000056452c76ace7 in HttpTransact::build_response (s=0x2aea0d8e6e60, base_response=<optimized out>, outgoing_response=0x9, outgoing_version=...) at HttpTransact.cc:7978
No locals.
#7  HttpTransact::handle_transform_ready (s=<optimized out>) at HttpTransact.cc:4894
No locals.
#8  0x000056452c732c40 in HttpSM::call_transact_and_set_next_state (this=0x2aea0d8e6df0, f=<optimized out>) at HttpSM.cc:7229
No locals.
#9  HttpSM::state_response_wait_for_transform_read (this=0x2aea0d8e6df0, event=2000, data=<optimized out>) at HttpSM.cc:1255
        size = 270
#10 0x000056452c72c511 in HttpSM::main_handler (this=0x2aea0d8e6df0, event=2000, data=0x2b2596d059d0) at HttpSM.cc:2696
        jump_point = <optimized out>
#11 0x000056452c69d383 in Continuation::handleEvent (this=<optimized out>, event=2000, data=<optimized out>) at /usr/src/debug/bazinga-trafficserver-7.1.2/iocore/eventsystem/I_Continuation.h:153
No locals.
#12 TransformTerminus::handle_event (this=<optimized out>, event=1) at Transform.cc:173
        val = <optimized out>
#13 0x000056452c8c9270 in Continuation::handleEvent (this=<optimized out>, event=1, data=<optimized out>) at ./I_Continuation.h:153
No locals.
#14 EThread::process_event (this=0x2ae88320d1c0, e=0x2ae89fc612c0, calling_code=1) at UnixEThread.cc:140
        c_temp = <optimized out>
#15 0x000056452c8c9820 in EThread::execute_regular (this=<optimized out>) at UnixEThread.cc:221
        done_one = true
        sleep_time = <optimized out>
        next_time = 0
#16 0x000056452c8c89f7 in spawn_thread_internal (a=0x2ae8801b4c00) at Thread.cc:84
No locals.
#17 0x00002ae87f142aa1 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#18 0x00002ae87ee8fbcd in clone () from /lib64/libc.so.6
No symbol table info available.

and in frame 4:
(gdb) frame 4
#4  0x000056452c777b54 in HttpTransactHeaders::insert_via_header_in_response (s=0x2aea0d8e6e60, header=0x2aea0d8e75c0) at HttpTransactHeaders.cc:882
882	    n_proto += ss->populate_protocol(proto_buf.data() + n_proto, proto_buf.size() - n_proto);
(gdb) print *ss
$1 = {<VConnection> = {<Continuation> = {<force_VFPT_to_top> = {_vptr$force_VFPT_to_top = 0x2ae8875f0900}, handler = NULL, mutex = {m_ptr = 0x0}, link = {<SLink<Continuation>> = {next = 0x0}, prev = 0x0}, control_flags = {raw_flags = 0}}, lerrno = 0}, hostname_hash = {b = {3176723067489789877,<PHONE_NUMBER>7928093537}, u64 = {3176723067489789877,<PHONE_NUMBER>7928093537}, u32 = {2206508981, 739638476,<PHONE_NUMBER>,<PHONE_NUMBER>}, u8 = "\265\247\204\203\314\374\025,a\243Ѡ+\034", <incomplete sequence \317>}, con_id = 2323625, transact_count = 1, state = HSS_KA_SHARED, to_parent_proxy = false, server_trans_stat = 0, private_session = true, sharing_match = TS_SERVER_SESSION_SHARING_MATCH_HOST, sharing_pool = TS_SERVER_SESSION_SHARING_POOL_THREAD, ip_hash_link = {<SLink<HttpServerSession>> = {next = 0x0}, prev = 0x0}, host_hash_link = {<SLink<HttpServerSession>> = {next = 0x0}, prev = 0x0}, enable_origin_connection_limiting = false, connection_count = 0x0, read_buffer = 0x0, server_vc = 0x0, magic = -559022355, buf_reader = 0x2aea0d56e568}

This looks similar to the other Via issue we had after 9c070937be512f55d838675c9ff6c95e83afd14d, which was fixed by @oknet and @scw00 .

can you please attachHttpSM::history ?

In frame 8, I have
$4 = {{fileline = 0x557b03baa6e8 "HttpSM.cc:1395", event = 60000, reentrancy = 3}, {fileline = 0x557b03baa6bd "HttpSM.cc:1355", event = 60000, reentrancy = 4}, {fileline = 0x557b03baa6e8 "HttpSM.cc:1395", event = 60000, reentrancy = 4}, {fileline = 0x557b03baa9a5 "HttpSM.cc:2008", event = 102, reentrancy = 1}, {fileline = 0x557b03baa9a5 "HttpSM.cc:2008", event = 103, reentrancy = 1}, {fileline = 0x557b03baa922 "HttpSM.cc:1836", event = 104, reentrancy = 1}, {fileline = 0x557b03babf9e "HttpSM.cc:5498", event = 104, reentrancy = 1}, {fileline = 0x557b03bacdac "HttpSM.cc:7429", event = 65535, reentrancy = 1}, {fileline = 0x557b03baa845 "HttpSM.cc:1742", event = 200, reentrancy = 2}, {fileline = 0x557b03baa6bd "HttpSM.cc:1355", event = 60000, reentrancy = 3}, {fileline = 0x557b03baa6e8 "HttpSM.cc:1395", event = 60000, reentrancy = 3}, {fileline = 0x557b03baa6bd "HttpSM.cc:1355", event = 60000, reentrancy = 4}, {fileline = 0x557b03baa6e8 "HttpSM.cc:1395", event = 60000, reentrancy = 4}, {fileline = 0x557b03baa9a5 "HttpSM.cc:2008", event = 102, reentrancy = 1}, {fileline = 0x557b03baa9a5 "HttpSM.cc:2008", event = 103, reentrancy = 1}, {fileline = 0x557b03baa922 "HttpSM.cc:1836", event = 100, reentrancy = 1}, {fileline = 0x557b03baa6bd "HttpSM.cc:1355", event = 60000, reentrancy = 2}, {fileline = 0x557b03baa6e8 "HttpSM.cc:1395", event = 60000, reentrancy = 2}, {fileline = 0x557b03baa6bd "HttpSM.cc:1355", event = 60000, reentrancy = 3}, {fileline = 0x557b03baa6e8 "HttpSM.cc:1395", event = 60000, reentrancy = 3}, {fileline = 0x557b03baa6bd "HttpSM.cc:1355", event = 60000, reentrancy = 4}, {fileline = 0x557b03baa6e8 "HttpSM.cc:1395", event = 60000, reentrancy = 4}, {fileline = 0x557b03baa6bd "HttpSM.cc:1355", event = 60000, reentrancy = 5}, {fileline = 0x557b03baa6e8 "HttpSM.cc:1395", event = 60000, reentrancy = 5}, {fileline = 0x557b03bac47f "HttpSM.cc:6476", event = 65535, reentrancy = 5}, {fileline = 0x557b03bab0e9 "HttpSM.cc:3000", event = 2302, reentrancy = 5}, {fileline = 0x557b03bab510 "HttpSM.cc:3833", event = 103, reentrancy = 0}, {fileline = 0x557b03baa624 "HttpSM.cc:1243", event = 2301, reentrancy = 1}, {fileline = 0x557b03baa663 "HttpSM.cc:1273", event = 2301, reentrancy = 1}, {fileline = 0x557b03baa624 "HttpSM.cc:1243", event = 2000, reentrancy = 1}, {fileline = 0x557b03baa9a5 "HttpSM.cc:2008", event = 102, reentrancy = 1}, {fileline = 0x557b03baa9a5 "HttpSM.cc:2008", event = 103, reentrancy = 1}, {fileline = 0x557b03baa922 "HttpSM.cc:1836", event = 100, reentrancy = 1}, {fileline = 0x557b03baa6bd "HttpSM.cc:1355", event = 60000, reentrancy = 2}, {fileline = 0x557b03baa6e8 "HttpSM.cc:1395", event = 60000, reentrancy = 2}, {fileline = 0x557b03baa6bd "HttpSM.cc:1355", event = 60000, reentrancy = 3}, {fileline = 0x557b03baa6e8 "HttpSM.cc:1395", event = 60000, reentrancy = 3}, {fileline = 0x557b03baa6bd "HttpSM.cc:1355", event = 60000, reentrancy = 4}, {fileline = 0x557b03baa6e8 "HttpSM.cc:1395", event = 60000, reentrancy = 4}, {fileline = 0x557b03baa6bd "HttpSM.cc:1355", event = 60000, reentrancy = 5}, {fileline = 0x557b03baa6e8 "HttpSM.cc:1395", event = 60000, reentrancy = 5}, {fileline = 0x557b03bacd8e "HttpSM.cc:7416", event = 65535, reentrancy = 5}, {fileline = 0x557b03ba58b1 "HttpCacheSM.cc:118", event = 1103, reentrancy = -1}, {fileline = 0x557b03baae26 "HttpSM.cc:2607", event = 1103, reentrancy = 6}, {fileline = 0x557b03baa6bd "HttpSM.cc:1355", event = 60000, reentrancy = 7}, {fileline = 0x557b03baa6e8 "HttpSM.cc:1395", event = 60000, reentrancy = 7}, {fileline = 0x557b03baa6bd "HttpSM.cc:1355", event = 60000, reentrancy = 8}, {fileline = 0x557b03baa6e8 "HttpSM.cc:1395", event = 60000, reentrancy = 8}, {fileline = 0x557b03bacd70 "HttpSM.cc:7376", event = 65535, reentrancy = 8}, {fileline = 0x557b03bacdbb "HttpSM.cc:7531", event = 65535, reentrancy = 8}, {fileline = 0x557b03baad79 "HttpSM.cc:2488", event = 1109, reentrancy = 9}, {fileline = 0x557b03bacdac "HttpSM.cc:7429", event = 65535, reentrancy = 9}, {fileline = 0x557b03baa6bd "HttpSM.cc:1355", event = 60000, reentrancy = 10}, {fileline = 0x557b03baa6e8 "HttpSM.cc:1395", event = 60000, reentrancy = 10}, {fileline = 0x557b03baa6bd "HttpSM.cc:1355", event = 60000, reentrancy = 11}, {fileline = 0x557b03baa6e8 "HttpSM.cc:1395", event = 60000, reentrancy = 11}, {fileline = 0x557b03babb35 "HttpSM.cc:4582", event = 0, reentrancy = 5}, {fileline = 0x557b03baa9a5 "HttpSM.cc:2008", event = 103, reentrancy = 1}, {fileline = 0x557b03baa922 "HttpSM.cc:1836", event = 104, reentrancy = 1}, {fileline = 0x557b03babf9e "HttpSM.cc:5498", event = 104, reentrancy = 1}, {fileline = 0x557b03bacdd9 "HttpSM.cc:7598", event = 65535, reentrancy = 1}, {fileline = 0x557b03bacdac "HttpSM.cc:7429", event = 65535, reentrancy = 1}, {fileline = 0x557b03baa845 "HttpSM.cc:1742", event = 200, reentrancy = 2}, {fileline = 0x557b03baa6bd "HttpSM.cc:1355", event = 60000, reentrancy = 3}}

Btw, how expensive is it to maintain this HttpSM::history?

It seems we have a cycle in history. Could you please extend the history buffer size and re-product again.
https://github.com/apache/trafficserver/blob/7.1.x/proxy/http/HttpSM.h#L144

Currently the history size is 64. If fileline costs 128 bytes, we wiil used 64 * 132 for every HttpSM.
I think we can use it only in Debug mode. But it is hard for us to debug the issue in product env.

According to the below part of history,
  1 $4 = {
  2 {fileline = 0x557b03baa6e8 "HttpSM.cc:1395", event = 60000, reentrancy = 3},
  3 {fileline = 0x557b03baa6bd "HttpSM.cc:1355", event = 60000, reentrancy = 4},
  4 {fileline = 0x557b03baa6e8 "HttpSM.cc:1395", event = 60000, reentrancy = 4},
  5 {fileline = 0x557b03baa9a5 "HttpSM.cc:2008", event = 102, reentrancy = 1},
  6 {fileline = 0x557b03baa9a5 "HttpSM.cc:2008", event = 103, reentrancy = 1},
  7 {fileline = 0x557b03baa922 "HttpSM.cc:1836", event = 104, reentrancy = 1},
  8 {fileline = 0x557b03babf9e "HttpSM.cc:5498", event = 104, reentrancy = 1},
  9 {fileline = 0x557b03bacdac "HttpSM.cc:7429", event = 65535, reentrancy = 1},
 10 {fileline = 0x557b03baa845 "HttpSM.cc:1742", event = 200, reentrancy = 2},
 11 {fileline = 0x557b03baa6bd "HttpSM.cc:1355", event = 60000, reentrancy = 3},
 12 {fileline = 0x557b03baa6e8 "HttpSM.cc:1395", event = 60000, reentrancy = 3},
 13 {fileline = 0x557b03baa6bd "HttpSM.cc:1355", event = 60000, reentrancy = 4},
 14 {fileline = 0x557b03baa6e8 "HttpSM.cc:1395", event = 60000, reentrancy = 4},
 15 {fileline = 0x557b03baa9a5 "HttpSM.cc:2008", event = 102, reentrancy = 1},
 16 {fileline = 0x557b03baa9a5 "HttpSM.cc:2008", event = 103, reentrancy = 1},
 17 {fileline = 0x557b03baa922 "HttpSM.cc:1836", event = 100, reentrancy = 1},
 18 {fileline = 0x557b03baa6bd "HttpSM.cc:1355", event = 60000, reentrancy = 2},
 19 {fileline = 0x557b03baa6e8 "HttpSM.cc:1395", event = 60000, reentrancy = 2},
 20 {fileline = 0x557b03baa6bd "HttpSM.cc:1355", event = 60000, reentrancy = 3},
 21 {fileline = 0x557b03baa6e8 "HttpSM.cc:1395", event = 60000, reentrancy = 3},
 22 {fileline = 0x557b03baa6bd "HttpSM.cc:1355", event = 60000, reentrancy = 4},
 23 {fileline = 0x557b03baa6e8 "HttpSM.cc:1395", event = 60000, reentrancy = 4},
 24 {fileline = 0x557b03baa6bd "HttpSM.cc:1355", event = 60000, reentrancy = 5},
 25 {fileline = 0x557b03baa6e8 "HttpSM.cc:1395", event = 60000, reentrancy = 5},
 26 {fileline = 0x557b03bac47f "HttpSM.cc:6476", event = 65535, reentrancy = 5},
 27 {fileline = 0x557b03bab0e9 "HttpSM.cc:3000", event = 2302, reentrancy = 5},
 28 {fileline = 0x557b03bab510 "HttpSM.cc:3833", event = 103, reentrancy = 0},
 29 {fileline = 0x557b03baa624 "HttpSM.cc:1243", event = 2301, reentrancy = 1},
 30 {fileline = 0x557b03baa663 "HttpSM.cc:1273", event = 2301, reentrancy = 1},
 31 {fileline = 0x557b03baa624 "HttpSM.cc:1243", event = 2000, reentrancy = 1},

There is a event == 200 (NET_EVENT_OPEN) at line 10, and a event == 2000(TRANSFORM_READ_READY) at line 31 which is the last entry before crash.
I can not find event == 104 (EOS) between line 10 and line 31.
IMO, the server session may be closed by other HttpSM because the ss->magic == 0xdeadfeed.

pretty print for server session,
  1 (gdb) print *ss
  2 $1 =
  3 {
  4     <VConnection> =
  5     {
  6         <Continuation> =
  7         {
  8             <force_VFPT_to_top> = {_vptr$force_VFPT_to_top = 0x2ae8875f0900},
  9             handler = NULL,
 10             mutex = {m_ptr = 0x0},
 11             link = {<SLink<Continuation>> = {next = 0x0}, prev = 0x0},
 12             control_flags = {raw_flags = 0}
 13         },
 14         lerrno = 0
 15     },
 16     hostname_hash =
 17     {
 18         b = {3176723067489789877,<PHONE_NUMBER>7928093537},
 19         u64 = {3176723067489789877,<PHONE_NUMBER>7928093537},
 20         u32 = {2206508981, 739638476,<PHONE_NUMBER>,<PHONE_NUMBER>},
 21         u8 = "\265\247\204\203\314\374\025,a\243Ѡ+\034", <incomplete sequence \317>
 22     },
 23     con_id = 2323625,
 24     transact_count = 1,
 25     state = HSS_KA_SHARED,
 26     to_parent_proxy = false,
 27     server_trans_stat = 0,
 28     private_session = true,
 29     sharing_match = TS_SERVER_SESSION_SHARING_MATCH_HOST,
 30     sharing_pool = TS_SERVER_SESSION_SHARING_POOL_THREAD,
 31     ip_hash_link = {<SLink<HttpServerSession>> = {next = 0x0}, prev = 0x0},
 32     host_hash_link = {<SLink<HttpServerSession>> = {next = 0x0}, prev = 0x0},
 33     enable_origin_connection_limiting = false,
 34     connection_count = 0x0,
 35     read_buffer = 0x0,
 36     server_vc = 0x0,
 37     magic = 0xdeadfeed,
 38     buf_reader = 0x2aea0d56e568
 39 }

link to #1765 , it is an unresolved bug - double do_io_close in in HttpTunnel::chain_abort_all().

A hack way to fix the issue, makes the TVC::do_io_close() can be called more than once.
 456 void
 457 TransformVConnection::do_io_close(int error)
 458 {
 459   Debug("transform", "TransformVConnection do_io_close: %d [0x%lx]", error, (long)this);
 460
 461   if (error != -1) {
 462     m_closed = TS_VC_CLOSE_ABORT;
 463   } else {
 464     m_closed = TS_VC_CLOSE_NORMAL;
 465   }
 466
 467   m_transform->do_io_close(error);
 468 }

I am confused by the history transition between lines 8 and 9 in the history.
Lines 5 and 6 show that the state machine successfully sent a request to origin.
Lines 7 and 8 show that an EOS was received by the read server response logic, and a setup error response was invoked.
Then in lines 9 and 10 for some reason, the origin tried to connect to a new origin server.  Since we did send a request, we shouldn't be trying a connection retry unless it is some logic in the plugin perhaps?  It isn't part of the normal core logic as I understand it.

Fwiw, I tested with  9c07093 reverted, and it is not related to this issue. Also, it only seems to trip when I enable the gzip transform plugin.

$4 = {
{fileline = 0x557b03baa6e8 "HttpSM::state_api_callou", event = 60000, reentrancy = 3},
{fileline = 0x557b03baa6bd "HttpSM::state_api_callback", event = 60000, reentrancy = 4},
{fileline = 0x557b03baa6e8 "HttpSM::state_api_callou", event = 60000, reentrancy = 4},
{fileline = 0x557b03baa9a5 "HttpSM::state_send_server_request_header", event = 102, reentrancy = 1},
{fileline = 0x557b03baa9a5 "HttpSM::state_send_server_request_header", event = 103, reentrancy = 1},
{fileline = 0x557b03baa922 "HttpSM::state_read_server_response_header", event = 104, reentrancy = 1},
{fileline = 0x557b03babf9e "HttpSM::handle_server_setup_error", event = 104, reentrancy = 1},
{fileline = 0x557b03bacdac "HttpSM::set_next_state", event = 65535, reentrancy = 1},
{fileline = 0x557b03baa845 "HttpSM::state_http_server_open", event = 200, reentrancy = 2},
{fileline = 0x557b03baa6bd "HttpSM::state_api_callback", event = 60000, reentrancy = 3},
{fileline = 0x557b03baa6e8 "HttpSM::state_api_callou", event = 60000, reentrancy = 3},
{fileline = 0x557b03baa6bd "HttpSM::state_api_callback", event = 60000, reentrancy = 4},
{fileline = 0x557b03baa6e8 "HttpSM::state_api_callou", event = 60000, reentrancy = 4},
{fileline = 0x557b03baa9a5 "HttpSM::state_send_server_request_header", event = 102, reentrancy = 1},
{fileline = 0x557b03baa9a5 "HttpSM::state_send_server_request_header", event = 103, reentrancy = 1},
{fileline = 0x557b03baa922 "HttpSM::state_read_server_response_header", event = 100, reentrancy = 1},
{fileline = 0x557b03baa6bd "HttpSM::state_api_callback", event = 60000, reentrancy = 2},
{fileline = 0x557b03baa6e8 "HttpSM::state_api_callou", event = 60000, reentrancy = 2},
{fileline = 0x557b03baa6bd "HttpSM::state_api_callback", event = 60000, reentrancy = 3},
{fileline = 0x557b03baa6e8 "HttpSM::state_api_callou", event = 60000, reentrancy = 3},
{fileline = 0x557b03baa6bd "HttpSM::state_api_callback", event = 60000, reentrancy = 4},
{fileline = 0x557b03baa6e8 "HttpSM::state_api_callou", event = 60000, reentrancy = 4},
{fileline = 0x557b03baa6bd "HttpSM::state_api_callback", event = 60000, reentrancy = 5},
{fileline = 0x557b03baa6e8 "HttpSM::state_api_callou", event = 60000, reentrancy = 5},
{fileline = 0x557b03bac47f "HttpSM::setup_server_transfer_to_transform", event = 65535, reentrancy = 5},
{fileline = 0x557b03bab0e9 "HttpSM::tunnel_handler_server", event = 2302, reentrancy = 5},
{fileline = 0x557b03bab510 "HttpSM::tunnel_handler_transform_write", event = 103, reentrancy = 0},
{fileline = 0x557b03baa624 "HttpSM::state_response_wait_for_transform_read", event = 2301, reentrancy = 1},
{fileline = 0x557b03baa663 "HttpSM::state_common_wait_for_transform_read", event = 2301, reentrancy = 1},
{fileline = 0x557b03baa624 "HttpSM::state_response_wait_for_transform_read", event = 2000, reentrancy = 1},
{fileline = 0x557b03baa9a5 "HttpSM::state_send_server_request_header", event = 102, reentrancy = 1},
{fileline = 0x557b03baa9a5 "HttpSM::state_send_server_request_header", event = 103, reentrancy = 1},
{fileline = 0x557b03baa922 "HttpSM::state_read_server_response_header", event = 100, reentrancy = 1},
{fileline = 0x557b03baa6bd "HttpSM::state_api_callback", event = 60000, reentrancy = 2},
{fileline = 0x557b03baa6e8 "HttpSM::state_api_callou", event = 60000, reentrancy = 2},
{fileline = 0x557b03baa6bd "HttpSM::state_api_callback", event = 60000, reentrancy = 3},
{fileline = 0x557b03baa6e8 "HttpSM::state_api_callou", event = 60000, reentrancy = 3},
{fileline = 0x557b03baa6bd "HttpSM::state_api_callback", event = 60000, reentrancy = 4},
{fileline = 0x557b03baa6e8 "HttpSM::state_api_callou", event = 60000, reentrancy = 4},
{fileline = 0x557b03baa6bd "HttpSM::state_api_callback", event = 60000, reentrancy = 5},
{fileline = 0x557b03baa6e8 "HttpSM::state_api_callou", event = 60000, reentrancy = 5},
{fileline = 0x557b03bacd8e "HttpSM::state_cache_open_read", event = 65535, reentrancy = 5},
{fileline = 0x557b03ba58b1 "HttpCacheSM.cc:118", event = 1103, reentrancy = -1},
{fileline = 0x557b03baae26 "HttpSM::state_cache_open_read", event = 1103, reentrancy = 6},
{fileline = 0x557b03baa6bd "HttpSM::state_api_callback", event = 60000, reentrancy = 7},
{fileline = 0x557b03baa6e8 "HttpSM::state_api_callou", event = 60000, reentrancy = 7},
{fileline = 0x557b03baa6bd "HttpSM::state_api_callback", event = 60000, reentrancy = 8},
{fileline = 0x557b03baa6e8 "HttpSM::state_api_callou", event = 60000, reentrancy = 8},
{fileline = 0x557b03bacd70 "HttpSM::set_next_state", event = 65535, reentrancy = 8},
{fileline = 0x557b03bacdbb "HttpSM.cc:7531", event = 65535, reentrancy = 8},
{fileline = 0x557b03baad79 "HttpSM::state_cache_open_write", event = 1109, reentrancy = 9},
{fileline = 0x557b03bacdac "HttpSM::set_next_state", event = 65535, reentrancy = 9},
{fileline = 0x557b03baa6bd "HttpSM::state_api_callback", event = 60000, reentrancy = 10},
{fileline = 0x557b03baa6e8 "HttpSM::state_api_callou", event = 60000, reentrancy = 10},
{fileline = 0x557b03baa6bd "HttpSM::state_api_callback", event = 60000, reentrancy = 11},
{fileline = 0x557b03baa6e8 "HttpSM::state_api_callou", event = 60000, reentrancy = 11},
{fileline = 0x557b03babb35 "HttpSM.cc:4582", event = 0, reentrancy = 5},
{fileline = 0x557b03baa9a5 "HttpSM::state_send_server_request_header", event = 103, reentrancy = 1},
{fileline = 0x557b03baa922 "HttpSM::state_read_server_response_header", event = 104, reentrancy = 1},
{fileline = 0x557b03babf9e "HttpSM::handle_server_setup_error", event = 104, reentrancy = 1},
{fileline = 0x557b03bacdd9 "HttpSM.cc:7598", event = 65535, reentrancy = 1},
{fileline = 0x557b03bacdac "HttpSM::set_next_state", event = 65535, reentrancy = 1},
{fileline = 0x557b03baa845 "HttpSM::state_http_server_open", event = 200, reentrancy = 2},
{fileline = 0x557b03baa6bd "HttpSM::state_api_callback", event = 60000, reentrancy = 3}}

@oknet I don't think this hack doesn't work, since the downstream has not been established. No one will call do_io_close at this moment.
@shinrich I agree with you,  but we also should dig it more.

@zwoop Hi leif!
Please backport #1933 to 7.1.x, And have tested with that. It may fix this issue.

Tested with #1993, but got a different crash (assertion) now :-/
#0  0x00002ad91874486d in waitpid () from /lib64/libc.so.6
No symbol table info available.
#1  0x0000555858f5e244 in crash_logger_invoke (signo=6, info=0x2ad920a11430, ctx=0x2ad920a11300) at Crash.cc:164
        status = 0
#2  <signal handler called>
No symbol table info available.
#3  0x00002ad9186ca495 in raise () from /lib64/libc.so.6
No symbol table info available.
#4  0x00002ad9186cbc75 in abort () from /lib64/libc.so.6
No symbol table info available.
#5  0x00002ad916236054 in ink_abort (message_format=<optimized out>) at ink_error.cc:99
        ap = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x2ad920a11ab0, reg_save_area = 0x2ad920a119d0}}
#6  0x00002ad916234085 in _ink_assert (expression=0x2ad9186ca495 <raise+53> "H=", file=0x3ef6 <error: Cannot access memory at address 0x3ef6>, line=6) at ink_assert.cc:37
No locals.
#7  0x000055585903dc25 in HttpSM::state_http_server_open (this=0x2ad950121240, event=2301, data=<optimized out>) at HttpSM.cc:1826
No locals.
#8  0x00005558590324a1 in HttpSM::main_handler (this=0x2ad950121240, event=2301, data=0x2ad9501225a0) at HttpSM.cc:2696
        jump_point = <optimized out>
#9  0x00005558590806a6 in Continuation::handleEvent (this=<optimized out>, event=2301, data=<optimized out>)
    at /home/lhedstrom/gitlab/trafficserver/iocore/eventsystem/I_Continuation.h:153
No locals.
#10 HttpTunnel::main_handler (this=0x2ad9501225a0, event=<optimized out>, data=<optimized out>) at HttpTunnel.cc:1665
        p = <optimized out>
        c = <optimized out>
#11 0x00002adde150e6b3 in compress_transform_do (contp=<optimized out>) at gzip/gzip.cc:591
        upstream_vio = <optimized out>
        upstream_todo = <optimized out>
        upstream_avail = <optimized out>
#12 0x00002adde150def6 in compress_transform (contp=0x2ad974068ad0, event=TS_EVENT_IMMEDIATE) at gzip/gzip.cc:620
No locals.
#13 0x0000555858f718a0 in INKContInternal::handle_event (this=0x2ad974068ad0, event=1, edata=0x2adde403c9a0) at InkAPI.cc:1050
        retval = <optimized out>
#14 0x00005558591cf240 in Continuation::handleEvent (this=<optimized out>, event=1, data=<optimized out>) at ./I_Continuation.h:153
No locals.
#15 EThread::process_event (this=0x2ad91b020010, e=0x2adde403c9a0, calling_code=1) at UnixEThread.cc:140
        c_temp = <optimized out>
#16 0x00005558591cf7f0 in EThread::execute_regular (this=<optimized out>) at UnixEThread.cc:221
        done_one = true
        sleep_time = <optimized out>
        next_time = 0
#17 0x00005558591ce9c7 in spawn_thread_internal (a=0x55585a9b91f0) at Thread.cc:84
No locals.
#18 0x00002ad918a33aa1 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#19 0x00002ad918780bcd in clone () from /lib64/libc.so.6
No symbol table info available.

This is in
int
HttpSM::state_http_server_open(int event, void *data)
{
.
.
.

  default:
    Error("[HttpSM::state_http_server_open] Unknown event: %d", event);
    ink_release_assert(0);
    return 0;

The history shows:
(gdb) print this->history
$2 = {{fileline = 0x5558591ef905 "HttpSM.cc:2008", event = 102, reentrancy = 1}, {fileline = 0x5558591ef905 "HttpSM.cc:2008", event = 103, reentrancy = 1}, {
    fileline = 0x5558591f0470 "HttpSM.cc:3838", event = 103, reentrancy = 0}, {fileline = 0x5558591ef7a5 "HttpSM.cc:1742", event = 2301, reentrancy = 1}, {
    fileline = 0x5558591ef648 "HttpSM.cc:1395", event = 60000, reentrancy = 4}, {fileline = 0x5558591ef61d "HttpSM.cc:1355", event = 60000, reentrancy = 5}, {
    fileline = 0x5558591ef648 "HttpSM.cc:1395", event = 60000, reentrancy = 5}, {fileline = 0x5558591ef61d "HttpSM.cc:1355", event = 60000, reentrancy = 6}, {
    fileline = 0x5558591ef648 "HttpSM.cc:1395", event = 60000, reentrancy = 6}, {fileline = 0x5558591f1cee "HttpSM.cc:7421", event = 65535, reentrancy = 6}, {
    fileline = 0x5558591ea841 "HttpCacheSM.cc:118", event = 1103, reentrancy = -1}, {fileline = 0x5558591efd86 "HttpSM.cc:2607", event = 1103, reentrancy = 7}, {
    fileline = 0x5558591ef61d "HttpSM.cc:1355", event = 60000, reentrancy = 8}, {fileline = 0x5558591ef648 "HttpSM.cc:1395", event = 60000, reentrancy = 8}, {
    fileline = 0x5558591ef61d "HttpSM.cc:1355", event = 60000, reentrancy = 9}, {fileline = 0x5558591ef648 "HttpSM.cc:1395", event = 60000, reentrancy = 9}, {
    fileline = 0x5558591f1cd0 "HttpSM.cc:7381", event = 65535, reentrancy = 9}, {fileline = 0x5558591f1d1b "HttpSM.cc:7536", event = 65535, reentrancy = 9}, {
    fileline = 0x5558591ea8f7 "HttpCacheSM.cc:177", event = 1108, reentrancy = -1}, {fileline = 0x5558591efcd9 "HttpSM.cc:2488", event = 1108, reentrancy = 10}, {
    fileline = 0x5558591f1d0c "HttpSM.cc:7434", event = 65535, reentrancy = 10}, {fileline = 0x5558591ef7a5 "HttpSM.cc:1742", event = 200, reentrancy = 11}, {
    fileline = 0x5558591ef61d "HttpSM.cc:1355", event = 60000, reentrancy = 12}, {fileline = 0x5558591ef648 "HttpSM.cc:1395", event = 60000, reentrancy = 12}, {
    fileline = 0x5558591ef61d "HttpSM.cc:1355", event = 60000, reentrancy = 13}, {fileline = 0x5558591ef648 "HttpSM.cc:1395", event = 60000, reentrancy = 13}, {
    fileline = 0x5558591f0a95 "HttpSM.cc:4587", event = 0, reentrancy = 6}, {fileline = 0x5558591ef905 "HttpSM.cc:2008", event = 102, reentrancy = 1}, {
    fileline = 0x5558591ef905 "HttpSM.cc:2008", event = 103, reentrancy = 1}, {fileline = 0x5558591ef882 "HttpSM.cc:1836", event = 100, reentrancy = 1}, {
    fileline = 0x5558591ef61d "HttpSM.cc:1355", event = 60000, reentrancy = 2}, {fileline = 0x5558591ef648 "HttpSM.cc:1395", event = 60000, reentrancy = 2}, {
    fileline = 0x5558591ef61d "HttpSM.cc:1355", event = 60000, reentrancy = 3}, {fileline = 0x5558591ef648 "HttpSM.cc:1395", event = 60000, reentrancy = 3}, {
    fileline = 0x5558591ef61d "HttpSM.cc:1355", event = 60000, reentrancy = 4}, {fileline = 0x5558591ef648 "HttpSM.cc:1395", event = 60000, reentrancy = 4}, {
    fileline = 0x5558591ef61d "HttpSM.cc:1355", event = 60000, reentrancy = 5}, {fileline = 0x5558591ef648 "HttpSM.cc:1395", event = 60000, reentrancy = 5}, {
    fileline = 0x5558591f13df "HttpSM.cc:6481", event = 65535, reentrancy = 5}, {fileline = 0x5558591f0049 "HttpSM.cc:3000", event = 102, reentrancy = 0}, {
    fileline = 0x5558591f0260 "HttpSM.cc:3462", event = 103, reentrancy = 0}, {fileline = 0x5558591ef584 "HttpSM.cc:1243", event = 2000, reentrancy = 1}, {
    fileline = 0x5558591ef61d "HttpSM.cc:1355", event = 60000, reentrancy = 2}, {fileline = 0x5558591ef648 "HttpSM.cc:1395", event = 60000, reentrancy = 2}, {
    fileline = 0x5558591ef61d "HttpSM.cc:1355", event = 60000, reentrancy = 3}, {fileline = 0x5558591ef648 "HttpSM.cc:1395", event = 60000, reentrancy = 3}, {
    fileline = 0x5558591f1cee "HttpSM.cc:7421", event = 65535, reentrancy = 3}, {fileline = 0x5558591ea841 "HttpCacheSM.cc:118", event = 1103, reentrancy = -1}, {
    fileline = 0x5558591efd86 "HttpSM.cc:2607", event = 1103, reentrancy = 4}, {fileline = 0x5558591ef61d "HttpSM.cc:1355", event = 60000, reentrancy = 5}, {
    fileline = 0x5558591ef648 "HttpSM.cc:1395", event = 60000, reentrancy = 5}, {fileline = 0x5558591ef61d "HttpSM.cc:1355", event = 60000, reentrancy = 6}, {
    fileline = 0x5558591ef648 "HttpSM.cc:1395", event = 60000, reentrancy = 6}, {fileline = 0x5558591f1cd0 "HttpSM.cc:7381", event = 65535, reentrancy = 6}, {
    fileline = 0x5558591f1d1b "HttpSM.cc:7536", event = 65535, reentrancy = 6}, {fileline = 0x5558591efcd9 "HttpSM.cc:2488", event = 1109, reentrancy = 7}, {
    fileline = 0x5558591f0a95 "HttpSM.cc:4587", event = 40768, reentrancy = 3}, {fileline = 0x5558591efcd9 "HttpSM.cc:2488", event = 1109, reentrancy = 1}, {
    fileline = 0x5558591f1d0c "HttpSM.cc:7434", event = 65535, reentrancy = 1}, {fileline = 0x5558591ef7a5 "HttpSM.cc:1742", event = 200, reentrancy = 2}, {
    fileline = 0x5558591ef61d "HttpSM.cc:1355", event = 60000, reentrancy = 3}, {fileline = 0x5558591ef648 "HttpSM.cc:1395", event = 60000, reentrancy = 3}, {
    fileline = 0x5558591ef61d "HttpSM.cc:1355", event = 60000, reentrancy = 4}, {fileline = 0x5558591ef648 "HttpSM.cc:1395", event = 60000, reentrancy = 4}}

What is event 2301? :-)

Can you please attach your gzip configuration.

@zwoop It is better to create another issue for the new crash.
IMO, it may be related with the  follow redirect. Can you disable the follow redirect and test again ?
IMO, the assert may be triggered by HTTP Redirect response with the content-length > 0.

I don't think we follow redirect enabled anywhere on these boxes. I can certainly make a new issue if you like :). It only seems to trip though with gzip.so plugin enabled.

(gdb) p t_state
$3 = {
  m_magic = HttpTransact::HTTP_TRANSACT_MAGIC_ALIVE,
  state_machine = 0x2ad950121240,
  arena = {
    m_blocks = 0x2ad94c1f9000
  },
  http_config_param = 0x55585a99ff40,
  cache_info = {
    action = HttpTransact::CACHE_DO_NO_ACTION,
    transform_action = HttpTransact::CACHE_DO_NO_ACTION,
    write_status = HttpTransact::CACHE_WRITE_LOCK_MISS,
    transform_write_status = HttpTransact::NO_CACHE_WRITE,
    lookup_url = 0x2ad9501212e8,
    lookup_url_storage = {
      <HdrHeapSDKHandle> = {
        m_heap = 0x2ad9400e1800
      },
      members of URL:
      m_url_impl = 0x2ad9400e1888
    },
    original_url = {
      <HdrHeapSDKHandle> = {
        m_heap = 0x0
      },
      members of URL:
      m_url_impl = 0x0
    },
    object_read = 0x0,
    second_object_read = 0x0,
    object_store = {
      m_alt = 0x0
    },
    transform_store = {
      m_alt = 0x0
    },
    config = {
      cache_global_user_agent_header = false,
      cache_enable_default_vary_headers = false,
      ignore_accept_mismatch = 2,
      ignore_accept_language_mismatch = 2,
      ignore_accept_encoding_mismatch = 2,
      ignore_accept_charset_mismatch = 2,
      cache_vary_default_text = 0x0,
      cache_vary_default_images = 0x0,
      cache_vary_default_other = 0x0
    },
    directives = {
      does_client_permit_lookup = true,
      does_client_permit_storing = true,
      does_client_permit_dns_storing = true,
      does_config_permit_lookup = true,
      does_config_permit_storing = true,
      does_server_permit_lookup = true,
      does_server_permit_storing = true
    },
    open_read_retries = 0,
    open_write_retries = 0,
    write_lock_state = HttpTransact::CACHE_WL_FAIL,
    lookup_count = 2,
    hit_miss_code = SQUID_MISS_NONE,
    parent_selection_url = 0x0,
    parent_selection_url_storage = {
      <HdrHeapSDKHandle> = {
        m_heap = 0x0
      },
      members of URL:
      m_url_impl = 0x0
    }
  },
  dns_info = {
    attempts = 0,
    os_addr_style = HttpTransact::_DNSLookupInfo::OS_ADDR_TRY_DEFAULT,
    lookup_success = true,
    lookup_name = 0x2ad94c1f903d "origin",
    srv_hostname = '\000' <repeats 1024 times>,
    looking_up = HttpTransact::ORIGIN_SERVER,
    srv_lookup_success = false,
    srv_port = 0,
    srv_app = {
      allotment = {
        application1 = 0,
        application2 = 0
      },
      http_data = {
        http_version = 0,
        pipeline_max = 0,
        keepalive_timeout = 0,
        fail_count = 0,
        unused1 = 0,
        last_failure = 0
      },
      rr = {
        offset = 0
      }
    },
    lookup_validated = true
  },
  redirect_info = {
    redirect_in_process = true,
    original_url = {
      <HdrHeapSDKHandle> = {
        m_heap = 0x2ad950270800
      },
      members of URL:
      m_url_impl = 0x2ad950270888
    },
    redirect_url = {
      <HdrHeapSDKHandle> = {
        m_heap = 0x2ad95e54d000
      },
      members of URL:
      m_url_impl = 0x2ad95e54d088
    }
  },
  updated_server_version = 0,
  force_dns = false,
  cache_open_write_fail_action = 0 '\000',
  is_revalidation_necessary = false,
  request_will_not_selfloop = true,
  client_info = {
    http_version = {
      m_version = 65537
    },
    keep_alive = HTTP_KEEPALIVE,
    receive_chunked_response = true,
    pipeline_possible = true,
    proxy_connect_hdr = false,
    connect_result = 0,
    name = 0x0,
    transfer_encoding = HttpTransact::NO_TRANSFER_ENCODING,
    src_addr = {
      sa = {
        sa_family = 2,
        sa_data = "\306\034\n\375\005\260\000\000\000\000\000\000\000"
      },
      sin = {
        sin_family = 2,
        sin_port = 7366,
        sin_addr = {
          s_addr =<PHONE_NUMBER>
        },
        sin_zero = "\000\000\000\000\000\000\000"
      },
      sin6 = {
        sin6_family = 2,
        sin6_port = 7366,
        sin6_flowinfo =<PHONE_NUMBER>,
        sin6_addr = {
          __in6_u = {
            __u6_addr8 = '\000' <repeats 15 times>,
            __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0},
            __u6_addr32 = {0, 0, 0, 0}
          }
        },
        sin6_scope_id = 0
      }
    },
    dst_addr = {
      sa = {
        sa_family = 2,
        sa_data = "P\000\n\375\005\325\000\000\000\000\000\000\000"
      },
      sin = {
        sin_family = 2,
        sin_port = 80,
        sin_addr = {
          s_addr =<PHONE_NUMBER>
        },
        sin_zero = "\000\000\000\000\000\000\000"
      },
      sin6 = {
        sin6_family = 2,
        sin6_port = 80,
        sin6_flowinfo =<PHONE_NUMBER>,
        sin6_addr = {
          __in6_u = {
            __u6_addr8 = '\000' <repeats 15 times>,
            __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0},
            __u6_addr32 = {0, 0, 0, 0}
          }
        },
        sin6_scope_id = 0
      }
    },
    state = HttpTransact::STATE_UNDEFINED,
    abort = HttpTransact::ABORT_UNDEFINED,
    port_attribute = HttpProxyPort::TRANSPORT_DEFAULT,
    is_transparent = false
  },
  icp_info = {
    http_version = {
      m_version = 65536
    },
    keep_alive = HTTP_KEEPALIVE_UNDEFINED,
    receive_chunked_response = false,
    pipeline_possible = false,
    proxy_connect_hdr = false,
    connect_result = 0,
    name = 0x0,
    transfer_encoding = HttpTransact::NO_TRANSFER_ENCODING,
    src_addr = {
      sa = {
        sa_family = 0,
        sa_data = '\000' <repeats 13 times>
      },
      sin = {
        sin_family = 0,
        sin_port = 0,
        sin_addr = {
          s_addr = 0
        },
        sin_zero = "\000\000\000\000\000\000\000"
      },
      sin6 = {
        sin6_family = 0,
        sin6_port = 0,
        sin6_flowinfo = 0,
        sin6_addr = {
          __in6_u = {
            __u6_addr8 = '\000' <repeats 15 times>,
            __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0},
            __u6_addr32 = {0, 0, 0, 0}
          }
        },
        sin6_scope_id = 0
      }
    },
    dst_addr = {
      sa = {
        sa_family = 0,
        sa_data = '\000' <repeats 13 times>
      },
      sin = {
        sin_family = 0,
        sin_port = 0,
        sin_addr = {
          s_addr = 0
        },
        sin_zero = "\000\000\000\000\000\000\000"
      },
      sin6 = {
        sin6_family = 0,
        sin6_port = 0,
        sin6_flowinfo = 0,
        sin6_addr = {
          __in6_u = {
            __u6_addr8 = '\000' <repeats 15 times>,
            __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0},
            __u6_addr32 = {0, 0, 0, 0}
          }
        },
        sin6_scope_id = 0
      }
    },
    state = HttpTransact::STATE_UNDEFINED,
    abort = HttpTransact::ABORT_UNDEFINED,
    port_attribute = HttpProxyPort::TRANSPORT_DEFAULT,
    is_transparent = false
  },
  parent_info = {
    http_version = {
      m_version = 65536
    },
    keep_alive = HTTP_KEEPALIVE_UNDEFINED,
    receive_chunked_response = false,
    pipeline_possible = false,
    proxy_connect_hdr = false,
    connect_result = 0,
    name = 0x0,
    transfer_encoding = HttpTransact::NO_TRANSFER_ENCODING,
    src_addr = {
      sa = {
        sa_family = 0,
        sa_data = '\000' <repeats 13 times>
      },
      sin = {
        sin_family = 0,
        sin_port = 0,
        sin_addr = {
          s_addr = 0
        },
        sin_zero = "\000\000\000\000\000\000\000"
      },
      sin6 = {
        sin6_family = 0,
        sin6_port = 0,
        sin6_flowinfo = 0,
        sin6_addr = {
          __in6_u = {
            __u6_addr8 = '\000' <repeats 15 times>,
            __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0},
            __u6_addr32 = {0, 0, 0, 0}
          }
        },
        sin6_scope_id = 0
      }
    },
    dst_addr = {
      sa = {
        sa_family = 0,
        sa_data = '\000' <repeats 13 times>
      },
      sin = {
        sin_family = 0,
        sin_port = 0,
        sin_addr = {
          s_addr = 0
        },
        sin_zero = "\000\000\000\000\000\000\000"
      },
      sin6 = {
        sin6_family = 0,
        sin6_port = 0,
        sin6_flowinfo = 0,
        sin6_addr = {
          __in6_u = {
            __u6_addr8 = '\000' <repeats 15 times>,
            __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0},
            __u6_addr32 = {0, 0, 0, 0}
          }
        },
        sin6_scope_id = 0
      }
    },
    state = HttpTransact::STATE_UNDEFINED,
    abort = HttpTransact::ABORT_UNDEFINED,
    port_attribute = HttpProxyPort::TRANSPORT_DEFAULT,
    is_transparent = false
  },
  server_info = {
    http_version = {
      m_version = 65537
    },
    keep_alive = HTTP_KEEPALIVE,
    receive_chunked_response = false,
    pipeline_possible = false,
    proxy_connect_hdr = false,
    connect_result = 0,
    name = 0x2ad94c1f903d "origin",
    transfer_encoding = HttpTransact::CHUNKED_ENCODING,
    src_addr = {
      sa = {
        sa_family = 0,
        sa_data = '\000' <repeats 13 times>
      },
      sin = {
        sin_family = 0,
        sin_port = 0,
        sin_addr = {
          s_addr = 0
        },
        sin_zero = "\000\000\000\000\000\000\000"
      },
      sin6 = {
        sin6_family = 0,
        sin6_port = 0,
        sin6_flowinfo = 0,
        sin6_addr = {
          __in6_u = {
            __u6_addr8 = '\000' <repeats 15 times>,
            __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0},
            __u6_addr32 = {0, 0, 0, 0}
          }
        },
        sin6_scope_id = 0
      }
    },
    dst_addr = {
      sa = {
        sa_family = 2,
        sa_data = "\001\273\021\232A\223\000\000\000\000\000\000\000"
      },
      sin = {
        sin_family = 2,
        sin_port = 47873,
        sin_addr = {
          s_addr =<PHONE_NUMBER>
        },
        sin_zero = "\000\000\000\000\000\000\000"
      },
      sin6 = {
        sin6_family = 2,
        sin6_port = 47873,
        sin6_flowinfo =<PHONE_NUMBER>,
        sin6_addr = {
          __in6_u = {
            __u6_addr8 = '\000' <repeats 15 times>,
            __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0},
            __u6_addr32 = {0, 0, 0, 0}
          }
        },
        sin6_scope_id = 0
      }
    },
    state = HttpTransact::STATE_UNDEFINED,
    abort = HttpTransact::DIDNOT_ABORT,
    port_attribute = HttpProxyPort::TRANSPORT_DEFAULT,
    is_transparent = false
  },
  source = HttpTransact::SOURCE_TRANSFORM,
  pre_transform_source = HttpTransact::SOURCE_HTTP_ORIGIN_SERVER,
  req_flavor = HttpTransact::REQ_FLAVOR_REVPROXY,
  current = {
    mode = HttpTransact::GENERIC_PROXY,
    request_to = HttpTransact::ORIGIN_SERVER,
    server = 0x2ad950121928,
    now =<PHONE_NUMBER>,
    state = HttpTransact::STATE_UNDEFINED,
    attempts = 0,
    simple_retry_attempts = 0,
    unavailable_server_retry_attempts = 0,
    retry_type = PARENT_RETRY_NONE
  },
  hdr_info = {
    client_request = {
      <MIMEHdr> = {
        <HdrHeapSDKHandle> = {
          m_heap = 0x2b052f3e2800
        },
        members of MIMEHdr:
        m_mime = 0x2b052f3e28b8
      },
      members of HTTPHdr:
      m_http = 0x2b052f3e2888,
      m_url_cached = {
        <HdrHeapSDKHandle> = {
          m_heap = 0x2b052f3e2800
        },
        members of URL:
        m_url_impl = 0x2b052f3e2b08
      },
      m_host_mime = 0x0,
      m_host_length = 30,
      m_port = 443,
      m_target_cached = true,
      m_target_in_url = true,
      m_100_continue_required = false,
      m_port_in_header = false
    },
    client_response = {
      <MIMEHdr> = {
        <HdrHeapSDKHandle> = {
          m_heap = 0x0
        },
        members of MIMEHdr:
        m_mime = 0x2ad92c01f8b8
      },
      members of HTTPHdr:
      m_http = 0x2ad92c01f888,
      m_url_cached = {
        <HdrHeapSDKHandle> = {
          m_heap = 0x0
        },
        members of URL:
        m_url_impl = 0x0
      },
      m_host_mime = 0x0,
      m_host_length = 0,
      m_port = 0,
      m_target_cached = false,
      m_target_in_url = false,
      m_100_continue_required = false,
      m_port_in_header = false
    },
    server_request = {
      <MIMEHdr> = {
        <HdrHeapSDKHandle> = {
          m_heap = 0x2b00d1d30000
        },
        members of MIMEHdr:
        m_mime = 0x2b00d1d300b8
      },
      members of HTTPHdr:
      m_http = 0x2b00d1d30088,
      m_url_cached = {
        <HdrHeapSDKHandle> = {
          m_heap = 0x2b00d1d30000
        },
        members of URL:
        m_url_impl = 0x2b00d1d30308
      },
      m_host_mime = 0x2b00d1d30108,
      m_host_length = 30,
      m_port = 443,
      m_target_cached = true,
      m_target_in_url = false,
      m_100_continue_required = false,
      m_port_in_header = false
    },
    server_response = {
      <MIMEHdr> = {
        <HdrHeapSDKHandle> = {
          m_heap = 0x2ad958216000
        },
        members of MIMEHdr:
        m_mime = 0x2ad9582160b8
      },
      members of HTTPHdr:
      m_http = 0x2ad958216088,
      m_url_cached = {
        <HdrHeapSDKHandle> = {
          m_heap = 0x0
        },
        members of URL:
        m_url_impl = 0x0
      },
      m_host_mime = 0x0,
      m_host_length = 0,
      m_port = 0,
      m_target_cached = false,
      m_target_in_url = false,
      m_100_continue_required = false,
      m_port_in_header = false
    },
    transform_response = {
      <MIMEHdr> = {
        <HdrHeapSDKHandle> = {
          m_heap = 0x2b1708c27000
        },
        members of MIMEHdr:
        m_mime = 0x2b1708c270b8
      },
      members of HTTPHdr:
      m_http = 0x2b1708c27088,
      m_url_cached = {
        <HdrHeapSDKHandle> = {
          m_heap = 0x0
        },
        members of URL:
        m_url_impl = 0x0
      },
      m_host_mime = 0x0,
      m_host_length = 0,
      m_port = 0,
      m_target_cached = false,
      m_target_in_url = false,
      m_100_continue_required = false,
      m_port_in_header = false
    },
    cache_response = {
      <MIMEHdr> = {
        <HdrHeapSDKHandle> = {
          m_heap = 0x0
        },
        members of MIMEHdr:
        m_mime = 0x0
      },
      members of HTTPHdr:
      m_http = 0x0,
      m_url_cached = {
        <HdrHeapSDKHandle> = {
          m_heap = 0x0
        },
        members of URL:
        m_url_impl = 0x0
      },
      m_host_mime = 0x0,
      m_host_length = 0,
      m_port = 0,
      m_target_cached = false,
      m_target_in_url = false,
      m_100_continue_required = false,
      m_port_in_header = false
    },
    request_content_length = 0,
    response_content_length = -1,
    transform_request_cl = -1,
    transform_response_cl = -1,
    client_req_is_server_style = false,
    trust_response_cl = false,
    response_error = HttpTransact::STATUS_CODE_SERVER_ERROR,
    extension_method = false
  },
  squid_codes = {
    log_code = SQUID_LOG_TCP_MISS_X_REDIRECT,
    hier_code = SQUID_HIER_DIRECT,
    hit_miss_code = SQUID_MISS_NONE
  },
  api_info = {
    parent_proxy_name = 0x0,
    parent_proxy_port = -1,
    cache_untransformed = true,
    cache_transformed = false,
    logging_enabled = true,
    retry_intercept_failures = false
  },
  pending_work = 0x0,
  cdn_saved_next_action = HttpTransact::SM_ACTION_ORIGIN_SERVER_OPEN,
  cdn_saved_transact_return_point = 0x0,
  cdn_remap_complete = false,
  first_dns_lookup = true,
  backdoor_request = false,
  cop_test_page = false,
  request_data = {
    <RequestData> = {
      _vptr$RequestData = 0x55585948a7e0 <vtable for HttpRequestData+16>
    },
    members of HttpRequestData:
    hdr = 0x2ad9501219d0,
    hostname_str = 0x2ad94c1f905d "origin",
    api_info = 0x2ad950121b90,
    xact_start =<PHONE_NUMBER>,
    src_ip = {
      sa = {
        sa_family = 2,
        sa_data = "\306\034\n\375\005\260\000\000\000\000\000\000\000"
      },
      sin = {
        sin_family = 2,
        sin_port = 7366,
        sin_addr = {
          s_addr =<PHONE_NUMBER>
        },
        sin_zero = "\000\000\000\000\000\000\000"
      },
      sin6 = {
        sin6_family = 2,
        sin6_port = 7366,
        sin6_flowinfo =<PHONE_NUMBER>,
        sin6_addr = {
          __in6_u = {
            __u6_addr8 = '\000' <repeats 15 times>,
            __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0},
            __u6_addr32 = {0, 0, 0, 0}
          }
        },
        sin6_scope_id = 0
      }
    },
    dest_ip = {
      sa = {
        sa_family = 2,
        sa_data = "\001\273\021\232A\223\000\000\000\000\000\000\000"
      },
      sin = {
        sin_family = 2,
        sin_port = 47873,
        sin_addr = {
          s_addr =<PHONE_NUMBER>
        },
        sin_zero = "\000\000\000\000\000\000\000"
      },
      sin6 = {
        sin6_family = 2,
        sin6_port = 47873,
        sin6_flowinfo =<PHONE_NUMBER>,
        sin6_addr = {
          __in6_u = {
            __u6_addr8 = '\000' <repeats 15 times>,
            __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0},
            __u6_addr32 = {0, 0, 0, 0}
          }
        },
        sin6_scope_id = 0
      }
    },
    incoming_port = 80,
    tag = 0x0,
    internal_txn = false,
    cache_info_lookup_url = 0x2ad9501212e0,
    cache_info_parent_selection_url = 0x2ad950121378
  },
  parent_params = 0x55585a9bba20,
  parent_result = {
    result = PARENT_DIRECT,
    hostname = 0x0,
    port = 0,
    retry = false,
    line_number = -1,
    rec = 0x0,
    last_parent = 0,
    start_parent = 0,
    wrap_around = false,
    last_lookup = 0,
    chashIter = {{
        __i_ = {
          __ptr_ = 0x0
        }
      }, {
        __i_ = {
          __ptr_ = 0x0
        }
      }}
  },
  cache_control = {
    revalidate_after = -1,
    pin_in_cache_for = -1,
    ttl_in_cache = -1,
    never_cache = false,
    cluster_cache_local = false,
    ignore_client_no_cache = true,
    ignore_server_no_cache = false,
    ignore_client_cc_max_age = true,
    cache_responses_to_cookies = -1,
    reval_line = -1,
    never_line = -1,
    pin_line = -1,
    ttl_line = -1,
    cluster_cache_local_line = -1,
    ignore_client_line = -1,
    ignore_server_line = -1
  },
  cache_lookup_result = HttpTransact::CACHE_LOOKUP_MISS,
  next_action = HttpTransact::SM_ACTION_ORIGIN_SERVER_OPEN,
  api_next_action = HttpTransact::SM_ACTION_API_SEND_REQUEST_HDR,
  transact_return_point = 0x0,
  post_remap_upgrade_return_point = 0x0,
  upgrade_token_wks = 0x0,
  is_upgrade_request = false,
  is_websocket = false,
  did_upgrade_succeed = false,
  origin_request_queued = false,
  internal_msg_buffer = 0x0,
  internal_msg_buffer_type = 0x0,
  internal_msg_buffer_size = 0,
  internal_msg_buffer_fast_allocator_size = -1,
  icp_ip_result = {
    sin_family = 0,
    sin_port = 0,
    sin_addr = {
      s_addr = 0
    },
    sin_zero = "\000\000\000\000\000\000\000"
  },
  icp_lookup_success = false,
  scheme = 98,
  next_hop_scheme = 98,
  orig_scheme = 99,
  method = 117,
  cause_of_death_errno = -19999,
  hostdb_entry = {
    m_ptr = 0x2ad93823f400
  },
  host_db_info = {
    <RefCountObj> = {
      <ForceVFPTToTop> = {
        _vptr$ForceVFPTToTop = 0x0
      },
      members of RefCountObj:
      m_refcount = 0
    },
    members of HostDBInfo:
    iobuffer_index = 0,
    key = 0,
    app = {
      allotment = {
        application1 = 0,
        application2 = 0
      },
      http_data = {
        http_version = 0,
        pipeline_max = 0,
        keepalive_timeout = 0,
        fail_count = 0,
        unused1 = 0,
        last_failure = 0
      },
      rr = {
        offset = 0
      }
    },
    data = {
      ip = {
        sa = {
          sa_family = 2,
          sa_data = "\000\000\021\232A\223\000\000\000\000\000\000\000"
        },
        sin = {
          sin_family = 2,
          sin_port = 0,
          sin_addr = {
            s_addr =<PHONE_NUMBER>
          },
          sin_zero = "\000\000\000\000\000\000\000"
        },
        sin6 = {
          sin6_family = 2,
          sin6_port = 0,
          sin6_flowinfo =<PHONE_NUMBER>,
          sin6_addr = {
            __in6_u = {
              __u6_addr8 = '\000' <repeats 15 times>,
              __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0},
              __u6_addr32 = {0, 0, 0, 0}
            }
          },
          sin6_scope_id = 0
        }
      },
      hostname_offset = 2,
      srv = {
        srv_offset = 2,
        srv_weight = 0,
        srv_priority = 39441,
        srv_port = 37697,
        key = 0
      }
    },
    hostname_offset = 0,
    ip_timestamp = 0,
    ip_timeout_interval = 0,
    is_srv = 0,
    reverse_dns = 0,
    round_robin = 0,
    round_robin_elt = 1
  },
  client_request_time =<PHONE_NUMBER>,
  request_sent_time =<PHONE_NUMBER>,
  response_received_time = 0,
  plugin_set_expire_time = 0,
  via_string = "uScMsSfWpSeN:t cCMi p sS",
  state_machine_id = 2841228,
  client_connection_enabled = true,
  acl_filtering_performed = true,
  negative_caching = false,
  www_auth_content = HttpTransact::CACHE_AUTH_NONE,
  remap_plugin_instance = 0x55585f62e970,
  user_args = {0x10, 0x0 <repeats 15 times>},
  fp_tsremap_os_response = 0x0,
  http_return_code = HTTP_STATUS_NONE,
  api_txn_active_timeout_value = -1,
  api_txn_connect_timeout_value = -1,
  api_txn_dns_timeout_value = -1,
  api_txn_no_activity_timeout_value = -1,
  cache_req_hdr_heap_handle = 0x0,
  cache_resp_hdr_heap_handle = 0x0,
  api_cleanup_cache_read = false,
  api_server_response_no_store = false,
  api_server_response_ignore = false,
  api_http_sm_shutdown = false,
  api_modifiable_cached_resp = false,
  api_server_request_body_set = false,
  api_req_cacheable = false,
  api_resp_cacheable = false,
  api_server_addr_set = false,
  stale_icp_lookup = false,
  api_update_cached_object = HttpTransact::UPDATE_CACHED_OBJECT_NONE,
  api_lock_url = HttpTransact::LOCK_URL_FIRST,
  saved_update_next_action = HttpTransact::SM_ACTION_UNDEFINED,
  saved_update_cache_action = HttpTransact::CACHE_DO_UNDEFINED,
  url_map = {
    _mapping = 0x55585f62ce60,
    _toURLPtr = 0x55585f62ce78,
    _toURL = {
      <HdrHeapSDKHandle> = {
        m_heap = 0x0
      },
      members of URL:
      m_url_impl = 0x0
    },
    _heap = 0x2b052f3e2800
  },
  hh_info = {
    request_host = 0x0,
    host_len = 0,
    request_port = 0
  },
  pCongestionEntry = 0x0,
  congest_saved_next_action = HttpTransact::SM_ACTION_UNDEFINED,
  congestion_control_crat = 0,
  congestion_congested_or_failed = 0,
  congestion_connection_opened = 0,
  filter_mask = 0,
  remap_redirect = 0x0,
  reverse_proxy = true,
  url_remap_success = true,
  api_skip_all_remapping = false,
  already_downgraded = false,
  unmapped_url = {
    <HdrHeapSDKHandle> = {
      m_heap = 0x2b052f3e2800
    },
    members of URL:
    m_url_impl = 0x2b052f3e2b78
  },
  range_setup = HttpTransact::RANGE_NONE,
  num_range_fields = 0,
  range_output_cl = 0,
  ranges = 0x0,
  txn_conf = 0x2ad950121f60,
  my_txn_conf = {
    maintain_pristine_host_hdr = 0 '\000',
    chunking_enabled = 1 '\001',
    negative_caching_enabled = 1 '\001',
    negative_revalidating_enabled = 1 '\001',
    cache_when_to_revalidate = 0 '\000',
    keep_alive_enabled_in = 1 '\001',
    keep_alive_enabled_out = 1 '\001',
    keep_alive_post_out = 1 '\001',
    server_session_sharing_match = 3 '\003',
    auth_server_session_private = 1 '\001',
    fwd_proxy_auth_to_parent = 0 '\000',
    uncacheable_requests_bypass_parent = 1 '\001',
    attach_server_session_to_client = 0 '\000',
    safe_requests_retryable = 1 '\001',
    forward_connect_method = 0 '\000',
    insert_age_in_response = 1 '\001',
    anonymize_remove_from = 0 '\000',
    anonymize_remove_referer = 0 '\000',
    anonymize_remove_user_agent = 0 '\000',
    anonymize_remove_cookie = 0 '\000',
    anonymize_remove_client_ip = 1 '\001',
    anonymize_insert_client_ip = 1 '\001',
    proxy_response_server_enabled = 1 '\001',
    proxy_response_hsts_include_subdomains = 0 '\000',
    insert_squid_x_forwarded_for = 1 '\001',
    send_http11_requests = 1 '\001',
    cache_http = 1 '\001',
    cache_cluster_cache_local = 0 '\000',
    cache_ignore_client_no_cache = 1 '\001',
    cache_ignore_client_cc_max_age = 1 '\001',
    cache_ims_on_client_no_cache = 1 '\001',
    cache_ignore_server_no_cache = 0 '\000',
    cache_responses_to_cookies = 1 '\001',
    cache_ignore_auth = 0 '\000',
    cache_urls_that_look_dynamic = 1 '\001',
    cache_required_headers = 2 '\002',
    cache_range_lookup = 1 '\001',
    cache_range_write = 0 '\000',
    insert_request_via_string = 1 '\001',
    insert_response_via_string = 1 '\001',
    doc_in_cache_skip_dns = 1 '\001',
    flow_control_enabled = 1 '\001',
    normalize_ae_gzip = 1 '\001',
    srv_enabled = 0 '\000',
    parent_failures_update_hostdb = 0 '\000',
    cache_open_write_fail_action = 2 '\002',
    post_check_content_length_enabled = 1 '\001',
    ssl_client_verify_server = 1 '\001',
    redirection_enabled = 0 '\000',
    redirect_use_orig_cache_key = 0 '\000',
    number_of_redirections = 1,
    proxy_response_hsts_max_age = -1,
    negative_caching_lifetime = 10,
    negative_revalidating_lifetime = 10,
    sock_recv_buffer_size_out = 0,
    sock_send_buffer_size_out = 0,
    sock_option_flag_out = 1,
    sock_packet_mark_out = 0,
    sock_packet_tos_out = 0,
    server_tcp_init_cwnd = 0,
    request_hdr_max_size = 131072,
    response_hdr_max_size = 131072,
    cache_heuristic_min_lifetime = 3600,
    cache_heuristic_max_lifetime = 86400,
    cache_guaranteed_min_lifetime = 0,
    cache_guaranteed_max_lifetime = 315360000,
    cache_max_stale_age = 604800,
    keep_alive_no_activity_timeout_in = 115,
    keep_alive_no_activity_timeout_out = 180,
    transaction_no_activity_timeout_in = 60,
    transaction_no_activity_timeout_out = 60,
    transaction_active_timeout_out = 0,
    transaction_active_timeout_in = 0,
    websocket_active_timeout = 3600,
    websocket_inactive_timeout = 600,
    origin_max_connections = 0,
    origin_max_connections_queue = -1,
    connect_attempts_max_retries = 9,
    connect_attempts_max_retries_dead_server = 1,
    connect_attempts_rr_retries = 3,
    connect_attempts_timeout = 60,
    post_connect_attempts_timeout = 1800,
    parent_connect_attempts = 6,
    parent_retry_time = 300,
    parent_fail_threshold = 10,
    per_parent_connect_attempts = 2,
    parent_connect_timeout = 60,
    down_server_timeout = 60,
    client_abort_threshold = 10,
    freshness_fuzz_time = 0,
    freshness_fuzz_min_time = 0,
    max_cache_open_read_retries = -1,
    cache_open_read_retry_time = 10,
    cache_generation_number = -1,
    max_cache_open_write_retries = 1,
    background_fill_active_timeout = 0,
    http_chunking_size = 4096,
    flow_high_water_mark = 4194304,
    flow_low_water_mark = 2097152,
    default_buffer_size_index = 8,
    default_buffer_water_mark = 32768,
    slow_log_threshold = 0,
    body_factory_template_base = 0x55585a9a0390 "NONE",
    body_factory_template_base_len = 4,
    proxy_response_server_string = 0x55585a9a0330 "ATS/7.1.2",
    proxy_response_server_string_len = 9,
    global_user_agent_header = 0x0,
    global_user_agent_header_size = 0,
    cache_heuristic_lm_factor = 0.100000001,
    freshness_fuzz_prob = 0,
    background_fill_threshold = 0,
    client_cert_filename = 0x0,
    client_cert_filepath = 0x55585a9a03b0 "etc/trafficserver/certs"
  },
  transparent_passthrough = false,
  range_in_cache = false
}```

Closing this as this particular issue seems fixed now.