Asciinema: Le téléchargement échoue avec « Tuyau cassé »

Créé le 28 janv. 2019  ·  7Commentaires  ·  Source: 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

Voici l'application dans le dossier 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

Tous les 7 commentaires

Vous ne savez pas pourquoi vous n'obtenez pas un message d'erreur approprié, mais il y a une limite de 5 M pour les fichiers de téléchargement. Voir #91

Oui, c'est un problème de limite de taille.

asciinema a un gestionnaire d'erreurs pour le statut 413 (qui est renvoyé par le serveur Web dans ce cas), mais il semble qu'il ne soit jamais correctement géré en raison du fonctionnement de l'urllib de Python. Vous pouvez en savoir plus sur le problème ici : https://github.com/kennethreitz/requests/issues/2422#issuecomment -184012765

J'ai rencontré le même problème aujourd'hui. Que pensez-vous d'une mesure provisoire consistant à émettre un avertissement côté client si le fichier à télécharger dépasse 5 M ?

Je le rencontre régulièrement bien en dessous de la limite 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) $ 

Celui-là ne fait que 600K. Joue parfaitement localement.

Peut reproduire ici :

$ 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

La même chose se produit également sur les fichiers plus petits. J'ai essayé de reproduire avec curl mais cela a bien fonctionné :

$ 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

Cela semble être un problème spécifique au client API HTTP de asciinema ; Je l'ai rencontré même lors de l'installation de asciinema form pip dans un nouveau venv ; la version locale de python est 3.7.5 (telle que conditionnée dans Debian 11/testing)

Vous ne savez pas pourquoi vous n'obtenez pas un message d'erreur approprié, mais il y a une limite de 5 M pour les fichiers de téléchargement. Voir #91

Cela devrait être un élément de la FAQ.

Dès que j'ai vu ce "tuyau cassé" se répéter deux fois, j'ai suspecté que mon casting de 6,3 millions dépassait la limite de téléchargement.

Mais en fait, trouver ce fil a pris... euhhh... 24 minutes. Une quinzaine d'entre eux je m'embêtais avec la certification discobot , en espérant que cela me permettrait de poster la question dans la section discours de la FAQ (ce n'est pas le cas).

J'obtiens cette erreur avec une petite :

``` sontek@hulk :/mnt/c/Users/sontek/code/snowmachine$ exit
asciinema : enregistrement terminé
asciinema: presseà télécharger sur asciinema.org,pour enregistrer localement
asciinema : échec du téléchargement :
asciinema : réessayez plus tard en exécutant : 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 : échec du téléchargement :
asciinema : réessayez plus tard en exécutant : asciinema upload /tmp/tmpe_sntawl-ascii.cast
```

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

Edo78 picture Edo78  ·  5Commentaires

abaykan picture abaykan  ·  10Commentaires

Bux42 picture Bux42  ·  9Commentaires

bashfulrobot picture bashfulrobot  ·  11Commentaires

omaraboumrad picture omaraboumrad  ·  10Commentaires