Running RRA or CMC with Sam Hamner's data causes GUI to crash

Steps to reproduce

Download https://simtk.org/frs/download_confirm.php/file/2512/RunningSimulation_simTK.zip?group_id=516
Open subject 2 scaled model and run the IK setup file (running IK in the GUI is essential; a different error occurs otherwise).
Run the RRA setup file (might have to update some of the input files (external loads).)

Expected result
No crash.
Actual result
GUI crashes
Problem Report for OpenSim Part IV.txt
Problem Report for OpenSim Part V.txt
The GUI also crashes when running CMC.
Environment and GUI version
Mac OpenSim 2416f17-2018-02-25

PartIV is a duplicate of #562
PartV is a core issue, relevant stack trace follows, @aseth1 to investigate
7   libsystem_platform.dylib      	0x00007fff73611f5a sigtramp + 26
8   ???                           	0x0000000000000259 0 + 601
9   libosimSimulation.dylib       	0x000000012dacb2e8 OpenSim::Frame::expressVectorInGround(SimTK::State const&, SimTK::Vec<3, double, 1> const&) const + 24
10  libosimSimulation.dylib       	0x000000012dab08b8 OpenSim::ExternalForce::computeForce(SimTK::State const&, SimTK::Vector<SimTK::Vec<2, SimTK::Vec<3, double, 1>, 1> >&, SimTK::Vector_&) const + 88
11  libSimTKsimbody.3.6.dylib     	0x000000012e1205a5 (anonymous namespace)::CalcForcesNonParallelTask::execute(int) + 133
12  libSimTKcommon.3.6.dylib      	0x000000012e4d776b SimTK::ParallelExecutorImpl::execute(SimTK::ParallelExecutor::Task&, int) + 75
13  libSimTKsimbody.3.6.dylib     	0x000000012e11e27d SimTK::GeneralForceSubsystemRep::realizeSubsystemDynamicsImpl(SimTK::State const&) const + 669
14  libSimTKcommon.3.6.dylib      	0x000000012e639591 SimTK::Subsystem::Guts::realizeSubsystemDynamics(SimTK::State const&) const + 65
15  libSimTKsimbody.3.6.dylib     	0x000000012e1514ba SimTK::MultibodySystemRep::realizeDynamicsImpl(SimTK::State const&) const + 170
16  libSimTKcommon.3.6.dylib      	0x000000012e63cba3 SimTK::System::Guts::realizeDynamics(SimTK::State const&) const + 51
17  libSimTKcommon.3.6.dylib      	0x000000012e63b3b9 SimTK::System::Guts::realize(SimTK::State const&, SimTK::Stage) const + 105
18  libosimAnalyses.dylib         	0x000000012d7f4550 OpenSim::InverseDynamics::computeAcceleration(SimTK::State&, double*, double*) const + 176
19  libosimAnalyses.dylib         	0x000000012d7f49a5 OpenSim::InverseDynamics::record(SimTK::State const&) + 901
20  libosimAnalyses.dylib         	0x000000012d7f5885 OpenSim::InverseDynamics::begin(SimTK::State const&) + 1557
21  libosimSimulation.dylib       	0x000000012da6137a OpenSim::AnalysisSet::begin(SimTK::State const&) + 74
22  libosimTools.dylib            	0x000000012d6489f6 OpenSim::AnalyzeTool::run(SimTK::State&, OpenSim::Model&, int, int, OpenSim::Storage const&, bool) + 1622
23  libosimTools.dylib            	0x000000012d6bf036 OpenSim::RRATool::computeAverageResiduals(SimTK::State&, OpenSim::Model&, double, double, OpenSim::Storage const&, OpenSim::Array&, OpenSim::Array&) + 454
24  libosimTools.dylib            	0x000000012d6bd895 OpenSim::RRATool::adjustCOMToReduceResiduals(SimTK::State&, OpenSim::Storage const&, OpenSim::Storage const&) + 773
25  libosimTools.dylib            	0x000000012d6b8c2a OpenSim::RRATool::run() + 3562

Might be related to https://github.com/opensim-org/opensim-core/issues/2110

I am seeing some unexpected behavior trying to test this.
IK runs without issue.
When I try to load the provided RRA set-up file, a dialog box appears (see attached) and the tool does not open.
If I select settings manually, and then hit run, I'm not able to get an external loads file set-up. The one provided does not work. If I try to create a new one, I get the message that column names are not unique and am prompted to save a new version with unique ids appended. But then I'm not able to specify any torques/forces via the Add button. Apologies if this is pilot error.
I believe this is the associated error message:
java.lang.RuntimeException: ModelComponent::getModel(): component '' of type ExternalForce does not belong to a model. Have you called Model::initSystem()?
I am able to run RRA without a crash with no external loads specified

Related #585

@jenhicks I think Nick and Rachel J were tasked with this example at the User Experience and Feedback Session, and I think they had to manually clean up the setup files before getting this crash. I don't remember exactly. Sorry that my instructions above are incomplete.
What if you remove the external loads?

Moving this back to next up until we can test again when external loads issues are fixed.

External Loads issues have been fixed, please check again @jimmyDunne when you have a chance

@jimmyDunne Will move to needs verifying since ExternalLoads issues have been tested elsewhere.

I was able to run the pipeline through RRA. I was using the files you put in the testing dropbox @jimmyDunne . The model starts to sink through the floor though ... did you see this as well?

Yes, but I see that in 3.3 as well.


Check rustup-init.sh with Shellcheck

We should verify rustup-init.sh with https://github.com/koalaman/shellcheck
Here's a simple Travis CI setup:
script:
  - shellcheck --version
  - shellcheck rustup-init.sh || travis_terminate 1

So I think this will be useful to have, yes.  But even if code is syntactically valid, it might sploof, so we'd still want to try running it too.  This could be a good catch of the mistake we had here though.


Usability. Health Log. Tabs should ONLY be shown when user is at the root of a flow

Issue Tabs should not be present once user starts a flow, specifically the Health Log flow.
Solution By design and for the sake of delivering a consistent experience. Tabs should only be present when at the root of each 4 tabs. Once flow start, tabs are hidden and the back action is available at the top left corner.

@ahurworth

Thanks @helloantoine !
One quick clarification (and perhaps it was already obvious): At the end of the symptom tracking flow, there's no tab bar but also no back button, since the user has submitted their symptoms (it's the end of the transaction).


feat_mat2 in loss_nc

After carefully checking the training code, I have a little question about the feat_mat2 in loss_nc.
How does the feat_mat2 help the performance of neighborhood clustering?
I see when computing the loss_nc the entropy was fed with the concatenation of three values which are out_t, feat_mat and feat_mat2. It turns out that the out_t and feat_mat denote the $W$ and $V$ respectively illustrated by the Sec. 3.2. So I guess the feat_mat2   has the same influence with feat_mat. But it only works in the mini batch data, does it? Is there any reasonable explanation about it? Thanks in advance.

Sorry for the late reply.
feat_mat2 is computed on the mini-batch samples.
They provide "live" features as opposed to memory features.
Memory features are not directly updated to minimize the loss while the mini-batch features can be influenced by the loss. In this sense, using feat_mat2 can make a difference.


Update storage-blob-soft-delete.md

@yzheng-msft : Thanks for your contribution! The author, @MichaelHauss, has been notified to review your proposed change.

@yzheng-msft : Thanks for your contribution! The author, @MichaelHauss, has been notified to review your proposed change.


Example integrations

The description mentions how bigchaindb is complimentary, it also mentions smart contracts. An example of how/where an EVM or Ethereum Ledger could integrate would be beneficial.

Here's one answer: https://ethereum.stackexchange.com/questions/1256/what-is-bigchaindb-and-how-can-it-be-used-with-ethereum


Error finding OpenEVSE entities

OpenEVSE integration adds device id (?) into entity name
e.g. "sensor.openevse_openevse_7614_charge_time_elapsed" or  "sensor.openevse_openevse_7614_divert_mode"
Device name can also be different ? "OpenEVSE: openevse-7614" ?

Home assistant is using quite complex logic to create entity id:
https://github.com/home-assistant/core/blob/dev/homeassistant/helpers/entity.py#L91-L114
Maybe I can use slugify function to translate the string?
https://github.com/home-assistant/core/blob/dev/homeassistant/util/__init__.py#L43
Alternatively - use more flexible matching algorithm for matching entity_id

end up in using slugify function. Works for now and it was a minimum change


Update README default value for hub.serviceType for stable/selenium

Signed-off-by: scott<EMAIL_ADDRESS>@flah00 @diemol
What this PR does / why we need it:
Fix incorrect default value in README for hub.serviceType.

@sjungwirth please bump the chart version

Updated chart version.

/ok-to-test
/lgtm

/lgtm


Backward compatibility tests do not run with the security plugin enabled

Issue
When BWC tests are executing they call GET _node/{NODE_ID}/plugins and check to see if the security plugin is in the list.  This doesn't check that the securty plugin is operational.  After inspection, it is not operational.  The BWC tests should run with all features of the security plugin enabled otherwise we cannot determine if backwards incompatible changes are being assessed.

Related to #3053

Sub issues to address

[x] https://github.com/opensearch-project/OpenSearch/pull/8900
[x] Enable security plugin on BWC tests
[ ] Correct audit logging source for tests
[ ] Modify the both the client and admin client to use SSL connection
[x] Update the test case to allow specifying the use that is used to make the connection
[ ] (Recommended) Add a test case that calls 'whoami' and confirms the identity of the caller

Additional Context
I'm seeing the following line that seems troublesome, this would imply that the security plugin features won't be available, doing more digging

» WARN ][o.o.s.OpenSearchSecurityPlugin] [securityBwcCluster1-0] OpenSearch Security plugin installed but disabled. This can expose your configuration (including passwords) to the public.

After looking at the configuration settings, (Thanks for paired debugging with me @parasjain1) these test don't actually start up the security plugin at all, the following configuration line needs to be switched from false -> true.
https://github.com/opensearch-project/security/blob/8063e1b64f880afb7dc54311f3110b162b913038/bwc-test/build.gradle#L128
However, after attempting to startup the node, copying configuration from SecureRestClientBuilder.java, there are still many errors coming in from the cluster:

» ERROR][o.o.s.s.h.n.SecuritySSLNettyHttpServerTransport] [securityBwcCluster1-0] Exception during establishing a SSL connection: io.netty.handler.ssl.NotSslRecordException: not an SSL/TLS record: 4...0a
»  io.netty.handler.ssl.NotSslRecordException: not an SSL/TLS record: 4..a
»  	at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1225) ~[netty-handler-4.1.94.Final.jar:4.1.94.Final]

These errors are happening because the cluster startup check is hardcoded to http, need to make this parameterized

WaitForHttpResource wait = new WaitForHttpResource("http", getFirstNode().getHttpSocketURI(), nodes.size());
[Source]

Branch that can be used to kickstart this effort https://github.com/opensearch-project/security/compare/main...peternied:security:bwc-ssl

I think this is the general idea for core: https://github.com/opensearch-project/OpenSearch/pull/8900. I am not sure about actually inputting the setting however since I don't see analogs for the type of setting I am creating here. I will have to look into it more.

[Triage] @scrawfor99 is handling this issue.

https://github.com/opensearch-project/OpenSearch/pull/8900 addresses part 1 of this issue.
https://github.com/scrawfor99/security/tree/testClusterChanges outlines some of the changes likely required for the security side of things.

Not sure how to diagnose this yet: file:///Users/steecraw/security/bwc-test/build/reports/tests/securityBwcCluster%23oldVersionClusterTask1/classes/org.opensearch.security.bwc.SecurityBackwardsCompatibilityIT.html

@scrawfor99 Do you have a pull request/branch where you get that reproduction when attempting to start the bwc tests?  Let me know and I'll take a look

