andig

Results 2128 comments of andig

@mvertes the growing roots memory is a showstopper for us. Is there anything we could do/ look into to prevent this?

Looking at https://marc.vertes.org/yaegi-internals/ I see: > The memory management performed by the interpreter consists of creating a global frame at a new session (the top of the stack), populated with...

I've added a bit more logging and found that, when the server closes the connection, then: - the send on the (already closed) connection seems to succeed (not sure why...

To be more specific- since `readResultRetry` applies to retrying without closing the connection- we should probably do something like: ```go mb.logf("modbus: close connection and retry, because of %v", err) mb.close()...

I've just hit another instance- the infamous `connection reset by peer`/`broken pipe`: https://gosamples.dev/connection-reset-by-peer/. When this happens, reading the response will fail in `readResponse`: ```go if _, err = io.ReadFull(mb.conn, data[:tcpHeaderSize]);...

Here's the trimmed version I'll try validating: https://github.com/evcc-io/modbus/pull/14 ```go // Send sends data to server and ensures response length is greater than header length. func (mb *tcpTransporter) Send(aduRequest []byte) ([]byte,...

I have unfortunately lost the ability to push PRs when we've added the capability to share the connection for multiple clients for evcc. The change above is breaking but straightforward....

Think you‘ve commenged in the wrong repo ☝🏻

@antoineco thanks for the shared context, especially https://github.com/grid-x/modbus/commit/07ce43b97109f5ae583a6f661b47e592a0324b34. It seems that the simplistic "close the connection on error" approach I'm trying to take solves each of the linked issues, if...

Thats an evcc topic, not a library topic.