Asciinema: La carga falla con "Tubería rota"

Creado en 28 ene. 2019  ·  7Comentarios  ·  Fuente: asciinema/asciinema

$ asciinema upload /var/folders/v2/g27ngtds20zg60cy_f2jb_l80000gn/T/tmpub1dsng9-ascii.cast
asciinema: upload failed: <urlopen error [Errno 32] Broken pipe>
asciinema: retry later by running: asciinema upload /var/folders/v2/g27ngtds20zg60cy_f2jb_l80000gn/T/tmpub1dsng9-ascii.cast

Aquí está la aplicación en la carpeta tmp

$ exa -l  /var/folders/v2/g27ngtds20zg60cy_f2jb_l80000gn/T/tmpub1dsng9-ascii.cast
.rw------- 5.8M user 28 Jan 16:33 /var/folders/v2/g27ngtds20zg60cy_f2jb_l80000gn/T/tmpub1dsng9-ascii.cast

Todos 7 comentarios

No estoy seguro de por qué no recibe un mensaje de error adecuado, pero hay un límite de 5 millones para cargar archivos. Ver # 91

Sí, eso es un problema de límite de tamaño.

asciinema tiene un controlador de errores para el estado 413 (que es devuelto por el servidor web en este caso) pero parece que nunca se maneja correctamente debido a cómo funciona el urllib de Python. Puede leer más sobre el problema aquí: https://github.com/kennethreitz/requests/issues/2422#issuecomment -184012765

Me encontré con el mismo problema hoy. ¿Qué opinas sobre una medida provisional de emitir una advertencia en el lado del cliente si el archivo que se va a cargar tiene más de 5M?

Regularmente lo encuentro muy por debajo del límite de 5M.

[schwarzgerat](2) $ ls -l /tmp/user/1000/tmpaxpadd2n-ascii.cast 
-rw------- 1 dank dank 592498 2020-01-05 08:57 /tmp/user/1000/tmpaxpadd2n-ascii.cast
[schwarzgerat](0) $ asciinema upload /tmp/user/1000/tmpaxpadd2n-ascii.cast 
asciinema: upload failed: <urlopen error [Errno 32] Broken pipe>
asciinema: retry later by running: asciinema upload /tmp/user/1000/tmpaxpadd2n-ascii.cast
[schwarzgerat](1) $ 

Ese es solo 600K. Juega perfectamente a nivel local.

Puede reproducir aquí:

$ asciinema upload display_sweep.cast
asciinema: upload failed: <urlopen error [Errno 32] Broken pipe>
asciinema: retry later by running: asciinema upload display_sweep.cast

$ ll -h display_sweep.cast
-rw-r--r-- 1 nicoo nicoo 2.3M Jan 14 21:29 display_sweep.cast

Lo mismo ocurre con archivos más pequeños. Intenté reproducir con curl pero esto funcionó bien:

$ curl --http1.1 -v -u $USER:$(cat ~/.config/asciinema/install-id) https://asciinema.org/api/asciicasts -F asciicast=@display_sweep.cast
*   Trying 109.107.38.78:443...
* TCP_NODELAY set
* Connected to asciinema.org (109.107.38.78) port 443 (#0)
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN, server accepted to use http/1.1
* Server certificate:
*  subject: CN=asciinema.org
*  start date: Jan 16 08:09:20 2020 GMT
*  expire date: Apr 15 08:09:20 2020 GMT
*  subjectAltName: host "asciinema.org" matched cert's "asciinema.org"
*  issuer: C=US; O=Let's Encrypt; CN=Let's Encrypt Authority X3
*  SSL certificate verify ok.
* Server auth using Basic with user 'nicoo'
> POST /api/asciicasts HTTP/1.1
> Host: asciinema.org
> Authorization: Basic XXXXSECRETVALUEHERE
> User-Agent: curl/7.67.0
> Accept: */*
> Content-Length: 2332762
> Content-Type: multipart/form-data; boundary=------------------------8506bb168e19a8c6
> Expect: 100-continue
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 100 Continue
* We are completely uploaded and fine
* Mark bundle as not supporting multiuse
< HTTP/1.1 201 Created
< Cache-Control: max-age=0, private, must-revalidate
< Content-Length: 78
< Content-Type: text/plain; charset=utf-8
< Date: Fri, 17 Jan 2020 16:47:43 GMT
< Location: https://asciinema.org/a/ucRJ70xKSlhN1QlmMW0BdSUBf
< Server: Caddy
< Server: nginx
< Strict-Transport-Security: max-age=15768000
< X-Request-Id: 2nlbkv35ad6doecmo07jcdm2
< 
View the recording at:

    https://asciinema.org/a/ucRJ70xKSlhN1QlmMW0BdSUBf
* Connection #0 to host asciinema.org left intact

Este parece ser un problema específico del cliente API HTTP de asciinema ; Lo encontré incluso al instalar asciinema form pip en un venv ; la versión local de Python es 3.7.5 (como está empaquetado en Debian 11 / testing)

No estoy seguro de por qué no recibe un mensaje de error adecuado, pero hay un límite de 5 millones para cargar archivos. Ver # 91

Este debería ser un elemento de preguntas frecuentes.

Tan pronto como vi esa "tubería rota" repetida dos veces, sospeché que mi elenco de 6.3M excedía el límite de carga.

Pero encontrar este hilo tomó ... uhhh ... 24 minutos. Alrededor de 15 de los cuales estaba jugando con la certificación discobot , con la esperanza de que eso me permitiera publicar la pregunta en la sección de discurso de preguntas frecuentes (no fue así).

Recibo este error con uno pequeño:

`` ` sontek @ hulk : / mnt / c / Users / sontek / code / snowmachine $ exit
asciinema: grabación finalizada
asciinema: presionepara subir a asciinema.org,para ahorrar localmente
asciinema: error de carga:
asciinema: vuelva a intentarlo más tarde ejecutando: asciinema upload /tmp/tmpe_sntawl-ascii.cast
sontek @ hulk : / mnt / c / Users / sontek / code / snowmachine $ du -sh /tmp/tmpe_sntawl-ascii.cast
184K /tmp/tmpe_sntawl-ascii.cast
sontek @ hulk : / mnt / c / Users / sontek / code / snowmachine $

Tried uploading it later too:

sontek @ hulk : / mnt / c / Users / sontek / code / snowmachine $ asciinema upload /tmp/tmpe_sntawl-ascii.cast
asciinema: error de carga:
asciinema: vuelva a intentarlo más tarde ejecutando: asciinema upload /tmp/tmpe_sntawl-ascii.cast
''

¿Fue útil esta página
0 / 5 - 0 calificaciones