mersenneforum.org

mersenneforum.org (https://www.mersenneforum.org/index.php)
-   GMP-ECM (https://www.mersenneforum.org/forumdisplay.php?f=55)
-   -   A Python Diver for GMP-ECM... (https://www.mersenneforum.org/showthread.php?t=15508)

WraithX 2012-09-17 04:00

[QUOTE=Dubslow;311872]
[code]
∰∂ taskset f nice -n 19 ./ecm.py -c 7553 -one -threads 4 -out EMS.job 43000000 < num
...
OSError: [Errno 13] Permission denied
[/code]
[/QUOTE]

Hmmm, I haven't seen this before, but looking at the error from your python 3.2 run:
[code]RuntimeError: Exception occurred in preexec_fn.[/code]
This might be related to your use of taskset and nice. Can you find nice on your system and set the variable:
[code] NICE_PATH = ''[/code]
in your ecm.py script? (should be around line 95 in ecm.py)

If that doesn't work I have some more things to try, but let's see where this gets us first.

Dubslow 2012-09-17 04:07

[QUOTE=WraithX;311925]Hmmm, I haven't seen this before, but looking at the error from your python 3.2 run:
[code]RuntimeError: Exception occurred in preexec_fn.[/code]
This might be related to your use of taskset and nice. Can you find nice on your system and set the variable:
[code] NICE_PATH = ''[/code]
in your ecm.py script? (should be around line 95 in ecm.py)

If that doesn't work I have some more things to try, but let's see where this gets us first.[/QUOTE]

It's already like that (as is EXE_SUFFIX or some such variable).
[code]ECM = 'ecm'

if sys.platform.startswith('win'):
EXE_SUFFIX = '.exe'
else:
EXE_SUFFIX = ''
NICE_PATH = ''
ECM = './' + ECM[/code]

WraithX 2012-09-17 12:15

[QUOTE=Dubslow;311926]It's already like that (as is EXE_SUFFIX or some such variable).[/QUOTE]

[QUOTE=WraithX]Can you find nice on your system and set the variable:[/QUOTE]

Once again, with feeling. Can you find nice (the executable) on your system (maybe in /usr/bin/nice, etc) and then set the value of NICE_PATH accordingly? For the above example (/usr/bin/nice), try both /usr/bin/nice and just /usr/bin/ to see if either works.

Come to think of it...
Since this code mostly comes from factmsieve.py, I had never used or thought much about the NICE_PATH option. But thinking about it, I believe that you would set the NICE_PATH option to '/usr/bin/nice -19', instead of running with taskset/nice etc. Can you also give this a try?

Dubslow 2012-09-17 18:40

[QUOTE=WraithX;311960]Once again, with feeling. Can you find nice (the executable) on your system (maybe in /usr/bin/nice, etc) and then set the value of NICE_PATH accordingly? For the above example (/usr/bin/nice), try both /usr/bin/nice and just /usr/bin/ to see if either works.

Come to think of it...
Since this code mostly comes from factmsieve.py, I had never used or thought much about the NICE_PATH option. But thinking about it, I believe that you would set the NICE_PATH option to '/usr/bin/nice -19', instead of running with taskset/nice etc. Can you also give this a try?[/QUOTE]

Whoops :blush:

No dice though.
[code]ECM = 'ecm'

if sys.platform.startswith('win'):
EXE_SUFFIX = '.exe'
else:
EXE_SUFFIX = ''
NICE_PATH = '/usr/bin/nice -n 19' # No difference run this way or with '/usr/bin/nice 19' or 'nice -19'
ECM = './' + ECM[/code]
[code]bill@Gravemind:~/yafu/ecm∰∂ which nice
/usr/bin/nice
[1]+ Done gedit ecm.py
bill@Gravemind:~/yafu/ecm∰∂ less ~/.bash_history
bill@Gravemind:~/yafu/ecm∰∂ taskset f ./ecm.py -c 7553 -one -threads 4 -out EMS.job 43000000 < num
-> ___________________________________________________________________
-> | Running ecm.py, a Python driver for distributing GMP-ECM work |
-> | on a single machine. It is Copyright, 2011, David Cleaver and |
-> | is a conversion of factmsieve.py that is Copyright, 2010, Brian |
-> | Gladman. Version 0.08 (Python 2.6 or later) 19th Oct 2011. |
-> |_________________________________________________________________|

-> Number(s) to factor:
-> 96829488818499592481168771836336683023181156945795350980834458372199490598743221067775290195641203125439681639536219726888871822435629511515837059837171813128663335953886175536897367740550240372528813404899458874513057418332695709006061299277468749241875966062032012477732299909160292749026996368849279816035027111164073836173908645011 (335 digits)
->=============================================================================
-> Working on number: 96829488818499592481168771836336683023181156945795350980834458372199490598743221067775290195641203125439681639536219726888871822435629511515837059837171813128663335953886175536897367740550240372528813404899458874513057418332695709006061299277468749241875966062032012477732299909160292749026996368849279816035027111164073836173908645011 (335 digits)
-> Found previous job file job3362.txt, will resume work...
-> *** Already completed 0 curves on this number...
-> *** Will run 7553 more curves.
-> Currently working on: job3362.txt
-> Starting 4 instances of GMP-ECM...
-> ./ecm -one -c 1889 43000000 < job3362.txt > job3362_t00.txt
Traceback (most recent call last):
File "./ecm.py", line 1224, in <module>
start_ecm_threads()
File "./ecm.py", line 521, in start_ecm_threads
procs.append(run_exe(ECM, ecm_args2, in_file = ecm_job, out_file = file_name, wait = False))
File "./ecm.py", line 325, in run_exe
p = subprocess.Popen(args.split(' '), **al)
File "/usr/lib/python3.2/subprocess.py", line 736, in __init__
restore_signals, start_new_session)
File "/usr/lib/python3.2/subprocess.py", line 1331, in _execute_child
raise child_exception_type(err_msg)
RuntimeError: Exception occurred in preexec_fn.[/code]

chris2be8 2012-09-18 16:20

What happens if you run it without the "taskset f" at the start of the command line?

Chris

Dubslow 2012-09-20 05:24

[QUOTE=chris2be8;312090]What happens if you run it without the "taskset f" at the start of the command line?

Chris[/QUOTE]

[code]bill@Gravemind:~/yafu/ecm∰∂ ./ecm.py -c 7553 -one -threads 4 -out EMS.job 43000000 < num
-> ___________________________________________________________________
-> | Running ecm.py, a Python driver for distributing GMP-ECM work |
-> | on a single machine. It is Copyright, 2011, David Cleaver and |
-> | is a conversion of factmsieve.py that is Copyright, 2010, Brian |
-> | Gladman. Version 0.08 (Python 2.6 or later) 19th Oct 2011. |
-> |_________________________________________________________________|

-> Number(s) to factor:
-> 96829488818499592481168771836336683023181156945795350980834458372199490598743221067775290195641203125439681639536219726888871822435629511515837059837171813128663335953886175536897367740550240372528813404899458874513057418332695709006061299277468749241875966062032012477732299909160292749026996368849279816035027111164073836173908645011 (335 digits)
->=============================================================================
-> Working on number: 96829488818499592481168771836336683023181156945795350980834458372199490598743221067775290195641203125439681639536219726888871822435629511515837059837171813128663335953886175536897367740550240372528813404899458874513057418332695709006061299277468749241875966062032012477732299909160292749026996368849279816035027111164073836173908645011 (335 digits)
-> Found previous job file job3362.txt, will resume work...
-> *** Already completed 0 curves on this number...
-> *** Will run 7553 more curves.
-> Currently working on: job3362.txt
-> Starting 4 instances of GMP-ECM...
-> ./ecm -one -c 1889 43000000 < job3362.txt > job3362_t00.txt
Traceback (most recent call last):
File "./ecm.py", line 1224, in <module>
start_ecm_threads()
File "./ecm.py", line 521, in start_ecm_threads
procs.append(run_exe(ECM, ecm_args2, in_file = ecm_job, out_file = file_name, wait = False))
File "./ecm.py", line 325, in run_exe
p = subprocess.Popen(args.split(' '), **al)
File "/usr/lib/python3.2/subprocess.py", line 736, in __init__
restore_signals, start_new_session)
File "/usr/lib/python3.2/subprocess.py", line 1331, in _execute_child
raise child_exception_type(err_msg)
RuntimeError: Exception occurred in preexec_fn.[/code]
Doesn't matter what the value of NICE_PATH is.

WraithX 2012-09-21 02:37

[QUOTE=Dubslow;312213][code]bill@Gravemind:~/yafu/ecm∰∂ ./ecm.py -c 7553 -one -threads 4 -out EMS.job 43000000 < num[/code]
Doesn't matter what the value of NICE_PATH is.[/QUOTE]

I wonder if the following will make a difference. Try to put the python executable in front of the ecm.py script, like so:
[CODE]/path/to/python ecm.py -c 7553 -one -threads 4 -out EMS.job 43000000 < num[/CODE]
And, let's also try that with different values in NICE_PATH.

Dubslow 2012-09-21 03:11

[QUOTE=WraithX;312267]I wonder if the following will make a difference. Try to put the python executable in front of the ecm.py script, like so:
[CODE]/path/to/python ecm.py -c 7553 -one -threads 4 -out EMS.job 43000000 < num[/CODE]
And, let's also try that with different values in NICE_PATH.[/QUOTE]

[code]bill@Gravemind:~/yafu/ecm∰∂ /usr/bin/python3 ./ecm.py -c 7553 -one -threads 4 -out EMS.job 43000000 < num
-> ___________________________________________________________________
-> | Running ecm.py, a Python driver for distributing GMP-ECM work |
-> | on a single machine. It is Copyright, 2011, David Cleaver and |
-> | is a conversion of factmsieve.py that is Copyright, 2010, Brian |
-> | Gladman. Version 0.08 (Python 2.6 or later) 19th Oct 2011. |
-> |_________________________________________________________________|

-> Number(s) to factor:
-> 96829488818499592481168771836336683023181156945795350980834458372199490598743221067775290195641203125439681639536219726888871822435629511515837059837171813128663335953886175536897367740550240372528813404899458874513057418332695709006061299277468749241875966062032012477732299909160292749026996368849279816035027111164073836173908645011 (335 digits)
->=============================================================================
-> Working on number: 96829488818499592481168771836336683023181156945795350980834458372199490598743221067775290195641203125439681639536219726888871822435629511515837059837171813128663335953886175536897367740550240372528813404899458874513057418332695709006061299277468749241875966062032012477732299909160292749026996368849279816035027111164073836173908645011 (335 digits)
-> Found previous job file job3362.txt, will resume work...
-> *** Already completed 0 curves on this number...
-> *** Will run 7553 more curves.
-> Currently working on: job3362.txt
-> Starting 4 instances of GMP-ECM...
-> ./ecm -one -c 1889 43000000 < job3362.txt > job3362_t00.txt
Traceback (most recent call last):
File "./ecm.py", line 1224, in <module>
start_ecm_threads()
File "./ecm.py", line 521, in start_ecm_threads
procs.append(run_exe(ECM, ecm_args2, in_file = ecm_job, out_file = file_name, wait = False))
File "./ecm.py", line 325, in run_exe
p = subprocess.Popen(args.split(' '), **al)
File "/usr/lib/python3.2/subprocess.py", line 736, in __init__
restore_signals, start_new_session)
File "/usr/lib/python3.2/subprocess.py", line 1331, in _execute_child
raise child_exception_type(err_msg)
RuntimeError: Exception occurred in preexec_fn.[/code]
I tried it with NICE_PATH = '', '/usr/bin/nice', and '/usr/bin/nice -n 19'.

