La interfaz de usuario no se actualiza después de varias ediciones de publicaciones

He notado esto muchas veces pero es inconsistente.

Cuando creo una publicación de respuesta, la publico. Luego vuelvo inmediatamente y edito y guardo. Luego hago lo mismo de nuevo, a veces la interfaz de usuario no muestra las últimas ediciones. Las ediciones se guardan en el servidor porque cuando actualizo la página sí se muestran, pero el problema es que no siempre se muestran hasta que se actualiza la página. Esto sucede para una nueva publicación de respuesta y cuando se edita varias veces en 2-3 minutos antes de que la publicación registre la etiqueta de revisión editada.

Estoy viendo esto después de actualizar a la versión 3.1.0 (actualmente ejecutando 3.1.2, 1 GB de RAM y 1 Unicorn) cuando uso el navegador Chrome (Win 10) y Safari de iPhone (iOS 17.0.3). Está sucediendo con bastante frecuencia, por eso lo informo.

Esto no sucedió antes. Solo 2 cambios desde que comenzó a suceder:

  1. Actualiza discourse a la versión 3.x
  2. Reduje el número de Unicrons a 1 de 2.
2 Me gusta

Una forma fácil de reproducir esto es que un miembro del personal/TL4 edite tanto el título como el contenido de un tema; solo se mostrará una de las dos ediciones (normalmente la edición de la publicación), y la otra se indicará, pero no se podrá ver.

2 Me gusta

Gracias por el informe… :slight_smile:
¿Podrías grabar un video corto que muestre este comportamiento por casualidad?

Si miras en las herramientas de desarrollador de Chrome, ¿hay un montón de errores allí, solicitudes que no son 200?

En la consola de herramientas de desarrollador de Chrome veo esto, parece ser un 429 (no sé para qué es el 404):

content-script.js:1 cornhusk, shared-service, error: TypeError: Failed to construct 'URL': Invalid URLInvalid url: 
extractOriginPath @ content-script.js:1
Show 1 more frame
Show less
content-script.js:1 cornhusk, shared-service, error: TypeError: Failed to construct 'URL': Invalid URLInvalid url: 
extractOriginPath @ content-script.js:1
Show 1 more frame
Show less
video.google.com/get_player?docid=1wQ5F_aEDhPpC8sW7ZTrAhbNVrSOAXsXr&ps=docs&partnerid=30&cc_load_policy=1:1 

       Failed to load resource: the server responded with a status of 404 ()
content-script.js:1 cornhusk, shared-service, error: TypeError: Failed to construct 'URL': Invalid URLInvalid url: 
extractOriginPath @ content-script.js:1
Show 1 more frame
Show less
content-script.js:1 cornhusk, shared-service, error: TypeError: Failed to construct 'URL': Invalid URLInvalid url: 
extractOriginPath @ content-script.js:1
Show 1 more frame
Show less
content-script.js:1 cornhusk, shared-service, error: TypeError: Failed to construct 'URL': Invalid URLInvalid url: 
extractOriginPath @ content-script.js:1
Show 1 more frame
Show less
content-script.js:1 cornhusk, shared-service, error: TypeError: Failed to construct 'URL': Invalid URLInvalid url: 
extractOriginPath @ content-script.js:1
fingerprintPage @ content-script.js:1
observeCheckoutMutations @ content-script.js:1
Show 3 more frames
Show less
content-script.js:1 cornhusk, shared-service, error: TypeError: Failed to construct 'URL': Invalid URLInvalid url: 
extractOriginPath @ content-script.js:1
fingerprintPage @ content-script.js:1
observeCheckoutMutations @ content-script.js:1
Show 3 more frames
Show less
jquery.js:9930 

       POST https://xxxx.com/message-bus/2089d5dd986440908b29e8064c58d208/poll 429 (Too Many Requests)
