intermittent ValueErrors from subprocess
Pavlos Parissis
pavlos.parissis at gmail.com
Sun May 15 18:32:02 EDT 2016
On 16/05/2016 12:08 πμ, Chris Angelico wrote:
> On Mon, May 16, 2016 at 1:49 AM, Pavlos Parissis
> <pavlos.parissis at gmail.com> wrote:
>> I use subprocess.check_output like this:
>>
>> cmd = [
>> '/sbin/ip',
>> 'address',
>> 'show',
>> 'dev',
>> "{}".format(self.config['interface']),
>> 'to',
>> "{}".format(self.config['ip_prefix']),
>> ]
>
> Unrelated to your problem: "{}".format(x) is the same as str(x), and
> if x is already a string, it does exactly nothing. Most likely you can
> just put your configs straight in there.
>
Thanks for the tip, I will change it as you suggested.
>> try:
>> out = subprocess.check_output(
>> cmd,
>> universal_newlines=True,
>> timeout=1)
>> except subprocess.CalledProcessError as error:
>> return True
>> except subprocess.TimeoutExpired:
>> return True
>> else:
>> if self.config['ip_prefix'] in out:
>> return True
>> else:
>> return False
>>
>>
>> and I get the following exception:
>>
>> ValueError: Invalid file object: <_io.TextIOWrapper name=11
>> encoding='UTF-8'>
>
> Searching the CPython sources for that exception shows one hit:
> selectors.py, where it converts a file object to an integer file
> descriptor. (You could have helped out by showing us the full
> traceback.)
I did, https://gist.github.com/unixsurfer/67db620d87f667423f6f6e3a04e0bff5
> Is it possible you were running out of file descriptors,
> or in some other way unable to create the pipe?
I don't think as I see right now only 8 FDs:
sudo ls -1 /proc/22706/fd|wc
8 8 16
Thanks,
Pavlos
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://mail.python.org/pipermail/python-list/attachments/20160516/7ca37b7b/attachment.sig>
More information about the Python-list
mailing list