WraithX 2012-09-22 20:37

[QUOTE=Dubslow;312269]I tried it with NICE_PATH = '', '/usr/bin/nice', and '/usr/bin/nice -n 19'.[/QUOTE]

Man, I'm sorry this is taking a while to figure out. Ok, lets try the following:
With the following command line:
ecm.py -c 7553 -one -threads 4 -out EMS.job 43000000 < num
Set NICE_PATH = 'lambda:os.nice(20)'

If that one does not work, then:
With the following command line:
ecm.py -c 7553 -one -threads 4 -out EMS.job 43000000 < num
[CODE]
Set NICE_PATH = ''
Change the following line in ecm.py from this:
p = subprocess.Popen(args.split(' '), **al)
To this:
p = subprocess.Popen(args.split(' '), preexec_fn=lambda:os.nice(20), **al)
[/CODE]
And if neither of those work, can you also try with /usr/bin/python3 in front of each command line?

Dubslow 2012-09-22 20:54

[QUOTE=WraithX;312459]Man, I'm sorry this is taking a while to figure out. Ok, lets try the following:
With the following command line:
ecm.py -c 7553 -one -threads 4 -out EMS.job 43000000 < num
Set NICE_PATH = 'lambda:os.nice(20)'

If that one does not work, then:
With the following command line:
ecm.py -c 7553 -one -threads 4 -out EMS.job 43000000 < num
[CODE]
Set NICE_PATH = ''
Change the following line in ecm.py from this:
p = subprocess.Popen(args.split(' '), **al)
To this:
p = subprocess.Popen(args.split(' '), preexec_fn=lambda:os.nice(20), **al)
[/CODE]
And if neither of those work, can you also try with /usr/bin/python3 in front of each command line?[/QUOTE]
I have a few comments:

First, I'm pretty sure /usr/bin/python3 won't make a difference. In Linux, the file type is NOT associated with the python executable; rather the shell (bash, in my and most cases) looks at the first line for the so-called "shebang" (I prefer "hashbang") which looks like `#! path-to-exe`; the shell then calls `path-to-exe $0 $@`, which is exactly the same as if I did it myself. In my case:
[code]bill@Gravemind:~/yafu/ecm∰∂ head -n 1 ecm.py
#! /usr/bin/python3[/code]
So I won't try it with the /usr/bin/python3 in front.

As for the nice, when I tried it with NICE_PATH='' and without a nice command of my own, it still didn't work, even though it should have just started with normal priority; doesn't that mean that the problem isn't with nice-ing it? I'm less sure about this, so I'll try it with your suggestions. (I had no idea os has a nice(), though of course it makes sense :razz:) (PS Wouldn't the **al overwrite the keyword arg? PPS I was sort of right, see second attempt error)

[code]~/yafu/ecm∰∂ cat ecm.py | grep NICE_PATH
NICE_PATH = 'lambda: os.nice(20)' #'/usr/bin/nice -19'
al['preexec_fn'] = NICE_PATH
bill@Gravemind:~/yafu/ecm∰∂ ./ecm.py -c 7553 -one -threads 4 -out EMS.job 43000000 < num
-> ___________________________________________________________________
-> | Running ecm.py, a Python driver for distributing GMP-ECM work |
-> | on a single machine. It is Copyright, 2011, David Cleaver and |
-> | is a conversion of factmsieve.py that is Copyright, 2010, Brian |
-> | Gladman. Version 0.08 (Python 2.6 or later) 19th Oct 2011. |
-> |_________________________________________________________________|