Here is how I set up my machine, and I can see those errors...
cd ~/git/OpenSearch/
git remote add scrawfor99 https://github.com/scrawfor99/OpenSearch.git
git fetch scrawfor99
git checkout scrawfor99/bwcFix
git merge origin/main
./gradlew build-tools:publishToMavenLocal
./gradlew distribution:archives:linux-tar:assemble

cd ../security
git remote add scrawfor99 https://github.com/scrawfor99/OpenSearch.git
git checkout scrawfor99/testClusterChanges
git merge origin/main
./gradlew assemble
mkdir -p ${GIT_PROJECT_ROOT}/security/bwc-test/src/test/resources/<IP_ADDRESS>
cp ${GIT_PROJECT_ROOT}/security/build/distributions/opensearch-security-<IP_ADDRESS>-SNAPSHOT.zip ${GIT_PROJECT_ROOT}/security/bwc-test/src/test/resources/<IP_ADDRESS>/opensearch-security-<IP_ADDRESS>-SNAPSHOT.zip
./gradlew -p bwc-test bwcTestSuite -Dtests.opensearch.http.protocol=https -Dtests.opensearch.username=admin -Dtests.opensearch.password=admin -PcustomDistributionUrl="${GIT_PROJECT_ROOT}/opensearch/distribution/archives/linux-tar/build/distributions/opensearch-min-3.0.0-SNAPSHOT-linux-x64.tar.gz" -i

Managed to get some of the scenarios running, still sees some errors, here is the commit that does the most to get that unblocked https://github.com/scrawfor99/security/commit/568c468a42699e84634c897d5dc5f5586edeee1e
Functional branch - basic readme on how to get started https://github.com/peternied/security/blob/testClusterChanges/bwc-test/README.md
Unblocked

securityBwcCluster#fullRestartClusterTask
securityBwcCluster#oldVersionClusterTask0
securityBwcCluster#oldVersionClusterTask1

Still broken

securityBwcCluster#mixedClusterTask

Execution failed for task ':securityBwcCluster#mixedClusterTask'.
> `cluster{::securityBwcCluster0}` failed to wait for cluster health yellow after 40 SECONDS
    IO error while waiting cluster
    503 Service Unavailable

@scrawfor99 Since we have some of the tests working could you file a separate issue to track the fixing mixed cluster task?  Seems like the backporting the test harness fixes into 2.X might be needed, or maybe there is something else wrong.  I didn't dive in more, but cluster not starting up could be due to an issue with the nodes connecting to the cluster or something else that needs more digging.

Hi @peternied, no problem. I am not sure what this will mean for this issue though... At what point will we be able to consider it done do you think?

I'm not worried about the meta issue vs actual issues so long as the we can unblock https://github.com/opensearch-project/security/pull/2802
I was thinking of having a separate issue because maybe there is some work that can happen in parallel before we've got everything in place.  If your instincts say to keep it one issue lets do it.

Currently looking into how normal upgrades work because they must handle plugins somehow and we want to mimic that in the test handling in core.

Failure in mixedClusterTest is actually from this:
[2023-08-16T16:51:10,047][INFO ][o.o.s.a.i.AuditLogImpl   ] [securityBwcCluster1-2] .opendistro_security is used as internal security index.
[2023-08-16T16:51:10,047][INFO ][o.o.s.a.i.AuditLogImpl   ] [securityBwcCluster1-2] Internal index used for posting audit logs is null
[2023-08-16T16:51:10,048][INFO ][o.o.s.c.ConfigurationRepository] [securityBwcCluster1-2] Hot-reloading of audit configuration is enabled
[2023-08-16T16:51:10,051][INFO ][o.o.s.c.ConfigurationRepository] [securityBwcCluster1-2] Node 'securityBwcCluster1-2' initialized
[2023-08-16T16:51:12,409][DEBUG][o.o.c.c.PublicationTransportHandler] [securityBwcCluster1-2] received diff cluster state version [39] with uuid [7NdxpHS5TT6jDYFoTa66_g], diff size [196]
[2023-08-16T16:51:14,680][DEBUG][o.o.c.c.LeaderChecker    ] [securityBwcCluster1-2] leader [{securityBwcCluster1-0}{UrHguxEtQG-IFR6e3IwHBw}{MXMAI8_LQ9aoCB-eBMtXRw}{<IP_ADDRESS>}{<IP_ADDRESS>:63821}{dimr}{testattr=test, upgraded=true, shard_indexing_pressure_enabled=true}] disconnected
[2023-08-16T16:51:14,682][INFO ][o.o.c.c.Coordinator      ] [securityBwcCluster1-2] cluster-manager node [{securityBwcCluster1-0}{UrHguxEtQG-IFR6e3IwHBw}{MXMAI8_LQ9aoCB-eBMtXRw}{<IP_ADDRESS>}{<IP_ADDRESS>:63821}{dimr}{testattr=test, upgraded=true, shard_indexing_pressure_enabled=true}] failed, restarting discovery
org.opensearch.transport.NodeDisconnectedException: [securityBwcCluster1-0][<IP_ADDRESS>:63821][disconnected] disconnected
[2023-08-16T16:51:14,683][DEBUG][o.o.c.c.Coordinator      ] [securityBwcCluster1-2] onLeaderFailure: coordinator becoming CANDIDATE in term 4 (was FOLLOWER, lastKnownLeader was [Optional[{securityBwcCluster1-0}{UrHguxEtQG-IFR6e3IwHBw}{MXMAI8_LQ9aoCB-eBMtXRw}{<IP_ADDRESS>}{<IP_ADDRESS>:63821}{dimr}{testattr=test, upgraded=true, shard_indexing_pressure_enabled=true}]])
[2023-08-16T16:51:14,685][INFO ][o.o.c.s.ClusterApplierService] [securityBwcCluster1-2] cluster-manager node changed {previous [{securityBwcCluster1-0}{UrHguxEtQG-IFR6e3IwHBw}{MXMAI8_LQ9aoCB-eBMtXRw}{<IP_ADDRESS>}{<IP_ADDRESS>:63821}{dimr}{testattr=test, upgraded=true, shard_indexing_pressure_enabled=true}], current []}, term: 4, version: 39, reason: becoming candidate: onLeaderFailure
[2023-08-16T16:51:14,691][WARN ][o.o.c.NodeConnectionsService] [securityBwcCluster1-2] failed to connect to {securityBwcCluster1-0}{UrHguxEtQG-IFR6e3IwHBw}{MXMAI8_LQ9aoCB-eBMtXRw}{<IP_ADDRESS>}{<IP_ADDRESS>:63821}{dimr}{testattr=test, upgraded=true, shard_indexing_pressure_enabled=true} (tried [1] times)
org.opensearch.transport.ConnectTransportException: [securityBwcCluster1-0][<IP_ADDRESS>:63821] connect_exception
	at org.opensearch.transport.TcpTransport$ChannelsConnectedListener.onFailure(TcpTransport.java:1074) ~[opensearch-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
	at org.opensearch.core.action.ActionListener.lambda$toBiConsumer$2(ActionListener.java:215) ~[opensearch-core-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
	at org.opensearch.common.concurrent.CompletableContext.lambda$addListener$0(CompletableContext.java:57) ~[opensearch-common-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
	at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863) ~[?:?]
	at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841) ~[?:?]
	at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?]
	at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2162) ~[?:?]
	at org.opensearch.common.concurrent.CompletableContext.completeExceptionally(CompletableContext.java:72) ~[opensearch-common-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
	at org.opensearch.transport.netty4.Netty4TcpChannel.lambda$addListener$0(Netty4TcpChannel.java:81) ~[?:?]
	at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590) ~[?:?]
	at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583) ~[?:?]
	at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559) ~[?:?]
	at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492) ~[?:?]
	at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636) ~[?:?]
	at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629) ~[?:?]
	at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118) ~[?:?]
	at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:321) ~[?:?]
	at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:337) ~[?:?]
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776) ~[?:?]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:689) ~[?:?]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:652) ~[?:?]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) ~[?:?]
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[?:?]
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[?:?]
	at java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: <IP_ADDRESS>/<IP_ADDRESS>:63821
Caused by: java.net.ConnectException: Connection refused
	at sun.nio.ch.Net.pollConnect(Native Method) ~[?:?]
	at sun.nio.ch.Net.pollConnectNow(Net.java:672) ~[?:?]
	at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:946) ~[?:?]
	at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337) ~[?:?]
	at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334) ~[?:?]
	... 7 more
[2023-08-16T16:51:14,708][ERROR][o.o.s.s.t.SecuritySSLNettyTransport] [securityBwcCluster1-2] Exception during establishing a SSL connection: java.net.SocketException: Connection reset
java.net.SocketException: Connection reset
	at sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:394) ~[?:?]
	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:426) ~[?:?]
	at org.opensearch.transport.CopyBytesSocketChannel.readFromSocketChannel(CopyBytesSocketChannel.java:155) ~[transport-netty4-client-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
	at org.opensearch.transport.CopyBytesSocketChannel.doReadBytes(CopyBytesSocketChannel.java:140) ~[transport-netty4-client-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151) [netty-transport-4.1.96.Final.jar:4.1.96.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) [netty-transport-4.1.96.Final.jar:4.1.96.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:689) [netty-transport-4.1.96.Final.jar:4.1.96.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:652) [netty-transport-4.1.96.Final.jar:4.1.96.Final]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) [netty-transport-4.1.96.Final.jar:4.1.96.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.96.Final.jar:4.1.96.Final]
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.96.Final.jar:4.1.96.Final]
	at java.lang.Thread.run(Thread.java:833) [?:?]
[2023-08-16T16:51:14,708][ERROR][o.o.s.s.t.SecuritySSLNettyTransport] [securityBwcCluster1-2] Exception during establishing a SSL connection: java.net.SocketException: Connection reset
java.net.SocketException: Connection reset
	at sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:394) ~[?:?]
	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:426) ~[?:?]
	at org.opensearch.transport.CopyBytesSocketChannel.readFromSocketChannel(CopyBytesSocketChannel.java:155) ~[transport-netty4-client-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
	at org.opensearch.transport.CopyBytesSocketChannel.doReadBytes(CopyBytesSocketChannel.java:140) ~[transport-netty4-client-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151) [netty-transport-4.1.96.Final.jar:4.1.96.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) [netty-transport-4.1.96.Final.jar:4.1.96.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:689) [netty-transport-4.1.96.Final.jar:4.1.96.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:652) [netty-transport-4.1.96.Final.jar:4.1.96.Final]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) [netty-transport-4.1.96.Final.jar:4.1.96.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.96.Final.jar:4.1.96.Final]
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.96.Final.jar:4.1.96.Final]
	at java.lang.Thread.run(Thread.java:833) [?:?]

The first and second nodes update fine but the final node fails to join the cluster.

I noticed in the failing mixedClusterTest that we run into what looks like a node trying to join itself:

[2023-08-17T17:07:17,088][INFO ][o.o.c.c.JoinHelper       ] [securityBwcCluster0-0] failed to join {securityBwcCluster0-0}{nIIK5MlvS9KOJF81nv9v8w}{2qkpyY1iROGFeyQY4y9hIQ}{<IP_ADDRESS>}{<IP_ADDRESS>:53701}{dimr}{testattr=test, shard_indexing_pressure_enabled=true} with JoinRequest{sourceNode={securityBwcCluster0-0}{nIIK5MlvS9KOJF81nv9v8w}{2qkpyY1iROGFeyQY4y9hIQ}{<IP_ADDRESS>}{<IP_ADDRESS>:53701}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}, minimumTerm=1, optionalJoin=Optional[Join{term=2, lastAcceptedTerm=0, lastAcceptedVersion=0, sourceNode={securityBwcCluster0-0}{nIIK5MlvS9KOJF81nv9v8w}{2qkpyY1iROGFeyQY4y9hIQ}{<IP_ADDRESS>}{<IP_ADDRESS>:53701}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}, targetNode={securityBwcCluster0-0}{nIIK5MlvS9KOJF81nv9v8w}{2qkpyY1iROGFeyQY4y9hIQ}{<IP_ADDRESS>}{<IP_ADDRESS>:53701}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}}]}
org.opensearch.transport.RemoteTransportException: [securityBwcCluster0-0][<IP_ADDRESS>:53701][internal:cluster/coordination/join]

