Comments on: “BlockingIOError: [Errno 11] Resource temporarily unavailable” pour Python 3.6 http://sametmax.com/blockingioerror-errno-11-resource-temporarily-unavailable-pour-python-3-6/ Du code, du cul Mon, 28 Oct 2019 11:54:55 +0000 hourly 1 https://wordpress.org/?v=4.9.7 By: blackmoor http://sametmax.com/blockingioerror-errno-11-resource-temporarily-unavailable-pour-python-3-6/#comment-186032 Fri, 03 Mar 2017 12:38:03 +0000 http://sametmax.com/?p=22573#comment-186032 Petite typo: au début –> “certains modules qui finissent pas déclencher par réaction” –> par déclencher

]]>
By: haypo http://sametmax.com/blockingioerror-errno-11-resource-temporarily-unavailable-pour-python-3-6/#comment-185948 Tue, 28 Feb 2017 20:52:36 +0000 http://sametmax.com/?p=22573#comment-185948 @Marc: Bah si t’as Python 3.6.0, t’as une version qui a le bug. Après pour reproduire le bug, il faut se lever de bonne heure car c’est un très limite qui ne produit que sous certaines conditions. Lit la PEP 524 pour voir. L’autre contournement est d’utiliser Python 3.5 hein :-)

]]>
By: Marc http://sametmax.com/blockingioerror-errno-11-resource-temporarily-unavailable-pour-python-3-6/#comment-185944 Tue, 28 Feb 2017 16:05:02 +0000 http://sametmax.com/?p=22573#comment-185944 Existe-t-il un bout de code ou autre permettant de constater que nous sommes confronté au problème sur nos environnements ?

]]>
By: Sam http://sametmax.com/blockingioerror-errno-11-resource-temporarily-unavailable-pour-python-3-6/#comment-185936 Tue, 28 Feb 2017 13:35:19 +0000 http://sametmax.com/?p=22573#comment-185936 Ouai quand j’ai vu la stack trace, je me suis souvenu qu’un certain victor avait touché à random, et je t’ai bien maudi. Mais bon, j’ai fais bien pire comme connerie dans ma vie :)

]]>
By: haypo http://sametmax.com/blockingioerror-errno-11-resource-temporarily-unavailable-pour-python-3-6/#comment-185934 Tue, 28 Feb 2017 12:57:39 +0000 http://sametmax.com/?p=22573#comment-185934 C’est le bug http://bugs.python.org/issue29085 : régression de Python 3.6.0 connue et corrigée par https://github.com/python/cpython/commit/acc2f74ca991f6579f5b9055dfe885b9a8af4645 … sauf que Python 3.6.1 n’est prévu que pour le 2017-03-13 :-( Je n’ai jamais compris pourquoi les releases managers attendent 3 mois après une version x.y.0 qui ajoute des milliers de changements et donc leur lot de régression. Bref, c’est résolu dans qq. jours.

Le bug est que tu lances une application Python sur une système où le générateur de nombres aléatoires de Linux n’est pas encore entièrement initialisé. C’est censé prendre quelques secondes au boot, mais sur des VM mal configurée (hé oui), ça peut prendre de longues minutes… Voir https://haypo.github.io/pep-524-os-urandom-blocking.html qui explique la raison du changement (c’est moi qui ait ajouté le bug dans le module random, désolé !).

Contournement pas sûr (je ne suis pas sûr que le RNG HAVEGE soit 100% sûr dans une VM) mais efficace : installer haveged pour “corriger” la VM, injecte de l’entropie selon le “bruit” du CPU. Si tu héberges toi même tes VM, ajouter le pilote virtio-rng et là c’est nickel.

Contournement en Python : lance “python3.6 -S -c ‘import os; os.urandom(1)’ ” avant ton application, la commande bloque jusqu’à ce le RNG soit entièrement initialisé.

Allez, faut se dire que c’est augmenter la sécurité de Python qu’on s’est payé ce bug ;-)

]]>
By: hackolite http://sametmax.com/blockingioerror-errno-11-resource-temporarily-unavailable-pour-python-3-6/#comment-185932 Tue, 28 Feb 2017 11:07:26 +0000 http://sametmax.com/?p=22573#comment-185932 deadsnakes …. XD, prémonitoire.

]]>