-> Number(s) to factor:
-> 96829488818499592481168771836336683023181156945795350980834458372199490598743221067775290195641203125439681639536219726888871822435629511515837059837171813128663335953886175536897367740550240372528813404899458874513057418332695709006061299277468749241875966062032012477732299909160292749026996368849279816035027111164073836173908645011 (335 digits)
->=============================================================================
-> Working on number: 96829488818499592481168771836336683023181156945795350980834458372199490598743221067775290195641203125439681639536219726888871822435629511515837059837171813128663335953886175536897367740550240372528813404899458874513057418332695709006061299277468749241875966062032012477732299909160292749026996368849279816035027111164073836173908645011 (335 digits)
-> Found previous job file job3362.txt, will resume work...
-> *** Already completed 0 curves on this number...
-> *** Will run 7553 more curves.
-> Currently working on: job3362.txt
-> Starting 4 instances of GMP-ECM...
-> ./ecm -one -c 1889 43000000 < job3362.txt > job3362_t00.txt
Traceback (most recent call last):
File "./ecm.py", line 1224, in <module>
start_ecm_threads()
File "./ecm.py", line 521, in start_ecm_threads
procs.append(run_exe(ECM, ecm_args2, in_file = ecm_job, out_file = file_name, wait = False))
File "./ecm.py", line 325, in run_exe
p = subprocess.Popen(args.split(' '), **al)
File "/usr/lib/python3.2/subprocess.py", line 736, in __init__
restore_signals, start_new_session)
File "/usr/lib/python3.2/subprocess.py", line 1331, in _execute_child
raise child_exception_type(err_msg)
RuntimeError: Exception occurred in preexec_fn.[/code]
[code]bill@Gravemind:~/yafu/ecm∰∂ cat ecm.py | grep "NICE_PATH"
NICE_PATH = '' #'/usr/bin/nice -19'
al['preexec_fn'] = NICE_PATH
bill@Gravemind:~/yafu/ecm∰∂ man grep
bill@Gravemind:~/yafu/ecm∰∂ cat ecm.py | grep "NICE_PATH"
NICE_PATH = '' #'/usr/bin/nice -19'
al['preexec_fn'] = NICE_PATH
bill@Gravemind:~/yafu/ecm∰∂ cat ecm.py | grep "Popen"
p = subprocess.Popen(args.split(' '), preexec_fn=lambda: os.nice(20), **al)
#p = subprocess.Popen(args.split(' '), **al)
#p = subprocess.Popen([ex] + args.split(' '), **al)
#p = subprocess.Popen(cs.split(' '), **al)
bill@Gravemind:~/yafu/ecm∰∂ ./ecm.py -c 7553 -one -threads 4 -out EMS.job 43000000 < num
-> ___________________________________________________________________
-> | Running ecm.py, a Python driver for distributing GMP-ECM work |
-> | on a single machine. It is Copyright, 2011, David Cleaver and |
-> | is a conversion of factmsieve.py that is Copyright, 2010, Brian |
-> | Gladman. Version 0.08 (Python 2.6 or later) 19th Oct 2011. |
-> |_________________________________________________________________|