First issue in updated node occurs before update:
[2023-08-18T12:38:30,543][WARN ][o.o.b.Natives            ] [securityBwcCluster0-0] unable to load JNA native support library, native methods will be disabled.
java.lang.UnsatisfiedLinkError: Can't load library: /Users/steecraw/Library/Caches/JNA/temp/jna11807200050257941166.tmp
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:2393) ~[?:?]
	at java.lang.Runtime.load0(Runtime.java:755) ~[?:?]
	at java.lang.System.load(System.java:1953) ~[?:?]
	at com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:1018) ~[jna-5.5.0.jar:5.5.0 (b0)]
	at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:988) ~[jna-5.5.0.jar:5.5.0 (b0)]
	at com.sun.jna.Native.<clinit>(Native.java:195) ~[jna-5.5.0.jar:5.5.0 (b0)]
	at java.lang.Class.forName0(Native Method) ~[?:?]
	at java.lang.Class.forName(Class.java:375) ~[?:?]
	at org.opensearch.bootstrap.Natives.<clinit>(Natives.java:60) [opensearch-2.9.0-SNAPSHOT.jar:2.9.0-SNAPSHOT]
	at org.opensearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:123) [opensearch-2.9.0-SNAPSHOT.jar:2.9.0-SNAPSHOT]
	at org.opensearch.bootstrap.Bootstrap.setup(Bootstrap.java:191) [opensearch-2.9.0-SNAPSHOT.jar:2.9.0-SNAPSHOT]
	at org.opensearch.bootstrap.Bootstrap.init(Bootstrap.java:404) [opensearch-2.9.0-SNAPSHOT.jar:2.9.0-SNAPSHOT]
	at org.opensearch.bootstrap.OpenSearch.init(OpenSearch.java:180) [opensearch-2.9.0-SNAPSHOT.jar:2.9.0-SNAPSHOT]
	at org.opensearch.bootstrap.OpenSearch.execute(OpenSearch.java:171) [opensearch-2.9.0-SNAPSHOT.jar:2.9.0-SNAPSHOT]
	at org.opensearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:104) [opensearch-2.9.0-SNAPSHOT.jar:2.9.0-SNAPSHOT]
	at org.opensearch.cli.Command.mainWithoutErrorHandling(Command.java:138) [opensearch-cli-2.9.0-SNAPSHOT.jar:2.9.0-SNAPSHOT]
	at org.opensearch.cli.Command.main(Command.java:101) [opensearch-cli-2.9.0-SNAPSHOT.jar:2.9.0-SNAPSHOT]
	at org.opensearch.bootstrap.OpenSearch.main(OpenSearch.java:137) [opensearch-2.9.0-SNAPSHOT.jar:2.9.0-SNAPSHOT]
	at org.opensearch.bootstrap.OpenSearch.main(OpenSearch.java:103) [opensearch-2.9.0-SNAPSHOT.jar:2.9.0-SNAPSHOT]
[2023-08-18T12:38:30,547][WARN ][o.o.b.Natives            ] [securityBwcCluster0-0] cannot check if running as root because JNA is not a

This seems standard however as I see it appear elsewhere on the non-upgrading nodes as well.
After that we transition into some basic config logging
[2023-08-18T12:38:30,968][INFO ][o.o.s.OpenSearchSecurityPlugin] [securityBwcCluster0-0] OpenSearch Config path is /Users/steecraw/security/bwc-test/build/testclusters/securityBwcCluster0-0/config
[2023-08-18T12:38:31,102][INFO ][o.o.s.s.DefaultSecurityKeyStore] [securityBwcCluster0-0] JVM supports TLSv1.3
[2023-08-18T12:38:31,103][INFO ][o.o.s.s.DefaultSecurityKeyStore] [securityBwcCluster0-0] Config directory is /Users/steecraw/security/bwc-test/build/testclusters/securityBwcCluster0-0/config/, from there the key- and truststore files are resolved relatively
[2023-08-18T12:38:31,440][INFO ][o.o.s.s.DefaultSecurityKeyStore] [securityBwcCluster0-0] TLS Transport Client Provider : JDK
[2023-08-18T12:38:31,440][INFO ][o.o.s.s.DefaultSecurityKeyStore] [securityBwcCluster0-0] TLS Transport Server Provider : JDK
[2023-08-18T12:38:31,441][INFO ][o.o.s.s.DefaultSecurityKeyStore] [securityBwcCluster0-0] TLS HTTP Provider             : JDK
[2023-08-18T12:38:31,441][INFO ][o.o.s.s.DefaultSecurityKeyStore] [securityBwcCluster0-0] Enabled TLS protocols for transport layer : [TLSv1.3, TLSv1.2]
[2023-08-18T12:38:31,441][INFO ][o.o.s.s.DefaultSecurityKeyStore] [securityBwcCluster0-0] Enabled TLS protocols for HTTP layer      : [TLSv1.3, TLSv1.2]
[2023-08-18T12:38:31,459][INFO ][o.o.s.OpenSearchSecurityPlugin] [securityBwcCluster0-0] Clustername: securityBwcCluster0
[2023-08-18T12:38:31,465][WARN ][o.o.s.OpenSearchSecurityPlugin] [securityBwcCluster0-0] Directory /Users/steecraw/security/bwc-test/build/testclusters/securityBwcCluster0-0/config has insecure file permissions (should be 0700)
[2023-08-18T12:38:31,465][WARN ][o.o.s.OpenSearchSecurityPlugin] [securityBwcCluster0-0] File /Users/steecraw/security/bwc-test/build/testclusters/securityBwcCluster0-0/config/kirk.pem has insecure file permissions (should be 0600)
[2023-08-18T12:38:31,465][WARN ][o.o.s.OpenSearchSecurityPlugin] [securityBwcCluster0-0] File /Users/steecraw/security/bwc-test/build/testclusters/securityBwcCluster0-0/config/esnode-key.pem has insecure file permissions (should be 0600)
[2023-08-18T12:38:31,465][WARN ][o.o.s.OpenSearchSecurityPlugin] [securityBwcCluster0-0] File /Users/steecraw/security/bwc-test/build/testclusters/securityBwcCluster0-0/config/root-ca.pem has insecure file permissions (should be 0600)
[2023-08-18T12:38:31,466][WARN ][o.o.s.OpenSearchSecurityPlugin] [securityBwcCluster0-0] Directory /Users/steecraw/security/bwc-test/build/testclusters/securityBwcCluster0-0/config/jvm.options.d has insecure file permissions (should be 0700)
[2023-08-18T12:38:31,466][WARN ][o.o.s.OpenSearchSecurityPlugin] [securityBwcCluster0-0] File /Users/steecraw/security/bwc-test/build/testclusters/securityBwcCluster0-0/config/kirk-key.pem has insecure file permissions (should be 0600)
[2023-08-18T12:38:31,466][WARN ][o.o.s.OpenSearchSecurityPlugin] [securityBwcCluster0-0] File /Users/steecraw/security/bwc-test/build/testclusters/securityBwcCluster0-0/config/kirk-keystore.jks has insecure file permissions (should be 0600)
[2023-08-18T12:38:31,466][WARN ][o.o.s.OpenSearchSecurityPlugin] [securityBwcCluster0-0] File /Users/steecraw/security/bwc-test/build/testclusters/securityBwcCluster0-0/config/opensearch.yml has insecure file permissions (should be 0600)
[2023-08-18T12:38:31,466][WARN ][o.o.s.OpenSearchSecurityPlugin] [securityBwcCluster0-0] File /Users/steecraw/security/bwc-test/build/testclusters/securityBwcCluster0-0/config/esnode.pem has insecure file permissions (should be 0600)

Again, this appears correct.
[2023-08-18T12:38:31,469][INFO ][o.o.p.PluginsService     ] [securityBwcCluster0-0] loaded module [transport-netty4]
[2023-08-18T12:38:31,470][INFO ][o.o.p.PluginsService     ] [securityBwcCluster0-0] loaded plugin [opensearch-security]
[2023-08-18T12:38:31,482][INFO ][o.o.s.OpenSearchSecurityPlugin] [securityBwcCluster0-0] Disabled https compression by default to mitigate BREACH attacks. You can enable it by setting 'http.compression: true' in opensearch.yml
[2023-08-18T12:38:31,486][INFO ][o.o.e.ExtensionsManager  ] [securityBwcCluster0-0] ExtensionsManager initialized
[2023-08-18T12:38:31,505][INFO ][o.o.e.NodeEnvironment    ] [securityBwcCluster0-0] using [1] data paths, mounts [[/System/Volumes/Data (/dev/disk3s5)]], net usable_space [266.9gb], net total_space [460.4gb], types [apfs]
[2023-08-18T12:38:31,506][INFO ][o.o.e.NodeEnvironment    ] [securityBwcCluster0-0] heap size [512mb], compressed ordinary object pointers [true]
[2023-08-18T12:38:31,540][INFO ][o.o.n.Node               ] [securityBwcCluster0-0] node name [securityBwcCluster0-0], node ID [mWKwveN4RhmQ60MfGRLb6w], cluster name [securityBwcCluster0], roles [ingest, remote_cluster_client, data, cluster_manager]
[2023-08-18T12:38:32,135][WARN ][o.o.s.c.Salt             ] [securityBwcCluster0-0] If you plan to use field masking pls configure compliance salt e1ukloTsQlOgPquJ to be a random string of 16 chars length identical on all nodes
[2023-08-18T12:38:32,160][INFO ][o.o.s.a.i.AuditLogImpl   ] [securityBwcCluster0-0] Message routing enabled: true
[2023-08-18T12:38:32,179][INFO ][o.o.s.f.SecurityFilter   ] [securityBwcCluster0-0] <NONE> indices are made immutable.
[2023-08-18T12:38:32,345][INFO ][o.o.t.NettyAllocator     ] [securityBwcCluster0-0] creating NettyAllocator with the following configs: [name=unpooled, suggested_max_allocation_size=256kb, factors={opensearch.unsafe.use_unpooled_allocator=null, g1gc_enabled=true, g1gc_region_size=1mb, heap_size=512mb}]
[2023-08-18T12:38:32,406][INFO ][o.o.d.DiscoveryModule    ] [securityBwcCluster0-0] using discovery type [zen] and seed hosts providers [settings, file]
[2023-08-18T12:38:32,592][WARN ][o.o.g.DanglingIndicesState] [securityBwcCluster0-0] gateway.auto_import_dangling_indices is disabled, dangling indices will not be automatically detected or imported and must be managed manually
[2023-08-18T12:38:32,704][INFO ][o.o.n.Node               ] [securityBwcCluster0-0] initialized
[2023-08-18T12:38:32,704][INFO ][o.o.n.Node               ] [securityBwcCluster0-0] starting ...
[2023-08-18T12:38:32,767][INFO ][o.o.t.TransportService   ] [securityBwcCluster0-0] publish_address {<IP_ADDRESS>:54466}, bound_addresses {[::1]:54465}, {<IP_ADDRESS>:54466}
[2023-08-18T12:38:32,768][INFO ][o.o.t.TransportService   ] [securityBwcCluster0-0] Remote clusters initialized successfully.
[2023-08-18T12:38:32,912][WARN ][o.o.b.BootstrapChecks    ] [securityBwcCluster0-0] system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
[2023-08-18T12:38:32,915][DEBUG][o.o.c.c.Coordinator      ] [securityBwcCluster0-0] startInitialJoin: coordinator becoming CANDIDATE in term 0 (was null, lastKnownLeader was [Optional.empty])
[2023-08-18T12:38:32,917][WARN ][o.o.d.FileBasedSeedHostsProvider] [securityBwcCluster0-0] expected, but did not find, a dynamic hosts list at [/Users/steecraw/security/bwc-test/build/testclusters/securityBwcCluster0-0/config/unicast_hosts.txt]
[2023-08-18T12:38:32,928][INFO ][o.o.h.AbstractHttpServerTransport] [securityBwcCluster0-0] publish_address {<IP_ADDRESS>:54468}, bound_addresses {[::1]:54467}, {<IP_ADDRESS>:54468}
[2023-08-18T12:38:32,929][INFO ][o.o.n.Node               ] [securityBwcCluster0-0] started