send @ jquery.js:9930
ajax @ jquery.js:9511
s @ message-bus.js:22
n.baseUrl.n.ajax @ message-bus.js:88
k @ chunk.660.3ca404a8b6b50dfefca7.js:2
n @ chunk.660.3ca404a8b6b50dfefca7.js:2
(anonymous) @ chunk.660.3ca404a8b6b50dfefca7.js:2
setTimeout (async)
complete @ chunk.660.3ca404a8b6b50dfefca7.js:2
e.complete @ message-bus.js:17
l @ jquery.js:3213
fireWith @ jquery.js:3343
E @ jquery.js:9632
abort @ jquery.js:9332
unsubscribe @ chunk.660.3ca404a8b6b50dfefca7.js:2
unsubscribe @ presence.js:179
_unsubscribe @ presence.js:397
unsubscribe @ presence.js:101
_setupChannel @ composer-presence-display.js:81
_setupChannels @ composer-presence-display.js:93
b @ index.js:207
l @ index.js:423
p.invoke @ queue.ts:201
p.flush @ queue.ts:98
h.flush @ deferred-action-queues.ts:75
$._end @ index.ts:616
_boundAutorunEnd @ index.ts:257
Promise.then (async)
n @ platform.ts:28
flush @ index.js:41
$._scheduleAutorun @ index.ts:803
$._end @ index.ts:623
_boundAutorunEnd @ index.ts:257
Promise.then (async)
n @ platform.ts:28
flush @ index.js:41
$._scheduleAutorun @ index.ts:803
$._end @ index.ts:623
_boundAutorunEnd @ index.ts:257
Promise.then (async)
n @ platform.ts:28
flush @ index.js:41
$._scheduleAutorun @ index.ts:803
$._end @ index.ts:623
_boundAutorunEnd @ index.ts:257
Promise.then (async)
n @ platform.ts:28
flush @ index.js:41
$._scheduleAutorun @ index.ts:803
$._end @ index.ts:623
_boundAutorunEnd @ index.ts:257
Promise.then (async)
n @ platform.ts:28
flush @ index.js:41
$._scheduleAutorun @ index.ts:803
$._ensureInstance @ index.ts:791
$.ensureInstance @ index.ts:579
scheduleRevalidate @ index.js:5390
dirtyTag @ validator.js:411
R @ validator.js:486
F @ index.js:497
z @ index.js:533
De @ index.js:1409
Te @ index.js:1385
set @ observable.js:175
save @ composer.js:707
saveAction @ composer.js:554
_triggerAction @ d-button.js:178
click @ d-button.js:144
jquery.js:9930 

       POST https://xxxx.com/message-bus/2089d5dd986440908b29e8064c58d208/poll?dlp=t 429 (Too Many Requests)
send @ jquery.js:9930
ajax @ jquery.js:9511
s @ message-bus.js:22
n.baseUrl.n.ajax @ message-bus.js:88
k @ chunk.660.3ca404a8b6b50dfefca7.js:2
n @ chunk.660.3ca404a8b6b50dfefca7.js:2
(anonymous) @ chunk.660.3ca404a8b6b50dfefca7.js:2
setTimeout (async)
complete @ chunk.660.3ca404a8b6b50dfefca7.js:2
e.complete @ message-bus.js:17
l @ jquery.js:3213
fireWith @ jquery.js:3343
E @ jquery.js:9632
(anonymous) @ jquery.js:9878
load (async)
send @ jquery.js:9897
ajax @ jquery.js:9511
s @ message-bus.js:22
n.baseUrl.n.ajax @ message-bus.js:88
k @ chunk.660.3ca404a8b6b50dfefca7.js:2
n @ chunk.660.3ca404a8b6b50dfefca7.js:2
document.addEventListener.e.onVisibilityChange @ chunk.660.3ca404a8b6b50dfefca7.js:2
callback @ message-bus.js:49
d @ user-presence.js:90
p @ user-presence.js:103
m @ user-presence.js:110
22:1 Error handling response: TypeError: Cannot read properties of undefined (reading 'isCheckout')
    at chrome-extension://clmkdohmabikagpnhjmgacbclihgmdje/content-script.js:1:5043
22:1 Unchecked runtime.lastError: A listener indicated an asynchronous response by returning true, but the message channel closed before a response was received

Isso significa que você está operando muito rápido e precisa desacelerar. Este é um mecanismo de proteção para evitar que alguém inunde seu fórum com scripts. Muitos aplicativos web o informarão quando você operar muito rapidamente e, em seguida, rejeitarão sua operação.

4 Me gusta

Lo deduje de la respuesta 429. Si ves la muestra de video de arriba, ¿parece rápida? El foro debería poder diferenciar entre la creación rápida de publicaciones desde la misma cuenta/IP frente a un usuario que edita una publicación unos 5 segundos después.

Además: Y no veo ningún problema al editar esta publicación cada 5 segundos aproximadamente. Esta es mi quinta edición en un minuto.

Sexta: así que algo cambió después de la actualización 3.1.x porque antes funcionaba bien. ¿O el umbral 429 depende del número de unicornios?

¿Tiene el 429 algo que ver con el número de unicornios configurados (1 o más)? No veo este problema en este sitio, pero sí de forma constante en el mío.

Entonces, ¿esto no afecta a este sitio? Puedo hacer ediciones cada pocos segundos en mi publicación aquí sin ningún problema (he intentado editar hasta 8 veces en pocos segundos), pero en mi sitio parece ser un problema (incluso con solo 2 ediciones).

1 me gusta