Connection reset by peer, using ETHERNET-MODULE for Class 1 Ethernet/IP connection

I'm trying to set up communication between a PLC and a linux server on the same subnet. I'm using the example examples/Server_Class1_V2. I edited the argument to ParsePath, but I honestly am not quite sure what these parameters mean. The PLC is in slot 0 and the ethernet module is in slot 1 (I believe, I'm not too familiar with PLC terminology). The other thing that's different from the example is that on the PLC I'm unable to create ETHERNET-BRIDGE modules, they're grayed out when I try to create a new module, so I'm attempting to use ETHERNET-MODULE. When I run the server, I am met with a connection reset by peer error message. Am I doing something wrong here? Any help would be appreciated!
server.go:
package main

import (
	"log"
	"os"
	"time"

	"github.com/danomagnum/gologix"
)

// these types will be the input and output data section for the io connection.
// the input/output nomenclature is from the PLC's point of view - Input goes to the PLC and output
// comes to us.
//
// the size (in bytes) of these structures has to match the size you set up in the IO tree for the IO connection.
// presumably you can also use other formats than bytes for the data type, but the sizes still have to match.
type InStr struct {
	Data  [9]byte
	Count byte
}
type OutStr struct {
	Data [10]byte
}

func main() {

	////////////////////////////////////////////////////
	// First we set up the tag providers.
	//
	// Each one will have a path and an object that fulfills the gologix.TagProvider interface
	// We set those up and then pass them to the Router object.
	// here we're using the build in io tag provider which just has 10 bytes of inputs and 10 bytes of outputs
	//
	////////////////////////////////////////////////////

	r := gologix.PathRouter{}

	// define the Input and Output instances.  (Input and output here is from the plc's perspective)
	inInstance := InStr{}
	outInstance := OutStr{}

	// an IO handler in slot 2
	//p3 := gologix.IOProvider[InStr, OutStr]{}
	p3 := gologix.IOProvider[InStr, OutStr]{
		In:  &inInstance,
		Out: &outInstance,
	}
	path3, err := gologix.ParsePath("0,1")
	if err != nil {
		log.Printf("problem parsing path. %v", err)
		os.Exit(1)
	}
	r.Handle(path3.Bytes(), &p3)

	s := gologix.NewServer(&r)
	go s.Serve()

	t := time.NewTicker(time.Second)

	for {
		<-t.C
		inInstance.Count++
		p3.InMutex.Lock()
		log.Printf("PLC Input: %v", inInstance)
		p3.InMutex.Unlock()
		p3.OutMutex.Lock()
		log.Printf("PLC Output: %v", outInstance)
		p3.OutMutex.Unlock()
	}

}

PLC I/O Configuration and properties of the ETHERNET-MODULE:

Server output:
$ go run server.go
2024/05/30 18:37:36 Listening on TCP port 44818
2024/05/30 18:37:36 Listening on UDP port 2222
2024/05/30 18:37:37 PLC Input: {[0 0 0 0 0 0 0 0 0] 1}
2024/05/30 18:37:37 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/30 18:37:38 PLC Input: {[0 0 0 0 0 0 0 0 0] 2}
2024/05/30 18:37:38 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/30 18:37:39 PLC Input: {[0 0 0 0 0 0 0 0 0] 3}
2024/05/30 18:37:39 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/30 18:37:40 PLC Input: {[0 0 0 0 0 0 0 0 0] 4}
2024/05/30 18:37:40 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/30 18:37:40 new connection from <IP_ADDRESS>:2112
2024/05/30 18:37:40 context: 0
2024/05/30 18:37:41 PLC Input: {[0 0 0 0 0 0 0 0 0] 5}
2024/05/30 18:37:41 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/30 18:37:42 PLC Input: {[0 0 0 0 0 0 0 0 0] 6}
2024/05/30 18:37:42 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/30 18:37:43 PLC Input: {[0 0 0 0 0 0 0 0 0] 7}
2024/05/30 18:37:43 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/30 18:37:44 PLC Input: {[0 0 0 0 0 0 0 0 0] 8}
2024/05/30 18:37:44 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/30 18:37:45 PLC Input: {[0 0 0 0 0 0 0 0 0] 9}
2024/05/30 18:37:45 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/30 18:37:46 PLC Input: {[0 0 0 0 0 0 0 0 0] 10}
2024/05/30 18:37:46 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/30 18:37:47 PLC Input: {[0 0 0 0 0 0 0 0 0] 11}
2024/05/30 18:37:47 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/30 18:37:48 PLC Input: {[0 0 0 0 0 0 0 0 0] 12}
2024/05/30 18:37:48 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/30 18:37:49 PLC Input: {[0 0 0 0 0 0 0 0 0] 13}
2024/05/30 18:37:49 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/30 18:37:50 PLC Input: {[0 0 0 0 0 0 0 0 0] 14}
2024/05/30 18:37:50 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/30 18:37:51 PLC Input: {[0 0 0 0 0 0 0 0 0] 15}
2024/05/30 18:37:51 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/30 18:37:52 PLC Input: {[0 0 0 0 0 0 0 0 0] 16}
2024/05/30 18:37:52 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/30 18:37:53 PLC Input: {[0 0 0 0 0 0 0 0 0] 17}
2024/05/30 18:37:53 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/30 18:37:54 PLC Input: {[0 0 0 0 0 0 0 0 0] 18}
2024/05/30 18:37:54 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/30 18:37:55 PLC Input: {[0 0 0 0 0 0 0 0 0] 19}
2024/05/30 18:37:55 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/30 18:37:56 PLC Input: {[0 0 0 0 0 0 0 0 0] 20}
2024/05/30 18:37:56 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/30 18:37:57 Error on connnection <IP_ADDRESS>:2112. problem reading eip header. read tcp <IP_ADDRESS>:44818-><IP_ADDRESS>:2112: read: connection reset by peer
2024/05/30 18:37:57 PLC Input: {[0 0 0 0 0 0 0 0 0] 21}
2024/05/30 18:37:57 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/30 18:37:58 PLC Input: {[0 0 0 0 0 0 0 0 0] 22}
2024/05/30 18:37:58 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/30 18:37:59 PLC Input: {[0 0 0 0 0 0 0 0 0] 23}
2024/05/30 18:37:59 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/30 18:38:00 PLC Input: {[0 0 0 0 0 0 0 0 0] 24}
2024/05/30 18:38:00 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/30 18:38:01 PLC Input: {[0 0 0 0 0 0 0 0 0] 25}
2024/05/30 18:38:01 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/30 18:38:02 PLC Input: {[0 0 0 0 0 0 0 0 0] 26}
2024/05/30 18:38:02 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/30 18:38:03 PLC Input: {[0 0 0 0 0 0 0 0 0] 27}
2024/05/30 18:38:03 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/30 18:38:04 PLC Input: {[0 0 0 0 0 0 0 0 0] 28}
2024/05/30 18:38:04 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/30 18:38:05 new connection from <IP_ADDRESS>:2113
2024/05/30 18:38:05 context: 0
^Csignal: interrupt

What firmware are you running?  An L73 should definitely be able to add an ethernet-bridge.  It could be that the ENBT can't support it (the ENBT is quite bad performance-wise and if you can, you should get an EN2T for a lot of reasons.)
You can think of the gologix server as a virtual 1756 plc rack.  The path you pass to Handle() tells the server what data interface is available at what "slot" of the virtual rack.  In the case of the program you posted that's "0,1" which would be slot 1. ("0,1" means port 0 of the fake network card (which would be the backplane) and then slot 1. You can google "cip routing" to learn more about how that works.)
I tried on my test PLC creating a generic module (not an ethernet-bridge)

and I got this error:

but I never got a connection reset by peer.
If I set the path to what it said ( []byte{52, 4} ) and passed that as the parameter to Handle() it seems to work OK.
	path3 := []byte{52, 4}
	r.Handle(path3, &p3)

The error your getting (problem reading eip header) happens almost instantaneously after the connection is made.  Can you get a wireshark capture of it?
All this said, the server functionality is probably not super common to use - the more common way to communicate with the PLC is to poll it with a client.  Not to say that it isn't needed in your situation.

capture.zip
I've attached a capture (note that server.go was only active for packets ~4-26). You can see the PLC (<IP_ADDRESS>) sends a single ENIP packet, but no ENIP packets are being sent from the server. It seems like the problem might lie in a problem with the UDP port, there are no packets on 2222. I've verified that I can send UDP packets to 2222 on the server, however there aren't any coming from the PLC. Using ss and netstat, I've determined that while the server is running the 2222 port is not in a LISTEN state.
$ sudo ss -l -n | grep -E "44818|2222"
udp                UNCONN              0                    0           *:2222                                         *:*
tcp                LISTEN              0                    4096        *:44818                                        *:*

I haven't found any firewall type things that should restrict this, the port works perfectly fine with other devices (using netcat).
I also have another ethernet card on the PLC, but it also has ETHERNET-BRIDGE grayed out.

Also, I verified that communication works fine polling with a client. The reason for using a server is that I'm hopeful it might solve problems with pylogix on my production PLC, which is a little overloaded and non-implicit communication gets buffered and suffers delays.

Firmware and PLC configuration:

Ok. I'll take a look at the packet capture this afternoon.
The udp port doesn't come into play until the tcp handshake is done (called Forward open in cip/eip) which defines the message sizes, rpi, connection id, etc.... Then both ends start pumping udp messages at the defined rpi.  Neither side would ever know if the udp port on the opposite side wasn't open because of how udp works, but after enough missed rpi intervals the tcp connection would be closed down to let the other side know no packets were received.
From the console output you posted in the first post we're not even making it through the handshake - hopefully the packet capture will clear up what is going on.

It's doing a "list services" request instead of actually opening the class 1 connection.  I'll have to see what response it is expecting and get back to you.

I was just able to get it working, it turns out I wasn't able to add the bridge module because the PLC was online, and that's something you're supposed to do offline. Still doesn't explain what's going on with the generic ethernet module, if you think it's worth investigating that more, I'd be happy to help, but my issue is now resolved.

I have no idea if this will work.  do a go get github.com/danomagnum/gologix/commit/8cd66d3e3d178c6512eca4a3a715d86a45da10dd and see if it works.  That should make it use a test version with support for that command.  My plc doesn't do that so I can't test it unfortunately.

I see.  Glad it's working now.  If you wouldn't mind testing with the regular generic module and that specific commit I'd appreciate it just so I know if it works or not.

Ok, I ran with that commit. I am also now using the EN3TR instead of the ENBT card (I switched to using that card earlier in addition to adding the bridge module instead). It could be that the problems were all with the ENBT card.
Server Output

2024/05/31 15:02:25 Listening on TCP port 44818
2024/05/31 15:02:25 Listening on UDP port 2222
2024/05/31 15:02:26 PLC Input: {[0 0 0 0 0 0 0 0 0] 1}
2024/05/31 15:02:26 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/31 15:02:27 PLC Input: {[0 0 0 0 0 0 0 0 0] 2}
2024/05/31 15:02:27 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/31 15:02:28 PLC Input: {[0 0 0 0 0 0 0 0 0] 3}
2024/05/31 15:02:28 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/31 15:02:28 new connection from <IP_ADDRESS>:51742
2024/05/31 15:02:28 context: 0
2024/05/31 15:02:28 register message: {ProtocolVersion:1 OptionFlag:0}
2024/05/31 15:02:28 context:<PHONE_NUMBER>136661504
2024/05/31 15:02:28 ih: 0. timeout: 0
2024/05/31 15:02:28 items: [{Header:{ID:0 Length:0} Data:[] Pos:0} {Header:{ID:178 Length:60} Data:[84 2 32 6 36 1 5 155 0 0 0 0 97 64 28 0 1 0 1 0 218 184 119 0 2 0 0 0 16 39 0 0 16 72 16 39 0 0 12 72 1 9 52 4 0 0 0 0 0 0 0 0 32 4 36 102 44 101 44 100] Pos:0}]
2024/05/31 15:02:28 got small forward open from <IP_ADDRESS>:51742
2024/05/31 15:02:28 forward open msg: {cipService_ForwardOpen 2 32 6 36 1 5 155 0 1851489 1 1 7846106 2 10000 18448 10000 18444 1 9} @ [52 4 0 0 0 0 0 0 0 0 32 4 36 102 44 101 44 100]
2024/05/31 15:02:28 New Managed Connection. {ID:1 OT:2848060441 TO:1851489 RPI:10ms Path:[52 4] Open:true}
2024/05/31 15:02:28 No tag provider for path [52 4]
2024/05/31 15:02:28 Error on connnection <IP_ADDRESS>:51742. problem with sendrrdata problem handling forward open. no tag provider for path [52 4]
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:28 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 PLC Input: {[0 0 0 0 0 0 0 0 0] 4}
2024/05/31 15:02:29 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:29 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:30 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:30 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:30 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:30 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:30 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:30 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:30 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:30 PLC Input: {[0 0 0 0 0 0 0 0 0] 5}
2024/05/31 15:02:30 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/31 15:02:30 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:30 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:30 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:30 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:30 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:30 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:30 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:30 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:30 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:30 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:30 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:30 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:30 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:30 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:30 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:30 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:30 couldn't find tag provider for connection<PHONE_NUMBER> at path [52 4] to handle IO message
2024/05/31 15:02:30 new connection from <IP_ADDRESS>:51744
2024/05/31 15:02:30 context: 0
2024/05/31 15:02:30 register message: {ProtocolVersion:1 OptionFlag:0}
2024/05/31 15:02:30 context:<PHONE_NUMBER>431628800
2024/05/31 15:02:30 ih: 0. timeout: 0
2024/05/31 15:02:30 items: [{Header:{ID:0 Length:0} Data:[] Pos:0} {Header:{ID:178 Length:26} Data:[78 2 32 6 36 1 5 156 1 0 1 0 218 184 119 0 4 0 32 4 36 102 44 101 44 100] Pos:0}]
2024/05/31 15:02:30 got forward close from <IP_ADDRESS>:51744
2024/05/31 15:02:30 Closing connection 1
2024/05/31 15:02:31 PLC Input: {[0 0 0 0 0 0 0 0 0] 6}
2024/05/31 15:02:31 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/31 15:02:32 PLC Input: {[0 0 0 0 0 0 0 0 0] 7}
2024/05/31 15:02:32 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/31 15:02:33 PLC Input: {[0 0 0 0 0 0 0 0 0] 8}
2024/05/31 15:02:33 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/31 15:02:34 PLC Input: {[0 0 0 0 0 0 0 0 0] 9}
2024/05/31 15:02:34 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/31 15:02:35 PLC Input: {[0 0 0 0 0 0 0 0 0] 10}
2024/05/31 15:02:35 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/31 15:02:36 PLC Input: {[0 0 0 0 0 0 0 0 0] 11}
2024/05/31 15:02:36 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
^C

Following your procedure earlier for changing the path:
Server Output

2024/05/31 15:11:28 Listening on TCP port 44818
2024/05/31 15:11:28 Listening on UDP port 2222
2024/05/31 15:11:29 new connection from <IP_ADDRESS>:52078
2024/05/31 15:11:29 context: 0
2024/05/31 15:11:29 register message: {ProtocolVersion:1 OptionFlag:0}
2024/05/31 15:11:29 context:<PHONE_NUMBER>691167232
2024/05/31 15:11:29 ih: 0. timeout: 0
2024/05/31 15:11:29 items: [{Header:{ID:0 Length:0} Data:[] Pos:0} {Header:{ID:178 Length:60} Data:[84 2 32 6 36 1 5 155 0 0 0 0 7 66 28 0 1 0 1 0 218 184 119 0 2 0 0 0 16 39 0 0 16 72 16 39 0 0 12 72 1 9 52 4 0 0 0 0 0 0 0 0 32 4 36 102 44 101 44 100] Pos:0}]
2024/05/31 15:11:29 got small forward open from <IP_ADDRESS>:52078
2024/05/31 15:11:29 forward open msg: {cipService_ForwardOpen 2 32 6 36 1 5 155 0 1851911 1 1 7846106 2 10000 18448 10000 18444 1 9} @ [52 4 0 0 0 0 0 0 0 0 32 4 36 102 44 101 44 100]
2024/05/31 15:11:29 New Managed Connection. {ID:1 OT:438054332 TO:1851911 RPI:10ms Path:[52 4] Open:true}
2024/05/31 15:11:29 IO RPI of 10ms
2024/05/31 15:11:29 PLC Input: {[0 0 0 0 0 0 0 0 0] 1}
2024/05/31 15:11:29 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/31 15:11:30 PLC Input: {[0 0 0 0 0 0 0 0 0] 2}
2024/05/31 15:11:30 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/31 15:11:31 PLC Input: {[0 0 0 0 0 0 0 0 0] 3}
2024/05/31 15:11:31 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/31 15:11:32 PLC Input: {[0 0 0 0 0 0 0 0 0] 4}
2024/05/31 15:11:32 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/31 15:11:33 PLC Input: {[0 0 0 0 0 0 0 0 0] 5}
2024/05/31 15:11:33 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/31 15:11:34 PLC Input: {[0 0 0 0 0 0 0 0 0] 6}
2024/05/31 15:11:34 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/31 15:11:35 PLC Input: {[0 0 0 0 0 0 0 0 0] 7}
2024/05/31 15:11:35 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/31 15:11:36 PLC Input: {[0 0 0 0 0 0 0 0 0] 8}
2024/05/31 15:11:36 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/31 15:11:37 PLC Input: {[0 0 0 0 0 0 0 0 0] 9}
2024/05/31 15:11:37 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/31 15:11:38 PLC Input: {[0 0 0 0 0 0 0 0 0] 10}
2024/05/31 15:11:38 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/31 15:11:39 PLC Input: {[0 0 0 0 0 0 0 0 0] 11}
2024/05/31 15:11:39 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/31 15:11:40 PLC Input: {[0 0 0 0 0 0 0 0 0] 12}
2024/05/31 15:11:40 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/31 15:11:41 PLC Input: {[0 0 0 0 0 0 0 0 0] 13}
2024/05/31 15:11:41 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/31 15:11:42 PLC Input: {[0 0 0 0 0 0 0 0 0] 14}
2024/05/31 15:11:42 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/31 15:11:43 PLC Input: {[0 0 0 0 0 0 0 0 0] 15}
2024/05/31 15:11:43 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/31 15:11:44 PLC Input: {[0 0 0 0 0 0 0 0 0] 16}
2024/05/31 15:11:44 PLC Output: {[0 0 0 0 0 0 0 0 0 0]}
2024/05/31 15:11:45 PLC Input: {[0 0 0 0 0 0 0 0 0] 17}
2024/05/31 15:11:45 PLC Output: {[0 0 0 0 0 0 0 0 0 10]}
2024/05/31 15:11:46 PLC Input: {[0 0 0 0 0 0 0 0 0] 18}
2024/05/31 15:11:46 PLC Output: {[0 0 0 0 0 0 0 0 0 10]}
2024/05/31 15:11:47 PLC Input: {[0 0 0 0 0 0 0 0 0] 19}
2024/05/31 15:11:47 PLC Output: {[0 0 0 0 0 0 0 0 0 10]}
2024/05/31 15:11:48 PLC Input: {[0 0 0 0 0 0 0 0 0] 20}
2024/05/31 15:11:48 PLC Output: {[0 0 0 0 0 0 0 0 0 10]}
2024/05/31 15:11:49 PLC Input: {[0 0 0 0 0 0 0 0 0] 21}
2024/05/31 15:11:49 PLC Output: {[0 0 0 0 0 0 0 0 0 10]}
2024/05/31 15:11:50 PLC Input: {[0 0 0 0 0 0 0 0 0] 22}
2024/05/31 15:11:50 PLC Output: {[0 0 0 0 0 0 0 0 0 10]}
^C

Thanks for the feedback.  I'm going to blame it on the enbt for now.

I was thinking about it and you might find that your communication delays you were experiencing are gone now that the enbt is replaced.

Thanks, but the production PLC hasn't been using any ENBTs, all ENxTRs. The two main options I'm exploring are either getting these Linux server connections on their own comms card, because they share with other stuff, or try implicit (class 1) comms.
To illustrate some symptoms of the issue in case you have any additional thoughts, we have 3 local servers communicating with the PLC via Pylogix. The communication buffers so that all the info arrives, but from 0.3 to 1.5 seconds late. Disabling 2 of the servers, the 1 server will have nearly perfect communication, rarely more than 0.4 seconds late. However, if a second person other than me connects to the PLC then the communication of that 1 server is significantly worse, going back to being a second or even more late.
My impression is that implicit connections receive some sort of priority which may reduce the buffering that I believe is occurring. Is this a problem an implicit connection could potentially solve, or would it be made worse? From what I've heard, implicit communication can be slower, but I'm really just concerned with whether it can be consistent under these circumstances.

That's interesting.  IImplicit class 1 connections will be considerably more performant than explicit class 3 connections because there isn't a poll/response - the data just gets sent at the rpi automatically and it gets a higher priority in the controller.
Have you ever used the "studio 5000 task monitor" to look at the plc communication load?  It's a handy tool for that.  The new L8's have the task monitor built in on their internal webpage, but the L7s you have to download the tool from the rockwell pcdc site.  It's free.

If you're using the continuous task it could be that the system overhead time slice isn't set high enough - you can adjust that from the advanced tab of the controller properties in studio 5000.
They recommend you don't use the continuous task anymore - instead using (a) periodic task(s) at a rate appropriate for the application.  Then communication tasks don't have to fight the continuous task for execution time.  Obviously that may or may not be an easy change on an existing running system.


undo does not work on rows added with newRecord()

Could you provide more details? My testing works


#r referencing issue between web editor and local text editor

Hi, Team.
I've been playing around Azure Functions for a couple of days. What I've found interesting is to make use of the #r directive. When I use the #r directive for my external assembly ClassLibrary1.dll in Visual Studio Code, I should use
#r "bin/ClassLibrary1.dll"

However, this causes the compile error when I push this into Azure Functions. In the web editor on Azure Functions, I should change it to:
#r "ClassLibrary1.dll"

There is something happening behind the scene in Azure Functions, which causes inconsistency in writing codes.
I know that, in Build 2016, Chris Anderson said development environment will be released in May. In the meantime, how can I sort out this issue?

@justinyoo, this is by design. Azure Functions defaults to the \bin folder for private assembly probing, so there's no need to use that in the path and you can simply reference the file name.
If you're developing locally, you can do the same. What issues are you seeing when following this process locally?

@fabiocav I would assume that it is by design. In somewhat reason, I was unable to run my .csx code because the assembly was not found. But it's now fine after rebooting my laptop. Never mind. Thanks for your clarification.
By the way, do you have a particular extension installed in VS Code?

I see the #r is only allowed in scripts [net46] error message.

@justinyoo we're still working on the local dev experience and don't (yet?) have an extension for VS Code or VS, but more guidance (and tooling) will become available in future releases. I'd encourage you to open an idea on our feedback to make this visible and help the product team prioritize those features. Here's the one for VS:
https://feedback.azure.com/forums/355860-azure-functions/suggestions/13301214-visual-studios-tooling-with-local-execution-debug


Calling dump_memory_usage crashes dream daemon

I tried using it on /vg/station, and it crashes every single time. I have a branch that you can use to test this here: https://github.com/DamianX/vgstation13/tree/MemDump
You can call dump_memory_profile through the "Advanced ProcCall" verb.
I tested with both a release and a debug build of extools, both crash on /vg/station.
I also tested both a release and a debug build on an empty project, and it does not crash.

Currently, theres an issue with the mob table. This is probably a related issue. I have the fix in my replay branch.

I don't see such branch in your fork. Did you not make it public?


fix links and images in translated readme's

Description
Fixed images and links in the translated readme's.
Contribution Checklist:

[x] The pull request only addresses one issue or adds one feature.
[x] The pull request does not introduce any breaking changes
[x] I have added screenshots or gifs to help explain the change if applicable.
[x] I have read the contribution guidelines.
[x] Create an issue and link to the pull request.

Thanks for taking care of this @DaPutzy !


update rocksdb

To support o2 optimization, we need to use latest rust-rocksdb.

LGTM

PTAL @zhangjinpeng1987

LGTM


fallback to our spmv when single strided vector if SM>=70 and nvcc>=11.6

This PR fallbacks to our spmv when single strided vector if SM>=70 and nvcc>=11.6
cusparse SpMM has the issue when SM >= 70 and nvcc >= 11.6. It considers single row-major strided vector as column vector.
It's found by #1212 and #1292
from #1212 , SpMM buffer size uses the same amount for single strided vector as single vector and the modification behavior of padding.

SM61(V11.6.124): single_vector 44, with stride 6672, multiple vector 6672
SM80(V11.6.112, V11.7.99): single_vector 44, with stride 44, multiple vector 6672
padding comparison in 10 * 10 matrix. The first 6 elements of padding are changed (10 = 3 * 3 + 1) in stride = 3 vectors
component-wise relative error is:
1.0863312916722774	1.5682268241366939
0.8845321836579475	0.48366594856360329
1.8114900341559925	0.94033609142098684
0	0

I also test cuda V11.4.152 on V100 and A100, and 11.5.119 on V100. The single strided vector tests are passed.
V11.6.124 on V100 also gave the wrong result on single strided vector tests from sparselib.

Can #1212 and #1292 be considerered resolved after this gets merged ? If so, maybe add the closing keyword in the PR description

I can only close #1212 . There are some issues left in #1292 not related to this pr


Update bots.md

Docs Build status updates of commit 3df7f48:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/bots/design/bots.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit acdee0c:
:warning: Validation status: warnings

File
Status
Preview URL
Details

msteams-platform/bots/design/bots.md
:warning:Warning
View
Details

msteams-platform/bots/design/bots.md

Line 35, Column 14: [Warning-file-not-found] Invalid file link: '../../concepts/deploy-and-publish/appsource/prepare/frequently-failed-cases'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


John conroy/epic creation action

Updates portal translation to add processing_type for EPICs based on their expected creation_action.

@john-conroy @lchoy just a heads-up, we are finishing up the updates on reducing the nested fields on DEV, your PR will have to wait after that.


scroll to bottom disable

Currently when selecting the textfield within the uitoolbar, the collection view scrolls to the bottom.
Is there anyway to disable this?

never mind, just as i typed this i found
"automaticallyScrollsToMostRecentMessage"


Any improvements welcome!

This is a very raw and newer project. I am open to any ideas or directions you suggest! Feel free to comment here or open a new issue if you have something you would like to add!

Adding a Readme.md would be great

Yes I absolutely need to do this. I will add a readme and contributing doc ASAP in the morning!

The app currently requires an email but it never checks if the email is valid. Most of the apps out there would send an email verification and then create the user once the verification link is clicked by the user.
Would you like to add this feature @connorphee? I'm happy to work on it if you assign a new issue to me 😄

@arianahl checkout out #24


Support for SecRuleScript

Adding support for SecRuleScript, please review closely!
https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual-(v2.x)#SecRuleScript

Question: did you tested it? I had problems in the past because in textX the directives order is important. In this case, it might give an error saying that it can't match SecRule, when the first SecRuleScript appears. I think that for this to work you need to add the longer match first.

Question: did you tested it? I had problems in the past because in textX the directives order is important. In this case, it might give an error saying that it can't match SecRule, when the first SecRuleScript appears. I think that for this to work you need to add the longer match first.

No because i don't know how. Can you hint me with it?

No because i don't know how. Can you hint me with it?

No because i don't know how. Can you hint me with it?

See the documentation:
python secrules_parser.py -f /owasp-crs/rules/*.conf
(if you thought this one)

No because i don't know how. Can you hint me with it?

See the documentation:
python secrules_parser.py -f /owasp-crs/rules/*.conf
(if you thought this one)

Ok, thank you, i fixed it. Anyway, if i try to run it locally, it prints Syntax OK no matter if SecRuleScript is before or after SecRule.

Ok, thank you, i fixed it. Anyway, if i try to run it locally, it prints Syntax OK no matter if SecRuleScript is before or after SecRule.

Anyway, if i try to run it locally, it prints Syntax OK no matter if SecRuleScript is before or after SecRule.

well, you're right - it works for me too. It's interesting, but IMHO it's better if you follow the convention (as you fixed).
Thanks.

Anyway, if i try to run it locally, it prints Syntax OK no matter if SecRuleScript is before or after SecRule.

well, you're right - it works for me too. It's interesting, but IMHO it's better if you follow the convention (as you fixed).
Thanks.

Excellent. Sadly I can't test it myself, as I'm away from my laptop from the next week or so.
LGTM.
Just in case, the parser was created as basically just to be useful for the crs, that's why it doesn't have all modsec directives (yet).

Excellent. Sadly I can't test it myself, as I'm away from my laptop from the next week or so.
LGTM.
Just in case, the parser was created as basically just to be useful for the crs, that's why it doesn't have all modsec directives (yet).


adding supercomphud

is my submission denied

No sorry I just have been really busy, I'm sorry!

oh i see, soz soz


Stopwords that contain apostrophe are not filtered

Hello! Thanks for this project, it's very useful. I've been using it to extract keywords from apps titles and descriptions at Google Play and iTunes, and I've found that some words that I understand that should be considered stopwords, but have apostrophes in them, aren't filtered by this plugin. Some examples are: it's, you'll, you're, we'll, can't, won't, etc.
For now I'm just adding a string replacement for every new case I find before sending it to the processor, but I was wondering if there's a more generic way to filter them out.

Thanks, @facundoolano, for reaching out and using retext-keywords.
Thing is, retext-keywords is based on parts of speech, not on stopwords.
The POS tags default to NN, which makes unknown words eligible for inclusion in the results, which is the reason this occurs.
Solving word detection
One fix would be to wait for https://github.com/dariusk/pos-js/issues/21 to be PRd (I believe this is an issue there).
Another would be to create a retext plug-in which expands those elision examples (my preference), or alternatively preprocess the given input and expand them by regexes (easiest):
input.replace(/you[’']ve/, 'you have')/*...*/;
retext.process(input/*, ...*/);

The last method should fix this issue, as then the words will be recognised correctly.
Solving stop-words
Or, this project could start supporting given configurable stop-words. Would you be interested in working on a PR for that? I could help guide you through the project!

Thanks for answering. From your explanation it sounds like a plugin that handles the expansions before processing would work better than introducing stopwords. I'll consider working in such plugin in the future, but for now I guess I'll keep on replacing by hand before processing, so I can move forward with my current project.

It’s quite some work, and I’m not very interested in working on it currently.
If someone wants this: create a PR on dariusk/pos-js!


revise discrete matrix B

Discrete Matrix Error in apollo/modules/control/controller/mpc_controller.cc
I think apollo use trapezoidal integration to discrete MPC model matrix.
This method should be like following equations.

original equations
(dx/dt) = Ax + Bu

discrete equations
(x(k+1)-x(k))/δt = A * (x(k+1) + x(k)) / 2 +Bu

x(k+1) = (I-A*δt/2)-1(I+Aδt/2)x(k) + (I-Aδt/2)-1 * B * δt * u
therefore, the discrete matrix will be
Ad = (I-A*δt/2)-1(I+Aδt/2)
Bd = (I-A*δt/2)-1 * B * δt
However, discrete matrix B  in apollo/modules/control/controller/mpc_controller.cc  is
Bd = B * δt
Please check the discrete matrix.  I think it should be revised.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@purewater0901 Thanks for the PR, and sorry for the confusion. --- Previously we were lazy (mainly me) and only apply the bilinear transformation to matrix A and the zero order hold for matrix B for the approximation (and simply to keep it stochastic with respect to u(t) as well). (Since A is more sensitive to with respect to system parameter change.) -- This might be the root cause of all the confusion. We will look into it and keep you updated.

@Capri2014 Thanks for your replying. I am looking forward from hearing from you.


Failing to get output tensor on GPU device

Description
Hello,
I'm trying to get an output tensor on the GPU device when doing InferenceRequest from the python backend
Triton Information
What version of Triton are you using?
Are you using the Triton container or did you build it yourself?
nvcr.io/nvidia/tritonserver:22.06-py3
To Reproduce
Here is a simple reproduction, I just make a request to a simple ONNX graph. I print if the output tensor is on GPU or CPU
import triton_python_backend_utils as pb_utils
import json
import asyncio

class TritonPythonModel:
    def initialize(self, args):
        self.model_config = json.loads(args['model_config'])

    async def execute(self, requests):
        responses = []
        for request in requests:
            in_0 = pb_utils.get_input_tensor_by_name(request, "input")
            inference_response_awaits = []
            infer_request = pb_utils.InferenceRequest(
                model_name="onnx",
                requested_output_names=["output"],
                inputs=[in_0])

            inference_response_awaits.append(infer_request.async_exec())

            inference_responses = await asyncio.gather(
                *inference_response_awaits)

            for infer_response in inference_responses:
                if infer_response.has_error():
                    raise pb_utils.TritonModelException(
                        infer_response.error().message())

            pytorch_output0_tensor = pb_utils.get_output_tensor_by_name(
                inference_responses[0], "output")

            # Here we print if the tensor is on CPU or GPU
            print(pytorch_output0_tensor.is_cpu())

            inference_response = pb_utils.InferenceResponse(
                output_tensors=[pytorch_output0_tensor])
            responses.append(inference_response)

        return responses

    def finalize(self):
        print('Cleaning up...')

name: "bls_async2"
backend: "python"
max_batch_size: 0

input [
  {
    name: "input"
    data_type: TYPE_FP32
    dims: [ 1, 3 ]
  }
]
output [
  {
    name: "output"
    data_type: TYPE_FP32
    dims: [ 1, 3 ]
  }
]

instance_group [
    {
      count: 1
      kind: KIND_GPU
    }
]

parameters: { key: "FORCE_CPU_ONLY_INPUT_TENSORS" value: {string_value:"no"}}

I run the server with
tritonserver --model-repository `pwd`/models --model-control-mode=poll --repository-poll-secs 2 --log-verbose 100

In the log I see it enters here https://github.com/triton-inference-server/onnxruntime_backend/blob/5568172eab065ae9bf31fe9dc1e2bed9dfc363d9/src/onnxruntime.cc#L1640
It will print True because is_cpu is true for the output
issue.zip
Expected behavior
is_cpu to be false
I add a zip containing the example models, you just need to run python3 make_request.py to run an inference
-> issue.zip

Hi @gaetansnl. Thanks for detailed repro instructions. The problem is that Python backend doesn't implement the OutputBufferQuery API and as a result tensors are placed on CPU. I've filed a ticket for this.


Android P + Stetho 1.5.1 - View highlighting not working

Samsung S8, Android 9.
When using the same device with Android 8 and Stetho 1.5.0, whenever I selected/hovered over an element in the inspector, the corresponding element was shown on my app.
I needed to upgrade the Stetho build to 1.5.1 to prevent an app crash when expanding the elements in the inspector (https://github.com/facebook/stetho/issues/607), but unfortunately I've lost view highlighting.
Please let me know if I can provide any more information.

Confirmed that view highlighting works with Stetho 1.5.1 and Android 7 - issue seems to be Android P specific

For me it is still not working I'm using a Pixel3 Android 9 Stetho 1.5.1

Is this project still active? @jasta? Would be incredibly useful to have this merged in

View highlighting not working on Stetho 1.5.1. Any solutions?


adding s3 bucket as backend for remote state

Signed-off-by: RinkiyaKeDad<EMAIL_ADDRESS>This will use a S3 bucket as backed so that we can store the terraform state remotely. Please let's merge this too only after we get the tests running so that local development is easier.
/assign @jakexks
/hold

/approve


chore(deps): upgrade dev dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-dev-dependencies-k8s-30-main" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 4614

Questions ?
Please refer to the Backport tool documentation


[STORM-3949] libthrift 0.18.1

What is the purpose of the change

Upgrade libthrift to 0.18.1

How was the change tested

Run tests locally similar to GH actions
GH actions

When storm upgraded to thrift 0.13 initially, we would see huge CPU spikes on supervisors and nimbus after approximately 24 hours for unknown reasons.  The problem went away when we backed out that change.  Just wondering if anyone has seen any performance issues of note with this change so far.

@agresch think we will see after a 2.6.0 ist available because I doubt anyone is using the Last SNAPSHOT build in a staging environment ,et.

I have been running my pre-production topologies with Storm 2.6.0 SNAPSHOT
build of the 2023/11/03, with a flow ~1000 tuples/minutes since 2 days,and
so far my metrics on latency, Kafka lag, etc aren't showing regressions ;
consumption is even more stable than with Storm 2.5.0.
on Supervisor machines, CPU & Memory are behaving "just as usual"
Please note that I haven't rebuilt my topologies bigjars with 2.6.0
dependencies (but I fixed some trivial issues related to old bad practices).
Alexandre
Le lun. 6 nov. 2023 à 22:38, Richard Zowalla @.***> a
écrit :

@agresch https://github.com/agresch think we will see after a 2.6.0 ist
available because I doubt anyone is using the Last SNAPSHOT build in a
staging environment ,et.
—
Reply to this email directly, view it on GitHub
https://github.com/apache/storm/pull/3564#issuecomment-1796531951, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AEIJEMPYONB5FHCE7SJ5YDDYDFKDTAVCNFSM6AAAAAA3RDE5T2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOJWGUZTCOJVGE
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Dialogue per stage

What does your feature do? it would be amazing if we could add a dialogue per stage, it'll give us more options to make stories and add life to the quest itself
How would people use it? when creating a new stage, you would have the option to add a dialogue once that stage ends

Duplicate of #1062


Copy MIT license from array_alg.h into a separate file. Fix #3

This makes GitHub display the correct license in the About box at the right side.
Not really necessary, the license in the source file is clear enough, but some people might take a quick look, not see the license in the About box, and incorrectly assume something else.

It is possible to indicate the license in GitHub without adding a LICENSE file, but that can only be done when creating the repository: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository#applying-a-license-to-a-repository-with-an-existing-license

Thanks.


Text Selection height doesn't match Text widget's height.

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce

Run the sample code
Start selecting text and see that the selection rect is smaller than the text box.

Expected results
The selection rect should match the text rect .
Actual results
Selection rect is smaller than the text rect.

I also tried setting the height property from TextStyle to 1.0 but this leads to text overflowing from the bottom and the selection rect being bigger than the text box.

Code sample
Code sample
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: HomePage(),
    );
  }
}