Other node components are then loaded, an address is published, and the node starts.
[2023-08-18T12:38:32,930][INFO ][o.o.s.c.ConfigurationRepository] [securityBwcCluster0-0] Will attempt to create index .opendistro_security and default configs if they are absent
[2023-08-18T12:38:32,931][INFO ][o.o.s.OpenSearchSecurityPlugin] [securityBwcCluster0-0] 0 OpenSearch Security modules loaded so far: []
[2023-08-18T12:38:32,931][INFO ][o.o.s.c.ConfigurationRepository] [securityBwcCluster0-0] Background init thread started. Install default config?: true
[2023-08-18T12:38:32,931][INFO ][o.o.s.c.ConfigurationRepository] [securityBwcCluster0-0] Wait for cluster to be available ...
[2023-08-18T12:38:33,921][WARN ][o.o.d.FileBasedSeedHostsProvider] [securityBwcCluster0-0] expected, but did not find, a dynamic hosts list at [/Users/steecraw/security/bwc-test/build/testclusters/securityBwcCluster0-0/config/unicast_hosts.txt]
[2023-08-18T12:38:33,932][INFO ][o.o.s.c.ConfigurationRepository] [securityBwcCluster0-0] Wait for cluster to be available ...

Node then loads configuration and looks for dynamic host lists. It repeats that it is waiting for the cluster be available several times.

Then the node starts joining others to form a cluster:
[securityBwcCluster0-0] scheduling scheduleNextElection{gracePeriod=0s, thisAttempt=0, maxDelayMillis=100, delayMillis=82, ElectionScheduler{attempt=1, ElectionSchedulerFactory{initialTimeout=100ms, backoffTime=100ms, maxTimeout=10s}}}
[2023-08-18T12:38:37,264][ERROR][o.o.s.a.BackendRegistry  ] [securityBwcCluster0-0] Not yet initialized (you may need to run securityadmin)
[2023-08-18T12:38:37,290][DEBUG][o.o.c.c.ElectionSchedulerFactory] [securityBwcCluster0-0] scheduleNextElection{gracePeriod=0s, thisAttempt=0, maxDelayMillis=100, delayMillis=82, ElectionScheduler{attempt=1, ElectionSchedulerFactory{initialTimeout=100ms, backoffTime=100ms, maxTimeout=10s}}} starting election
[2023-08-18T12:38:37,290][DEBUG][o.o.c.c.ElectionSchedulerFactory] [securityBwcCluster0-0] scheduling scheduleNextElection{gracePeriod=500ms, thisAttempt=1, maxDelayMillis=200, delayMillis=671, ElectionScheduler{attempt=2, ElectionSchedulerFactory{initialTimeout=100ms, backoffTime=100ms, maxTimeout=10s}}}
[2023-08-18T12:38:37,293][DEBUG][o.o.c.c.PreVoteCollector ] [securityBwcCluster0-0] PreVotingRound{preVotesReceived={}, electionStarted=false, preVoteRequest=PreVoteRequest{sourceNode={securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}, currentTerm=0}, isClosed=false} requesting pre-votes from [{securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}, {securityBwcCluster0-1}{frpm-K-xSwmPuqdYsz8U0A}{c9ImaN6YQXOTHENLOPhj7A}{<IP_ADDRESS>}{<IP_ADDRESS>:54472}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}, {securityBwcCluster0-2}{ID4lsFuCRu6IfHjxbGddTg}{zkPSLl4SSSCNnOl7qKHllw}{<IP_ADDRESS>}{<IP_ADDRESS>:54477}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}]
[2023-08-18T12:38:37,310][DEBUG][o.o.c.c.PreVoteCollector ] [securityBwcCluster0-0] PreVotingRound{preVotesReceived={{securityBwcCluster0-2}{ID4lsFuCRu6IfHjxbGddTg}{zkPSLl4SSSCNnOl7qKHllw}{<IP_ADDRESS>}{<IP_ADDRESS>:54477}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}=PreVoteResponse{currentTerm=0, lastAcceptedTerm=0, lastAcceptedVersion=0}, {securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}=PreVoteResponse{currentTerm=0, lastAcceptedTerm=0, lastAcceptedVersion=0}}, electionStarted=false, preVoteRequest=PreVoteRequest{sourceNode={securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}, currentTerm=0}, isClosed=false} added PreVoteResponse{currentTerm=0, lastAcceptedTerm=0, lastAcceptedVersion=0} from {securityBwcCluster0-2}{ID4lsFuCRu6IfHjxbGddTg}{zkPSLl4SSSCNnOl7qKHllw}{<IP_ADDRESS>}{<IP_ADDRESS>:54477}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}, no quorum yet
[2023-08-18T12:38:37,310][DEBUG][o.o.c.c.PreVoteCollector ] [securityBwcCluster0-0] PreVotingRound{preVotesReceived={{securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}=PreVoteResponse{currentTerm=0, lastAcceptedTerm=0, lastAcceptedVersion=0}}, electionStarted=false, preVoteRequest=PreVoteRequest{sourceNode={securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}, currentTerm=0}, isClosed=false} added PreVoteResponse{currentTerm=0, lastAcceptedTerm=0, lastAcceptedVersion=0} from {securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}, no quorum yet
[2023-08-18T12:38:37,335][DEBUG][o.o.c.c.PreVoteCollector ] [securityBwcCluster0-0] PreVotingRound{preVotesReceived={{securityBwcCluster0-2}{ID4lsFuCRu6IfHjxbGddTg}{zkPSLl4SSSCNnOl7qKHllw}{<IP_ADDRESS>}{<IP_ADDRESS>:54477}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}=PreVoteResponse{currentTerm=0, lastAcceptedTerm=0, lastAcceptedVersion=0}, {securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}=PreVoteResponse{currentTerm=0, lastAcceptedTerm=0, lastAcceptedVersion=0}, {securityBwcCluster0-1}{frpm-K-xSwmPuqdYsz8U0A}{c9ImaN6YQXOTHENLOPhj7A}{<IP_ADDRESS>}{<IP_ADDRESS>:54472}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}=PreVoteResponse{currentTerm=0, lastAcceptedTerm=0, lastAcceptedVersion=0}}, electionStarted=true, preVoteRequest=PreVoteRequest{sourceNode={securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}, currentTerm=0}, isClosed=false} added PreVoteResponse{currentTerm=0, lastAcceptedTerm=0, lastAcceptedVersion=0} from {securityBwcCluster0-1}{frpm-K-xSwmPuqdYsz8U0A}{c9ImaN6YQXOTHENLOPhj7A}{<IP_ADDRESS>}{<IP_ADDRESS>:54472}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}, starting election
[2023-08-18T12:38:37,335][DEBUG][o.o.c.c.Coordinator      ] [securityBwcCluster0-0] starting election with StartJoinRequest{term=1,node={securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}}
[2023-08-18T12:38:37,336][DEBUG][o.o.c.c.Coordinator      ] [securityBwcCluster0-0] joinLeaderInTerm: for [{securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}] with term 1
[2023-08-18T12:38:37,336][DEBUG][o.o.c.c.CoordinationState] [securityBwcCluster0-0] handleStartJoin: leaving term [0] due to StartJoinRequest{term=1,node={securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}}
[2023-08-18T12:38:37,369][DEBUG][o.o.c.c.JoinHelper       ] [securityBwcCluster0-0] attempting to join {securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true} with JoinRequest{sourceNode={securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}, minimumTerm=0, optionalJoin=Optional[Join{term=1, lastAcceptedTerm=0, lastAcceptedVersion=0, sourceNode={securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}, targetNode={securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}}]}
[2023-08-18T12:38:37,373][ERROR][o.o.s.a.BackendRegistry  ] [securityBwcCluster0-0] Not yet initialized (you may need to run securityadmin)
[2023-08-18T12:38:37,371][DEBUG][o.o.c.c.CoordinationState] [securityBwcCluster0-0] handleJoin: added join Join{term=1, lastAcceptedTerm=0, lastAcceptedVersion=0, sourceNode={securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}, targetNode={securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}} from [{securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}] for election, electionWon=false lastAcceptedTerm=0 lastAcceptedVersion=0
[2023-08-18T12:38:37,370][DEBUG][o.o.c.c.JoinHelper       ] [securityBwcCluster0-0] successful response to StartJoinRequest{term=1,node={securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}} from {securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}
[2023-08-18T12:38:37,386][ERROR][o.o.s.a.BackendRegistry  ] [securityBwcCluster0-0] Not yet initialized (you may need to run securityadmin)
[2023-08-18T12:38:37,388][DEBUG][o.o.c.c.JoinHelper       ] [securityBwcCluster0-0] successful response to StartJoinRequest{term=1,node={securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}} from {securityBwcCluster0-1}{frpm-K-xSwmPuqdYsz8U0A}{c9ImaN6YQXOTHENLOPhj7A}{<IP_ADDRESS>}{<IP_ADDRESS>:54472}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}
[2023-08-18T12:38:37,405][DEBUG][o.o.c.c.CoordinationState] [securityBwcCluster0-0] handleJoin: added join Join{term=1, lastAcceptedTerm=0, lastAcceptedVersion=0, sourceNode={securityBwcCluster0-1}{frpm-K-xSwmPuqdYsz8U0A}{c9ImaN6YQXOTHENLOPhj7A}{<IP_ADDRESS>}{<IP_ADDRESS>:54472}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}, targetNode={securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}} from [{securityBwcCluster0-1}{frpm-K-xSwmPuqdYsz8U0A}{c9ImaN6YQXOTHENLOPhj7A}{<IP_ADDRESS>}{<IP_ADDRESS>:54472}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}] for election, electionWon=true lastAcceptedTerm=0 lastAcceptedVersion=0
[2023-08-18T12:38:37,407][DEBUG][o.o.c.c.CoordinationState] [securityBwcCluster0-0] handleJoin: election won in term [1] with VoteCollection{votes=[mWKwveN4RhmQ60MfGRLb6w, frpm-K-xSwmPuqdYsz8U0A], joins=[Join{term=1, lastAcceptedTerm=0, lastAcceptedVersion=0, sourceNode={securityBwcCluster0-1}{frpm-K-xSwmPuqdYsz8U0A}{c9ImaN6YQXOTHENLOPhj7A}{<IP_ADDRESS>}{<IP_ADDRESS>:54472}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}, targetNode={securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}}, Join{term=1, lastAcceptedTerm=0, lastAcceptedVersion=0, sourceNode={securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}, targetNode={securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}}]}
[2023-08-18T12:38:37,411][DEBUG][o.o.c.c.Coordinator      ] [securityBwcCluster0-0] handleJoinRequest: coordinator becoming LEADER in term 1 (was CANDIDATE, lastKnownLeader was [Optional.empty])
[2023-08-18T12:38:37,422][DEBUG][o.o.c.c.JoinHelper       ] [securityBwcCluster0-0] received a join request for an existing node [{securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}]
[2023-08-18T12:38:37,429][INFO ][o.o.c.s.MasterService    ] [securityBwcCluster0-0] elected-as-cluster-manager ([2] nodes joined)[{securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true} elect leader, {securityBwcCluster0-1}{frpm-K-xSwmPuqdYsz8U0A}{c9ImaN6YQXOTHENLOPhj7A}{<IP_ADDRESS>}{<IP_ADDRESS>:54472}{dimr}{testattr=test, shard_indexing_pressure_enabled=true} elect leader, _BECOME_CLUSTER_MANAGER_TASK_, _FINISH_ELECTION_], term: 1, version: 1, delta: cluster-manager node changed {previous [], current [{securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}]}, added {{securityBwcCluster0-1}{frpm-K-xSwmPuqdYsz8U0A}{c9ImaN6YQXOTHENLOPhj7A}{<IP_ADDRESS>}{<IP_ADDRESS>:54472}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}}
[2023-08-18T12:38:37,439][DEBUG][o.o.c.c.PublicationTransportHandler] [securityBwcCluster0-0] received full cluster state version [1] with size [429]
[2023-08-18T12:38:37,457][DEBUG][o.o.c.c.JoinHelper       ] [securityBwcCluster0-0] successful response to StartJoinRequest{term=1,node={securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}} from {securityBwcCluster0-2}{ID4lsFuCRu6IfHjxbGddTg}{zkPSLl4SSSCNnOl7qKHllw}{<IP_ADDRESS>}{<IP_ADDRESS>:54477}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}
[2023-08-18T12:38:37,498][ERROR][o.o.s.a.BackendRegistry  ] [securityBwcCluster0-0] Not yet initialized (you may need to run securityadmin)
[2023-08-18T12:38:37,498][INFO ][o.o.c.c.CoordinationState] [securityBwcCluster0-0] cluster UUID set to [Vw4CIyDYRpaLD1d9WnpxQw]

