That was the solution yes. I had to argue a bit with Windows to let me set permission on the entire content of the folder. When I got that sorted it started running smoothly. Thank you for helping out. P From: HTCondor-users <htcondor-users-bounces@xxxxxxxxxxx>
On Behalf Of John M Knoeller To check the file permissions, try running icacls C:\ProgramData\Anaconda2 icacls C:\ProgramData\Anaconda2\python.exe Condor jobs on Windows will run as the user condor-slot*. These are dynamically created user accounts that have limited privileges, but they are members of the Users group, which should have read and execute access to c:\ProgramData.
You might also check to see if the condor-slot* users are members of the Users group on your machine.
You could also try running a .bat file as a job that tries to get a directory listing of c:\ProgramData\Anaconda2 If that fails, then you have a permission issue. -tj From: HTCondor-users <htcondor-users-bounces@xxxxxxxxxxx>
On Behalf Of Peter Ellevseth I tried True/False and neither will give med the result I want. With transfer_executable = False I still get the same error in my log-file. I am thinking this might be a windows permission error and is not related to condor. Or is there anything in how condor runs that can cause this? P From: HTCondor-users <htcondor-users-bounces@xxxxxxxxxxx>
On Behalf Of John M Knoeller so these two submit file statements executable=C:\ProgramData\Anaconda2\python.exe transfer_executable = True Mean that you want to transfer python.exe from
C:\ProgramData\Anaconda2 on the submit host to the job sandbox, and then run it from there. That almost certainly will not work because python depends on dlls that are in the same directory as it is. and you will not be transferring those, just python.exe It might work if you transferred the whole Anaconda2 directory. But I think what you meant to do is NOT transfer python, but instead run it from where it is installed on the execute machine. to do that, just change the value of transfer_executable to false. -tj From: HTCondor-users <htcondor-users-bounces@xxxxxxxxxxx>
On Behalf Of Peter Ellevseth Hi My apologies, I was a bit quick with the submit-file. I was referring to this submit-file: universe=vanilla executable=C:\ProgramData\Anaconda2\python.exe error=ais_submit.error output=ais_submit.out log=ais_submit.log requirements = Machine=="XXXXXXX && OpSys == "WINDOWS" transfer_input_files = average.py transfer_executable = True arguments= average.py Queue Anaconda is now installed in the C:\ProgramData folder. Using that executable, I am able to run python via condor. However if I change to use any of the environments I have created, the problem appears. The environment variable was just to see if I could import some in-house modules also installed on the machine.
Peter From: HTCondor-users <htcondor-users-bounces@xxxxxxxxxxx>
On Behalf Of John M Knoeller that error code is The application failed to initialize properly (0xc0000022) Which generally indicates a missing .dll file.
Your submit file has these statements executable=C:\ProgramData\Anaconda2\python.exe executable=testrun.bat transfer_executable = True Only the second executable= line has any effect. so your executable is effectively testrun.bat and it is being transferred. and (presumably) started, so the question now is: what does testrun.bat contain? Also, this statement PYTHONPATH=C:\Python is assuming that python is installed on the execute node in c:\Python, can we verify that? perhaps add dir c:\Python to the start of testrun.bat? The fact that you are submitting from Linux and running on Windows should not be a problem.
-tj From: HTCondor-users <htcondor-users-bounces@xxxxxxxxxxx>
On Behalf Of Peter Ellevseth Hi The return value is «-1073741790». My submit file looked like this: universe=vanilla executable=C:\ProgramData\Anaconda2\python.exe executable=testrun.bat error=ais_submit.error output=ais_submit.out log=ais_submit.log requirements = Machine=="XXXXXXX && OpSys == "WINDOWS" environment = PYTHONPATH=C:\Python transfer_input_files = average.py transfer_executable = True arguments= average.py Queue Conda is pre-installed on the node. I can e.g. activate it through anaconda shell or run python scripts directly on the node. I have tried having conda in my home directory on the execute node (c:\Users\...) and also the one in the submit-file above. No difference there. I was suspecting some sort of permission-issue, but the condor-slot users are member of the Users group and they have proper rights to the folder. Also I tried giving them permissions directly without luck. I should probably mention that I am submitting from a Linux machine (Centos 7). This is the only Windows-machine in our cluster. P From: HTCondor-users <htcondor-users-bounces@xxxxxxxxxxx>
On Behalf Of John M Knoeller What is the actual value of the return? that value may tell us something useful. Can you show what is in your submit file?
Is conda pre-installed on the execute node? or are you transferring it is part of the job? Is the path to conda somewhere in your user directory? (i.e. something like c:\Users\Ellevseth\conda) -tj From: HTCondor-users <htcondor-users-bounces@xxxxxxxxxxx>
On Behalf Of Peter Ellevseth Hello all I am trying to use condor to execute a python script via anaconda. I have installed anaconda (on windows) and created an environment. However, when I put the path the to python.exe within my environment, as executable
in my submit file I get a negative return value in my log, no errors and no output. I tried doing the same, but substituting the environment python.exe to the one in my anaconda installation and it works fine. Anybody have any good suggestions? P
Visste du at i 2017 satt kun 60 % av alle drepte i trafikken i en bil? De resterende var enten syklister, fotgjengere eller moped/motorsyklister. Sjekk din kommune
her |