class HomePage extends StatefulWidget {
  const HomePage({Key? key}) : super(key: key);

  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  late Offset itemPosition = const Offset(0, 0);

  late ScrollController _controller;

  List<double> positions = [];

  @override
  void initState() {
    _controller = ScrollController(); // Initializing ScrollController
    _controller.addListener(() {
      _scrollListener();
    });
    super.initState();
  }

  _scrollListener() {
    positions.clear();
    setState(() {});
  }

  @override
  Widget build(BuildContext context) {
    return const SelectionArea(
      child: Scaffold(
        body: Center(
          child: Text(
            "!12£%^&*(),./;'#[]{}:@~<>?",
            style: TextStyle(
                backgroundColor: Colors.black26, height: null, fontSize: 60),
          ),
        ),
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
[✓] Flutter (Channel master, 3.13.0-5.0.pre.21, on LMDE 5 (elsie) 5.10.0-23-amd64, locale en_GB.UTF-8)
    • Flutter version 3.13.0-5.0.pre.21 on channel master at /home/henryr/Dev/SDK/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 0df4496cdb (13 hours ago), 2023-07-17 11:24:49 -0700
    • Engine revision 09fe990ebf
    • Dart version 3.1.0 (build 3.1.0-317.0.dev)
    • DevTools version 2.25.0

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
    • Android SDK at /home/henryr/Android/Sdk
    • Platform android-33, build-tools 33.0.2
    • Java binary at: /home/henryr/Dev/SDK/android-studio/jbr/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop
    • Debian clang version 11.0.1-2
    • cmake version 3.18.4
    • ninja version 1.10.1
    • pkg-config version 0.29.2

[✓] Android Studio (version 2022.1)
    • Android Studio at /home/henryr/Dev/SDK/android-studio
    • Flutter plugin version 73.0.1
    • Dart plugin version 221.6103.1
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)

[✓] IntelliJ IDEA Community Edition (version 2023.1)
    • IntelliJ at /home/henryr/Dev/SDK/idea-IC-231.9161.38
    • Flutter plugin version 74.0.4
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] Connected device (2 available)
    • Linux (desktop) • linux  • linux-x64      • LMDE 5 (elsie) 5.10.0-23-amd64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 114.0.5735.198

[✓] Network resources
    • All expected network resources are available.

• No issues found!

I can reproduce the issue using the code sample provided in the original post. This seems like a regression on the master channel as on the stable & beta channels the height matches.
@whiskeyPeak, kindly file a new issue for this so it can be properly tracked.

stable & beta
master

flutter doctor -v
[✓] Flutter (Channel stable, 3.10.6, on macOS 13.4.1 22F770820d darwin-arm64, locale en-GB)
    • Flutter version 3.10.6 on channel stable at /Users/nexus/dev/sdks/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f468f3366c (5 days ago), 2023-07-12 15:19:05 -0700
    • Engine revision cdbeda788a
    • Dart version 3.0.6
    • DevTools version 2.23.1

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at /Users/nexus/Library/Android/sdk
    • Platform android-33, build-tools 33.0.0
    • Java binary at: /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/222.4459.24.2221.10121639/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
    • Xcode at /Applications/Xcode-14.3.0.app/Contents/Developer
    • Build 14E222b
    • CocoaPods version 1.12.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.2)
    • Android Studio at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/222.4459.24.2221.10121639/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] IntelliJ IDEA Ultimate Edition (version 2023.1.4)
    • IntelliJ at /Users/nexus/Applications/JetBrains Toolbox/IntelliJ IDEA Ultimate.app
    • Flutter plugin version 74.0.4
    • Dart plugin version 231.9161.14

