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