For some reason 0-2 is listed twice while 0-1 is not listed.
The node then states that it successfully joined itself:
[securityBwcCluster0-0] cluster-manager node changed {previous [], current [{securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}]}, added {{securityBwcCluster0-1}{frpm-K-xSwmPuqdYsz8U0A}{c9ImaN6YQXOTHENLOPhj7A}{<IP_ADDRESS>}{<IP_ADDRESS>:54472}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}}, term: 1, version: 1, reason: Publication{term=1, version=1}
[2023-08-18T12:38:37,565][DEBUG][o.o.c.c.C.CoordinatorPublication] [securityBwcCluster0-0] publication ended successfully: Publication{term=1, version=1}
[2023-08-18T12:38:37,569][DEBUG][o.o.c.c.JoinHelper       ] [securityBwcCluster0-0] successfully joined {securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true} with JoinRequest{sourceNode={securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}, minimumTerm=0, optionalJoin=Optional[Join{term=1, lastAcceptedTerm=0, lastAcceptedVersion=0, sourceNode={securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}, targetNode={securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}}]}
[2023-08-18T12:38:37,569][INFO ][o.o.d.PeerFinder         ] [securityBwcCluster0-0] setting findPeersInterval to [1s] as node commission status = [true] for local node [{securityBwcCluster0-0}{mWKwveN4RhmQ60MfGRLb6w}{BKgovVncSY2hgwndsgq7sQ}{<IP_ADDRESS>}{<IP_ADDRESS>:54466}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}]
[2023-08-18T12:38:37,570][INFO ][o.o.c.s.MasterService    ] [securityBwcCluster0-0] node-join[{securityBwcCluster0-2}{ID4lsFuCRu6IfHjxbGddTg}{zkPSLl4SSSCNnOl7qKHllw}{<IP_ADDRESS>}{<IP_ADDRESS>:54477}{dimr}{testattr=test, shard_indexing_pressure_enabled=true} join existing leader], term: 1, version: 2, delta: added {{securityBwcCluster0-2}{ID4lsFuCRu6IfHjxbGddTg}{zkPSLl4SSSCNnOl7qKHllw}{<IP_ADDRESS>}{<IP_ADDRESS>:54477}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}}
[2023-08-18T12:38:37,571][DEBUG][o.o.c.c.PublicationTransportHandler] [securityBwcCluster0-0] received full cluster state version [2] with size [478]
[2023-08-18T12:38:37,573][INFO ][o.o.c.r.a.DiskThresholdMonitor] [securityBwcCluster0-0] skipping monitor as a check is already in progress
[2023-08-18T12:38:37,607][ERROR][o.o.s.a.BackendRegistry  ] [securityBwcCluster0-0] Not yet initialized (you may need to run securityadmin)
[2023-08-18T12:38:37,646][INFO ][o.o.c.s.ClusterApplierService] [securityBwcCluster0-0] added {{securityBwcCluster0-2}{ID4lsFuCRu6IfHjxbGddTg}{zkPSLl4SSSCNnOl7qKHllw}{<IP_ADDRESS>}{<IP_ADDRESS>:54477}{dimr}{testattr=test, shard_indexing_pressure_enabled=true}}, term: 1, version: 2, reason: Publication{term=1, version=2}
[2023-08-18T12:38:37,647][DEBUG][o.o.c.c.C.CoordinatorPublication] [securityBwcCluster0-0] publication ended successfully: Publication{term=1, version=2}
[2023-08-18T12:38:37,648][DEBUG][o.o.c.c.PublicationTransportHandler] [securityBwcCluster0-0] received full cluster state version [3] with size [480]
[2023-08-18T12:38:37,718][ERROR][o.o.s.a.BackendRegistry  ] [securityBwcCluster0-0] Not yet initialized (you may need to run securityadmin)
[2023-08-18T12:38:37,768][DEBUG][o.o.c.c.C.CoordinatorPublication] [securityBwcCluster0-0] publication ended successfully: Publication{term=1, version=3}
[2023-08-18T12:38:37,774][DEBUG][o.o.c.c.PublicationTransportHandler] [securityBwcCluster0-0] received full cluster state version [4] with size [403]
[2023-08-18T12:38:37,808][DEBUG][o.o.c.c.C.CoordinatorPublication] [securityBwcCluster0-0] publication ended successfully: Publication{term=1, version=4}
[2023-08-18T12:38:37,808][INFO ][o.o.g.GatewayService     ] [securityBwcCluster0-0] recovered [0] indices into cluster_state

BackendRegistry continually states that cluster is not initialized while
Setting replication.type: DOCUMENT will be used for Index until Segment Replication supports System and Hidden indices
[2023-08-18T12:38:37,962][INFO ][o.o.p.PluginsService     ] [securityBwcCluster0-0] PluginService:onIndexModule index:[.opendistro_security/OdEfyqiYRI-9sXGvFapsFQ]
[2023-08-18T12:38:37,966][DEBUG][o.o.c.c.ElectionSchedulerFactory] [securityBwcCluster0-0] scheduleNextElection{gracePeriod=500ms, thisAttempt=1, maxDelayMillis=200, delayMillis=671, ElectionScheduler{attempt=2, ElectionSchedulerFactory{initialTimeout=100ms, backoffTime=100ms, maxTimeout=10s}}} not starting election
[2023-08-18T12:38:38,009][INFO ][o.o.c.m.MetadataCreateIndexService] [securityBwcCluster0-0] [.opendistro_security] creating index, cause [api], templates [], shards [1]/[1]
[2023-08-18T12:38:38,015][INFO ][o.o.c.r.a.AllocationService] [securityBwcCluster0-0] updating number_of_replicas to [2] for indices [.opendistro_security]
[2023-08-18T12:38:38,027][DEBUG][o.o.c.c.PublicationTransportHandler] [securityBwcCluster0-0] received diff cluster state version [5] with uuid [8c_0gAWoSS2fVbHVwsofgg], diff size [460]
[2023-08-18T12:38:38,053][ERROR][o.o.s.a.BackendRegistry  ] [securityBwcCluster0-0] Not yet initialized (you may need to run securityadmin)
[2023-08-18T12:38:38,163][ERROR][o.o.s.a.BackendRegistry  ] [securityBwcCluster0-0] Not yet initialized (you may need to run securityadmin)
[2023-08-18T12:38:38,202][DEBUG][o.o.c.c.C.CoordinatorPublication] [securityBwcCluster0-0] publication ended successfully: Publication{term=1, version=5}
[2023-08-18T12:38:38,267][ERROR][o.o.s.a.BackendRegistry  ] [securityBwcCluster0-0] Not yet initialized (you may need to run securityadmin)
[2023-08-18T12:38:38,329][DEBUG][o.o.c.c.PublicationTransportHandler] [securityBwcCluster0-0] received diff cluster state version [6] with uuid [OWHQUrogQoino33iAS3ayA], diff size [462]
[2023-08-18T12:38:38,372][ERROR][o.o.s.a.BackendRegistry  ] [securityBwcCluster0-0] Not yet initialized (you may need to run securityadmin)
[2023-08-18T12:38:38,394][INFO ][o.o.s.c.ConfigurationRepository] [securityBwcCluster0-0] Index .opendistro_security created?: true
[2023-08-18T12:38:38,394][DEBUG][o.o.c.c.C.CoordinatorPublication] [securityBwcCluster0-0] publication ended successfully: Publication{term=1, version=6}
[2023-08-18T12:38:38,397][INFO ][o.o.s.c.ConfigurationRepository] [securityBwcCluster0-0] Node started, try to initialize it. Wait for at least yellow cluster state....
[2023-08-18T12:38:38,402][DEBUG][o.o.c.c.PublicationTransportHandler] [securityBwcCluster0-0] received diff cluster state version [7] with uuid [gkvmh1GoQly6eZpSTAfEiQ], diff size [321]
[2023-08-18T12:38:38,403][INFO ][o.o.s.s.ConfigHelper     ] [securityBwcCluster0-0] Will update 'config' with /Users/steecraw/security/bwc-test/build/testclusters/securityBwcCluster0-0/config/opensearch-security/config.yml and populate it with empty doc if file missing and populateEmptyIfFileMissing=false
[2023-08-18T12:38:38,433][INFO ][o.o.p.PluginsService     ] [securityBwcCluster0-0] PluginService:onIndexModule index:[.opendistro_security/OdEfyqiYRI-9sXGvFapsFQ]
[2023-08-18T12:38:38,470][DEBUG][o.o.c.c.C.CoordinatorPublication] [securityBwcCluster0-0] publication ended successfully: Publication{term=1, version=7}
[2023-08-18T12:38:38,475][DEBUG][o.o.c.c.PublicationTransportHandler] [securityBwcCluster0-0] received diff cluster state version [8] with uuid [Hx22rt6pR26uKZscyRNQ3Q], diff size [341]
[2023-08-18T12:38:38,491][ERROR][o.o.s.a.BackendRegistry  ] [securityBwcCluster0-0] Not yet initialized (you may need to run securityadmin)
[2023-08-18T12:38:38,502][ERROR][o.o.s.a.BackendRegistry  ] [securityBwcCluster0-0] Not yet initialized (you may need to run securityadmin)
[2023-08-18T12:38:38,613][ERROR][o.o.s.a.BackendRegistry  ] [securityBwcCluster0-0] Not yet initialized (you may need to run securityadmin)
[2023-08-18T12:38:38,624][DEBUG][o.o.c.c.C.CoordinatorPublication] [securityBwcCluster0-0] publication ended successfully: Publication{term=1, version=8}
[2023-08-18T12:38:38,629][INFO ][o.o.p.PluginsService     ] [securityBwcCluster0-0] PluginService:onIndexModule index:[.opendistro_security/OdEfyqiYRI-9sXGvFapsFQ]
[2023-08-18T12:38:38,640][INFO ][o.o.c.m.MetadataMappingService] [securityBwcCluster0-0] [.opendistro_security/OdEfyqiYRI-9sXGvFapsFQ] create_mapping
[2023-08-18T12:38:38,645][DEBUG][o.o.c.c.PublicationTransportHandler] [securityBwcCluster0-0] received diff cluster state version [9] with uuid [vecMUuvrQ9SE97jvsrpWbA], diff size [532]
[2023-08-18T12:38:38,724][ERROR][o.o.s.a.BackendRegistry  ] [securityBwcCluster0-0] Not yet initialized (you may need to run securityadmin)
[2023-08-18T12:38:38,742][DEBUG][o.o.c.c.C.CoordinatorPublication] [securityBwcCluster0-0] publication ended successfully: Publication{term=1, version=9}