[✓] IntelliJ IDEA Ultimate Edition (version 2023.1.3)
    • IntelliJ at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/231.9161.38/IntelliJ IDEA.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] IntelliJ IDEA Ultimate Edition (version 2023.1.4)
    • IntelliJ at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/231.9225.16/IntelliJ IDEA.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.80.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.68.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 13.4.1 22F770820d darwin-arm64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 114.0.5735.198

[✓] Network resources
    • All expected network resources are available.

• No issues found!

[!] Flutter (Channel master, 3.13.0-5.0.pre.37, on macOS 13.4.1 22F770820d darwin-arm64, locale en-GB)
    • Flutter version 3.13.0-5.0.pre.37 on channel master at /Users/nexus/dev/sdks/flutters
    ! Warning: `flutter` on your path resolves to /Users/nexus/dev/sdks/flutter/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/nexus/dev/sdks/flutters. Consider adding /Users/nexus/dev/sdks/flutters/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/nexus/dev/sdks/flutter/bin/dart, which is not inside your current Flutter SDK checkout at /Users/nexus/dev/sdks/flutters. Consider adding /Users/nexus/dev/sdks/flutters/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision e14dcf06c6 (4 hours ago), 2023-07-18 01:23:32 -0400
    • Engine revision 9d018f00d6
    • Dart version 3.1.0 (build 3.1.0-321.0.dev)
    • DevTools version 2.25.0
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at /Users/nexus/Library/Android/sdk
    • Platform android-33, build-tools 33.0.0
    • Java binary at: /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/222.4459.24.2221.10121639/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
    • Xcode at /Applications/Xcode-14.3.0.app/Contents/Developer
    • Build 14E222b
    • CocoaPods version 1.12.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.2)
    • Android Studio at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/222.4459.24.2221.10121639/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] IntelliJ IDEA Ultimate Edition (version 2023.1.3)
    • IntelliJ at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/231.9161.38/IntelliJ IDEA.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] IntelliJ IDEA Ultimate Edition (version 2023.1.4)
    • IntelliJ at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/231.9225.16/IntelliJ IDEA.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.80.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.68.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 13.4.1 22F770820d darwin-arm64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 114.0.5735.198

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