-> Number(s) to factor:
-> 96829488818499592481168771836336683023181156945795350980834458372199490598743221067775290195641203125439681639536219726888871822435629511515837059837171813128663335953886175536897367740550240372528813404899458874513057418332695709006061299277468749241875966062032012477732299909160292749026996368849279816035027111164073836173908645011 (335 digits)
->=============================================================================
-> Working on number: 96829488818499592481168771836336683023181156945795350980834458372199490598743221067775290195641203125439681639536219726888871822435629511515837059837171813128663335953886175536897367740550240372528813404899458874513057418332695709006061299277468749241875966062032012477732299909160292749026996368849279816035027111164073836173908645011 (335 digits)
-> Found previous job file job3362.txt, will resume work...
-> *** Already completed 0 curves on this number...
-> *** Will run 7553 more curves.
-> Currently working on: job3362.txt
-> Starting 4 instances of GMP-ECM...
-> ./ecm -one -c 1889 43000000 < job3362.txt > job3362_t00.txt
Traceback (most recent call last):
File "./ecm.py", line 1225, in <module>
start_ecm_threads()
File "./ecm.py", line 522, in start_ecm_threads
procs.append(run_exe(ECM, ecm_args2, in_file = ecm_job, out_file = file_name, wait = False))
File "./ecm.py", line 325, in run_exe
p = subprocess.Popen(args.split(' '), preexec_fn=lambda: os.nice(20), **al)
TypeError: type object got multiple values for keyword argument 'preexec_fn'[/code]
[code]bill@Gravemind:~/yafu/ecm∰∂ cat ecm.py | grep "NICE_PATH"
NICE_PATH = '' #'/usr/bin/nice -19'
pass #al['preexec_fn'] = NICE_PATH
bill@Gravemind:~/yafu/ecm∰∂ cat ecm.py | grep "Popen"
p = subprocess.Popen(args.split(' '), preexec_fn=lambda: os.nice(20), **al)
#p = subprocess.Popen(args.split(' '), **al)
#p = subprocess.Popen([ex] + args.split(' '), **al)
#p = subprocess.Popen(cs.split(' '), **al)
bill@Gravemind:~/yafu/ecm∰∂ ./ecm.py -c 7553 -one -threads 4 -out EMS.job 43000000 < num
-> ___________________________________________________________________
-> | Running ecm.py, a Python driver for distributing GMP-ECM work |
-> | on a single machine. It is Copyright, 2011, David Cleaver and |
-> | is a conversion of factmsieve.py that is Copyright, 2010, Brian |
-> | Gladman. Version 0.08 (Python 2.6 or later) 19th Oct 2011. |
-> |_________________________________________________________________|