I opened a manual backport against 2.x in core.

I was able to get all tests passing on a change from 2.8 to 2.9.
Here are the steps to reproduce:
Use this build of 2.9: https://github.com/scrawfor99/OpenSearch/tree/2.9.0
and this build of 2.8: https://github.com/scrawfor99/OpenSearch/tree/2.8.0
For each of these, I cherry picked the commits to my backport in the 2.x line which can be found here: https://github.com/opensearch-project/OpenSearch/pull/9444.
I then ran ./gradlew localDistro and ./gradlew publishToMavenLocal for each.
I then went to the security branch here: https://github.com/scrawfor99/security/tree/working2BWC and followed the steps used previously but replacing the earlier version for the build.gradle BWC test file with 2.8 and the later with 2.9.
Finally I ran:
./gradlew -p bwc-test bwcTestSuite -Dtests.opensearch.secure=true -Dtests.opensearch.username=admin -Dtests.opensearch.password=admin -PcustomDistributionUrl="${GIT_PROJECT_ROOT}/OpenSearch/distribution/archives/linux-tar/build/distributions/opensearch-min-2.8.0-SNAPSHOT-linux-x64.tar.gz" -i

Which grabbed the localDistro of the earlier version file which I had created. I am skeptical that part is truly necessary however.
Here are the test results parsed from the output:
> Task :securityBwcCluster#mixedClusterTaskrTask0
Caching disabled for task ':securityBwcCluster#mixedClusterTask' because:ecurity/bwc-test/build/test-results/securityBwcCluster#oldVersionClusterTask0
  Build cache is disablededClusterTaskrTask0 > 1 test completedrg.gradle.api.internal.tasks.testing.worker.TestWorkerityIT

> Task :securityBwcCluster#fullRestartClusterTask
Caching disabled for task ':securityBwcCluster#fullRestartClusterTask' because:y/bwc-test/build/test-results/securityBwcCluster#oldVersionClusterTask1
  Build cache is disabledlRestartClusterTask > 1 test completedrg.gradle.api.internal.tasks.testing.worker.TestWorkerityIT

Task :securityBwcCluster#rollingUpgradeClusterTask
Finished generating test XML results (0.0 secs) into: /Users/steecraw/security/bwc-test/build/test-results/securityBwcCluster#rollingUpgradeClusterTask
Generating HTML test report...pgradeClusterTask > 1 test completedgradle.api.internal.tasks.testing.worker.TestWorkerbilityITe/index].

