tls transport StoreProhibited exception when connection closed by server (IDFGH-7307)

Environment

Development Kit: ESP32-Wrover-Kit
Kit version: v3
Module or chip used: ESP32-WROVER-E
IDF version: v4.4.1
Build System: idf.py
Compiler version: xtensa-esp32-elf-gcc (crosstool-NG esp-2021r2-patch3) 8.4.0
Operating System: Linux
Using an IDE?: No
Power Supply: USB

Problem Description
Hi guys, I'm currently trying to bring up the azure-iot-middleware-freertos to connect the ESP32 to azure. I'm using tls sockets for the communication based on the esp32 example iot-middleware-freertos-samples
Once the server is closing the connection, the firmware crashes with the unhandled exception "StoreProhibited".
I'm using esp_transport_ssl_init() to initialize the context for the transaction.
esp_transport_connect and subsequent calls to esp_transport_read/esp_transport_write are successful as well, until the server closes the connection, then I get the exception on a call of esp_transport_read.
I've been tracing the issue back to transport.c, where in the function capture_tcp_transport_error the err_handle from the esp_transport_handle_t is used to save the error code of the transaction. However, the err_handle was never initialized and thus a write into a memory region referenced by a NULL pointer is attempted, which causes the problem. I'm writing this issue since it makes the impression onto me, that esp_transport_ssl_init does not initialize the context properly, since the esp_transport_init function called by the esp_transport_ssl_init function never initializes the underlying transport foundation which is referenced by the capture_tcp_transport_error function.
Steps to reproduce
You can try to run the example from iot-middleware-freertos-samples repository, but setting it up is quite a hassle.
Debug Logs
I (10454) MQTT: Packet received. ReceivedBytes=2.
I (10454) MQTT: CONNACK session present bit not set.
I (10454) MQTT: Connection accepted.
I (10474) MQTT: Received MQTT CONNACK successfully from broker.
I (10474) MQTT: MQTT connection established with the broker.
I (10484) IOT: AzureIoTProvisioning established an MQTT connection with global.azure-devices-provisioning.net
I (14484) IOT: AzureIoTProvisioning attempting to subscribe to the MQTT topic: devices/+/messages/devicebound/#
I (14654) MQTT: Packet received. ReceivedBytes=3.
I (18964) MQTT: Packet received. ReceivedBytes=192.
I (18964) MQTT: De-serialized incoming PUBLISH packet: DeserializerResult=MQTTSuccess.
I (18964) MQTT: State record updated. New state=MQTTPublishDone.
Guru Meditation Error: Core  1 panic'ed (StoreProhibited). Exception was unhandled.

Core  1 register dump:
PC      : 0x4022d1e3  PS      : 0x00060e30  A0      : 0x8022da42  A1      : 0x3fff0710
0x4022d1e3: capture_tcp_transport_error at /home/marc/esp/esp-idf_4_4/components/tcp_transport/transport.c:332

A2      : 0x3fff2698  A3      : 0x00008008  A4      : 0x00000001  A5      : 0x3f41212e
A6      : 0x00000001  A7      : 0x0000000f  A8      : 0x8022d1b4  A9      : 0x3fff06e0
A10     : 0x00000000  A11     : 0x3287c132  A12     : 0x3287c132  A13     : 0x3fff2740
A14     : 0x00000001  A15     : 0x00000000  SAR     : 0x0000000a  EXCCAUSE: 0x0000001d
EXCVADDR: 0x00000000  LBEG    : 0x4000c2e0  LEND    : 0x4000c2f6  LCOUNT  : 0xffffffff

Backtrace:0x4022d1e0:0x3fff07100x4022da3f:0x3fff0740 0x4022cfb2:0x3fff0780 0x4010851f:0x3fff07b0 0x4010c3cd:0x3fff07f0 0x4010ab5d:0x3fff0820 0x4010ac9c:0x3fff0850 0x40109574:0x3fff0880 0x40108f6e:0x3fff08b0 0x40109264:0x3fff08f0 0x401002be:0x3fff0920 0x401003f1:0x3fff0a90 0x4010041f:0x3fff0ac0 0x40287ff9:0x3fff0af0 0x400d3630:0x3fff0b10 0x40096402:0x3fff0b40
0x4022d1e0: capture_tcp_transport_error at /home/marc/esp/esp-idf_4_4/components/tcp_transport/transport.c:332

0x4022da3f: ssl_read at /home/marc/esp/esp-idf_4_4/components/tcp_transport/transport_ssl.c:241

0x4022cfb2: esp_transport_read at /home/marc/esp/esp-idf_4_4/components/tcp_transport/transport.c:190

Hi @MarcGeh
Thanks for the report!
This is a bug in tcp_transport component, the reason why it's not initialized is probably that the project uses the component without a list (internal container for multiple transport layers). This scenario is supported and should work properly, but it's not so widely used. Internally we use the transport only in lists, for example:
https://github.com/espressif/esp-idf/blob/8c8f700c1df05d8287316c78b98b940e119f900c/components/esp_websocket_client/esp_websocket_client.c#L332-L339
Sorry for the inconvenience, will fix it soon (similar issue has been fixed recently in e794786c748, again partly initialized transport, using one layer separately)

Hi @david-cermak thanks for the fast response. I need to use websockets in the future anyways, so I might switch over right away to avoid this issue.

Is there a workaround for this issue. Alle esp32 examples seems to be based on the same initialization using TLS. I am not sure how to fix this.

Thanks a lot for the info.
I am new to this environment and are not exactly sure how to do it.  What is in the list, how to register it etc.