-> Number(s) to factor:
-> 96829488818499592481168771836336683023181156945795350980834458372199490598743221067775290195641203125439681639536219726888871822435629511515837059837171813128663335953886175536897367740550240372528813404899458874513057418332695709006061299277468749241875966062032012477732299909160292749026996368849279816035027111164073836173908645011 (335 digits)
->=============================================================================
-> Working on number: 96829488818499592481168771836336683023181156945795350980834458372199490598743221067775290195641203125439681639536219726888871822435629511515837059837171813128663335953886175536897367740550240372528813404899458874513057418332695709006061299277468749241875966062032012477732299909160292749026996368849279816035027111164073836173908645011 (335 digits)
-> Found previous job file job3362.txt, will resume work...
-> *** Already completed 0 curves on this number...
-> *** Will run 7553 more curves.
-> Currently working on: job3362.txt
-> Starting 4 instances of GMP-ECM...
-> ./ecm -one -c 1889 43000000 < job3362.txt > job3362_t00.txt
Traceback (most recent call last):
File "./ecm.py", line 1225, in <module>
start_ecm_threads()
File "./ecm.py", line 522, in start_ecm_threads
procs.append(run_exe(ECM, ecm_args2, in_file = ecm_job, out_file = file_name, wait = False))
File "./ecm.py", line 325, in run_exe
p = subprocess.Popen(args.split(' '), preexec_fn=lambda: os.nice(20), **al)
File "/usr/lib/python3.2/subprocess.py", line 736, in __init__
restore_signals, start_new_session)
File "/usr/lib/python3.2/subprocess.py", line 1330, in _execute_child
raise child_exception_type(errno_num, err_msg)
OSError: [Errno 13] Permission denied[/code]
The last error is the same as with python2.7 .

Dubslow 2012-09-22 21:10

Char limit reached.
[code]bill@Gravemind:~/yafu/ecm∰∂ cat ecm.py | grep "NICE_PATH"
NICE_PATH = '' #'/usr/bin/nice -19'
pass #al['preexec_fn'] = NICE_PATH
bill@Gravemind:~/yafu/ecm∰∂ cat ecm.py | grep "Popen"
#p = subprocess.Popen(args.split(' '), preexec_fn=lambda: os.nice(20), **al)
p = subprocess.Popen(args.split(' '), **al) # Don't bother with preexec
#p = subprocess.Popen([ex] + args.split(' '), **al)
#p = subprocess.Popen(cs.split(' '), **al)
bill@Gravemind:~/yafu/ecm∰∂ ./ecm.py -c 7553 -one -threads 4 -out EMS.job 43000000 < num
-> ___________________________________________________________________
-> | Running ecm.py, a Python driver for distributing GMP-ECM work |
-> | on a single machine. It is Copyright, 2011, David Cleaver and |
-> | is a conversion of factmsieve.py that is Copyright, 2010, Brian |
-> | Gladman. Version 0.08 (Python 2.6 or later) 19th Oct 2011. |
-> |_________________________________________________________________|

-> Number(s) to factor:
-> 96829488818499592481168771836336683023181156945795350980834458372199490598743221067775290195641203125439681639536219726888871822435629511515837059837171813128663335953886175536897367740550240372528813404899458874513057418332695709006061299277468749241875966062032012477732299909160292749026996368849279816035027111164073836173908645011 (335 digits)
->=============================================================================
-> Working on number: 96829488818499592481168771836336683023181156945795350980834458372199490598743221067775290195641203125439681639536219726888871822435629511515837059837171813128663335953886175536897367740550240372528813404899458874513057418332695709006061299277468749241875966062032012477732299909160292749026996368849279816035027111164073836173908645011 (335 digits)
-> Found previous job file job3362.txt, will resume work...
-> *** Already completed 0 curves on this number...
-> *** Will run 7553 more curves.
-> Currently working on: job3362.txt
-> Starting 4 instances of GMP-ECM...
-> ./ecm -one -c 1889 43000000 < job3362.txt > job3362_t00.txt
Traceback (most recent call last):
File "./ecm.py", line 1225, in <module>
start_ecm_threads()
File "./ecm.py", line 522, in start_ecm_threads
procs.append(run_exe(ECM, ecm_args2, in_file = ecm_job, out_file = file_name, wait = False))
File "./ecm.py", line 326, in run_exe
p = subprocess.Popen(args.split(' '), **al) # Don't bother with preexec
File "/usr/lib/python3.2/subprocess.py", line 736, in __init__
restore_signals, start_new_session)
File "/usr/lib/python3.2/subprocess.py", line 1330, in _execute_child
raise child_exception_type(errno_num, err_msg)
OSError: [Errno 13] Permission denied[/code]


All times are UTC. The time now is 14:11.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.