This appears to me that all tests pass since the assertions of the tests are all based around calling the SecurityBackwardsCompatabilityIT:
org.opensearch.security.bwc.SecurityBackwardsCompatibilityIT STANDARD_OUTrch.security.bwc.SecurityBackwardsCompatibilityIT
    [2023-08-18T12:38:22,482][WARN ][o.o.b.Natives            ] [[SUITE-SecurityBackwardsCompatibilityIT-seed#[1934D36967F83B97]]] unable to load JNA native support library, na
tive methods will be disabled./work -Dorg.gradle.native=false -Dtests.artifact=bwc-test -Dtests.clustername=securityBwcCluster1 -Dtests.gradle=

Blocked pending direction forward -- do we want to work on fixing whatever is wrong with main or prioritize merging (https://github.com/opensearch-project/security/pull/2802)?

Going to be splitting this into a 2.x fix and a main fix for now. That will mean that the changes in the working 2.x will be submitted as a PR to the 2.x line and then we will follow up on main from a separate issue.


Changes on 'Confirm seed word' modal.

Every time I have set this I’ll only second word is asked? This needs to be random. Also for initial confirmation the user needs to confirm two random words and not one.

Verified this issue on dev app v2.0.75(474)


Documentation : Test Automation

The latest document containing step by step explanation  of automating the tests should be created / uploaded in onedrive.

Updated the automation testing document in one drive
It can be found in Parisa Nikbakht > Testing > Cypress automation -Sruti Sriram


Fix usage in a bunch of places that surely don't work today

Instance initializer
Object initializer
Top-level in a .kts

Top two are done. Punting on kts.


very slow on Google Colab with Tesla V100

I tried the demo notebook on the Google Colab with GPU, however, it needs about 4 minutes on calculating the Shap values and about 40 minutes on interaction values. But I found in the demo notebook that only several seconds are needed. I was wondering why and what should I do to get as fast as shown in your notebook. Thank you so much.

I also run the demo notebook on my own PC with GTX 1060, but I found the Shap values were still calculated by CPU which was supposed to run on GPU. The CUDA was successfully deployed.

I also run the demo notebook on my own PC with GTX 1060, but I found the Shap values were still calculated by CPU which was supposed to run on GPU. The CUDA was successfully deployed.

Can you check the installed version of xgboost is correct?

Can you check the installed version of xgboost is correct?

Thank you for your reply. I solved this problem using the following codes. I think the environment of Colab need to be updated.
!pip install cmake --upgrade
!pip install sklearn --upgrade
!git clone --recursive https://github.com/dmlc/xgboost
%cd /content/xgboost
!mkdir build
%cd build
!cmake .. -DUSE_CUDA=ON
!make -j4
%cd /content/xgboost/python-package
!python setup.py install --use-cuda --use-nccl
!/opt/bin/nvidia-smi
!pip install shap


Change celery broker Redis -> RabbitMQ

Purpose
We would like to make long running jobs more reliable and more resilient to system restarts (eg don't lose jobs that were interrupted by a deploy). We used the redis broker as suggested by the django cookiecutter template; other and perhaps better supported options exist.
This ticket exists to track one possible option, which will need to be tested thoroughly in our staging environment.
Proposal/ rationale
We are currently using Redis as our task broker for celery. We have encountered some problems.
Very long ingest jobs (large files) sometimes fail; it's possible that redis may have some default configuration options that cause keys to expire before the job is done (unfortunately, the relevant sentry issue expired before this ticket could be created)
Further reading

Warning about message loops: if task_reject_on_worker_lost is used, we must be sure to understand the most common reasons for failures that we previously glossed over. (including stress testing very large files, or other things that could kill a worker process due to eg resource limits)
http://docs.celeryproject.org/en/master/userguide/configuration.html#task-reject-on-worker-lost
Redis docs: https://docs.celeryproject.org/en/latest/getting-started/brokers/redis.html
Proposal to deprecate Redis as a broker support. [Rejected]: https://github.com/celery/celery/issues/3274

Closing this PR for now, as we've incorporated many of the ideas in updates since.
I'd like to revisit the change of broker, but since redis is also used as a caching layer for django, removing it completely would involve some additional changes elsewhere in the app.


Add keep-error-msg feature

This PR allows the user to remove the message embedded into each Error of the read/write/build crates, since Rust is terrible at removing dead code. The string will stay due to Error construction, which is effectively discarded, even if the user doesn't care about the error message (aka just want to have a boolean indicating error), which means precise ROM space wasted.

This is the sort of thing for which you should have created an issue first.
Are you using object directly, or as a dependency of something else? Are you using all of read/write/build? Are you aware of any other crates that have a feature like this?

This is the sort of thing for which you should have created an issue first.
Are you using object directly, or as a dependency of something else? Are you using all of read/write/build? Are you aware of any other crates that have a feature like this?

I'm using object directly for a PE resolver, and I noticed there are useless strings in the binary that is unused which cannot be eliminated by DCE

So can I infer that the answers to my other questions are you are only using the read module, and you're not aware of any other crates with a feature like this.
How many bytes does this save you, and how large is your image?
A feature like this doesn't come without cost in terms of usability. For example, all existing users that use default-features = false must now add this feature if they want the error message. It'd be better if we could solve the issue without adding a new feature.

So can I infer that the answers to my other questions are you are only using the read module, and you're not aware of any other crates with a feature like this.
How many bytes does this save you, and how large is your image?
A feature like this doesn't come without cost in terms of usability. For example, all existing users that use default-features = false must now add this feature if they want the error message. It'd be better if we could solve the issue without adding a new feature.

Yes, at the moment I'm only using the read module, and although this only saved me merely 1k in binary size in total just by trimming out the error. I need to test if fat LTO will also help out though. It is not just the error message, but also other things such as extra instructions, space allocation, memcpy due to object construction.

It is not just the error message, but also other things such as extra instructions, space allocation, memcpy due to object construction. There is a lot of them and those error construction also prevented code inlining.

I haven't looked at the code generation, but my instinct is there should be little overhead for &'static str. What need is there for space allocation and memcpy?

My guts feeling tells me that we should make those error message categorized as enum so we can better inline it (in other word, like string intern).

Yes, I think it's a better option than a feature, but I'm not sure it's not going to be a huge difference in code size (potentially changes from a 128-bit slice pointer, to a u8 or u16).

It is not just the error message, but also other things such as extra instructions, space allocation, memcpy due to object construction. There is a lot of them and those error construction also prevented code inlining.

I haven't looked at the code generation, but my instinct is there should be little overhead for &'static str. What need is there for space allocation and memcpy?

Because Rust requires you to construct the whole object (that includes everything even if you don't need it) in order to maintain compliant drop semantics, even if you don't use the error yourself. Now you also need to take in account for the extra code that constructs those objects as well, because LLVM is not going to smartly deduce your struct to become a ZST even if you don't use the &'static str or String at all, it has to be very conservative, and that's why it takes a lot more space and code than expected and makes a lot more savings.

My guts feeling tells me that we should make those error message categorized as enum so we can better inline it (in other word, like string intern).

Yes, I think it's a better option than a feature, but I'm not sure it's not going to be a huge difference in code size (potentially changes from a 128-bit slice pointer, to a u8 or u16).

We could use derive_more, and it also supports no_std which nicely fit our use case. You can think of it as a better version of thiserror.

I still don't understand what you mean. read::Error is simply a newtype for &'static str. There is no whole object to construct. It's just a pointer+length that can be copied around. It should be able to exist in registers only. If I change it to a u8, it only saves 4.5k of code for the readobj example (which includes a lot of error handling and should cover the majority of the possible errors).
derive_more is not an option. We avoid dependencies where possible, both because this crate is used in libstd via backtrace-rs, and because it reduces the amount of maintenance.
A downside of using an enum is that users who do want to print the errors will be forced to pull in the strings for every possible error, not just the ones they might encounter, so it's still a tradeoff. It's also more effort to write the code, since the error definition is separate from the code where the error occurs.
There will need to be significant benefits to do any change in this area, and size reduction of 1k is not significant.


Come up with a good name

Here are a few possibilities:
Superelevation - From the way tracks bank on a veladrome (http://en.wikipedia.org/wiki/Cant_(road/rail))
FreeRide - For the biking connotation, plus it's free software

It would be great to keep GoldSprints and or Roller Racing in the title, just for the sake of natural SEO, but I do love a creative name.
HammerDrop
HellHammer
TurkeySmoke
DrumCycle
PedalCircus - Blood, Sweat and Beers.
I like one word titles, Massimo is good that way.

Current working title is now SilverSprint.  We can still utilize goldsprints somewhere in a subhead or whatever for SEO.

Sounds great. When will you change the name on Github?

Knew I was forgetting something :)


Database adapter mysql2_makara not supported

I'm trying to use makara for the first time. I'm using v0.3.3 (mysql2 0.4.2) with AR 4.2.5, ruby 2.2.3 and rake 10.4.2.
When I try to execute my rake assets precompile task I get the error (i realize it should go to my db when i do this):
 [exec] ** Execute environment
 [exec] "Database adapter mysql2_makara not supported. Use:\nForeigner::Adapter.register 'mysql2_makara', 'path/to/adapter'"

My adapter line in database.yml is:
adapter: mysql2_makara
I also tried makara_mysql2 and received the same error.
Suggestions?
Thanks,
-Tony

After more research, i believe this is be that makara is simply unsupported in the Foreigner gem.
I've created a pull request with them to merge a change that adds makara.
https://github.com/matthuhiggins/foreigner/pull/176

thanks  @abiacco - Spreading the makara the love!


Support descriptions for hooks like mocha

Mocha supports the ability to describe hooks as well.
This is not very well documented on their main documentation page but it is possible, as can be seen here https://github.com/mochajs/mocha/blob/2bb2b9fa35818db7a02e5068364b0c417436b1af/lib/suite.js#L200.
Doing this in mocha.parallel will throw an error because at this line: https://github.com/danielstjules/mocha.parallel/blob/master/lib/parallel.js#L243 the hooks will only take one argument, namely the function. It will then attempt to execute the description string which throws an error.

Thanks for the issue! Workaround here to prevent the code from throwing an exception: https://github.com/danielstjules/mocha.parallel/commit/068eaaee5115b19a90e0e8dda9e8cb4af0ea37c1 If interested, would welcome PRs to fully support named hooks, though I don't see a ton of benefit.


update dockerignore to exclude other unneeded folders/files

add additional files/folders that dont need to be in the Docker image

Good catch :)


[Post-Demo] Refactor the infrastructure Terraform

Ticket
https://wicmtdp.atlassian.net/browse/{TICKET_ID}
Changes

created network.tf
add additional config to the ecr repo

Context for reviewers

After completing PRP-116: Migrate terraform for Eligibility Screener out of project repo and into Eligibility Screener repoREADY FOR REVIEW , we should refactor the terraform for the Eligibility Screener to use the same structure that we adopted for the PRP, based on the template repo.

Testing
When this is out of draft:

Run terraform plan
Plan should run successfully with no errors
Run terraform apply
No changes should be committed since all of the listed resources currently exist

@aplybeah I would recommend creating and deploying the entire thing from scratch in a new env to make sure everything works as expected.


Add express session maxAge

This is to force AAD to re-evaluate the user access, since the cache storage is done on a per user basis, i.e. shared by several sessions that the user could open.

@Robbie-Microsoft - please review this.

@trwalke - can you please have a quick look at this?

@pmaytak - can I please get a PR review for this?


Latest versions failed to install

I tried with your latest version fluttertoast: ^3.0.1 It causing build failed and displaying due to AndroidX and when I'm trying to migrating the project to AndroidX. It doesn't show anything to migrate.
For version to support below AndroidX using fluttertoast version 2.2.12 It is also a big error, as 2.2.12 is not exists. So, I'm using 2.2.2, which is working fine. So please look into this issue and do the needful asap.

so do I

check with v3.0.2


Move as much logic as possible out of Jenkins job YAML specification files

Describe what you are trying to solve
Because changes to the YAML files are not enforced until after the PR with those changes is merged, it is very easy to run into issues like #766
Describe the solution you have in mind
I suggest moving as much logic as possible (e.g. cluster setup, test invocations, cluster cleanup) out of these files (https://github.com/vmware-tanzu/antrea/blob/master/ci/jenkins/jobs/macros.yaml) and into separate scripts that we can check-into the repo. This way most changes will go into the scripts and can be tested right away as part of CI, which means if there is an issue with the change, we can detect it before merging the PR and breaking the jobs.
I believe we do something similar for the EKS & GKE Jenkins jobs already.

@antoninbas while pulling out code out of macros.yml, is it possible to also reuse this code with Kind/github based test jobs?

I think most of the logic is for cluster lifecyle, and it's probably not going to be applicable to the Kind-based jobs.


Exercise tracker test and description improvement

Checklist:

[ ] I have read freeCodeCamp's contribution guidelines.
[ ] My pull request has a descriptive title (not a vague title like Update index.md)
[ ] My pull request targets the main branch of freeCodeCamp.
[ ] I have tested these changes either locally on my machine, or GitPod.

Closes #43184

e

Hey @ShaunSHamilton, I made the changes that you asked for, can you Kindly take a look at them and tell me if there are any more changes that need to be done.
Right now I can not check the changes locally because there is an error when opening the page where I made the changes, I am going to try to know what the causes are, the error says It is happening in a file called SuperBlockIntro.js

Heya @NoorFakhry,
Giving this a review shortly. I'm not seeing the SuperBlockIntro.js, which may be caused by some outdated cache files on your end. Running npm run clean-and-develop should resolve that.


manifest: updated openthread module

Regular upmerge of openthread module.
Signed-off-by: Kamil Kasperczyk<EMAIL_ADDRESS>

@rlubos @edmont FYI

Looks good, but I guess it'll need to wait until 2.6 release is out (due to code freeze).


Reverted JSON file updates

When updating the application id, JSON files will not be updated anymore. This causes the build to fail
GitHub Issue: #

Proposed Changes

Bug fix

What is the current behavior?

JSON Files are updated when changing the package id
What is the new behavior?

JSON files are no longer updated when changing the package id
Checklist
Please check if your PR fulfills the following requirements:

[ ] Documentation has been added/updated
[ ] Automated Unit / Integration tests for the changes have been added/updated
[ ] Contains NO breaking changes
[ ] Updated the Changelog
[ ] Associated with an issue

Other information

/azp run


Add support for specifying target metadata in cli

This adds a new cli parameter to manually specify metadata to be added to the target file. The metadata is specified as follows: --metadata "title=My Comic;author=The Author"
; and = can be used in values by escaping them with \
I only tested this by converting cbz to epub and mobi.
Relates to issue #673

This works great

Why not --author --title --etc instead of parsing a long string?

will this get merged soon?

To preface, I'm not a CLI user and don't edit metadata, so excuse me if I say anything uninformed.
I see, indeed that's how the ComicTagger CLI works. https://github.com/comictagger/comictagger/wiki/UserGuide#cli-user-guide. I'm not sure how I feel about owning parsing code however.
Is there anything wrong with naming a title like One Piece 1: Romance Dawn?
I understand that author is an important field for some since it shows up in Kindle UI. @gonsanbo Do you care most about author or all the fields?

And is summary used anywhere in the Kindle UI? Maybe we could simplify with just an --author tag.

I've looked around in my Kindle and I couldn't find any mention of the summary, so honestly yeah --author tag would work great

@gonsanbo is there anything wrong with using comictagger to add author field?

I can't use the inbuilt editor because I was writing a script to automate the process but I didn't know about comictagger, I'll try using that, thanks :)

@gonsanbo let me know how it works, if it modifies the source file that might be problematic for some workflows and an --author tagight be really convenient

@axu2 well I tried comictagger and its working on my script. Only disadvantage is I have to copy source files instead of hardlinking them since it edits the files, but its alright. I wouldn't mind an --author tag if it ever gets merged

Try the build in

#683

to see if it works for you.

Try the build in

Adds --author argument to CLI #683

to see if it works for you.
Edit: closing for now, if you need more than author feel free to re-open.

series would be a nice addition!


SDK is expecting non-null bool type where method channel can return null

I am experiencing error log with message:
type 'Null' is not a subtype of type 'bool'<…>

This happens for the invocation of method:
Synerise.client.authenticate(...)
Where:
bool isAuthenticated = await methodChannel.invokeMethod('Client/authenticate', authenticateMap);
And under the hood, we can see:
  @optionalTypeArgs
  Future<T?> invokeMethod<T>(String method, [ dynamic arguments ]) {
    return _invokeMethod<T>(method, missingOk: false, arguments: arguments);
  }

And as interface states, the api on the other end returns null.
Probably this error can happen also for other SDK functions that are consuming invokeMethod result

Hi. Can you provide more information ( what platform) and steps how to reproduce this error? Have you implemented catchError mechanism?
final bool result = await Synerise.client.authenticate(clientAuthContext, identityProvider, tokenString).catchError((error) { // handle error here });

Method catchError() is not a solution when all function (auth flow) is executed properly and there were no logic errors.
Your library exposes non-null Future<bool> return type and expects bool isAuthenticated type where result from invokeMethod(...) can anytime be null.
This is syntax problem and dealing with platform channels we should not expect non null result

I know it is not a solution I am just asking ;) Are you experiencing this issue on both platforms?

@konned I didn't want to sound rude :), I have done re-check and it seems I cannot reproduce this error message on both Android and iOS for SDK version 0.7.0.
This could happen on 0.6.3 before library updates.

Thank you for your report and cooperation, I'm closing this issue since we also were not able to reproduce this error message on SDK version 0.7.0.


Dragonfly generates links which produce invalid html

http://localhost:3000/media/2010/06/02/173024_Lincoln.jpg?m=resize&o[geometry]=160x160&s=9f2070613854ffdf
The above url contains square brackets, which according to the w3 url spec (http://www.w3.org/Addressing/URL/url-spec.txt), are invalid. They need to be escaped to %5B and %5D

If I upload a file which contais a hash (#) in the filename, the resulting dragonfly url doesn't work. If I manually substitute the hash for an underscore, it works fine though.

ok - should be working on master with commit 38104ccea81af6fdaca99368102cac015ff7a154


fix(button): set focus outline to transparent

I recall it was mentioned in the article u shared. can u please describe how this helps? consider we do have a dedicated element to reflect outline and we don't want this style to be visible on certain preferences

all is in the issue:
https://github.com/Vonage/vivid-3/issues/415

What about other outline: none and outline: 0 none in our code?
Namely sidenav item, text-field etc.

What about other outline: none and outline: 0 none in our code? Namely sidenav item, text-field etc.

didn't want to do them both in the same issue, cause they are not the same.
Buttons actually has focus component inside them - so it may be that we can set focus none on buttons.

due to the face that we are setting a color of the outline  in the focus component that is inside button - I'm closing this isusse.


Add alerts CQ and revert telegraf changes, update run-once and dashboard

Hi @jasonacox - Here are the changes to use a CQ for the alert data, as below:

Reverted "telegraf.conf" changes, as they are not required (also fixed some whitespace/tab inconsistencies)
Added new continuous query "cq_alerts" to downsample data from raw to the alerts rp in per minute intervals
Updated "dropcq.sql" script to include all retention policies (in case used in future - not required for this upgrade)
Updated dashboard alert field names to include "max_" prefix, and added rename by regex transform to display original field names in dashboard graphs
Updated "run-once-2.8.3.sql" script so the last 3d of data is copied to the new alerts retention policy during upgrade

Just a note on the new alerts continuous query and why I have added a RESAMPLE FOR 2m clause. During testing I observed something interesting happen...
We (conveniently?) had a pretty severe storm come through south of Sydney last night, while I had my test system with these changes running. I manually switched my Powerwall to Off-Grid for safety reasons, which you can see in the alerts below.
What I noticed however was, the alert "SwitchingBridgeIrrational" that occurred at 18:46:55 (5 seconds before the CQ would run), did NOT get downsampled into the per minute data of the alerts rp (i.e. it would never have been seen/noticed/logged etc., unless you manually scrutinised the raw data).

So it appears it could happen occasionally (perhaps due to system load or timing issues), a CQ running e.g. per minute may miss a data point logged just before it's execution time.
So by adding a RESAMPLE FOR 2m clause to the CQ, this means when the CQ runs every minute (as per the GROUP BY time(1m)) on each execution it will resample the last 2m of data - this should mitigate against the possibility of missing an alert.
I did some testing of this by manually adding data points with a timestamp in the past minute after a CQ would have already executed, and it was then downsampled to the per minute rp in the next run of the CQ.
For alert data I believe this could be important to ensure we capture any alerts that occur.
Reviewing the other CQ's however... I don't think we need to be concerned about this potential issue - the only other CQ that may benefit from a similar change could be "cq_grid", however grid status would be logged as an alert anyway so it probably isn't necessary.

Brilliant @mcbirse !  You're amazing. Thank you!  🙏
The RESAMPLE  addition makes a lot of sense and I agree with you, with alerts we don't want to miss the signal. That was originally the reason I was willing to spend the space for raw storage, but ironically, as you discovered, it would have resulted in short-events being missed on the graph due to being too small to render.


serverless webpack serve without environment

It looks like serverless webpack serve doesn't add environment vars (serverless 1.2.0) defined in serverless.yml to the local environment.

just confirmed that "native" serverless invoke local -f func does include these variables.

this should have been addressed by #65
Let us know if we should reopen this. thanks!


Logout and login back got different IP address

Bug description
I use latest code with a 3rd party OIDC connection. I found that if I logout and login again with the same user, Tailscale client will get a different IP address.
I think it's related to TS2021 protocol. The reason is that after logout, the content of /var/lib/tailscale/tailscaled.state file is like this:
{
  "_current-profile": "cHJvZmlsZS0yZjFh",
  "_machinekey": "cHJpdmtleTpjMGQzNzNlMGVmYzRhNjc5MTgyMTNkMGE1NzgzYWNkMGRhZTUyMGI5NzBhYjMxODQyYTExNzQxNDRmMDc1ODUz",
  "_profiles": "e30=",
  "profile-2f1a": null
}

When logging back in, the only anchor left in state file is machine key, which is set to all 0 when using TS2021, so Headscale is not able to relate this machine to any previous record.
It looks very like the problem lies in Tailscale client, which should preserve nodekey and rotate it as old nodekey after logout. But the same Tailscale client, if I connect to Tailscale control server, logout and login again, it will get back same IP address. Logout behaviour related to state file is the same (only machine key is remained after logout).

To Reproduce

rm -rf /var/lib/tailscale
start tailscaled
tailscale up --login-server http://my.login.server
finish login process
tailscale status, show IP address
tailscale logout
tailscale up --login-server http://my.login.server
finish login process
tailscale status, the IP address is different from step 5 above.
Context info

@awsong indeed. I am afraid here Headscale is working as intended.
TS2021 basically deprecates MachineKey (not used anymore in the protocol), so for us this is a completely new client - hence the new IP address.

What I'm confused about is that Tailscale client seems also use TS2021 connecting to tailscale control server, yet it can preserve same IP address.

@awsong you are absolutely right. I got that part of the protocol wrong. I did not find the Peer() method, so assume they deprecated MachineKey :(
I am preparing a PR to fix this.


Error: java.lang.ClassCastException: org.treblereel.dto.Import cannot be cast to org.treblereel.Import

I am proposing this fix which also does a little code simplification

Consider a test case like this too, to verify that not just package is used, but also any type that they are nested in?
package foo.bar;

public class A {
  public static class NestedWithSameName {
    //...
  }
}

package foo.bar;

public class B {
  public static class NestedWithSameName {
    //...
  }
}

@niloc132 i think it's another case but let me double check it

Consider a test case like this too, to verify that not just package is used, but also any type that they are nested in?
package foo.bar;

public class A {
  public static class NestedWithSameName {
    //...
  }
}

package foo.bar;

public class B {
  public static class NestedWithSameName {
    //...
  }
}

We do have an issue here, I have made the test case for this, and both classes generated to the same class with the same name.


Feature: Add PRs details row data to generic profile page

Type of feature
🍕 Feature
Current behavior
Currently

The PR details row was temporarily hidden due to shortage of data from the API, but the data needed for that row has been updated in the api and can be consumed from the frontend.
Suggested solution
Unhide the row and implement the data features as seen in the image below

Additional context
No response
Code of Conduct

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

Contributing Docs

[X] I agree to follow this project's Contribution Docs

@bdougie , feel free to include more context on thia issue 🙏


Ultimate Tic Tac Toe

Summary
See https://en.wikipedia.org/wiki/Ultimate_tic-tac-toe
Primarily a wireless pvp game
Optionally write an AI for practice
Have unlockable display pieces. Each should be tinted red or blue in case two players select the same piece
Technical Spec
p2p will be used for wireless
UI

Main Menu

Start Multiplayer
Start Single Player
Select Piece
Instructions

Mockups
Not yet
How to Test
Play a game with two swadges

Duplicate of #233


Improve logging of long log lines

This is a cherry-picked and cleaned-up version of https://github.com/docker/docker/pull/22982.  Adjustments were made to handle the ContainerID field still being present in messages (and checked in the unit tests) and to compensate for 1.10 not yet knowing how to read extra attributes from log entries.  It also adds the "return timestamps in UTC" portion of the fix for reading those extra attributes.

LGTM @rhatdan to merge - I'll cherry pick to Fedora once it's merged, I believe we need this reworked for 1.11 and 1.12 branch @nalind

@runcom Okay, I'll start on those.

LGTM

@runcom Lets get another build of docker-1.10 so people (OpenShift) can start testing.

@rhatdan rebuilding for Fedora, ping @lsm5 for RHEL (if needed there)

@lsm5 Please rebuild docker-1.10 for rhel with latest changes in docker v1.10 branch.  Also I updated docker-selinux v1.10 branch so this needs update also.

@rhatdan does docker-selinux in Fedora need an update?

@runcom No I don't think so, they are using docker-selinux from master.

 (5) Backport log buffering changes to 1.10


Adding borders

In the PHP example: how I can add borders to the cropped image without using CSS?

I don't know, you can try to find answer on: http://php.net/manual


[FEATURE] ADDING A FEEDBACK SECTION

Description
I WANT TO ADD NEW FEED BACK SECTION, WHERE USERS CAN SHARE THEIR EXPERIENCE TO YOU, AS THERE IS NO BACKEND SO I WILL USE EMAIL JS LIBRARY TO DO SO.
Screenshots
....
Additional information
....

Yes I want to work

Description
I WANT TO ADD NEW FEED BACK SECTION, WHERE USERS CAN SHARE THEIR EXPERIENCE TO YOU, AS THERE IS NO BACKEND SO I WILL USE EMAIL JS LIBRARY TO DO SO.
Screenshots
....
Additional information
....

You can work on this :)
Also where would that go? would that go inside the chat bot feature ??

No it will be different

@narayan954 Please provide me your email address, so i can add that on feedback section and you will receive the feedbacks

@narayan954 Please provide me your email address, so i can add that on feedback section and you will receive the feedbacks

yes, sure<EMAIL_ADDRESS>for the mails

No it will be different

Oh okay fine

@narayan954 PLease provide me your mail id so you will be able to get the feedbacks

@narayan954 PLease provide me your mail id so you will be able to get the feedbacks

Yes<EMAIL_ADDRESS>is my email id

Hey @kharshita590 are you working on this? If not then, can I take this issue?

Hey @kharshita590 are you working on this? If not then, can I take this issue?

assigning, you can work on this if you want


Add support for SNI in rancher/agent

https://github.com/liris/websocket-client supports SNI, but requires a newer version of Python than is packaged in the rancher/agent image.  Without this the rancher/server needs to have an IP dedicated to it or happen to be the default VHost for SSL agent connections to work.

+1 for SNI load balancing

@dkiser (hey I know that name :smile:, how's things...) just to clarify, this is only for SNI support in the rancher/agent specifically to connect to a rancher/server that is behind something doing SSL termination (and Rancher isn't the default VHost).
The load balancer services inside of Rancher that you use as a user already supports SNI.

@vincent99 things are good.  Well hot damn, i didnt see that in the ftl template for haproxy, maybe i missed something.  Thanks!

will be a nice feature to have, since i terminate all of my SSL websites via nginx on single IP.

Just ran into this, here is the error I got in case someone is searching for it:
2016-03-15 01:31:21,547 ERROR root [140657990538896] [_logging.py:54] error from callback <function on_error at 0x7fed7d90a848>: Received websocket error: [hostname 'zz.com' doesn't match either of 'xx.com', 'ww.xx.com']

@cloudnautique Can you put in a newer python?  This really seems like it should be fixed for GA.

For people to workaround for now, try this:
FROM rancher/agent:v0.10.0

RUN apt-get update && \
     apt-get install -y software-properties-common python-software-properties && \
     add-apt-repository -y ppa:fkrull/deadsnakes-python2.7 && \
     apt-get update && \
     apt-get upgrade -y python2.7

RUN sed -i'' "s/info \"Starting agent for \${CATTLE_ACCESS_KEY}\"/sed -i\"\" 's#^upgrade\$##' \"\$SCRIPT\"/" /run.sh

This will be supported in rancher/agent:v0.11.0

@dkiser @rlex @kbrownlees @SerialVelocity Would any of you be able to test SNI with our v1.0.0-rc1?

Just upgraded to 1.0.0-rc1 and everything seems happy.

Thanks @kbrownlees!


Thoughts on rustfmt

I notice that the code isn't formatted with rustfmt, the official Rust code formatter. I was wondering if you'd be open to a PR that formatted the code with it? The benefit in my eyes is that you can just let the tool take care of it, knowing that it will be consistent with other code in the Rust ecosystem. I notice that in some places you've formatted code a particular way (tables of bits for example). If I were to format the project I'd try to make sure that things like this were preserved.

I'm in favor of unified coding style, but there are also cases where some deviations make the code more readable. I'll run the formatter later by myself and change the sections I prefer to keep "non-consistent". Thanks for pointing this out.

Fantastic, thanks for doing that.


Bug Dockefile GatewaySvc

Bug: https://github.com/AngeloDotNet/GSWCloudApp/actions/runs/11796607601/job/32858831991

Resolved by issue #26


Log predictions as model is training

🚀 Feature
As the model is training, it would be very helpful to visualize how the predictions are evolving.
Logging all validation set on every epoch might be too expensive, so we need a strategy for doing this.
Also, it's clear how we can log predictions use a wandb callback, but should we also be able to log without wandb?

Logging without wandb should also be actually simple.

Either we can log to tensorboard using Tesorboard callback for Lightning.
Simply choose 'num_samples` random samples from the dataloader, Change the model to eval mode, and get the predictions and bounding boxes. We should not be burdening the RAM by continuously storing these items into RAM. It occurs when we try to keep logging them into python. It should simply save in a folder like

Epoch_0/Predictions/img1.jpg -> These should have boxes drawn
Some parameters I can think of while logging.
start_logging_after : - Should log after x epochs.
log_every : - Every x number of epochs
num_samples: - Number of samples to log
log_dir: - Where to save these logging images.
Useful way will be create an API mantisshrimp.loggers and have these tools generic for fastai and lightning, written in pure PyTorch.

Not relevant anymore


Allow admins to add/change messages on forms

The workshop request form, instructor training request form, and others should each be able to display an optional message, the content of which should be set by the admin.  Simplest implementation I can think of is:

A new "messages" table with a short text key and a large text message field that may contain HTML.
A single page that allows the admins to edit the messages associated with various keys (all displayed on one page).
A conditional in each form that displays its message if there is one.

We do not need to add the ability to create new records in the messages table - that can be done by a migration when new forms are added.

I thought that there is already Django app to do this, but I cannot google it.

Maybe slightly related: https://docs.djangoproject.com/en/1.9/ref/contrib/flatpages/
Eventually I'd want to go a step further: allow admins to completely modify the forms (like Google forms), but that's only an idea…

I don't think that we can fix this issue with flatpages, but thanks for pointing it out.

Eventually I'd want to go a step further: allow admins to completely modify the forms (like Google forms), but that's only an idea…

Hmmm, that requires a lot of work unless you're considering some specific subset of Google Forms features.

If we want the forms to connect with the database models I don't think that should be something admins  can easily change.

@maneesha would this be useful for you? Not so hard to implement for forms.

Closing as I don't think anyone is using email messages.