Thanks again :-)
My problem is am an not using it directly, but through the "Azure IoT middleware for freertos" layer.
So it is deep into some code I have not deep insight into. And of course I need to get it running "yesterday" ;-(

@tmaltesen Unfortunately you will not make this work unless you are willing to make some minor changes to the transport_tls_esp32.c file. If this is an option for you I can guide you through this.

This is an option, absolutely 😊
Fra: Marc Geh @.>
Sendt: 23. juni 2022 17:34
Til: espressif/esp-idf @.>
Cc: Thomas Maltesen @.>; Mention @.>
Emne: Re: [espressif/esp-idf] tls transport StoreProhibited exception when connection closed by server (IDFGH-7307) (Issue #8895)
@tmaltesenhttps://github.com/tmaltesen Unfortunately you will not make this work unless you are willing to make some minor changes to the transport_tls_esp32.chttps://github.com/Azure-Samples/iot-middleware-freertos-samples/blob/main/demos/projects/ESPRESSIF/esp32/components/sample-azure-iot/transport_tls_esp32.c file. If this is an option for you I can guide you through this.
—
Reply to this email directly, view it on GitHubhttps://github.com/espressif/esp-idf/issues/8895#issuecomment-1164563750, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEBLZUO4VNU57YIY6NNB5KTVQR7XZANCNFSM5VBVLNSQ.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>

Very much appreciated if you have a workaround that I am able to implement.
The esp-idf is completely new to me but I’m experienced C/C++ embedded programmer.
But still struggling a bit to learn the build environment.
/Thomas
Fra: Marc Geh @.>
Sendt: 23. juni 2022 17:34
Til: espressif/esp-idf @.>
Cc: Thomas Maltesen @.>; Mention @.>
Emne: Re: [espressif/esp-idf] tls transport StoreProhibited exception when connection closed by server (IDFGH-7307) (Issue #8895)
@tmaltesenhttps://github.com/tmaltesen Unfortunately you will not make this work unless you are willing to make some minor changes to the transport_tls_esp32.chttps://github.com/Azure-Samples/iot-middleware-freertos-samples/blob/main/demos/projects/ESPRESSIF/esp32/components/sample-azure-iot/transport_tls_esp32.c file. If this is an option for you I can guide you through this.
—
Reply to this email directly, view it on GitHubhttps://github.com/espressif/esp-idf/issues/8895#issuecomment-1164563750, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEBLZUO4VNU57YIY6NNB5KTVQR7XZANCNFSM5VBVLNSQ.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>

Change the NetworkContext definition to have an esp_transport_list_handle_t and a scheme name instead of the esp_transport_handle_t so it looks like this:
struct NetworkContext {
  const char* scheme;
  esp_transport_list_handle_t xTransportList;
  uint32_t ulReceiveTimeoutMs;
  uint32_t ulSendTimeoutMs;
};

Now in each function where pNetworkContext->xTransport is used, replace it by a local variable initialized like this:
  esp_transport_handle_t xTransport = esp_transport_list_get_transport(pNetworkContext->xTransportList, pNetworkContext->scheme);
  if (xTransport == NULL) {
    ESP_LOGE(TAG, "Failed to get transport handle for scheme %s", pNetworkContext->scheme);
    return eTLSTransportInvalidParameter;
  }

You still have to properly initialize the network struct and hand it over to the IoT client as part of the AzureIoTTransportInterface_t. My initialization of it looks e.g. like this:
  memset(&network_context_, 0, sizeof(NetworkContext_t));
  network_context_.xTransportList = esp_transport_list_init();
  network_context_.scheme = "_mqtt";
  if (network_context_.xTransportList == NULL) {
    ESP_LOGE(TAG, "Failed to create transport list");
  } else {
    esp_transport_handle_t mqtt = esp_transport_ssl_init();
    if (mqtt == NULL) {
      ESP_LOGE(TAG, "Failed to create transport handle");
    } else {
      esp_transport_list_add(network_context_.xTransportList, mqtt, network_context_.scheme);
    }
  }

Keep in mind that in the original example the call to esp_transport_ssl_init() was inside the TLS_Socket_Connect function. Now the initialization is handled outside of that module, so you have to take care to also tear it down once you are done with it.
For completeness, this is how your functions inside transport_tls_esp32.c should look like:
/*-----------------------------------------------------------*/

TlsTransportStatus_t TLS_Socket_Connect(NetworkContext_t *pNetworkContext, const char *pHostName, uint16_t usPort,
                                        const NetworkCredentials_t *pNetworkCredentials, uint32_t ulReceiveTimeoutMs, uint32_t ulSendTimeoutMs) {
  TlsTransportStatus_t xReturnStatus = eTLSTransportSuccess;

  if ((pNetworkContext == NULL) || (pHostName == NULL) || (pNetworkCredentials == NULL)) {
    ESP_LOGE(TAG,
             "Invalid input parameter(s): Arguments cannot be NULL. pNetworkContext=%p, "
             "pHostName=%p, pNetworkCredentials=%p.",
             pNetworkContext, pHostName, pNetworkCredentials);
    return eTLSTransportInvalidParameter;
  }

  esp_transport_handle_t xTransport = esp_transport_list_get_transport(pNetworkContext->xTransportList, pNetworkContext->scheme);
  if (xTransport == NULL) {
    ESP_LOGE(TAG, "Failed to get transport handle for scheme %s", pNetworkContext->scheme);
    return eTLSTransportInvalidParameter;
  }
  pNetworkContext->ulReceiveTimeoutMs = ulReceiveTimeoutMs;
  pNetworkContext->ulSendTimeoutMs = ulSendTimeoutMs;
  if (pNetworkCredentials->ppcAlpnProtos) {
    esp_transport_ssl_set_alpn_protocol(xTransport, pNetworkCredentials->ppcAlpnProtos);
  }

  if (pNetworkCredentials->xDisableSni) {
    esp_transport_ssl_skip_common_name_check(xTransport);
  }

  if (pNetworkCredentials->pucRootCa) {
    esp_transport_ssl_set_cert_data(xTransport, pNetworkCredentials->pucRootCa, strlen(pNetworkCredentials->pucRootCa));
  }

  if (pNetworkCredentials->pucClientCert) {
    esp_transport_ssl_set_client_cert_data(xTransport, pNetworkCredentials->pucClientCert, strlen(pNetworkCredentials->pucClientCert));
  }

  if (pNetworkCredentials->pucPrivateKey) {
    esp_transport_ssl_set_client_key_data(xTransport, pNetworkCredentials->pucPrivateKey, strlen(pNetworkCredentials->pucPrivateKey));
  }

  if (esp_transport_connect(xTransport, pHostName, usPort, 10000) < 0) {
    ESP_LOGE(TAG, "Failed establishing TLS connection (esp_transport_connect failed)");
    xReturnStatus = eTLSTransportConnectFailure;
  } else {
    xReturnStatus = eTLSTransportSuccess;
  }

  /* Clean up on failure. */
  if (xReturnStatus != eTLSTransportSuccess) {
    if (pNetworkContext != NULL) {
      esp_transport_close(xTransport);
    }
  } else {
    ESP_LOGI(TAG, "(Network connection %p) Connection to %s established.", pNetworkContext, pHostName);
  }

  return xReturnStatus;
}
/*-----------------------------------------------------------*/

void TLS_Socket_Disconnect(NetworkContext_t *pNetworkContext) {
  if ((pNetworkContext == NULL)) {
    ESP_LOGE(TAG, "Invalid input parameter(s): Arguments cannot be NULL. pNetworkContext=%p.", pNetworkContext);
    return;
  }

  esp_transport_handle_t xTransport = esp_transport_list_get_transport(pNetworkContext->xTransportList, pNetworkContext->scheme);
  if (xTransport == NULL) {
    ESP_LOGE(TAG, "Failed to get transport handle for scheme %s", pNetworkContext->scheme);
    return;
  }

  /* Attempting to terminate TLS connection. */
  esp_transport_close(xTransport);
}
/*-----------------------------------------------------------*/

int32_t TLS_Socket_Recv(NetworkContext_t *pNetworkContext, void *pBuffer, size_t xBytesToRecv) {
  int32_t tlsStatus = 0;

  if ((pNetworkContext == NULL) || (pBuffer == NULL) || (xBytesToRecv == 0)) {
    ESP_LOGE(TAG,
             "Invalid input parameter(s): Arguments cannot be NULL. pNetworkContext=%p, "
             "pBuffer=%p, xBytesToRecv=%d.",
             pNetworkContext, pBuffer, xBytesToRecv);
    return eTLSTransportInvalidParameter;
  }

  esp_transport_handle_t xTransport = esp_transport_list_get_transport(pNetworkContext->xTransportList, pNetworkContext->scheme);
  if (xTransport == NULL) {
    ESP_LOGE(TAG, "Failed to get transport handle for scheme %s", pNetworkContext->scheme);
    return eTLSTransportInvalidParameter;
  }

  tlsStatus = esp_transport_read(xTransport, pBuffer, xBytesToRecv, pNetworkContext->ulReceiveTimeoutMs);
  if (tlsStatus < 0) {
    ESP_LOGE(TAG, "Reading failed, errno= %d", errno);
    return ESP_FAIL;
  }

  return tlsStatus;
}
/*-----------------------------------------------------------*/

int32_t TLS_Socket_Send(NetworkContext_t *pNetworkContext, const void *pBuffer, size_t xBytesToSend) {
  int32_t tlsStatus = 0;

  if ((pNetworkContext == NULL) || (pBuffer == NULL) || (xBytesToSend == 0)) {
    ESP_LOGE(TAG,
             "Invalid input parameter(s): Arguments cannot be NULL. pNetworkContext=%p, "
             "pBuffer=%p, xBytesToSend=%d.",
             pNetworkContext, pBuffer, xBytesToSend);
    return eTLSTransportInvalidParameter;
  }

  esp_transport_handle_t xTransport = esp_transport_list_get_transport(pNetworkContext->xTransportList, pNetworkContext->scheme);
  if (xTransport == NULL) {
    ESP_LOGE(TAG, "Failed to get transport handle for scheme %s", pNetworkContext->scheme);
    return eTLSTransportInvalidParameter;
  }

  tlsStatus = esp_transport_write(xTransport, pBuffer, xBytesToSend, pNetworkContext->ulSendTimeoutMs);
  if (tlsStatus < 0) {
    ESP_LOGE(TAG, "Writing failed, errno= %d", errno);
    return ESP_FAIL;
  }

  return tlsStatus;
}
/*-----------------------------------------------------------*/

So great, a single clearifcations about initialization and cleanup.
The initialization code:
memset(&network_context_, 0, sizeof(NetworkContext_t));
network_context_.xTransportList = esp_transport_list_init();
network_context_.scheme = "_mqtt";
…..
Did you put that in the prvConnectToServerWithBackoffRetries or even higher into the prvAzureTask. It makes sense in the main AzureTask since the destroy of the transport list can be done when /if the task loop is exited.
/Thomas
Fra: Marc Geh @.>
Sendt: 23. juni 2022 18:05
Til: espressif/esp-idf @.>
Cc: Thomas Maltesen @.>; Mention @.>
Emne: Re: [espressif/esp-idf] tls transport StoreProhibited exception when connection closed by server (IDFGH-7307) (Issue #8895)
Change the NetworkContext definition to have an esp_transport_list_handle_t and a scheme name instead of the esp_transport_handle_thttps://github.com/Azure-Samples/iot-middleware-freertos-samples/blob/154ba9fbd280b855c6e49e6e9c9ee34c35705c0f/demos/projects/ESPRESSIF/esp32/components/sample-azure-iot/transport_tls_esp32.c#L47 so it looks like this:
struct NetworkContext {
const char* scheme;
esp_transport_list_handle_t xTransportList;
uint32_t ulReceiveTimeoutMs;
uint32_t ulSendTimeoutMs;
};
Now in each function where pNetworkContext->xTransport is used, replace it by a local variable initialized like this:
esp_transport_handle_t xTransport = esp_transport_list_get_transport(pNetworkContext->xTransportList, pNetworkContext->scheme);
if (xTransport == NULL) {
ESP_LOGE(TAG, "Failed to get transport handle for scheme %s", pNetworkContext->scheme);

return eTLSTransportInvalidParameter;

}
You still have to properly initialize the network struct and hand it over to the IoT client as part of the AzureIoTTransportInterface_t. My initialization of it looks e.g. like this:
memset(&network_context_, 0, sizeof(NetworkContext_t));
network_context_.xTransportList = esp_transport_list_init();
network_context_.scheme = "_mqtt";
if (network_context_.xTransportList == NULL) {
ESP_LOGE(TAG, "Failed to create transport list");

} else {
esp_transport_handle_t mqtt = esp_transport_ssl_init();

if (mqtt == NULL) {

  ESP_LOGE(TAG, "Failed to create transport handle");

} else {

  esp_transport_list_add(network_context_.xTransportList, mqtt, network_context_.scheme);

}

}
Keep in mind that in the original example the call to esp_transport_ssl_init() was inside the TLS_Socket_Connect function. Now the initialization is handled outside of that module, so you have to take care to also tear it down once you are done with it.
For completeness, this is how your functions inside transport_tls_esp32.c should look like:
/-----------------------------------------------------------/
TlsTransportStatus_t TLS_Socket_Connect(NetworkContext_t *pNetworkContext, const char *pHostName, uint16_t usPort,
                                    const NetworkCredentials_t *pNetworkCredentials, uint32_t ulReceiveTimeoutMs, uint32_t ulSendTimeoutMs) {

TlsTransportStatus_t xReturnStatus = eTLSTransportSuccess;
if ((pNetworkContext == NULL) || (pHostName == NULL) || (pNetworkCredentials == NULL)) {
ESP_LOGE(TAG,

         "Invalid input parameter(s): Arguments cannot be NULL. pNetworkContext=%p, "

         "pHostName=%p, pNetworkCredentials=%p.",

         pNetworkContext, pHostName, pNetworkCredentials);

return eTLSTransportInvalidParameter;

}
esp_transport_handle_t xTransport = esp_transport_list_get_transport(pNetworkContext->xTransportList, pNetworkContext->scheme);
if (xTransport == NULL) {
ESP_LOGE(TAG, "Failed to get transport handle for scheme %s", pNetworkContext->scheme);

return eTLSTransportInvalidParameter;

}
pNetworkContext->ulReceiveTimeoutMs = ulReceiveTimeoutMs;
pNetworkContext->ulSendTimeoutMs = ulSendTimeoutMs;
if (pNetworkCredentials->ppcAlpnProtos) {
esp_transport_ssl_set_alpn_protocol(xTransport, pNetworkCredentials->ppcAlpnProtos);

}
if (pNetworkCredentials->xDisableSni) {
esp_transport_ssl_skip_common_name_check(xTransport);

}
if (pNetworkCredentials->pucRootCa) {
esp_transport_ssl_set_cert_data(xTransport, pNetworkCredentials->pucRootCa, strlen(pNetworkCredentials->pucRootCa));

}
if (pNetworkCredentials->pucClientCert) {
esp_transport_ssl_set_client_cert_data(xTransport, pNetworkCredentials->pucClientCert, strlen(pNetworkCredentials->pucClientCert));

}
if (pNetworkCredentials->pucPrivateKey) {
esp_transport_ssl_set_client_key_data(xTransport, pNetworkCredentials->pucPrivateKey, strlen(pNetworkCredentials->pucPrivateKey));

}
if (esp_transport_connect(xTransport, pHostName, usPort, 10000) < 0) {
ESP_LOGE(TAG, "Failed establishing TLS connection (esp_transport_connect failed)");

xReturnStatus = eTLSTransportConnectFailure;

} else {
xReturnStatus = eTLSTransportSuccess;

}
/* Clean up on failure. */
if (xReturnStatus != eTLSTransportSuccess) {
if (pNetworkContext != NULL) {

  esp_transport_close(xTransport);

}

} else {
ESP_LOGI(TAG, "(Network connection %p) Connection to %s established.", pNetworkContext, pHostName);

}
return xReturnStatus;
}
/-----------------------------------------------------------/
void TLS_Socket_Disconnect(NetworkContext_t *pNetworkContext) {
if ((pNetworkContext == NULL)) {
ESP_LOGE(TAG, "Invalid input parameter(s): Arguments cannot be NULL. pNetworkContext=%p.", pNetworkContext);

return;

}
esp_transport_handle_t xTransport = esp_transport_list_get_transport(pNetworkContext->xTransportList, pNetworkContext->scheme);
if (xTransport == NULL) {
ESP_LOGE(TAG, "Failed to get transport handle for scheme %s", pNetworkContext->scheme);

return;

}
/* Attempting to terminate TLS connection. */
esp_transport_close(xTransport);
}
/-----------------------------------------------------------/
int32_t TLS_Socket_Recv(NetworkContext_t *pNetworkContext, void *pBuffer, size_t xBytesToRecv) {
int32_t tlsStatus = 0;
if ((pNetworkContext == NULL) || (pBuffer == NULL) || (xBytesToRecv == 0)) {
ESP_LOGE(TAG,

         "Invalid input parameter(s): Arguments cannot be NULL. pNetworkContext=%p, "

         "pBuffer=%p, xBytesToRecv=%d.",

         pNetworkContext, pBuffer, xBytesToRecv);

return eTLSTransportInvalidParameter;

}
esp_transport_handle_t xTransport = esp_transport_list_get_transport(pNetworkContext->xTransportList, pNetworkContext->scheme);
if (xTransport == NULL) {
ESP_LOGE(TAG, "Failed to get transport handle for scheme %s", pNetworkContext->scheme);

return eTLSTransportInvalidParameter;

}
tlsStatus = esp_transport_read(xTransport, pBuffer, xBytesToRecv, pNetworkContext->ulReceiveTimeoutMs);
if (tlsStatus < 0) {
ESP_LOGE(TAG, "Reading failed, errno= %d", errno);

return ESP_FAIL;

}
return tlsStatus;
}
/-----------------------------------------------------------/
int32_t TLS_Socket_Send(NetworkContext_t *pNetworkContext, const void *pBuffer, size_t xBytesToSend) {
int32_t tlsStatus = 0;
if ((pNetworkContext == NULL) || (pBuffer == NULL) || (xBytesToSend == 0)) {
ESP_LOGE(TAG,

         "Invalid input parameter(s): Arguments cannot be NULL. pNetworkContext=%p, "

         "pBuffer=%p, xBytesToSend=%d.",

         pNetworkContext, pBuffer, xBytesToSend);

return eTLSTransportInvalidParameter;

}
esp_transport_handle_t xTransport = esp_transport_list_get_transport(pNetworkContext->xTransportList, pNetworkContext->scheme);
if (xTransport == NULL) {
ESP_LOGE(TAG, "Failed to get transport handle for scheme %s", pNetworkContext->scheme);

return eTLSTransportInvalidParameter;

}
tlsStatus = esp_transport_write(xTransport, pBuffer, xBytesToSend, pNetworkContext->ulSendTimeoutMs);
if (tlsStatus < 0) {
ESP_LOGE(TAG, "Writing failed, errno= %d", errno);

return ESP_FAIL;

}
return tlsStatus;
}
/-----------------------------------------------------------/
—
Reply to this email directly, view it on GitHubhttps://github.com/espressif/esp-idf/issues/8895#issuecomment-1164600779, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEBLZUIMENYIAUCQ5PEZHGTVQSDLLANCNFSM5VBVLNSQ.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>

Make it on a as high as possible layer, since it is actually encouraged to reuse the same handle for as long as possible.

Great so much thank you – it seems to work.
Now the IoT loop iteration in the demo is continuing to run.
So it disconnects and connects again without crashing.
/Thomas
Fra: Marc Geh @.>
Sendt: 23. juni 2022 18:41
Til: espressif/esp-idf @.>
Cc: Thomas Maltesen @.>; Mention @.>
Emne: Re: [espressif/esp-idf] tls transport StoreProhibited exception when connection closed by server (IDFGH-7307) (Issue #8895)
Make it on a as high as possible layer, since it is actually encouraged to reuse the same handle for as long as possible.
—
Reply to this email directly, view it on GitHubhttps://github.com/espressif/esp-idf/issues/8895#issuecomment-1164637358, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEBLZUPRICBDMDUVUDKTS6LVQSHSRANCNFSM5VBVLNSQ.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>


Fails with "Instrumentation tests require a valid test-runner-class defined." after upgrading to v21.01.0

Describe the bug

A clear and concise description of what the bug is.

I got Instrumentation tests require a valid test-runner-class defined. error when I run flank run android after upgrading to v21.01.0:
The documentation says:

  ### Instrumentation Test Runner Class
  ## The fully-qualified Java class name of the instrumentation test runner
  ## (default: the last name extracted from the APK manifest).
  # test-runner-class: com.foo.TestRunner

test-runner-class is not required but, I got the error.
Is the documentation is wrong?
To Reproduce

Steps to reproduce the behavior:

Set gcloud.type: instrumentation to your flank.yml.
Run flank run android.
Flank exits with Instrumentation tests require a valid test-runner-class defined. error.

Expected behavior

A clear and concise description of what you expected to happen.

No errors.
Details (please complete the following information):

Have you tested on the latest Flank snapshot?
Post the output of  flank --version.

version: v21.01.0
revision: 66cff410ff585beffba5f150799b3f77b7065dfb

My flank.yml:
gcloud:
  type: instrumentation
  app: # [REDACTED]
  test: # [REDACTED]
  device:
    - model: walleye
      version: 28
      locale: en_US
      orientation: portrait
  environment-variables:
    timeout_msec: 20000
    coverage: true
    coverageFile: /sdcard/coverage.ec
    clearPackageData: true
  use-orchestrator: false
  directories-to-pull:
    - /sdcard/
  timeout: 10m

flank:
  max-test-shards: 8
  shard-time: 50
  smart-flank-gcs-path: # [REDACTED]
  test-targets-always-run:
    - class # [REDACTED]
  files-to-download:
    - .*/sdcard/[^/]+\.ec$

Additional context

Add any other context about the problem here.

This issue did not happen with v20.09.3.
Seems like this issue was included at https://github.com/Flank/flank/pull/1230.

@kubode
Thanks for reporting it! Try without type: instrumentation (just remove/comment in config file). Yet, it's a workaround and needs to be fixed :)

@kubode
Thanks for reporting it! Try without type: instrumentation (just remove/comment in config file). Yet, it's a workaround and needs to be fixed :)


Improve terminating callbacks visibility

Code using something like dispatch(function () { ... })->afterResponse() did not show up in the performance traces. Even though the user wouldn't notice the impact on the response time I feel like we should still provide insight in it.
In another PR I'm working on I'll try to give better context on where the request actually ended (response sent) and where the terminating timeframe begins etc., coming soon :tm:
Before:

After (notice the "new" queue.process span):

@diogogomeswww can you eloborate why not? What is the downside for you?

We track the performance of some endpoints, and we want to track the performance through the users perspective.
Hence we are sending some "work" to be dispatched after the response.
Does that make sense?

Having a config to opt-out of this seems reasonable to me. Our of curiosity, do you exclusively use blade templates or other SSR technologies? I would assume to measure performance from a user-perspective from the FE side.

We have API Endpoints that need to be fast.
And all work on those API Endpoints that is not needed to return the response to the user, is done using the  dispatchAfterResponse.
Please give me a thumbs up and I will do the PR to add a config variable to include or exclude the dispatchAfterResponse in the performance trace.


Add AutoConfigureNormalMaps

The lack of a value for the Author property wasn’t intentional. I’ll try to be more meticulous about the mod development and upload process in the future.


It'd be nice to see config errors

When running rubocop manually for one of my projects I get an error:
... unrecognized parameter AllCops:Style/CaseIndentation ...

Which would have made debugging what was happening in the plugin much easier to figure out. I was frustrated because I kept getting a problem in one of my files but it seems that my config file was causing the problem. It would have been nice to get an alert for that.

Apparently printed to STDERR in newer RuboCop versions:
Warning: unrecognized cop Style/CaseIndentation found in /.../.rubocop.yml`

Fixed by 602e0dff09989c512f91979d37e3d66b1606989e - not released yet. Probably fragile.


MultiSplitPane should not block content area touches

Starting to use vis-ui for a custom editor for our game - really liking it so far.
This commit fixes an issue where the MultiSplitPane was grabbing touches inside the content area and blocking access to other listeners behind it. This adjusts the listener so that it only handles touches that start on the handles.

Also fixing an issue where the ColorPicker custom draggable elements do not function when inside a UI hierarchy with other Touchable elements. The ColorPicker elements should be as touchable as the other UI elements inside the ColorPicker, like the text fields - since that is the primary way of interacting with them.


interested clients/property parameter does not accept multiple arguments

For the Add and Edit commands for both clients and properties, the interested property/client parameter does not accept multiple arguments (ie it does not work like adding/editing tags)

Closed by https://github.com/AY2223S1-CS2103-W14-1/tp/pull/225


Update Blog “social-media-framings-of-syrian-immigration-to-turkey”

Automatically generated by Netlify CMS

👷 Deploy Preview for koytak processing.

Name
Link

🔨 Latest commit
029d00f3d2a774a8a3a426ad206f5801a8204c78

🔍 Latest deploy log
https://app.netlify.com/sites/koytak/deploys/653741f2a8344e00083c4d6f


dr.dk podcast

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm reporting that yt-dlp is broken on a supported site
[X] I've verified that I'm running yt-dlp version 2023.03.04 (update instructions) or later (specify commit)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched known issues and the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue
[X] I've read about sharing account credentials and I'm willing to share it if required

Region
Denmark
Provide a description that is worded well enough to be understood
Download of podcast fails:
ERROR: [drtv] udsyn-17: Unable to extract data; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[ ] If using API, add 'verbose': True to YoutubeDL params instead
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
$ yt-dlp -vU https://www.dr.dk/lyd/p1/orientering/udsyn-17
[debug] Command-line config: ['-vU', 'https://www.dr.dk/lyd/p1/orientering/udsyn-17']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>[392389b7d] (zip)
[debug] Python 3.10.6 (CPython x86_64 64bit) - Linux-5.15.0-70-generic-x86_64-with-glibc2.35 (OpenSSL 3.0.2 15 Mar 2022, glibc 2.35)
[debug] exe versions: ffmpeg 4.4.2 (setts), ffprobe 4.4.2, rtmpdump 2.4
[debug] Optional libraries: Cryptodome-3.11.0, brotli-1.0.9, certifi-2020.06.20, mutagen-1.45.1, pyxattr-0.7.2, secretstorage-3.3.1, sqlite3-2.6.0, websockets-9.1
[debug] Proxy map: {}
[debug] Loaded 1786 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Available version<EMAIL_ADDRESS>Current version<EMAIL_ADDRESS>Current Build Hash: 91cad9f121c1f6f0a81b747415c46ecba0ff331ed38cc6433040b4ac7b6e15ca
yt-dlp is up to date<EMAIL_ADDRESS>[drtv] Extracting URL: https://www.dr.dk/lyd/p1/orientering/udsyn-17
[drtv] udsyn-17: Downloading webpage
ERROR: [drtv] udsyn-17: Unable to extract data; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
  File "/usr/local/bin/yt-dlp/yt_dlp/extractor/common.py", line 694, in extract
    ie_result = self._real_extract(url)
  File "/usr/local/bin/yt-dlp/yt_dlp/extractor/drtv.py", line 174, in _real_extract
    self._search_regex(
  File "/usr/local/bin/yt-dlp/yt_dlp/extractor/common.py", line 1242, in _search_regex
    raise RegexNotFoundError('Unable to extract %s' % _name)

The debug output says:
  File "/usr/local/bin/yt-dlp/yt_dlp/extractor/drtv.py", line 174, in _real_extract

This podcast is not from drtv, but from drlyd (audio).

This was fixed by 9a06b7b1891b48cebbe275652ae8025a36d97d97
run yt-dlp --update-to nightly and try again


Added UI to delete bots from bots list

Fix for #619
============
Hovering over an entry in the My Bots list will now show a minus button that can be clicked to delete the entry (this will not delete the corresponding .bot file)
Note: Still needs final design specs, but everything is wired up. Might need to add a confirmation dialog.

Pull Request Test Coverage Report for Build 99

8 of 15 (53.33%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.03%) to 43.415%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

packages/app/main/src/botHelpers.ts
8
15
53.33%

Totals

Change from base Build 96:
0.03%

Covered Lines:
2587

Relevant Lines:
4931

💛  - Coveralls


django 1.4.8  No module named urllib.parse

i just installed your library and got the above error, it is related to the following lines:
from django.utils.six.moves.urllib.parse import urlencode
from django.utils.six.moves.urllib.error import URLError
from django.utils.six.moves.urllib.request import (
ProxyHandler,
Request,
urlopen,
build_opener,
install_opener
)
Can you fix this to support django 1.4.x versions?

Hi, django 1.4 is not supported because it is also unsupported by the django developers itself


EFUSE: Cannot partially write to efuse (IDFGH-1547)

I'm currently trying to figure out efuse and my understanding is that once a bit has been written to it can't be erased. For some reason though after only writing '0x01' to offset 0 of efuse, I can't write to any other byte in the block.
Command used to write to efuse:
espefuse.py -p ~/dev/cu.valve3 burn_block_data --offset 0 BLK3 test.bin
No other offset is writable now.
Python code used to generate test.bin:
import os
import binascii
import argparse

hex_list = []
os.system('touch test.bin')

hex_list.append('\x01')

with open('test.bin', 'w') as output_file:
    for el in hex_list:
        output_file.write(el)

Efuse Summary:
EFUSE_NAME             Description = [Meaningful Value] [Readable/Writeable] (Hex Value)
----------------------------------------------------------------------------------------
Security fuses:
FLASH_CRYPT_CNT        Flash encryption mode counter                     = 0 R/W (0x0)
FLASH_CRYPT_CONFIG     Flash encryption config (key tweak bits)          = 0 R/W (0x0)
CONSOLE_DEBUG_DISABLE  Disable ROM BASIC interpreter fallback            = 1 R/W (0x1)
ABS_DONE_0             secure boot enabled for bootloader                = 0 R/W (0x0)
ABS_DONE_1             secure boot abstract 1 locked                     = 0 R/W (0x0)
JTAG_DISABLE           Disable JTAG                                      = 0 R/W (0x0)
DISABLE_DL_ENCRYPT     Disable flash encryption in UART bootloader       = 0 R/W (0x0)
DISABLE_DL_DECRYPT     Disable flash decryption in UART bootloader       = 0 R/W (0x0)
DISABLE_DL_CACHE       Disable flash cache in UART bootloader            = 0 R/W (0x0)
BLK1                   Flash encryption key
  = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLK2                   Secure boot key
  = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLK3                   Variable Block 3
  = 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W

Calibration fuses:
BLK3_PART_RESERVE      BLOCK3 partially served for ADC calibration data  = 0 R/W (0x0)
ADC_VREF               Voltage reference calibration                     = 1135 R/W (0x5)

Identity fuses:
MAC                    Factory MAC Address
  = 30:ae:a4:f1:fd:74 (CRC 74 OK) R/W
CHIP_VER_REV1          Silicon Revision 1                                = 1 R/W (0x1)
CHIP_VERSION           Reserved for future chip versions                 = 2 R/W (0x2)
CHIP_PACKAGE           Chip package identifier                           = 0 R/W (0x0)

Config fuses:
XPD_SDIO_FORCE         Ignore MTDI pin (GPIO12) for VDD_SDIO on reset    = 0 R/W (0x0)
XPD_SDIO_REG           If XPD_SDIO_FORCE, enable VDD_SDIO reg on reset   = 0 R/W (0x0)
XPD_SDIO_TIEH          If XPD_SDIO_FORCE & XPD_SDIO_REG, 1=3.3V 0=1.8V   = 0 R/W (0x0)
SPI_PAD_CONFIG_CLK     Override SD_CLK pad (GPIO6/SPICLK)                = 0 R/W (0x0)
SPI_PAD_CONFIG_Q       Override SD_DATA_0 pad (GPIO7/SPIQ)               = 0 R/W (0x0)
SPI_PAD_CONFIG_D       Override SD_DATA_1 pad (GPIO8/SPID)               = 0 R/W (0x0)
SPI_PAD_CONFIG_HD      Override SD_DATA_2 pad (GPIO9/SPIHD)              = 0 R/W (0x0)
SPI_PAD_CONFIG_CS0     Override SD_CMD pad (GPIO11/SPICS0)               = 0 R/W (0x0)
DISABLE_SDIO_HOST      Disable SDIO host                                 = 0 R/W (0x0)

Efuse fuses:
WR_DIS                 Efuse write disable mask                          = 0 R/W (0x0)
RD_DIS                 Efuse read disablemask                            = 0 R/W (0x0)
CODING_SCHEME          Efuse variable block length scheme                = 0 R/W (0x0)
KEY_STATUS             Usage of efuse block 3 (reserved)                 = 0 R/W (0x0)

Flash voltage (VDD_SDIO) determined by GPIO12 on reset (High for 1.8V, Low/NC for 3.3V).

https://github.com/espressif/esptool/wiki/espefuse#force-write-always


More docker examples

I have not yet tested this.

I tested the first two sections. Now blocked on
ModuleNotFoundError: No module named 'asyncpg'

We do include asyncpg as a server dep now, so we will be able to make progress after the next release.

Now stuck on some podman networking thing.
$ podman run -it   -p 8000:8000   -e TILED_SINGLE_USER_API_KEY=secret   -e TILED_DATABASE_PASSWORD=secret   -v ./config:/deploy/config:ro   -v ./files:/files:ro   ghcr.io/bluesky/tiled:latest /bin/bash

root@1a9322ee3886:/deploy# tiled catalog init --if-not-exists postgresql+asyncpg://postgres:secret@localhost:5432
<snipped>
ConnectionRefusedError: [Errno 111] Connect call failed ('<IP_ADDRESS>', 5432)

in a docker compose setup we would have postgres as a dns entry inside the container, as a wild guess, inside the container <IP_ADDRESS> refers to the container itself, rather than your host?
if your development machine has a real ip, try that. maybe try..host network mode
(I'm not super confident of my analysis here :)

Good idea, thanks @clintonroy. Will try that next time I pick this up.

Thanks @clintonroy-----net=host did the trick.

The version of this page in main was originally written before Tiled supported writing. Thus, it focused on server a (read-only) directory of files, rather than accepting write requests backed by a SQL database and a writable volume.
I wonder if we should split the guide in some way to separate those two use cases. As written, it may be a bit confusing.


[Bug]: Disassemble Module Structuring

Component
Disassemble Library
Version
0.6.3
Please check the following

[X] This is not a duplicate issue
[X] I have checked the wiki and tried troubleshooting the issue

Operating System
macOS (Apple Silicon)
Command used to produce the issue
No response
Describe the issue you are facing
All libraries are exposed under the format use heimdall_core::{{module}}::{{Module}}ArgsBuilder;, except for disassemble which lives in heimdall_common::ether::evm::ext::disassemble.
TODO: add builder pattern and relocate disassembly code.

If not taken by another contributor by sunday, i'll likely complete for the monday release.


Turn on SDK summaries in flutter analyze.

The latest dev build has stable summaries so we should start using them.
Also ensures that analysis options are propagating to the SDK analysis context (see:  https://github.com/dart-lang/sdk/issues/26129).
cc @devoncarew @Hixie

lgtm!
Can you wait to land until the chromium bots go green? The dashboard won't run when they're red, and I'd like to make sure that this PR is measured by the dashboard. Thanks!

You should always wait until the bots are green before landing. :-)


check_package_clean_state() move to crev-lib

In my project https://github.com/LucianoBestia/cargo_crev_reviews_workspace
I create crev reviews (proof with only ratings and comment) in a GUI full-stack Rust application.
In Cargo.toml l have:
crev-lib="0.22.2"
crev-data="0.22.2"
But we discovered recently, that some of my digest data is not correctly calculated.
You precisely found out, that I need to use check_package_clean_state().

"For Rust we need to do bunch of shenanigans before calculating digest. See comments."
https://github.com/crev-dev/cargo-crev/issues/434

But this function is not in crev-lib. It is in cargo-crev/src/shared.rs.
Is it possible to move this function to crev-lib?

I recreated the function in my code. No need to move it for me.

Just a note:
crev-lib is supposed to be language independent functionality only. If anything, we could have crev-rust for Rust-specific functionality that is more general than just cargo-crev implementation detail.


Error after change audio output.

Summary:
Change audio output from "internal speaker" to "headphone" cause runtime error.
thread 'main' panicked at 'No device name: BackendSpecific { err: BackendSpecificError { description: "core foundation unexpectedly returned null string" } }', /Users/xx/.cargo/registry/src/github.com-1ecc6299db9ec823/rodio-0.11.0/src/engine.rs:113:46
Steps to reproduce:
Change output audio before "cargo run".
Expected behavior:
The application should run normally.
Additional info:

AirPod with a very long device name.
macOS Catalina: 10.15.5
tetra 0.5.4

This is an upstream bug (https://github.com/RustAudio/cpal/issues/398) which has already been fixed, so I believe this bug will be resolved when I update to the new version of Rodio. I've been holding off on doing that because it'll be a (very minor) breaking change to Tetra, but if it's causing you issues I can prioritize it a bit more :+1:

It's no hurry. I can wait for it to be fixed in few next updates.


Websockets is not working

After the binance update, websockets do not work. I try to use the code of bm.start_trade_socket and cant get the values of last trades

@galloclaudio best to ask in the Binance API telegram channel. I do see the same behaviour which is strange.
There have been some updates to the Binance API recently, this include a new aggregated trades socket which is now implemented in v0.5.0 of this python-binance lib.
bm.start_aggtrade_socket('BNBBTC')
I can confirm that this one does return data.


Pressing the backspace on the physical keyboard

Pressing a backspace on the physical keyboard currently puts "Backspace" into the textarea. It should not do that.

This has been fixed as of commit 93664b85baaeb10531e8f0c383f65a8a1437ff21 .


fix: live demo link

Live demo link updated to correct link

Fixed through https://github.com/nuxt-community/color-mode-module/pull/5


Improve the Property Panel description box.

Description:

I'm not sure this is possible, but the help panel for properties that have a drop down list have a very odd display. For example, the class access set to protected will display the following:
    protected:
    protected: Item is added as a protected: class member

Note that our help description does not begin with protected: -- that's added by the property grid manager.
We do sometimes call m_prop_grid->SetDescription in PropGridPanel so it's at least worth checking to see if we can improve the description.
Just as an aside, if we always set the description based on a selected property, it might ultimately give us access to wxWidgets help content if we add that.

Unfortunately, I think the only way to fix this would be to subclass the property panel and provide our own implementation. That would allow for adding a command that brings up a popup window where we could provide significantly more information about the property, potentially even linking to the wxWidgets documentation. It's a lot of work, so probably something to consider for wxUiEditor version 1.2.

The description box is maintained via two wxStaticText controls: m_pTxtHelpCaption and m_pTxtHelpContent. In the wxPropertyGridManager declaration (manager.h), these variables are protected: and there is no public: function to get them. You set their contents by calling SetDescription().
If we create a class derived from wxPropertyGridManager the class,we could bind to our own version of OnPropertyGridSelect() by override Init2():
Unbind(wxEVT_PG_SELECTED, &wxPropertyGridManager::OnPropertyGridSelect, this, wxID_ANY);
Bind(wxEVT_PG_SELECTED, &kwPropertyGridManager::OnPropertyGridSelect, this,  wxID_ANY);

Construction of the two controls is handled by RecreateControls().
OnMouseMove() checks for the existance of m_pTxtHelpCaption, and dragging won't work if it is null.
UpdateDescriptionBox() calls m_pTxtHelpContent->Wrap(use_width), SetDescription() calls m_pTxtHelpContent->SetLabel(content).
I'd be inclined to use wxHtmlWindow as the control to use since it works on all platforms, and we could even add hyperlinks for more information to display in a popup window, or even our Docs window.


Added the no device error

My computer at work does not have a microphone or a camera plugged in, so I get a false error message. This adds an appropriate error message for this case.

@KaptenJansson can you also review? (it lgtm).
1 - you were the one with the original feature.
2 - I don't have access to a device with no mic/camera

LGTM with nit.

Thanks for the patch @phistuck

Yeah, thanks a lot!


tidb: 8.4.0 -> 8.5.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/pingcap/tidb/releases.
meta.description for tidb is: Open-source, cloud-native, distributed, MySQL-Compatible database for elastic scale and real-time analytics
meta.homepage for tidb is: https://pingcap.com
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 8.5.0 with grep in /nix/store/fwgzbn16bcgd19s4jpmcz33xjk3pd8jz-tidb-8.5.0
found 8.5.0 in filename of file in /nix/store/fwgzbn16bcgd19s4jpmcz33xjk3pd8jz-tidb-8.5.0

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

tidb

Instructions to test this update (click to expand)

Either download from the cache:
nix-store -r /nix/store/fwgzbn16bcgd19s4jpmcz33xjk3pd8jz-tidb-8.5.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nixpkgs-update-cache.nix-community.org/' \
  --option trusted-public-keys '
  nixpkgs-update-cache.nix-community.org-1:U8d6wiQecHUPJFSqHN9GSSmNkmdiFW7GW7WNAnHW0SM=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The nixpkgs-update cache is only trusted for this store-path realization.)
For the cached download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A tidb https://github.com/r-ryantm/nixpkgs/archive/2f56118be07cffef1b25f17ef13a26af5eef989e.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/2f56118be07cffef1b25f17ef13a26af5eef989e#tidb

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/fwgzbn16bcgd19s4jpmcz33xjk3pd8jz-tidb-8.5.0
ls -la /nix/store/fwgzbn16bcgd19s4jpmcz33xjk3pd8jz-tidb-8.5.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review

x86_64-linux

:white_check_mark: 1 package built:

tidb

Maintainer pings
cc @makuru-dd for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

Add a :+1: reaction to pull requests you find important.

@NixOS/nixpkgs-merge-bot merge


hygeia artifactory collector

@MarkRx  2018-09-06 13:40:00,014 INFO  c.c.d.collector.CollectorTask - Running Collector: Artifactory
2018-09-06 13:40:00,081 INFO  org.mongodb.driver.connection - Opened connection [connectionId{localValue:6, serverValue:6340}] to <IP_ADDRESS>:31996
2018-09-06 13:40:00,182 INFO  c.c.d.collector.CollectorTask - -----------------------------------
2018-09-06 13:40:00,182 INFO  c.c.d.collector.CollectorTask - http://<IP_ADDRESS>:8018/
2018-09-06 13:40:00,182 INFO  c.c.d.collector.CollectorTask - -----------------------------------
2018-09-06 13:40:00,668 ERROR c.c.d.c.DefaultArtifactoryClient - Error with REST url: http://<IP_ADDRESS>:8018/api/repositories()
2018-09-06 13:40:00,669 ERROR c.c.d.c.DefaultArtifactoryClient - 404 Not Found
2018-09-06 13:40:00,684 ERROR o.s.s.s.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.

my inputs for the hygieia collector
MONGODB_HOST: <IP_ADDRESS>
MONGODB_PORT: 31996
===========================================
Properties file created Thu Sep  6 13:35:44 UTC 2018:  /hygieia/config/application.properties
Note: passwords hidden
#Database Name
dbname=dashboarddb
#Database HostName - default is localhost
dbhost=<IP_ADDRESS>
#Database Port - default is 27017
dbport=31996
#Database Username - default is blank
dbusername=dashboarduser
#Collector schedule (required)
artifactory.cron=0 0/5 * * * *
#Artifactory server (required) - Can provide multiple
artifactory.servers[0]=
#Artifactory user name (required)
artifactory.usernames[0]=admin
#Artifactory api key (required)
artifactory.apiKeys[0]=bcf4caf8-e617-467c-8cd7-fcdb70b5c8ff
#The repos to collect artifacts from (required) - Can provide multiple (comma separated for each server)
artifactory.repos[0]=Jenkins-integration,Jenkins-integration-2
Artifact Regex Patterns
Each artifact found is matched against the following patterns in order (first one wins)
The following capture groups are available:
- group
- module
- artifact
- version
- classifier
- ext
artifactory.patterns[0]=(?.+)/(?[^/]+)/(?[^/]+)/(?\k)-\k(-(?[^.]+))?(.(?.+))?
Artifactory urls and credentials
artifactory.servers[0]=http://<IP_ADDRESS>:8018/
artifactory.usernames[0]=admin
artifactory.apiKeys[0]=bcf4caf8-e617-467c-8cd7-fcdb70b5c8ff
artifactory.repos[0]=Jenkins-integration,Jenkins-integration-2
Artifactory REST endpoint
artifactory.endpoint=artifactory/
though i have given all the details properly the i can see the URL access issue
and one more thing please give a small meaning statement for the three values which i am not understanding.
artifactory.repos[0]
artifactory.endpoint
artifactory.patterns[0]
i will be very thankfull to you if you help me on this

slkumar969: The issue in this case is that the artifactory server Url (http://<IP_ADDRESS>:8018/) is not reachable. Make sure that server (the one you have configured with artifactory.servers[0] in your properties file) is up and running, and the endpoint http://<IP_ADDRESS>:8018/api/repositories is reachable. Thanks.

slkumar969: Do you have any updates on this, hoping we have answered your question, please let us know. Thanks !

@slkumar969: Following up on this again, just checking to see if you have any more questions at all, and if this issue is resolved at your end. Thanks.

@subodhbattina  thanks for your response but as you said i have given the correct details and they are working fine the artifactory URL it is running as a docker container and it is reachable.
on other hand  i am runnind this hygieia service as a pod in kubernets where i suppose to pass the env variables from the deployment same alike docker while running the container. here i found few env variables were mandatory to pass where i did not get proper understanding in its usage please help me out in describing from below image.

after the container got up i can see the log like
2018-09-06 13:40:00,081 INFO org.mongodb.driver.connection - Opened connection [connectionId{localValue:6, serverValue:6340}] to <IP_ADDRESS>:31996
2018-09-06 13:40:00,182 INFO c.c.d.collector.CollectorTask - -----------------------------------
2018-09-06 13:40:00,182 INFO c.c.d.collector.CollectorTask - http://<IP_ADDRESS>:8018/
2018-09-06 13:40:00,182 INFO c.c.d.collector.CollectorTask - -----------------------------------
2018-09-06 13:40:00,668 ERROR c.c.d.c.DefaultArtifactoryClient - Error with REST url: http://<IP_ADDRESS>:8018/api/repositories()
2018-09-06 13:40:00,669 ERROR c.c.d.c.DefaultArtifactoryClient - 404 Not Found
2018-09-06 13:40:00,684 ERROR o.s.s.s.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
where i can reach the http://<IP_ADDRESS>:8018/artifactory/webapp/#/home
properly by accessing the link seperately. while in the case of container logs the container failing to access the URL  and  as u said i have tried giving the details of the url like http://<IP_ADDRESS>:8018/api/repositories but this format i cannot access with container log as well as in browser you can find in below image

many thanks in advance please give some suggestions.....!
awaiting for you valuable answers..............!

@slkumar969 : I am not super familiar with docker or kubernetes, I am working towards gaining that knowledge. But, have you configured your container to use proxy if you have one?

@slkumar969 Did you get a chance to check your proxy settings at all? Thanks !

@slkumar969 Following up again, just wanted to rule out any proxy configuration related errors, please confirm that you have these in place. Thanks

@slkumar969 : Since we didn't hear back from you, assuming this issue is resolved at your end, and therefore closing it out. Thanks !


Go to Next Diff in Pull Request command is not iterating through all diffs

Testing #4254

Check out the PR - https://github.com/microsoft/vscode/pull/164085
Use Go to Next Diff in Pull Request command to navigate

🐛 When it reaches to third file src/vs/platform/request/browser/requestService.ts file, it only gets executed once, even though there are two changes.
It navigates to all changes in the next file which is src/vs/platform/request/node/requestService.ts it gets executed twice once per each change.
Now, select the first file and start navigating again. This time this command gets executed only once in the last file

@sandy081 this is currently by design as both diffs are in the view port in that third file.


test: replace useCookies with parseCookies in describe

It seems that useCookies was replaced with parseCookies in 56bfe0ae7eea72051f6aa2ac838e3c947d365329 and dc8ee81799bf93148ef686b3434287858afdafa0. I found useCookies in describe of test/cookie.test.ts and replaced it with parseCookies.
I've confirmed useCookies doesn't exist except in CHANGELOG.
$ git grep useCookies
CHANGELOG.md:* `useCookie`, `useCookies` and `setCookie` utilities ([088f413](https://github.com/unjs/h3/commit/088f413434a619a9888bfd9d1b189e56a7d00124)), closes [#17](https://github.com/unjs/h3/issues/17)

thanks!


OnExit Handler for Workflow Template

Is this a BUG REPORT or FEATURE REQUEST?:
Feature Request
What happened:
I want to get a notification for every stage and every stage is now a workflow template for me. I defined exit handlers in workflow template but those are not getting executed.
What you expected to happen:
i expected onExit handler to work even for workflow template
How to reproduce it (as minimally and precisely as possible):
apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
  name: workflow-template-stage-template-with-exit
spec:
  entrypoint: stage-template-with-exit
  onExit: exit-stepper
  templates:
  - name: stage-template-with-exit
    inputs:
      parameters:
      - name: message
    container:
      image: docker/whalesay
      command: [cowsay]
      args: ["{{inputs.parameters.message}}"]
  - name: exit-stepper
    steps:
    - - name: celebrate
        template: celebrate
      - name: cry
        template: cry
  - name: celebrate
    container:
      image: alpine:latest
      command: [sh, -c]
      args: ["echo hooray!"]
  - name: cry
    container:
      image: alpine:latest
      command: [sh, -c]
      args: ["echo boohoo!"]

Anything else we need to know?:
Environment:

Argo version:

argo: v2.4.1
  BuildDate: 2019-10-08T23:15:27Z
  GitCommit: d7f099992d8cf93c280df2ed38a0b9a1b2614e56
  GitTreeState: clean
  GitTag: v2.4.1
  GoVersion: go1.11.5
  Compiler: gc
  Platform: darwin/amd64

Kubernetes version :

clientVersion:
  buildDate: "2019-06-20T04:52:26Z"
  compiler: gc
  gitCommit: e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529
  gitTreeState: clean
  gitVersion: v1.15.0
  goVersion: go1.12.6
  major: "1"
  minor: "15"
  platform: darwin/amd64
serverVersion:
  buildDate: "2019-06-19T16:32:14Z"
  compiler: gc
  gitCommit: e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529
  gitTreeState: clean
  gitVersion: v1.15.0
  goVersion: go1.12.5
  major: "1"
  minor: "15"
  platform: linux/amd64

Other debugging information (if applicable):

workflow result:

$ argo get <workflowname>

executor logs:

$ kubectl logs <failedpodname> -c init
$ kubectl logs <failedpodname> -c wait

workflow-controller logs:

time="2019-10-17T06:12:48Z" level=info msg="Creating a docker executor"

time="2019-10-17T06:12:48Z" level=info msg="Executor (version: v2.4.1, build_date: 2019-10-08T23:14:37Z) initialized (pod: default/workflow-template-stage-dmhw2) with template:\n{\"name\":\"stage\",\"arguments\":{},\"inputs\":{\"parameters\":[{\"name\":\"message\",\"value\":\"hello world\"}]},\"outputs\":{},\"metadata\":{},\"container\":{\"name\":\"\",\"image\":\"docker/whalesay\",\"command\":[\"cowsay\"],\"args\":[\"hello world\"],\"resources\":{}}}"

time="2019-10-17T06:12:48Z" level=info msg="Waiting on main container"

time="2019-10-17T06:12:53Z" level=info msg="main container started with container ID: f3d0b26ecc6033526b98412a564086c921bbad4ad5837621b015d3e65979884b"

time="2019-10-17T06:12:53Z" level=info msg="Starting annotations monitor"

time="2019-10-17T06:12:53Z" level=info msg="docker wait f3d0b26ecc6033526b98412a564086c921bbad4ad5837621b015d3e65979884b"

time="2019-10-17T06:12:53Z" level=info msg="Starting deadline monitor"

time="2019-10-17T06:12:53Z" level=info msg="Main container completed"

time="2019-10-17T06:12:53Z" level=info msg="No output parameters"

time="2019-10-17T06:12:53Z" level=info msg="No output artifacts"

time="2019-10-17T06:12:53Z" level=info msg="Killing sidecars"

time="2019-10-17T06:12:53Z" level=info msg="Annotations monitor stopped"

time="2019-10-17T06:12:53Z" level=info msg="No Script output reference in workflow. Capturing script output ignored"

time="2019-10-17T06:12:53Z" level=info msg="Alloc=4820 TotalAlloc=11390 Sys=70078 NumGC=4 Goroutines=9"

It seems OnExit Handler for Workflow Template still doesn't work.
Is there anyone who knows whether it works or not?


circleci Exited with code 243

https://circleci.com/gh/laravel-socialite-providers/providers/7
#!/bin/bash -eo pipefail
npm install -g --silent gh-pages
git config user.email<EMAIL_ADDRESS>git config user.name "Cyborg Girl"
Exited with code 243

should use CircleCI Local CLI to debug.
reason: npm install need sudo

install error fixed, there is a new error:
$ circleci local execute --job deploy

/usr/local/bin/gh-pages -> /usr/local/lib/node_modules/gh-pages/bin/gh-pages.js
/usr/local/bin/gh-pages-clean -> /usr/local/lib/node_modules/gh-pages/bin/gh-pages-clean.js
+<EMAIL_ADDRESS>added 42 packages from 14 contributors in 29.026s
fatal: not in a git directory
Error: Exited with code 128
Step failed
Error: runner failed (exited with 101)
Task failed
Error: task failed

a new error: https://circleci.com/gh/laravel-socialite-providers/providers/10
#!/bin/bash -eo pipefail
gh-pages --dotfiles --message "[skip ci] Updates" --dist site
The authenticity of host 'github.com (<IP_ADDRESS>)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? Too long with no output (exceeded 10m0s)


faudio: 20.02 -> 20.03

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://github.com/FNA-XNA/FAudio/releases.
meta.description for faudio is: "XAudio reimplementation focusing to develop a fully accurate DirectX audio library"
meta.homepage for faudio is: "https://github.com/FNA-XNA/FAudio"
Release on GitHub
Compare changes on GitHub

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 20.03 with grep in /nix/store/xq377163q5rhcj3ypwqjj92jh8nkxn59-faudio-20.03

directory tree listing: https://gist.github.com/7ada5ebd681774e9bad8aed1cfb680b4

du listing: https://gist.github.com/f2ab2132e5ae789694f0ce9f126805a4

Rebuild report (if merged into master) (click to expand)

16 total rebuild path(s)
8 package rebuild(s)
8 x86_64-linux rebuild(s)
7 i686-linux rebuild(s)
0 x86_64-darwin rebuild(s)
1 aarch64-linux rebuild(s)
First fifty rebuilds by attrpath
faudio
pipelight
playonlinux
wine
wine-staging
winePackages.full
wineWowPackages.full
winetricks

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/xq377163q5rhcj3ypwqjj92jh8nkxn59-faudio-20.03 \
  --option binary-caches 'https://cache.nixos.org/ https://r-ryantm.cachix.org/' \
  --option trusted-public-keys '
  r-ryantm.cachix.org-1:gkUbLkouDAyvBdpBX0JOdIiD2/DP1ldF3Z3Y6Gqcc4c=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(r-ryantm's Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A faudio https://github.com/r-ryantm/nixpkgs/archive/0e8ce4639d09fae13e59a4f3c7c9914ef0cb12ab.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/xq377163q5rhcj3ypwqjj92jh8nkxn59-faudio-20.03
ls -la /nix/store/xq377163q5rhcj3ypwqjj92jh8nkxn59-faudio-20.03/bin

cc @marius851000 for testing.

@GrahamcOfBorg build wine


MSL-120 cannot update device

What issue do you have? Please be as thorough and explicit as possible.
Unable to interface with MSL-120 device
Details of your setup.

Do you use (1) Homebridge UI-X (2) Homebridge CLI or (3) HOOBS?
Latest version of Homebridge UI-X

Which version of Homebridge/HOOBS do you have?
Latest version

Which platform do you run Homebridge/HOOBS on (e.g. Raspberry Pi/Windows/HOOBS Box)? Please also mention your version of Node.js/NPM if known.
RPI

Which version of this plugin (homebridge-meross) do you have? Has the issue started since upgrading from a previous version?
Latest

Which Meross devices do you have that are causing issues? Please include product models if applicable.
MSL-120

Getting this error when trying to interface with the device:
[22/08/2021, 22:48:23] [Meross] [Lumière chambre] sending update failed as  at Object.<anonymous> (/usr/lib/node_modules/homebridge-meross/node_modules/p-queue/dist/index.js:8:22).

Hi @PatDal81
Do you get this error every time you control this device? Or sometimes?
And do any functions work like on/off, brightness, colour, colour temperature?
For some reason the request is taking longer than 9 seconds (the time limit on trying to control the device).
Do you have this device setup as cloud device or local device?
Thanks

Hi @bwp91
I now get this error every time I interact with it.
Any attempt to interact with it (on/off, change color, change brightness) fails with a "No Response" error within the Home app.
I've setup the solution with the Cloud setup.
Here to help if you need anything else to help you.
Thanks.

Can you use the plugin settings to turn plugin debug on, restart plugin and show me the logs from attempting to control the device?
Also, does the accessory in homekit update status if you control the device via the meross app?

Another detail - This device is located at my cottage and not where I'm located physically (shouldn't change anything but FYI).  I have other device using your plugin (namely  MSS110-2) that works fine.

Here are the logs with debugging ON (thought about cleaning the logs but maybe you need the other info)
[23/08/2021, 09:16:28] [Meross] [Lumière chambre] sending mqtt: {"header":{"from":"/app/726764-1a12b231665266d8c6f0477c0f2392d8/subscribe","messageId":"0d50f125f8c94a99608289a16b41c60f","method":"GET","namespace":"Appliance.System.All","payloadVersion":1,"sign":"fa9157f740e3fdd937ea9dab4a63a605","timestamp":1629724589},"payload":{}}.
[23/08/2021, 09:16:29] [Meross] [test 2] disabling power readings interval as Timeout at new module.exports.TimeoutError (/usr/lib/node_modules/homebridge-meross/node_modules/promise-timeout/index.js:44:16).
[23/08/2021, 09:16:29] [Meross] [test] disabling power readings interval as Timeout at new module.exports.TimeoutError (/usr/lib/node_modules/homebridge-meross/node_modules/promise-timeout/index.js:44:16).
[23/08/2021, 09:16:29] [Meross] [Prise 3] disabling power readings interval as Timeout at new module.exports.TimeoutError (/usr/lib/node_modules/homebridge-meross/node_modules/promise-timeout/index.js:44:16).
[23/08/2021, 09:16:30] [Meross] [Prise 4] disabling power readings interval as Timeout at new module.exports.TimeoutError (/usr/lib/node_modules/homebridge-meross/node_modules/promise-timeout/index.js:44:16).
[23/08/2021, 09:16:30] [Meross] [Lumière chambre] mqtt connection closed.
[23/08/2021, 09:16:30] [Meross] [Prise 3] mqtt connection closed.
[23/08/2021, 09:16:30] [Meross] [Prise 4] mqtt connection closed.
[23/08/2021, 09:16:31] [Meross] [test] mqtt connection closed.
[23/08/2021, 09:16:31] [Meross] [Lumière salon] mqtt connection closed.
[23/08/2021, 09:16:31] [Meross] [test 2] mqtt connection closed.
[23/08/2021, 09:16:32] [Meross] [Lumière chambre] failed to request status as Timeout at new module.exports.TimeoutError (/usr/lib/node_modules/homebridge-meross/node_modules/promise-timeout/index.js:44:16).
[23/08/2021, 09:16:35] [Meross] [Lumière chambre] sending update: {"header":{"from":"http://<IP_ADDRESS>/config","messageId":"pwq030peubglgi5x","method":"SET","namespace":"Appliance.Control.ToggleX","payloadVersion":1,"sign":"fe987a45d2b491a8fd7b9afe633c28c7","timestamp":1629724595,"triggerSrc":"iOSLocal","uuid":"1912139811151690806848e1e91364e4"},"payload":{"togglex":{"onoff":0,"channel":0}}}.
[23/08/2021, 09:16:35] [Meross] [Lumière chambre] mqtt connection reconnecting.
[23/08/2021, 09:16:35] [Meross] [Prise 3] mqtt connection reconnecting.
[23/08/2021, 09:16:35] [Meross] [Prise 4] mqtt connection reconnecting.
[23/08/2021, 09:16:36] [Meross] [test] mqtt connection reconnecting.
[23/08/2021, 09:16:36] [Meross] [Lumière salon] mqtt connection reconnecting.
[23/08/2021, 09:16:36] [Meross] [test 2] mqtt connection reconnecting.
[23/08/2021, 09:16:36] [Meross] [Lumière chambre] mqtt subscribe complete.
[23/08/2021, 09:16:36] [Meross] [Prise 3] mqtt subscribe complete.
[23/08/2021, 09:16:36] [Meross] [Prise 4] mqtt subscribe complete.
[23/08/2021, 09:16:36] [Meross] [test] mqtt subscribe complete.
[23/08/2021, 09:16:36] [Meross] [Lumière salon] mqtt subscribe complete.
[23/08/2021, 09:16:36] [Meross] [test 2] mqtt subscribe complete.
[23/08/2021, 09:16:38] [Meross] [Lumière chambre] reverting to cloud control as connect EHOSTUNREACH <IP_ADDRESS>:80 at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1148:16).
[23/08/2021, 09:16:38] [Meross] [Lumière chambre] sending mqtt: {"header":{"from":"/app/726764-1a12b231665266d8c6f0477c0f2392d8/subscribe","messageId":"c49fa1a9cf95a6c7f885361d39bc889d","method":"SET","namespace":"Appliance.Control.ToggleX","payloadVersion":1,"sign":"8f2ca6b42e890f6ba837c30f7160d284","timestamp":1629724599},"payload":{"togglex":{"onoff":0,"channel":0}}}.
[23/08/2021, 09:16:41] [Meross] [Lumière chambre] mqtt connection closed.
[23/08/2021, 09:16:41] [Meross] [Prise 3] mqtt connection closed.
[23/08/2021, 09:16:41] [Meross] [test] mqtt connection closed.
[23/08/2021, 09:16:41] [Meross] [Lumière salon] mqtt connection closed.
[23/08/2021, 09:16:41] [Meross] [Prise 4] mqtt connection closed.
[23/08/2021, 09:16:41] [Meross] [test 2] mqtt connection closed.
[23/08/2021, 09:16:45] [Meross] [Lumière chambre] sending update failed as  at Object. (/usr/lib/node_modules/homebridge-meross/node_modules/p-queue/dist/index.js:8:22).
You just made me realize that I cannot access the device via the Meross app!  it says "Unreachable" but I haven't changed anything.  Could this be a bug from Meross?

The connection is constantly being opened and closed... do you have more than one instance of homebridge running the plugin with the same account info?
Also do you have the hybrid mode turned on in the plugin settings?

Yes and yes!  I do have one instance at home to control my devices at home, and the same is true for my cottage (both running on RPi, same config) using the same account.
Hybrid mode is turned ON.

This is the issue. The cloud connections don't work with two instances logged into the same account... this is why they are constantly disconnecting and reconnecting... a connection at one instance disconnects the other.
You have a number of options...

Obtain your userkey and setup one of the instances with this instead of the username/password, and setup the devices to be controlled locally by configuring the IP

Only run one instance of the plugin, and turn off hybrid mode so all devices work through the cloud - this will then work for devices situated in both places

Setup a separate meross account for the devices at one location and configure the plugin with these new credentials

Interesting - but that wouldn't explain why I'm still able to control my other devices that uses the same plugin (MSS110-2) without any error?  Also, I was able to control the faulty device (located at the cottage, while I was there) but I'm unable to control it when at home.  So only me, physically changing location, would render it unavailable?

Could the IP of the device have changed?
The specific error you got was EHOSTUNREACH <IP_ADDRESS>:80 which often means the device is disconnected from network or no device at this IP.
Could you setup the device with a device IP in the config to force the plugin to use local mode and avoid using a cloud connection?

In hybrid mode, the plugin will use the last IP of the device reported by meross, but any change in IP might not be reported immediately

Those devices uses a static IP address so it shouldn't have any impact.  In HB, it initially shows the device as being ON, 30% brightness and red.  This is the last state in which it was.  Does it fetch this info on refresh or is it the latest state reported by Meross?

Another thing, are you controlling the correct accessory for the homebridge instance?
If you have two instances, this means each device will be duplicated in homebridge (unless you have ignored devices)…

Yes I've made sure they show up at the right place.
Have you seen my last question?  Curious how it handles the status.

Yes, sorry, I haven't really been answering your questions, I've been more determined to find out why the device isn't responding 😆

So only me, physically changing location, would render it unavailable?

No, your physical location should have no effect on which devices work

Does it fetch this info on refresh or is it the latest state reported by Meross?

When the plugin starts it will request the latest device status from meross (either cloud or locally, depending on the config). Then the polling will start, by default every 5 seconds for local devices and every 5 minutes for cloud devices. It's longer for cloud devices, since the plugin should receive real-time updates from meross when the status is changed. The idea of the cloud polling is really to detect any IP change so that if using the hybrid mode then the IP is up to date.
If a cloud device goes offline then meross will continue to report the last known status (on/off, brightness, etc). If a local device goes offline then obviously the plugin will not be able to obtain the latest status. Either way, HomeKit will continue to display the last known state of the device.
Is this what you were asking?

Yes, thank you for the detailed explanation! :)
At this point, is there anything else I can do to help you troubleshoot this issue?
My hypothesis right now is that the device is offline (don't remember if I switched the switch on or off before leaving) and Meross is reporting a bad status?

Yes, thank you for the detailed explanation! :)
At this point, is there anything else I can do to help you troubleshoot this issue?
My hypothesis right now is that the device is offline (don't remember if I switched the switch on or off before leaving) and Meross is reporting a bad status?

If in doubt, I would go by what the meross app is reporting for the device.
If you put the plugin into debug mode, you can see the data that the plugin receives from meross on startup. The data might not make much sense, but if you want to post it here I can take a look. It will be the message for the device that starts with incoming poll.

Yeah that is what I thought, the Meross app is reporting the bulb as open, 30%, red but unavailable.  I'm starting to guess it's an Meross bug at this point.
Interrestingly, I do not have a "incoming pool" line for the faulty device.  I have one line for all other Meross device but not the MSL-120.  Does it help?

Initially it will try to poll locally, but this seems to be failing, then will try polling over cloud, but this will only work if the mqtt connection is open. In your logs the other day:
[23/08/2021, 09:16:36] [Meross] [Lumière salon] mqtt subscribe complete.
[23/08/2021, 09:16:38] [Meross] [Lumière chambre] reverting to cloud control as connect EHOSTUNREACH <IP_ADDRESS>:80 at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1148:16).
[23/08/2021, 09:16:38] [Meross] [Lumière chambre] sending mqtt: {"header":{"from":"/app/726764-1a12b231665266d8c6f0477c0f2392d8/subscribe","messageId":"c49fa1a9cf95a6c7f885361d39bc889d","method":"SET","namespace":"Appliance.Control.ToggleX","payloadVersion":1,"sign":"8f2ca6b42e890f6ba837c30f7160d284","timestamp":1629724599},"payload":{"togglex":{"onoff":0,"channel":0}}}.
[23/08/2021, 09:16:41] [Meross] [Lumière chambre] mqtt connection closed.

You can see here the plugin isn't getting a response from either connection mode.
So actually my comment about the incoming poll wasn't helpful in this case!

Tried disabling the plugin on the second instance of HB.  No I don't have the "mqtt connection closed" thing but unfortunately, getting the same error when interacting with the switch:
[24/08/2021, 12:16:18] [Meross] [Lumière chambre] sending update failed as  at Object. (/usr/lib/node_modules/homebridge-meross/node_modules/p-queue/dist/index.js:8:22).

This error will be more readable in the next version of the plugin, it’s basically a timeout when the plugin doesn’t receive a reply from the device.
I think it makes sense to assume the device is offline in this case.

I would also really advise to not have both instances running with your credentials. Set one of them to full local mode with the user key instead

Update for you: The device was off-sync finally.  When I arrived, the device was on but not working.  I reopened it and it started flashing (as if it was not connected anymore) then reconnected automatically.  Now the device works properly with the plugin.
You can close this issue, seem like it was an off-sync between the device and meross itself.  Thanks for your help and assistance on this.

Closing the issue.


lug: change Fedora config

We just retain

updates and releases under fedora/linux
epel under fedora/epel

And for fedora-secondary, we use the same infrastructure provided by mirrors.tuna and mirrors.ustc.
Would you please change the bootstrap config to use tuna, and update the production config? cc @doctormin

Working on it now


Daemon crash

coda_crash_report_2020-09-20_16-06-43.561801.tar.gz

This is the write to closed pipe error and duplicate of #6049

Closing, this was fixed in #6357.


Added Crowdin configuration and changed source files to .pot format

Overview: What does this pull request change?
After much internal testing, we've found that Crowdin is the best translation service for our needs. This PR adds Crowdin configuration, allowing it to be used upstream (here). It also changes source files to .pot format (thanks @MysaaJava) which is semantically more appropriate.

Motivation and Explanation: Why and how do your changes improve the library?

Links to added or changed documentation pages

Further Information and Comments
Thanks to @MysaaJava for his help and advice!

Reviewer Checklist

[ ] The PR title is descriptive enough for the changelog, and the PR is labeled correctly
[ ] If applicable: newly added non-private functions and classes have a docstring including a short summary and a PARAMETERS section
[ ] If applicable: newly added functions and classes are tested

I think whatever crowdin's default name for the service branch should work fine, it's not that important.


cobalamin ~metabolic~ biosynthetic process

~MMADHC	Methylmalonic aciduria and homocystinuria type D protein, mitochondrial		cobalamin metabolic process		UniProt	Homo sapiens	IDA		my011 protein pthr13192	protein		PMID:24722857	20160629~
UniProtKB:Q9H3L0 | MMADHC | involved_in | GO:0009108    coenzyme biosynthetic process | ECO:0000315   IMP | PMID:24722857 |   | 9606 Homo sapiens | UniProt
should this have a taxon restriction for eukaryotes?

Metabolic process is a parent of biosynthetic process - and Vit B is produced by bacteria https://en.wikipedia.org/wiki/Vitamin_B12#Bacteria_and_archaea

Yes -  GO:0009236
cobalamin biosynthetic process  -> never in eukaryotes

Wouldn't it be stronger to say only in prokaryotes?

Sure, yes.

done


Display only in workspace center panes

See atom/background-tips#29
This fixes the background tips not showing anymore when all editors are closed.

It'd be great if this could be merged. I'm using this package from Pulsar.


[Bug] Errors when serving a non-functional variant due to null deployment

Describe the bug
When serving a variant with code that fails to execute (e.g., due to a syntax error in Python), it leads to the deployment being set to null. This is affecting our environment as follows:

When trying to launch the playground with a base that does not have a deployment, it results in an error due to the missing deployment.
There is an error encountered when attempting to overwrite the deployment for this variant.

Steps to Reproduce:

Create a variant containing code that will not execute properly, such as including a syntax error in Python.
Serve the variant locally.
Navigate to the playground ->  observe the resulting error (base does not have a deployment) which is not user-friendly.
Try to overwrite the variant -> another error that occurs during this process.

Expected Behavior:
When encountering a non-functional variant, the playground should provide a clear and informative error message. Moreover, users should be able to overwrite the variant despite the initial issues without encountering further errors.

The same problem is there for cloud. It's part of the same issue

Is it possible to add backend tests for this?

(agenta-py3.9) (base) mahmoudmabrouk@MacBook-Pro-3 baby_name_generator % agenta variant serve app.py

Checking and updating config file...
? This variant already exists. Do you want to overwrite it? Yes
Preparing code base app into a tar file...
Building code base app for app.default into a docker image...
Updating app to server...
Error while updating variant: Request to update app_variant failed with status code 500 and error message: {'detail': 'Unexpected error while trying to update the app variant: Failed to start Docker container for app variant babty/app.default \n Error while creating and starting Lambda function: An error occurred (InvalidParameterValueException) when calling the CreateFunction operation: Source image<PHONE_NUMBER>17.dkr.ecr.eu-central-1.amazonaws.com/agenta/llm-apps/654e742f0cc87615c0a757d1-app:latest does not exist. Provide a valid source image.'}.

https://agenta-ai.sentry.io/issues/4621410780/?referrer=digest-slack&notification_uuid=444176a4-9208-4eff-a68e-11ef1ab441ec&alert_rule_id=14774441&alert_type=issue
https://agenta-ai.sentry.io/issues/4621410781/?referrer=digest-slack&notification_uuid=444176a4-9208-4eff-a68e-11ef1ab441ec&alert_rule_id=14774441&alert_type=issue

Is it possible to add backend tests for this?

Yes, we'll need to include unit and integration tests for the CLI as well. I was planning to bring it up in our next standup (on Monday).

To replicate this bug, I had to run the cloud development compose and modify the CLI to use agenta cloud on localhost. As a result, I found the following:
Findings:

I served a broken variant with a syntax error, and its deployment was successful. A deployment document was generated for it, as shown in the first screenshot.
Additionally, I attempted to overwrite the same broken variant, and the deployment was also successful, as seen in the second screenshot.

Screenshots:

Question:

How can we identify the variant error in the docker container? At present, when accessing the variant container's openapi.json endpoint, you are redirected to a Nextjs 404 page. It would be helpful to have an additional exposed endpoint or some other means to obtain the error originating from the variant backend container.

Update:
Fixed: Variant overwering
Not fixed: Make the error message more tolerant to syntax error


Use newer version for TF's google

The 2.14 version includes a fix for the issue linked below, which I was
hitting during my tests.
https://github.com/terraform-providers/terraform-provider-google/issues/4305

just noticed it was updated 5 days ago... too slow :P


add missing «trouble» local part to RFC 2142 section

Hi Marco,
Mainly just wanted to say thanks for putting this together, really appreciate it 👌🏼
RFC 2142 mentions «TROUBLE» mailbox as a de-facto mailbox here but surprisingly doesn't mention it together with other mailboxes in section 4.
Just wanted to let you know 😊 thanks again so much for this 🙏🏼

Hey! Thanks for noticing that!
I am not sure that this email should be added, since it seems just an example in the sentence: as you said that email address is not listed later in the tables. I also never heard about it before. I don't know. Let me think about that. Do you see it listed anywhere else (even in other documents)?

I just went through all the listed references in list.yml and none of them had mentioned trouble mailbox.
I took the RFC's word for it that it's "de-facto", but it seems it's not the case anymore — no surprise I guess, it's been 27 years from its publication! 😄
So I'll close this for now, maybe if someone else comes across a credible objective source for it, this can be opened again 😊
Have a great week ahead!


Selinux packages autobumping fails

Describe the bug
the Autobump bot doesn't work with selinux packages, the version that is bumped is invalid, so probably the hooks to detect the latest version are misplaced
Expected behavior
To bump to the correct version
Logs/Additional context
https://github.com/rancher-sandbox/cOS-toolkit/pull/575
https://github.com/rancher-sandbox/cOS-toolkit/pull/576

retriggering autobumper to confirm


[#152200804] - clean up action specific options

Signed-off-by: Vikram Yadav<EMAIL_ADDRESS>

@xtreme-vikram-yadav Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.

@xtreme-vikram-yadav Thank you for signing the Contributor License Agreement!


Add support for getting public URL for asset

What kind of change does this PR introduce?
Adds support for the getPublicUrl method on the StorageFileApi.
What is the current behavior?
No method to get a public URL for an asset.
What is the new behavior?
Adds method to get a public URL for an asset.
Additional context
N/A

@grsouza updated with your requested changes

@grsouza any eta on the review?

LGTM!
Thanks @bryan-vh


Add PDF rendering via PDFObject

Use PDFObject to embed PDFs, replacing our outdated PDF.js copy we vendor (the last non-webpack vendoring). To not clutter the review UI, I will remove the PDF.js copy after review is done.
Commit 1 is the PDFObject integration
Commit 2 is the removal of PDF.js

Fallback for unsupporting browsers (most mobile ones, except Firefox Mobile):

Text selection is working but there are a few other bugs remaining like dynamic scale factor calculation etc. The pdf.js API is very low-level and almost undocumented, so it takes some effort.

Thought I do wonder whether this TextLayer business is warranted and maintainable. Parts of this API depends on CSS that Mozilla keeps changing, so I don't think they see it as part of the API contract. Maybe it's best to leave the PDF integration to the simple Canvas renderer which API ought to be very stable and this is what GitLab and GitHub are currently doing.

Is it possible to drop the PDF viewer package, just let browser render? IIRC you also proposed similar idea before.

What we could do thought, is use PDFObject and fall back to the pdf.js canvas rendering (no selection etc).

Actually I might just end up going with PDFObject and a fallback button like "Click here to view the PDF document". pdf.js turns out to be a real pain to have as a dependency because of its canvas dependency.

Updated to use PDFObject and updated OP message with screenshots, so it's ready for review again.

Pushed the PDF.js removal as well in a separate commit, so review only commit 1.

This PR reduces gitea binary size by around 4MB.
Note that PDF.js would still be ideal for mobile support, but it's low-level API is too hard to work with for me at least. If there is a high-level wrapper that works in vanilla JS, we could still use it in the future to get back mobile support.

PDFObject has a option PDFJS_URL which we could expose to users so that it can fall back to it:
https://pdfobject.com/examples/pdfjs.html


Update s3.go

replace listobject use Headobject

Hey @DHmc133 thanks for the PR, can you please sign your commit as per the contributor's guidelines. Thanks!

Signed-off-by: Chuang<EMAIL_ADDRESS>

@DHmc133 you have to sign the COMMIT. Not add a comment to the PR.


[5.9] Default sidebar width on large and ultrawide screens

Explanation: Refactors the default sidebar width on large and ultra wide screens.
Scope: Minor JS change to the Docs Navigator
Issue: rdar://105566775
Risk: Low
Testing: Added unit test and verified manually
Reviewer: @marinaaisa
Original PR: #607

@swift-ci test


Godot4 Profiler seems to be broken?

Godot version
Godot 4.0.2.stable.official
System information
Windows 11, Vulkan, GTX 980 Ti (528.02)
Issue description
I don't know what is happening here. But when I try to profile, it does weird things.
If I pause, select an element in the profiler and then resume, the list disappears.
https://user-images.githubusercontent.com/14341036/232341466-452dcad8-b56c-4c99-ab58-32037b99a91d.mp4
Also if you don't have the editor window selected (like your game window selected for instance) it seems to not draw anything or at least only draws every now and then. Also when the graph reaches the end, it's supposed to scroll but instead the graph starts to flicker or something.
https://user-images.githubusercontent.com/14341036/232341694-d9d5101a-1102-4d09-8674-37c818e22da0.mp4
Also if there is no scripts running it seems to post an error when you pause, it also doesn't seem to pause the profiling.
https://user-images.githubusercontent.com/14341036/232341738-c60fdc33-5509-4ca0-880b-2df6de198148.mp4
I also noticed unlike Godot 3.x the profiler doesn't start again automatically when you stop/rerun your project, but I'm assuming that is an intended change.
Steps to reproduce

Create a new project.
Create a scene then profile.
Alternatively add a script to the scene then profile.

Minimal reproduction project
N/A

Fairly certain what you see there in your second video IS the scrolling, it just currently looks wonky if the pixel width of the plot is much smaller than the number of max profiler frames because of the way it's rendered. You could see it better if you had some variation over time.

Also if you don't have the editor window selected (like your game window selected for instance) it seems to not draw anything or at least only draws every now and then.

That's because of the interface/editor/unfocused_low_processor_mode_sleep_usec setting.
Set it to some very low amount to increase editor FPS when unfocused (cpu usage too).

v4.1.dev2.official [668cf3c66]
https://github.com/godotengine/godot/assets/10379487/da9b669f-6fd1-402b-be27-d55e02efaf8d

I'm running 4.1.dev2 and the Start and Clear buttons are both grayed out and cannot be clicked to even begin to see @lufog 's problem with the UI resizing. Visual Profiler and Profiler buttons.

Profiling can only be started when the project is running. My game window was on the second monitor, which I did not capture with OBS.


fix(core): sidecar usage on Windows, closes #3341

What kind of change does this PR introduce?

[x] Bugfix
[ ] Feature
[ ] Docs
[ ] New Binding issue #___
[ ] Code style update
[ ] Refactor
[ ] Build-related changes
[ ] Other, please describe:

Does this PR introduce a breaking change?

[ ] Yes, and the changes were approved in issue #___
[ ] No

Checklist

[x] When resolving issues, they are referenced in the PR's title (e.g fix: remove a typo, closes #___, #___)
[ ] A change file is added if any packages will require a version bump due to this PR per the instructions in the readme.
[ ] I have added a convincing reason for adding this feature, if necessary

Other information
The new_sidecar function now uses platform::current_exe, which canonicalizes the absolute path. The canonicalize implementation converts the path to the extended length path syntax on Windows, so we must push backslash-demited paths to it.

Works in projects outside the repo examples too (why wouldn't it lol) 👏

In this case yeah 100% it works for projects outside the repo because the sidecar example is effectively an outside project (isn't a part of the workspace), but we had issues before of examples working on the repo and not outside of it because of feature flags enabled by default.

Ah, sry phrased that poorly. It wasn't i question, i approved after testing it in my own projects :D

Ah, sry phrased that poorly. It wasn't i question, i approved after testing it in my own projects :D

Yeah I know, just shared a useless information 😂

omg 😆 I'm so damaged from the daily langauge barrier problems on discord haha


compute -> licenses for aro

changed compute to licenses for azure red hat openshift. customers can buy RIs for the compute portion of ARO that spread out monthly. they cannot buy the license portion via RI and have that spread out monthly.

@lyledodgemsft : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off


[6.0] [SE-0415] Enable function body macros by default

Explanation: Enable SE-0415 "Function body macros" by default.
Original PR: https://github.com/apple/swift/pull/73764
Radar/issue:  rdar://119687390
Risk:  Low. Enables a feature without changing the semantics of anything else.

@swift-ci please test

@swift-ci please clean test


[Question] Any plans for upgrading to postgresql 14+ ?

Currently Polardb is based on Postgresql 11.9 which is EOL this year.
Is there by any chance PolarDB will rebase on top of Postgresql 14+ ?

@scherukutty Yes, upgrading to PostgreSQL 14+ is in our schedule.

/close


Add support for SGNet

Blocked by https://github.com/yanzq95/SGNet/issues/6
This adds support for SGNet. The implementation is currently incomplete because the pretrained models aren't working.

@RunDevelopment is this good to go now that the blocker is resolved?

Sorry, I forgot to answer.
The blocker is resolved, but I'm not sure whether it even makes sense to add it. My intention was to use this for things other than depth map upscaling. Theoretically, a model that works for depth maps should also work for other piece-wise smooth textures. This didn't work at all, so I don't know what we would even use this for.

Ok then let's just scrap it for now

Honestly, yeah. If we ever want to add support for this or similar models again, we can just revive this PR.


Cannot find t1_ft folder in models_backup folder

After downloading the owod_bakcup.zip provided by you and unzipping it, I get the following folders -

However, in your t1_test.yaml you have weights in a folder name "t1_ft" (following image) which as you can see is not there in the above image

Request your assistance.

Hi Arpit,
The config files should have had been pointing to t1_clustering_with_save. I have updated it. Kindly use the latest tip.
Kindly use replicate.sh to replicate the results.
Please reopen this bug for more discussions.
Thanks,
Joseph


🐛 Bug Report: Package metadata missing

📜 Description
Some backstage plugins don't have a repository object in their package.json while others do. This helps with discoverability  of this repository via npm docs and when browsing packages via npmjs.org.
👍 Expected behavior
All packages have a repository entry in their package.json
👎 Actual Behavior with Screenshots
Some backstage plugins don't have a repository object in their package.json while others do
👟 Reproduction steps

Go to https://www.npmjs.com/package/@backstage/plugin-bazaar
Check the sidebar
It should feature a "Repository" reference like other Backstage plugins

📃 Provide the context for the Bug.
In this particular case my employer uses a package scanner to check if developers are using suspicious packages, and marks Backstage as suspicious because it's missing a reference to its source code.
I opened a PR #18528 but I'm unable to run yarn install in a Docker container so I cannot complete the PR. Please feel free to use the contents of the PR, with or without attribution.
🖥 Your Environment
No response
👀 Have you spent some time to check if this bug has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Are you willing to submit PR?
No, but I'm happy to collaborate on a PR with someone else

Thanks for the report and the pull request!
Going forward, we should probably add some code to the Backstage CLI, such that when you use the new command it'll look into the root package.json and reuse any homepage and repository settings that are in there, and just fill in the actual relative path of the new thing.


cache-identifier branch breaks the tests

The tests need to be updated to work with the new method signatures.

That branch is currently just a proof-of-concept of what we were discussing yesterday in the "Caching" thread on discord. Documentation and tests are both pending, though I'm not certain if it will be merged.


No Support to Import the Attachment.

Hello, I have setup a project with talkjs-react. so previously it was one-to-one chat but now i want to make it a group chat.
the issue I am facing currently is not able to import the attachment that are present in the previous conversation.
there is no way to identify which conversation has attachment until you export all the conversation.
now the solution I got from the support was i have to manually download all the attachment and re-upload it to create a token for it.
and then i will have to manually update the attachment token of the respected conversation with the token.
I Have like more than 150 conversation.
Also, they don't have way to identify which chat has a attachment until you export all the conversation.

Hey there,
I'm closing this issue since it's related to our REST API and not directly to our React SDK. Feel free to reach out via live support on our site if you have any questions or comments regarding the REST API.
It's by design that you need to download and re-upload attachments in order to re import them, as documented in the importing section of our REST API

and then i will have to manually update the attachment token of the respected conversation with the token.
I Have like more than 150 conversation.

Since the data is returned in a standardized format, it should be fairly trivial to loop over the data or use our example data export script.

Also, they don't have way to identify which chat has a attachment until you export all the conversation.

You can fetch the conversations messages trough the api, which will show the attachments per message.

Still the trival is not a proper solution. if i have mopre than 200 conversation and each conversation hold atleast 2 attachment.
do the math and calucate the labour work it has to be done.
no proper documentation

Still the trival is not a proper solution. if i have mopre than 200 conversation and each conversation hold atleast 2 attachment. do the math and calucate the labour work it has to be done. no proper documentation

I'm definitely not suggesting to go over each conversation and message one by one by hand. But to iterate over them with code.
The export data script is a good starting point for this.

But if still let say one conversation has 10 attachment.
i will have to download all that attachment manually and re-upload it.
then create a key Attachment Token and feed the token to it.
this is the case for just 1 conversation
what if i have 10 conversation with 10 attachment.
how would i do it then?


error in ios WKwebview

this is my some code:
vue :

js:
const canvas = await html2canvas(this.$refs.shareImg, {
allowTaint: false,
useCORS: true
});
const img = canvas.toDataURL("image/jpeg");
this is error:
Origin {http://xx.xx} is not allowed by Access-Control-Allow-Origin.
but same code in Android webview/chrome  can merge image success.

i try to only use canvas to merge image (dont use html2canvas)
just set image  option  :
  const image = new Image();
  image.crossOrigin = '';
  image.src = path;
  if (!path.includes("base64")) {
    image.src = path + '?time=' + new Date().valueOf();
  }

it can merge image success in ios WKwebview