This behavior changed with the migration to Material 3 (see https://github.com/flutter/flutter/commit/157660af)

The selection renders with the old behavior if I remove the height argument from _M3Typography.englishLike.bodyMedium.

Those height values come from generated Material 3 tokens. It might be best to have the RenderParagraph incorporate the height property in how the text's bounds are determined.

For a quick temporary fix, you can set the height property in a Text's widget textStyle to null and inherit to false to not have it overridden.


[TE] onboard dataset with epoch time stamps

For datasets with epoch timestamps, the real dataset granularity and time unit granularity is usually different. By default, TE onboard it as a five-minute granularity metric. This can be configured in dataset configs.

How to configure it as other granularity like daily or hourly? Does preview work?


[🐞] NodeCstr is not a constructor

Describe the bug
I am running an astro site with a react island that is performing a search. In firefox, this code throws an error.

Reproduction
https://gis.utah.gov/products/sgid/sgid-index/
Steps to reproduce
Browse to the page and click in the input or browse to any other page in the website
Browser Info
Firefox 133.0.3
Additional Information
We have a report that the page does not work in firefox, but it is working in our version of firefox but this console error is the only issue we can see at the moment. This error is showing up on multiple pages. Just browsing the website it throws on every page load.

Thanks @gioboa for looking into it. We'll see if we can get more information from the person experiencing issues. In the mean time, why is this error thrown on every page view of our website? Is there an api difference in gecko vs v8?

@steveoh #606 will solve the problem :)


fix: publish command

Description
The $publisher->replace() method has been available since version 4.3.
Ref: https://codeigniter.com/user_guide/libraries/publisher.html#replace-string-file-array-replaces-bool
Checklist:

[x] Securely signed commits
[ ] Component(s) with PHPDoc blocks, only if necessary or adds value
[ ] Unit testing, with >80% coverage
[ ] User guide updated
[x] Conforms to style guide

Was this change to support framework < 4.3? Is all the rest really backwards-compatible that far? We've made a whole lot of changes and breaks since then...


Fix #95 - Defensively load plugins and conditional settings

Fixes: #95

This updates nautobot.extras.plugins.utils.load_plugins to only update
or extend INSTALLED_APPS and MIDDLEWARE if the plugins in question
haven't already been applied.
In my testing this appears to have alleviated the bug in plugins not
being correctly loaded within the WSGI application for both Gunicorn and
uWSGI.

Also updated the signature for load_plugins to just take an incoming settings object to increase usability.

I tested Gunicorn:
gunicorn --config ./gunicorn.py nautobot.core.wsgi

And uWSGI:
uwsgi --processes 5 --module nautobot.core.wsgi --ini ./uwsgi

And good to go with them successfully loading plugins without any issues and operating correctly.


Update Community Building Committee members

Questions to answer ❓
Background or context to help others understand the change.
We recently had some changes in the Community Building Committee. This PR updates the list of members.
I'm not sure that this needs a full steering council vote, but it would be good for @marthacryan and @rcthomas to approve in comments, publicly declaring their willingness to serve.
As part of this change, @SylvainCorlay stepped down to concentrate on running JupyterCon as the JupyterCon chair. We are so thankful for his service on the committee, and look forward to working with him on JupyterCon and other community activities.
A brief summary of the change.
What is the reason for this change?
Alternatives to making this change and other considerations.

The process ❗
The process for changing the governance pages is as follows:

Open a pull request in draft state. This triggers a discussion and iteration phase
for your proposed changes.
When you believe enough discussion has happened,
move the pull request to an active state. This triggers a vote.
During the voting phase, no substantive changes may be made to the pull request.
The Steering Council will vote, and at the end of voting the pull request is merged or closed.

The discussion phase is meant to gather input and multiple perspectives from the community.
Make sure that the community has had an opportunity to weigh in on
the change before calling a vote. A good rule of thumb is to ask several Steering Council
members if they believe that it is time for a vote, and to let at least one person review
the pull request for structural quality and typos.

Thanks, this looks good to me.

LGTM here, thanks!

Looks good, thanks!


Add base class for alluxio runtime exception

What changes are proposed in this pull request?
Add base class for alluxio run time exception. Get rid of BlockDoesNotExistException as a start point
Why are the changes needed?
better code quality
Does this PR introduce any user facing changes?

alluxio-bot, merge this please


Since ESPheom update I get an error: warning: 'esphome::climate::Climate::away' is deprecated: away is deprecated, use preset instead [-Wdeprecated-declarations]

Compiling /data/aircozolder/.pioenvs/aircozolder/libaf0/Hash/Hash.cpp.o
In file included from src/esphome/core/controller.h:29,
                 from src/esphome/components/api/api_server.h:4,
                 from src/esphome/components/api/api_connection.h:6,
                 from src/esphome.h:3,
                 from src/main.cpp:3:
src/esphome/components/climate/climate.h: In constructor 'esphome::climate::Climate::Climate()':
src/esphome/components/climate/climate.h:167:7: warning: 'esphome::climate::Climate::away' is deprecated: away is deprecated, use preset instead [-Wdeprecated-declarations]
  167 | class Climate : public EntityBase {
      |       ^~~~~~~
src/esphome/components/climate/climate.h:193:8: note: declared here
  193 |   bool away{false};
      |        ^~~~
src/esphome/components/climate/climate.h:167:7: warning: 'esphome::climate::Climate::away' is deprecated: away is deprecated, use preset instead [-Wdeprecated-declarations]
  167 | class Climate : public EntityBase {
      |       ^~~~~~~
src/esphome/components/climate/climate.h:193:8: note: declared here
  193 |   bool away{false};
      |        ^~~~
In file included from src/main.cpp:64:
src/mhi_ac_ctrl.h: In constructor 'MhiAcCtrl::MhiAcCtrl()':
src/mhi_ac_ctrl.h:8:7: note: synthesized method 'esphome::climate::Climate::Climate()' first required here
    8 | class MhiAcCtrl : public climate::Climate,
      |       ^~~~~~~~~
/config/esphome/aircozolder.yaml: In lambda function:
/config/esphome/aircozolder.yaml:65:40: note: synthesized method 'MhiAcCtrl::MhiAcCtrl()' first required here
   65 |       auto mhi_ac_ctrl = new MhiAcCtrl();
      |                                        ^
Compiling /data/aircozolder/.pioenvs/aircozolder/lib67b/ESP8266WiFi/BearSSLHelpers.cpp.o

Yeah getting the same message since the newer 2023 versions of ESPHome.

Any progress possible?

Does it still compile and run correctly? I've been holding off this update since I saw this issue logged.

I don't have these errors, is this still an issue?


Adding error message when entropy file cannot be opened

This should replace the previous pull request which erroneously included a .gitignore file.

Hi @bdenison99, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
We will now validate the agreement and then real humans will evaluate your PR.
TTYL, MSBOT;


example of consumer to receiver messaging

Hi, I'm still pretty new to Scala and am trying to get the cakesolutions akka client up and running.
I think I have got my (very) rough implementation connected to kafka, but am puzzled as to how to pass messages between consumer <--> receiver. My code is below.
I would be very grateful if anyone could possibly give me any pointers or examples on how to get consumer and receiver actors talking?
object eatKafka extends App {

  println("\n\n\n")
  // Create an Akka system
  println("\n\ncreating system...")
  val system = ActorSystem("VySystem")

  // create receiver
  println("\n\ncreating receiver...")
  val receiver = system.actorOf(Props[ReceiverActor], name = "receiver")

  // create cake kafka consumer
  println("\n\ncreating consumer...")
  val conf = ConfigFactory.load()

  //Construct the KafkaConsumerActor with Typesafe config in resources
  val cakeKConsumer = system.actorOf(
    KafkaConsumerActor.props(conf, new ByteArrayDeserializer(), new ByteArrayDeserializer(), receiver)
  )

  println("pass subscription details to cakeKConsumer")
  cakeKConsumer ! Subscribe.AutoPartition(List("impression")) //Subscribe.ManualOffset(Offsets(Map((new TopicPartition("impression", 0), 1))))

}

/////////////////////////////////////////////////////////////////////
// kafka consumer actor
class kConsumeCakeActor extends Actor {
  // https://github.com/cakesolutions/scala-kafka-client/blob/master/akka/src/main/scala/cakesolutions/kafka/akka/KafkaConsumerActor.scala
  println("\n\nIn consumer!!")
  override def receive = {
    case default => println("I am kConsumeCakeActor")
  }
}

/////////////////////////////////////////////////////////////////////
// receiver actor
class ReceiverActor extends Actor {
  // Extractor for ensuring type safe cast of records
  val recordsExt = ConsumerRecords.extractor[Int, ByteString]
  println("In receiver")
  override def receive: Receive = {
    case recordsExt(records) =>
      println("do something with records")
      //for (record <- records) println(record)
      sender() ! Confirm(records.offsets)

    case default => println("I am receiver!!")
  }
}

Sample output:
[info] Running eatKafka
[info]
[info]
[info]
[info]
[info]
[info]
[info] creating system...
[info]
[info]
[info] creating receiver...
[info]
[info]
[info] creating consumer...
[info] In receiver
[info] pass subscription details to cakeKConsumer

[info] [INFO] [08/24/2017 09:33:20.853] [VySystem-akka.actor.default-dispatcher-3] [akka://VySystem/user/$a] Subscribing in auto partition assignment mode to topics [impression].
[info] I am receiver!!
[info] [INFO] [08/24/2017 09:33:31.493] [VySystem-akka.actor.default-dispatcher-3] [akka://VySystem/user/$a] In bufferFull: records timed out while waiting for a confirmation.
[info] [INFO] [08/24/2017 09:33:31.493] [VySystem-akka.actor.default-dispatcher-3] [akka://VySystem/user/$a] In bufferFull: redelivering.
[info] I am receiver!!
[info] I am receiver!!

You are creating a KafkaConsumer actor with key type: ByteArray and value type ByteArray, but in your receiver actor you are matching key type: Int, value: ByteArray (ConsumerRecords.extractor[Int, ByteString]).  That is probably why its not matching the results.
Here is a working example of what you are trying to do: https://github.com/cakesolutions/scala-kafka-client/blob/master/examples/src/main/scala/cakesolutions/kafka/examples/ConsumerToProducer.scala

Thanks very much Simon. That's sorted it. The key was unset, so my experiments with null, etc were failing. the key was an empty Array[byte]. So the correct line was:
val recordsExt = ConsumerRecords.extractor[Array[Byte], Array[Byte]]

Just a quick question: Is it not advisable to use the cakesolutions scala-kafka-client-akka with a downstream worker router as demonstrated in the example pi calculation tutorial:
http://doc.akka.io/docs/akka/2.0.1/intro/getting-started-first-scala.html

Thats not usually a great idea, as kafka sends records in a batch to the receiver and they should be confirmed once all records are processed.  If you 'fan out' the messages to a number of workers, it is can be tricky if one of the workers fails.  Also message ordering is lost.
If you want to parralelise the processing of a topic, it is preferable to create multiple kafkaconsumers+receivers with the same groupId, and use Kafka's natural partitioning.

Many thanks for the info. Does Kafka Streams fanning out handle this better?


Add the nursery lint to the project

I wanted to try to enable the clippy::nursery lint -> these are the things i modified

Update:
It seems like everything works except one error which I couldn't find where it comes from:
➜  egui git:(add-clippy-nursery) ✗ cargo check --quiet -p egui_glow --all-features
error[E0277]: the trait bound `ActiveEventLoop: raw_window_handle::borrowed::HasDisplayHandle` is not satisfied
  --> crates/egui_glow/src/winit.rs:43:13
   |
43 |             event_loop,
   |             ^^^^^^^^^^ the trait `raw_window_handle::borrowed::HasDisplayHandle` is not implemented for `ActiveEventLoop`
   |
   = help: the following other types implement trait `raw_window_handle::borrowed::HasDisplayHandle`:
             raw_window_handle::borrowed::DisplayHandle<'a>
             &H
             &mut H
   = note: required for the cast from `&ActiveEventLoop` to `&dyn raw_window_handle::borrowed::HasDisplayHandle`

For more information about this error, try `rustc --explain E0277`.
error: could not compile `egui_glow` (lib) due to 1 previous error

Update: It seems like everything works except one error which I couldn't find where it comes from:

This bug is also on master. egui_glow is missing the winit/rwh_06 feature, so it does not build correctly on its own. It builds as part of eframe, because eframe enables the feature.
https://github.com/emilk/egui/blob/d856f7b3a58fc65a81ff9657f5c6e1ab462b7bb6/crates/eframe/Cargo.toml#L148
It should be just a matter of adding it to egui_glow as well, but I'm not sure under which conditions it should be enabled.

It should be just a matter of adding it to egui_glow as well, but I'm not sure under which conditions it should be enabled.

@YgorSouza can confirm  - added winit to egui-glow and it works properly!